iorwf porta, f ;
MOV lw 3 ; Repeat 3 times.
MOV wf I ;
Li_fsloop
bsf portb, LCD_LE ; Strobe.
nop ;
nop ;
bcf portb, LCD_LE ;
MOV lw 5 ; Wait >= 4.1 milliseconds.
call wait_ms ;
decfsz I ; Continue if I > 0.
goto Li_fsloop ;
; *** Function set (Dummy #2) ***
MOV lw 11110000b ; Function set.
andwf porta, f ; (Data bus = 4 bits)
MOV lw 00000010b ;
iorwf porta, f ;
bsf portb, LCD_LE ; Strobe.
nop ;
nop ;
bcf portb, LCD_LE ;
call wait_100us ; Wait >= 100 microseconds.
; *** Function set (Real) ***
MOV lw L_FNCSET ; Set real function.
call set_LCD ;
; *** Others ***
MOV lw L_DSPOFF ; Display OFF.
call set_LCD ;
call cls ; Clear display.
MOV lw L_ENTSET ; Set entry mode.
call set_LCD ;
MOV lw L_DSPON ; Display ON.
call set_LCD ;
; *** Return from subroutine ***
return
;-------------------------------------------------------------------------
; Display fixed message.
; Input : None.
; Output: None.
; W register, variable LCD_DATA & LCD_FXMPTR will be broken.
;-------------------------------------------------------------------------
dsp_fixmsg
; *** Display message ***
MOV lw L_DDINP1 ; Set cursor to "Input".
call set_LCD ; (Header message)
MOV lw s_xpshdr ; Display header message of
MOV wf LCD_FXMPTR ; input channel.
call dsp_fixstr ; (External prescaler)
; *** Return from subroutine ***
return
;-------------------------------------------------------------------------
; Display status.
; Input : INT_PSC (Internal prescaler mode)
; EXT_PSC (External prescaler mode)
; Output: None.
; W register, variable LCD_FXMPTR will be broken.
;-------------------------------------------------------------------------
dsp_status
; *** Display internal prescaler mode ***
MOV lw L_DDMODE ; Set cursor to "Mode".
call set_LCD ;
上一页 [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单片机