基于STC89C52单片机的直流电动机测速系统

2021-08-18 08:19王丽娜
山西电子技术 2021年4期
关键词:数码管计数器中断

王丽娜

(太原市高级技工学校,山西 太原 030021)

1 系统方案

1.1 系统总体设计

本系统是以STC89C52单片机为核心[1],包括采样电阻模块、电磁信号传感器、电压比较器模块、放大电路、可调电源等构成,如图1。通过调节电压的方式控制直流电动机转速[2],在1.8V时可以达到600rpm,在9.5V时可以达到5000rmp。其转速可通过采样电阻或自制电磁信号传感器采集转速信号利用电压比较器进行信号处理,51单片机进行内部计数,利用4位数码管实时显示转速,从而实现稳定测量直流电机的实时转速,且测量周期可以达到2S。当电机转速低于600rpm和高于5000rpm时报警。

图1 直流电机测速系统结构框图

1.2 方案选择论证

1) 最小系统方案选择

采用单片机定时计数器和中断配合采集信号,数码管显示四位十进制数。采集时信号略有波动,信号不太稳定,数码管显示不太稳定。若采用12位的AD芯片采集信号,由于采集信号波动大,容易造成误差。利用电压比较器采集把正弦波转化成方波,通过51单片机内部的定时器和中断器开始计数,从而把计数值转化为电机转速[3]。

2) 显示模块方案选择

采用LCD液晶显示,显示内容丰富,但价格高,耗能大。采用4位数码管动态显示,简单明了,节约成本,耗能少。

3) 传感器方案选择

采用铁钉缠绕线圈的方式来测量电机壳外电压,信号杂乱不可取。而采用磁环缠绕线圈的方式来测量壳外电压,信号相对来说比较稳定,所以利用电磁感应的传感器采集电压变化,用51单片机实现中断计数。

2 理论分析与计算

2.1 理论分析

本系统采用电压比较器采集信号,4位数码管显示,环形磁铁缠绕线圈制作电磁信号传感器。通过调节电压来改变电机转速,用采样电阻和自制电磁信号采集器采集信号,利用放大电路和电压比较器把正弦波转化为方波(利用示波器显示),利用低电平触发最小系统停止运行,并进行计数数据过程性处理。同时采用定时器进行计时,每隔1.5s采集一次数据,并进行计算,用数码管实时显示直流电机的转速[4]。

2.2 测速方式

采集电路产生方波,单片机定时计数器与中断采集信号。通过计算显示在数码管上。

2.3 误差分析

表1 系统指标误差分析表

采样电阻采集到的信号通过放大是有杂波产生,最后触发中断时,前段产生的杂波就会影响到单片机的信号采集,从而形成了误差。

3 硬件与软件设计

3.1 硬件电路设计

1) 单片机最小系统由电源、复位电路及振荡电路构成[5]。

图2 最小系统

图3 放大电路

图4 电压比较器

2) 放大电路制作一个50倍到500倍的可调电路。分为两级,一级放大50倍,二级放大10倍。

3) 电压比较器模块由LM393芯片制成,工作时将输入信号转化为方波信号,以便触发中断,开始计数。

3.2 软件程序设计

首先对控制系统进行定时器和计数器初始化,检测到有脉冲输入时,启动计数器和定时器。将记录到的脉冲个数转换为直流电动机转速,并在数码管输出显示,如图5所示。中断计数器的中断子程序如图6所示。

图5 程序流程图 图6 中断子程序流程图

4 总结

本设计中采样电阻达到了对电机转速的最小影响,采样周期达到了2s以内,转速误差不大于0.5%。设计成功的关键主要在于正确的方案选择和可靠的电路设计,系统采用了单片机脉冲计数,电机每转一圈通过电路就会产生一个标准的方波,单片机采集到脉冲后触发中断从而实现精确的计数,最后显示在数码管上。

猜你喜欢
数码管计数器中断
采用虚拟计数器的电子式膜式燃气表
基于51单片机的分数计数器设计
微课教学设计之“数码管动态显示”
五十一进制计数器的设计与仿真实现
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
Arduino编程
MC9S08FL16单片机数码管静态显示分析
Linux中断线程化分析及中断延时测试
跟踪导练(二)(5)