Z8279 EQU 08701H //8279状态/命令口地址 D8279 EQU 08700H //8279 数据口地址
LEDMOD EQU 10H //左端输入八位字符显示 //外部译码键扫描方式,双键互锁 LEDFEQ EQU 38H //扫描速率 LEDCLS EQU 0D1H //清除 LEDWR0 EQU 80H //设定的将要写入的显示RAM地
址 ORG 0000H AJMP START ORG 0040H START: MOV SP,#60H LCALL INIT8279 //初始化8279 WAIT:
MOV DPTR,#Z8279 MOVX A,@DPTR ANL A,#0FH JZ WAIT MOV A,#40H MOVX @DPTR,A MOV DPTR,#D8279 MOVX A,@DPTR
ANL A,#3FH MOV R4,#00H MOV R5,A LCALL DISLED SJMP WAIT
INIT8279: //8279初始化子程序 PUSH DPH //保存现场 PUSH DPL PUSH ACC LCALL DELAY //延时 MOV DPTR ,#Z8279
MOV A,#LEDMOD //置8279工作方式 MOVX @DPTR,A MOV A,#LEDFEQ //置键盘扫描速率 MOVX @DPTR,A MOV A,#LEDCLS //清除 LED 显示 MOVX @DPTR,A
LCALL DELAY //延时 MOV DPTR,#Z8279 MOV A,#90H MOV DPTR,#D8279 MOV A,#40H MOVX @DPTR,A MOV A,#40H
MOVX @DPTR,A MOV A,#0H MOVX @DPTR,A MOV A,#0H MOVX @DPTR,A MOV A,
#0EFH MOVX @DPTR,A MOV A,#27H MOVX @DPTR,A MOV A,#5BH MOVX @DPTR,A MOV A,#7FH MOVX @DPTR,A
POP ACC //恢复现场 POP DPL POP DPH RET 显示字符子程序
输入:R4,位置:R5 DISLED:
PUSH DPH //保存现场 PUSH DPL PUSH ACC MOV A,#LEDWR0 //置显示起始地址
ADD A,R4 //加位置偏移量 MOV DPTR,#Z8279
MOVX @DPTR,A //设定显示位置 MOV DPTR,#LEDSEG //置显示常数表起始位置 MOV A,R5 MOVC A,@A+DPTR //查表 MOV DPTR,#D8279
MOVX @DPTR,A //显示数据 POP ACC //恢复现场 POP DPL POP DPH RET DELAY: //延时子程序 PUSH 0 //保存现场 PUSH 1 MOV 0,#0H DELAY1: MOV 1,#0H DJNZ 1,$ DJNZ 0,DELAY1 POP 1 //恢复现场 POP 0 RET LEDSEG:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7' DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F' DB 6DH,02H,08H,00H,59H,0FH,76H;'U,-,_,I,O,P' END
因篇幅问题不能全部显示,请点此查看更多更全内容