基于单片机控制的简易自动寻迹小车系统 下载本文

电子系统设计

图12 黑色轨迹设别电路

3.3LM324电压比较电路

电压比较器式在运放的基础上去掉反馈电阻使放大倍数趋于无穷大.此时形成了一个电压比较器.当同相端电压大于反相端电压时比较器输出高电平,当反相端电压高于同相端电压时输出端输出度电平.如图13电压比较电路,用了LM324内部3个单独的运放外接一个可调电阻输入基准电压.基准电压加在反相输入端上,上一级电路反馈过来的电压从电压比较器的同相端输入.当TCRT5000反馈的电压高于基准电压时,比较器输出高电平.当TCRT5000反馈的电压低于基准电压时,比较器输出低电平.这样就使探头把地面的反射光线的程度只分成了两种情况,易于单片机识别.考虑到地面的粗超程度不一样我们可以用可调电位器去调节基准电压,经过轨道实际测量后确定基准电压的值.

图13电压比较电路

3.4 STC89C52单片机控制电路

单片机控制电路由但单片机最小系统组成,主要作用是接受探头传来的电压信号,再通过程序设定的逻辑算法给出下一级马达驱动电路的指令.单片机最小系统包括主控IC,

12

电子系统设计

外部时钟电路,复位电路和电源组成.本设计采用如图14所示的单片机最先系统.在此就图14为参照解释一下51单片机最小系统各子电路的特点.

图14单片机主控电路

3.4.1 时钟电路

XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动.图14 中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡.一般来说晶振可以在1.2 ~ 12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大.在本实验套件中采用的11.0592M 的石英晶振.和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用.当采用石英晶振时,电容可以在20 ~ 40pF 之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30 ~ 50pF 之间.通常选取33pF 的陶瓷电容就可以了.另外值得一提的是如果在设计单片机系统的印刷电路板(PCB) 时,晶体和电容应尽可能与单片机芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作.检测晶振是否起振的方法可以用示波器可以观察到XTAL2 输出的十分漂亮的正弦波,也可以使用万用表测量( 把挡位打到直流挡,这个时候测得的是有效值)XTAL2 和地之间的电压时,可以看到2V 左右一点的电压. 3.4.2 复位电路

在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位.MCS-5l 系列单片机的复位引脚RST( 第9 管脚) 出现2个

13

电子系统设计

机器周期以上的高电平时,单片机就执行复位操作.如果RST 持续为高电平,单片机就处于循环复位状态.复位操作通常有两种基本形式:上电自动复位和开关复位.图14 中所示的复位电路就包括了这两种复位方式.上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位.随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作.并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果.一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位.图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠. 3.4.3 EA/VPP(31 脚)的功能和接法

51 单片机的EA/VPP(31 脚) 是内部和外部程序存储器的选择管脚.当EA 保持高电

平时,单片机访问内部程序存储器;当EA 保持低电平时,则不管是否有内部程序存储器,只访问外部存储器.对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器.在本实验套件中,EA 管脚接到了VCC 上,只使用内部的程序存储器. 3.4.4 P0 口外接上拉电阻

51 单片机的P0 端口为开漏输出,内部无上拉电阻(见图15).所以在当做普通I/O

输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻.

图15 P0端口的1位结构

14

电子系统设计

另外,避免输入时读取数据出错,也需外接上拉电阻.在这里简要的说下其原因:在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外.例如,当从内部总线输出低电平后,锁存器Q = 0, Q = 1,场效应管V1 开通,端口线呈低电平状态.此时无论端口线上外接的信号是低电平还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号.又如,当从内部总线输出高电平后,锁存器Q = 1, Q = 0,场效应管V1 截止.如外接引脚信号为低电平, 从引脚上读入的信号就与从锁存器读入的信号不同.所以当P0 口作为通用I/O 接口输入使用时,在输入数据前,应先向P0 口写“1”,此时锁存器的Q 端为“0”,使输出级的两个场效应管V1、V2 均截止,引脚处于悬浮状态,才可作高阻输入.总结来说:为了能使P0 口在输出时能驱动NMOS 电路和避免输入时读取数据出错,需外接上拉电阻.在设计中采用的是外加一个10K 排阻.此外,51 单片机在对端口P0—P3 的输入操作上,为避免读错,应先向电路中的锁存器写入“1”,使场效应管截止,以避免锁存器为“0”状态时对引脚读入的干扰.

3.5 L298N马达驱动电路

电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机.通过单片机给予L298N电路PWM信号来控制小车的速度,起停.为了设计方便我采用了市面上已有的L298N电机驱动模块,其特点便宜稳定性高.为了是设计达到更加好的效果我选用了L298N马达驱动模块.其原理图如图16所示.实物图如图17所示.

15