horloge programmable réaliser par : ilyas mimouni – [email protected]@outlook.com
TRANSCRIPT
HORLOGE PROGRAMMABLERéaliser par : ilyas mimouni – [email protected]
Schéma électronique complet
Circuit imprimé
BOITIER
H M RH RHM RHA
MODEM/A
MARCHE
ARRET
OUT
ECRITURE EN EEPROM
Définitions
emplacements mémoire dans la mémoire EEPROM.
4 pour heure de marche 4 pour l’heure d’arrêt.
• Charger l’adresse dans EEADR• Charger la donnée dans EEDATA
• Interdire les Interruptions• Autoriser l’accès en écriture
Programme de sécurisation
Lancer l’écriture
Définition une macroWRITEE adresse,donnée
L’appel de la macro prédéfinie
Macro d’écriture dans EEPROM
;--------------Macro ecriture------------------------ writee macro affiwrite,aff
movlw affiwrite ; charger adresse d‘ écrituremovwf EEADR ; placer dans registremovlw aff ; charger adresse d‘ écrituremovwf EEDATA ; placer data dans registre
bsf STATUS , RP0 ; passer en banque1bcf INTCON , GIE ; interdire interruptionsbsf EECON1 , WREN ; autoriser accès écriture
movlw 0x55 ; charger 0x55movwf EECON2 ; envoyer commandemovlw 0xAA ; charger 0xAAmovwf EECON2 ; envoyer commande
bsf EECON1 , WR ; lancer cycle d‘ écriture
bcf EECON1 , WREN ; verrouiller prochaine écriturebsf INTCON , GIE ; ré autoriser interruptionsbcf STATUS , RP0 ; repasser en banque0
endm
Appelle de la Macro
L’écriture se fait après le réglage de l’heure
writee ‘adresse EEPROM’,’donnée a écrire’
LECTURE D’EEPROM
Organigramme
Initialisations
Lecture sur l’EEPROM Et copie sur variable
Bouclage
Début de programme
Les registres d’accès en lecture
Nous aurons à utiliser 4 registres pour lecture ou écriture, dans notre cas 3:
-EEDATA: registre de données
-EEADR: Précision de l’adresse concernée par l’opération
-EECONI: contient le bit RD de démarrage du cycle de lecture
Lecture de données
Remarque: L’appel de ces différents registres exige des changements de banques.
Placer L’adresse dans EEADR
Récupérer la donnée dans EEDATA
Par W
Mettre RD de EECONI à 1
MACRO
La répitition de cette procédure mène à l’idée
de la macro: READEE macro adeeprom ; macro avec 1paramètre
movlw adeeprom ; charger adresse eeprom
movwf EEADR ; adresse à lire dans EEADR bsf STATUS , RP0 ; passer en banque1bsf
EECON1 , RD ; lancer la lecture EEPROM
bcf STATUS , RP0 ; repasser en banque0
movf EEDATA , w ; charger valeur lue dans W
Endm ; fin de la macro
procédure de test sur les afficheurs H1 H0 : M1 M0
Comparaison des afficheurs avec l’heure actuelle De façon décroissanteEn cas d inégalité, suivi normal.
En cas d égalité ,commande du système ,marche ou arrêt .La répitition de la procédure se fait à chaque minute
READEE ‘adresse en EEPROM’
AFFICHAGE DES VALEURS
ORGANIGRAMME
Activation de l’afficheur et masquage de RA4
Codage pour tenir compte des techniques utilisées et pour
7 segments
Masquage pour ne pas modifier
le RB7
Écriture sur le port B
Gestion de l’interruption générée par le timer
Gestion de l’interruption générée par le timer
Routine de sauvegarde des registres W et status
Recharge du registredemi_seconde puis on
Complémente les LEDs
Si demi_seconde=0Si demi_seconde =0
Si minute = 0
Décrémentation du registre demi_seconde
Décrémentation du reg. minute
Si minute = 0
Recharge du registre minute
Décrémentation de aff1
Recharge du registre aff1Par 0x0A
Si aff1 =0Si aff1 = 0
Recharge du registre aff20x06
Si aff2 =0
Décrémentation de aff2
Si aff2 = 0
Recharge du registre aff30x0A
Si aff3 =0
Décrémentation de aff3
Si aff3 = 0
Décrémentation de aff4
Si aff4 = 0
Recharge du registre aff40x03
Si aff4 =0
Vérification du contenu de aff4
Si aff4 = 1
Mise à zéro du TOIFRoutine de restauration des registres
des registres W et STATUS
Recharge du registre aff3Par 0x04
Si aff4 =1 ( qui vaut 2 a l’affichage )
Configuration des boutons
FIN affichageFIN affichage
FIN affichage configuration en entré des pins
Vérifier les pins modes si ils sont a 0
Vérifier les pins minutes et secondes
Et incrémenter les afficheur
Affichage