📄 wl027.lst
字号:
A51 MACRO ASSEMBLER WL027 08/18/2005 20:49:47 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN wl027.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE wl027.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;********************************************************************************
2 ;* 标题: 伟纳电子ME300B单片机开发系统演示程序 - 键控看门狗演示程序 *
3 ;* 文件: wl027.asm *
4 ;* 日期: 2005-3-20 *
5 ;* 版本: 1.0 *
6 ;* 作者: gguoqing *
7 ;* 邮箱: gguoqing@willar.com *
8 ;* 网站: http://www.willar.com *
9 ;********************************************************************************
10 ;* 描述: *
11 ;* 看门狗演示程序 *
12 ;* 在16383个机器周期内必须至少喂狗一次。 *
13 ;* 当晶振为11.0592M时在17毫秒内需喂狗一次。 *
14 ;* 激活看门狗后,喂狗,P0.7、P0.6引脚上的LED闪烁发光 *
15 ;* 激活看门狗后,如果不喂狗,则复位 *
16 ;* P0.1、P0.0引脚上的LED闪烁发光 *
17 ;********************************************************************************
18 ;* 【版权】 Copyright(C)伟纳电子 www.willar.com All Rights Reserved *
19 ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
20 ;********************************************************************************
21
22
23
24 ;-------------------------------------------------------
0094 25 K1 EQU P1.4 ;启动中断喂狗
0095 26 K2 EQU P1.5 ;停止中断不喂狗
27
28
0000 29 ORG 0000
0000 0130 30 AJMP MAIN
000B 31 ORG 000BH
000B 0176 32 AJMP TIME0
0030 33 ORG 0030H
34 ;-------------------------------------------------------
0030 D281 35 MAIN: SETB P0.1 ;p0.1、p0.0闪烁发光
0032 D280 36 SETB P0.0
0034 12008B 37 LCALL DELAY
0037 C281 38 CLR P0.1
0039 C280 39 CLR P0.0
003B 12008B 40 LCALL DELAY
003E D281 41 SETB P0.1
0040 D280 42 SETB P0.0
0042 12008B 43 LCALL DELAY
44
45
0045 758901 46 MOV TMOD,#01H ;定时/计数器0工作于方式1
0048 758CC5 47 MOV TH0,#0C5H
004B 758A68 48 MOV TL0,#68H
004E D2AF 49 SETB EA ;开总中断
0050 D2A9 50 SETB ET0 ;开定时/计数器0
0052 209402 51 JB K1,LOOP1
0055 D28C 52 SETB TR0 ;启动定时
0057 53 LOOP1:
0057 75A61E 54 MOV 0A6H,#01EH
005A 75A6E1 55 MOV 0A6H,#0E1H ;在程序初始化中激活看门狗。
56
005D 209502 57 LOOP2: JB K2,LOOP3
0060 C28C 58 CLR TR0 ;关闭中断,不喂狗
A51 MACRO ASSEMBLER WL027 08/18/2005 20:49:47 PAGE 2
59
0062 D287 60 LOOP3: SETB P0.7 ;P0.7、P0.6闪烁发光
0064 D286 61 SETB P0.6
0066 12008B 62 LCALL DELAY
0069 12008B 63 LCALL DELAY
006C C287 64 CLR P0.7
006E C286 65 CLR P0.6
0070 12008B 66 LCALL DELAY
0073 02005D 67 LJMP LOOP2
68 ;-----------------------------------------------------
69 ;定时器0的中断处理程序
70 ;-----------------------------------------------------
0076 71 TIME0:
0076 C0E0 72 PUSH ACC
0078 C0D0 73 PUSH PSW ;将PSW和ACC入栈保护
007A 75A61E 74 MOV 0A6H,#01EH ;喂狗指令
007D 75A6E1 75 MOV 0A6H,#0E1H
0080 758CC5 76 MOV TH0,#0C5H
0083 758A68 77 MOV TL0,#68H ;重置定时常数
0086 D0D0 78 POP PSW
0088 D0E0 79 POP ACC
008A 32 80 RETI
81 ;-----------------------------------------------------
82 ;延时子程序
83 ;-----------------------------------------------------
008B 7FFA 84 DELAY: MOV R7,#250
008D 7EFA 85 DEL1: MOV R6,#250
008F DEFE 86 DEL2: DJNZ R6,DEL2
0091 DFFA 87 DJNZ R7,DEL1
0093 22 88 RET
89 ;-----------------------------------------------------
90 END
A51 MACRO ASSEMBLER WL027 08/18/2005 20:49:47 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
DEL1 . . . . . . . C ADDR 008DH A
DEL2 . . . . . . . C ADDR 008FH A
DELAY. . . . . . . C ADDR 008BH A
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
K1 . . . . . . . . B ADDR 0090H.4 A
K2 . . . . . . . . B ADDR 0090H.5 A
LOOP1. . . . . . . C ADDR 0057H A
LOOP2. . . . . . . C ADDR 005DH A
LOOP3. . . . . . . C ADDR 0062H A
MAIN . . . . . . . C ADDR 0030H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
PSW. . . . . . . . D ADDR 00D0H A
TH0. . . . . . . . D ADDR 008CH A
TIME0. . . . . . . C ADDR 0076H 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 + -