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

📄 horse.lst

📁 AVRkaifashili.rar
💻 LST
字号:
__start:
__text_start:
    0000 CFFF      RJMP	__start
    0001 E0D2      LDI	R29,2
    0002 BFCD      OUT	0x3D,R28
    0003 BFDE      OUT	0x3E,R29
    0004 51C0      SUBI	R28,0x10
    0005 40D0      SBCI	R29,0
    0006 EA0A      LDI	R16,0xAA
    0007 8308      STD	Y+0,R16
    0008 2400      CLR	R0
    0009 E6E0      LDI	R30,0x60
    000A E0F0      LDI	R31,0
    000B E010      LDI	R17,0
    000C 36E0      CPI	R30,0x60
    000D 07F1      CPC	R31,R17
    000E F011      BEQ	0x0011
    000F 9201      ST	R0,Z+
    0010 CFFB      RJMP	0x000C
    0011 8300      STD	Z+0,R16
    0012 E0E0      LDI	R30,0
    0013 E0F0      LDI	R31,0
    0014 E6A0      LDI	R26,0x60
    0015 E0B0      LDI	R27,0
    0016 E010      LDI	R17,0
    0017 30E0      CPI	R30,0
    0018 07F1      CPC	R31,R17
    0019 F021      BEQ	0x001E
    001A 95C8      LPM
    001B 9631      ADIW	R30,1
    001C 920D      ST	R0,X+
    001D CFF9      RJMP	0x0017
    001E D04F      RCALL	_main
_exit:
    001F CFFF      RJMP	_exit
_DelayMs:
  j                    --> R20
  i                    --> R16
    0020 D06C      RCALL	push_gset1
FILE: C:\DOCUME~1\Administrator\桌面\张军\AVR\AVR单片机系统开发实例稿\第二章\第二章程序\跑马灯设计\LED.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--)
    0021 C00A      RJMP	0x002C
(0011)   {for(j=8000;j!=0;j--) ;}
    0022 E440      LDI	R20,0x40
    0023 E15F      LDI	R21,0x1F
    0024 C002      RJMP	0x0027
    0025 5041      SUBI	R20,1
    0026 4050      SBCI	R21,0
    0027 3040      CPI	R20,0
    0028 0745      CPC	R20,R21
    0029 F7D9      BNE	0x0025
    002A 5001      SUBI	R16,1
    002B 4010      SBCI	R17,0
    002C 3000      CPI	R16,0
    002D 0701      CPC	R16,R17
    002E F799      BNE	0x0022
(0012) }
    002F D060      RCALL	pop_gset1
    0030 9508      RET
_Horse:
  i                    --> R16
    0031 D05B      RCALL	push_gset1
(0013) 
(0014) void Horse(uchar i)            //跑马灯程序,通过步判断点亮相应的LED
(0015) {switch(i)                     //高电平点亮LED
    0032 2F40      MOV	R20,R16
    0033 2755      CLR	R21
    0034 3041      CPI	R20,1
    0035 E0E0      LDI	R30,0
    0036 075E      CPC	R21,R30
    0037 F0E9      BEQ	0x0055
    0038 3042      CPI	R20,2
    0039 E0E0      LDI	R30,0
    003A 075E      CPC	R21,R30
    003B F0E1      BEQ	0x0058
    003C 3043      CPI	R20,3
    003D E0E0      LDI	R30,0
    003E 075E      CPC	R21,R30
    003F F0D9      BEQ	0x005B
    0040 3044      CPI	R20,4
    0041 E0E0      LDI	R30,0
    0042 075E      CPC	R21,R30
    0043 F0D1      BEQ	0x005E
    0044 3045      CPI	R20,5
    0045 E0E0      LDI	R30,0
    0046 075E      CPC	R21,R30
    0047 F0C9      BEQ	0x0061
    0048 3046      CPI	R20,6
    0049 E0E0      LDI	R30,0
    004A 075E      CPC	R21,R30
    004B F0C1      BEQ	0x0064
    004C 3047      CPI	R20,7
    004D E0E0      LDI	R30,0
    004E 075E      CPC	R21,R30
    004F F0B9      BEQ	0x0067
    0050 3048      CPI	R20,0x8
    0051 E0E0      LDI	R30,0
    0052 075E      CPC	R21,R30
    0053 F0B1      BEQ	0x006A
    0054 C017      RJMP	0x006C
(0016)  {case 1:PORTA=0x01;break;     //0000 0001B 点亮LED1
    0055 E081      LDI	R24,1
    0056 BB8B      OUT	0x1B,R24
    0057 C014      RJMP	0x006C
(0017)   case 2:PORTA=0x03;break;     //0000 0011B 点亮LED1~LED2
    0058 E083      LDI	R24,3
    0059 BB8B      OUT	0x1B,R24
    005A C011      RJMP	0x006C
(0018)   case 3:PORTA=0x07;break;     //0000 0111B 点亮LED1~LED3
    005B E087      LDI	R24,7
    005C BB8B      OUT	0x1B,R24
    005D C00E      RJMP	0x006C
(0019)   case 4:PORTA=0x0f;break;     //0000 1111B 点亮LED1~LED4
    005E E08F      LDI	R24,0xF
    005F BB8B      OUT	0x1B,R24
    0060 C00B      RJMP	0x006C
(0020)   case 5:PORTA=0x1f;break;     //0001 1111B 点亮LED1~LED5
    0061 E18F      LDI	R24,0x1F
    0062 BB8B      OUT	0x1B,R24
    0063 C008      RJMP	0x006C
(0021)   case 6:PORTA=0x3f;break;     //0011 1111B 点亮LED1~LED6
    0064 E38F      LDI	R24,0x3F
    0065 BB8B      OUT	0x1B,R24
    0066 C005      RJMP	0x006C
(0022)   case 7:PORTA=0x7f;break;     //0111 1111B 点亮LED1~LED7
    0067 E78F      LDI	R24,0x7F
    0068 BB8B      OUT	0x1B,R24
    0069 C002      RJMP	0x006C
(0023)   case 8:PORTA=0xff;break;     //1111 1111B 点亮LED1~LED8
    006A EF8F      LDI	R24,0xFF
    006B BB8B      OUT	0x1B,R24
(0024)   default:break;}
(0025) }
    006C D023      RCALL	pop_gset1
    006D 9508      RET
