1、基于 51 单片机的直流电机转速测控系统设计内容提要:随着现代科技的不断发展,现在的电子产品越来越多,在早期,电子产品一般是纯硬件电路,没有使用单片机,电路复杂难以设计,也难以检查问题,随着微控制技术的不断完善和发展,集成芯片越来越多,单片机便出来了,换言之,单片机的应用是对传统控制技术的一场革命。具有划时代的意义。在电机控制方面也是靠人的感觉,没有侧速和侧距的概念,以前人机界面一般采用 LED 数码二极管,随着 LCD 液晶显示器的出现,人机界面更加人性化、智能化,它能显示数字、汉字和图象,控制 LCD 液晶显示器也很方便,电路设计也比较简单;加上单片机,组合实现的功能也比较强大,还可方便以
2、后电路的升级与扩展。本文结合 LCD 显示、电机控速、红外侧距、键盘操作等多种技术,实现了基于 51 单片机的电机转速测量控制系统的设计。本文从第二章方案论证与选择开始,就阐述了该系统的基本工作原理、所采用的相关技术等,进而交代了电机转速测量控制的实现方法。最后重点阐述了 LCD 液晶显示和案键部分。该设计经过测试,实现了在 LCD 上的菜单多级滚动显示,达到预期的设计效果。基于该系统在 LCD 上实现菜单控制系统在电路图设计比较方便,主要分为四部分,电源部分、安键部分、LCD 显示部分和控制部分;较复杂的是在控制软件部分,软件控制部分分为三部分,一部分是安键判断部分、菜单控制部分和显示部分。
3、关键词: 单片机 电机 液晶显示器 按键 红外元件目 录一 、引言 4二、方案论证 4(一)基于嵌入式单片机的设计方案 4(二)基于 EDA 为核心的设计方案 5(三)方案选择 5三 结构设计 5(一)CPU 控制模块 6(二)键盘模块 7(三)LCD 液晶显示模块 7(四)电源模块 8(五)红外侧距模块 9(六)PWM 电机控制模块 9四、各硬件模块设计 9(一 )电源设计 9(二)键盘设计 10(三)LCD 液晶显示设计 11(四)CPU 硬件设计 13(五)时钟模块 15(六)红外测速模块 15(七)电机模块 16五、软件设计 17(一 )初始化和主程序模块 17(二)按键模块 19(三
4、)显示部分 21(四)电机程序设计说明 35六、测试报告 35七、 总结 38八、附录 38参考文献 591 引言 直流电机监控系统是机电产品中的重要环节,其控制性能反映了机电设备的控制质量。灵活、方便、准确、实时的监控需要对电机的转速信号进行测量和处理,以达到精确控制转速的目的。2 系统总体设计ARMDSPFPGA 虽精度高、速度快,但设计复杂,价格也一直居高不下。本系统采用一种适用于小容量存储器单片机(如 PIC 系列)系统且功能强大的 RTOSSalvo。无需扩展大量的 RAM 和 ROM,并且实时性好。大大节省了成本。系统选用 PC 机作为上位机,运用 API 函数及 MSCOMM 控
5、件实现计算机通信。PIC16F877A 单片机及外围电路组成一个单片机系统。作为下位机。电路设计包括 PWM 驱动、 CCP 捕捉、AD 模数转换、LCD 液晶显示、RS232 和 SPI 串行通讯以及下位机双机通信模块。系统总体框图如图 1 所示。3 Salvo 系统简介嵌入式实时操作系统 Salvo 具有占用系统资源少和功能强大两大特点。3.1 Salvo 占用的系统资源Salvo 最大的特点是占用系统资源少,特别是占用存储器资源极少。它不但适用于 51 系列单片机,也适用于存储器资源更少的 PIC 系列单片机。Salvo占用 ROM 资源取决于用户调用的系统函数,占用 RAM 取决于用户
6、定义的变量、任务和事件的数量。以 PIC16 系列单片机为例,每个全局变量占 10 B,任务占5 B,事件占 3 B。3.2 Salvo 功能和性能Salvo 是一个基于优先级任务切换、支持事件驱动的多任务嵌入式实时操作系统。Salvo 共支持 16 个任务优先级,且多个任务可共用一个优先级,任务按优先级高低切换,对于多个同一优先级的任务则以时间片循环方式(round-robin)切换。Salvo 支持任务和事件的数量取决于 RAM 的大小(Salvo 默认支持255 个任务、 255 个事件和 255 个消息队列)。Salvo 内核主要提供以下几类函数供用户应用程序引用:任务管理:提供任务建
7、立、任务撤消功能;时间管理:提供任务延时函数功能;信号管理:提供信号量建立、删除、等待、发出等功能;消息管理:提供消息建立、删除、等待、发出等功能。4 系统硬件总述通讯部分主要由两部分组成:单片机与 PC 机以及 PIC 单片机之间的通讯。PC 机与下位单片机间互传数据采用 RS232 串行异步通信方式。而 PIC 单片机之间的通讯则采用 SPI 总线,它是主要用于处理器和外设同步串行通信的 4 线接口。采用同步时钟把串行数据以 8 位码的形式移入和移出微控制器。SPI 总线是一种主从接口,主接口驱动串行时钟。在使用 SPI 时,会同时发送和接收数据,使其成为一种全双工协议,通讯效率高,而且电
8、路连线及软件编程结构简单。硬件电路如图 2、图 3 所示,其单元电路包括 CCP 捕捉电路、PWM驱动电路、RS232SPI 通讯模块、AD 转换算法及 LCD 显示等。4.1 CCP 捕捉电路光电采集模块中,采用光电器件具有高转换精度、良好的静态工作点、完整的模拟前端以及片内校正,特别适用于测量低频小信号。该电路将光信号转换成电压信号,再经过整形滤波就可直接送至单片机。送往单片机的转速信号可通过 CCP 捕捉模块测量出转速。在该模式下,若要采用捕捉功能应将相应的 TRIS 置为 1,将单片机 CCPx 引脚设置为输入。例如,输入频率稳定时,将单片机预分频值设置为 1:16,则这 16 个周期
9、的总误差为 1 个 TCY。其有效分辨率为 TCY16,即在 40 MHz 时有效分辨率为 6.25 ns。只有在输入频率在 16 个采样周期内均稳定的情况下,这一方法才有效。不使用预分频器(1:1)时,每个采样分辨率为 TCY。而且当改变捕捉模式时,产生一个捕捉中断。用户应保持 CCPxIE 位清零以禁止这种中断,还应在运行模式改变后将CCPxIF 位清零。整个捕捉过程快捷、简单。4.2 PWM 驱动模块PIC16F877A 单片机产生的 PWM 信号经过光电耦合器连接到 L298N 的使能控制端。考虑到 TLP521-4 电路具有反相器作用,PWM 信号中的高电平持续时间对应直流电机的断电
10、时间。从单片机其他引脚输出的信号送入 L298N 的方向控制端,控制直流电机的转动方向和制动状态。L298N 驱动负载的电源电压最大为 46 V,单桥的驱动电源接近 2A,最大开关频率不小于 40 kHz。与由分立元件构成的桥式驱动电路相比,该电路结构简单,性能可靠。通过改写程序,可以控制小型直流电机的多种变速。使用光电编码器实现电机速度检测,构成了完整的闭环控制系统。4.3 RS232 串行通讯模块PIC16F877A 串行口仅占用了单片机的 RC6 和 RC7 引脚,用于接收端RXD 和发送端 TXD。因此在上位机计算机与下位机单片机通信时,只需将收发信号(TX 、RX)及地(GND)3
11、根线相连即可。单片机的串行接口电平为 TTL 电平,这与计算机的串行接口电平不一致,因此需要电平转换。系统选用了Maxim 公司的 MAX232 通用串行接收发送驱动器,其外围电路简单,只需外接 4 只 0.1F 的电容即可。4.4 LCD 显示模块模块 SMC1602B 由一块点阵液晶屏和控制器 HD44780 及其辅助电路组成。本系统设计采用 OCMJ 中文模块系统 LCD 液晶作为下位机的显示模块。该模块内含 GB2312 1616 点阵国标一级简体汉字和 ASCII88(半高)及 816(全高)点阵形英文字库,用户输入区位码或 ASCII 码可实现文本显示。 OCMJ 中文液晶显示模块
12、采用 ASKANSWER 握手方式。5 系统软件总述5.1 下位机软件设计智能电机监控系统的下位机软件设计主要完成 CCP 捕捉、AD 采集、PWM 控制、 SPI 通讯、LCD 显示、RS232 通讯等多个功能。总体流程框图如图 4 所示,控制算法是利用 PIC16F877A 直接控制 PID 参数,实现精确控制。5.2 上位机系统设计上位机系统软件是在 Windows 平台上利用 Vi-sual Basic6.0 开发的,设计包括了操作提示部分(自动发送、手动发送、串口选择、奇偶校验、波特率、数据位等) 、接收回显部分( 接收数据位、电机转速、电机正反转等)以及发送内容部分( 电机转速设定
13、、过压、过流保护值等)。6 监控电机工作时上、下位机实时通讯,显示的参数值实时性好,此时电机正处在反转状态(正转 “1”、反转“0”),这一方面可以从上位机界面中的正反转设定标志看出,另一方面下位机回馈的参数中也有电机正反转标志,下位机的液晶面板也同样有转速、电压、电流及正反转显示(正转“Right”、反转“Left”),并且上、下位机的数据显示是同步的。与此同时,可通过上位机对下位机设定的过流过压保护值,一旦电路检测到任一过流或者过压时(超过设定值),下位机控制单元就会发出报警信号(红灯亮、蜂鸣器响、上位机出现错误标志、下位机的液晶上也会出现错误提示等),并且自动停机保护,等待检修。7 结束语该系统成功实现了直流电机闭环转速系统的实时监控,简化了控制逻辑系统,与同类产品相比成本低廉、功能完整、抗干扰性能好。已成功应用于直流电机转速调节、监控、保护场合,并且上位机界面友好,使用方便。PC 机能够对直流电机实行实时监控,不仅大大改善了高速运行时的稳定性,而且还实现了保护功能。