永发信息网

怎样用单片机控制调整脉冲波的占空比?

答案:3  悬赏:30  手机版
解决时间 2021-02-22 09:44
怎样用单片机控制调整脉冲波的占空比?
最佳答案
*介绍一个51系列单片机采用脉冲宽度调制(PWM)方式控制LED灯亮度的一个程序,大家都知道,51单片机本身是没有pwm接口的,这个程序是通过软件模拟pwm.在一定的频率的方波中,调整高电平和低电平的占空比,即可实现LED灯亮度控制。程序中使用定时器0产生2.5ms周期脉冲,使用占空比控制变量scale控制占空比,在低电平期间使LED灯亮,在高电平期间使LED灯灭,改变scale就改变了高电平与低电平的时间,因此也就控制了LED灯的亮度。*/
#include "AT89X51.H" //模拟PWM输出控制灯的10个亮度级
unsigned int scale; //占空比控制变量
void main(void) // 主程序
{ unsigned int n; //延时循环变量
TMOD=0x02; //定时器0,工作模式2(0000,0010),8位定时模式
TH0=0x06; //写入预置初值6到定时器0,使250微秒溢出一次(12MHz)
TL0=0x06; //写入预置值
TR0=1; //启动定时器
ET0=1; //允许定时器0中断
EA=1; //允许总中断
while(1) //无限循环,实际应用中,这里是做主要工作
{ for(n=0;n<50000;n++); //每过一段时间,就自动加一个档次的亮度
scale++; //占空比控制变量scale加1
if(scale==10) scale=0; //如果scale=10,使scale为0
} }
timer0() interrupt 1 //定时器0中断服务程序
{ static unsigned int tt ; //tt用来保存当前时间在一秒中的比例位置
tt++; //每250微秒增加1
if(tt==10) //2.5毫秒的时钟周期
{ tt=0; //使tt=0,开始新的PWM周期
P2_0=0; //使LED灯亮
}
if(scale==tt) //按照当前占空比切换输出为高电平
P2_0=1; //使LED灯灭
}
追问static unsigned int tt 这是什么意思追答应该是这样的unsigned int tt ,写错了
全部回答
有硬件PWM功能那么设定pwm寄存器,没有就用定时器中断来模拟PWM追问提示一下,这个定时器模拟的PWM该怎么写?追答设定一个寄存器存储占空比参数,一个寄存器当计数器在定时器中断中自加一, 计数器在定时器中断中超过设置的占空比时就异或翻转输出脚。
你的单片机 有PWM功能吗? 没有的话 用定时器中断实现
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
JAC 江淮格尔发汽车配件合肥哪里可买到?
手机版12306+页面有+G/D/C+++Z字头++T字头+++
东升屯在什么地方啊,我要过去处理事情
【英语国际音标发音有几个听不太清楚想请教人
3515,3537,3539,3517哪个工厂做鞋子质量最
跪求网游六人结拜称号
金立手机如果找小欧助手
萧山到深圳的火车票
唐太宗为什么称魏征之“死”为“殂”
已知sin(阿尔法+β)乘sin(β-阿尔法)=m则
中国移动通信金坪通3G手机连锁地址在什么地方
硬盘高清播放机怎么播放蓝光原盘电影
恋夜,没了有什么别的平台吗
多拉脑在哪里啊,我有事要去这个地方
电动三轮车电机800瓦控制器1000瓦800瓦哪个有
推荐资讯
女主角有异能的穿越小说,我只要女主角一个人
花园棋牌茶社在哪里啊,我有事要去这个地方
潮晓商行怎么去啊,有知道地址的么
内厝社区科协地址有知道的么?有点事想过去
陆川县横山工商所在什么地方啊,我要过去处理
你知道吗?原《中华人民共和国所得税》规定中
金利锋工程机械配件销售部地址有知道的么?有
核电站是怎么控制发电量的?
关于吊顶的设备安装做法,下列哪项是错误的?
雅阁旅馆在哪里啊,我有事要去这个地方
丛生植物是什么意思
女,农历1998年四月二十日,姓张,谁能帮忙取
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?