图3 51最小系统电路
2.1.1系统时钟电路
单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激
振荡器,系统时钟电路结构如图6所示,可以根据情况选择6MHz、8MHz或12MHz等频率的石英晶体,本系统采用12MHz的晶振。补偿电容通常选择20-30pF左右的瓷片电容。 2.1.2复位电路
单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。
手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。复位电路结构如图6所示。上电自动复位通过电容充电来实现。手动按键复位是通过按键将电阻与VCC接通来实现。
2.2电机驱动模块
直流电机驱动采用常用的H桥电路,通过控制信号选通对管与否实现电机的正反转,并改变所加电压的占空比来改变电机转速。
如图4所示,这里采用电机驱动专用芯片L298N,该芯片可驱动两路5‐36V的直流电机或者一路四拍的步进电机。同时在L298N
与主控芯片间通过四路光耦TLP521‐4隔离消除干扰信号。在STC12C5A60S2上配置好串口、PWM,实现串口接收的数据直接赋值给
PWM定时器CCAP1L、CCAP1H。利用串口调试助手发送控制信息给STC12C5A60S2,同时辅助外界6V电源更改L298N的IN1和IN2共
同完成L298N电机驱动模块的调试。
图4 LM298N电机驱动电路
2.3直流电机测速电路
2.3.1槽型光耦GK105测速电路
图 5 槽型光耦GK105电路
图 6 电机转速编码装置
如图5和图6所示,光电对管采用槽型光耦GK105电路由一只特殊的发光二极管和光电三极管构成,当二极管发出的光打在光电三极管的基极B上时三极管CE导通。而正常情况下二极管的光不能到达光电管的基极上,故通过装在电机转
轴上得圆形编码片即可实现对小车的测速。假设编码片儿有n片个缺口,测得光电三极管的输出脉冲频率为f,则车速=f/n。
由图7可知,电机每转一圈, 槽型光耦产生4个脉冲,因此可以利用槽型光耦传感器信号得到电机的实际转速。为尽可能缩短一次速度采样的时间,则电机的实际转速为: V=(N/4)*60; V:速度 R/min N:每秒采样的脉冲个数
图7 电机转1圈GK105光耦管信号 2.3.2速度脉冲信号调理电路
给电机加电让其带动编码盘旋转,将光电对管靠近编码盘,用示波器观测输出脉冲信号的有无与好坏。信号调理电路主要利用LM324运算放大器设计的比较器,如图8所示,调节比较器偏置电压使脉冲最接近于方波且幅度大于3.3V。为
了提高测速的精度,在信号后级添加比较器调理信号为标准的方波,调节比较器运放的偏置电压使方波信号最适合于测速。
图 8 基于LM324的信号调理电路
2.4串口电路设计
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5V单电源供电。其内部结构基本可分三个部分:第一部分是电荷泵电路,由1、2、3、4、5、6脚和4只电容构成。功能是产生+12V和-12V两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道,由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚
(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、
7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;
DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三部分是供电,15脚GND、16脚VCC(+5V)。电路如图9所示。
162738495DB9RS-232U2147+5V138C1916+T1_OUTT2_OUTR1_INR2_INT1_INT2_INR1_OUTR2_OUT1110129TXDRXDGND10uf/50V26C20+VCCV+V-GNDMAX232C1+C1-C2+C2-1345+C2110uf/50V15+C2210uf/50V10uf/50V
图 9 串口电路图
2.5系统电源设计
本系统要求有5V和6—7V的电源输入,因此我们选用了LM317作为电源芯片。LM317作为输出电压可变的集成三端稳压块,是一种使用方便、应用广泛的集成稳压块。其应用电路如图10所示。图11为电源滤波电路。
图10 3.3V稳压电路
图11 滤波电路
稳压电源的输出电压可用下式计算,Vo=1.25(1+R2/R1)。本系统中取R1为240n,R2取5K的可调电位器。通过调节R2的阻值大小,进而可以改变输出电压的大小,实现电压可调,其可调范围是Vo=1.25V—37V。在应用中,为了电路的稳定工作,在一般情况下,还需要接二极管作为保护电路,防止电路中的电容放电时的高压把317烧坏。
2.6电机设定速度输入电路
本系统采用了简单的电位器,通过电位器将5V电源信号分压在经过单片机A/D端口输入到CPU处理,实现电机速度手动的可调,其电路如图12所示。
图12 电位器速度设置电路
三、 系统软件设计
本程序主要分为6大块,主程序、A/D转换处理程序、PWM输出程序、串口显示与电机状态控制程序、定时器0的中断服务程序,串口中断服务程序。主程序主要做了系统初始化,定时器0的初始化和主循环等。配置STC12C5A60S2定时器0为定时器方式2、50ms计数器中断,累计20次定时器0中断为1秒,此时TL1即光电对管输入的脉冲频率,同时在此一秒内触发AD采集一次电源电压Voltage送入内存并通过运算转换成设定的速度值。PC终端的显示也是没隔一秒刷新一次。
配置STC12C5A60S2串行口1为方式2、独立波特率发生器9600、允许接收中断。当串口1接收到PC机数据转入中断处理程序,检测接收到的数据以此来区分数据是属于哪种控制信号。
配置STC12C5A60S2脉宽调制PWM为8位、无中断。主程序中循环执行Pwm()函数实时更改PWM定时器CCAP1L、
CCAP1H的值,实现对电机转速的控制。 1.主程序
主程序主要功能为系统初始化,定时器0的初始化和主循环等。流程图如图13所示