?? main.lst
字號:
A51 MACRO ASSEMBLER MAIN 07/01/2006 11:25:27 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN main.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE main.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;*************************************************************************
2 ; main.asm
3 ; 16×16 LED點陣的掃描顯示:顯示一個漢字
4 ;*************************************************************************
5
6
7 ;*************************************************************************
8 ;定義I/O端口
9 ;*************************************************************************
0093 10 STR BIT P1.3 ;74HC595存儲寄存器時鐘(Stroage register clock)
11 ;SI BIT P3.0 ;74HC595串行輸入信號(Serial Input)
12 ;SCK BIT P3.1 ;74HC595移位寄存器時鐘(Shift register clock)
13
14
15 ;*************************************************************************
16 ;定義變量
17 ;*************************************************************************
0030 18 T1INTSVC_n DATA 0x30 ;用于函數T1INTSVC()
19
20
21 ;*************************************************************************
22 ;復位入口
23 ;*************************************************************************
0000 24 ORG 0x0000
0000 02001E 25 LJMP PreMain
26
27
28 ;*************************************************************************
29 ;定時器T1中斷入口
30 ;*************************************************************************
001B 31 ORG 0x001B
001B 02005F 32 LJMP T1INTSVC
33
34
35 ;*************************************************************************
36 ;進入主程序之前的初始化
37 ;*************************************************************************
001E 38 PreMain:
001E 758130 39 MOV SP, #0x30
0021 753000 40 MOV T1INTSVC_n, #0x00
0024 0200F2 41 LJMP main
42
43
44 ;*************************************************************************
45 ;函數:void SysInit()
46 ;功能:系統初始化
47 ;*************************************************************************
0027 48 SysInit:
0027 D293 49 SETB STR
0029 759800 50 MOV SCON, #0x00 ;設置串行口工作在方式0(同步移位寄存器)
002C 53890F 51 ANL TMOD, #0x0F
002F 438910 52 ORL TMOD, #0x10
0032 758DFC 53 MOV TH1, #0xFC
0035 758B66 54 MOV TL1, #0x66 ;定時1ms
0038 D28E 55 SETB TR1
003A D2AB 56 SETB ET1
003C D2AF 57 SETB EA
003E 22 58 RET
A51 MACRO ASSEMBLER MAIN 07/01/2006 11:25:27 PAGE 2
59
60
61 ;*************************************************************************
62 ;定義漢字點陣數據表
63 ;*************************************************************************
003F 64 Zimo:
65 ;文字:漢,字體:Fixedsys12,大小:16×16,取模方式:縱向取模、字節正序
003F 08068061 66 DB 0x08,0x06,0x80,0x61,0x06,0x20,0x38,0x27,0x20,0x20,0x20,0x27,0x38,0x20,0x00,
0x00
0043 06203827
0047 20202027
004B 38200000
004F 20207E80 67 DB 0x20,0x20,0x7E,0x80,0x02,0x04,0x04,0x08,0xD0,0x20,0xD0,0x08,0x0C,0x06,0x04,
0x00
0053 02040408
0057 D020D008
005B 0C060400
68
69
70 ;*************************************************************************
71 ;函數:void T1INTSVC() interrupt 3
72 ;*************************************************************************
005F 73 T1INTSVC:
74 ;unsigned char i;
75 ;unsigned char buf[4];
76 ;處理定時器T1
005F C28E 77 CLR TR1
0061 758DFC 78 MOV TH1, #0xFC
0064 758B66 79 MOV TL1, #0x66
0067 D28E 80 SETB TR1
81 ;保護寄存器
0069 C0E0 82 PUSH ACC
006B C0D0 83 PUSH PSW
006D C083 84 PUSH DPH
006F C082 85 PUSH DPL
0071 C000 86 PUSH 0x00
0073 C002 87 PUSH 0x02
0075 C003 88 PUSH 0x03
0077 C004 89 PUSH 0x04
90 ;分配數組buf[4]
0079 E581 91 MOV A, SP
007B 04 92 INC A
007C FC 93 MOV R4, A
007D 2403 94 ADD A, #3
007F F581 95 MOV SP, A
96 ;查表,取得要發送的數據
0081 A804 97 MOV R0, 0x04
0083 9000D2 98 MOV DPTR, #T1INTSVC_Tab
0086 E530 99 MOV A, T1INTSVC_n
0088 93 100 MOVC A, @A+DPTR
0089 F6 101 MOV @R0, A
008A 08 102 INC R0
008B E530 103 MOV A, T1INTSVC_n
008D 2410 104 ADD A, #16
008F 93 105 MOVC A, @A+DPTR
0090 F6 106 MOV @R0, A
0091 08 107 INC R0
0092 90003F 108 MOV DPTR, #Zimo
0095 E530 109 MOV A, T1INTSVC_n
0097 2410 110 ADD A, #16
0099 93 111 MOVC A, @A+DPTR
009A F6 112 MOV @R0, A
009B 08 113 INC R0
009C E530 114 MOV A, T1INTSVC_n
009E 93 115 MOVC A, @A+DPTR
009F F6 116 MOV @R0, A
A51 MACRO ASSEMBLER MAIN 07/01/2006 11:25:27 PAGE 3
00A0 0530 117 INC T1INTSVC_n
00A2 53300F 118 ANL T1INTSVC_n, #0x0F
119 ;向74HC595發送數據
00A5 C293 120 CLR STR
00A7 7A00 121 MOV R2, #0
00A9 122 T1INTSVC_for:
00A9 EC 123 MOV A, R4
00AA 2A 124 ADD A, R2
00AB F8 125 MOV R0, A
00AC E6 126 MOV A, @R0
00AD F599 127 MOV SBUF, A
00AF 3099FD 128 JNB TI, $
00B2 C299 129 CLR TI
00B4 0A 130 INC R2
00B5 BA04F1 131 CJNE R2, #4, T1INTSVC_for
00B8 D293 132 SETB STR
133 ;釋放數組buf[4]
00BA E581 134 MOV A, SP
00BC C3 135 CLR C
00BD 9404 136 SUBB A, #4
00BF F581 137 MOV SP, A
138 ;恢復寄存器
00C1 D004 139 POP 0x04
00C3 D003 140 POP 0x03
00C5 D002 141 POP 0x02
00C7 D000 142 POP 0x00
00C9 D082 143 POP DPL
00CB D083 144 POP DPH
00CD D0D0 145 POP PSW
00CF D0E0 146 POP ACC
147 ;中斷返回
00D1 32 148 RETI
00D2 149 T1INTSVC_Tab:
150 ;定義掃描數據表
00D2 FFFFFFFF 151 DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,
0xFE
00D6 FFFFFFFF
00DA 7FBFDFEF
00DE F7FBFDFE
00E2 7FBFDFEF 152 DB 0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF
00E6 F7FBFDFE
00EA FFFFFFFF
00EE FFFFFFFF
153
154
155 ;*************************************************************************
156 ;函數:void main()
157 ;功能:主函數
158 ;*************************************************************************
00F2 159 main:
00F2 120027 160 LCALL SysInit
00F5 80FE 161 SJMP $
162
163
164 ;*************************************************************************
165 ;程序結束
166 ;*************************************************************************
167 END
A51 MACRO ASSEMBLER MAIN 07/01/2006 11:25:27 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
EA . . . . . . . . B ADDR 00A8H.7 A
ET1. . . . . . . . B ADDR 00A8H.3 A
MAIN . . . . . . . C ADDR 00F2H A
P1 . . . . . . . . D ADDR 0090H A
PREMAIN. . . . . . C ADDR 001EH A
PSW. . . . . . . . D ADDR 00D0H A
SBUF . . . . . . . D ADDR 0099H A
SCON . . . . . . . D ADDR 0098H A
SP . . . . . . . . D ADDR 0081H A
STR. . . . . . . . B ADDR 0090H.3 A
SYSINIT. . . . . . C ADDR 0027H A
T1INTSVC . . . . . C ADDR 005FH A
T1INTSVC_FOR . . . C ADDR 00A9H A
T1INTSVC_N . . . . D ADDR 0030H A
T1INTSVC_TAB . . . C ADDR 00D2H A
TH1. . . . . . . . D ADDR 008DH A
TI . . . . . . . . B ADDR 0098H.1 A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TR1. . . . . . . . B ADDR 0088H.6 A
ZIMO . . . . . . . C ADDR 003FH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -