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

📄 horse_light.lst

📁 protues_atmeg8学习之:LED篇源代码
💻 LST
字号:
__text_start:
__start:
    0013 E5CF      LDI	R28,0x5F
    0014 E0D4      LDI	R29,4
    0015 BFCD      OUT	0x3D,R28
    0016 BFDE      OUT	0x3E,R29
    0017 51C0      SUBI	R28,0x10
    0018 40D0      SBCI	R29,0
    0019 EA0A      LDI	R16,0xAA
    001A 8308      STD	Y+0,R16
    001B 2400      CLR	R0
    001C E6E0      LDI	R30,0x60
    001D E0F0      LDI	R31,0
    001E E010      LDI	R17,0
    001F 36E0      CPI	R30,0x60
    0020 07F1      CPC	R31,R17
    0021 F011      BEQ	0x0024
    0022 9201      ST	R0,Z+
    0023 CFFB      RJMP	0x001F
    0024 8300      STD	Z+0,R16
    0025 E2E6      LDI	R30,0x26
    0026 E0F0      LDI	R31,0
    0027 E6A0      LDI	R26,0x60
    0028 E0B0      LDI	R27,0
    0029 E010      LDI	R17,0
    002A 32E6      CPI	R30,0x26
    002B 07F1      CPC	R31,R17
    002C F021      BEQ	0x0031
    002D 95C8      LPM
    002E 9631      ADIW	R30,1
    002F 920D      ST	R0,X+
    0030 CFF9      RJMP	0x002A
    0031 D018      RCALL	_main
_exit:
    0032 CFFF      RJMP	_exit
FILE: F:\Learn\AVR\Pro_Mega8\LED\Horse_Light\HorseLight.c
(0001) /******************************************/
(0002) //文件名:HorseLight.c
(0003) //功能: LED的控制
(0004) //作者:  young
(0005) //时间: 2006.10.1
(0006) //目标MCU:ATmega8   
(0007) //晶振:  8MHZ
(0008) /******************************************/
(0009) #include <iom8v.h>
(0010) 
(0011) //延时1MS
(0012) void delay_1ms(void)
(0013) { 
(0014)     unsigned int i;
(0015)     for(i=1;i<(unsigned int)(1144-2);i++)
_delay_1ms:
  i                    --> R16
    0033 E001      LDI	R16,1
    0034 E010      LDI	R17,0
    0035 C002      RJMP	0x0038
    0036 5F0F      SUBI	R16,0xFF
    0037 4F1F      SBCI	R17,0xFF
    0038 3706      CPI	R16,0x76
    0039 E0E4      LDI	R30,4
    003A 071E      CPC	R17,R30
    003B F3D0      BCS	0x0036
(0016)     ;
(0017) }
    003C 9508      RET
_delay_ms:
  i                    --> R20
  n                    --> R22
    003D D039      RCALL	push_gset2
    003E 01B8      MOVW	R22,R16
(0018) 
(0019) //延时nMS
(0020) void delay_ms(unsigned int n)
(0021) {
(0022)     unsigned int i=0;
    003F 2744      CLR	R20
    0040 2755      CLR	R21
    0041 C003      RJMP	0x0045
(0023)     while(i<n)
(0024)     {
(0025) 	    delay_1ms();
    0042 DFF0      RCALL	_delay_1ms
(0026)         i++;
    0043 5F4F      SUBI	R20,0xFF
    0044 4F5F      SBCI	R21,0xFF
    0045 1746      CP	R20,R22
    0046 0757      CPC	R21,R23
    0047 F3D0      BCS	0x0042
(0027)     }
(0028) } 
    0048 D015      RCALL	pop_gset2
    0049 9508      RET
(0029) 
(0030) //主函数,依次顺序打开LED
(0031) void main()
(0032) {
(0033) 	unsigned char i;
(0034) 	DDRD=0xFF;	//设置D口为输出模式
_main:
  i                    --> R20
    004A EF8F      LDI	R24,0xFF
    004B BB81      OUT	0x11,R24
(0035) 	PORTD=0xFF;	//置高电平
    004C BB82      OUT	0x12,R24
    004D C00E      RJMP	0x005C
(0036)    
(0037) 	while (1)
(0038) 	{      
(0039)         for(i=0;i<8;i++) //顺序打开LED
    004E 2744      CLR	R20
    004F C00A      RJMP	0x005A
(0040)     	{
(0041)     	    PORTD=~(1<<i);
    0050 E001      LDI	R16,1
    0051 2F14      MOV	R17,R20
    0052 D027      RCALL	lsl8
    0053 2E20      MOV	R2,R16
    0054 9420      COM	R2
    0055 BA22      OUT	0x12,R2
(0042)     	    delay_ms(200);
    0056 EC08      LDI	R16,0xC8
    0057 E010      LDI	R17,0
    0058 DFE4      RCALL	_delay_ms
    0059 9543      INC	R20
    005A 3048      CPI	R20,0x8
    005B F3A0      BCS	0x0050
    005C CFF1      RJMP	0x004E
(0043)     	}		 
(0044)      }
(0045) }
FILE: <library>
    005D 9508      RET
pop_gset2:
    005E E0E2      LDI	R30,2
    005F C004      RJMP	pop
push_gset1:
    0060 935A      ST	R21,-Y
    0061 934A      ST	R20,-Y
    0062 9508      RET
pop_gset1:
    0063 E0E1      LDI	R30,1
pop:
    0064 9149      LD	R20,Y+
    0065 9159      LD	R21,Y+
    0066 FDE0      SBRC	R30,0
    0067 9508      RET
    0068 9169      LD	R22,Y+
    0069 9179      LD	R23,Y+
    006A FDE1      SBRC	R30,1
    006B 9508      RET
    006C 90A9      LD	R10,Y+
    006D 90B9      LD	R11,Y+
    006E FDE2      SBRC	R30,2
    006F 9508      RET
    0070 90C9      LD	R12,Y+
    0071 90D9      LD	R13,Y+
    0072 FDE3      SBRC	R30,3
    0073 9508      RET
    0074 90E9      LD	R14,Y+
    0075 90F9      LD	R15,Y+
    0076 9508      RET
push_gset2:
    0077 937A      ST	R23,-Y
    0078 936A      ST	R22,-Y
    0079 CFE6      RJMP	push_gset1
lsl8:
    007A 2311      TST	R17
    007B F019      BEQ	0x007F
    007C 0F00      LSL	R16
    007D 951A      DEC	R17
    007E CFFB      RJMP	lsl8
    007F 9508      RET

⌨️ 快捷键说明

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