×
单片机 > 单片机程序设计 > 详情

基于MCS-51单片机的直流电机转速测控系统设计

发布时间:2020-06-13 发布时间:
|

摘要:给出了一种基于89C51单片机以及PWM控制思想的高精度、高稳定、多任务直流电机转速测控系统的硬件组成及关键单元设计方法。实验结果表明该系统能实时、有效地对直流电机转速进行监测与控制,而且输出转速精度高、稳定性好。
关键词:PWM;实时监控;单片机;霍尔传感器;转速

0 引言
    目前使用的电机模拟控制电路都比较复杂,测量范围与精度不能兼顾,且采样时间较长,难以测得瞬时转速。本文介绍的电机控制系统利用PWM控制原理,同时结合霍尔传感器来采集电机转速,并经单片机检测后在显示器上显示出转速值,而单片机则根据传感器输出的脉冲信号来分析转速的过程量,并超限自动报警。本系统同时设置有按键操作仪表,可用于调节电机的转速。

1 系统方案的制定
    直流电机控制系统主要是以C8051单片机为核心组成的控制系统,本系统中的电机转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此,由MCU内部的可编程计数器阵列输出PWM波,以调整电机两端电压与控制波形的占空比,从而实现调速。本系统通过霍尔传感器来实现对直流电机转速的实时监测。系统的设计任务包括硬件和软件两大部分,其中硬件设计包括方案选定、电路原理图设计、PCB绘制、线路调试:软件设计包括内存空间的分配,直流电机控制应用程序模块的设计,程序调试、软件仿真等。

2 硬件设计
    C8051是完全集成的混合信号系统级MCU芯片,具有64个数字I/O引脚,片内含有VDD监视器、看门狗定时器和时钟振荡器,是真正能独立工作的片上系统,并能快捷准确地完成信号采集和调节。同时也方便软件编程、干扰防制、以及前向通道的结构优化。
    本单片机控制系统与外部连接可实时接收到外部信号,以进行对外部设备的控制,这种闭环系统可以较准确的实现设计要求,从而制定出一个合理的方案,图1所示是电机测控系统框图。


    本系统先由单片机发出控制信号给驱动电机,同时通过传感器检测电机的转速信号并传送给单片机,单片机再通过软件将测速信号与给定转速进行比较,从而决定电机转速,同时将当前电机转速值送LED显示。此外,也可以通过设置键盘来设定电机转速。系统中的转速检测装置由霍尔传感器组成,并通过A/D转换将转速转换为电压信号,再以脉冲形式传给单片机。这种设计方法具有频率响应高(响应频率达20 kHz以上)、输出幅值不变、抗电磁干扰能力强等特点。其中霍尔传感器输入为脉冲信号,十分容易与微处理器相连接,也便于实现信号的分析处理。单片机的TO口可对该脉冲信号进行计数。
    设计时,可通过单片机的P0.1~P0.5五个接口来完成键盘的输入,P1.6口可完成呜叫和报警,P2.0接电机,P2.1~P2.4接显示器的位选,P0口为显示器段选码,其硬件连接电路如图2所示。


    本系统的脉冲宽度调制(PUlse Width Modulation)原理是:脉冲宽度调制波由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。该系统由一个比较器和一个周期为Ts的锯齿波发生器组成。脉冲信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。图3所示为脉冲宽度调制系统的调制原理和波形图。


    设样本τk为均匀脉冲信号,它的第k个矩形脉冲可以表示为:
   
    其中,x{t}是离散化信号;Ts是采样周期,τ0是未调制宽度,m是调制指数。现假设脉冲幅度为A,中心在t=kTs处,τK在相邻脉冲间变化缓慢,那么,其Xp(t)可表示为:
   
    其中,,ωs为电机角速度,结合式(2)可见,脉冲宽度信号可由信号x(t)加上一个直流成分以及相位调制波构成。当τ0<    LED显示采用动态扫描方式,并用单片机I/O接口扩展输出,再由三极管驱动各显示器的位选端并放大电流。独立式按键采用查询方式,按键输入均采用低有效,上拉电阻可用于保证在按键断开使其I/O口为高电平。单片机的I/O(P0.1~0.5)引脚所扩展的5个按键分别定义为:设置、启动、移位、开始、+1功能。硬件电路确定以后,电机转速控制的主要功能将依赖于软件来实现。

