找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机怎么用定时器输出方波从宽到窄?

查看数: 3550 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-7-30 14:18

正文摘要:

51单片机 怎么用定时器输出方波从宽到窄,单片机用定时器输出,不借助按键调速。  用来控制步进电机转速,给定高速脉冲时无法启动,必须有一个加速的过程。 单片机源程序如下: #include<reg52.h> ...

回复

ID:498757 发表于 2021-8-3 11:43
波形应该是这样的,但是步进电机转速还是上不去,频率给高了,就嗡嗡响不转。
ID:498757 发表于 2021-8-3 11:31
chenchuanke 发表于 2021-8-3 09:26
他这个用pwm应该不行,应该是控制一个频率在一定时间内由低到高或者是由高到低的一个过程。步进电机都必须 ...

对的
ID:498757 发表于 2021-8-3 11:30
dwb123 发表于 2021-8-2 11:39
给中断啊,定时中断然后改变占空比就可以了。

应该不是改占空比,改的是频率
ID:944091 发表于 2021-8-3 09:26
他这个用pwm应该不行,应该是控制一个频率在一定时间内由低到高或者是由高到低的一个过程。步进电机都必须这样控制才不会失步
ID:950946 发表于 2021-8-2 11:39
给中断啊,定时中断然后改变占空比就可以了。
ID:955239 发表于 2021-7-31 12:00
脉宽调制
ID:332444 发表于 2021-7-30 17:08
ID:161164 发表于 2021-7-30 17:05
1. 确定脉冲是高电平有效还是低电平(先假设高电平有效)

2. 确定脉冲的最少有效时间(先假设80us)
PWM_H = 65536 - 80;(倒数80us)
PWM_L = 0;(倒数65536us)

3. 把定时器设为16位不自动重装
TMOD = 0x01;

4. 确定时器中断中建立反相程序
void T0_time()interrupt 1
{   
    CP=Swap;
if(Swap)//bit Swap 反相用
{
    TH0=PWM_H /256;         
    TL0=PWM_H %256;
}else
{
    TH0=PWM_L /256;         
    TL0=PWM_L %256;
}
   Swap = !Swap;   
}

5. 在main()中慢慢增加PWM_L 的值

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表