MOV lw 7 ; Wait 10 microseconds.
MOV wf I+3 ;
;
decfsz I+3 ;
goto $-1 ;
nop ;
nop ;
nop ;
; *** Pulse counter (Gate time = 10 microseconds * I) ***
pulse_cnt
MOV f tmr0, w ; Increment pulse counter.
MOV wf RTC_NEW ;
MOV f RTC_OLD, w ;
subwf RTC_NEW, w ;
;
addwf CNT+0, f ;
MOV lw 1 ;
btfsc status, c ;
addwf CNT+1, f ;
btfsc status, c ;
addwf CNT+2, f ;
MOV f RTC_NEW, w ; OLD <- NEW.
MOV wf RTC_OLD ;
MOV lw 1 ; Decrement counter for sub loop.
subwf I+0, f ;
btfss status, c ;
subwf I+1, f ;
btfss status, c ;
subwf I+2, f ;
nop ; Trim.
MOV f I+0, w ; Continue if I > 0.
iorwf I+1, w ;
iorwf I+2, w ;
btfss status, z ;
goto pulse_cnt ;
; *** Return from subroutine ***
return
;-------------------------------------------------------------------------
; Init LCD.
; Input : None.
; Output: Port A, Port B (Data output port for LCD)
; LCD_RSEL (LCD register select which always 0)
; W register & variable LCD_DATA, I will be broken.
;
; Notes: Waiting time is about execution time * 2.7.
;-------------------------------------------------------------------------
init_LCD
; *** Power ON wait ***
MOV lw 100 ; Power ON wait for LCD.
call wait_ms ; (>= 15 milliseconds)
; *** Function set (Dummy #1) ***
clrf LCD_RSEL ; RS = ’0’.
bcf portb, LCD_RS ; (Default)
MOV lw 11110000b ; Function set.
andwf porta, f ; (Data bus = 8 bits)
MOV lw 00000011b ;
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] 下一页
本文关键字:单片机 PIC单片机,单片机-工控设备 - PIC单片机