?? ex3-1.lst
字號:
A51 MACRO ASSEMBLER EX3_1 06/23/2007 16:45:41 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN ex3-1.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE ex3-1.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;--------------程序信息-----------------
2 ;文件名 : ex3-1.asm
3 ;版本 : 1.0
4 ;作者 :
5 ;修改時間 :
6
7 ;--------------程序說明------------------
8 ;CHAP 3.1 獨立式鍵盤輸入實例
9
10 ;-----------常量和變量聲明---------------
11
12
13 ;--------------預定義--------------------
14
0000 15 ORG 0000H
0000 020003 16 LJMP START
17
18 ;------------中斷入口地址分配------------
19 ;ORG 0003H
20 ;LJMP INT0PRG
21 ;ORG 000BH
22 ;LJMP INT1PRG
23 ;ORG 0013H;
24 ;LJMP
25 ;ORG 0030H
26
0003 27 START:
28 ;--------------初始化子程序--------------
0003 856081 29 MOV SP,60H;
30 ;--------------主程序--------------------
0006 31 MAIN:
32
0006 020006 33 LJMP MAIN
34
35
36 ;----------------子程序------------------
37
38 ;----------------------------------------
39 ; 獨立式鍵盤子程序
40 ;----------------------------------------
0009 7590FF 41 KEY : MOV P1,#0FFH; 預讀p0的準備
000C E590 42 MOV A,P1; 讀p0口的值
000E FA 43 MOV R2,A; 保存p0口的值到R2
000F 120091 44 LCALL delay10ms ;延時消抖
0012 7590FF 45 MOV P1,#0FFH;;
0015 E590 46 MOV A,P1; 再讀p0口的值
47 ;CJNE A,R2,KEY; 與上次保存的值相比較
0017 B40103 48 CJNE A,#01H,KEY2; 判斷是不是鍵1
001A 02004A 49 LJMP PKEY1; 如果是鍵1按下則調轉到其鍵執行程序處
001D B40203 50 KEY2: CJNE A,#02H,KEY3; 判斷是不是鍵2
0020 020055 51 LJMP PKEY2; 如果是鍵2按下則跳轉到其鍵執行程序處
0023 B40403 52 KEY3: CJNE A,#04H,KEY4;
0026 02005D 53 LJMP PKEY3;
0029 B40803 54 KEY4: CJNE A,#08H,KEY5;
002C 02005D 55 LJMP PKEY3;
002F B41003 56 KEY5: CJNE A,#10H,KEY6;
0032 02005D 57 LJMP PKEY3;
0035 B42003 58 KEY6: CJNE A,#20H,KEY7;
A51 MACRO ASSEMBLER EX3_1 06/23/2007 16:45:41 PAGE 2
0038 02005D 59 LJMP PKEY3;
003B B44003 60 KEY7: CJNE A,#40H,KEY8;
003E 02005D 61 LJMP PKEY3;
0041 B48003 62 KEY8: CJNE A,#80H,RETURN; 如果都不是則重新讀鍵值
0044 020085 63 LJMP PKEY8;
0047 020090 64 RETURN: LJMP KEYEND;
65
004A 75A0FF 66 PKEY1: MOV P2,#0FFH; 鍵1的執行程序
004D C2A0 67 CLR P2.0; P2.0口接的LED燈亮1S
004F 12009E 68 LCALL delay1s;
0052 020090 69 LJMP KEYEND;
0055 75A0FF 70 PKEY2: MOV P2,#0FFH;
0058 C2A1 71 CLR P2.1;
005A 12009E 72 LCALL delay1s;
005D 75A0FF 73 PKEY3: MOV P2,#0FFH;
0060 C2A2 74 CLR P2.2;
0062 12009E 75 LCALL delay1s;
0065 75A0FF 76 PKEY4: MOV P2,#0FFH;
0068 C2A3 77 CLR P2.3;
006A 12009E 78 LCALL delay1s;
006D 75A0FF 79 PKEY5: MOV P2,#0FFH;
0070 C2A4 80 CLR P2.4;
0072 12009E 81 LCALL delay1s;
0075 75A0FF 82 PKEY6: MOV P2,#0FFH;
0078 C2A5 83 CLR P2.5;
007A 12009E 84 LCALL delay1s;
007D 75A0FF 85 PKEY7: MOV P2,#0FFH;
0080 C2A6 86 CLR P2.6;
0082 12009E 87 LCALL delay1s;
0085 75A0FF 88 PKEY8: MOV P2,#0FFH;
0088 C2A7 89 CLR P2.7;
008A 12009E 90 LCALL delay1s;
008D 020090 91 LJMP KEYEND;
92
0090 22 93 KEYEND: RET; 子程序結尾
94
95 ;--------------中斷子程序----------------
96
97 ;---------------延時子程序---------------
0091 7D02 98 DELAY10MS: MOV R5,#02H;
0093 7EF4 99 DELAY10: MOV R6,#00F4H;
0095 7FFF 100 DELAY11: MOV R7,#0FFH;
0097 DFFE 101 DELAY12: DJNZ R7,DELAY12;
0099 DEFA 102 DJNZ R6,DELAY11;
009B DDF6 103 DJNZ R5,DELAY10;
009D 22 104 RET;
009E 7D04 105 DELAY1S: MOV R5,#04H;
00A0 7EF4 106 DELAY00: MOV R6,#00F4H;
00A2 7FFF 107 DELAY01: MOV R7,#0FFH;
00A4 DFFE 108 DELAY02: DJNZ R7,DELAY02;
00A6 DEFA 109 DJNZ R6,DELAY01;
00A8 DDF6 110 DJNZ R5,DELAY00;
00AA 22 111 RET;
112 END
;---------------注意事項-----------------
A51 MACRO ASSEMBLER EX3_1 06/23/2007 16:45:41 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
DELAY00. . . . . . C ADDR 00A0H A
DELAY01. . . . . . C ADDR 00A2H A
DELAY02. . . . . . C ADDR 00A4H A
DELAY10. . . . . . C ADDR 0093H A
DELAY10MS. . . . . C ADDR 0091H A
DELAY11. . . . . . C ADDR 0095H A
DELAY12. . . . . . C ADDR 0097H A
DELAY1S. . . . . . C ADDR 009EH A
KEY. . . . . . . . C ADDR 0009H A
KEY2 . . . . . . . C ADDR 001DH A
KEY3 . . . . . . . C ADDR 0023H A
KEY4 . . . . . . . C ADDR 0029H A
KEY5 . . . . . . . C ADDR 002FH A
KEY6 . . . . . . . C ADDR 0035H A
KEY7 . . . . . . . C ADDR 003BH A
KEY8 . . . . . . . C ADDR 0041H A
KEYEND . . . . . . C ADDR 0090H A
MAIN . . . . . . . C ADDR 0006H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
PKEY1. . . . . . . C ADDR 004AH A
PKEY2. . . . . . . C ADDR 0055H A
PKEY3. . . . . . . C ADDR 005DH A
PKEY4. . . . . . . C ADDR 0065H A
PKEY5. . . . . . . C ADDR 006DH A
PKEY6. . . . . . . C ADDR 0075H A
PKEY7. . . . . . . C ADDR 007DH A
PKEY8. . . . . . . C ADDR 0085H A
RETURN . . . . . . C ADDR 0047H A
SP . . . . . . . . D ADDR 0081H A
START. . . . . . . C ADDR 0003H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -