MOV lw 10 ; Set loop counter &
MOV wf I ; Y.
MOV wf Y+0 ;
clrf Y+1 ;
clrf Y+2 ;
clrf Y+3 ;
; *** Conversion loop (32 bits = 10 digits max) ***
xts_loop
call div_xy ; X <- X / 10.
MOV f EY+0, w ; EY(Lowest digit) <- X mod 10.
addlw ’0’ ; Change to ASCII &
MOV wf indf ; store.
decf fsr ; Set location to next.
decfsz I ;
goto xts_loop ;
; *** Return from subroutine ***
return
;-------------------------------------------------------------------------
; Clear screen. (display)
; Input : None.
; Output: None.
; W register & variable LCD_DATA will be broken.
;-------------------------------------------------------------------------
cls
; *** Clear display ***
MOV lw L_DSPCLR ; Clear display.
MOV wf LCD_DATA ;
call set_LCDcmd ;
MOV lw 5 ; Wait.
call wait_ms ;
; *** Return from subroutine ***
return
;-------------------------------------------------------------------------
; Display fixed string. (ASCIZ string on ROM)
; Input : LCD_FXMPTR (Pointer of fixed ASCIZ string table)
; Output: None.
; W, Index register, variable & LCD_FXMPTR will be broken.
;-------------------------------------------------------------------------
dsp_fixstr
; *** Initialize ***
bsf LCD_RSEL, L_SELDR ; Select data register.
; *** Display loop ***
dfs_loop
call get_fixchr ; Exit if character = NULL.
addlw 0 ;
btfsc status, z ;
goto end_dfs ;
call set_LCD ; Display character.
incf LCD_FXMPTR ; Continue.
goto dfs_loop ;
; *** Return from subroutine ***
end_dfs
clrf LCD_RSEL ; Set to default.
return
;-------------------------------------------------------------------------
; Get character from fixed message table.
; Input : LCD_FXMPTR (Pointer of fixed ASCIZ string table)
; Output: None.
; W register will be broken.
;-------------------------------------------------------------------------
get_fixchr
MOV f LCD_FXMPTR, w ; Caution: Upper byte of PCL
MOV wf pcl ; is always 0.
;-------------------------------------------------------------------------
; Set LCD command for standard operation.
; Input : W register (Command)
; Output: None.
; W register & variable LCD_DATA will be broken.
;-------------------------------------------------------------------------
上一页 [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单片机