如图1所示,此方案是以STC89C52RC单片机作为主控芯片,采用霍尔测速传感器磁场频率测速法测量电机转速、采集电机参数,向单片机输入脉冲信号。选取LCD1602液晶显示屏显示电机每分钟转速及占空比。采取独立按键作为按键模块,为单片机提供按键信息,实现电机启动/停止、正转、反转、加速、减速功能。选择双极PWM控制配合H型桥式驱动电路实现电机驱动,利用USB-TTL转串口模块完成系统供电以及烧录程序。整体硬件需求较小,硬件成本较低。
3.8总体方案框图
 
四、电路设计 4.1总体电路设计原理图     
     
图2 系统电路设计原理图
系统电路构成:由STC89C52RC单片机最小系统作为运算处理和控制的核心,采用USB-TTL转串口实现电路5V供电,选择3144测速传感器(P3.3)作为输入模块,LCD1602液晶显示模块(P0.0—P0.7,P2.7:RS,P2.6:RW,P2.7:EN)作为显示电路,并配合按键电路控制直流电机、设定占空比,最后通过由三级管及开关二极管组成的H桥电路(P3.4,P3.7)驱动5V直流电机,共六个部分组成,如图2所示。 4.2供电电路 
图3 供电模块接线电路图 在PCB板子的一侧焊上四个排针,外接USB-TTL转串口的5V,RXD,TXD,GND端口,实现对电路的5V供电以及对STC89C52RC单片机程序的烧录,具体电路如图3所示。 4.3直流电机驱动电路 
图4 电机驱动模块电路图 直流电机驱动电路由四个三极管组成H桥驱动电路,H桥的输入受STC89C52RC单片机输出的PWM信号控制,在实现转速控制的同时,也可以实现正反转控制,具体电路如图4所示。 4.4霍尔传感器测速模块电路 
图5 霍尔传感器测速模块实物图 霍尔传感器测速模块电路应用霍尔效应原理,是由电压调整器、霍尔电压发生器、差分放大器、施密特触发器,温度补偿电路和集电极开路的输出级组成的磁敏传感电路。使用3144E开关型霍尔传感器,其输入为磁感应强度,输出是一个数字电压信号。当传感器感应到磁场时,数字输出低电平,信号灯亮;如果没有感应到磁场,则数字输出高电平,信号灯不亮,准确度、可靠性高。 
图6 霍尔传感器测速模块接线电路图 霍尔传感器测速模块的数字信号输出端口通过10K的上拉电阻与STC89C52RC的P3.3端口相连,使其输出信号更稳定,如图6所示。 4.5按键电路 
图7 按键电路图 按键电路由5个普通的自复位式四脚按键组成,将它们同一侧的引脚纵向连在一起接到GND,另一端分别接入STC89C52RC单片机的P1.0—P1.4引脚,主要实现电机启动/停止、正转、反转、加速、减速,如图7所示。 4.6单片机及显示电路 
图8 单片机最小系统图 
图9 LCD1602液晶显示图 单片机及显示电路包括单片机最小系统、LCD1602液晶显示,如图8、图9所示,LCD1602液晶显示通过并行通信接口(D0—D7,P2.7:RS,P2.6:RW,P2.7:EN)与单片机相连,在电路中主要实现电机转速及占空比的显示。 单片机通过P3.4、P3.7端口向直流电机驱动电路输出PWM信号,控制电机转速。霍尔传感器测速模块电路输出的方波信号送入单片机的P3.3端口。 4.7元器件清单 表1 元器件清单表
元器件的选择,根据可靠性、可行性、稳定性、价格以及最终方案,选择元器件均为直插式,选择STC89C52RC单片机为主控芯片,使用IC插座集成块,方便单片机的更换,利用排母使LCD1206实现外接模式,方便显示屏安装与拆卸。 五、软件设计 程序设计部分主要包括主程序、初始化子程序、键盘扫描子程序、LCD1602显示子程序、中断子程序、信息处理子程序及PWM生成程序七个部分组成,大致通过LCD1602显示信息,通过按键输入信息,对LCD1602显示的转速和占空比等信息进行操作。 5.1主程序
主程序中主程序中包含了初始化程序,键盘扫描程序,主程序代码如下: void main() { flag_1=0; m=100; zhuansu=0; flag=0; zheng=1; fan=0; init(); while(1) { keyscan(); } }

