RET
LC1: CALL WDATA ;写入数据
INC DPTR ;指针加1
JMP FILL ;继续填入字符
RET
;---------------------------------------------------
CLR_LINE: ;清除该行 LCD 的字符
MOV R0,#24
CL1: MOV A,#’ ’
CALL WDATA
DJNZ R0,CL1
RET
;-----------------------------------------------------
; 写指令、数据使能子程序
;-----------------------------------------------------
ENABLE: ;写指令使能
CLR LCD_RS ;RS=L,LCD_RW=L,D0-D7=指令码,E=高脉冲
CLR LCD_RW
SETB LCD_EN
CALL DELAY0
CLR LCD_EN
RET
ENABLE1: ;写数据使能
SETB LCD_RS ;RS=H,RW=L,D0-D7=数据,E=高脉冲
CLR LCD_RW
SETB LCD_EN
CALL DELAY0
CLR LCD_EN
RET
DELAY0: MOV R7,#250 ;延时500微秒
DJNZ R7,$
RET
;----------------------------------------------------
;写入命令子程序
;----------------------------------------------------
WCOM: ;以8位控制方式将命令写至LCD
MOV P0,A ;写入命令
CALL ENABLE
RET
;----------------------------------------------------
;写入数据子程序
;----------------------------------------------------
WDATA: ;以8位控制方式将数据写至LCD
MOV P0,A ;写入数据
CALL ENABLE1
RET
;---------------------------------------------------
;在 LCD 第二行显示字符
;A=ASC DATA, B=LINE X POS
;---------------------------------------------------
LCDP2: ;在LCD的第二行显示字符
PUSH ACC ;
MOV A,B ;设置显示地址
ADD A,#0C0H ;设置LCD的第二行地址
CALL WCOM ;写入命令
POP ACC ;由堆栈取出A
CALL WDATA ;写入数据
RET
;-------------------------------------------------------
;ASCII 转换并在第二行显示数字子程序
;-------------------------------------------------------
CONV: ; MOV A,T_G
MOV LCD_X,#6 ;设置位置
; CALL SHOW_DIG2
MOV A,T_H
;INC LCD_X ;加载小时数据
CALL SHOW_DIG2 ;显示数据
MOV A,T_M ;加载分钟数据
INC LCD_X ;设置位置
CALL SHOW_DIG2 ;显示数据
MOV A,T_S ;加载秒数数据
INC LCD_X ;设置位置
CALL SHOW_DIG2 ;显示数据
RET
;----------------------------------------------------
SHOW_DIG2:
MOV B,#16
DIV AB
ADD A,#30H
PUSH B
MOV B,LCD_X
CALL LCDP2
上一页 [1] [2] [3] [4] [5] 下一页
本文关键字:暂无联系方式51单片机,单片机-工控设备 - 51单片机