MOV A,K1_C ;K1_C值送入A CJNE A,#04H,KEY4 ;K1键是否第四次按? MOV DPTR,#MENU4 ;是,存入MENU4信息 MOV A,#1 ;设置第一行显示 CALL LCD_PRINT ;调用显示字符子程序 CLR TR0 ;启动中断 KEY4:
RET ;子程序返回
;――――――――――――― LCD显示 ―――――――――――――― ; LCD控制子程序 SET_LCD: CLR E
ACALL INIT_LCD ;初始化 LCD MOV R5,#10 ACALL DELAY
MOV DPTR,#LMESS1 ;指针指到显示消息1 MOV A,#1 ;显示在第一行 ACALL LCD_PRINT ;调用显示字符子程序 MOV DPTR,#LMESS2 ;指针指到显示消息2 MOV A,#2 ;显示在第二行 ACALL LCD_PRINT ;调用显示字符子程序 RET LMESS1: DB " ",0 ;LCD 第一行显示消息 LMESS2: DB "TIME ",0 ;LCD 第二行显示消息 ;LCD初始化子程序 INIT_LCD:
MOV A,#38H ;设置8位、2行、5x7点阵 ACALL WR_COMM ; 调用写指令子程序 ACALL DELAY1 ;调用延时子程序 MOV A,#0CH ;开显示,光标不闪烁
ACALL WR_COMM ;调用写指令子程序 ; ACALL DELAY1 ;调用延时子程序 MOV A,#01H ;清除 LCD 显示屏 ACALL WR_COMM ;调用写指令子程序 ; ACALL DELAY1 ;调用延时子程序 RET ;写指令子程序
WR_COMM: MOV P1,A
CLR RS ;RS=0,选择指令寄存器 CLR RW ;RW=0,选择写模式 SETB E ;E=1,允许读/写LCM ACALL DELAY1 ;调用延时子程序 CLR E ;E=0,禁止读/写LCM
;