自动往返小汽车.docx
《自动往返小汽车.docx》由会员分享,可在线阅读,更多相关《自动往返小汽车.docx(37页珍藏版)》请在冰豆网上搜索。
![自动往返小汽车.docx](https://file1.bdocx.com/fileroot1/2023-4/28/ad058683-523a-4098-a54e-da953f0cec40/ad058683-523a-4098-a54e-da953f0cec401.gif)
自动往返小汽车
东华理工学院长江学院
毕业设计(论文)
题目自动往返小汽车
英文题目Automaticround-tripcar
学生姓名刘冉杰
班级02312104
指导教师肖静
专业自动化
二零零六年六月
摘要
本设计的控制系统采用AT89C52单片机,实现小车在跑道上的自动往返过程。
用P1.7和P1.6分别控制电机的驱动电压;利用P3.6、P3.7的电位高低来控制电路,从而实现小汽车驱动电机的正反转功能;利采用外部中断0和外部中断1来实现小车的里程和跑道标志检测;显示部分采用数码管的动态显示。
关键词
自动往返小汽车;AT89C52;软件设计;模块式设计
Abstract
ThecontrolsystemofwiththisdesignadoptstheAT89C52asinglemicroprocessorchip,Carryoutasmallcarontherunwayofgobackandforthprocessautomatically.UseP1.7withP1.6controlelectricalengineeringtodriveelectricvoltagerespectively;MakeuseofP3.6P3.7electricpotentialsarehighandlowtocontrolelectriccircuit,Carryoutasmallcartodriveelectricalengineeringthusofpositiveandnegativeturnfunction;Thebenefitadoptionexteriorbreaksoff0breakoffwithexterior1tocarryoutmileageandrunwayofsmallcartosymbolizeanexamination;Showpartsofdoptionfiguresthedynamicstateofthetubeamanifestation.
Keywords
Automaticround-tripcar;AT89C52;Softwaredesign;Themoldpiecetypedesigns
目录
摘要I
关键词I
AbstractI
KeywordsII
绪论1
1.设计任务与要求3
1.1设计要求3
1.2基本要求3
1.3发挥部分3
2.系统方案的选择与论证4
2.1系统基本方案4
2.2系统方案确定6
3.系统的硬件设计7
3.1系统的原理框图7
3.2各模块的简要介绍7
3.2.1电机调速与驱动模块7
3.2.2里程与跑道标志检测模块7
3.2.3显示模块8
3.3AT89C52芯片介绍8
3.3.1特征8
3.3.2主要接口功能介绍9
3.4霍尔元件10
3.4.1工作原理10
3.4.2霍尔元件的特点10
3.5施密特触发器11
3.5.1工作原理11
3.5.2逻辑符号11
3.5.3工作波形11
4.系统的软件设计13
4.1程序设计要点13
4.1.1程序设计的特点:
13
4.1.2设计程序的基本步骤:
13
4.2各模块地址分配13
4.2.1电机驱动模块:
13
4.2.2电机调速模块:
13
4.2.3检测模块:
14
4.2.4显示模块14
4.3系统内存资源分配14
4.4系统软件的设计14
4.4.1初始化程序15
4.4.2主程序15
4.4.3跑道标志处理程序(外中断0服务程序)15
4.4.4慢车子程序16
4.4.5停止子程序16
4.4.6里程计数处理程序(外中断1服务程序)16
4.4.7计时程序(T1定时中断服务程序)16
4.4.8延时程序16
总结20
致谢21
参考文献22
附录Ⅰ:
程序清单23
附录Ⅱ:
硬件原理图33
绪论
当今,计算机技术带来了科研和生产的许多重大飞跃,其中单片机虽然问世不久,然而体积小,价格廉,功能强.近年来性能不断提高,适用范围越来越广,在计算机应用领域已占有日益重要的地位。
1.单片机的发展历史:
单片微型计算机简称单片机,又称微控制器。
它是在一块半导体芯片上,集成了CPU,ROM.RAM,I/O接口,定时器/计数器,中断系统等功能部件,构成了一台完整的数字电子计算机。
由于集成电路技术的进步,片内甚至还可以包括含A/D转换器,PWM等称为“片内外设”的特殊功能部件。
随着单片机功能的增强,由单片机构成的计算机应用系统的功能日益增强,配合大功率晶体管的应用,有了波形发生器,拓展了在电气传动领域的应用等。
这进一步深化了单片机在工业控制,自动检测,智能仪器仪表,家用电器等领域的突出地位。
单片机的历史非常短暂,然而发展十分迅猛。
自1971美国Intel公司首先研制出4位单片机4004以来,它的发展可粗略划分为四个阶段:
第一阶段1971~1976年,属于萌芽阶段.发展了各种4位单片机,多用于家用电器,计数器,高级玩具。
第二阶段1976~1980年,高8位机阶段,发展了各种中,低档8位单片机,典型的如MCS-48系列单片机,片内含有多个8位并行I/O接口,一个8位定时器/计数器,不带串行I/O接口,其功能可满足一般工业控制和智能化仪器仪表等的需要。
第三阶段1980~1983年,高8位机阶段,发展了高性能的8位单片机,例如MCS-51系列单片机,它带有串行I/O接口和多个16位定时器/计数器,具有多级中断功能.这一阶段进一步拓宽了单片机的应用范围,使之能用于智能终端,局部网络的接口,并挤入了个人计算机领域。
第四阶段1983年以后,16位单片机阶段。
发展了MCS-96系列等16位单片机。
功能很强,价格却迅速下降.片内有A/D转换器;可以快速输入,输出;可用于电机控制;网络通信能力有显著提高。
在国际市场上,单片机的类型很多。
其中Intel公司的产品比较领先和占有较大销售份额.在我国,Intel公司MCS-48系列,MCS-51系列,MCS-96系列的各种机型用的最多,占主流地位。
随着大规模集成电路技术的演进,单片机的性能仍在快速提高。
其生产工艺经历PMOS,NMOS,HMOS.CMOS等各个阶段,正朝着CHMOS(高速型CMOS)工艺的发展方向发展并继续提高集成度;增大RAM,ROM;增多功能模块;提高速度;降低功耗。
2.单片机的应用:
由于上述单片机特点,可推知其应用最多的领域为
(1)因它具有“小,轻,廉,省”的特点,尤其耗电少,又可使供电电源的体积小,重量轻,所以特别适用于“电脑型产品”,在家用电器,玩具,游戏机,声像设备,电子称,收银机,办公设备,厨房设备等许多产品上得到应用。
(2)适用于仪器,仪表,不仅能完成测量,还具有处理(运算,误差修正,线性化),监控等功能,易于实现数字化和智能化。
(3)有利于“机电一体化”技术的发展,多用于数控机械,缝纫机械,医疗设备,汽车等。
(4)广泛应用于打印机,绘图仪等许多计算机外围设备,特别是用于智能终端,可大大减轻主机负担。
(5)用于各种工业控制,如温度控制,液面控制,生产线顺序控制等。
(6)宜于多机应用。
例如机床加工中心,其各种功能可分散由各个单片机子系统分别完成,上级主机则负责统管协调.又如要求较高的数据检测采集系统,每一采集通道如是一个单片机子系统,可实现多点同时快速采集和预处理,然后再由主机进行集中处理和控制,以构成大型的实时测控系统。
本设计将着重介绍单片机在自动往返小汽车上的应用,实现小车在里程检测、路面检测、数码显示等功能。
由于本人偏软件设计,因此将详细介绍软件部分,硬件部分作简单介绍。
1.设计任务与要求
1.1设计要求
设计并制作一个能自动往返于起跑线与终点线间的小汽车。
跑道宽度0.5m,表面贴有白纸,两侧有挡板,挡板与地面垂直,其高度不低于20cm。
在跑道的B、C、D、E、F、G各点处画有2cm宽的黑线,各段的长度如图1-1所示。
图1-1跑道顶视图
1.2基本要求
(a)车辆从起跑线出发(出发前,车体不得超出起跑线),到达终点线后停留10秒,然后自动返回起跑线(允许倒车返回)。
往返一次的时间应力求最短(从合上汽车电源开关开始计时)。
(b)到达终点线和返回起跑线时,停车位置离起跑线和终点线偏差应最小(以车辆中心点与终点线或起跑线中心线之间距离作为偏差的测量值)。
(c)D~E间为限速区,车辆往返均要求以低速通过,通过时间不得少于8秒,但不允许在限速区内停车。
1.3发挥部分
(1)自动记录、显示时间。
(2)自动记录、显示行驶距离。
(3)其它特色与创新。
2.系统方案的选择与论证
2.1系统基本方案
方案一:
选用单片机AT89C51作为核心器件实现小车行驶的自动控制。
控制过程是利用反射式光电检测器采集的数据,通过软件完成对小车在不同路段的行驶速度实时控制,用数码管实现对指定行程和所用时间显示,同时利用红外数据传输方式将在限速区、终点区和返回到起点区后的时间和距离数据向手持显示装置单相传送。
键盘设置在小车中,对速度的控制调整更加方便、精确。
方框图如2-1所示。
图2-1方案一方框图
方案二:
AT89C52作为系统的控制中心。
电机电路采用两对互补三极管控制电机的驱动;检测电路采用光敏管来控制小车的快行,慢行,停止;用数码管实现对指定行程和所用时间的显示。
方框图如2-2所示。
图2-2方案二方框图
方案三:
单片机(89C52和89C2051)作为自动往返小汽车的检测和控制核心。
路面黑线检测使用反射式红外传感器,车速和距离检测使用断续式光电开关,利用PWM技术动态控制电动机的转速。
基于这些完备而可靠的硬件设计,使用了一套独特的软件算法,实现了小车在限速和压线过程中的精确控制。
本设计的主要特色:
高效的H型PWM电路,提高电源利用率; 控制电路电源和电动机电源隔离,信号通过光电祸合器传输;脉冲调制路面检测,超强纠错,免受路面杂质干扰; 优化的软件算法,智能化的自动控制,定位精确;后置式红、绿方向灯行驶状态一目了然。
方框图如2-3所示。
图2-3方案三方框图
2.2系统方案确定
方案一用了相同的两块芯片作为控制部分,应用起来比较烦琐,也很不经济;方案三应用了两块芯片作为控制部分,虽然设计目的更加明确,但这样的选择对软件编程造成了很大困难;综上所述:
从实际生产方面和经济方面考虑,拟选用方案三。
3.系统的硬件设计
此毕业设计的硬件设计部分由我此次设计的合作者薛晶晶完成和实现,在此我将简单进行叙述。
3.1系统的原理框图
图3-1系统原理框图
3.2各模块的简要介绍
以下将各模块的功能作一大致的叙述。
3.2.1电机调速与驱动模块
此模块是通过电位高低控制电机调速,产生两档电压,从而实现小汽车驱动电机的正反转功能。
3.2.2里程与跑道标志检测模块
分别利用霍耳元件、光电管检测来实现里程数及黑线条数检测。
3.2.3显示模块
采用传统的数码管显示。
本系统采用7位数码管动态扫描的方式进行显示。
3.3AT89C52芯片介绍
本设计采用的单片机为AT89C52,它具有并行可编程的非易失性。
该系列单片机是80C51微控制器的派生器件,是采用先进CMOS工艺制造的8位微控制器指令系统,与80C51具有完全相同特性。
图3-2AT89C52的芯片管脚图
3.3.1特征
(1)片内FLASH程序存储器
(2)速度可达33MHz
(3)全静态操作
(4)RAM可扩展到64K字节
(5)4个中断优先级
(6)6个中断源
(7)4个8位I/O口
(8)全双工增强型UART(帧数据错误检测、自动地址识别)
3.3.2主要接口功能介绍
P0口:
是开漏双向口可以写为1使其状态为悬浮用作高阻输入P0,也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉传送1。
P1口:
是带内部上拉的双向I/O口,向P1口写入1时P1口被内部上拉为高电平,可用作输入口。
当作为输入脚时被外部拉低的P1口会因为内部上拉而输出电流(见DC电气特性)P1口第2功能T2(P1.0)定时/计数器2的外部计数输入/时钟输出。
T2EX(P1.1)定时/计数器2重装载/捕捉/方向控制。
P2口:
是带内部上拉的双向I/O口,向P2口写入1时P2口被内部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P2口会因为内部上拉而输出电流(见DC电气特性)在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址(MOVX@DPTR),此时通过内部强上拉传送1当使用8位寻址方式(MOV@Ri)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。
P3口:
是带内部上拉的双向I/O口,向P3口写入1时P3口被内部上拉为高电平。
可用作输入口,当作为输入脚时被外部拉低的P3口会因为内部上拉而输出电流。
可以用作串行通讯口、外部数据存贮器读写控制逻辑电路。
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个
脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
[1]
3.4霍尔元件
霍尔效应是取名于物理学家的名字爱得文。
霍尔。
在1879年,霍尔发现:
在通电的导体或半导体的电流方向的垂直方向施加磁场,在电流于磁场的垂直面方向上出现感应电压。
这一效应叫霍尔效应。
利用霍尔效应制成的磁感应元件叫霍尔元件。
3.4.1工作原理
在磁场作用下通有电流的金属片上产生一横向电位差(如图1所示),这个电压VH和磁场H及控制电流IC成正比,即:
VH=K|HIC|,式中VH为霍尔电压,H为磁场,IC为控制电流,K为霍尔系数。
在半导体中的霍尔效应比在金属中显著,故一般霍尔器件采用半导体材料制作。
众所周知,当电流通过一根长的直导线时,在导线周围产生磁场,磁场的大小与流过导线的电流成正比,这一磁场可以通过软磁材料来聚集,然后用霍尔器件进行检测。
由于磁场与霍尔器件的输出有良好的线性关系,因此利用霍尔器件测得的信号大小直接反应出电流的大小,即I∝B∝VH,其中I为通过导线的电流,B为导线通电流后产生的磁场,VH为霍尔器件在磁场B中产生的霍尔电压。
当选用适当比例系数时可以表示为等式。
图3-3 霍尔器件的工作原理示意图
3.4.2霍尔元件的特点
磁场平衡式霍尔电流电压传感器与普通互感器和分压器相比具有以下特点:
(1)测量范围宽。
可测量任意波形的电流和电压信号;而普通互感器只适用50Hz正弦波形或直流信号;
(2)测量精度高。
在工作温度区内,精度优于1%,而普通互感器一般精度为3%~5%;
(3)线性度好,优于0.1%;
(4)动态性能好,响应速度快。
响应时间小于1μs,而普通互感器响应时间为10~12ms;
(5)测量区间宽,过载能力强。
当测量电流超负荷时,内部电流和磁路均有饱和作用,不会损坏模块;
(6)尺寸小,重量轻,安装简单方便;
(7)可靠性能高,失效率λ=0.43×10-6/h;
(8)抗外界电磁和温度等因素的干扰能力强。
此外,其最大优点是电气隔离性好,与被测信号回路完全隔离,实现无接触检测,这便于微机接口,为今后实现微机控制奠定了基础。
[2]
3.5施密特触发器
3.5.1工作原理
1.特点:
(1)状态翻转时有正反馈过程,从而输出边沿陡峭的矩形脉冲。
(2)电压传输特性特殊,有两个不同的阈值电压(正向阈值电压和负向阈值电压)
(3)施密特触发器有两个稳定状态,其维持和转换完全取决于输入电压的大小。
[3]
3.5.2逻辑符号
左图中输入与输出为反相关系,又称作施密特触发器与非门
右图中输入与输出为同相关系,又称作施密特触发器与门
3.5.3工作波形
为施密特触发器与门的波形,为施密特触发器与非门的波形
4.系统的软件设计
4.1程序设计要点
介绍汇编语言的特点与编写步骤。
4.1.1程序设计的特点:
(1)程序结构模块化,程序易读,易调试及保护
(2)执行速度快
(3)占用内存空间小
4.1.2设计程序的基本步骤:
(1)分析问题,抽象出描述问题的数学模型,并确定实现数学模型的算法。
(2)绘制程序流程图,通常先画粗框图,在结构模块中再出细框图。
(3)分配存储空间及工作单元。
分配数据段,堆栈段,程序段各在内存什么位置,各个寄存器主要作什么用。
(4)按流程图设计编写程序。
[4]
4.2各模块地址分配
下面介绍电机驱动、电机调速、检测和显示模块的地址分配
4.2.1电机驱动模块:
利用AT89C52P3.6P3.7的电位高低来控制电路,从而实现小汽车驱动电机的正反转功能
4.2.2电机调速模块:
利用AT89C52的P1.7和P1.6分别控制电机的驱动电压,P1.0控制电机电源的开与闭当P1.7为0,P1.6为1时,电机驱动电压为+7.5V,小车进入快速行驶状态;当P1.7为1,P1.6为0时,电机驱动电压为+4.3V,小车进入低速行驶状态;P1.0为高电位时,电机供电三极管截止,关闭电机电源进入停车状态;当P1.0为低电位时,电机供电三极管输出电机驱动电压,小车按单片机的指令执行各种功能。
4.2.3检测模块:
采用外部中断0(INT0)外部中断1(INT1)来实现其功能。
(1)里程检测
硬件部分采用霍尔元件安装在后左轮,车轮每转一周就由其产生一个低电平脉冲,使单片机外部中断1产生中断,从而使里程脉冲累计一次,根据本小车轮子的周长,每转6圈为1m,所以每累计6个脉冲就是1m。
(2)跑道标志检测
硬件部分采用光敏三极管和发光二极管组成的元件来实现脉冲信号的检测。
当小车在白纸上时,输出高电平,当遇到黑线时,输出低电平脉冲,作中断计数判断用,由外部中断0来实现
4.2.4显示模块
采用传统的数码管显示。
本系统采用7位数码管动态扫描的方式进行显示。
前三位数码管显示的数值表示里程,显示的范围为1~999米;后四位数码管的数值表示一次往返过程中所需的总时间,其中前两位表示分,后两位表示秒。
往返到起点时显示的数值是一次往返的总时间。
P0口作段码数据输出,P2口为扫描输出口。
[5]
4.3系统内存资源分配
20H~24H内存单元作为里程计数用(23H为跑道条数存放单元),采用十进制数,最大计数值为999米。
70H~73H为时间计数单元,采用十进制BCD码计数,最大记录时间为59分59秒。
显示数据在70H~76H单元中,其中74H~76H
单元内为里程显示数据。
为了标志是终点停车还是起点停车,用位地址30H(即35H.0
位)的位值作为判断标志。
4.4系统软件的设计
下面将详细介绍初始化程序、主程序、跑道标志处理程序、慢车子程序、停止子程序、里程计数处理程序、计时程序和延时程序。
4.4.1初始化程序
主要完成70H~76H、20H~23H等单元的清零,设置T1为16位定时模式,开放
T1、外中断0、外中断1的中断等。
4.4.2主程序
主要完成初始化工作,设定小汽车的初始运行状态,最后循环调用显示程序,
流程图如4-1所示。
图4-1主程序流程图
4.4.3跑道标志处理程序(外中断0服务程序)
其任务是根据小车到达黑线的位置控制小车的运行状态,小车全速行驶,跑道计数器23H加1,当到达第三条黑线,小车进入慢行状态,当到达第四条黑线,小车进入快车状态;当到达第五条黑线,小车进入慢行状态;当到达第六条黑线,小车进入停止状态。
每一次跑道计数器加1都要进行一次延时(7ms),目的是为了给系统足够的时间去辨别黑线的条数,以保证系统精确,起到了抗干扰的作用。
其程序流程图4-2所示。
[6]
4.4.4慢车子程序
慢车子程序执行时,先对电机进行反向驱动约50毫秒,使其刹车,然后改供低电压,使电机慢速转动。
4.4.5停止子程序
当执行停车时,先队黑线道计数器单元23H清零,再反向驱动刹车后关电机
电源,然后延时10秒,对30H位取反,以判断是中途停车还是起点停车。
若是起点
停车,计时单元清零。
最后,设小车为初始运动状态。
4.4.6里程计数处理程序(外中断1服务程序)
里程计数器采用十进制计数,最大计数值为999m。
小车车轮转圈数加1(即20H加1),当满6圈为1m,上位加1为21H;如果满10m,高位加1为22H,再满10m,高位加1为24H,当退出时,将计数值分别移入74H~76H显示数据存储单元,分别表示里程的个位、十位和百位。
见流程图4-3所示。
4.4.7计时程序(T1定时中断服务程序)
70H~73H为时间计数单元,采用十进制BCD码计数,最大记录时间为59min59s。
见流程图4-4。
4.4.8延时程序
延时程序均采用调用显示子程序的方法,以改善LED显示的效果。
图4-2外中断0程序流程图
图4-3外中断1程序流程图
图4-4T1定时中断流程图
总结
本系统以单片机AT89C52芯片为核心部件,在设计系统中,力求硬件线路简单,充分发挥软件编程方便灵活的特点,来满足系统设计要求。
经过三个多月时间的毕业设计制作,我觉得自己对单片机知识的掌握又进了一层,尤其对单片机软件编程的兴趣增加不少。
归纳起来,主要有以下几点:
1、了解进行一项相对比较大型的科技设计所必不可少的几个阶段。
毕业设计能够从理论设计和工