;;---------------------------------------------------- ;; PIC configuration ;;---------------------------------------------------- list p=16f84 radix dec include "p16f84.inc" __CONFIG _CP_OFF & _WDT_OFF & _HS_OSC ;;---------------------------------------------------- ;; Exported tempo functions (for 4MHz quartz) ;;---------------------------------------------------- global _tempo_50us global _tempo_100ms ;;---------------------------------------------------- ;; Code ;;---------------------------------------------------- tempo code CBLOCK 0x0C vWait1, vWait2, vWait3; ENDC ; * Tempo 500µS 1+1+165*(1+2)+1+2=500µS _tempo_50us MOVLW 0xA5 ; 1 cy MOVWF vWait1 ; 1 cy _T1 DECFSZ vWait1, f ; 1 cy GOTO _T1 ; 2 cy NOP ; 1 cy RETURN ; 2 cy ; * Tempo 100ms 1+1+198*(2+500µS+1+2)+6+2=100'000µS = 100 mS _tempo_100ms MOVLW 0xC6 ; 1 cy MOVWF vWait2 ; 1 cy _T2 CALL _tempo_50us ; 2 cy + 500µS DECFSZ vWait2, f ; 1 cy GOTO _T2 ; 2 cy NOP ; NOP ; NOP ; NOP ; NOP ; NOP ; 6 cy RETURN ; 2 cy end