📄 timer0-t1.lst
字号:
A51 MACRO ASSEMBLER TIMER0_T1 12/21/2006 15:45:55 PAGE 1
MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN TIMER0-T1.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE TIMER0-T1.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;*******************************************************************
2 ;* *
3 ;* ME500单片机开发系统演示程序 - 定时与计数中断 *
4 ;* *
5 ;* P0 LED 显示 (流水灯) *
6 ;* *
7 ;* 版本: V1.0 (2006/11/20) *
8 ;* 作者: gguoqing (Email: gguoqing@willar.com) *
9 ;* 网站: www.willar.com(伟纳电子) www.mcusj.com(伟纳单片机世界) *
10 ;* 时间: 2006/12/12 *
11 ;* *
12 ;*【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved *
13 ;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! *
14 ;* *
15 ;*******************************************************************
16
17 ;采用软件模拟计数脉冲进行计数
18
19 ;定时器0定时,中断溢出一次,T1计数器加1。
20
21 ;T1计数器计满10次,LED灯左移一位。(流水灯)
22
23 ;**********************************************************
24
0000 25 ORG 0000H
0000 020030 26 LJMP MAIN
000B 27 ORG 000BH
000B 020050 28 LJMP TIMER0
001B 29 ORG 001BH
001B 020061 30 LJMP TIMER1
0030 31 ORG 0030H
32
33 ;**********************************************************
34 ; 主程序
35 ;**********************************************************
0030 36 MAIN:
0030 7580FE 37 MOV P0,#0FEH ; 初始点亮LED1
0033 7FFE 38 MOV R7,#0FEH ; 保存P0
0035 758951 39 MOV TMOD,#51H ;TIMER0定时,TIMER1计数
40 ;工作方式为MODE1
0038 758DFF 41 MOV TH1,#0FFH ;计数10次初值
003B 758BF6 42 MOV TL1,#0F6H
003E 758C4C 43 MOV TH0,#4CH ;50ms定时常数
0041 758A00 44 MOV TL0,#00H
0044 D2AF 45 SETB EA ;总中断允许
0046 D2A9 46 SETB ET0 ;使能TIMER0的中断
0048 D2AB 47 SETB ET1 ;使能TIMER1的中断
004A D28E 48 SETB TR1
004C D28C 49 SETB TR0
004E 80FE 50 JMP $
51
52 ;**********************************************************
53 ; TIMER0 中断服务子程序
54 ;**********************************************************
0050 55 TIMER0:
0050 C28C 56 CLR TR0
0052 758C4C 57 MOV TH0,#4CH ;50ms定时常数
0055 758A00 58 MOV TL0,#00H
A51 MACRO ASSEMBLER TIMER0_T1 12/21/2006 15:45:55 PAGE 2
0058 D2B5 59 SETB P3.5 ;将P3.5置为输入状态
005A 00 60 NOP
005B 00 61 NOP
005C C2B5 62 CLR P3.5 ;软件模拟T1引脚的计数脉冲。
005E D28C 63 SETB TR0
0060 32 64 RETI
65
66 ;**********************************************************
67 ; TIMER1 中断服务子程序
68 ;**********************************************************
0061 69 TIMER1:
0061 C2AF 70 CLR EA ;防止意外,关闭总中断。
0063 758DFF 71 MOV TH1,#0FFH ;计数10次初值
0066 758BF6 72 MOV TL1,#0F6H
0069 EF 73 MOV A,R7 ;
006A 23 74 RL A ;循环移位
006B FF 75 MOV R7,A ;保存到R7
006C F580 76 MOV P0,A ;点亮下一个LED
006E D2AF 77 SETB EA
0070 32 78 RETI
79
80 ;**********************************************************
81 END
A51 MACRO ASSEMBLER TIMER0_T1 12/21/2006 15:45:55 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
ET1. . . . . . . . B ADDR 00A8H.3 A
MAIN . . . . . . . C ADDR 0030H A
P0 . . . . . . . . D ADDR 0080H A
P3 . . . . . . . . D ADDR 00B0H A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TIMER0 . . . . . . C ADDR 0050H A
TIMER1 . . . . . . C ADDR 0061H 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -