3.5.2 显示及报警部分电路图
霍尔器件传回的数据经单片机处理后,由LCD1602进行显示,显示的数据即为当前电机的转速。不同颜色的LED灯可以显示当前电机的运行状态(启动、正转、反转),当电机的转速超出一定的范围后蜂鸣器进行报警提醒用户注意检测电机运行状态。
图5 显示及报警电路图
4. 系统软件设计
4.1 测速原理
本系统采用AT89C51中的 中断对转速脉冲计数。定时器T0工作于定时方式,工作于方式1。每到1s读一次外部中断 计数值,此值即为脉冲信号的频率,可计算出电机的转速。
当直流电机通过传动部分带圆盘旋转时,霍尔传感器根据圆盘上得磁片获得一系列脉冲信号。这些脉冲信号通过单片机系统定时/计数器 计数,定时器T0定时。定时器T0完成100次溢出中断时间(T)除以测得的脉冲数(m),经过单位换算后,就可得出直流电机旋转的速度。直流电机转速计算的公式[11]:
n=60•m/(N1•T•N)(rpm)
其中:n是直流电机的转速,N为栅格数,N1为T0中断次数,m是 在一定时间内测得的脉冲个数,T为定时器T0定时溢出时间。
4.2 系统流程图
4.2.1 主程序流程图
先进行初始化设置各定时器初值,然后再判断是否启动系统进行测量。如果测量,就启动系统运行。如果不是,就等待启动。启动系统后,会接收到霍尔器件检测来的脉冲信号,这时启动外部中断,每来一个脉冲就中断一次,记录脉冲的个数。同时启动T0定时器,每1秒定时中断一次,读取脉冲个数,根据公式计算出电机转速并送LCD显示。
图6 主程序图
4.2.2 中断服务流程图
在处于中断服务程序阶段,首先进行关中断设置。其次进行对 位进行的脉冲个数计数的数值读取。再次对T0进行赋初值并且进行关中断设置。最后进行中断返回。
(1)外部计数中断
图7 计数中断程序图
(2)定时器中断
图8 定时中断程序图
4.2.3 独立式键盘控制流程图
独立式键盘控制描述:本系统中有五个个独立式按键,K1、K2、K3、K4、K5 分别控制着系统的启动、正反转、加速、减速、急停。系统开始时,检测独立式按键,如有按键按下,则相对应的K=0,然后进入子程序实现按键的功能[12]。具体流程如图:
图9 按键控制程序图
5. 仿真与调试
本次系统设计采用Proteus软件进行电路图的设计,采用keil软件进行程序的编写,
当在keil中调试通过后,会生成hex为扩展名的文件,这样系统就可以在Proteus中成功进行仿真[13]。
5.1 系统仿真及调试时电机运行效果
(1) 系统上电后,所有部件都被初始化。当K1被按下时,电机处于启动状态,电机启动时运行效果如图11:
图10 电机启动
(2) 系统运行过程中,当K3被按下时,电机处于正向运行状态,电机运行效果
如图11:
图11 电机正向加速
(3) 在电机正向运行过程中,当K2被按下时,电机会反向运行,电机反向运行效果如图12:
图12 电机反向减速 51单片机直流电机控制系统设计+仿真效果图+源代码(5):http://www.youerw.com/zidonghua/lunwen_1500.html