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

📄 test.lst

📁 受一篇网文启发
💻 LST
字号:
__text_start:
__start:
    001A EFCF      LDI	R28,0xFF
    001B E0D4      LDI	R29,4
    001C BFCD      OUT	0x3D,R28
    001D BFDE      OUT	0x3E,R29
    001E 51C0      SUBI	R28,0x10
    001F 40D0      SBCI	R29,0
    0020 EA0A      LDI	R16,0xAA
    0021 8308      STD	Y+0,R16
    0022 2400      CLR	R0
    0023 E0E0      LDI	R30,0
    0024 E0F1      LDI	R31,1
    0025 E011      LDI	R17,1
    0026 30E0      CPI	R30,0
    0027 07F1      CPC	R31,R17
    0028 F011      BEQ	0x002B
    0029 9201      ST	R0,Z+
    002A CFFB      RJMP	0x0026
    002B 8300      STD	Z+0,R16
    002C E3E4      LDI	R30,0x34
    002D E0F0      LDI	R31,0
    002E E0A0      LDI	R26,0
    002F E0B1      LDI	R27,1
    0030 E010      LDI	R17,0
    0031 33E4      CPI	R30,0x34
    0032 07F1      CPC	R31,R17
    0033 F021      BEQ	0x0038
    0034 95C8      LPM
    0035 9631      ADIW	R30,1
    0036 920D      ST	R0,X+
    0037 CFF9      RJMP	0x0031
    0038 D075      RCALL	_main
_exit:
    0039 CFFF      RJMP	_exit
