JNB P1.2,KEY3 ;P1.2为0(键按下)转KEY3
KEYRET: RET ;无键按下,子程序返回
;按键1功能处理
KEY1: LCALL DL10MS ;延时10MS削抖动
JB P1.0,KEYRET ;是干扰转KEYRET结束
SETB 00H ;置逐字显示方式标志(20H.0=1)
CLR 01H ;
CLR 02H ;
RET ;子程序返回
; 按键2功能处理
KEY2: LCALL DL10MS ;
JB P1.1,KEYRET ;
SETB 01H ;置上移显示方式标志(20H.1=1)
CLR 00H ;
CLR 02H ;
RET ;
; 按键3功能处理
KEY3: LCALL DL10MS ;
JB P1.2,KEYRET ;
SETB 02H ;置左移显示方式标志(20H.2=1)
CLR 01H ;
CLR 00H ;
RET
;
;逐字显示功能程序
FUN0: MOV 30H,#80H ;1帧显示时间控制(约1秒)
MOV 31H,#08H ;换帧跳转步距为8
LJMP DISP1 ;转显示子程序DISP1
; 上移显示功能程序
FUN1: MOV 30H,#0AH ;1帧显示时间控制(约80毫秒)
MOV 31H,#01H ;换帧跳转步距为1
LJMP DISP1 ;转显示子程序DISP1
;左移显示功能程序
FUN2: LJMP DISP2 ;
;
;显示控制程序
DISP1: MOV B,#50H ;显示数据首址
MOV R4,30H ;放入1帧显示时间控制数据
MOV R5,31H ;放入跳转步距控制数据
LOOP: LCALL DISPLAY ;调用显示子程序一次
DJNZ R4,LOOP ;1帧显示时间未到再转LOOP循环
MOV R4,30H ;1帧显示时间到,重装初值
MOV A,B ;
CJNE A,#68H,CONT ;不是末地址转CONT
AJMP START1 ;是末地址,一次显示结束跳回START1
CONT: ADD A,R5 ;次帧扫描首址调整
MOV B,A ;
AJMP LOOP ;转LOOP进行次帧扫描
;
;显示子程序,字符数据从P0口输出,扫描控制字从P2口输出,显示1帧约需8MS
DISPLAY: MOV A,#0FFH ;
上一页 [1] [2] [3] [4] [5] 下一页
本文关键字:程序 显示器 LED电子屏 51单片机,单片机-工控设备 - 51单片机