(0026) 
(0027) void main(void)               
(0028) {uchar i;
(0029)  DDRA=0xff;                    //端口设置:PA口设置为推挽1输出
_main:
  i                    --> R20
    006E EF8F      LDI	R24,0xFF
    006F BB8A      OUT	0x1A,R24
(0030)  PORTA=0xff;
    0070 BB8B      OUT	0x1B,R24
(0031)  PORTA=0x00;                   //PORTA初始值为0,灭掉所有的LED      
    0071 2422      CLR	R2
    0072 BA2B      OUT	0x1B,R2
(0032)  DelayMs(1000);
    0073 EE08      LDI	R16,0xE8
    0074 E013      LDI	R17,3
    0075 DFAA      RCALL	_DelayMs
    0076 C014      RJMP	0x008B
(0033)  while(1)                      //程序无条件执行
(0034)   { for(i=0;i<9;i++)           //依次点亮LED1~LED8
    0077 2744      CLR	R20
    0078 C006      RJMP	0x007F
(0035)       {Horse(i);
    0079 2F04      MOV	R16,R20
    007A DFB6      RCALL	_Horse
(0036) 	   DelayMs(1000);}         //点亮时间约1秒
    007B EE08      LDI	R16,0xE8
    007C E013      LDI	R17,3
    007D DFA2      RCALL	_DelayMs
    007E 9543      INC	R20
    007F 3049      CPI	R20,0x9
    0080 F3C0      BCS	0x0079
(0037) 	for(i=7;i!=0;i--)          //依次熄灭LED8~LED1
    0081 E047      LDI	R20,7
    0082 C006      RJMP	0x0089
(0038)       {Horse(i);
    0083 2F04      MOV	R16,R20
    0084 DFAC      RCALL	_Horse
(0039) 	   DelayMs(1000);}         //熄灭时间约1秒
    0085 EE08      LDI	R16,0xE8
    0086 E013      LDI	R17,3
    0087 DF98      RCALL	_DelayMs
    0088 954A      DEC	R20
    0089 2344      TST	R20
    008A F7C1      BNE	0x0083
    008B CFEB      RJMP	0x0077
(0040)   }
(0041) }
FILE: <library>
    008C 9508      RET
push_gset1:
    008D 935A      ST	R21,-Y
    008E 934A      ST	R20,-Y
    008F 9508      RET
pop_gset1:
    0090 E0E1      LDI	R30,1
pop:
    0091 9149      LD	R20,Y+
    0092 9159      LD	R21,Y+
    0093 FDE0      SBRC	R30,0
    0094 9508      RET
    0095 9169      LD	R22,Y+
    0096 9179      LD	R23,Y+
    0097 FDE1      SBRC	R30,1
    0098 9508      RET
    0099 90A9      LD	R10,Y+
    009A 90B9      LD	R11,Y+
    009B FDE2      SBRC	R30,2
    009C 9508      RET
    009D 90C9      LD	R12,Y+
    009E 90D9      LD	R13,Y+
    009F FDE3      SBRC	R30,3
    00A0 9508      RET
    00A1 90E9      LD	R14,Y+
    00A2 90F9      LD	R15,Y+
    00A3 9508      RET

⌨️ 快捷键说明

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