51单片机PWM波输出(共2页).doc
《51单片机PWM波输出(共2页).doc》由会员分享,可在线阅读,更多相关《51单片机PWM波输出(共2页).doc(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上tT占空比:如图PWM波所示,在一周期内t/T的比值称为占空比利用51单片产生PWM波方案:单片机使用资源:定时器0,定时器1,工作模式2(8位溢出自动重装初值)当定时器1溢出时,置位输出I/O,并停止自己计时,当定时器0溢出时,对输出I/O口清0,并打开定时器1,如此反复动作,这种模式有点像ATMEGA16单片机的快速PWM模式,都是通过中断自行操作的,而51单片机没有此功能,只能通过软件实现,改变定时器1即可改变占空比,程序如下:#includesbit out=P30;/频率输出引脚1sbit or_out=P31;/频率输出引脚2,与引脚1相位相差180度/*
2、初始化子程序*/void inti()out=or_out=0;/初始化输出I/O,将其清0TMOD=0x22;/设置两个定时器,工作方式2,即8位自动重装TL0=206;/TL0=256-t*fosc/12=255-1/20KHz*12/12MHz=256-50*1us=206,定时期0工作模式2下TL0作为计数器,定时器0 50ms溢出一次并自动重装TH0=206;/定时期0工作模式2下TH0作为自动重装初值,即TL0溢出时,TH0中的数据自动重装到TL0中TL1=223;/定时器1装初值TH1=223;/定时器1重装值设定ET0=1;/开定时器0中断ET1=1;/开定时器1中断EA=1;/开总中断TR0=TR1=1;/启动定时器0和1/*主程序*/void main()inti();while(1);/*定时器0中断服务程序*/void T0_time() interrupt 1 out=0;/定时器0有溢出就将out清0or_out=1;TR1=1;/溢出后打开定时器1/*定时器1中断服务程序*/void T1_time() interrupt 3out=1;/定时器1有溢出就将out置1or_out=0;TR1=0;/溢出后关闭自己专心-专注-专业
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 PWM 输出
限制150内