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

📄 led.lst

📁 ATMEGA128的LED驱动程序
💻 LST
字号:
__start:
__text_start:
    0046 EFCF      LDI	R28,0xFF
    0047 E1D0      LDI	R29,0x10
    0048 BFCD      OUT	0x3D,R28
    0049 BFDE      OUT	0x3E,R29
    004A 51C0      SUBI	R28,0x10
    004B 40D0      SBCI	R29,0
    004C EA0A      LDI	R16,0xAA
    004D 8308      STD	Y+0,R16
    004E 2400      CLR	R0
    004F E0E0      LDI	R30,0
    0050 E0F1      LDI	R31,1
    0051 E011      LDI	R17,1
    0052 30E0      CPI	R30,0
    0053 07F1      CPC	R31,R17
    0054 F011      BEQ	0x0057
    0055 9201      ST	R0,Z+
    0056 CFFB      RJMP	0x0052
    0057 8300      STD	Z+0,R16
    0058 E8EC      LDI	R30,0x8C
    0059 E0F0      LDI	R31,0
    005A E0A0      LDI	R26,0
    005B E0B1      LDI	R27,1
    005C E010      LDI	R17,0
    005D 38EC      CPI	R30,0x8C
    005E 07F1      CPC	R31,R17
    005F F021      BEQ	0x0064
    0060 95C8      LPM
    0061 9631      ADIW	R30,1
    0062 920D      ST	R0,X+
    0063 CFF9      RJMP	0x005D
    0064 940E0067  CALL	_main
_exit:
    0066 CFFF      RJMP	_exit
FILE: D:\avrvi\AVRVi_m128_Starter_Kit\LED\source\main.c
(0001) /************************************************
(0002) 文件:main.c
(0003) 用途:
(0004) 注意:内部8M晶振
(0005) 创建:2008.4.1
(0006) 修改:2008.4.1
(0007) Copy Right  (c)  www.avrvi.com  AVR与虚拟仪器
(0008) ************************************************/
(0009) 
(0010) #include <iom128v.h>
(0011) #include "lib\delay.h"
(0012) void main(void)
(0013) {
(0014)  unsigned char i;
(0015)  PORTE = 0xFF;
_main:
  i                    --> R20
    0067 EF8F      LDI	R24,0xFF
    0068 B983      OUT	0x03,R24
(0016)  DDRE  = 0xFF;
    0069 B982      OUT	0x02,R24
    006A C010      RJMP	0x007B
(0017)  while(1)
(0018)  	{
(0019) 	 for(i=0;i<8;i++)
    006B 2744      CLR	R20
    006C C00C      RJMP	0x0079
(0020) 	 	 {
(0021) 		  PORTE = ~(1<<i);
    006D E001      LDI	R16,1
    006E 2F14      MOV	R17,R20
    006F 940E00C9  CALL	lsl8
    0071 2E20      MOV	R2,R16
    0072 9420      COM	R2
    0073 B823      OUT	0x03,R2
(0022) 		  delay_nms(300);
    0074 E20C      LDI	R16,0x2C
    0075 E011      LDI	R17,1
    0076 940E0098  CALL	_delay_nms
    0078 9543      INC	R20
    0079 3048      CPI	R20,0x8
    007A F390      BCS	0x006D
    007B CFEF      RJMP	0x006B
    007C 9508      RET
FILE: D:\avrvi\AVRVi_m128_Starter_Kit\LED\source\lib\delay.c
(0001) /************************************************
(0002) 文件:delay.c
(0003) 用途:延时函数
(0004) 注意:系统时钟8M
(0005) 创建:2008.1.25
(0006) 修改:2008.1.25
(0007) Copy Right  (c)  www.avrvi.com  AVR与虚拟仪器
(0008) ************************************************/
(0009) 
(0010) void delay_1us(void)                 //1us延时函数
(0011)   {
(0012)    asm("nop");
_delay_1us:
    007D 0000      NOP
    007E 9508      RET
_delay_nus:
  i                    --> R20
  n                    --> R22
    007F 940E00B0  CALL	push_gset2
    0081 01B8      MOVW	R22,R16
(0013)   }
(0014) 
(0015) void delay_nus(unsigned int n)       //N us延时函数
(0016)   {
(0017)    unsigned int i=0;
    0082 2744      CLR	R20
    0083 2755      CLR	R21
(0018)    for (i=0;i<n;i++)
    0084 C003      RJMP	0x0088
(0019)    delay_1us();
    0085 DFF7      RCALL	_delay_1us
    0086 5F4F      SUBI	R20,0xFF
    0087 4F5F      SBCI	R21,0xFF
    0088 1746      CP	R20,R22
    0089 0757      CPC	R21,R23
    008A F3D0      BCS	0x0085
    008B 940E00A7  CALL	pop_gset2
    008D 9508      RET
(0020)   }
(0021)   
(0022) void delay_1ms(void)                 //1ms延时函数
(0023)   {
(0024)    unsigned int i;
(0025)    for (i=0;i<1140;i++);
_delay_1ms:
  i                    --> R16
    008E 2700      CLR	R16
    008F 2711      CLR	R17
    0090 C002      RJMP	0x0093
    0091 5F0F      SUBI	R16,0xFF
    0092 4F1F      SBCI	R17,0xFF
    0093 3704      CPI	R16,0x74
    0094 E0E4      LDI	R30,4
    0095 071E      CPC	R17,R30
    0096 F3D0      BCS	0x0091
    0097 9508      RET
_delay_nms:
  i                    --> R20
  n                    --> R22
    0098 940E00B0  CALL	push_gset2
    009A 01B8      MOVW	R22,R16
(0026)   }
(0027)   
(0028) void delay_nms(unsigned int n)       //N ms延时函数
(0029)   {
(0030)    unsigned int i=0;
    009B 2744      CLR	R20
    009C 2755      CLR	R21
(0031)    for (i=0;i<n;i++)
    009D C003      RJMP	0x00A1
(0032)    delay_1ms();
FILE: <library>
    009E DFEF      RCALL	_delay_1ms
    009F 5F4F      SUBI	R20,0xFF
    00A0 4F5F      SBCI	R21,0xFF
    00A1 1746      CP	R20,R22
    00A2 0757      CPC	R21,R23
    00A3 F3D0      BCS	0x009E
    00A4 940E00A7  CALL	pop_gset2
    00A6 9508      RET
pop_gset2:
    00A7 E0E2      LDI	R30,2
    00A8 940C00B6  JMP	pop
push_gset5:
    00AA 92FA      ST	R15,-Y
    00AB 92EA      ST	R14,-Y
push_gset4:
    00AC 92DA      ST	R13,-Y
    00AD 92CA      ST	R12,-Y
push_gset3:
    00AE 92BA      ST	R11,-Y
    00AF 92AA      ST	R10,-Y
push_gset2:
    00B0 937A      ST	R23,-Y
    00B1 936A      ST	R22,-Y
push_gset1:
    00B2 935A      ST	R21,-Y
    00B3 934A      ST	R20,-Y
    00B4 9508      RET
pop_gset1:
    00B5 E0E1      LDI	R30,1
pop:
    00B6 9149      LD	R20,Y+
    00B7 9159      LD	R21,Y+
    00B8 FDE0      SBRC	R30,0
    00B9 9508      RET
    00BA 9169      LD	R22,Y+
    00BB 9179      LD	R23,Y+
    00BC FDE1      SBRC	R30,1
    00BD 9508      RET
    00BE 90A9      LD	R10,Y+
    00BF 90B9      LD	R11,Y+
    00C0 FDE2      SBRC	R30,2
    00C1 9508      RET
    00C2 90C9      LD	R12,Y+
    00C3 90D9      LD	R13,Y+
    00C4 FDE3      SBRC	R30,3
    00C5 9508      RET
    00C6 90E9      LD	R14,Y+
    00C7 90F9      LD	R15,Y+
    00C8 9508      RET
lsl8:
    00C9 2311      TST	R17
    00CA F019      BEQ	0x00CE
    00CB 0F00      LSL	R16
    00CC 951A      DEC	R17
    00CD CFFB      RJMP	lsl8
    00CE 9508      RET

⌨️ 快捷键说明

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