READEEL macro adeeprom ; macro avec paramètre adressage immédiat ou Litteral style READEE 3 movlw adeeprom ; charger adresse eeprom movwf EEADR ; adresse à lire dans registre EEADR bsf STATUS , RP0 ; passer en banque1 bsf 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 READEE ; l'Adresse se trouve dans W movwf EEADR ; adresse à lire dans registre EEADR BANK1 bsf EECON1 , RD ; lancer la lecture EEPROM BANK0 movf EEDATA , w ; charger valeur lue dans W RETURN ; fin de la macro WRITEE macro addwrite ; la donnée se trouve dans W LOCAL loop ; étiquette locale movwf EEDATA ; placer data dans registre movlw addwrite ; charger adresse d'écriture movwf EEADR ; placer dans registre loop bcf INTCON , GIE ; interdire interruptions btfsc INTCON , GIE ; tester si GIE bien à 0 goto loop ; non, recommencer bsf STATUS , RP0 ; passer en banque1 bcf EECON1 , EEIF ; effacer flag de fin d'écriture bsf EECON1 , WREN ; autoriser accès écriture movlw 0x55 ; charger 0x55 movwf EECON2 ; envoyer commande movlw 0xAA ; charger 0xAA movwf EECON2 ; envoyer commande 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