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

📄 watchdog.lst

📁 AVRkaifashili.rar
💻 LST
字号:
__start:
__text_start:
    0011 E5CF      LDI	R28,0x5F
    0012 E0D2      LDI	R29,2
    0013 BFCD      OUT	0x3D,R28
    0014 BFDE      OUT	0x3E,R29
    0015 51C0      SUBI	R28,0x10
    0016 40D0      SBCI	R29,0
    0017 EA0A      LDI	R16,0xAA
    0018 8308      STD	Y+0,R16
    0019 2400      CLR	R0
    001A E6E0      LDI	R30,0x60
    001B E0F0      LDI	R31,0
    001C E010      LDI	R17,0
    001D 36E0      CPI	R30,0x60
    001E 07F1      CPC	R31,R17
    001F F011      BEQ	0x0022
    0020 9201      ST	R0,Z+
    0021 CFFB      RJMP	0x001D
    0022 8300      STD	Z+0,R16
    0023 E2E2      LDI	R30,0x22
    0024 E0F0      LDI	R31,0
    0025 E6A0      LDI	R26,0x60
    0026 E0B0      LDI	R27,0
    0027 E010      LDI	R17,0
    0028 32E2      CPI	R30,0x22
    0029 07F1      CPC	R31,R17
    002A F021      BEQ	0x002F
    002B 95C8      LPM
    002C 9631      ADIW	R30,1
    002D 920D      ST	R0,X+
    002E CFF9      RJMP	0x0028
    002F D04F      RCALL	_main
_exit:
    0030 CFFF      RJMP	_exit
_DelayMs:
  j                    --> R20
  i                    --> R16
    0031 D079      RCALL	push_gset1
FILE: J:\AVRpractice\BOOK\WatchDog\WatchDog.c
(0001) //***************FileName:LED.C***************//
(0002) //**************ICCAVR V6.30编译**************//
(0003) 
(0004) #include<io8535v.h>            //头文件,AT90S8535单片机的寄存器定义
(0005) #define uchar unsigned char    //数据类型说明
(0006) #define uint  unsigned int     //数据类型说明
(0007) 
(0008) void DelayMs(uint i)           //Ms级延时函数,参数i:延时时间
(0009) {uint j;
(0010)  for(;i!=0;i--)
    0032 C00A      RJMP	0x003D
(0011)   {for(j=2000;j!=0;j--) {;}}
    0033 ED40      LDI	R20,0xD0
    0034 E057      LDI	R21,7
    0035 C002      RJMP	0x0038
    0036 5041      SUBI	R20,1
    0037 4050      SBCI	R21,0
    0038 3040      CPI	R20,0
    0039 0745      CPC	R20,R21
    003A F7D9      BNE	0x0036
    003B 5001      SUBI	R16,1
    003C 4010      SBCI	R17,0
    003D 3000      CPI	R16,0
    003E 0701      CPC	R16,R17
    003F F799      BNE	0x0033
(0012) }
    0040 D06D      RCALL	pop_gset1
    0041 9508      RET
_Horse:
  i                    --> R16
    0042 D068      RCALL	push_gset1
(0013) 
(0014) void Horse(uchar i)            //跑马灯程序,通过步判断点亮相应的LED
(0015) {switch(i)                     //高电平点亮LED
    0043 2F40      MOV	R20,R16
    0044 2755      CLR	R21
    0045 3041      CPI	R20,1
    0046 E0E0      LDI	R30,0
    0047 075E      CPC	R21,R30
    0048 F0E9      BEQ	0x0066
    0049 3042      CPI	R20,2
    004A E0E0      LDI	R30,0
    004B 075E      CPC	R21,R30
    004C F0E1      BEQ	0x0069
    004D 3043      CPI	R20,3
    004E E0E0      LDI	R30,0
    004F 075E      CPC	R21,R30
    0050 F0D9      BEQ	0x006C
    0051 3044      CPI	R20,4
    0052 E0E0      LDI	R30,0
    0053 075E      CPC	R21,R30
    0054 F0D1      BEQ	0x006F
    0055 3045      CPI	R20,5
    0056 E0E0      LDI	R30,0
    0057 075E      CPC	R21,R30
    0058 F0C9      BEQ	0x0072
    0059 3046      CPI	R20,6
    005A E0E0      LDI	R30,0
    005B 075E      CPC	R21,R30
    005C F0C1      BEQ	0x0075
    005D 3047      CPI	R20,7
    005E E0E0      LDI	R30,0
    005F 075E      CPC	R21,R30
    0060 F0B9      BEQ	0x0078
    0061 3048      CPI	R20,0x8
    0062 E0E0      LDI	R30,0
    0063 075E      CPC	R21,R30
    0064 F0B1      BEQ	0x007B
    0065 C017      RJMP	0x007D
(0016)  {case 1:PORTA=0xfe;break;     //1111 1110B 点亮LED1
    0066 EF8E      LDI	R24,0xFE
    0067 BB8B      OUT	0x1B,R24
    0068 C014      RJMP	0x007D
(0017)   case 2:PORTA=0xfc;break;     //1111 1100B 点亮LED1~LED2
    0069 EF8C      LDI	R24,0xFC
    006A BB8B      OUT	0x1B,R24
    006B C011      RJMP	0x007D
(0018)   case 3:PORTA=0xf8;break;     //1111 1000B 点亮LED1~LED3
    006C EF88      LDI	R24,0xF8
    006D BB8B      OUT	0x1B,R24
    006E C00E      RJMP	0x007D
(0019)   case 4:PORTA=0xf0;break;     //1111 0000B 点亮LED1~LED4
    006F EF80      LDI	R24,0xF0
    0070 BB8B      OUT	0x1B,R24
    0071 C00B      RJMP	0x007D
(0020)   case 5:PORTA=0xe0;break;     //1110 0000B 点亮LED1~LED5
    0072 EE80      LDI	R24,0xE0
    0073 BB8B      OUT	0x1B,R24
    0074 C008      RJMP	0x007D
(0021)   case 6:PORTA=0xc0;break;     //1100 0000B 点亮LED1~LED6
    0075 EC80      LDI	R24,0xC0
    0076 BB8B      OUT	0x1B,R24
    0077 C005      RJMP	0x007D
(0022)   case 7:PORTA=0x80;break;     //1000 0000B 点亮LED1~LED7
    0078 E880      LDI	R24,0x80
    0079 BB8B      OUT	0x1B,R24
    007A C002      RJMP	0x007D
(0023)   case 8:PORTA=0x00;break;     //0000 0000B 点亮LED1~LED8
    007B 2422      CLR	R2
    007C BA2B      OUT	0x1B,R2
(0024)   default:break;}
(0025) }
    007D D030      RCALL	pop_gset1
    007E 9508      RET
