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

📄 p.lst

📁 AVR单片机实现脉冲采集
💻 LST
字号:
__text_start:
__start:
    001D E5CF      LDI	R28,0x5F
    001E E0D4      LDI	R29,4
    001F BFCD      OUT	0x3D,R28
    0020 BFDE      OUT	0x3E,R29
    0021 51C0      SUBI	R28,0x10
    0022 40D0      SBCI	R29,0
    0023 EA0A      LDI	R16,0xAA
    0024 8308      STD	Y+0,R16
    0025 2400      CLR	R0
    0026 E7E3      LDI	R30,0x73
    0027 E0F0      LDI	R31,0
    0028 E010      LDI	R17,0
    0029 38E6      CPI	R30,0x86
    002A 07F1      CPC	R31,R17
    002B F011      BEQ	0x002E
    002C 9201      ST	R0,Z+
    002D CFFB      RJMP	0x0029
    002E 8300      STD	Z+0,R16
    002F E2E6      LDI	R30,0x26
    0030 E0F0      LDI	R31,0
    0031 E6A0      LDI	R26,0x60
    0032 E0B0      LDI	R27,0
    0033 E010      LDI	R17,0
    0034 33E9      CPI	R30,0x39
    0035 07F1      CPC	R31,R17
    0036 F021      BEQ	0x003B
    0037 95C8      LPM
    0038 9631      ADIW	R30,1
    0039 920D      ST	R0,X+
    003A CFF9      RJMP	0x0034
    003B D01E      RCALL	_main
_exit:
    003C CFFF      RJMP	_exit
FILE: p.c
(0001) 
(0002) #include<iom8v.h>		//包含ATMEGA8的头文件
(0003) #include<macros.h>		//包含一些常用宏的定义
(0004) //#define osccal 0xaa//内部RC 校正常数
(0005) #define fosc 8000000 //晶振8MHZ
(0006) #define baud 4800 //波特率
(0007) #define osccal_addr         0x1ff
(0008) //内部晶体震荡器校正字存放地址
(0009) #define uchar unsigned char
(0010) 
(0011) unsigned char e,Getbit,f,xx,i,ic=2,K,c,j,A,d,h1,l1,d1,t,s,
(0012)               Getdata[9]={0xee,0xee,0,0,0,0,0,0,0},
(0013) 			  Getdata_bak[9]={0xee,0xee,0,0,0,0,0,0,0};
(0014) unsigned int m,n;
(0015) ///////////////延时
(0016) void delay(unsigned int x)
(0017) {
_delay:
  x                    --> R16
    003D C00D      RJMP	0x004B
(0018)    while(x-->0)
(0019)     {
(0020)     for(j=0;j<5;j++)
    003E 2422      CLR	R2
    003F 9220007E  STS	_j,R2
    0041 C005      RJMP	0x0047
    0042 9180007E  LDS	R24,_j
    0044 5F8F      SUBI	R24,0xFF
    0045 9380007E  STS	_j,R24
    0047 9180007E  LDS	R24,_j
    0049 3085      CPI	R24,5
    004A F3B8      BCS	0x0042
    004B 0118      MOVW	R2,R16
    004C 5001      SUBI	R16,1
    004D 4010      SBCI	R17,0
    004E 2022      TST	R2
    004F F771      BNE	0x003E
    0050 2033      TST	R3
    0051 F761      BNE	0x003E
(0021)     {;}
(0022)     }
(0023) }
    0052 9508      RET
(0024) 
(0025) unsigned char EEPROM_read(unsigned int uiAddress)
(0026) {while(EECR&(1<<EEWE));
_EEPROM_read:
  uiAddress            --> R16
    0053 99E1      SBIC	0x1C,1
    0054 CFFE      RJMP	_EEPROM_read
(0027)  EEAR=uiAddress;
    0055 BB1F      OUT	0x1F,R17
    0056 BB0E      OUT	0x1E,R16
(0028)  EECR|=(1<<EERE);
    0057 9AE0      SBI	0x1C,0
(0029)  return EEDR;
    0058 B30D      IN	R16,0x1D
    0059 9508      RET
(0030) }
(0031) 
(0032) 
(0033) void main(void)
(0034) {  delay(9000);
_main:
    005A E208      LDI	R16,0x28
    005B E213      LDI	R17,0x23
    005C DFE0      RCALL	_delay
(0035)    OSCCAL=EEPROM_read(osccal_addr);
    005D EF0F      LDI	R16,0xFF
    005E E011      LDI	R17,1
    005F DFF3      RCALL	_EEPROM_read
    0060 BF01      OUT	0x31,R16
(0036)    DDRD=0xff; //IO口的初始化
    0061 EF8F      LDI	R24,0xFF
    0062 BB81      OUT	0x11,R24
(0037)     SEI();//开全局中断
    0063 9478      BSET	7
    0064 C005      RJMP	0x006A
(0038)    
(0039) 
(0040)    while(1)
(0041) 		{
(0042) 		PORTD|=(1<<3);////////////////////////////////
    0065 9A93      SBI	0x12,3
(0043) 		PORTD&=~(1<<3);
    0066 9893      CBI	0x12,3
(0044) 		delay(100);
    0067 E604      LDI	R16,0x64
    0068 E010      LDI	R17,0
    0069 DFD3      RCALL	_delay
    006A CFFA      RJMP	0x0065
(0045) 		}	
(0046) }	
FILE: <library>
    006B 9508      RET

⌨️ 快捷键说明

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