5.2中断子程序 1.外部中断 (1)工作过程:每来一个电机脉冲信号,产生中断计数。 (2)流程图:如图11所示。 (3)程序: void int1()interrupt 2 { zhuansu++; } 2.定时器中断 (1)工作过程:TT0 定时器每2秒定时中断一次,读取记录的脉冲个数,显示转速。 (2)流程图:如图12所示。 (3)程序: void int2()interrupt 3 {
TH0=0xdc; TL0=0x00; flag++; if(flag==200) { display(); zhuansu=0; flag=0; } } 
5.3键盘扫描子程序
(1)工作过程:按键1按下时占空比加一,按键2按下时占空比减一,按键3按下时电机正转,按键4按下时电机反转,按键5按下时电机启动/停止。 (2)流程图:如图13所示。 (3)程序: void keyscan() { if(num1==0) { delay(20); if(num1==0) { if(m<=199) m++; displaym(); } } if(num2==0) { delay(20); if(num2==0) { if(m>=1) m--; displaym();
} } if(num3==0) { delay(20); if(num3==0) { zheng=1; fan=0; } } if(num4==0) { delay(20); if(num4==0) { zheng=0; fan=1; } } if(num5==0) { delay(20); if(num5==0) { while(num5==0); kai=1-kai; } } }
5.4信息处理子程序
 1.占空比显示 (1)工作过程:在LCD1602上显示占空比,若转速百位为零则百位显示空格、其余正常显示,反之百位也正常显示;若转速十位为零则只显示个位,反之十位也正常显示、百位显示空格。 (2)流程图:如图14所示。 (3)程序: void displaym() { write_com(0xcb); if(m/200%10!=0) write_data(m/200%10+0x30); else write_data(' ');
if(m/200%10==0&&m/20%10==0) write_data(' '); else write_data(m/20%10+0x30); write_data(m/2%10+0x30); }
2.转速显示: (1)工作过程:在LCD1602上显示转速,若转速万位为零则万位显示空格、其余正常显示,反之都正常显示;若转速千位为零则万位、千位显示空格、其余正常显示,反之千位也正常显示;若转速百位为零则万位、千位、百位显示空格、其余正常显示,反之百位也正常显示;若转速十位为零则只显示个位,反之十位也正常显示、其余显示空格。 (2)流程图:如图15所示。 (3)程序: void display() { write_com(0x82); zhuansu=zhuansu*30;
if(zhuansu/10000!=0) write_data(zhuansu/10000+0x30); else write_data(' ');
if(zhuansu/1000==0) write_data(' '); else write_data(zhuansu%10000/1000+0x30);
if(zhuansu/100==0) write_data(' '); else write_data(zhuansu%10000%1000/100+0x30);
if(zhuansu/10==0) write_data(' '); else write_data(zhuansu%10000%1000%100/10+0x30); write_data(zhuansu%10000%1000%100%10+0x30); write_com(0xd0);} 
5.5PWM生成子程序 
(1)工作过程:电机正转时,若0<flag_1<m,向电机输出高电平;若m<flag_1<199,向电机输出低电平。电机反转时,若0<flag_1<m,向电机输出低电平;若m<flag_1<199,向电机输出高电平。 (2)流程图:如图15所示。 (3)程序: void int3()interrupt 1 { TH1=0xff; TL1=0x00; flag_1++; if(flag_1>199) flag_1=1; if(kai==1) { if(zheng==1) { if(flag_1<m) { out=0; out1=1; } else { out=1; out1=1; } } if(fan==1) { if(flag_1<m) { out=1; out1=0; } else { out=1; out1=1; } } } if(kai==0) { out=1; out1=1; } }
六、制作、调试过程。 6.1制作 
图17 万用板元件分布图 将电路原理图绘制完成,然后根据原理图准备相应的元件,再根据要求改变各元件的属性并把各个元件按原理图焊接于万用板之上。焊接完成后,用万用表检测电路的通断情况,检查无误后,向IC插座集成块中插入芯片,下载测试程序,观察LCD1602显示模块、电机、霍尔传感器测速模块以及按键是否按程序正常运行。 
图18 PCB照片预览及3D仿真 
图19 PCB实物图 
图20 万用板实物图 6.2调试 利用制作的实物进行运行调试,通过按不同的按键,观察LCD1602显示情况,判断是否存在逻辑错误的情况。调试过程中,肯定会出现因逻辑错误而显示不正常,需要配合仿真调试进行排查。发现出错原因后,及时想办法解决问题。 
图21 实物调试图
九、附录 
图 22 系统电路原理图
图 2 实物正面电路 
图 3 实物反面电路走线

图 4 实物调试 单片机系统程序:
完整的Word格式文档51黑下载地址:
基于霍尔元件电机转速测量系统设计.docx
(5.7 MB, 下载次数: 85)
|