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

📄 pwm.lis

📁 MEGA16 开发包3
💻 LIS
字号:
                        .module pwm.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\开发\C程序开发\AVR\PWM\pwm.c
 0000                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0000           _timer0_init::
 0000                   .dbline -1
 0000                   .dbline 10
 0000           ; #include <iom16v.h> 
 0000           ; #include <macros.h> 
 0000           ; 
 0000           ; #define PWM0     PORTD3  //OC0   PB3
 0000           ; 
 0000           ; volatile unsigned char T0OCR;       //设置T0的时间值
 0000           ; 
 0000           ; /*相位修正模式输出方波,64分频*/
 0000           ; void timer0_init(void) 
 0000           ; {
 0000                   .dbline 11
 0000           ;  OCR0  = T0OCR;       //设定TOP
 0000 20900000          lds R2,_T0OCR
 0004 2CBE              out 0x3c,R2
 0006                   .dbline 14
 0006           ;                       // TOP=8000000/(2*64*1000)-1=61.5  选61  1.008KHz(0.992mS)
 0006           ;                       // TOP=8000000/(2*64*2000)-1=30.25 选30  2.016KHz(0.496ms)
 0006           ;  TCCR0 = (0<<WGM01)|(1<<WGM00)|(1<<COM01)|(0<<COM00)|(0<<CS02)|(1<<CS01)|(1<<CS00);
 0006 83E6              ldi R24,99
 0008 83BF              out 0x33,R24
 000A                   .dbline -2
 000A           L1:
 000A                   .dbline 0 ; func end
 000A 0895              ret
 000C                   .dbend
 000C                   .dbfunc e main _main fV
                        .even
 000C           _main::
 000C                   .dbline -1
 000C                   .dbline 18
 000C           ; }
 000C           ; 
 000C           ; void main(void)
 000C           ; {
 000C                   .dbline 20
 000C           ;                                 //上电默认DDRx=0x00,PORTx=0x00 输入,无上拉电阻
 000C           ;     PORTA =0xFF;                //不用的管脚使能内部上拉电阻。
 000C 8FEF              ldi R24,255
 000E 8BBB              out 0x1b,R24
 0010                   .dbline 21
 0010           ;     PORTC =0xFF;
 0010 85BB              out 0x15,R24
 0012                   .dbline 22
 0012           ;     PORTB =~ (1<<PWM0);         
 0012 87EF              ldi R24,247
 0014 88BB              out 0x18,R24
 0016                   .dbline 23
 0016           ;     DDRB  =  (1<<PWM0);         
 0016 88E0              ldi R24,8
 0018 87BB              out 0x17,R24
 001A                   .dbline 25
 001A           ; 
 001A           ;     T0OCR=0x40;
 001A 80E4              ldi R24,64
 001C 80930000          sts _T0OCR,R24
 0020                   .dbline 26
 0020           ;     timer0_init();
 0020 EFDF              xcall _timer0_init
 0022                   .dbline 27
 0022           ;     SEI();                          //使能全局中断
 0022 7894              sei
 0024                   .dbline -2
 0024           L2:
 0024                   .dbline 0 ; func end
 0024 0895              ret
 0026                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile F:\开发\C程序开发\AVR\PWM\pwm.c
 0000           _T0OCR::
 0000                   .blkb 1
 0001                   .dbsym e T0OCR _T0OCR c

⌨️ 快捷键说明

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