📄 key_led1.lst
字号:
页 1
09-11-05
10:22:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
clk bit p2.5
dout bit p2.6
en bit p2.7
KEYBUF EQU 35H
KEY EQU 39H
DISPBUF EQU 20H
FLAG0 EQU 0
;***************************************************
ORG 000H
0000 2100 AJMP START
;***************************************************
ORG 0100H
START:
0100 787F MOV R0,#7FH
0102 E4 CLR A
0103 F6 CLRRAM: MOV @R0,A
0104 D8FD DJNZ R0,CLRRAM
0106 75817D MOV SP,#7DH
;***************************************************
0109 7580FF MOV P0,#0FFH
010C 7590FF MOV P1,#0FFH
010F 75A0FF MOV P2,#0FFH
0112 75B0FF MOV P3,#0FFH
;***************************************************
;初始化参数
;***************************************************
;主程序
;***************************************************
WAIT:
0115 120126 lcall keyinput ;是否有键盘输入
0118 E500 MOV A,FLAG0
011A B401F8 CJNE A,#1H,WAIT
011D 12027A LCALL SETDISPBUF
0120 12029C LCALL TSLED
0123 020115 LJMP WAIT
;******************************************************
KEYINPUT:
0126 753502 MOV KEYBUF,#2
;
0129 7580FF MOV P0,#0FFH
012C C284 CLR P0.4
012E E580 MOV A,P0
0130 540F ANL A,#0FH
0132 640F XRL A,#0FH ;有键按下吗?
0134 6047 JZ NOKEY1
0136 1202DA LCALL DELY10US
0139 E580 MOV A,P0
C:\DOCUMENTS AND SETTINGS\ZHANGTAO\桌面\汇编程序\已调通的程序\LED\KEY_LED1.ASM
页 2
09-11-05
10:22:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
013B 540F ANL A,#0FH
013D 640F XRL A,#0FH ;真的有键按下吗?
013F 603C JZ NOKEY1
0141 E580 MOV A,P0
0143 540F ANL A,#0FH
0145 B40E06 CJNE A,#0EH,NK1 ;键码的值是多少?P0.4xP0.0
0148 753503 MOV KEYBUF,#3
014B 02016A LJMP DK1
014E B40D06 NK1: CJNE A,#0DH,NK2 ;键码是P0.4xP0.1 ?
0151 753502 MOV KEYBUF,#2
0154 02016A LJMP DK1
0157 B40B06 NK2: CJNE A,#0BH,NK3 ;键码是P0.4xP0.2 ?
015A 753501 MOV KEYBUF,#1
015D 02016A LJMP DK1
0160 B40706 NK3: CJNE A,#07H,NK4 ;键码是P0.4xP0.3 ?
0163 753500 MOV KEYBUF,#0
0166 02016A LJMP DK1
0169 00 NK4: NOP
DK1:
016A E535 MOV A,KEYBUF
016C 9002E4 MOV DPTR,#TAB
016F 93 MOVC A,@A+DPTR ;查表,取键值
0170 F539 MOV KEY,A
0172 750001 MOV FLAG0,#1 ;FLAG0=1
0175 E580 DK1A: MOV A,P0
0177 540F ANL A,#0FH
0179 640F XRL A,#0FH ;按键有没有松开?
017B 70F8 JNZ DK1A
NOKEY1:
017D 7580FF MOV P0,#0FFH
0180 C285 CLR P0.5
0182 E580 MOV A,P0
0184 540F ANL A,#0FH
0186 640F XRL A,#0FH
0188 6047 JZ NOKEY2
018A 1202DA LCALL DELY10US
018D E580 MOV A,P0
018F 540F ANL A,#0FH
0191 640F XRL A,#0FH
0193 603C JZ NOKEY2
0195 E580 MOV A,P0
0197 540F ANL A,#0FH
0199 B40E06 CJNE A,#0EH,NK5
019C 753507 MOV KEYBUF,#7
019F 0201BE LJMP DK2
01A2 B40D06 NK5: CJNE A,#0DH,NK6
01A5 753506 MOV KEYBUF,#6
C:\DOCUMENTS AND SETTINGS\ZHANGTAO\桌面\汇编程序\已调通的程序\LED\KEY_LED1.ASM
页 3
09-11-05
10:22:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
01A8 0201BE LJMP DK2
01AB B40B06 NK6: CJNE A,#0BH,NK7
01AE 753505 MOV KEYBUF,#5
01B1 0201BE LJMP DK2
01B4 B40706 NK7: CJNE A,#07H,NK8
01B7 753504 MOV KEYBUF,#4
01BA 0201BE LJMP DK2
01BD 00 NK8: NOP
DK2:
01BE E535 MOV A,KEYBUF
01C0 9002E4 MOV DPTR,#TAB
01C3 93 MOVC A,@A+DPTR
01C4 F539 MOV KEY,A
01C6 750001 MOV FLAG0,#1 ;FLAG0=1
01C9 E580 DK2A: MOV A,P0
01CB 540F ANL A,#0FH
01CD 640F XRL A,#0FH
01CF 70F8 JNZ DK2A
NOKEY2:
01D1 7580FF MOV P0,#0FFH
01D4 C286 CLR P0.6
01D6 E580 MOV A,P0
01D8 540F ANL A,#0FH
01DA 640F XRL A,#0FH
01DC 6047 JZ NOKEY3
01DE 1202DA LCALL DELY10US
01E1 E580 MOV A,P0
01E3 540F ANL A,#0FH
01E5 640F XRL A,#0FH
01E7 603C JZ NOKEY3
01E9 E580 MOV A,P0
01EB 540F ANL A,#0FH
01ED B40E06 CJNE A,#0EH,NK9
01F0 75350B MOV KEYBUF,#0bh
01F3 020212 LJMP DK3
01F6 B40D06 NK9: CJNE A,#0DH,NK10
01F9 75350A MOV KEYBUF,#0ah
01FC 020212 LJMP DK3
01FF B40B06 NK10: CJNE A,#0BH,NK11
0202 753509 MOV KEYBUF,#9
0205 020212 LJMP DK3
0208 B40706 NK11: CJNE A,#07H,NK12
020B 753508 MOV KEYBUF,#8
020E 020212 LJMP DK3
0211 00 NK12: NOP
DK3:
0212 E535 MOV A,KEYBUF
C:\DOCUMENTS AND SETTINGS\ZHANGTAO\桌面\汇编程序\已调通的程序\LED\KEY_LED1.ASM
页 4
09-11-05
10:22:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
0214 9002E4 MOV DPTR,#TAB
0217 93 MOVC A,@A+DPTR
0218 F539 MOV KEY,A
021A 750001 MOV FLAG0,#1 ;FLAG0=1
021D E580 DK3A: MOV A,P0
021F 540F ANL A,#0FH
0221 640F XRL A,#0FH
0223 70F8 JNZ DK3A
NOKEY3:
0225 7580FF MOV P0,#0FFH
0228 C287 CLR P0.7
022A E580 MOV A,P0
022C 540F ANL A,#0FH
022E 640F XRL A,#0FH
0230 6047 JZ NOKEY4
0232 1202DA LCALL DELY10US
0235 E580 MOV A,P0
0237 540F ANL A,#0FH
0239 640F XRL A,#0FH
023B 603C JZ NOKEY4
023D E580 MOV A,P0
023F 540F ANL A,#0FH
0241 B40E06 CJNE A,#0EH,NK13
0244 75350F MOV KEYBUF,#0fh
0247 020266 LJMP DK4
024A B40D06 NK13: CJNE A,#0DH,NK14
024D 75350E MOV KEYBUF,#0eH
0250 020266 LJMP DK4
0253 B40B06 NK14: CJNE A,#0BH,NK15
0256 75350D MOV KEYBUF,#0dH
0259 020266 LJMP DK4
025C B40706 NK15: CJNE A,#07H,NK16
025F 75350C MOV KEYBUF,#0ch
0262 020266 LJMP DK4
0265 00 NK16: NOP
DK4:
0266 E535 MOV A,KEYBUF
0268 9002E4 MOV DPTR,#TAB
026B 93 MOVC A,@A+DPTR
026C F539 MOV KEY,A
026E 750001 MOV FLAG0,#1 ;FLAG0=1
0271 E580 DK4A: MOV A,P0
0273 540F ANL A,#0FH
0275 640F XRL A,#0FH
0277 70F8 JNZ DK4A
NOKEY4:
C:\DOCUMENTS AND SETTINGS\ZHANGTAO\桌面\汇编程序\已调通的程序\LED\KEY_LED1.ASM
页 5
09-11-05
10:22:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
0279 22 RET
;**********************************************
;填充显示缓冲区
;input: key,dispbuf
;output: dispbuf
;use: A,R0,R1,R2
;**********************************************
SETDISPBUF:
027A 7820 MOV R0,#DISPBUF
027C 7400 MOV A,#0H ;小数点位/不显示
027E F6 MOV @R0,A
027F 7408 MOV A,#8
0281 28 ADD A,R0
0282 F8 MOV R0,A ;R0=DISPBUF+8指向蜂鸣器设定位
0283 F9 MOV R1,A
0284 19 DEC R1
0285 19 DEC R1
0286 7400 MOV A,#0 ;蜂鸣器不鸣叫
0288 F6 MOV @R0,A
0289 18 dec r0
028A 7401 mov a,#01H ;识别码=01
028C F6 mov @r0,a
028D 18 DEC R0
;
028E 7A00 MOV R2,#0
YIWEI: ;缓冲区逐次后移一位
0290 18 DEC R0
0291 E6 MOV A,@R0
0292 F7 MOV @R1,A
0293 0A INC R2
0294 19 DEC R1
0295 BA05F8 CJNE R2,#5,YIWEI
0298 E539 MOV A,KEY
029A F6 MOV @R0,A ;设置第一位数码管的值(key)
029B 22 RET
;*********************************************************
;//串行发送DTLED-6显示
;//dispbuf0-dispbuf1-dispbuf2-dispbuf3-dispbuf4-dispbuf5-dispbuf6-dispbuf7-dispbuf8
;// 小数点 - 数码管1- 数码管2- 数码管3- 数码管4- 数码管5- 数码管6-ID识别码-BZ识别码
;//00000xxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx
;//小数点=1~6,其它为不显示
;//数码管1-6=0~15,
;//ID识别码=0~15(本开发板ID=01)
;//BZ识别码=BZ.3为蜂鸣输出控制位,0=关闭,1=打开
;// BZ0~2为蜂鸣频率输出设定为,000=不分频, 最高频率输出=4800Hz;
;// 001=一次分频,频率输出=4800/ 2 =2400Hz;
;// 010=二次分频,频率输出=4800/ 4 =1200Hz;
;// 011=三次分频,频率输出=4800/ 8 =600Hz;
C:\DOCUMENTS AND SETTINGS\ZHANGTAO\桌面\汇编程序\已调通的程序\LED\KEY_LED1.ASM
页 6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -