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

📄 dl.lst

📁 AVR单片机控制发光二极管的源代码
💻 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 36E3      CPI	R30,0x63
    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 D029      RCALL	_main
_exit:
    0032 CFFF      RJMP	_exit
FILE: dl.c
(0001) #include<iom8v.h>		//包含ATMEGA8的头文件
(0002) #include<macros.h>		//包含一些常用宏的定义
(0003) //#define osccal 0xaa//内部RC 校正常数
(0004) #define fosc 8000000 //晶振8MHZ
(0005) #define baud 4800 //波特率
(0006) #define osccal_addr         0x1ff
(0007) //内部晶体震荡器校正字存放地址
(0008) #define uint unsigned int
(0009) #define uchar unsigned char
(0010) 
(0011) uint j;
(0012) uchar t;
(0013) ///////////////延时
(0014) void delay(unsigned int x)
(0015) 
(0016) {
_delay:
  x                    --> R16
    0033 C018      RJMP	0x004C
(0017)    while(x-->0)
(0018)     {
(0019)     for(j=0;j<5;j++)
    0034 2422      CLR	R2
    0035 2433      CLR	R3
    0036 92300062  STS	_j+1,R3
    0038 92200061  STS	_j,R2
    003A C009      RJMP	0x0044
    003B 91800061  LDS	R24,_j
    003D 91900062  LDS	R25,_j+1
    003F 9601      ADIW	R24,1
    0040 93900062  STS	_j+1,R25
    0042 93800061  STS	_j,R24
    0044 91800061  LDS	R24,_j
    0046 91900062  LDS	R25,_j+1
    0048 3085      CPI	R24,5
    0049 E0E0      LDI	R30,0
    004A 079E      CPC	R25,R30
    004B F378      BCS	0x003B
    004C 0118      MOVW	R2,R16
    004D 5001      SUBI	R16,1
    004E 4010      SBCI	R17,0
    004F 2022      TST	R2
    0050 F719      BNE	0x0034
    0051 2033      TST	R3
    0052 F709      BNE	0x0034
(0020)     {;}
(0021)     }
(0022) }
    0053 9508      RET
(0023) 
(0024) unsigned char EEPROM_read(unsigned int uiAddress)
(0025) {while(EECR&(1<<EEWE));
_EEPROM_read:
  uiAddress            --> R16
    0054 99E1      SBIC	0x1C,1
    0055 CFFE      RJMP	_EEPROM_read
(0026)  EEAR=uiAddress;
    0056 BB1F      OUT	0x1F,R17
    0057 BB0E      OUT	0x1E,R16
(0027)  EECR|=(1<<EERE);
    0058 9AE0      SBI	0x1C,0
(0028)  return EEDR;
    0059 B30D      IN	R16,0x1D
    005A 9508      RET
(0029) }
(0030) 
(0031) 
(0032) void main(void)
(0033) { 
(0034)    delay(200);
_main:
    005B EC08      LDI	R16,0xC8
    005C E010      LDI	R17,0
    005D DFD5      RCALL	_delay
(0035)    OSCCAL=EEPROM_read(osccal_addr);   //D£?y?ú2?RC??μ′μ??μ?ê
    005E EF0F      LDI	R16,0xFF
    005F E011      LDI	R17,1
    0060 DFF3      RCALL	_EEPROM_read
    0061 BF01      OUT	0x31,R16
(0036)    DDRB=0xfe;
    0062 EF8E      LDI	R24,0xFE
    0063 BB87      OUT	0x17,R24
(0037)     DDRC=0xff;
    0064 EF8F      LDI	R24,0xFF
    0065 BB84      OUT	0x14,R24
(0038) 	
(0039) 	PORTC&=~(1<<5);
    0066 98AD      CBI	0x15,5
    0067 C00F      RJMP	0x0077
(0040) 	while(1)
(0041) 	{
(0042) 	t=(PINB&0x01);
    0068 B386      IN	R24,0x16
    0069 7081      ANDI	R24,1
    006A 93800060  STS	_t,R24
(0043) 	if(t==0)
    006C 2388      TST	R24
    006D F429      BNE	0x0073
(0044) 	{
(0045) 	PORTC|=(1<<5);
    006E 9AAD      SBI	0x15,5
(0046) 	delay(50000);
    006F E500      LDI	R16,0x50
    0070 EC13      LDI	R17,0xC3
    0071 DFC1      RCALL	_delay
(0047) 	}
    0072 C004      RJMP	0x0077
(0048) 	else
(0049) 	{
(0050) 	PORTC&=~(1<<5);
    0073 98AD      CBI	0x15,5
(0051) 	delay(50000);
    0074 E500      LDI	R16,0x50
    0075 EC13      LDI	R17,0xC3
    0076 DFBC      RCALL	_delay
    0077 CFF0      RJMP	0x0068
(0052) 	}
(0053) 	}
(0054) }
FILE: <library>
    0078 9508      RET

⌨️ 快捷键说明

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