(0026) 
(0027) void main(void)               
(0028) {uchar i;
(0029)  DDRA=0xff;                    //端口设置:PA口设置为推挽1输出
_main:
  i                    --> R20
    007F EF8F      LDI	R24,0xFF
    0080 BB8A      OUT	0x1A,R24
(0030)  PORTA=0xff;
    0081 BB8B      OUT	0x1B,R24
(0031)  PORTA=0x00;                   //PORTA初始值为0,灭掉所有的LED      
    0082 2422      CLR	R2
    0083 BA2B      OUT	0x1B,R2
(0032)  DelayMs(1000);
    0084 EE08      LDI	R16,0xE8
    0085 E013      LDI	R17,3
    0086 DFAA      RCALL	_DelayMs
(0033)  WDTCR=0x0f;
    0087 E08F      LDI	R24,0xF
    0088 BD81      OUT	0x21,R24
    0089 C01F      RJMP	0x00A9
(0034)  while(1)                      //程序无条件执行
(0035)   { for(i=1;i<9;i++)           //依次点亮LED1~LED8
    008A E041      LDI	R20,1
    008B C00B      RJMP	0x0097
(0036)       {Horse(i);
    008C 2F04      MOV	R16,R20
    008D DFB4      RCALL	_Horse
(0037) 	   DelayMs(1000);
    008E EE08      LDI	R16,0xE8
    008F E013      LDI	R17,3
    0090 DFA0      RCALL	_DelayMs
(0038) 	   WDTCR=0x1f;
    0091 E18F      LDI	R24,0x1F
    0092 BD81      OUT	0x21,R24
(0039) 	   WDTCR=WDTCR&0xf7;}         //点亮时间约1秒
    0093 B581      IN	R24,0x21
    0094 7F87      ANDI	R24,0xF7
    0095 BD81      OUT	0x21,R24
    0096 9543      INC	R20
    0097 3049      CPI	R20,0x9
    0098 F398      BCS	0x008C
(0040) 	for(i=9;i>0;i--)          //依次熄灭LED8~LED1
    0099 E049      LDI	R20,0x9
    009A C006      RJMP	0x00A1
(0041)       {Horse(i);
    009B 2F04      MOV	R16,R20
    009C DFA5      RCALL	_Horse
(0042) 	   DelayMs(1000);}         //熄灭时间约1秒
    009D EE08      LDI	R16,0xE8
    009E E013      LDI	R17,3
    009F DF91      RCALL	_DelayMs
    00A0 954A      DEC	R20
    00A1 2422      CLR	R2
    00A2 1624      CP	R2,R20
    00A3 F3B8      BCS	0x009B
(0043) 	PORTA=0xff;
    00A4 EF8F      LDI	R24,0xFF
    00A5 BB8B      OUT	0x1B,R24
(0044)     DelayMs(1000);
    00A6 EE08      LDI	R16,0xE8
    00A7 E013      LDI	R17,3
    00A8 DF88      RCALL	_DelayMs
    00A9 CFE0      RJMP	0x008A
(0045)   }
(0046) }
FILE: <library>
    00AA 9508      RET
push_gset1:
    00AB 935A      ST	R21,-Y
    00AC 934A      ST	R20,-Y
    00AD 9508      RET
pop_gset1:
    00AE E0E1      LDI	R30,1
pop:
    00AF 9149      LD	R20,Y+
    00B0 9159      LD	R21,Y+
    00B1 FDE0      SBRC	R30,0
    00B2 9508      RET
    00B3 9169      LD	R22,Y+
    00B4 9179      LD	R23,Y+
    00B5 FDE1      SBRC	R30,1
    00B6 9508      RET
    00B7 90A9      LD	R10,Y+
    00B8 90B9      LD	R11,Y+
    00B9 FDE2      SBRC	R30,2
    00BA 9508      RET
    00BB 90C9      LD	R12,Y+
    00BC 90D9      LD	R13,Y+
    00BD FDE3      SBRC	R30,3
    00BE 9508      RET
    00BF 90E9      LD	R14,Y+
    00C0 90F9      LD	R15,Y+
    00C1 9508      RET

⌨️ 快捷键说明

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