FILE: E:\工作\数字功放\程序\test.c
(0001) #include <iom88v.h>
(0002) #include <macros.h>
(0003) #include <math.h>
(0004) 
(0005) 
(0006) 
(0007) //******************************************************/
(0008) void adc_init(void)
(0009) {
(0010)   ADCSRA = 0x00; 
_adc_init:
    003A 2422      CLR	R2
    003B 9220007A  STS	0x7A,R2
(0011)   ACSR = (1<<ACD);   
    003D E880      LDI	R24,0x80
    003E BF80      OUT	0x30,R24
(0012)   ADCSRA = (1<<ADEN)|(1<<ADPS2);
    003F E884      LDI	R24,0x84
    0040 9380007A  STS	0x7A,R24
    0042 9508      RET
(0013) }
(0014) //****************************************************/
(0015) void timer1_init(void)  
(0016) {
(0017)   
(0018)   
(0019)   TCCR1B = 0x00;
_timer1_init:
    0043 2422      CLR	R2
    0044 92200081  STS	0x81,R2
(0020)    
(0021)   TCNT1H = 0xFF; 
    0046 EF8F      LDI	R24,0xFF
    0047 93800085  STS	0x85,R24
(0022)   TCNT1L = 0x38;
    0049 E388      LDI	R24,0x38
    004A 93800084  STS	0x84,R24
(0023)   
(0024)   OCR1AH = 0x00; 
    004C 92200089  STS	0x89,R2
(0025)   OCR1AL = 0x00;
    004E 92200088  STS	0x88,R2
(0026)   
(0027)   OCR1BH = 0x00;  
    0050 9220008B  STS	0x8B,R2
(0028)   OCR1BL = 0x00;  
    0052 9220008A  STS	0x8A,R2
(0029)   
(0030)   ICR1H  = 0x01;
    0054 E081      LDI	R24,1
    0055 93800087  STS	0x87,R24
(0031)   ICR1L  = 0x8F;
    0057 E88F      LDI	R24,0x8F
    0058 93800086  STS	0x86,R24
(0032)   
(0033)   TCCR1A = (1<<COM1A1)|(1<<COM1B0)|(1<<COM1B1)|(1<<WGM11); 
    005A EB82      LDI	R24,0xB2
    005B 93800080  STS	0x80,R24
(0034)   TCCR1B = (1<<WGM13)|(1<<WGM12)|(1<<CS10);      
    005D E189      LDI	R24,0x19
    005E 93800081  STS	0x81,R24
(0035)   TIMSK1 = 0x20;
    0060 E280      LDI	R24,0x20
    0061 9380006F  STS	0x6F,R24
    0063 9508      RET
_timer1_capt_isr:
    0064 938A      ST	R24,-Y
    0065 939A      ST	R25,-Y
    0066 B78F      IN	R24,0x3F
    0067 938A      ST	R24,-Y
(0036) }
(0037) //*************************************************/
(0038) #pragma interrupt_handler timer1_capt_isr:11
(0039) void timer1_capt_isr(void)					
(0040) {
(0041)     ADMUX = 0x43;
    0068 E483      LDI	R24,0x43
    0069 9380007C  STS	0x7C,R24
(0042)     ADCSRA |= (1<<ADSC);
    006B 9180007A  LDS	R24,0x7A
    006D 6480      ORI	R24,0x40
    006E 9380007A  STS	0x7A,R24
(0043) 	
(0044) 	OCR1A = ADC & 0x03FF;
    0070 91800078  LDS	R24,0x78
    0072 91900079  LDS	R25,0x79
    0074 7093      ANDI	R25,3
    0075 93900089  STS	0x89,R25
    0077 93800088  STS	0x88,R24
(0045) 	OCR1B = ADC & 0x03FF;
    0079 91800078  LDS	R24,0x78
    007B 91900079  LDS	R25,0x79
    007D 7093      ANDI	R25,3
    007E 9390008B  STS	0x8B,R25
    0080 9380008A  STS	0x8A,R24
    0082 9189      LD	R24,Y+
    0083 BF8F      OUT	0x3F,R24
    0084 9199      LD	R25,Y+
    0085 9189      LD	R24,Y+
    0086 9518      RETI
(0046) }
(0047) //*******************************************************************
(0048) #pragma interrupt_handler adc_isr:22
(0049) void adc_isr(void)
(0050)  {
_adc_isr:
    0087 9518      RETI
(0051) 
(0052)  } 
(0053) /*********************************************************************
(0054)  延时
(0055) *********************************************************************/
(0056) void delay_1us(void)
(0057)  {
(0058)      asm("nop");
_delay_1us:
    0088 0000      NOP
    0089 9508      RET
_delay_nus:
  i                    --> R20
  n                    --> R22
    008A D03E      RCALL	push_gset2
    008B 01B8      MOVW	R22,R16
(0059)  }
(0060) void delay_nus(unsigned int n)
(0061)  {
(0062)      unsigned int i=0;
    008C 2744      CLR	R20
    008D 2755      CLR	R21
(0063)      for (i=0;i<n;i++) delay_1us();
    008E C003      RJMP	0x0092
    008F DFF8      RCALL	_delay_1us
    0090 5F4F      SUBI	R20,0xFF
    0091 4F5F      SBCI	R21,0xFF
    0092 1746      CP	R20,R22
    0093 0757      CPC	R21,R23
    0094 F3D0      BCS	0x008F
    0095 D02B      RCALL	pop_gset2
    0096 9508      RET
(0064)  }  
(0065) void delay_1ms(void)
(0066)  {
(0067) 	 unsigned int i;
(0068)      for (i=0;i<1140;i++);
_delay_1ms:
  i                    --> R16
    0097 2700      CLR	R16
    0098 2711      CLR	R17
    0099 C002      RJMP	0x009C
    009A 5F0F      SUBI	R16,0xFF
    009B 4F1F      SBCI	R17,0xFF
    009C 3704      CPI	R16,0x74
    009D E0E4      LDI	R30,4
    009E 071E      CPC	R17,R30
    009F F3D0      BCS	0x009A
    00A0 9508      RET
_delay_nms:
  i                    --> R20
  n                    --> R22
    00A1 D027      RCALL	push_gset2
    00A2 01B8      MOVW	R22,R16
(0069)  }  
(0070) void delay_nms(unsigned int n)
(0071)  {
(0072)      unsigned int i=0;
    00A3 2744      CLR	R20
    00A4 2755      CLR	R21
(0073)     for (i=0;i<n;i++) delay_1ms();
    00A5 C003      RJMP	0x00A9
    00A6 DFF0      RCALL	_delay_1ms
    00A7 5F4F      SUBI	R20,0xFF
    00A8 4F5F      SBCI	R21,0xFF
    00A9 1746      CP	R20,R22
    00AA 0757      CPC	R21,R23
    00AB F3D0      BCS	0x00A6
    00AC D014      RCALL	pop_gset2
    00AD 9508      RET
(0074)  }
(0075) //******************************************************************
(0076) void main(void)
(0077) {
(0078)   WDR(); 
_main:
    00AE 95A8      WDR
(0079)   WDTCSR = 0x1F; 
    00AF E18F      LDI	R24,0x1F
    00B0 93800060  STS	0x60,R24
(0080)   WDTCSR = 0x0F; 
    00B2 E08F      LDI	R24,0xF
    00B3 93800060  STS	0x60,R24
(0081)   WDR();
    00B5 95A8      WDR
(0082)                        
(0083)   DDRB |= (1<<PB1)|(1<<PB2);
    00B6 B184      IN	R24,0x04
    00B7 6086      ORI	R24,6
    00B8 B984      OUT	0x04,R24
(0084)     
(0085)   CLI();
    00B9 94F8      BCLR	7
(0086)   timer1_init();            
    00BA DF88      RCALL	_timer1_init
(0087)   adc_init(); 
    00BB DF7E      RCALL	_adc_init
(0088)   SEI();    
    00BC 9478      BSET	7
    00BD C001      RJMP	0x00BF
(0089) 
(0090)   while(1)
(0091)   {
(0092)   WDR();	
FILE: <library>
    00BE 95A8      WDR
    00BF CFFE      RJMP	0x00BE
    00C0 9508      RET
pop_gset2:
    00C1 E0E2      LDI	R30,2
    00C2 C00C      RJMP	pop
push_gset5:
    00C3 92FA      ST	R15,-Y
    00C4 92EA      ST	R14,-Y
push_gset4:
    00C5 92DA      ST	R13,-Y
    00C6 92CA      ST	R12,-Y
push_gset3:
    00C7 92BA      ST	R11,-Y
    00C8 92AA      ST	R10,-Y
push_gset2:
    00C9 937A      ST	R23,-Y
    00CA 936A      ST	R22,-Y
push_gset1:
    00CB 935A      ST	R21,-Y
    00CC 934A      ST	R20,-Y
    00CD 9508      RET
pop_gset1:
    00CE E0E1      LDI	R30,1
pop:
    00CF 9149      LD	R20,Y+
    00D0 9159      LD	R21,Y+
    00D1 FDE0      SBRC	R30,0
    00D2 9508      RET
    00D3 9169      LD	R22,Y+
    00D4 9179      LD	R23,Y+
    00D5 FDE1      SBRC	R30,1
    00D6 9508      RET
    00D7 90A9      LD	R10,Y+
    00D8 90B9      LD	R11,Y+
    00D9 FDE2      SBRC	R30,2
    00DA 9508      RET
    00DB 90C9      LD	R12,Y+
    00DC 90D9      LD	R13,Y+
    00DD FDE3      SBRC	R30,3
    00DE 9508      RET
    00DF 90E9      LD	R14,Y+
    00E0 90F9      LD	R15,Y+
    00E1 9508      RET

⌨️ 快捷键说明

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