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

📄 1.lis

📁 avr atmega48的pwm输出
💻 LIS
字号:
                        .module _1.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\A1\桌面\pwm\成功\1.c
 0000                   .dbfunc e init_timer1 _init_timer1 fV
                        .even
 0000           _init_timer1::
 0000                   .dbline -1
 0000                   .dbline 5
 0000           ; #include <iom48v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; void init_timer1()
 0000           ; {//OCR1AH=0x00;//设定pwm的值约为0.8s
 0000                   .dbline 7
 0000           ;  //OCR1AL=0x90;
 0000           ;  OCR1A=23;
 0000 87E1              ldi R24,23
 0002 90E0              ldi R25,0
 0004 90938900          sts 136+1,R25
 0008 80938800          sts 136,R24
 000C                   .dbline 8
 000C           ;  TCCR1B = 0x00; //stop
 000C 2224              clr R2
 000E 20928100          sts 129,R2
 0012                   .dbline 10
 0012           ;  //TCCR1A=0x82;
 0012           ;  TCCR1A=0x82;
 0012 82E8              ldi R24,130
 0014 80938000          sts 128,R24
 0018                   .dbline 11
 0018           ;  TCCR1B=0x1A;
 0018 8AE1              ldi R24,26
 001A 80938100          sts 129,R24
 001E                   .dbline 13
 001E           ;  /*8分频,WGM14  快速PWM模式, OC1A正向PWM输出,TOP=ICR1*/
 001E           ;  ICR1=30;//设定TOP值,设置频率30赫兹
 001E 8EE1              ldi R24,30
 0020 90938700          sts 134+1,R25
 0024 80938600          sts 134,R24
 0028                   .dbline -2
 0028           L1:
 0028                   .dbline 0 ; func end
 0028 0895              ret
 002A                   .dbend
                        .area vector(rom, abs)
                        .org 20
 0014 15C0              rjmp _timer1_capt_isr
                        .area text(rom, con, rel)
 002A                   .dbfile C:\DOCUME~1\A1\桌面\pwm\成功\1.c
 002A                   .dbfunc e timer1_capt_isr _timer1_capt_isr fV
                        .even
 002A           _timer1_capt_isr::
 002A 8A93              st -y,R24
 002C 8FB7              in R24,0x3f
 002E 8A93              st -y,R24
 0030                   .dbline -1
 0030                   .dbline 18
 0030           ;  
 0030           ; }
 0030           ; #pragma interrupt_handler timer1_capt_isr:11
 0030           ; void timer1_capt_isr(void)
 0030           ; {
 0030                   .dbline 21
 0030           ;  //timer 1 input capture event, read (int)value in ICR1 using;
 0030           ;  //TCNT1=0;
 0030           ;  DDRB=0x02;
 0030 82E0              ldi R24,2
 0032 84B9              out 0x4,R24
 0034                   .dbline -2
 0034           L2:
 0034 8991              ld R24,y+
 0036 8FBF              out 0x3f,R24
 0038 8991              ld R24,y+
 003A                   .dbline 0 ; func end
 003A 1895              reti
 003C                   .dbend
                        .area vector(rom, abs)
                        .org 22
 0016 1EC0              rjmp _timer1_compa_isr
                        .area text(rom, con, rel)
 003C                   .dbfile C:\DOCUME~1\A1\桌面\pwm\成功\1.c
 003C                   .dbfunc e timer1_compa_isr _timer1_compa_isr fV
                        .even
 003C           _timer1_compa_isr::
 003C 8A93              st -y,R24
 003E 8FB7              in R24,0x3f
 0040 8A93              st -y,R24
 0042                   .dbline -1
 0042                   .dbline 25
 0042           ; }
 0042           ; #pragma interrupt_handler timer1_compa_isr:12
 0042           ; void timer1_compa_isr(void)
 0042           ; {
 0042                   .dbline 27
 0042           ;  //compare occured TCNT1=OCR1A
 0042           ;   DDRB=0x02;
 0042 82E0              ldi R24,2
 0044 84B9              out 0x4,R24
 0046                   .dbline -2
 0046           L3:
 0046 8991              ld R24,y+
 0048 8FBF              out 0x3f,R24
 004A 8991              ld R24,y+
 004C                   .dbline 0 ; func end
 004C 1895              reti
 004E                   .dbend
 004E                   .dbfunc e main _main fV
                        .even
 004E           _main::
 004E                   .dbline -1
 004E                   .dbline 32
 004E           ; }
 004E           ; 
 004E           ; 
 004E           ; void main()
 004E           ; {
 004E                   .dbline 33
 004E           ;  CLI();
 004E F894              cli
 0050                   .dbline 35
 0050           ;  //init_port();
 0050           ;  PORTB = 0x02;
 0050 82E0              ldi R24,2
 0052 85B9              out 0x5,R24
 0054                   .dbline 36
 0054           ;  DDRB  = 0x02;
 0054 84B9              out 0x4,R24
 0056                   .dbline 37
 0056           ;  PORTC = 0x00; 
 0056 2224              clr R2
 0058 28B8              out 0x8,R2
 005A                   .dbline 38
 005A           ;  DDRC  = 0x00;
 005A 27B8              out 0x7,R2
 005C                   .dbline 39
 005C           ;  PORTD = 0x00;
 005C 2BB8              out 0xb,R2
 005E                   .dbline 40
 005E           ;  DDRD  = 0x00;
 005E 2AB8              out 0xa,R2
 0060                   .dbline 41
 0060           ;  init_timer1();
 0060 CFDF              rcall _init_timer1
 0062                   .dbline 42
 0062           ;  MCUCR = 0x00;
 0062 2224              clr R2
 0064 25BE              out 0x35,R2
 0066                   .dbline 43
 0066           ;  EICRA = 0x00; //extended ext ints
 0066 20926900          sts 105,R2
 006A                   .dbline 44
 006A           ;  EIMSK = 0x00;
 006A 2DBA              out 0x1d,R2
 006C                   .dbline 46
 006C           ;  
 006C           ;  TIMSK0 = 0x00; //timer 0 interrupt sources
 006C 20926E00          sts 110,R2
 0070                   .dbline 47
 0070           ;  TIMSK1 = 0x22; //timer 1 interrupt sources
 0070 82E2              ldi R24,34
 0072 80936F00          sts 111,R24
 0076                   .dbline 48
 0076           ;  TIMSK2 = 0x00; //timer 2 interrupt sources
 0076 20927000          sts 112,R2
 007A                   .dbline 50
 007A           ;  
 007A           ;  PCMSK0 = 0x00; //pin change mask 0 
 007A 20926B00          sts 107,R2
 007E                   .dbline 51
 007E           ;  PCMSK1 = 0x00; //pin change mask 1 
 007E 20926C00          sts 108,R2
 0082                   .dbline 52
 0082           ;  PCMSK2 = 0x00; //pin change mask 2
 0082 20926D00          sts 109,R2
 0086                   .dbline 53
 0086           ;  PCICR = 0x00; //pin change enable 
 0086 20926800          sts 104,R2
 008A                   .dbline 54
 008A           ;  PRR = 0x00; //power controller
 008A 20926400          sts 100,R2
 008E                   .dbline 55
 008E           ;  SEI();
 008E 7894              sei
 0090           L5:
 0090                   .dbline 56
 0090           L6:
 0090                   .dbline 56
 0090 FFCF              rjmp L5
 0092           X0:
 0092                   .dbline -2
 0092           L4:
 0092                   .dbline 0 ; func end
 0092 0895              ret
 0094                   .dbend

⌨️ 快捷键说明

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