📄 ex9-8.sdi
字号:
,,,
,,, ORG 0000H
0000,02 00 30,START,START: LJMP MAIN
,,, ORG 0013H
0013,02 00 8E,, LJMP PKEYI
,,, ORG 0030H
0030,75 81 60,MAIN,MAIN: MOV SP,#60H ;主程序
0033,75 70 00,, MOV 70H,#00 ;设置显示缓冲区初值
0036,75 71 01,, MOV 71H,#01
0039,75 72 02,, MOV 72H,#02
003C,75 73 03,, MOV 73H,#03
003F,75 74 04,, MOV 74H,#04
0042,75 75 05,, MOV 75H,#05
0045,75 76 06,, MOV 76H,#06
0048,75 77 07,, MOV 77H,#07
004B,12 00 53,, LCALL INI79 ;调8279初始化子程序
004E,12 00 67,LOOP,LOOP: LCALL RDIR ;调8279显示更新子程序
0051,80 FB,, SJMP LOOP
,,,
,,,;8279初始化子程序
0053,90 7F FF,INI79,INI79: MOV DPTR,#7FFFH ;8279命令口地址
0056,74 D1,, MOV A,#0D1H ;清0命令
0058,F0,, MOVX @DPTR,A
0059,E0,WNDU,WNDU: MOVX A,@DPTR ;等待8279清0结束
005A,20 E7 FC,, JB ACC.7,WNDU
005D,74 00,, MOV A,#00 ;设置8279为编码扫描方式,两键互锁
005F,F0,, MOVX @DPTR,A
0060,74 34,, MOV A,#34H ;设置8279扫描频率
0062,F0,, MOVX @DPTR,A
0063,75 A8 84,, MOV IE,#84H ;允许8279中断
0066,22,, RET
,,,
,,,;8279显示更新子程序
0067,90 7F FF,RDIR,RDIR: MOV DPTR,#7FFFH ;8279命令口地址
006A,74 90,, MOV A,#90H ;写显示RAM命令
006C,F0,, MOVX @DPTR,A
006D,78 70,, MOV R0,#70H ;显示缓冲器首地址→R0
006F,7F 08,, MOV R7,#8
0071,90 7E FF,, MOV DPTR,#7EFFH
0074,E6,RDLO,RDLO: MOV A,@R0 ;取显示数据
0075,24 05,, ADD A,#5 ;加偏移量
0077,83,, MOVC A,@A+PC ;查表转换为段码数据
0078,F0,, MOVX @DPTR,A
0079,08,, INC R0
007A,DF F8,, DJNZ R7,RDLO
007C,22,, RET
007D,3F 06 5B 4F,SEG,SEG: DB 3fH,06H,5BH,4FH ;段码表
0081,66 6D 7D 07,, DB 66H,6DH,7DH,07H
0085,7F 6F 77 7C,, DB 7FH,6FH,77H,7CH
0089,39 5E 79 71,, DB 39H,5EH,79H,71H
008D,00,, DB 00H
,,,
,,,;8279按键输入中断服务程序
008E,C0 D0,PKEYI,PKEYI: PUSH PSW
0090,C0 82,, PUSH DPL
0092,C0 83,, PUSH DPH
0094,C0 E0,, PUSH ACC
0096,C0 F0,, PUSH B
0098,D2 D3,, SETB PSW.3 ;选工作寄存器1区
009A,90 7F FF,, MOV DPTR,#7FFFH ;8279命令口地址
009D,E0,, MOVX A,@DPTR ;读FIFO状态字
009E,54 0F,, ANL A,#0FH
00A0,60 26,, JZ PKYR ;判FIFO中是否有数据?
00A2,74 40,, MOV A,#40H ;读FIFO命令
00A4,F0,, MOVX @DPTR,A
00A5,90 7E FF,, MOV DPTR,#7EFFH ;8279数据口地址
00A8,E0,, MOVX A,@DPTR ;读数据
00A9,FA,, MOV R2,A
00AA,54 38,, ANL A,#38H ;计算键值
00AC,03,, RR A
00AD,03,, RR A
00AE,03,, RR A
00AF,75 F0 04,, MOV B,#04H
00B2,A4,, MUL AB
00B3,CA,, XCH A,R2
00B4,54 07,, ANL A,#7
00B6,2A,, ADD A,R2
00B7,F5 70,, MOV 70H,A
00B9,75 71 10,, MOV 71H,#16
00BC,75 72 10,, MOV 72H,#16
00BF,75 73 10,, MOV 73H,#16
00C2,75 74 10,, MOV 74H,#16
00C5,75 75 10,, MOV 75H,#16
00C8,D0 F0,PKYR,PKYR: POP B
00CA,D0 E0,, POP ACC
00CC,D0 83,, POP DPH
00CE,D0 82,, POP DPL
00D0,D0 D0,, POP PSW
00D2,32,, RETI
,,,
000E,,,END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -