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

📄 wdt.lst

📁 AVR开发板例子源代码
💻 LST
字号:
__start:
__text_start:
    0015 E5CF      LDI	R28,0x5F
    0016 E0D2      LDI	R29,2
    0017 BFCD      OUT	0x3D,R28
    0018 BFDE      OUT	0x3E,R29
    0019 51C0      SUBI	R28,0x10
    001A 40D0      SBCI	R29,0
    001B EA0A      LDI	R16,0xAA
    001C 8308      STD	Y+0,R16
    001D 2400      CLR	R0
    001E E6E0      LDI	R30,0x60
    001F E0F0      LDI	R31,0
    0020 E010      LDI	R17,0
    0021 36E0      CPI	R30,0x60
    0022 07F1      CPC	R31,R17
    0023 F011      BEQ	0x0026
    0024 9201      ST	R0,Z+
    0025 CFFB      RJMP	0x0021
    0026 8300      STD	Z+0,R16
    0027 E2EA      LDI	R30,0x2A
    0028 E0F0      LDI	R31,0
    0029 E6A0      LDI	R26,0x60
    002A E0B0      LDI	R27,0
    002B E010      LDI	R17,0
    002C 32EA      CPI	R30,0x2A
    002D 07F1      CPC	R31,R17
    002E F021      BEQ	0x0033
    002F 95C8      LPM
    0030 9631      ADIW	R30,1
    0031 920D      ST	R0,X+
    0032 CFF9      RJMP	0x002C
    0033 D016      RCALL	_main
_exit:
    0034 CFFF      RJMP	_exit
_DelayS:
  j                    --> R20
  k                    --> R22
  i                    --> R16
    0035 D02C      RCALL	push_gset2
FILE: E:\iccavr代码\实验17_片内看门狗WDT的使用\wdt.c
(0001) //******************************************************************************
(0002) //                                                                             *
(0003) //    FileName   : WDT.c           ICCAVR V6.31A编译                           *
(0004) //    Function   : 借助跑马灯实验片内看门狗WDT的功能                           *
(0005) //    Date       : 2006-12-11                                                  *
(0006) //    Version    : 1.0                                                         *
(0007) //                                                                             *
(0008) //    Author     : 开关电源              hongtusy@163.com                      *
(0009) //    Company    : 电子信息技术咨询网    http://www.itsn.cn                    *
(0010) //                                                                             *
(0011) //***************************描述与记事*****************************************
(0012) //实验板的AVR程序,片内看门狗WDT的实验演示。
(0013) //说明:使用延迟程序,间歇轮点亮或关闭LED灯。
(0014) //具体电路可参照使用指南里的说明。PC口输出0,LED即点亮。
(0015) //实验板有两种方式使用条形LED,一种是配合LED,使用三极管驱动,
(0016) //这里使用后一种,LED公共阳极直接接电源正的驱动方式。
(0017) //使用器件:ATMEGA8535,可更换。          使用默认的片内RC振荡器,1MHz。
(0018) //使用的开关:SW1-1~8,SW6-2,SW2-6打开,SW3-8为系统复位端。
(0019) //记事:如果将喂狗程序关闭或超出需要喂狗的时间再喂,单片机就会复位。
(0020) //******************************************************************************
(0021) #include <iom8535v.h>             //头文件,ATmega8535单片机的寄存器定义
(0022) #include "macros.h"               //可以使用NOP()以及SEI()等指令.
(0023) 
(0024) typedef unsigned char  uchar;    //宏
(0025) typedef unsigned int   uint;
(0026) 
(0027) /************************************************
(0028) 函 数 名:    DelayS()
(0029) 功    能:    秒级延时函数
(0030) 输入参数:     延迟时间/系统晶体
(0031) 输出参数:    做相应的延迟处理
(0032) 描    述:    /
(0033) ***********************************************/
(0034) void DelayS (uint i)            //延时函数,参数i为延时时间
(0035) {
(0036)     uint j,k;               //双重延时
(0037) 	for (j=0;j<i;j++)
    0036 2744      CLR	R20
    0037 2755      CLR	R21
    0038 C00C      RJMP	0x0045
(0038) 	{
(0039) 	    for (k=0;k<6000;k++)
    0039 2766      CLR	R22
    003A 2777      CLR	R23
    003B C003      RJMP	0x003F
(0040) 		WDR();                  //喂狗
    003C 95A8      WDR
    003D 5F6F      SUBI	R22,0xFF
    003E 4F7F      SBCI	R23,0xFF
    003F 3760      CPI	R22,0x70
    0040 E1E7      LDI	R30,0x17
    0041 077E      CPC	R23,R30
    0042 F3C8      BCS	0x003C
    0043 5F4F      SUBI	R20,0xFF
    0044 4F5F      SBCI	R21,0xFF
    0045 1740      CP	R20,R16
    0046 0751      CPC	R21,R17
    0047 F388      BCS	0x0039
    0048 D011      RCALL	pop_gset2
    0049 9508      RET
(0041) 		//;
(0042) 	}
(0043) }
(0044) //***********************main***************
(0045) void main(void)                       //主程序
(0046) {
(0047)     uchar i;                      //数据类型说明,无符号字符型常数
(0048) 	
(0049) 	WDTCR = 0b00001111;         //设置看门狗定时器并打开。定时时间是2.1s。
_main:
  i                    --> R20
    004A E08F      LDI	R24,0xF
    004B BD81      OUT	0x21,R24
(0050) 	
(0051) 	DDRC=0xff;                    //PC口为输出
    004C EF8F      LDI	R24,0xFF
    004D BB84      OUT	0x14,R24
(0052) 	i=255;                        //赋值语句
    004E EF4F      LDI	R20,0xFF
    004F C008      RJMP	0x0058
(0053) 	while(1)                      //如果条件为真,1=真,所以死循环执行嵌套部分。
(0054) 	{
(0055) 	    if(i==0)                  //
    0050 2344      TST	R20
    0051 F409      BNE	0x0053
(0056) 		{
(0057) 		      i=255;
    0052 EF4F      LDI	R20,0xFF
(0058) 		}
(0059) 		PORTC=i;                  //led输出
    0053 BB45      OUT	0x15,R20
(0060) 		DelayS(2);
    0054 E002      LDI	R16,2
    0055 E010      LDI	R17,0
    0056 DFDE      RCALL	_DelayS
(0061) 		i--;                      //led值递减
FILE: <library>
    0057 954A      DEC	R20
    0058 CFF7      RJMP	0x0050
    0059 9508      RET
pop_gset2:
    005A E0E2      LDI	R30,2
    005B C00C      RJMP	pop
push_gset5:
    005C 92FA      ST	R15,-Y
    005D 92EA      ST	R14,-Y
push_gset4:
    005E 92DA      ST	R13,-Y
    005F 92CA      ST	R12,-Y
push_gset3:
    0060 92BA      ST	R11,-Y
    0061 92AA      ST	R10,-Y
push_gset2:
    0062 937A      ST	R23,-Y
    0063 936A      ST	R22,-Y
push_gset1:
    0064 935A      ST	R21,-Y
    0065 934A      ST	R20,-Y
    0066 9508      RET
pop_gset1:
    0067 E0E1      LDI	R30,1
pop:
    0068 9149      LD	R20,Y+
    0069 9159      LD	R21,Y+
    006A FDE0      SBRC	R30,0
    006B 9508      RET
    006C 9169      LD	R22,Y+
    006D 9179      LD	R23,Y+
    006E FDE1      SBRC	R30,1
    006F 9508      RET
    0070 90A9      LD	R10,Y+
    0071 90B9      LD	R11,Y+
    0072 FDE2      SBRC	R30,2
    0073 9508      RET
    0074 90C9      LD	R12,Y+
    0075 90D9      LD	R13,Y+
    0076 FDE3      SBRC	R30,3
    0077 9508      RET
    0078 90E9      LD	R14,Y+
    0079 90F9      LD	R15,Y+
    007A 9508      RET

⌨️ 快捷键说明

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