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

📄 test.lis

📁 受一篇网文启发
💻 LIS
字号:
                        .module test.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\工作\数字功放\程序\test.c
 0000                   .dbfunc e adc_init _adc_init fV
                        .even
 0000           _adc_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; #include <iom88v.h>
 0000           ; #include <macros.h>
 0000           ; #include <math.h>
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; //******************************************************/
 0000           ; void adc_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;   ADCSRA = 0x00; 
 0000 2224              clr R2
 0002 20927A00          sts 122,R2
 0006                   .dbline 11
 0006           ;   ACSR = (1<<ACD);   
 0006 80E8              ldi R24,128
 0008 80BF              out 0x30,R24
 000A                   .dbline 12
 000A           ;   ADCSRA = (1<<ADEN)|(1<<ADPS2);
 000A 84E8              ldi R24,132
 000C 80937A00          sts 122,R24
 0010                   .dbline -2
 0010           L1:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbend
 0012                   .dbfunc e timer1_init _timer1_init fV
                        .even
 0012           _timer1_init::
 0012                   .dbline -1
 0012                   .dbline 16
 0012           ; }
 0012           ; //****************************************************/
 0012           ; void timer1_init(void)  
 0012           ; {
 0012                   .dbline 19
 0012           ;   
 0012           ;   
 0012           ;   TCCR1B = 0x00;
 0012 2224              clr R2
 0014 20928100          sts 129,R2
 0018                   .dbline 21
 0018           ;    
 0018           ;   TCNT1H = 0xFF; 
 0018 8FEF              ldi R24,255
 001A 80938500          sts 133,R24
 001E                   .dbline 22
 001E           ;   TCNT1L = 0x38;
 001E 88E3              ldi R24,56
 0020 80938400          sts 132,R24
 0024                   .dbline 24
 0024           ;   
 0024           ;   OCR1AH = 0x00; 
 0024 20928900          sts 137,R2
 0028                   .dbline 25
 0028           ;   OCR1AL = 0x00;
 0028 20928800          sts 136,R2
 002C                   .dbline 27
 002C           ;   
 002C           ;   OCR1BH = 0x00;  
 002C 20928B00          sts 139,R2
 0030                   .dbline 28
 0030           ;   OCR1BL = 0x00;  
 0030 20928A00          sts 138,R2
 0034                   .dbline 30
 0034           ;   
 0034           ;   ICR1H  = 0x01;
 0034 81E0              ldi R24,1
 0036 80938700          sts 135,R24
 003A                   .dbline 31
 003A           ;   ICR1L  = 0x8F;
 003A 8FE8              ldi R24,143
 003C 80938600          sts 134,R24
 0040                   .dbline 33
 0040           ;   
 0040           ;   TCCR1A = (1<<COM1A1)|(1<<COM1B0)|(1<<COM1B1)|(1<<WGM11); 
 0040 82EB              ldi R24,178
 0042 80938000          sts 128,R24
 0046                   .dbline 34
 0046           ;   TCCR1B = (1<<WGM13)|(1<<WGM12)|(1<<CS10);      
 0046 89E1              ldi R24,25
 0048 80938100          sts 129,R24
 004C                   .dbline 35
 004C           ;   TIMSK1 = 0x20;
 004C 80E2              ldi R24,32
 004E 80936F00          sts 111,R24
 0052                   .dbline -2
 0052           L2:
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbend
                        .area vector(rom, abs)
                        .org 20
 0014 2AC0              rjmp _timer1_capt_isr
                        .area text(rom, con, rel)
 0054                   .dbfile E:\工作\数字功放\程序\test.c
 0054                   .dbfunc e timer1_capt_isr _timer1_capt_isr fV
                        .even
 0054           _timer1_capt_isr::
 0054 8A93              st -y,R24
 0056 9A93              st -y,R25
 0058 8FB7              in R24,0x3f
 005A 8A93              st -y,R24
 005C                   .dbline -1
 005C                   .dbline 40
 005C           ; }
 005C           ; //*************************************************/
 005C           ; #pragma interrupt_handler timer1_capt_isr:11
 005C           ; void timer1_capt_isr(void)                                    
 005C           ; {
 005C                   .dbline 41
 005C           ;     ADMUX = 0x43;
 005C 83E4              ldi R24,67
 005E 80937C00          sts 124,R24
 0062                   .dbline 42
 0062           ;     ADCSRA |= (1<<ADSC);
 0062 80917A00          lds R24,122
 0066 8064              ori R24,64
 0068 80937A00          sts 122,R24
 006C                   .dbline 44
 006C           ;       
 006C           ;       OCR1A = ADC & 0x03FF;
 006C 80917800          lds R24,120
 0070 90917900          lds R25,120+1
 0074 9370              andi R25,3
 0076 90938900          sts 136+1,R25
 007A 80938800          sts 136,R24
 007E                   .dbline 45
 007E           ;       OCR1B = ADC & 0x03FF;
 007E 80917800          lds R24,120
 0082 90917900          lds R25,120+1
 0086 9370              andi R25,3
 0088 90938B00          sts 138+1,R25
 008C 80938A00          sts 138,R24
 0090                   .dbline -2
 0090           L3:
 0090 8991              ld R24,y+
 0092 8FBF              out 0x3f,R24
 0094 9991              ld R25,y+
 0096 8991              ld R24,y+
 0098                   .dbline 0 ; func end
 0098 1895              reti
 009A                   .dbend
                        .area vector(rom, abs)
                        .org 42
 002A 4DC0              rjmp _adc_isr
                        .area text(rom, con, rel)
 009A                   .dbfile E:\工作\数字功放\程序\test.c
 009A                   .dbfunc e adc_isr _adc_isr fV
                        .even
 009A           _adc_isr::
 009A                   .dbline -1
 009A                   .dbline 50
 009A           ; }
 009A           ; //*******************************************************************
 009A           ; #pragma interrupt_handler adc_isr:22
 009A           ; void adc_isr(void)
 009A           ;  {
 009A                   .dbline -2
 009A           L4:
 009A                   .dbline 0 ; func end
 009A 1895              reti
 009C                   .dbend
 009C                   .dbfunc e delay_1us _delay_1us fV
                        .even
 009C           _delay_1us::
 009C                   .dbline -1
 009C                   .dbline 57
 009C           ; 
 009C           ;  } 
 009C           ; /*********************************************************************
 009C           ;  延时
 009C           ; *********************************************************************/
 009C           ; void delay_1us(void)
 009C           ;  {
 009C                   .dbline 58
 009C           ;      asm("nop");
 009C 0000              nop
 009E                   .dbline -2
 009E           L5:
 009E                   .dbline 0 ; func end
 009E 0895              ret
 00A0                   .dbend
 00A0                   .dbfunc e delay_nus _delay_nus fV
 00A0           ;              i -> R20,R21
 00A0           ;              n -> R22,R23
                        .even
 00A0           _delay_nus::
 00A0 00D0              rcall push_gset2
 00A2 B801              movw R22,R16
 00A4                   .dbline -1
 00A4                   .dbline 61
 00A4           ;  }
 00A4           ; void delay_nus(unsigned int n)
 00A4           ;  {
 00A4                   .dbline 62
 00A4           ;      unsigned int i=0;
 00A4 4427              clr R20
 00A6 5527              clr R21
 00A8                   .dbline 63
 00A8 03C0              rjmp L10
 00AA           L7:
 00AA                   .dbline 63
 00AA F8DF              rcall _delay_1us
 00AC           L8:
 00AC                   .dbline 63
 00AC 4F5F              subi R20,255  ; offset = 1
 00AE 5F4F              sbci R21,255
 00B0           L10:
 00B0                   .dbline 63
 00B0           ;      for (i=0;i<n;i++) delay_1us();
 00B0 4617              cp R20,R22
 00B2 5707              cpc R21,R23
 00B4 D0F3              brlo L7
 00B6                   .dbline -2
 00B6           L6:
 00B6 00D0              rcall pop_gset2
 00B8                   .dbline 0 ; func end
 00B8 0895              ret
 00BA                   .dbsym r i 20 i
 00BA                   .dbsym r n 22 i
 00BA                   .dbend
 00BA                   .dbfunc e delay_1ms _delay_1ms fV
 00BA           ;              i -> R16,R17
                        .even
 00BA           _delay_1ms::
 00BA                   .dbline -1
 00BA                   .dbline 66
 00BA           ;  }  
 00BA           ; void delay_1ms(void)
 00BA           ;  {
 00BA                   .dbline 68
 00BA 0027              clr R16
 00BC 1127              clr R17
 00BE 02C0              rjmp L15
 00C0           L12:
 00C0                   .dbline 68
 00C0           L13:
 00C0                   .dbline 68
 00C0 0F5F              subi R16,255  ; offset = 1
 00C2 1F4F              sbci R17,255
 00C4           L15:
 00C4                   .dbline 68
 00C4           ;        unsigned int i;
 00C4           ;      for (i=0;i<1140;i++);
 00C4 0437              cpi R16,116
 00C6 E4E0              ldi R30,4
 00C8 1E07              cpc R17,R30
 00CA D0F3              brlo L12
 00CC                   .dbline -2
 00CC           L11:
 00CC                   .dbline 0 ; func end
 00CC 0895              ret
 00CE                   .dbsym r i 16 i
 00CE                   .dbend
 00CE                   .dbfunc e delay_nms _delay_nms fV
 00CE           ;              i -> R20,R21
 00CE           ;              n -> R22,R23
                        .even
 00CE           _delay_nms::
 00CE 00D0              rcall push_gset2
 00D0 B801              movw R22,R16
 00D2                   .dbline -1
 00D2                   .dbline 71
 00D2           ;  }  
 00D2           ; void delay_nms(unsigned int n)
 00D2           ;  {
 00D2                   .dbline 72
 00D2           ;      unsigned int i=0;
 00D2 4427              clr R20
 00D4 5527              clr R21
 00D6                   .dbline 73
 00D6 03C0              rjmp L20
 00D8           L17:
 00D8                   .dbline 73
 00D8 F0DF              rcall _delay_1ms
 00DA           L18:
 00DA                   .dbline 73
 00DA 4F5F              subi R20,255  ; offset = 1
 00DC 5F4F              sbci R21,255
 00DE           L20:
 00DE                   .dbline 73
 00DE           ;     for (i=0;i<n;i++) delay_1ms();
 00DE 4617              cp R20,R22
 00E0 5707              cpc R21,R23
 00E2 D0F3              brlo L17
 00E4                   .dbline -2
 00E4           L16:
 00E4 00D0              rcall pop_gset2
 00E6                   .dbline 0 ; func end
 00E6 0895              ret
 00E8                   .dbsym r i 20 i
 00E8                   .dbsym r n 22 i
 00E8                   .dbend
 00E8                   .dbfunc e main _main fV
                        .even
 00E8           _main::
 00E8                   .dbline -1
 00E8                   .dbline 77
 00E8           ;  }
 00E8           ; //******************************************************************
 00E8           ; void main(void)
 00E8           ; {
 00E8                   .dbline 78
 00E8           ;   WDR(); 
 00E8 A895              wdr
 00EA                   .dbline 79
 00EA           ;   WDTCSR = 0x1F; 
 00EA 8FE1              ldi R24,31
 00EC 80936000          sts 96,R24
 00F0                   .dbline 80
 00F0           ;   WDTCSR = 0x0F; 
 00F0 8FE0              ldi R24,15
 00F2 80936000          sts 96,R24
 00F6                   .dbline 81
 00F6           ;   WDR();
 00F6 A895              wdr
 00F8                   .dbline 83
 00F8           ;                        
 00F8           ;   DDRB |= (1<<PB1)|(1<<PB2);
 00F8 84B1              in R24,0x4
 00FA 8660              ori R24,6
 00FC 84B9              out 0x4,R24
 00FE                   .dbline 85
 00FE           ;     
 00FE           ;   CLI();
 00FE F894              cli
 0100                   .dbline 86
 0100           ;   timer1_init();            
 0100 88DF              rcall _timer1_init
 0102                   .dbline 87
 0102           ;   adc_init(); 
 0102 7EDF              rcall _adc_init
 0104                   .dbline 88
 0104           ;   SEI();    
 0104 7894              sei
 0106 01C0              rjmp L23
 0108           L22:
 0108                   .dbline 91
 0108                   .dbline 92
 0108 A895              wdr
 010A                   .dbline 93
 010A           L23:
 010A                   .dbline 90
 010A FECF              rjmp L22
 010C           X0:
 010C                   .dbline -2
 010C           L21:
 010C                   .dbline 0 ; func end
 010C 0895              ret
 010E                   .dbend

⌨️ 快捷键说明

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