毕业设计(论文)-基于单片机高速公路车辆智能检测、显示系统设计.docx_第1页
毕业设计(论文)-基于单片机高速公路车辆智能检测、显示系统设计.docx_第2页
毕业设计(论文)-基于单片机高速公路车辆智能检测、显示系统设计.docx_第3页
毕业设计(论文)-基于单片机高速公路车辆智能检测、显示系统设计.docx_第4页
毕业设计(论文)-基于单片机高速公路车辆智能检测、显示系统设计.docx_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计基于单片机高速公路车辆智能检测、显示系统设计机械工程系学生姓名:学号:机械设计制造及其自动化系部:专业:指导教师:二零一四年 六 月诚信声明本人郑重声明:本论文及其研究工作是本人在指导教师的指导下独立完成的,在完成论文时所利用的一切资料均已在参考文献中列出。全套图纸加扣 3012250582本人签名: 年 月 日基于单片机高速公路车辆智能检测、显示系统设计摘要:我们为了使得司机重视交通违章的危害,通过单片机技术在高速公路出入口实现对车辆的车牌号的违章行为的智能检测及违章情况的显示,使得违法车辆所有人看到自己车辆的违法信息后及时处理。本文详细介绍了车辆智能检测系统的方案设计、硬件选择、软件编程,该系统以单片机AT89C51芯片为核心,实现了对车辆检测全过程的自动控制。关键词:道路交通违章,单片机,车牌号,智能检测Based on monolithic integrated circuithighway vehicles intelligence examination,display system designAbstract:In order to enable the driver to take traffic citation the harm, displayintelligentdetectionandviolationbyviolationsofMCUtechnologytorealizethelicenseplatenumberofthevehicleonthehighwayentrance,make illegal vehicles people to see own vehicles the illegal information to deal with in time. The article introduced the vehicles intelligence examination system project design in detail, the hardware choice ,t he software programming ,this system take the monolithic integrated circuit AT89C51 chip as a core, realized examined entire process to the vehicles the automatic control.Key words: The road traffic violates regulations, The monolithic integrated circuit, The vehicles car license number,Intellect examine目 录1 前言11.1 论文研究的目的及意义11.1.1 研究目的11.1.2 研究意义21.2 研究内容及采用的研究手段21.2.1 课题的研究内容21.2.2本课题拟采用的手段和途径32 车辆智能检测设计方案42.1 概述42.2 设计思路52.3工作原理63 车辆智能检测硬件设计83.1 MCS-51系列单片机内部结构及功能部件83.2 AT89C51引脚功能介绍93.3 中央处理器CPU123.3.1 运算部件123.3.2 控制部件及振荡器133.4 基础知识143.5 寄存器选择及显示器地址163.6 硬件设计电路图174 车辆智能检测软件设计184.1 软件概述184.2 指令描述符号184.3 伪指令194.4 主程序设计204.5 延时程序设计214.6 查表程序设计224.7 LCD液晶显示程序设计23I4.7.1 DDRAM显示数据寄存器234.7.2 状态字说明235 仿真模拟245.1 Proteus简介245.2 编译与文件加载245.3 电路仿真255.4 仿真模拟25结论27参考文献28致谢29附录30II太原工业学院毕业设计1 前言1.1 论文研究的目的及意义1.1.1 研究目的道路交通违章(简称交通违章)是指违反道路交通法规,妨碍道路交通秩序,影响道路交通安全和畅通的过错行为。大量研究表明,交通违章和交通事故有着密切的相关关系,一次违章就是一次准事故,减少违章就是减少准事故。因此,做好违章纠正工作对交通参与者自觉遵守交通法规,保护公民的合法权益,减少交通事故,维护道路交通秩序,保障交通安全、畅通有着十分重要的意义。在改革开放以前,我国经济发展缓慢,机动化水平不高,交通事故情况不严重。但改革开放以来,尤其是进入20世纪80年代中期后,我国经济进入全面快速发展时期,机动车拥有量增长迅速,伴随着经济进入全面快速发展,交通事故也明显增加。从1985年起,我国的机动车增长迅速,每年的机动车增长速度都在10%以上,有时甚至达到30%,但随着机动车数量的增长,如今我国的车祸也成了世界第一。2007年上半年全国共发生道路交通事故15.9万起,造成3.7万人死亡、18.9万人受伤,直接财产损失5.4亿元。超速行驶仍是机动车肇事的主要原因。由于奥运期间开展的道路交通安全攻坚战,2008年,全国道路交通事故死亡人数为73484人,同比下降10%。2009年,据公安部交通管理局通报,2009年,全国共发生道路交通事故238351起,造成67759人死亡、275125人受伤,直接财产损失9.1亿元,与去年同期相比,分别下降10.1%、7.8%、9.8%和10.7%。其中,酒后驾驶导致的事故死亡人数降幅明显。全国万车死亡率为3.6,同比减少0.7。2010年,全国共发生道路交通事故238351起,造成67759人死亡、275125人受伤,直接财产损失9.1亿元。2011年,全国共接报涉及人员伤亡的道路交通事故210812起,共造成62387人死亡,其中营运客货车辆肇事50296起,占23.9%,造成20648人死亡,占33.1%。全国共发生一次死亡10人以上的特大交通事故27起,造成451人死亡,其中营运客货车肇事的事故23起,造成390人死亡,分别占85.1和86.5。人流、物流、车流的快速增长,是经济发展、市场繁荣、人民生活水平提高的必然趋势。但事物的另一面向世人昭示:我国已经进入道路交通事故的高发期。通过对违章情况的检测和显示,使得司机重视交通违章的危害,在减少违章的同时,使城市道路变得更秩序井然。1.1.2 研究意义在国家公布的道路事故统计资料汇编中,将交通事故的原因分类为机械故障原因、机动车驾驶员原因、非机动车驾驶员原因、行人乘车人原因、道路原因、其它原因。在近些年来的交通事故统计数据中,可以看到由于机动车驾驶员原因造成的交通事故一直在83%以上,而其中机动车驾驶员在路面上的可见违章造成的事故达60%以上,如果加上非机动车驾驶员和行人及乘车人的违章造成的交通事故,则路面上可见的交通违章造成的事故可达到交通事故总数的70%左右。而由此造成的人员伤亡和财产损失更是数额巨大。因此治理交通违章是摆在交通管理者和交通参与者面前的非常紧迫而又重大的任务。所以我们通过交通处罚对交通参与者进行治理。交通违法处罚是国家法定的,具有合法性,其作用是对交通违法者进行处罚和教育。我们为了使得司机重视交通违章的危害,尤其是对于一些抱有侥幸心理,经常不守法的司机更具有震慑力,通过在高速公路出入口实现对车辆的车牌号的违章行为的查询检测及违章情况的显示,使得违法车辆所有人看到自己车辆的违法信息后及时处理。1.2 研究内容及采用的研究手段1.2.1 课题的研究内容改革开放以来,尤其是进入20世纪80年代中期后,我国经济进入全面快速发展时期,机动车拥有量增长迅速,伴随着经济进入全面快速发展,交通事故也明显增加。所以运用MCS51单片机指令完成对高速出入口车辆车牌号的检测及违章情况的显示,并运用相关编程软件对其实现课题所要求实现的功能。并且会运用仿真软件对系统进行功能仿真。对遇到的问题能通过查阅资料解决,对单片机技术、违章情况及显示系统有进一步的了解,并能把他们有机的结合。本课题的主要任务是设计一个高速公路出入口车辆车牌号违章情况的显示,要求设计的系统能够准确记录车辆的监测及违章情况,使得司机重视交通违章的危害,尤其是对于一些抱有侥幸心理,经常不守法的司机具有震慑力,同时使得违法车辆所有人看到自己车辆的违法信息后及时处理。1.2.2本课题拟采用的手段和途径本课题的研究需要查阅大量的资料,可以到图书馆查阅与本课题相关的书籍和期刊,还可以上网浏览最新的有关本课题的文献资料,用MCS-0851单片机进行编程,并用Proteus软件进行硬件的设计,并对软硬件进行仿真,对仿真所不符合条件的部分进行修改,设计出符合设计要求的车辆车牌号违章情况的显示。2 车辆智能检测设计方案2.1 概述把组成微型计算机的各功能部件:中央处理器CPU、随机存取存储RAM、只读存储器ROM、可编程存储器EPROM、并行和串行输入/输出(I/O)接口、定时器/计数器、中断控制器等部件集成在一块半导体芯片上,构成一个完整的微型计算机系统,称之为单片微型计算机,简称单片机。随着大规模集成电路技术的发展,当前增强型单片机内还集成了A/D、D/A转换器,高速输入/输出部件,直接存储器存取通道,浮点计算,脉宽调制电路,看门狗,以及LCD(液晶)驱动电路等新的特殊功能部件。由于它的结构和指令功能都是按工业控制要求设计的,特别适合于工业控制及与控制有关的数据处理场合,因而目前应确切称其为微控制器或者微控制单元,单片机的称谓只是保留了其称呼习惯。MCS-51系列单片机是20世纪80年代由美国Intel公司推出的一种高性能8位单片机。它的片内集成了并行I/O、串行I/O和16位定时器/计数器,片内的RAM和ROM都比较大,RAM可达256B,新型51系列单片机的ROM可达64KB。在20世纪90年代后期,美国Intel公司出于公司发展战略的考虑将主要精力集中在了微处理器的研发和生产上,并逐步退出了单片机的市场,但在单片机的发展和应用历史中,MCS-51系列单片机已经得到科技界和工业界用户广泛的认可。虽然许多半导体公司看到了单片机巨大的市场前景并纷纷加入到这一领域的开发研制,并为满足各种不同的需求推出了多个品种的系列机,这些单片机产品还采用了多种创新技术,产品的性能和可靠性都有了极大的改进和提高,但这些单片机产品大都采用8051单片机的核心技术作为其内核。MCS-51系列单片机生产工艺有两种,分别为HMOS(高密度短沟道MOS工艺)和CHMOS(互补金属氧化物的HMOS工艺),这两种单片机完全兼容。CHMOS工艺比较先进,不光具有HMOS的高速性,同时还具有CMOS的低功耗性,因此,CHMOS是HMOS和CMOS的结合。为区别起见,CHMOS工艺的单片机名称前冠以字母C,如80C31、80C51、87C51等。不带字母C的为HMOS芯片。此外,CHMOS型单片机中还有一些以80C51为核心,加上一些新的功能部件所组成的增强型单片机,如8XC51FB增加了一个可编程的读数器阵列PCA;8XC51GA增加了片内的A/D转换器;荷兰Philips公司生产的与MCS-51兼容的增强型单片机8XC552,不仅增加了片内A/D转换器、片内看门狗电路和片内PWM输出通道,还提供了一种新型的芯片间通信总线I2C接口,利用数据和时钟两根线就可以实现芯片之间的数据传送;Philips还提供了I2C总线进行系统扩展。HMOS型单片机电平与TTL电平兼容,而CHMOS型单片机的电平既与TTL电平兼容,又与CMOS电平兼容。所以,在单片机应用系统中应尽量采用CHMOS工艺的芯片。MCS-51系列单片机在片内程序存储器的配置上有3种,即掩膜ROM、EPROM和无片内程序程序存储器。8031片内无ROM,必须外接EPROM才能应用;8051片内具有4KB的ROM;而8751片内具有4KB的紫外线可擦除电可编程的只读存储器(EPROM)。这3种芯片的引脚兼容。单片机8751最适用于开发样机、小批量生产和需要现场进一步完善的场合,8051单片机适用于低成本、大批量生产的场合,而8031单片机则适用于能方便灵活地在现场进行修改和更新程序存储器的场合。MCS-51系列单片机在功能上有基本型和增强型两种。通常以芯片型号的末位数字来区别,末位数字为“1”的为基本型,末位数字为“2”的为增强型,如80C51为基本型,80C52为增强型等1。2.2 设计思路(1)电路设计采用直接访问方式,LCD模块的地址空间由P2.7直接提供,当总线寻址的地址最高位为1时,允许访问LCD模块,选择合适的P2.0和P2.1的电平,就可以实现LCD模块相应的读写操作。打开Proteus的ISIS,通过对象选择器按钮,从元件库中选择如下元器件:AT89C51、LCD、74HC00,并置入对象选择器窗口。然后将选择的元器件、电源和地线放置在编辑窗口中。(2)编程思路采用直接访问方式实现,初始化设置为清屏、功能设置、显示状态和输入方式等过程,每个过程都是先判断忙送数据再写入的编程方法,其中写入指令和写入数据所用的指令不同。由于采用直接访问电路结构,对数据的读/写要用MOVX类指令来完成。开始初始化设置功能、显示、输入方式等置显示初始地址输入显示数据结束图2.1流程图2.3工作原理液晶显示屏是属于被动发光显示器件,屏蔽本身的像素点并不能主动发光,它是靠调制外界光的光通量实现亮度控制的。将液晶的分子放置在电场中间,改变电场的方向和强度,分子也会随同电场方向的改变产生扭曲。通过液晶分子的扭曲可以使通过的光线受到控制(通过、阻断)。液晶显示器在上下玻璃电极之间封入向列型液晶材料,由于液晶的四壁效应,在定向膜的作用下,液晶分子在正、背玻璃电极上呈水平排列,但互相正交,而玻璃间的分子呈连续扭转过渡,这样的构造能使液晶对光产生旋光作用,使光的偏振方向旋转90。当外部光线通过上偏振片后形成偏振光,偏振方向呈现垂直方向,此偏振光通过液晶材料后,被旋转90,偏振方向呈现水平方向,此方向恰与下偏振偏方向一致,因此此光能通过下偏振片,到达反射板,经反射后经原路返回,从而呈现透明状态。当在液晶盒的上、下电极加上一定的电压后,电极部分的液晶分子转成垂直排列,从而失去了旋光性。因此,从上偏振片入射的偏振光不被旋转,当此偏振光到达下偏振片时,因其被下偏振片吸收,无法到达反射板形成反射,所以呈现黑色。根据需要,将电极做成各种文字、数字或点阵,就可以获得所需的各种显示2。3 车辆智能检测硬件设计3.1 MCS-51系列单片机内部结构及功能部件MCS-51系列单片机是由8大部分组成的。这8大部分是:(1)一个8位中央处理器CPU。它由运算部件、控制部件构成,其中包括振荡电路和时钟电路,其主要完成单片机的运算和控制功能。它是单片机的核心部件,决定了单片机的主要功能特性。(2)128个字节(MCS-52子系列为256字节)的片内数据存储器RAM。其片外数据存储器的寻址范围为64KB,用于存放可读写的数据,如运算的中间结果或最终结果等。(3)4KB(MCS-52子系列为8KB)的片内程序只读存储器ROM或EPROM(8031和8032无)。其片外可寻址范围为64KB,主要用于存放已编制的程序,也可以存放一些原始数据和表格。(4)18个(MCS-52子系列为21个)特殊功能寄存器SFR。它用于控制和管理片内算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能模块的工作。(5)4个8位并行输入输出I/O接口:P0口、P1口、P2口、P3口(共32线),用于并行输入或输出数据。(6)1个串行I/O接口。它可使数据1位1位串行地在计算机与外设之间传送,可用软件设置为4种工作方式,用于多处理机通讯、I/O扩展或全双工通用异步接收器(UART)。(7)2个(MCS-52子系列为3个)16位定时器/计数器。它可以设置为计数方式对外部事件进行计数,也可以设置为定时方式进行定时。计数或定时的范围由软件来设定,一旦计数或定时结束则向CPU发出中断请求,CPU根据计数或定时的结果对计算机或外设进行控制。(8)1个具有5个(MCS-52子系列为6个或7个)中断源,可编程为2个优先级的中断系统。它可以接收外部中断申请、定时器/计数器中断申请和串行口中断申请。常用于实时控制、故障自动处理、计算机与外设间传送数据及人机对话等4。3.2 AT89C51引脚功能介绍MCS-51系列单片机芯片均为40个引脚,HMOS工艺制造的芯片采用双列直插(DIP)方式封装,其引脚示意及功能分类如图1.1所示。CMOS工艺制造的低功耗芯片也有采用方型封装的,但为44个引脚,其中4个引脚是不使用的。图3.1 AT89C51系列单片机引脚及总线结构(a)管脚图;(b)引脚功能分类MCS-51系列单片机的40个引脚中有2个专用于主电源的引脚,2个外接晶体的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。下面按引脚功能分为4部分叙述各引脚的功能。1.主电源引脚VCC和VSSVCC(40脚):接+5V电源正端;VSS(20脚):接+5V电源地端。2.外接晶体引脚XTAL1和XTAL2XTAL1(19脚):指外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMOS芯片,该引脚悬空不接。3.控制信号或其它电源复用引脚控制信号或与其它电源复用引脚有RST/VPD、ALE/、和/VPP等4种形式。(1)RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。当VCC降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+50.5V)为内部RAM供电,以保证RAM中的数据不丢失。(2)ALE(30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的频率输出,用于锁存出现在P0口的低8位地址。在不访问外部存储器时,ALE端仍以上述不变的频率(振荡器频率的1/6),周期性地出现正脉冲信号,可作为对外输出的时钟脉冲或用于定时目的。但要注意,在访问片外数据存储器期间,ALE脉冲会跳过一个,此时作为时钟输出就不妥当了5。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚作为编程脉冲的输入端。(3)(29脚):片外程序存储器读选通信号输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期两次有效,以通过数据总线口读取指令或常数。当访问外部数据存储器期间,信号将不出现。(4)/VPP(31脚):为访问外部程序存储器控制信号,低电平有效。当端保持高电平时,单片机访问片内程序存储器4KB(MCS-52子系列为8KB)。当超出该范围时,自动转去执行外部程序存储器的程序。当端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源VPP。4.输入/输出(I/O)引脚P0口、P1口、P2口及P3口(1)P0口(39脚32脚):P0.0P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部存储器或扩展I/O接口时,P0口为地址/数据分时复用口。它分时提供8位地址总线和8位双向数据总线。对于片内含EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。(2)P1口(1脚8脚):P1.0P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS-52子系列单片机,P1.0与P1.1还有第2功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对EPROM编程和进行程序验证时,P1口接收输入的低8位地址。(3)P2口(21脚28脚):P2.0P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对EPROM编程和进行程序验证时,P2口接收输入的高8位地址。(4)P3口(10脚17脚):P3.0P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第二功能详见表3.13。表3.1 P3口第二功能表引脚第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD (串行口输入端)TXD (串行口输出端)INT0 (外部中断0请求输入端,低电平有效)INT1 (外部中断1请求输入端,低电平有效)T0 (定时器/计数器0计数脉冲输入端)T1 (定时器/计数器1计数脉冲输入端)WR (外部数据存储器写选通信号输出端,低电平有效)RD (外部数据存储器读选通信号输出端,低电平有效)综上所述,MCS-51系列单片机的引脚作用可归纳为以下两点:(1)单片机功能多,引脚数少,因而许多引脚都具有第二功能。(2)单片机对外呈3总线形式,由P2口、P0口组成16位地址总线;由P0口分时复用作为数据总线;由ALE、RST、与P3口中的T0、T1共10个引脚组成控制总线。由于是16位地址线,因此,可使外部存储器的寻址范围达到64KB。3.3 中央处理器CPU中央处理器是单片机内部的核心部件,它决定了单片机的主要功能特性。它由运算部件和控制部件两大部分组成。3.3.1 运算部件运算部件是以算术逻辑单元ALU为核心,加上累加器A、寄存器B、暂存器TMP1和TMP2、程序状态寄存器PSW及专门用于位操作的布尔处理机组成的,它能实现数据的算术逻辑运算、位变量处理和数据传送操作6。1.算术逻辑单元ALU与累加器A、寄存器B算术逻辑单元ALU不仅能完成8位二进制数的加(带进位加)、减(带借位减)、乘、除、加1、减1及BCD加法的十进制调整等算术运算,还能对8位变量进行逻辑“与”、“或”、“异或”、求补、清零等逻辑运算,并具有数据传送、程序转移等功能。累加器ACC简称累加器A,为一个8位寄存器,它是CPU中使用最频繁的寄存器。进入ALU作算术和逻辑运算的操作数多来自A,运算结果也常送回A保存。寄存器B是为ALU进行乘除法设置的。在执行乘法运算指令时,用于存放其中一个乘数和乘积的高8位数;执行除法运算指令时,B中存放除数和余数;若不作乘、除法运算时,则可作为通用寄存器使用。2.程序状态字程序状态字寄存器PSW(8位)是一个标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。其程序状态字格式及含义如下:PSW.7 PSW.0CYACF0RS1RS0OV-PCY(PSW.7)进位标志位。由硬件或软件置位和清零。它表示运算结果是否有进位(或借位)。如果运算结果在最高位有进位输出(加法时)或有借位输入(减法时),则CY=1,否则CY=0。AC(PSW.6)辅助进位(或称半进位)标志。它表示两个8位数运算,低4位有无进(借)位的状况。当低4位相加(或相减)时,若D3位向D4位有进位(或有借位),则AC=1(或AC=0)。在BCD码运算的十进制调整中要用到该标志。F0(PSW.5)由用户定义的标志位。用户可根据自己的需要用软件对F0赋以一定的含义,并根据F0=1或0来决定程序的执行方式。RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。可用软件置位或清零,用以指示4个工作寄存器中当前使用的工作寄存器组。OV(PSW.2)溢出标志位。由硬件置位或清零。它反映运算结果是否溢出(即运算结果的正确性),溢出时(结果不正确)OV=1,否则OV=0。溢出标志OV和进位标志CY是两种不同性质的标志。溢出是指有正、负号的两数运算时,运算结果超出了累加器以补码所能表示的一个有符号数的范围(128+127)。而进位则表示两数运算最高位(D7)相加(或相减)有无进(或借)位。因此使用时应加以注意。PSW.1未定义位。P(PSW.0)奇偶标志位。在执行指令后,单片机根据累加器A中1的个数的奇偶自动给该标志置位或清零。若A中1的个数为奇数,则P=1,否则P=0。该标志对串行通信的数据传输是非常有用的,通过奇偶校验可检验传输的可靠性6。3.布尔处理机布尔处理(即位处理)是MCS-51单片机ALU所具有的一种功能。单片机指令系统中的布尔指令集(17条位操作指令),存储器中的位地址空间,以及借用程序状态标志寄存器PSW中的进位标志CY作为位操作“累加器”,构成了单片机内的布尔处理机。它可对直接寻址的位(bit)变量进行位处理,如置位、清零、取反、测试转移以及逻辑“与”、“或”等位操作,使用户在编程时可以利用指令完成原来单凭复杂的硬件逻辑所完成的功能,并可方便地设置标志等。3.3.2 控制部件及振荡器控制部件是单片机的神经中枢,它包括定时和控制电路、指令寄存器、译码器以及信息传送控制等部件。它先以主振频率为基准发出CPU的时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的微操作,用来协调单片机内部各功能部件之间的数据传送、数据运算等操作,并对外发出地址锁存ALE、外部程序存储器选通,以及通过P3.6和P3.7发出数据存储器读、写等控制信号,并且接收处理外接的复位RST和外部程序存储器访问控制信号。单片机的定时控制功能是由片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:一种是内部时钟方式;一种是外部时钟方式,如图3.2所示。图3.2 HMOS型MCS51单片机时钟产生方式(a)内部振荡器方式;(b)外部振荡器方式采用内部时钟方式时,片内的高增益反相放大器通过XTAL1、XTAL2外接作为反馈元件的片外晶体振荡器(呈感性)与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率主要取决于晶体的振荡频率,一般晶体可在1.2MHz12MHz之间任选,电容C1、C2可在5pF30pF之间选择,电容的大小对振荡频率有微小的影响,可起频率微调作用15。采用外部时钟方式时,外部振荡信号通过XTAL2端直接接至内部时钟电路,这时内部反相放大器的输入端XTAL1端应接地。通常外接振荡信号为低于12MHz的方波信号。3.4 基础知识1.LCD模块LCD模块引脚说明如表3.2所示。表3.2 LCD模块引脚功能编号符号引脚说明编号符号引脚说明1VSS电源地11DB4Data I/O2VDD电源正极(+5V)12DB5Data I/O3V0液晶显示偏压输入13DB6Data I/O4RS数据/命令选择端(H/L)14DB7Data I/O5R/W读/写控制信号(H/L)15CS1片选IC1信号6E使能信号16CS2片选IC2信号7DB0Data I/O17RST复位端(H:正常工作,L:复位)8DB1Data I/O18VEE负电源输出(-10V)9DB2Data I/O19BLA背光源正极(+4.2V)10DB3Data I/O20BLK背光源负极2.基本操作说明1)读状态输入:RS=L,R/W=H,CS1或CS2=H,E=高脉冲;输出:D0D7=状态字。2)写指令输入:RS=L,R/W=L,D0D7=指令码,CS1或CS2=H,E=高脉冲;输出:无。3)读数据输入:RS=H,R/W=H,CS1或CS2=H,E=H;输出:D0D7=数据。4)写数据输入:RS=H,R/W=L,D0D7=数据,CS1或CS2=H,E=高脉冲;输出:无。3.指令说明1)初始化设置显示开/关设置如下:指令码功能3EH关显示3FH开显示显示初始设置如下:指令码功能C0H设置显示初始行2)数据控制控制器内部设有一个数据地址页和一个数据地址列指针,用户可通过它们来访问内部的全部512字节RAM。数据指针设置如下:指令码功能B8H+页码(07)设置数据地址页指针40H+列码(063)设置数据地址列指针4.初始化过程(1)写指令C0H,设置显示初始行。(2)写指令3FH,开显示。5.连线把仿真器的数据线与LCD数据线相连。RS连P2.0,CS1连P2.2,R/W连P2.3,CS2连P2.1,E连P2.7。3.5 寄存器选择及显示器地址LCD内部有两个寄存器,一个是指令寄存器IR,另一个是数据寄存器DR。IR用来存放由微控制器所用来的指令代码,如光标归位、清除显示器;DR用来存放欲显示的数据。显示的次序是先把欲存放数据地址写入IR,再把欲显示的数据写入DR,DR就会自动把数据送至相应的DD RAM或CG RAM地址,DD RAM是显示数据的存储器,用来存放LCD的显示数据;CG RAM是字符产生器,用来存放自己设计的显示数据。LCD指令寄存器和数据寄存器的选择如表所示,通常R/W与RS信号线一起使用7。表3.3 LCD寄存器的选择ER/WRS功能说明100写入指令寄存器101写入数据寄存器110读取忙碌标志及RAM地址111读取RAM数据0XX不动作3.6 硬件设计电路图图3.3硬件设计电路图4 车辆智能检测软件设计4.1 软件概述由于构成计算机的电子器件特性所决定,计算机只能识别二进制代码。这种以二进制代码来描述指令功能的语言,称之为机器语言,用机器语言组成的程序,称为目标程序。计算机就是按照机器语言的指令来完成各种功能操作的,它具有程序简洁、占用存储空间小、执行速度快、控制功能强等特点。由于机器语言只是一种用二进制0、1组成的代码,人们不易辨识、记忆和书写,因此使用不便、易错,也很难用它来进行程序设计14。为了既能体现机器语言的特点,又能便于人们理解、记忆和书写,计算机常采用助记符来编写程序。助记符是根据机器指令不同的功能和操作对象来描述指令的,由于它采用有关英文缩写来描述指令的特征,因此,不但便于记忆,也便于理解和分类。单片机汇编语言与高级语言相比直观性、易读性不强,但它程序代码量少,最能直接反映如何用指令控制单片机工作过程,对于充分理解和掌握单片机内部工作机理具有良好的作用。语言和汇编语言相比,汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。对于目前普遍使用的RISC架构的8BIT MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我认为采用汇编语言比较好8。4.2 指令描述符号Rn(n=07) 当前选中的工作寄存器组中的寄存器R0R7之一;Ri(i=0,1) 当前选中的工作寄存器组中的寄存器R0或R1; 间接寻址或变址寻址前缀;#data 8位立即数;#data16 16位立即数;direct 片内RAM单元地址及SFR地址(可用符号名称表示);addr11 11位目的地址;addr16 16位目的地址;rel 补码形式表示的8位地址偏移量,其值在-128+127范围内;DPTR 数据指针,可用作16位地址寄存器;bit 片内RAM位地址、SFR中的位地址(可用符号名称表示);A(ACC) 累加器。虽然A和ACC指的是同一个寄存器,但在指令中它们是有区别的。ACC在汇编后的机器码中必有一个字节的操作数是ACC的字节地址E0H,A则隐含在指令操作码中。所以,在机器码中不显含E0H地址的指令A不能用ACC代替;特殊功能寄存器直接寻址和位寻址要用ACC代替,而不能用A代替;B 专用寄存器,用于乘法和除法指令中;C 进位标志或布尔处理机中的累加器;/ 位操作数的取反操作前缀;() 表示地址单元或寄存器的内容;() 表示以单元或寄存器内容为地址所指定单元的内容; 数据传送方向; 数据交换。4.3 伪指令伪指令是不产生机器语言的指令,它仅提供汇编控制信息。伪指令的语句格式通常为 标号 定义符 操作数 ;注释格式中的表示可省略。1.ORG:汇编起始地址格式:ORG 地址2.EQU:赋值格式:字符名称 EQU 数据或SFR3.DB:定义数据字节格式:标号: DB 项或项表4.DW:定义数据字格式:标号: DW 项或项表5.BIT:位定义格式:字符名称 BIT 位地址6.END:汇编结束格式:END ;单独使用4.4 主程序设计开始 LCD初始化 读取车牌号判断有无违章行为设定第一个车辆违章情况的显示“EQ505无”、延时确定放行清显示屏读取车牌号判断有无违章行为设定第二个车辆违章情况显示“OH778违停”留下等待结束图4.1 主程序流程图4.5 延时程序设计在单片机汇编语言程序设计中使用到延时程序非常广泛。例如,动态LED显示程序设计、LCD接口程序设计、键盘接口程序设计中的软件消除抖动等都采用了延时程序。所谓延时,就是让CPU做一些与主程序功能无关的操作来消耗掉CPU的时间。因此对于延时程序,必须知道每一条指令的执行时间,才能精确计算出来整个延时程序的延时时间11。开始 设车辆显示的循环次数 设置循环初值 显示模式送至P1口 延时显示模式左移1位次数-1=0NY图4.2 延时程序流程图4.6 查表程序设计利用查表程序能避免进行复杂的运算或转换过程,广泛用于显示、打印字符的转换及数据补偿、计算、转换等程序中。查表就是根据自变量x的值,在表中查找到y,使y=f(x)。x和y可以是各种类型的数据。表的结构也是多种多样的,数据是在编程时通过DB伪指令将其存入程序存储器ROM中形成数据表格的。MCS-51单片机提供了两条专门用于查表操作的查表指令:MOVC A,A+DPTR ;(A+DPTR)AMOVC A,A+PC ;FC+1PC,(A+PC) A其中,DPTR为数据指针,一般用于存放表首地址;累加器A是查表的偏移量(即在表格中的第几项数据)12。4.7 LCD液晶显示程序设计4.7.1 DDRAM显示数据寄存器DDRAM显示数据存储器用于存放LCD当前要显示的数据,其容量为80字节的RAM,能够存储80个8位字符代码。LCD显示屏上的每个位置都有相对应的DDRAM字节,在DDRAM中某地址写入字符代码,就是在LCD相应的位置显示字符,其地址和屏幕的对应关系如图4.3所示。LCD000102030405060708090A0B0C0D0E0F404142434445464748494A4B4C4D4E4F 图4.3 地址和屏幕对应关系图若将“A”显示在第二行的第3个字节,则只要将字符A的代码41H写入到地址为42单元RAM中即可。但存储地址要在实际地址基础上加80H。4.7.2 状态字说明STA7STA6STA5STA4STA3STA2STA1STA0D7D6D5D4D3D2D1D0STA0STA4:未用。STA5:液晶显示状态,1为关闭,0为显示。STA6:未用。STA7:读/写操作使能,1为禁止,0为允许。对控制器每次进行读/写操作之前,都必须进行读/写检测,以确保STA7为0。5 仿真模拟5.1 Proteus简介Proteus是英国Labcenter公司开发的电路分析与仿真软件。该软件的特点是:集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整电子设计工具,具有模拟电路、数字电路、单片机应用系统、嵌入式系统(不高于ARM7)设计与仿真功能,具有全速、单步、设置断点等多种形式的调试功能,具有各种信号源和电路分析所需的虚拟仪表,支持KeilC51uVision2、MPLAB等第三方的软件编译和调试环境,具有强大的原理图到PCB板设计功能,可以输出多种格式的电路设计报表。拥有PROTEUS电子设计工具,就相当于拥有了一个电子设计和分析平台。(1)Proteus软件系统是 一种功能强大的电子设计自动化软件,是集原理图设计、仿真和PCB设计于一体,真正实现了从概念到产品设计的开发平台。(2)Proteus软件除了具有模拟电路仿真、数字电路仿真之外,Proteus VSM的主要特色是单片机系统的仿真,用户可在Proteus中直接编辑、编译、调试代码,并直观地看到仿真结果。模型库中包含了LED/LCD显示、键盘、按钮、开关、常用电机等通用外围设备。(3)在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态;同时支持第三方的软件编译和调试环境。(4)Proteus还有众多的虚拟仪器(示波器、逻辑分析仪等)、信号源,以及高级图表仿真ASF,它们为高效、高质、高速地完成电子设计提供了检测、调试、分析的手段13。 5.2 编译与文件加载将编写的程序添加到Proteus

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论