t01led.lst
来自「可以熟悉51单片机中断机制 大大方便学习51单片机」· LST 代码 · 共 127 行
LST
127 行
A51 MACRO ASSEMBLER T01LED 02/14/2008 18:04:51 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN T01LED.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE T01LED.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;********************************************************************************
2 ;流水灯 (双定时中断) P0、P2 LED显示 *
3 ;********************************************************************************
4 ;* 日期: 2008-2-25 *
5 ;* 版本: 3.0 *
6 ;* 作者: 深圳志博电子有限公司 专业8051单片机教学站 *
7 ;* 邮箱: zty0012001@163.com *
8 ;* 网站: http://www.elecmcu.com http://www.elecmcu.com 更多例程请登陆网站 *
9 ;********************************************************************************
10 ;* 硬件:此程序在本公司志博电子实验仪运行通过 *
11 ;********************************************************************************
12 ;* 【版权】 Copyright(C)深圳志博电子有限公司 www.elecmcu.com All Rights Reserved *
13 ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
14 ;********************************************************************************
00A0 15 LED0 BIT P2.0
00A1 16 LED1 BIT P2.1
0000 17 ORG 0000H
0000 0130 18 AJMP MAIN
000B 19 ORG 000BH ;定时器0的中断向量地址
000B 015C 20 AJMP TIME0
001B 21 ORG 001BH ;定时器1的中断向量地址
001B 0177 22 AJMP TIME1
0030 23 ORG 0030H
24 ;**********************************************************
0030 25 MAIN:
0030 75A000 26 MOV P2,#000H
0033 753000 27 MOV 30H,#00H ;计数器单元清0
0036 754000 28 MOV 40H,#00H
0039 7531FE 29 MOV 31H,#0FEH ;置扫描初值
003C 7541FE 30 MOV 41H,#0FEH
003F 758911 31 MOV TMOD,#11H ;定时/计数器工作于方式1
0042 758CA6 32 MOV TH0,#0A6H
0045 758A00 33 MOV TL0,#00H ;25ms定时常数
0048 758D4C 34 MOV TH1,#4CH
004B 758B00 35 MOV TL1,#00H ;50ms定时常数
004E D2B9 36 SETB PT0 ;定义TIMER0优先
0050 D2AF 37 SETB EA ;开总中断
0052 D2A9 38 SETB ET0 ;允许定时/计数器0 中断
0054 D2AB 39 SETB ET1 ;允许定时/计数器1 中断
0056 D28C 40 SETB TR0 ;启动定时/计数器0 中断
0058 D28E 41 SETB TR1 ;启动定时/计数器1 中断
005A 42 LOOP:
005A 015A 43 AJMP LOOP
44 ;*********************************************************
45 ;定时器0的中断服务程序
46 ;*********************************************************
005C 47 TIME0:
005C C0E0 48 PUSH ACC
005E C0D0 49 PUSH PSW ;将PSW和ACC推入堆栈保护
0060 758CA6 50 MOV TH0,#0A6H
0063 758A00 51 MOV TL0,#00H ;重置定时常数
0066 0530 52 INC 30H
0068 E530 53 MOV A,30H
006A B40A05 54 CJNE A,#10,T0_END ;30H单元中的值到10了吗?
006D 753000 55 MOV 30H,#00H ;清计数器
0070 B2A0 56 CPL LED0
0072 57 T0_END:
0072 D0D0 58 POP PSW
A51 MACRO ASSEMBLER T01LED 02/14/2008 18:04:51 PAGE 2
0074 D0E0 59 POP ACC
0076 32 60 RETI
61 ;*********************************************************
62 ;定时器1的中断服务程序
63 ;*********************************************************
0077 64 TIME1:
0077 C0E0 65 PUSH ACC
0079 C0D0 66 PUSH PSW ;将PSW和ACC推入堆栈保护
007B 758D4C 67 MOV TH1,#4CH
007E 758B00 68 MOV TL1,#00H ;重置定时常数
0081 0540 69 INC 40H
0083 E540 70 MOV A,40H
0085 B42805 71 CJNE A,#40,T1_END ;40H单元中的值到10了吗?
0088 754000 72 MOV 40H,#00H ;清计数器
008B B2A1 73 CPL LED1
008D 74 T1_END:
008D D0D0 75 POP PSW
008F D0E0 76 POP ACC
0091 32 77 RETI
78 ;*********************************************************
79 END
A51 MACRO ASSEMBLER T01LED 02/14/2008 18:04:51 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
ET1. . . . . . . . B ADDR 00A8H.3 A
LED0 . . . . . . . B ADDR 00A0H.0 A
LED1 . . . . . . . B ADDR 00A0H.1 A
LOOP . . . . . . . C ADDR 005AH A
MAIN . . . . . . . C ADDR 0030H A
P2 . . . . . . . . D ADDR 00A0H A
PSW. . . . . . . . D ADDR 00D0H A
PT0. . . . . . . . B ADDR 00B8H.1 A
T0_END . . . . . . C ADDR 0072H A
T1_END . . . . . . C ADDR 008DH A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TIME0. . . . . . . C ADDR 005CH A
TIME1. . . . . . . C ADDR 0077H A
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?