51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机技术文章 > 51单片机 > 详细内容
51系列单片机输出PWM的两种方法
发布时间:2009/7/5  阅读次数:1190  字体大小: 【】 【】【

       MCS-51系列单片机无PWM输出功能,可以采用定时器配合软件的方法实现,对精度要求不高的场合是非常实用的。电路图见图1,采用高速光隔6N137输出,并将PWM的信号倒相。
  一、 工作原理(原理图如图1所示)
  二、PWM输出
  1. 固定脉宽PWM输出
       用T0定时器完成PWM输出,脉宽固定为65536us。T0定时器设置成16位定时器,PWM波形如图2所示。
  程序清单:(12MHz)
  PwmData0;T0定时t1的初值(字)
  PwmData1;T0定时t2的初值(字)
  PwmF       ;PWM输出标志
;***************************
  setb tr0;启动T0                       ……
                 ;T0中断服务程序
       T0Int:JB,PwmF,PWMOUT ;PWM输出未完成返回
       MOV     TH0,HIGH(PwmData0)
       MOV     TL0,LOW (PwmData1)
       SETB TRO                

       SETB PwmF        

       CLR   P1.0   ;PWM输出脚
  RETI                                                                                  

       PWMOUT:SETB P1.0 CLR   TR0

       MOV TH0,HIGH(PWMDATA1)
       MOV TL0,LOW(PWMDATA1)
       SETB TR0
       CLR       PWMF                            

       RETI

       说明:在主程序中计算PWMDATA0、PWMDATA1的值。              
  2. 可变脉宽PWM输出
  用T0定时器控制PWM的占空比,T1定时器控制脉宽(最大65536us。)
  T0、T1定时器设置成16位定时器。PWM输出波形如图3所示。
  程序清单:(12MHz)
    PwmData0;T0定时t1的初值(字)
         PwmData1;T0定时t2的初值(字)
;***************************
               SETB TR0;启动T0
         SETB TR1   ......

               T0INT:CLR TR0;T0中断服务程序
           SETB P1.0 ;PWM输出脚
     RETI

                 T1INT:CLR   P1.0     ;T1中断服务程序
       CLR   TR0                                                                                                                                      
                                CLR TR1
     MOV TH0,HIGH(PWMDATA0)
     MOV TL0,LOW(PWMDATA0)
     MOV TH1,HIGH(PWMDATA1)
     MOV TL1,LOW(PWMDATA1)
     SETB TR1     

                 SETB TR0                    

                 RETI
  说明:在主程序中计算PWMDATA0、PWMDATA1的值

  

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号