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

📄 中断系统的应用(二).lst

📁 基于Proteus的51系列单片机设计与仿真
💻 LST
字号:
A51 MACRO ASSEMBLER  謃断系统的觃用__二__                                                 05/03/2008 19:02:32 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 中断系统的应用(二).OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 中断系统的应用(二).ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

0000                   1            ORG   0000H         ;主程序起始地址设置
0000 0115              2            AJMP  START         ;跳到主程序入口
0003                   3            ORG   0003H         ; 中断子程序矢量地址(K1键钮)
0003 0133              4            AJMP  INTR0         ;跳到 中断子程序入口
0013                   5            ORG   0013H         ; 中断矢量地址(K2键钮)
0013 0178              6            AJMP  INTR1         ;跳到 中断子程序入口
0015 75A885            7     START: MOV   IE,#85H       ;设定 和 中断使能
0018 75B804            8            MOV   IP,#04H       ; 优先设置为最高
001B 758800            9            MOV   TCON,#00H     ; 和 电平触发
001E 758160           10            MOV   SP,#60H
0021 7580FF           11            MOV   P0,#0FFH
0024 7590FF           12            MOV   P1,#0FFH
0027 7800             13            MOV   R0,#00H       ;设置K1按键初值
0029 7400             14            MOV   A,#00H        ;设置D0~D7初始状态
002B F580             15     LP1:   MOV   P0,A          ;将A送至P0口
002D 120088           16            LCALL  DELAY
0030 F4               17            CPL   A              ;D0~D7闪烁
0031 80F8             18            SJMP  LP1           ;等待按键按下中断
0033 C0E0             19     INTR0: PUSH  Acc           ;将A压入堆栈暂时保存
0035 C0D0             20            PUSH  PSW           ;将PSW压入堆栈暂时保存
0037 D2D3             21            SETB  RS0           ;使用工作寄存器组1
0039 08               22            INC   R0             ;K1键值加1
003A 7400             23            MOV   A,#00H        ;判断K1键值的奇偶性
003C 48               24            ORL   A, R0
003D 30D011           25            JNB   PSW.0,DOUBLE ;PSW的D0=0,即K1键值为偶数,跳转
0040 758000           26     SINGLE:MOV   P0,#00H       ;D0~D3、 D4~D7交叉点亮程序
0043 740F             27            MOV   A,#0FH
0045 7C03             28            MOV   R4,#03H       ;设定交叉点亮3次
0047 F580             29     SINGLE1:MOV  P0,A
0049 120088           30            LCALL DELAY
004C C4               31            SWAP  A             ;A高、低字节交换
004D DCF8             32            DJNZ  R4,SINGLE1
004F 0172             33            AJMP  LP5           ;交叉次数到,退出
0051 758000           34     DOUBLE:MOV   P0,#00H       ;D0~D7进行左移和右移程序
0054 7902             35            MOV   R1,#02H       ;设定移动2次
0056 7401             36     DOUBLE1:MOV  A, #01H
0058 7A08             37           MOV   R2,#08H       ;左移8个灯
005A D3               38           SETB  C
005B F580             39           MOV   P0,A
005D 33               40     LP2:  RLC   A
005E 120088           41           LCALL  DELAY
0061 DAFA             42           DJNZ  R2,LP2
0063 7401             43           MOV   A, #01H
0065 7A08             44           MOV   R2,#08H       ;右移8个灯
0067 C3               45           CLR   C
0068 F580             46     LP3:  MOV   P0,A
006A 120088           47           LCALL  DELAY
006D 13               48           RRC   A
006E DAF8             49           DJNZ  R2,LP3
0070 D9E4             50           DJNZ  R1,DOUBLE1    ;判移动次数是否达到,否,继续
0072 00               51     LP5:  NOP                   ;退出INT0中断子程序
0073 D0D0             52           POP   PSW            ;取回PSW暂时保存的值
0075 D0E0             53           POP   Acc            ;取回A暂时保存的值
0077 32               54           RETI                 ;返回主程序
0078 C0E0             55     INTR1:PUSH  Acc           ;K2键下时,报警子程序
007A C0D0             56           PUSH  PSW
007C C290             57           CLR   P1.0          ;报警
007E 120088           58           LCALL DELAY         ;延时
A51 MACRO ASSEMBLER  謃断系统的觃用__二__                                                 05/03/2008 19:02:32 PAGE     2

0081 D290             59           SETB  P1.0
0083 D0D0             60           POP   PSW
0085 D0E0             61           POP   Acc
0087 32               62           RETI                  ; 中断返回
0088 7F14             63     DELAY:MOV  R7,#20          ;延时0.2s子程序
008A 7E14             64     DELA1:MOV  R6,#20
008C 7DF8             65     DELA2:MOV  R5,#248
008E DDFE             66           DJNZ R5,$
0090 DEFA             67           DJNZ R6,DELA2
0092 DFF6             68           DJNZ R7,DELA1
0094 22               69           RET
                      70           END
A51 MACRO ASSEMBLER  謃断系统的觃用__二__                                                 05/03/2008 19:02:32 PAGE     3

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
DELA1. . . . . . .  C ADDR   008AH   A   
DELA2. . . . . . .  C ADDR   008CH   A   
DELAY. . . . . . .  C ADDR   0088H   A   
DOUBLE . . . . . .  C ADDR   0051H   A   
DOUBLE1. . . . . .  C ADDR   0056H   A   
IE . . . . . . . .  D ADDR   00A8H   A   
INTR0. . . . . . .  C ADDR   0033H   A   
INTR1. . . . . . .  C ADDR   0078H   A   
IP . . . . . . . .  D ADDR   00B8H   A   
LP1. . . . . . . .  C ADDR   002BH   A   
LP2. . . . . . . .  C ADDR   005DH   A   
LP3. . . . . . . .  C ADDR   0068H   A   
LP5. . . . . . . .  C ADDR   0072H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
RS0. . . . . . . .  B ADDR   00D0H.3 A   
SINGLE . . . . . .  C ADDR   0040H   A   
SINGLE1. . . . . .  C ADDR   0047H   A   
SP . . . . . . . .  D ADDR   0081H   A   
START. . . . . . .  C ADDR   0015H   A   
TCON . . . . . . .  D ADDR   0088H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -