📄 t0.lst
字号:
A51 MACRO ASSEMBLER T0 09/13/2007 01:22:54 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN T0.OBJ
ASSEMBLER INVOKED BY: C:\tools\Keil\C51\BIN\A51.EXE T0.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;实验名称:定时中断0
2 ; 功能:利用定时器,产生秒计数器,使数码管从00.0计到99.9
3 ; 作者:http://www.mcuprog.com
4 ; 05-02-01
5 ;***********************************************************
6
7
0032 8 JS100MS EQU 32H ;计数器0.1S
0030 9 JSGW EQU 30H ;计数器的个位
0031 10 JSSW EQU 31H ;计数器的十位
11
0033 12 T0_100MS EQU 33H ;产生1S
0034 13 LEDSM EQU 34H ;现在扫到第几个LED
0000 14 ORG 0000H
0000 0150 15 AJMP MAIN
000B 16 ORG 000BH
000B 2100 17 AJMP TIME0_1
18
0050 19 ORG 0050H
0050 20 MAIN:
21
0050 753200 22 MOV JS100MS,#00H ;上电时从00.0开始
0053 753100 23 MOV JSSW,#00H ;
0056 753000 24 MOV JSGW,#00H ;
0059 753314 25 MOV T0_100MS,#14H ;5MS*20=100MS
005C 753401 26 MOV LEDSM,#01H
005F 758CEE 27 MOV TH0,#0EEH ;16位的定时器,定时5MS
0062 758A00 28 MOV TL0,#00H
0065 758901 29 MOV TMOD,#01H
0068 D28C 30 SETB TR0
006A 75A882 31 MOV IE,#82H ;定时器0中断
006D 80FE 32 SJMP $
33
0100 34 ORG 0100H
0100 758CEE 35 TIME0_1: MOV TH0,#0EEH
0103 758A00 36 MOV TL0,#00H
0106 D53321 37 DJNZ T0_100MS,TODISP
0109 753314 38 MOV T0_100MS,#14H
010C 0532 39 INC JS100MS
010E E532 40 MOV A,JS100MS
0110 B40A17 41 CJNE A,#0AH,TODISP
0113 753200 42 MOV JS100MS,#00H
0116 0530 43 INC JSGW
0118 E530 44 MOV A,JSGW
011A B40A0D 45 CJNE A,#0AH,TODISP
011D 753000 46 MOV JSGW,#00H
0120 0531 47 INC JSSW
0122 E531 48 MOV A,JSSW
0124 B40A03 49 CJNE A,#0AH,TODISP
0127 753100 50 MOV JSSW,#00H ;溢出99.9则回到00.0
012A 7580FF 51 TODISP: MOV P0,#0FFH ;在位选时关显示
012D 0534 52 INC LEDSM
012F E534 53 MOV A,LEDSM
0131 B40403 54 CJNE A,#04H,TODISP1
0134 753401 55 MOV LEDSM,#01H ;扫完第三个又从第一个开始
0137 E534 56 TODISP1: MOV A,LEDSM
0139 B4010B 57 CJNE A,#01H,TODISP2
013C 75A0DF 58 MOV P2,#0DFH
A51 MACRO ASSEMBLER T0 09/13/2007 01:22:54 PAGE 2
013F E532 59 MOV A,JS100MS
0141 900163 60 MOV DPTR,#LEDCODE
0144 93 61 MOVC A,@A+DPTR
0145 2160 62 AJMP TOP0
0147 B4020D 63 TODISP2: CJNE A,#02H,TODISP3
014A 75A0EF 64 MOV P2,#0EFH
014D E530 65 MOV A,JSGW
014F 900163 66 MOV DPTR,#LEDCODE
0152 93 67 MOVC A,@A+DPTR
0153 C2E2 68 CLR ACC.2 ;把H点点亮
0155 2160 69 AJMP TOP0
0157 75A0F7 70 TODISP3: MOV P2,#0F7H
015A E531 71 MOV A,JSSW
015C 900163 72 MOV DPTR,#LEDCODE
015F 93 73 MOVC A,@A+DPTR
0160 F580 74 TOP0: MOV P0,A
0162 32 75 RETI
76
77
78
79
80 ;8字LED的连接方法
81 ;P0.7,P0.6,P0.5,P0.4,P0.3,P0.2,P0.1,P0.0
82 ;G, F A E B H C D
83
84 ;LED字段码表
0163 84 85 LEDCODE: DB 84H ;0
0164 F5 86 DB 0F5H ;1
0165 46 87 DB 46H ;2
0166 54 88 DB 54H ;3
0167 35 89 DB 35H ;4
0168 1C 90 DB 1CH ;5
0169 0C 91 DB 0CH ;6
016A D5 92 DB 0D5H ;7
016B 04 93 DB 04H ;8
016C 14 94 DB 14H ;9
016D 05 95 DB 05H ;A
016E 2C 96 DB 2CH ;B
016F 8E 97 DB 8EH ;C
0170 64 98 DB 64H ;D
0171 0E 99 DB 0EH ;E
0172 0F 100 DB 0FH ;F
101
102 END
A51 MACRO ASSEMBLER T0 09/13/2007 01:22:54 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
IE . . . . . . . . D ADDR 00A8H A
JS100MS. . . . . . N NUMB 0032H A
JSGW . . . . . . . N NUMB 0030H A
JSSW . . . . . . . N NUMB 0031H A
LEDCODE. . . . . . C ADDR 0163H A
LEDSM. . . . . . . N NUMB 0034H A
MAIN . . . . . . . C ADDR 0050H A
P0 . . . . . . . . D ADDR 0080H A
P2 . . . . . . . . D ADDR 00A0H A
T0_100MS . . . . . N NUMB 0033H A
TH0. . . . . . . . D ADDR 008CH A
TIME0_1. . . . . . C ADDR 0100H A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TODISP . . . . . . C ADDR 012AH A
TODISP1. . . . . . C ADDR 0137H A
TODISP2. . . . . . C ADDR 0147H A
TODISP3. . . . . . C ADDR 0157H A
TOP0 . . . . . . . C ADDR 0160H A
TR0. . . . . . . . B ADDR 0088H.4 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -