⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 liushui.lst

📁 ME500——51单片机的几个中断程序
💻 LST
字号:
A51 MACRO ASSEMBLER  LIUSHUI                                                              12/21/2006 15:54:36 PAGE     1


MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN liushui.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE liushui.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;*******************************************************************
                       2     ;*                                                                 *
                       3     ;* ME500单片机开发系统演示程序 - 流水灯 (双定时中断)             *
                       4     ;*                                                                 *
                       5     ;* P0、P2 LED显示                                                  *
                       6     ;*                                                                 *
                       7     ;* 版本: V1.0 (2006/11/20)                                        *
                       8     ;* 作者: gguoqing (Email: gguoqing@willar.com)                    *
                       9     ;* 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界) *
                      10     ;* 时间: 2006/12/13                                               *
                      11     ;*                                                                 *
                      12     ;*【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved *
                      13     ;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!       *
                      14     ;*                                                                 *
                      15     ;*******************************************************************
                      16     
0000                  17              ORG 0000H
0000 0130             18              AJMP MAIN
000B                  19              ORG 000BH       ;定时器0的中断向量地址
000B 015F             20              AJMP TIME0
001B                  21              ORG 001BH       ;定时器1的中断向量地址
001B 017F             22              AJMP TIME1
0030                  23              ORG 0030H
                      24     
                      25     ;**********************************************************
0030                  26     MAIN:
0030 7580FF           27              MOV  P0,#0FFH    ;关所有灯
0033 75A0FF           28              MOV  P2,#0FFH
0036 753000           29              MOV 30H,#00H     ;计数器单元清0
0039 754000           30              MOV 40H,#00H
003C 7531FE           31              MOV 31H,#0FEH    ;置扫描初值
003F 7541FE           32              MOV 41H,#0FEH
0042 758911           33              MOV TMOD,#11H    ;定时/计数器工作于方式1
0045 758CA6           34              MOV TH0,#0A6H
0048 758A00           35              MOV TL0,#00H     ;25ms定时常数
004B 758D4C           36              MOV TH1,#4CH
004E 758B00           37              MOV TL1,#00H     ;50ms定时常数
0051 D2B9             38              SETB  PT0        ;定义TIMER0优先
0053 D2AF             39              SETB  EA         ;开总中断
0055 D2A9             40              SETB  ET0        ;允许定时/计数器0 中断
0057 D2AB             41              SETB  ET1        ;允许定时/计数器1 中断
0059 D28C             42              SETB  TR0        ;启动定时/计数器0 中断
005B D28E             43              SETB  TR1        ;启动定时/计数器1 中断
005D                  44     LOOP:
005D 015D             45              AJMP LOOP
                      46              
                      47     ;*********************************************************
                      48     
                      49     ;定时器0的中断服务程序
                      50     
                      51     ;*********************************************************
005F                  52     TIME0:
005F C0E0             53              PUSH ACC
0061 C0D0             54              PUSH PSW           ;将PSW和ACC推入堆栈保护
0063 758CA6           55              MOV TH0,#0A6H
0066 758A00           56              MOV TL0,#00H       ;重置定时常数
0069 0530             57              INC 30H
006B E530             58              MOV A,30H
A51 MACRO ASSEMBLER  LIUSHUI                                                              12/21/2006 15:54:36 PAGE     2

006D B40A0A           59              CJNE A,#10,T0_END   ;30H单元中的值到10了吗?
0070 753000           60              MOV 30H,#00H       ;清计数器
0073 E531             61              MOV  A,31H
0075 F580             62              MOV  P0,A
0077 23               63              RL  A
0078 F531             64              MOV  31H,A
007A                  65     T0_END:
007A D0D0             66              POP PSW
007C D0E0             67              POP ACC
007E 32               68              RETI
                      69              
                      70     ;*********************************************************
                      71     
                      72     ;定时器1的中断服务程序
                      73     
                      74     ;*********************************************************
007F                  75     TIME1:
007F C0E0             76              PUSH ACC
0081 C0D0             77              PUSH PSW            ;将PSW和ACC推入堆栈保护
0083 758D4C           78              MOV TH1,#4CH
0086 758B00           79              MOV TL1,#00H        ;重置定时常数
0089 0540             80              INC 40H
008B E540             81              MOV A,40H
008D B40A0A           82              CJNE A,#10,T1_END   ;40H单元中的值到10了吗?
0090 754000           83              MOV 40H,#00H        ;清计数器
0093 E541             84              MOV  A,41H
0095 F5A0             85              MOV  P2,A
0097 23               86              RL  A
0098 F541             87              MOV  41H,A
009A                  88     T1_END:
009A D0D0             89              POP PSW
009C D0E0             90              POP ACC
009E 32               91              RETI
                      92     ;*********************************************************
                      93              END
A51 MACRO ASSEMBLER  LIUSHUI                                                              12/21/2006 15:54:36 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   
LOOP . . . . . . .  C ADDR   005DH   A   
MAIN . . . . . . .  C ADDR   0030H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
PT0. . . . . . . .  B ADDR   00B8H.1 A   
T0_END . . . . . .  C ADDR   007AH   A   
T1_END . . . . . .  C ADDR   009AH   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TIME0. . . . . . .  C ADDR   005FH   A   
TIME1. . . . . . .  C ADDR   007FH   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 + -