Petit site pour ceux qui bricolent en électronique en général et sur les PICAXES en particulier. Les PICAXES sont des microprocesseurs (PIC de Microship) programmables en BASIC. Pleins de qualités, pas chers, ultra faciles à programmer. Tout (ou presque) est sur le site du distributeur Gotronic (voir les liens). Les pages seront ajoutées ou modifiées petit à petit. Dans le but d'améliorer ce blog, communiquez moi vos remarques et les erreurs que vous pouvez constater. Pour me contacter: Envoyez un mail à l'adresse : mag1mic@free.fr . Tout message reçoit une réponse Pour retourner au menu, Cliquer sur "LISTE DES PAGES", ici ou en haut de la colonne de gauche Pour laisser un message, allez dans le "LIVRE D'OR" Bonne visite
TM1637
Programmation de base pour toute utilisation picaxe
Ce programme de base contient les sous programmes nécessaire à l'affichage d'un nombre de quatre chiffres, avec ou sans l'affichage des : centraux.
Dans cet exemple, la boucle principale lit la valeur retournée par la commande ADC sur l'entrée C.4. Cette valeur est affichée sur l'afficheur TM1637. Toute autre valeur peut être affichée de la même façon.
;************************************************ ;Application TM1637 ;MM 18/06/19 ;Modif 21/06/19: suppression des balises en sub Start et Stop ;affichage Nombre de 4 chiffres ;Picaxe 08M2 ;************************************************* #picaxe 08M2 ;Broches I/O *************** symbol clk= pinC.2 symbol dio= pinC.1 symbol valid=pinC.3 symbol ADC=C.4 ;Bytes ********************** symbol Octet=b0 ;octet dans b0; le test est sur bit0 symbol Chiffre=b1 symbol i=b2 symbol j=b3 symbol dp=b4 ;Words ***************************** symbol Div=w12 symbol Nombre=w13 ; nombre de 4 chiffres à afficher ;Initialisation TM1634 ********************************************************* ;symbol TypeAdr=$40 ; adressage auto-incrémenté par défaut=>en commentaite symbol AdrDep=$c0 ; adresse du 1er digit (poids fort) symbol RegLum=$8c ; réglage luminosité $80 + 8(allumé, 0:éteint) + 0 à 7(intensité) setfreq m16 ;pas plus pour garder time en secondes (si necessaire) pullup %1110 ;activation des résistances pullup sur dirs=%01111 ;pour activer les valeurs I/O pin dp=$80 ;pour allumage DP ;clk=1: dio=1: dio=0 ; I2CStart ;Octet=TypeAdr ;Mode d'adresse, en REM cause incrémenation auto par défaut ;gosub I2CEnvoiOctet ;clk=0: dio=0 : clk=1 : dio=1 ;I2CStop clk=1: dio=1: dio=0 ; I2CStart ; Octet=RegLum ;Réglage luminosité gosub I2CEnvoiOctet clk=0: dio=0 : clk=1 : dio=1 ;I2CStop ;boucle principale ******************************************** Do readadc10 ADC,nombre gosub Affnbre loop ;******* Découpage du nombre en chiffres ************ Affnbre: clk=1: dio=1: dio=0 ; I2CStart ; Octet=AdrDep ;synchro adresse départ gosub I2CEnvoiOctet div=1000 ;initialisation diviseur pour 4 chiffres for j=1 to 4 Chiffre=Nombre/Div gosub DecTo7seg ;octet contiendra la descrption de chiffre en segments ;******** ajout points centraux si ncessaire *************
; if j=2 then
; octet=octet | dp ;ajout points centraux ; endif ;*********************************************** gosub I2CEnvoiOctet Nombre=Nombre//Div ;on garde le reste de la division Div=Div/10 ;prochain diviseur next j clk=0: dio=0 : clk=1 : dio=1 ;I2CStop return ;******* Envoi des chiffres (octet) bit à bit dans le registre ******** I2CEnvoiOctet: ;lecture de b0 bit à bit de bit0 à bit8 poids faible en tête. for i=1 to 8 ; envoi de l'octet clk=0 dio=bit0 ;la broche dio prend la valeur de bit0 Octet = Octet/2 ;décalage à droite => bit1 devient bit0 clk=1 next i clk=0 : clk=1 : clk=0 ; traitement ACK return ;****** Conversion des chiffres en segments DecTo7seg: lookup Chiffre,($3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f), Octet ; 0-9 uniquement return