📄 key.lst
字号:
A51 MACRO ASSEMBLER KEY 09/13/2007 00:48:32 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN KEY.OBJ
ASSEMBLER INVOKED BY: C:\tools\Keil\C51\BIN\A51.EXE KEY.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;实验名称:键盘实验
2 ;功能:每按一个数字键,数码管显示相应的数字。
3 ; 作者:http://www.mcuprog.com
4 ; 05-02-01
5 ;***********************************************************
6
0000 7 ORG 0000H
0000 0130 8 AJMP MAIN
0030 9 ORG 0030H
0030 C2A0 10 MAIN: CLR P2.0 ;用第一个8字数码管显示
0032 758007 11 MOV P0,#07H ;上电显示"P"
0035 7590EF 12 LOOP: MOV P1,#0EFH ;循环扫描按键
0038 114B 13 ACALL SCANKEY
003A 7590DF 14 MOV P1,#0DFH
003D 114B 15 ACALL SCANKEY
003F 7590BF 16 MOV P1,#0BFH
0042 114B 17 ACALL SCANKEY
0044 75907F 18 MOV P1,#07FH
0047 114B 19 ACALL SCANKEY
0049 0135 20 AJMP LOOP
21
22 ;按键扫描程序
004B E590 23 SCANKEY: MOV A,P1 ;读P1口
004D B4EE04 24 CJNE A,#0EEH,NEXT2
0050 7400 25 MOV A,#00H
0052 01BB 26 AJMP SENDLED
0054 B4ED04 27 NEXT2: CJNE A,#0EDH,NEXT3
0057 7401 28 MOV A,#01H
0059 01BB 29 AJMP SENDLED
005B B4EB04 30 NEXT3: CJNE A,#0EBH,NEXT4
005E 7402 31 MOV A,#02H
0060 01BB 32 AJMP SENDLED
0062 B4E704 33 NEXT4: CJNE A,#0E7H,NEXT5
0065 7403 34 MOV A,#03H
0067 01BB 35 AJMP SENDLED
36
0069 B4DE04 37 NEXT5: CJNE A,#0DEH,NEXT6
006C 7404 38 MOV A,#04H
006E 01BB 39 AJMP SENDLED
0070 B4DD04 40 NEXT6: CJNE A,#0DDH,NEXT7
0073 7405 41 MOV A,#05H
0075 01BB 42 AJMP SENDLED
0077 B4DB04 43 NEXT7: CJNE A,#0DBH,NEXT8
007A 7406 44 MOV A,#06H
007C 01BB 45 AJMP SENDLED
007E B4D704 46 NEXT8: CJNE A,#0D7H,NEXT9
0081 7407 47 MOV A,#07H
0083 01BB 48 AJMP SENDLED
49
0085 B4BE04 50 NEXT9: CJNE A,#0BEH,NEXT10
0088 7408 51 MOV A,#08H
008A 01BB 52 AJMP SENDLED
008C B4BD04 53 NEXT10: CJNE A,#0BDH,NEXT_A
008F 7409 54 MOV A,#09H
0091 01BB 55 AJMP SENDLED
0093 B4BB04 56 NEXT_A: CJNE A,#0BBH,NEXT_B
0096 740A 57 MOV A,#0AH
0098 01BB 58 AJMP SENDLED
A51 MACRO ASSEMBLER KEY 09/13/2007 00:48:32 PAGE 2
009A B4B704 59 NEXT_B: CJNE A,#0B7H,NEXT_C
009D 740B 60 MOV A,#0BH
009F 01BB 61 AJMP SENDLED
62
00A1 B47E04 63 NEXT_C: CJNE A,#7EH,NEXT_D
00A4 740C 64 MOV A,#0CH
00A6 01BB 65 AJMP SENDLED
00A8 B47D04 66 NEXT_D: CJNE A,#7DH,NEXT_E
00AB 740D 67 MOV A,#0DH
00AD 01BB 68 AJMP SENDLED
00AF B47B04 69 NEXT_E: CJNE A,#7BH,NEXT_F
00B2 740E 70 MOV A,#0EH
00B4 01BB 71 AJMP SENDLED
00B6 B47708 72 NEXT_F: CJNE A,#77H,SCAN_RE
00B9 740F 73 MOV A,#0FH
00BB 9000C2 74 SENDLED: MOV DPTR,#LEDCODE
00BE 93 75 MOVC A,@A+DPTR
00BF F580 76 MOV P0,A
00C1 22 77 SCAN_RE: RET
78
79
80 ;8字LED的连接方法
81 ;P0.7 P.06 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
82 ; H G F E D C B A
83 ;LED字段码表
00C2 84 84 LEDCODE: DB 84H ;0
00C3 F5 85 DB 0F5H ;1
00C4 46 86 DB 46H ;2
00C5 54 87 DB 54H ;3
00C6 35 88 DB 35H ;4
00C7 1C 89 DB 1CH ;5
00C8 0C 90 DB 0CH ;6
00C9 D5 91 DB 0D5H ;7
00CA 04 92 DB 04H ;8
00CB 14 93 DB 14H ;9
00CC 05 94 DB 05H ;A
00CD 2C 95 DB 2CH ;B
00CE 8E 96 DB 8EH ;C
00CF 64 97 DB 64H ;D
00D0 0E 98 DB 0EH ;E
00D1 0F 99 DB 0FH ;F
100
101 END
A51 MACRO ASSEMBLER KEY 09/13/2007 00:48:32 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
LEDCODE. . . . . . C ADDR 00C2H A
LOOP . . . . . . . C ADDR 0035H A
MAIN . . . . . . . C ADDR 0030H A
NEXT10 . . . . . . C ADDR 008CH A
NEXT2. . . . . . . C ADDR 0054H A
NEXT3. . . . . . . C ADDR 005BH A
NEXT4. . . . . . . C ADDR 0062H A
NEXT5. . . . . . . C ADDR 0069H A
NEXT6. . . . . . . C ADDR 0070H A
NEXT7. . . . . . . C ADDR 0077H A
NEXT8. . . . . . . C ADDR 007EH A
NEXT9. . . . . . . C ADDR 0085H A
NEXT_A . . . . . . C ADDR 0093H A
NEXT_B . . . . . . C ADDR 009AH A
NEXT_C . . . . . . C ADDR 00A1H A
NEXT_D . . . . . . C ADDR 00A8H A
NEXT_E . . . . . . C ADDR 00AFH A
NEXT_F . . . . . . C ADDR 00B6H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
SCANKEY. . . . . . C ADDR 004BH A
SCAN_RE. . . . . . C ADDR 00C1H A
SENDLED. . . . . . C ADDR 00BBH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -