pwm波怎么输出,基于51单片机输出pwm波

pwm就是脉冲宽度调制,也就是占空比可变的脉冲波形。pwm控制技术就是对半导体开关器件的导通和关断进行控制,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。
51系列单片机无pwm输出功能,可以采用定时器配合软件的方法输出。对精度要求不高的场合,非常实用。
一般可以使用两个定时器来实现,如果单片机是s51的话使用t0和t1,如果是s52的话建议使用t0和t2,因为定时器在工作方式2的八位重装模式下定时比较准确,这里我们使用t0和t1
用t0定时器完成pwm输出,脉宽固定,t1来决定高平的宽带来进行pwm调制具体程序如下:其中晶振12m,载波频率20khz,直接用p0.1来驱动直流电机,直流电机正极接电源正,单片机低平驱动,这样灌电流大。
基于51单片机输出pwm波程序 #include 《 reg51.h 》
#include 《 intrins.h 》
sbit k1 =p1^4 ; //增加键
sbit k2 =p1^5 ; //减少键
sbit p00 =p0^1;
sbit beep =p3^7 ; //蜂鸣器
unsigned char pwm=0xe7; //赋初值
void beep();
void delayms(unsigned char ms);
void delay(unsigned char t);
/*********************************************************/
void main()
{
p1=0xff;
tmod=0x21 ;
th0=0xff ; //50us延时常数
tl0=0xce ; //频率调节
th1=pwm ; //脉宽调节
tl1=0 ;
ea=1;
et0=1;
et1=1;
tr0=1 ;
while(1)
{
do{
if(pwm!=0xff)
{pwm++ ;delayms(10);}
else beep() ;
}
while(k1==0);
do{
if(pwm!=0xce)
{pwm-- ;delayms(10);}
else beep() ;
}
while(k2==0);
}
}
void timer0() interrupt 1
{
tr1=0 ;
th0=0xff ;
tl0=0xce ;
th1=pwm ;
tr1=1 ;
p00=0 ; //启动输出
}
void timer1() interrupt 3
{
tr1=0 ;
p00=1 ; //结束输出
}
/*********************************************************/
//蜂鸣器子程序
/*********************************************************/
void beep()
{
unsigned char i ;
for (i=0 ;i《100 ;i++)
{
delay(100) ;
beep=!beep ; //beep取反
}
beep=1 ; //关闭蜂鸣器
delayms(100);
}
/*********************************************************/
// 延时子程序
/*********************************************************/
void delay(unsigned char t)
{
while(t--) ;
}
/*********************************************************/
// 延时子程序
/*********************************************************/
void delayms(unsigned char ms)
{
unsigned char i ;
while(ms--)
{
for(i = 0 ; i 《 120 ; i++) ;
}
}
/*********************************************************/

一种直流DVR装置研发方案
深度解析昇腾AI全栈架构设计
液压机器人的系统介绍和三种新机器人的介绍
SpaceX重型猎鹰首次商业发射升空 以色列首枚月球探测器坠毁
你知道十进制转二进制如何进行转换吗?
pwm波怎么输出,基于51单片机输出pwm波
关于数字信号处理在雷达相噪测量中的作用分析和介绍
荣耀9VS小米6,你觉得谁会更胜一筹?
波音737Max客机将于2020年第一季度在欧洲复飞
怎样去确认企业和个人是否都采用分布式分类帐技术
电子电路基础106条精心总结,建议收藏
固态硬盘选购攻略|SATA和M2接口SSD固态硬盘如何选?
B2C商城系统开发使用java语言合不合适
欧盟欲对中兴华为下手:国家补贴损害了欧洲厂商的利益
未来什么样的产品可以颠覆微信?VR社交
如何道路监控变得更加的完美
NVIDIA为数据中心运营商实现实现共享精确计时
变电所常见故障及处理措施
基于动力环境监控平台的基站远程带外管理应用研究
如何设置投影仪光源灯工作时间