30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PCPilePC 21 Utilisation et gestion du compteur de programme Program Counter (PC) et de la pile (Stack) Lors du déroulement dun programme Lors de lappel dun sous-programme Lors dune interruption
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PCPilePC 22
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 23 PilePC 30 Pile 23
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PCPile 23 PC 31
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 32 Pile 23
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 33 Pile 23 PC 40 Pile 33 23
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 41 Pile 33 23
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 42 Pile 33 23
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 43 Pile 33 23
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 44 Pile 33 23
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 45 Pile PC 42
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 43 Pile 33 23
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 44 Pile PC 45
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 46 Pile PC 33 Pile 23
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 34 Pile 23 PC 35
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 36 Pile 23 PC 23 Pile
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 24 PilePC 25
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 26 Pile
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 27 Pile
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page PC 28 Pile
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page avec interruptions 04bsf L_ALARME 05call Tempo_3s 06bcf L_ALARME 07retfie Interruptions PC 41 Pile PC 04 Pile
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page 04bsf L_ALARME 05call Tempo_3s 06bcf L_ALARME 07retfie Interruptions PC 05 Pile avec interruptions
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page 04bsf L_ALARME 05call Tempo_3s 06bcf L_ALARME 07retfie Interruptions PC 06 Pile PC 50 Pile avec interruptions
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page 04bsf L_ALARME 05call Tempo_3s 06bcf L_ALARME 07retfie Interruptions PC 06 Pile PC 50 Pile avec interruptions
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page 04bsf L_ALARME 05call Tempo_3s 06bcf L_ALARME 07retfie Interruptions PC 07 Pile avec interruptions
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page 04bsf L_ALARME 05call Tempo_3s 06bcf L_ALARME 07retfie Interruptions PC 08 Pile Pile PC 41 avec interruptions
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page 04bsf L_ALARME 05call Tempo_3s 06bcf L_ALARME 07retfie Interruptions PC 42 Pile avec interruptions
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page 04movwf W_temp 05swapf STATUS,w 06bcf STATUS,RP0 07movwf Satus_temp 08bsf L_ALARME 09call Tempo_3s 10bcf L_ALARME 11swapf Status_temp,w 12movwf STATUS 13swapf W_temp,f 14swapf W_temp,w 15retfie Interruptions Sauvegarde du contexte Restitution du contexte avec interruptions PilePC
30Tempo_50msmovlw d50 31movwf Cmpt_50ms 32Loop_50mscall Tempo_1ms 33decfsz Cmpt_50ms,f 34goto Loop_50ms 35return 20movlw d10 21movwf Compteur 22Attendcall Tempo_50ms 23decfsz Compteur,f 24goto Attend 25movf Consigne,w 26sublw d5 27btfsc STATUS,Z 28goto Alarme 40Tempo_1msmovlw d249 41movwf Cmpt_1ms 42Loop_1msnop 43decfsz Cmpt_1ms,f 44goto Loop_1ms 45return Appels de sous-programmes Programme principalSous-programmes EPAI Fribourg / Hervé Page 04movwf W_temp 05swapf STATUS,w 06bcf STATUS,RP0 07movwf Satus_temp 08call Int_rb0 09swapf Status_temp,w 10movwf STATUS 11swapf W_temp,f 12swapf W_temp,w 13retfie Interruptions avec interruptions PilePC