📄 m16pwm.lis
字号:
.module M16PWM.c
.area text(rom, con, rel)
0000 .dbfile F:\job\M16学习板\PWM(实验九)\M16PWM.c
0000 .dbfunc e Timer0Init _Timer0Init fV
.even
0000 _Timer0Init::
0000 .dbline -1
0000 .dbline 24
0000 ; /*******************************************************************
0000 ; 实验九
0000 ; 实验名称: PWM转换实验
0000 ; 实验目的: 学习AVR单片机的PWM功能
0000 ; 实验现象: 在PB3端口看到波形
0000 ; 环 境: ICCAVR6.31A
0000 ; 设 计 者: shinea8868
0000 ; 说 明: 部分程序原型源自网络,经本人修改调试可用,请尊重知识产权,如
0000 ; 作商业用途请保留本段文字
0000 ; 完成日期: 2007年4月10日
0000 ; *******************************************************************/
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; #define OC0_OUT_EN DDRB |= 0b00001000
0000 ;
0000 ; /*-----------------------------------------------------------------
0000 ; 函数名称: void Timer0Init(void)
0000 ; 函数功能:
0000 ; 参 数:
0000 ; 返 回 值: 无
0000 ; -----------------------------------------------------------------*/
0000 ; void Timer0Init(void)
0000 ; {
0000 .dbline 25
0000 ; TCCR0 = (1<<WGM01)|(1<<WGM00)|(1<<COM01)|(1<<COM00)|(1<<CS00);
0000 89E7 ldi R24,121
0002 83BF out 0x33,R24
0004 .dbline 31
0004 ; /*
0004 ; WGM01=1; WGM00=1; --> fast PWM modle
0004 ; COM01=1; COM00=0; --> 比较匹配时set OC0 pin
0004 ; CS00=1; --> timer0 source 不经过任何分频,直接为Clk,使得PWM可以工作得足够快
0004 ; */
0004 ; TCNT0 = 0x00; //设置TC0计数寄存器初值
0004 2224 clr R2
0006 22BE out 0x32,R2
0008 .dbline 32
0008 ; OCR0 = 0xe0; //输出比较寄存器初值,设置该值可用于调节占空比
0008 80EE ldi R24,224
000A 8CBF out 0x3c,R24
000C .dbline -2
000C L1:
000C .dbline 0 ; func end
000C 0895 ret
000E .dbend
000E .dbfunc e main _main fV
.even
000E _main::
000E .dbline -1
000E .dbline 41
000E ; }
000E ; /*-----------------------------------------------------------------
000E ; 函数名称:
000E ; 函数功能:
000E ; 参 数:
000E ; 返 回 值: 无
000E ; -----------------------------------------------------------------*/
000E ; void main(void)
000E ; {
000E .dbline 42
000E ; OC0_OUT_EN; //为允许PWM工作,需设置PB3为输出
000E BB9A sbi 0x17,3
0010 .dbline 43
0010 ; Timer0Init();
0010 F7DF xcall _Timer0Init
0012 .dbline 44
0012 ; SEI();
0012 7894 sei
0014 L3:
0014 .dbline 45
0014 L4:
0014 .dbline 45
0014 FFCF xjmp L3
0016 X0:
0016 .dbline -2
0016 L2:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -