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

📄 main.lst

📁 周立功单片机上的源程序
💻 LST
字号:
A51 MACRO ASSEMBLER  MAIN                                                                 06/29/2006 11:58:50 PAGE     1


MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN main.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE main.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;*************************************************************************
                       2     ;       main.ASM
                       3     ;       CAT1021看门狗实验程序
                       4     ;*************************************************************************
                       5     
                       6     
                       7     ;*************************************************************************
                       8     ;定义I/O接口
                       9     ;*************************************************************************
  0080                10     LED     BIT     P0.0
  00B4                11     SCL     BIT     P3.4
  00B5                12     SDA     BIT     P3.5
                      13     
                      14     
                      15     ;*************************************************************************
                      16     ;复位入口
                      17     ;*************************************************************************
0000                  18             ORG     0x0000
0000 020003           19             LJMP    PreMain
                      20     
                      21     
                      22     ;*************************************************************************
                      23     ;程序段:PreMain
                      24     ;功能:进入主程序之前的初始化操作
                      25     ;*************************************************************************
0003                  26     PreMain:
0003 75812F           27             MOV     SP, #0x2F
0006 02004A           28             LJMP    main
                      29     
                      30     
                      31     ;*************************************************************************
                      32     ;宏定义:DJNZ_W
                      33     ;功能:双字节数自减1,结果不为0跳转
                      34     ;参数:
                      35     ;       (xh,xl):要操作的数
                      36     ;       Label:跳转目标
                      37     ;*************************************************************************
                      38     DJNZ_W  MACRO   xh,xl, Label
                      39     LOCAL   next
                      40             MOV     A, xl
                      41             JNZ     next
                      42             DEC     xh
                      43     next:
                      44             DEC     xl
                      45             MOV     A, xh
                      46             ORL     A, xl
                      47             JNZ     Label
                      48             ENDM
                      49     
                      50     
                      51     ;*************************************************************************
                      52     ;函数:Delay()
                      53     ;功能:延时0.001~65.536s
                      54     ;参数:
                      55     ;       t>0时,延时(t*0.001)s
                      56     ;       t=0时,延时65.536s
                      57     ;*************************************************************************
                      58     ; void Delay(unsigned int t)
A51 MACRO ASSEMBLER  MAIN                                                                 06/29/2006 11:58:50 PAGE     2

                      59     ; t = (R6,R7)
0009                  60     Delay:
0009 758CFC           61             MOV     TH0, #0xFC
000C 758A66           62             MOV     TL0, #0x66
000F D28C             63             SETB    TR0
0011 308DFD           64             JNB     TF0, $
0014 C28C             65             CLR     TR0
0016 C28D             66             CLR     TF0
                      67             DJNZ_W  R6,R7, Delay
0021 22               76             RET
                      77     
                      78     
                      79     ;*************************************************************************
                      80     ;函数:Feed()
                      81     ;功能:清除CAT1021内部WDT定时器(喂狗)
                      82     ;说明:如果没有在1.6秒(典型值)内喂狗,则CAT1021会输出复位信号
                      83     ;*************************************************************************
                      84     ; void Feed()
0022                  85     Feed:
0022 C006             86             PUSH    0x06
0024 C007             87             PUSH    0x07
0026 C2B5             88             CLR     SDA
0028 7E00             89             MOV     R6, #0
002A 7F01             90             MOV     R7, #1
002C 120009           91             LCALL   Delay
002F D2B5             92             SETB    SDA
0031 D007             93             POP     0x07
0033 D006             94             POP     0x06
0035 22               95             RET
                      96     
                      97     
                      98     ;*************************************************************************
                      99     ;函数:SysInit()
                     100     ;功能:系统初始化
                     101     ;*************************************************************************
                     102     ; void SysInit()
0036                 103     SysInit:
0036 C280            104             CLR     LED     ;点亮LED。如果CPU被看门狗复位,则能看到LED闪亮
0038 D2B4            105             SETB    SCL
003A D2B5            106             SETB    SDA
003C 5389F0          107             ANL     TMOD, #0xF0
003F 438901          108             ORL     TMOD, #0x01
0042 7E00            109             MOV     R6, #0
0044 7FFA            110             MOV     R7, #250
0046 120009          111             LCALL   Delay   ;上电后必须先延时200ms以上才能对CAT1021进行操作
0049 22              112             RET
                     113     
                     114     
                     115     ;*************************************************************************
                     116     ;函数:void main()
                     117     ;功能:主函数
                     118     ;*************************************************************************
004A                 119     main:
004A 120036          120             LCALL   SysInit
004D                 121     Loop:
                     122     ;       喂狗
004D 120022          123             LCALL   Feed
                     124     ;       延时
0050 7E03            125             MOV     R6, #HIGH(800)
0052 7F20            126             MOV     R7, #LOW(800)
0054 120009          127             LCALL   Delay
                     128     ;
0057 80F4            129             SJMP    Loop
                     130     
                     131     
                     132     ;*************************************************************************
A51 MACRO ASSEMBLER  MAIN                                                                 06/29/2006 11:58:50 PAGE     3

                     133     ;程序结束
                     134     ;*************************************************************************
                     135             END
                             
A51 MACRO ASSEMBLER  MAIN                                                                 06/29/2006 11:58:50 PAGE     4

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


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

??0000 . . . . . .  C ADDR   001CH   A   
DELAY. . . . . . .  C ADDR   0009H   A   
FEED . . . . . . .  C ADDR   0022H   A   
LED. . . . . . . .  B ADDR   0080H.0 A   
LOOP . . . . . . .  C ADDR   004DH   A   
MAIN . . . . . . .  C ADDR   004AH   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
PREMAIN. . . . . .  C ADDR   0003H   A   
SCL. . . . . . . .  B ADDR   00B0H.4 A   
SDA. . . . . . . .  B ADDR   00B0H.5 A   
SP . . . . . . . .  D ADDR   0081H   A   
SYSINIT. . . . . .  C ADDR   0036H   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 + -