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

📄 lednum.lst

📁 protues_atmeg8学习之:LED篇源代码
💻 LST
字号:
__text_start:
__start:
    0018 E5CF      LDI	R28,0x5F
    0019 E0D4      LDI	R29,4
    001A BFCD      OUT	0x3D,R28
    001B BFDE      OUT	0x3E,R29
    001C 51C0      SUBI	R28,0x10
    001D 40D0      SBCI	R29,0
    001E EA0A      LDI	R16,0xAA
    001F 8308      STD	Y+0,R16
    0020 2400      CLR	R0
    0021 E6E0      LDI	R30,0x60
    0022 E0F0      LDI	R31,0
    0023 E010      LDI	R17,0
    0024 36E0      CPI	R30,0x60
    0025 07F1      CPC	R31,R17
    0026 F011      BEQ	0x0029
    0027 9201      ST	R0,Z+
    0028 CFFB      RJMP	0x0024
    0029 8300      STD	Z+0,R16
    002A E3E0      LDI	R30,0x30
    002B E0F0      LDI	R31,0
    002C E6A0      LDI	R26,0x60
    002D E0B0      LDI	R27,0
    002E E010      LDI	R17,0
    002F 33E0      CPI	R30,0x30
    0030 07F1      CPC	R31,R17
    0031 F021      BEQ	0x0036
    0032 95C8      LPM
    0033 9631      ADIW	R30,1
    0034 920D      ST	R0,X+
    0035 CFF9      RJMP	0x002F
    0036 D018      RCALL	_main
_exit:
    0037 CFFF      RJMP	_exit
FILE: F:\Learn\AVR\Pro_Mega8\LED\Led_Num\LedNum.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
    0038 E001      LDI	R16,1
    0039 E010      LDI	R17,0
    003A C002      RJMP	0x003D
    003B 5F0F      SUBI	R16,0xFF
    003C 4F1F      SBCI	R17,0xFF
    003D 3706      CPI	R16,0x76
    003E E0E4      LDI	R30,4
    003F 071E      CPC	R17,R30
    0040 F3D0      BCS	0x003B
(0016)         ;
(0017) }
    0041 9508      RET
_delay_ms:
  i                    --> R20
  n                    --> R22
    0042 D046      RCALL	push_gset2
    0043 01B8      MOVW	R22,R16
(0018) 
(0019) //延时nMS
(0020) void delay_ms(unsigned int n)
(0021) {
(0022)     unsigned int i=0;
    0044 2744      CLR	R20
    0045 2755      CLR	R21
    0046 C003      RJMP	0x004A
(0023)     while(i<n)
(0024)     {
(0025) 	    delay_1ms();
    0047 DFF0      RCALL	_delay_1ms
(0026)         i++;
    0048 5F4F      SUBI	R20,0xFF
    0049 4F5F      SBCI	R21,0xFF
    004A 1746      CP	R20,R22
    004B 0757      CPC	R21,R23
    004C F3D0      BCS	0x0047
(0027)     }
(0028) } 
    004D D022      RCALL	pop_gset2
    004E 9508      RET
_main:
  num                  --> Y+0
  i                    --> R20
    004F 972A      SBIW	R28,0xA
(0029) 
(0030) //主函数,依次顺序打开LED
(0031) void main()
(0032) {
(0033) 	unsigned char i;
(0034) 	unsigned char num[10]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
    0050 E286      LDI	R24,0x26
    0051 E090      LDI	R25,0
    0052 01FE      MOVW	R30,R28
    0053 E00A      LDI	R16,0xA
    0054 E010      LDI	R17,0
    0055 93FA      ST	R31,-Y
    0056 93EA      ST	R30,-Y
    0057 939A      ST	R25,-Y
    0058 938A      ST	R24,-Y
    0059 D032      RCALL	asgncblk
(0035) 	DDRD=0xFF;	//设置D口为输出模式
    005A EF8F      LDI	R24,0xFF
    005B BB81      OUT	0x11,R24
(0036) 	PORTD=0xFF;	//置高电平
    005C BB82      OUT	0x12,R24
    005D C00F      RJMP	0x006D
(0037)    
(0038) 	while (1)
(0039) 	{      
(0040)         for(i=0;i<10;i++) //顺序打开LED
    005E 2744      CLR	R20
    005F C00B      RJMP	0x006B
(0041)     	{
(0042)     	    PORTD=num[i];
    0060 01CE      MOVW	R24,R28
    0061 2FE4      MOV	R30,R20
    0062 27FF      CLR	R31
    0063 0FE8      ADD	R30,R24
    0064 1FF9      ADC	R31,R25
    0065 8020      LDD	R2,Z+0
    0066 BA22      OUT	0x12,R2
(0043)     	    delay_ms(500);
    0067 EF04      LDI	R16,0xF4
    0068 E011      LDI	R17,1
    0069 DFD8      RCALL	_delay_ms
    006A 9543      INC	R20
    006B 304A      CPI	R20,0xA
    006C F398      BCS	0x0060
    006D CFF0      RJMP	0x005E
(0044)     	}		 
(0045)      }
(0046) }
FILE: <library>
    006E 962A      ADIW	R28,0xA
    006F 9508      RET
pop_gset2:
    0070 E0E2      LDI	R30,2
    0071 C004      RJMP	pop
push_gset1:
    0072 935A      ST	R21,-Y
    0073 934A      ST	R20,-Y
    0074 9508      RET
pop_gset1:
    0075 E0E1      LDI	R30,1
pop:
    0076 9149      LD	R20,Y+
    0077 9159      LD	R21,Y+
    0078 FDE0      SBRC	R30,0
    0079 9508      RET
    007A 9169      LD	R22,Y+
    007B 9179      LD	R23,Y+
    007C FDE1      SBRC	R30,1
    007D 9508      RET
    007E 90A9      LD	R10,Y+
    007F 90B9      LD	R11,Y+
    0080 FDE2      SBRC	R30,2
    0081 9508      RET
    0082 90C9      LD	R12,Y+
    0083 90D9      LD	R13,Y+
    0084 FDE3      SBRC	R30,3
    0085 9508      RET
    0086 90E9      LD	R14,Y+
    0087 90F9      LD	R15,Y+
    0088 9508      RET
push_gset2:
    0089 937A      ST	R23,-Y
    008A 936A      ST	R22,-Y
    008B CFE6      RJMP	push_gset1
asgncblk:
    008C 93AA      ST	R26,-Y
    008D 93BA      ST	R27,-Y
    008E 93EA      ST	R30,-Y
    008F 93FA      ST	R31,-Y
    0090 920A      ST	R0,-Y
    0091 81AF      LDD	R26,Y+7
    0092 85B8      LDD	R27,Y+8
    0093 81ED      LDD	R30,Y+5
    0094 81FE      LDD	R31,Y+6
    0095 3000      CPI	R16,0
    0096 0701      CPC	R16,R17
    0097 F031      BEQ	0x009E
    0098 95C8      LPM
    0099 920D      ST	R0,X+
    009A 9631      ADIW	R30,1
    009B 5001      SUBI	R16,1
    009C 4010      SBCI	R17,0
    009D CFF7      RJMP	0x0095
    009E 9009      LD	R0,Y+
    009F 91F9      LD	R31,Y+
    00A0 91E9      LD	R30,Y+
    00A1 91B9      LD	R27,Y+
    00A2 91A9      LD	R26,Y+
    00A3 9624      ADIW	R28,4
    00A4 9508      RET

⌨️ 快捷键说明

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