HORLOGE PROGRAMMABLE Réaliser par : ilyas mimouni – mimouni@outlook HORLOGE PROGRAMMABLE Réaliser par : ilyas mimouni – mimouni@outlook.com
Schéma électronique complet
Circuit imprimé
BOITIER MARCHE OUT RH RHM RHA H M ARRET MODE M/A
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.
Définition une macro WRITEE adresse,donnée 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 L’appel de la macro prédéfinie
Macro d’écriture dans EEPROM ;--------------Macro ecriture------------------------ writee macro affiwrite,aff movlw affiwrite ; charger adresse d‘ écriture movwf EEADR ; placer dans registre movlw aff ; charger adresse d‘ écriture movwf EEDATA ; placer data dans registre bsf STATUS , RP0 ; passer en banque1 bcf INTCON , GIE ; interdire interruptions bsf EECON1 , WREN ; autoriser accès écriture movlw 0x55 ; charger 0x55 movwf EECON2 ; envoyer commande movlw 0xAA ; charger 0xAA bsf EECON1 , WR ; lancer cycle d‘ écriture bcf EECON1 , WREN ; verrouiller prochaine écriture bsf INTCON , GIE ; ré autoriser interruptions bcf 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 Début de programme Lecture sur l’EEPROM Et copie sur variable Bouclage
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 Placer L’adresse dans EEADR Récupérer la donnée dans EEDATA Par W Mettre RD de EECONI à 1 Remarque: L’appel de ces différents registres exige des changements de banques.
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écroissante En 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 Décrémentation du registre demi_seconde Si demi_seconde =0 Recharge du registre demi_seconde puis on Complémente les LEDs Si demi_seconde=0 Décrémentation du reg. minute Si minute = 0 Si minute = 0 Recharge du registre minute
Recharge du registre aff1 Par 0x0A Décrémentation de aff1 Si aff1 = 0 Recharge du registre aff1 Par 0x0A Si aff1 =0 Décrémentation de aff2 Si aff2 = 0 Recharge du registre aff2 0x06 Si aff2 =0 Décrémentation de aff3 Si aff3 = 0 Recharge du registre aff3 0x0A Si aff3 =0 Décrémentation de aff4 Si aff4 = 0 Recharge du registre aff4 0x03 Si aff4 =0
Routine de restauration des registres des registres W et STATUS Si aff4 = 1 Mise à zéro du TOIF Routine de restauration des registres des registres W et STATUS Vérification du contenu de aff4 Recharge du registre aff3 Par 0x04 Si aff4 =1 ( qui vaut 2 a l’affichage )
Configuration des boutons
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