简单的PWM电机调速–基于51单片机
- (一)51单片机需要用到的寄存器
- (二)PWM波的产生及调速原理
- (三)电机调速的实现
(一)51单片机需要用到的寄存器
中断允许寄存器,详情可以看STC51单片机芯片手册第160页
TMOD、TCON详情可以看STC51单片机芯片手册第187页
51单片机中的定时器有三个,(C52比C51多了一个定时器3,但这些都统称为51单片机)
本次以为例进行介绍
定时器的作用:
1:用于计时系统,可实现软件计时,或者使程序每隔一段固定的时间完成一项操作
2:替代长时间delay,提高CPU的运行效率和处理速度
因为delay延时函数会占用代码的运行空间、影响代码运行速度
通过查看芯片手册我们知道有四种工作模式,通过配置寄存器来选择模式
-
模式0:13位定时器/计数器
模式1:16位定时器/计数器
模式2:8位自动重装模式
模式3;两个8位计数器
而寄存器作用是控制定时器的启、停,标志定时器溢出和中断情况
TCON(可位寻址)用于设置定时器的控制状态
TMOD(不可位寻址)用于设置定时器的模式
这两个寄存器都分别有8位,每一位都有相应的功能
了解PWM可以点击此处
通过调节PMW的占空比来实现对电机的速度控制,PWM的周期非常的小、其周期信 从宏观来看、电压与时间所围成面积等效于一个正弦信 ,因此也可以用PWM来制作呼吸灯。
(三)电机调速的实现
51单片机的定时器每计数值增加1
TH=(65536-time/(12/ft))/256
其中,time就是要延时的时间(单位:us),ft是晶振频率。这个式子又可以简化成TH=(65536-time*ft/12)/256
TL=(65536-time*ft/12)%256
首先初始化定时器,这里选择51单片机的定时器
51定时器的计数值是分成高四位和低四位分别存放在寄存器和当中,因此需要分别设置和的值
特别注意
TMOD寄存器是不可位寻址的(即不能对TMOD的中的8位单独赋值),只能一次性给8位全部赋值。
现在已经初始化好了51单片机定时器0,现在开始设置
51单片机中具有一种特性,每次进入定时器中断都会将之前在中设置的初始值清0,所以每次进入定时器中断都需要在中断函数中重新赋给定时器初始值
现在定时器部分已经配置好了,现在开始配置一下电机,直流电机有两个接口和(这里使用TT马达为例)
其中一个接口给高电平另一个给低电平就能实现电机旋转。
这些程序只是简单的调速,要制作出一辆简易循迹小车还需要学习更多东西
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!