51系列单片机输出PWM的两种方法

更新时间:2024-07-03 12:08:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

51系列单片机输出PWM的两种方法

大小[2658] 时间[2006-7-1] 阅读[3637] 推荐[10] 积分[3] 查看和发表评论

2003年,第5期,类别:智能电子

MCS-51系列单片机无PWM输出功能,可以采用定时器配合软件的方法实现,对精度要求不高的场合是非常实用的。电路图见图1,采用高速光隔6N137输出,并将PWM的信号倒相。 一、 工作原理(原理图如图1所示) 二、PWM输出

1. 固定脉宽PWM输出

用T0定时器完成PWM输出,脉宽固定为65536μs。T0定时器设置成16位定时器,PWM波形如图2所示。

程序清单:(12MHz)

PwmData0 ;T0定时t1的初值(字) PwmData1 ;T0定时t2的初值(字) PwmF ;PWM输出标志

;*************************** setb tro ;启动T0 ……

T0Int:;T0中断服务程序 JB PwmF ,PwmOutH ;PWM输出未完成返回

Mov TH0,High(PwmData0) Mov TL0,Low(PwmData0) Setb tr0 Setb PwmF

Clr p1.0 ;PWM输出脚 reti

PwmOutH: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定时器控制脉宽(最大65536μs。) T0、T1定时器设置成16位定时器。PWM输出波形如图3所示。 程序清单:(12MHz)

PwmData0 ;T0定时t1的初值(字) PwmData1 ;T1定时T的初值(字)

;*************************** setb tro ;启动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的值。

湖南 李杰

本文来源:https://www.bwwdw.com/article/f6s.html

Top