1、本 科 毕 业 设 计基于单片机的自动往返小汽车的设计所在学院 专业班级 电气工程与自动化 学生姓名 学号 指导教师 职称 完成日期 年 月 II摘要本设计以 AT89C51 单片机芯片作为自动往返小汽车的检测和控制核心。小车的行驶轨道为白色纸面加黑色线条构成。我们利用两个放置在小车前端,两个放置在小车后端的红外线光电传感器来检测跑道上黑线的位置,并以此判断小车的位置。根据设计方案小车在不同位置具有不同速度和不偏离轨道的要求对小车的运行行驶速度和方向进行相应的控制。小车小轮上铺有霍尔元件,小车每转一周就将的反映信号传送到 AT89C51 单片机内,由 AT89C51 单片机的内部计时器来计算小
2、车实际行驶的时间和距离,通过 LED 灯直观的显示出来。设计主要部分:1.小车电源部分:采用单一的+9V 电源供电,利用 MC34063 将电源经过 DC/DC 转换,让CPU 和电机电源都具备自己独立的电源,让小车的电源部分同步实现抗干扰和外围设备的简单化。2.纠偏控制部分:通过装在小车前后的四个红外线传感器检测小车是否一直和铺在地面的黑线对齐,如果偏离,传感器会将得到的不同输入信号传送到单片机,再由单片机输出控制信号控制继电器的吸合与放开,实现偏转电机的正反转向,最终达到对小车行驶方向的纠正。3.速度控制部分:同样的先通过红外线传感器传达来的信号,再根据需要的具体速度调速。调速部分我们采用
3、软件控制的 PWM 调速。主要是在计时中断程序里设定一个变量,每次中断执行一次就令变量+1,然后将当前的变量值与原先设定的 PWM 的值进行比较,再由单片机控制给电机加上所需要的不同占空比方波来控制小车的电机转速,最终达到控制小车行驶速度的目的。4.数字显示部分:利用四个共阴极的 8 位 LED 数码管与译码块 CD4511 共同组成静态显示部分。5.中央控制单元:选用 89C51 单片机,不但使系统简单而且很大程度上增加了系统的稳定性和灵活性。关键词:89C51 单片机 ;红外传感器 ;PWM 调速 ;DC/DC 变换AbstractIIIThis design with AT89C51 c
4、hip as automatic round-trip car detection and control core. Car driving rail for white paper and black line make. We use two placed in car front, two placed in the infrared photoelectric sensor after car to detect the runway black line position, and judged whether the car position. According to the
5、design scheme in different locations have different car speed and not off track to drive the car running speed and direction for the corresponding control. Car small wheels are hall element, the car on each week will turn the reflection signals to the AT89C51 by AT89C51, within the internal timer to
6、 calculate the real driving car, time and distance by leds intuitive displayed.Design main parts:1 .Car power part: It has adopted a single + 9V power supply, use MC34063 will power after DC/DC conversion, let the CPU and motor power all have their own independent power, let the car power part of sy
7、nchronization of anti-jamming and peripherals simplified.2 .Rectify control parts: Through the packed in car and four infrared sensor detects whether has been laid in the car with the black line alignment, if the deviation of the sensor will get different input signals to the microcontroller, again
8、by microcontroller output control signal control relay suction match and release, realize the positive and negative to deflect motor car driving on, and finally reach the correct direction.3 .Speed control parts: The same go through infrared sensors convey to signal, again according to the needs of
9、specific speed. Speed control section, we adopt PWM speed of software. Mainly in the timer interruption program to set a variable, each interrupt execution time makes variable + 1, then will the current variable value and set the value of the original PWM, again by comparison with single-chip microc
10、omputer control needed to motor for different wave to control of empty car motor speed, and finally achieve the purpose of controlling trolley speed.4 .Digital display parts: Use four of the eight LED digital cathode tube and decode block CD4511 composed static display section.5 .The central control
11、 unit: Choose 89C51, not only make the system is simple and greatly increase the system stability and flexibility.Keywords: 89C51; Infrared sensors; PWM speed; DC/DC transformIV目 录前言 .1第 1 章 89C51 的简介与管脚选择 .21.1 89C51 的特点 .21.2 89C51 管脚介绍 .21.3 89C51 管脚的选择 .4第 2 章 设计方案简介与选择 .52.1 设计要求简述 .52.2 设计方案选择
12、 .52.3 设计方案的细部简介 .72.3.1 小车电源模块 .72.3.2 路面黑线检测模块 .72.3.3 小车倒车模块 .72.3.4 小车纠偏模块 .72.3.5 数字显示单元模块 .82.3.6 电动机调速模块 .82.3.7 数据存储模块 .8第 3 章 硬件设计 .93.1 小车电源部分 .93.2 纠偏控制部分 .103.3 速度控制部分 .103.4 红外线传感器部分 .113.5 数字显示部分 .133.6 霍尔元件部分 .153.7 晶振电路部分 .163.8 复位电路部分 .16第 4 章 软件设计 .184.1 单片机内部逻辑结构 .184.2 单片机存储器 .19
13、V4.3 单片机时钟信号 .204.4 计数/定时功能 .214.5 编程语言选择 .214.6 数字显示部分测试程序框图与源程序 .224.7 行驶控制部分测试程序框图与源程序 .23小结 .27致谢 .28参考文献 .29附录 1 硬件电路图 .301前 言单片机(单片微型计算机)是微型计算机很重要的一个分支,自从 70 年代问世以来,凭借其极高的性能价格比,倍受人们的重视和关注。单片机体积很小,重量非常轻,抗干扰的能力较强,对环境的适应度强,价格便宜,非常可靠,灵活性强,而且应用范围广,发展迅速,所以单片机现在已被人们广泛地应用在家用电器、机电设备控制、智能仪器、自动检测和数据处理等各个
14、方面。单片机被普遍的认为是在一块集成了中央处理器(CPU) ,存储器(RAM、ROM、EPROM)以及各种输入输出接口(计数器、定时器、串行口、A/D 转换器、脉冲调制器 PWM、并行 I/O口等)的硅板,它完全具备一台计算机的功能,因此被称为单片微型计算机。通常采用的高性能 MCS-51 系列 8 位单片机集成度高、系统简单、扩展方便、处理功能强、容易产品化。相比于 MCS-48 系列,在片内存储器的容量,I/O 口及指令系统功能等方面都很大程度上得到了提高,适用于实时控制、智能仪器、复杂的多机系统等领域,绝对是工业控制领域中最理想的 8 位单片机。在国内单片机的开发应用在近几年也得到了很大
15、的发展,取得了很多科研成果,并已转化为一定的生产力,获得了显著的经济效益和社会效益。自动小车是一个运用计算机、传感等技术来实现环境感知、规划决策和自动行驶为一体的高新技术综合体。它在军事、民用和科学研究等方面已获得了应用,对解决道路交通安全提供了一种新的途径。随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,许多国家已经把电子设计比赛作为创新教育的战略性手段。电子设计涉及到多个学科,机械电子、传感器技术、自动控制技术、人工智能控制、计算机与通信技术等等,是众多领域的高科技。电子设计技术,它是一
16、个国家高科技实例的一个重要标准,可见其研究意义很大。2第 1 章 89C51 的简介与管脚选择1.1 89C51 的特点89C51是一种低电压、高性能CMOS8位微处理器,俗称单片机。它带有4K字节闪烁可编程可擦除的只读存储器。本系列单片机的可擦除只读存储器可以反复的擦除次数可以达到100次。该微处理器是由ATMEL制造与工业标准的MCS-51指令集还有输出管脚都相兼容。由ATMEL的89C51是一种高效微控制器,它将多功能8位CPU和闪烁存储器组合在单个芯片中。该系列单片机含有32条I/O口线,2个16位的定时器和计数器,6个中断输入端口,5个中断源和4个优先级嵌套中断结构,1个串行I/O口
17、及片内振荡器和时钟电路。89C51只支持并行写入,同时需要VPP要写入高压;89C5*系列的电源范围在低于4.8V和高于5.3V的时候则无法正常工作;而89C51工作频率范围最高支持到24M;需要外接看门狗计时器单元电路。该系列的XTAL1、XTAL2分别为反向放大器的输入及输出。此反向放大器可以配置为片内振荡器。如采用外部时钟源驱动器件的话,XTAL2应不接。89C51因为设有稳态逻辑,所以在低到零频率的条件下静态逻辑,可支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但是RAM、定时器、 计数器、串口和中断系统仍然在工作。在掉电模式下,保存RAM的内容并冻结振荡器,禁止所用其它芯
18、片功能,直到下一个硬件复位为止。1.2 89C51 管脚介绍其引脚图如图1.1所示:图 1.1 89C51 管脚图3表 1.1 89c51 管脚功能表名称 管脚号 类型 功能Vss 20 I 接地Vcc 40 I 电源:提供掉电空闲正常工作电压P0.0-0.739-32 I/O P0: P0 口是开漏双向口,可以写为 1 使其状态为悬浮用作高阻输入 P0 也可以在访问外部程序存储器时作地址的低字节在访问外部数据存储器时作数据总线此时通过内部强上拉输出 1P1.0-1.71-8 I/O P1 口P1 口是带内部上拉的双向I/O 口,向P1 口写入1时P1 口会被内部上拉成高电平则可用作输入口;作
19、为输入管脚时被外部拉低的P1 口会因内部上拉的存在而输出电流P1 口第2 功能T2【P1.0】 :定时/计数器2 的外部计数输入/时钟输出(见可编程输出)T2EX【P1.1】 :定时/计数器 2 重装载/捕捉/方向控制P2.0-2.721-28 I/O P2 口: P2 口是带内部上拉的双向 I/O 口向 P2 口写入 1 时 P2 口被内部上拉为高电平可用作输入口当作为输入脚时被外部拉低的 P2 口会因为内部上拉而输出电流,在访问外部 ROM 和外部数据时则分别当作地址高位字节与 16 位地址【MOVX DPTR】这时因为通过内部强上拉传送 1 当使用 8 位寻址方式【MOVRI】访问外部
20、RAM 时,P2 口发送的则是 P2 特殊功能寄存器的内容。P3.0-3.710-17 I/O P3 口:P3 口是带有内部上拉的双向I/O 口,往P3 口输入1时P3因为内部上拉而变为高电平,就可以作为输入口。作为输入脚时,受到外部拉低的P3 口就因为内部上拉而输出电流。P3 口还具有以下特殊功能。RXD【p3.0】 串行输入口;TXD【P3.1】 串行输出口;INT0【P3.2】 外部中断0申请;INT1【P3.3】外部中断1申请;T0【P3.4】 定时器/计数器0 计数输入;T1【P3.5】 定时器/计数器1 计数输入;WR【P3.6】 外部RAM写选通;RD【P3.7】 外部 RAM
21、读选通;4RST 9 I 复位:当晶振正在运行中的时候,只要复位管脚出现了 2 个机器周期的高电平就可以复位,Vss 连接到内部含有扩散电阻, 只要外部接上一个电容到 Vcc 就可以实现上电复位。ALE 30 O 地址锁存使能:在访问外部存储器的时候,这个管脚输出的是脉冲锁存地址的低字节。正常状况下,ALE 的输出信号恒定为 1/6 的振荡频率。并可作外部时钟或者定时。ALE 可通过置位 SFR 的auxlilary.0 禁止,置位后的 ALE 只能在执行 MOVX 指令的时候被激活。PSEN 29 O 外部 ROM 选通信号。 由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但是
22、在访问外部 RAM 时,这两次有效的/PSEN 信号将不会出现。EA/Vpp 31 I 当 EA 保持低电平的时候,则可以执行外部 ROM【0000H-FFFFH】,无论是否有内部程序存储器;当 EA 端为高电平时,则只执行内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源【VPP】。 XTAL1 19 I 反相振荡放大器的输入及内部时钟发生电路的输入XTAL2 18 O 来自反相振荡放大器的输出1.3 89C51 管脚的选择本次设计所需要的管脚有:P1.0-P1.3 管脚作为四个红外线传感器的输入管脚。P3.0(RXD)和 P3.1(TXD)管脚用来实现小车电机的偏
23、转控制。P3.6 和 P3.7 管脚用来实现小车电机的速度及正反转控制。P0.0-P0.7 共八个管脚实现 LDE 数码管的数字显示和位选择。P3.4 作为霍尔元件的信号输入端。VCC(单片机的电源引脚)和 VSS(接地地脚) 。XTAL1 与 XTAL2 晶振引脚与 RST 复位引脚。5第 2 章 设计方案简介与选择2.1 设计要求简述图 2.1 小车往返图此次设计的小车往返如图 2.1 所示,跑道的宽度为 0.5m, 跑道的表面上铺有白纸,在B、C、D、E、F、G 处均有 2cm 宽的黑线。小车往返于起跑线与终点线之间,车子从起跑线 B开始出发,然后经过 CD 段路程进入限速区 DE,跑出
24、限速区后回复到原来的速度继续行驶完EF 段,最后在终点线 G 处停车 10s。接着小车会倒退重复往返在起点和终点。小车在终点线停车和返回起始点时车子的位置需要与黑线尽量对齐。另外要求车子能够自动的将行驶的时间以及行驶的里程显示在小车上。2.2 设计方案选择方案一:可以采用以 PLC 为中心的控制电路,将其输入/输出端口与外部设备相连,通过编辑程序直接控制小汽车。PLC 是一种建立在单片机之上的产品,虽然此方案也能实现小车的往返,但是但价格高、工作速度慢、器件所占的空间较大、小车负载较重、控制部分显得不够直观,不利于系统灵活性和智能性的提高。方案二:选用传统的数字电路图如图 2.2 所示,其主要的特点在于用一套双计数器完成系统控制功能,通过传感器的整形输出触发脉冲并送入计数器,输出通过译码后驱动数码管分别显示时间和位移。由传感器整形输出触发脉冲送入计数器的记数值进行比较,相应的控制 PWM 发生器,产生占空比可变的电压信号来驱动电机实现调速。还可以根据计数器来决定方向控制器,发出方向控制信号,控制小汽车的往返。此方案使用的芯片较多,从而造成控制电路接口电路繁琐,而且抗干扰能力差。