1、电子设计竞赛选拔设计设计题目:自动往返电动小汽车设计人: _王 x_班级:测控技术与仪器 xxx班学号:_xxxxxxxx_2012年 7月 7日2一系统主要硬件电路设计1总体硬件设计系统总体设计框图如图 1所示图 1 系统原理框图对于单片机中央处理系统的方案设计,根据要求,我们可以选用具有 4KB片内 E2PROM的 AT89C51单片机作为中央处理器。作为整个控制系统的核心,AT89C51内部已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高。是比较合适的方案。2
2、电机驱动电路及速度控制模块设计方案一:通过模拟电路或数字电路实现,例如用 555 搭成的触发电路。此方案电路的占空比不能自动调节,不能用于自动控制小车的调速。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时里程显示单片机系统 电机模块时间显示黑线检测模块3间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用集成电路驱动芯片 L298,L298 内含两个 H 桥的高电压大电流双全桥式驱动器,可驱动 46v,2A 以下电机,1 和 15 脚可单独引出接电流采样电阻器, 形成电流传感信号,同时通过单片机控制产生 P
3、WM波,精确控制电机转速。这种电路驱动能力强,可以简单地实现转速和方向的控制,稳定性高。综上所述,方案三是相对较好的一个方案。下面将详细介绍。直流电机驱动电路使用最广泛的就是 H 型全桥式电路,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。 它的基本原理图如图 2 所示。 全桥式驱动电路的 4 只开关管都工作在斩波状态,S1、S2 为一组,S3、S4 为另一组,两组的状态互补,一组导通则 另一组必须关断。当 S1、S2导通时,S3、S4 关断,电机两端加正向电压,可以实现电机的正转或反转制动;当 S3、S4 导 通时,S1、S2 关断,电机两端为反向电
4、压,电机反转或正转制动。1 2 3 4 5 6ABCD654321DCBATitleNumber RevisionSizeBDate: 23-Aug-2005 Sheet of File: C:PROGRAM FILESDESIGN EXPLORER 99 SEEXAMPLESMyDesign.ddbDrawn By:D3 D4D1 D2AS1S3S4S2VCC图 2 H 型桥式电路在小车动作的过程中,我们要不断地使电机在四个象限之间切换,即在正转和反转之间切换,也就是在 S1、S2 导 通且 S3、S4 关断,到 S1、S2 关断且S3、 S4 导通,这两种状态之间转换。4集成有桥式电路的电
5、机专用驱动芯片 L298 正是基于这个原理制成,但其性能更加稳定可靠。由于电机在正常工作时对电源的干扰很大,如果只用一组电源时会影响单片机的正常工作,所以我们选用双电源供电。一组 5V 给单片机和控制电路供电, 另外一组 9V 给电机供电。驱动芯片 L298 是驱动二相和四相步进电机的专用芯片,我们利用它内部的桥式电路来驱动直流电机,这种方法有一系列的优点。L298 型双 H桥式驱动器是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉
6、冲频率,就可以对步进电机进行调速。步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。每一组 PWM 波用来控制一个电机的速度,而另外两个 I/O 口可以控制电机的正反转,控制比较简单,电路也很简单,一个芯片内包含有 8 个功率管,这样简化了电路的复杂性。L298 电机驱动电路如图 2所示。1 2 3 4 5 6ABCD654321DCBATitleNumber RevisionSizeBDate: 24-Apr-2006 Sheet of File: D:doc.ddb Drawn By:D03 Q0
7、2D14 Q1 5D27 Q2 6D38 Q3 9D413 Q4 12D514 Q5 15D617 Q6 16D718 Q7 19OE1LE11U274LS373321411U8ALM324123U5A74LS08456U5B74LS088910U5C74LS08111213U5D74LS08EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P10/T1P11/T2P123P134P145P156P167P178P00 39P01 38P02 37P03 36P04 35P05 34P06 33P07 32P20 21P21 22P22 23P2
8、3 24P24 25P25 26P26 27P27 28PSEN 29ALE/P 30TXD 11RXD 10U18052D08 OUT0 10D17 GATE0 11D26 CLK0 9D35D44D53D62 OUT1 13D71 GATE1 14CLK1 15CS21RD22WR23OUT2 17A019 GATE2 16A120 CLK2 18U382531 2U7A74LS04Q1NPN-PHOTOR1RES2R2RES2R32KR43KR61KR51KR8RES2R71KVCCGNDGNDD1LEDVDDVCC1GNDVCCGNDP10P11P12P15P13P14P14L298N
9、8ENA6ENB11SENSEA1SENSEB15IN15IN27IN310IN412- VSS9+VS 4OUT1 2OUT2 3OUT3 13OUT4 14U4P15M2AD0M1AD1PWM2AD2AD3AD4AD5AD6AD7P20P13P12P11P10GNDVCCQ2NPNGNDVCCAD0U6OPTOISO2AD1AD2GNDAD3AD4AD5AD6PWM1AD7WR 16RD 17PWM2PWM1GNDAD0AD1VCCAD2AD3AD4AD5AD6AD7P20RDWR图 电机驱动电路53黑线检测电路设计方案一:由可见光发光二极管(如红色、绿色或黄色等)发射可见光,光敏光敏三极
10、管作为接收器件。发光二极管反射可见光经地面反射到光敏三极管,光敏三极管因反射的光强不同而呈现不同的电阻值,这样,在经过黑线时即可检测出。此方案电路简单,容易实施。并能完成设计要求。方案二:脉冲调制式发射接收装置。采用脉冲发射与接收装置可以提高瞬时输出光强,提高抗干扰能力,还能节损能量。此方案最大的一个缺点是不易控制脉冲发射时间间隔,而黑线只有 2cm宽,容易跳过黑线而传感器检测不出来。这样就容易出错。经以上分析,所以采用方案一反射式光电开关来识别轨迹上的黑线标记信号,如图3 所示。这种光电开关的红外发射管和接收管位于同一侧,光敏三极管只能接收反射回的红外光。当车身下面是黑线时,由于黑线吸收部分
11、光,光敏三极管接收到的红外光不能使光敏三极管导通,,光电开关输出高电平,经CD4069 的非门输出低电平。反之,当车身下面是白色的地面时,红外发射管发射的光经其反射后,被接收管接受,光电开关输出低电平。经CD4069 整形后输出高电平。将CD4069 的输出接至CPU 的INT1 输入端 。车在前进和后退过程中,小车每过一道黑线,便产生一次中断申请。从而调用相应的子程序,随着小车的不断行驶,相应的程序依次被调用执行,使小车在跑道上按设计要求时快、时慢、时前进、时后退。6图 3 反射式光电检测电路4行驶路程测量最为简单最为直接的测量行驶路程的方法就是通过测车轮所转的圈数和小车轮子的周长,公式为:
12、路程 = 周长 * 圈数对于小车车轮所转圈数的测试,本系统采用 U型光电开关和码盘。码盘固定于小车后轮上,将 U型光电开关架于码盘之上,当码盘随着车轮转动时,光电开关就会不断地发生导通和截止。若光电开关导通则产生高电平,反之则产生低电平。这样在光电开关的输出端就会得到脉冲,然后用单片机定时器进行定时,每当定时器溢出时,就检测一下脉冲的个数,最后通过转换得到小车的里程,然后输出给显示装置。码盘形状如图 4所示。图 4 码盘5时间测量模块使用 AT89C51 单片机的两个外部中断(INT0,INT1)输入实现计时,当第一个中断来时单片机开始计时,第二个中断来时结束计时。通过程序控制计时的开始与结束
13、。6显示模块方案一:采用数码管显示。编程驱动简单,但由于数码管只有 8 段(实际只有 7 段有效) ,显示内容有限,而且,耗能很大。方案二:液晶显示。可以灵活显示各种数字文字,故采用液晶显示器。液晶可以显示行驶速度路程及其单位。耗能小,这对采用电池供电的本设计是一大优势。7稳压电路7本系统采用+7.5V 电池供电,由于芯片正常工作的电压为+5V,所以采用稳压电路得到所需电压值。稳压电路如图 5所示。图 5 稳压电路二系统主要软件设计1程序设计流程图本系统的运行程序采用汇编语言编写,采用模块化设计,整体程序由主程序和子程序构成。程序流程图如图所示。下面是对 AT89C51单片机的控制语言。开始初
14、始化置前进状态8图 6 主程序流程图主程序:LJMP STARTORG 0003HLJMP INTEX0ORG 000BHLJMP TIME0ORG 0013HLJMP INTEX1ORG 001BHLJMP TIME1初始化程序:CLEAR:MOV R0, 70HMOV R7, #07ML0: MOV R0,#00HINC R0DJNZ R7, ML0MOV TMOD, #11HMOV R4, #20MOV TL0,#0B0HMOV TH0,#3CHMOV TL1,#0B0HMOV TH1,#3CHMOV 23H, #00HCLR 30HCLR 21H.0SETB ET0打开电机电源调用显示
15、子程序9SETB ET1SETB EX0SETB EX1SETB IT1SETB PX0SETB EARETSTART: LCALL CLEAR ;上电初始化SETB P1.0CLR P1.1SETB P1.2MAIN: LCALL DISPLJMP MAIN NOPNOP LJMP START子程序:外中断 0 服务程序::INTEX0: PUSH ACCPUSH PSWCLR EX0LCALL DISPMOV A, #0F0HORL A, P1DJNZ #0FFH,IN0RETINC 23HMOV A, 23HCJNE A, 06H, JDGE1LCALL STOPLJMP INT0RET
16、JUDGE1: CJNE A, #03H, JUDGE2LCALL STOPSLOWLJMP IN0RETJUDCE2: CJNE A, #04H, JUDGE3LCALL FASTLJMP IN0RETJUDGE3: 10CJNE A, #05H, IN0RET LCALL STOPSLOWIN0RET: CLR IE0POP PSWPOP ACCLCALL DL7MSSETB EX0RETI停车控制程序:STOP: MOV 23H, #00HCLR P1.0CLR P1.1LCALL DS10SCPL 30HJB 30H, STRENSETB P1.1CLR P1.0LCALL CLR00STREN: RETCLR00: MOV 70H,#00HMOV 71H,#00HMOV 72H,#00HMOV 73H,#00HRET定时器 0 服务程序TIME0: CPL P1.2JB 21H.1,AB2JB 21H.0, AB1MOV TL0,#0D9HMOV TH0,#10HCPL 21H.0RETIAB1: MOV TL0,#0B0HMOV TH0,#3CCPL 21H.0RETIAB2: JB 21H.2, AD1