📄 main.lst
字号:
A51 MACRO ASSEMBLER MAIN 10/23/2006 09:07:24 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN main.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE main.A51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;*******************************************************************************
2 ;程序名称:LED闪烁发光
3 ;硬件接法:P1.1控制LED,低电平点亮
4 ;运行效果:LED亮200ms,灭800ms,反复循环
5 ;*******************************************************************************
6
7
8 ;*******************************************************************************
9 ;定义I/O接口
10 ;*******************************************************************************
0091 11 LED BIT P1.1
12
13
14 ;*******************************************************************************
15 ;复位入口
16 ;*******************************************************************************
8000 17 ORG 0x8000
8000 028003 18 LJMP PreMain
19
20
21 ;*******************************************************************************
22 ;程序段:PreMain
23 ;功能:进入主程序之前的初始化操作
24 ;*******************************************************************************
8003 25 PreMain:
8003 758130 26 MOV SP, #0x30
8006 02801B 27 LJMP main
28
29
30 ;*******************************************************************************
31 ;函数:void Delay(unsigned char t)
32 ;功能:延时0.01s~2.56s
33 ;参数:t = R7
34 ; t>0时,延时(t*0.01)s
35 ; t=0时,延时2.56s
36 ;说明:定时10ms的定时器初值=65536-0.01/(1/(f/12)),其中f为晶振频率
37 ;*******************************************************************************
8009 38 Delay:
8009 758CDC 39 MOV TH0, #0xDC ;设置定时器初值(定时10ms)
800C 758A00 40 MOV TL0, #0x00
800F D28C 41 SETB TR0 ;启动定时器
8011 308DFD 42 JNB TF0, $ ;等待定时器溢出
8014 C28C 43 CLR TR0 ;停止定时器
8016 C28D 44 CLR TF0 ;清除溢出标志
8018 DFEF 45 DJNZ R7, Delay ;循环t次
801A 22 46 RET
47
48
49 ;*******************************************************************************
50 ;函数:void main()
51 ;功能:主函数
52 ;*******************************************************************************
801B 53 main:
801B 5389F0 54 ANL TMOD, #0xF0 ;T0设置在方式1,即16位定时器(不改变T1的模式)
801E 438901 55 ORL TMOD, #0x01
8021 56 main_Loop:
8021 C291 57 CLR LED ;点亮LED
8023 7F14 58 MOV R7, #20 ;延时200ms
A51 MACRO ASSEMBLER MAIN 10/23/2006 09:07:24 PAGE 2
8025 1109 59 CALL Delay
8027 D291 60 SETB LED ;熄灭LED
8029 7F50 61 MOV R7, #80 ;延时800ms
802B 1109 62 CALL Delay
802D 80F2 63 SJMP main_Loop
64
65
66 ;*******************************************************************************
67 ;程序结束
68 ;*******************************************************************************
69 END
A51 MACRO ASSEMBLER MAIN 10/23/2006 09:07:24 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
DELAY. . . . . . . C ADDR 8009H A
LED. . . . . . . . B ADDR 0090H.1 A
MAIN . . . . . . . C ADDR 801BH A
MAIN_LOOP. . . . . C ADDR 8021H A
P1 . . . . . . . . D ADDR 0090H A
PREMAIN. . . . . . C ADDR 8003H A
SP . . . . . . . . D ADDR 0081H A
TF0. . . . . . . . B ADDR 0088H.5 A
TH0. . . . . . . . D ADDR 008CH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H 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 + -