3 软件设计
    本系统的软件程序的设计可分为5个步骤:分别是综合分析并确定算法;设计程序流程图;合理选择和分配内存单元以及工作寄存器;编写程序;上机调试运行程序。
    应用软件的设计可采用模块化结构设计,其优点是每个模块的程序结构相对简单,且任务明确,易于编写、调试和修改;其次是程序可读性好,对程序的修改可局部进行,而其他部分可以保持不变,这样便于功能扩充和版本升级;另外,对于使用频繁的子程序,可以建立子程序库,以便于多个模块调用;最后是便于分工合作,多个程序员可同时进行程序的编写和调试工作,故可加快软件研制进度。
    本程序采用8051单片机的C语言编程来实现。在系统的程序设计中,可采用模块化编程实现。整个软件由主程序模块、转速测量模块、时钟模块、数据通信模块、动态显示模块等组成。各模块均采用结构化程序设计思想设计,因而具有较强的通用性;而采用模块化程序结构则可使软件易于调试、维护和移植。
    系统软件可根据硬件电路的功能与AT89C51各管脚的连接情况对软件进行设计。以便明确各引脚所要完成的功能,从而方便进行程序设计和内存地址的分配,最终完成程序模块化设计。
    本系统为直流电机测控系统。根据系统性能要求,除复位电路外,还应该设置一些功能键:包括启动键、设置键、确定键、移位键、加1键等。由于本系统中的单片机还有闲置的I/O口线,而系统要求所设置的按键数量也不多,因此,可以采用独立式按键结构。
    根据直流电机控制系统的结构,该电机转速控制系统为一简单的应用系统,可以采用顺序的设计方法。这种设计由主程序和若干个中断服务程序构成,整个电机转速测控系统可分成六大模块,每个模块完成一定的功能。图4所示是根据电路图确定的程序设计模块图。


    其中主程序模块主要设置主程序的起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。其主程序流程图如图5所示。


    对于定时器T1(1s)子程序的设计,其实在单片机中,定时功能既可以由硬件(定时/计数器)实现,也可以通过软件定时程序来实现。软
件延时程序要占用CPU的时间,因而会降低CPU的利用率。而硬件定时则通过单片机内的定时器来定时,而且,定时器启动以后可与CPU并行工
作,故不占用CPU的时间,从而可使CPU具有较高的工作效率。
    本系统采用硬件定时和软件定时并用的方式,即用T1溢出中断功能来实现10ms定时,而通过软件延时程序实现1 ms定时。其中T1定时器
中断服务程序的功能主要实现转速值的读入、检测与缓存处理。
    对于定时器T1的计数初值计算,由于本系统采用的是6 MHz的时钟频率,所以,一个机器周期时间是2μs。这样,根据T1定时器产生500 μs的定时,便可以计算出计数初值。
    本文设计的转速测控系统的工作方式寄存器TMOD=00010000B,T1定时器以工作方式2来完成定时。

4 程序调试
    程序调试可在伟福仿真软件上进行编制,该软件支持脱机运行,纯软件环境可模拟单步、跟踪、全速、断点;源文件仿真、汇编等,并可支持多文件混合编程。仿真调试后的目标程序可以固化到EPROM,然后用专门的程序烧写器对89C51单片机进行程序烧写。

5 结束语
    本设计采用C51进行编程,程序占用存储器单元少,执行速度快,并能够准确掌握执行时间,实现精细控制。同时由于采用89C51为CP-U,并利用噪声抵抗能力较强的PWM控制技术、串行口扩展显示器接口和I/O口扩展键盘。因而可省去片外RAM,而且体积小,功能全,小巧灵活,操作方便,又可安装在工作现场单独工作。因而具有较大的实用价值和良好的应用前景。

关键字:直流电机转速测控 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AVR熔丝位操作时的要点和需要注意的相关事项