停车场车位远程监控与显示系统设计.docx
学位论文停车场车位远程监控与显示系统设计作者姓名:吴忠兵学科专业:测控技术与仪器学号:102028130指导教师:黄.刚(副教授)完成日期:2014期6T5太渡工业学浣TaiyuanInstituteofTechno1.ogy诚信申明本人申明:本人所提交的毕业设计(论文)停车场车位远程监控与显示系统设计的全部材料是本人在指导老师指导和同学探讨下探讨、写作、完成的成果,设计论文)中所引用他人的无论以何种方式发布的文字、探讨成果,均在设计(论文)中加以说明;有关老师、同学和其他人员对我的设计(论文)的写作、修订提出过并为我在设计(论文)中加以接受的看法、建议,均己在我的致谢辞中加以说明并深致谢意。本设计(论文)和资料若有不实之处,本人不担当一切相关贡任.特此申明。本人签名:2014年06月15日毕业设计(论文)任务书设计(论文)题目:停车场车位远程监控与显示系统设计系部:电子工程系专业:测控技术与仪器学号:102028130学生:吴志兵指导老师(含职称):黄刚(副教授)1 .课题意义及目标随着交通工具的越来越普及.汽车作为人类社会中最主耍的交通工具之一,起着重大作用。汽车的数量与日俱增,使得找到个空车位停放乍辆成了司机们的难题。私家车的日益普及,中小型城市的车位管理问题也日益突出。而现有的停车管理系统大都是基于大中城市,所需成本较高。本项目拟设计的乍位监控系统能够进行车位信息的显示,为广阔的司机节约找寻车位的时间,同季节约停车场的有限资源,充分提高泊位的利用率,缓解城市泊车压力。因此,针对上述的状况,开发一套能够监测停车场空闲车位并显示的装置,使得司机在进入校内(或厂区)大门的同时,能对校内(或厂区)里停车场的车位状况一目了然,使之达到快速、合理地选择停车地点的IZ1.的。2 .主要内容随着车辆数目的与日俱增,司机通常很难快速的找到一个空闲的车位,这使得停车场经常会出现交通堵塞、车多位少的状况.想针对上述的状况,拟开发一套能够监测停车场空闲车位并远程显示的装置,,使得司机在进入校内(或厂区)的时候,能时校内(或厂区)里停车场的空闲车位数目一F1.了然,达到快速、合理地选择停车地点的目的。本智能停车管理系统基于单片机平台,接受传感器检测和数码管显示技术,主要用于中小型城市的车位管理问题“供应信息显示功能“传感器检测停车位是否有车辆,并将信息刚好传送到显示屏:显示屏将传感器传送的信息通过屏器显示出来,为车主供应最新的车位信息,便利车主停车。3 .主要参考资料1张剑平,智能化检测系统及仪器国.其次版,北京:国防工业出版社,2009.7.2冯博琴,吴宁.微型计算机原理与接口技术第三版M.清华高校出版社,2011.3李广弟,堆片机基础M.北京航天航空高校出版社,2005.4郭天翔.51单片机C语言教程M,电子工业出版社,2008.4.进度支配设计(论文)各阶段名称起止日期1检索相关文献,熟识课趣背景、任务,撰写开题报告:2月20日3月10日2驾驭远程无线限制的原理以及相关技术在国内、外的发呈现状及趋势:提出可行的设计方案:3月10日4月01日3对帔件电路和相关软件进行设计:通过仿真软件和设计的软、饿件模块进行仿真试验和相关软、硬件试脸:4月01日5月01日4依据仿真和相关测试结果对系统进行改进,并进一步优化和完善测试系统:5月01日5月20日5撰写毕业设计论文,进行论文答辩5月20日6月15日停车场车位远程监控与显示系统设计摘要本文主要是介绍利用51单片机和外围传感器模块完成停车场车位统计并加以显示的设计。设计的主要目的是能够简沾直观地一日J'然地看到停车场剩余车位数目,使司机能够快速知道车库的剩余车位数目,便利司机驾车进出车库,避开了车库门口的拥堵现象。该设计利用STC89C51或AT89C51堆片机作主控芯片,协作高精准度的光敏传感器模块进行车辆识别,再利用单片机C编程语言设计出基本功能并与实际相结合。本文设计能够实现以下三大功能:第一,精的确现对剩余车位数的统计;其次,实现伶车场出口与入口间的通信;第三,它可以精确辨别进出的物体是否为车辆。关健词:停车场剩余车位,远程监控,光敏传感器,51单片机,Parking1.otparkingremotemonitoringanddisp1.aysystemdesigningAbstractThisartic1.eismain1.ytoin1.r<1.uccusingthe51MCUandpcriphe111.sensormo<1.u1.ctocomp1.etethedesignofparkingspacesanddisp1.aysstatistics.Themainpurposeofthedesignissimp1.yandintuitive1.y,Ieitingdrivers(obeab1.eoseec1.ear1.ythenumberofremainingparkingspaces,whichcana1.1.owthedriversknowthenumberoftheremainingparkinggaragequick1.y.So.itiseasyfordriverstodriveinoroutofthegarage,thegaragedoortoavoidthecongestion.Thedesignacknow1.edgesSTC89C51orAT89C51microcontro1.1.erasthemasterchip,withtheuseofhighaccuracyphotosensorvehic1.eidentificationmodu1.e.Microcontro1.1.erCprogramming1.anguagecandesignthebasicfunctionsanddesigncombinedwithrea1.ity.Thisdesigncanachievethefo1.1.owingthreefunctions:first,itcanachieveaccuratestatisticsonthenumberofremainingspaces;Second,itcanachievecommunicationbetweentheparking1.otCXiIuSandentrance;Third,itcanaccurate1.ydistinguishwhatthingsispassingbybetweentheobjectandthevehic1.e.Keywords:T1.ienumberoftheremainingparkinggarage.Remotemonitoring,Photosensor,C51MCU1绪论O1.1.问寇的提出O1.2 探讨的背景与意义O1.3 国内外探讨进展O1.4 主要实现的功能12车位监控系统硬件电路介绍12.1 系统概述12.2 单片机的介绍22.2.1单片机概述22.2.2AT89C51的片机32.2.3AT89C51堆片机最小系统42.3车辆检测模块的介绍52. 3.1车辆检测的光敏传感渊模块53. 3.2光敏传感器模块硬件电路62.4 显示模块72. 4.1数码管的介绍73. 4.21.ED数码管的驱动方式84. 4.3数码管与单片机的连接92.5 出入口间的通信模块93车位监控系统软件的设计113.1 汇编语言与C语言113.2 编程工具Kei1.的介绍123.3 软件程序的组成163.4 部分程序介绍173.4.1 4.1程序中引脚的定义173.4.2 定时器初始化函数183.4.3 数码管显示程序的设计183.4.4 4.4车辆检测程序的设计193.4.5 NRF241.01无线模块程序的编写203.4.6 系统的主函数244结论与展望265总结27参考文献28致谢29附录A:电路图29附录B:系统程序301绪论1.1 问题的提出近年来,随着经济建设的快速发展,汽车带给人们欢乐的同时也带来了,越来越突出的难题:城市交通问题日益严峻,停车问题接踵而至,一个不到10平方米的停车位,奉动着社会的“神经”,停车场车位不足的问题越来越突出。目前,有偿运用停车场是这个问时最为有效的解决方式,这就使得停车场管理的重要性越来越受到重视.然而目前的大部分停乍场管理系统都是实行人工判别车型、人工放行以及人工引导车辆入库等比较传统的管理模式,这在很大程度上制约着城市的发展。1.2 探讨的背景与意义车辆数目的日益暴涨,使得司机找到一个空车位停放车辆成了难题,某些大型停车场都实行进场刷卡制度,因此比较荷洁实现该停车场空车位的自动统计和显示。但是对于大多数没有刷卡设备、甚至是有多个停车场且总占地面积较大的单位或企业,例如高校、企业园区等,司机们想要快速地找到一个空车位是件困难的事。因此,我们想针对上述的状况,开发一套能够监测停车场空闲车位并远程显示的装置,使得司机在进入校内(或厂区)的时候,能对校内(或厂区)里停车场的空闱车位数目一目了然,达到快速,合理地选择停车地点的目的.1.3 国内外探讨进展随着科技的进步,停车场管理系统的功能也渐渐完善。现代停车场最明显的特点就是智能化,它接受很多先进的工艺及材料。目前,国外停车场已经基本完成了自动化,不须要人工干预。已经用先进的非接触类型的收费方式取代了接触读写类型的收费方式。国外停车场设备粘良,接受商科技提高产品质量,系统牢靠性已经相当高。不须要人工计费收镀是国外停车场的一个显著特点。国外停车场系统居多都具备泊车位引导系统、车位报警系统,以及车位杳询系统,管理系统特别先进。有些停车场收费系统能够干脆联网,能在一个区域里随意查询车位,能在区域内任何一个停车场随意停车。这种新型系统是网络给人们生活带来的便利之一。但是,此类停车场管理系统价格昂货、技术困难、维护成本较高。近年来,在国内私家车快速增长的情形下,一些大里城市面临“车多位少”的逆境,迫使很多车主把车干脆停在道路上,这一方面影响交通畅通,带来交通平安隐患;另一方面也不利于车辆的管理,车辆简洁被破坏或被偷盗,给车主带来财产损失。与此同时,随着城市停车场规模也日益大型化,加之服务车辆繁杂,人工管理的效率和牢靠性己难以满意其在管理上提出的要求,此时,运用监控、诱导、路闸等手段实现车辆的智能化管理应运而生。国内停车场管理系统已经从最早的引进向自主研发阶段迈进。在这过程中应用了很多国外先进的科技和理念。很多停车场管理系统已经在国内自主研发和生产,基本上跟上了国际上的先进步伐。但是,某些核心技术仍是国外厂商的专利。目前,国内停车场管理系统厂商普遍面临的两大问题:如何提高停车场管理系统的设备水平,以及如何提高停车场管理系统核心技术的研发水平。远距离射频电子标签、非接触式IC卡、车辆图像识等技术已广泛被国内厂商应用。1. 4主要实现的功能本论文介绍r一种停车场监控系统模型。它不但能在随意时间内,依据停车场出入口进出车辆的数目,精确地统计能够停岸车辆的空闲车位数量,并且运用便利、自动而牢靠.而且能够避开停车场入口处及出口处的交通堵塞现象,同时还能满意运用者和管理齐对停车场效率、平安、性能以及管理上的须要,不会造成大量资源的流失。2车位监控系统硬件电路介绍2.1系统概述本系统包括:传感器模块、电源模块、限制计数模块、数码管显示模块等。它可以实现显示当前除车场内车辆的数目及状态以及剩余车位数等功能。系统框图如图2.1所示:图2.1系统框图具体施行方案如下:我们接受AT89C51型号单片机作为主限制版,完成数据的处理以及限制各个外围模块,通信部分我们可以接受MRF241.01无线模块加以实现,为了便于模拟我们接受共阳微数码管作为车位数量:的显示装置:接受激光协作光敏传感器作为车辆感知模块,当有车辆进出时,空闲车位数目会在此基础上加一减一,以此完成对车库剩余车位的统计。检测措施为:将两个点状激光头、两个红外传感器,间隔肯定的距离,安装于停车场入口处,当有车辆进出停车场时,传感器即可感知到车量是出还是人,并将数据通过安放在出1.处的NR1.:241.OI无线模块发送给安放在进口处的NRF241.O1.无线模块.进口处无线模块又与单片机相连接。这样,进口处的单片机收到数据后,会在原有的空闹车位数上增一或减一,并将数据传送至显示处,通过数码管显示装置实时显示当前的空闲车位状况一2. 2单片机的介绍2.2.1 单片机概述堆片机(Sing1.echipmicrocomputer)是一种集成电路芯片,是接受超大规模集成电路技术把具有数据处理实力的中心处理器CPU、随机存储器RAM、只读存储器ROV、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽谢制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计兑机系统。单片机的应用相当广泛。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机.手机、电话、计算、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。2.2.2 AT89C51单片机AT89C51是美国ATNE1.公司生产的低电压,高性能的CM0S8位单片机片内4Kbytes的可反应擦写的只读程序存储器(PEROM)和128bytes的随机存偌器(RAM),潺件接受ATyE1.公司的高密度、非易失存储技术生产,兼容标准VCS-51指令系统,片内置通用8位中心处理器(CPU)和F1.aSh存储单元,功能强大。AT89C51单片机可为你供应很多高性价的应用场合,可敏捷的应用于各种限制领域。如卜图2.2所示为八18孔51各引脚的封装图。图2.2单片机ATS9C51AT89C51供应以F标产品指令系统的全兼容,存:储器,128字节内部线,两个16位定时/计数断结构,一个全双工串行器刚好钟电路.同时,TnTnTmTPTnTT734-21.o%BR2fosBAM5.03-二二一二T二二一二一二1.一s1.1.MI”MI”;:1.es1.£”A2Q准功能:与MCS-514k字节F1.ash闪速RAM.32个I/O11器,一个5向量中通信口,片内微荡AT89C51可降至OHZ的静态逻辑操作,并支持两种软件的可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数涔,串行通信口及中断系统接着工作。掉电方式保存RN1.中的内容,但震荡器停止工作并禁止全部部件工作直到下一个硬件更位。2.2.3 AT89C51单片机,小系统对51系列单片机来说,最小系统般应当包括:单片机、时钟电路、发位电路、输入/输出设备.如卜图2.3所示。复位电路输入输出设备单片机电源时钟电路图2.3单片机最小系统框图=-三i三3二=3图2.451系列球片机最小系统卜.面就图2.4所示的单片机最小系统各部分电路进行具体说明。1 .时钟电路XTA1.1.和XTA1.2是独立的输入和输出反相放大器,它们可以被配置为运用石英晶振的片内振荡器,或者是器件干脆由外部时钟驱动。图2.4中接受的是内时钟模式,即接受利用芯片内部的振荡电路,在XTM1、XT1.2的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡.2 .复位电路在单片机系统中,复位电路是特别关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就须要进行更位。MCS-51系列单片机的麓位引脚RST(第9引脚)出现2个机器周期以上的高电平常,单片机就执行豆位操作。假如RST持续为高电平,单片机就处于循环且位状态。曳位操作通常有两种基本形式:上电自动笑位和开关熨位.图2.4中所示的划位电路就包括J'这两种复位方式,上电瞬间,电容两端电压不能突变,此时电容的负极和RESET相连,电压全部加在了电眼上,RESET(第9引脚)的输入为高,芯片被织位.随之VCC给电容充电,电阻上的电网渐渐减小,最终约等于0,芯片正常工作。并联在电容的两端为宓位按键,当复位按键没仃被按下的时候电路实现上电第位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动比位的效果。一股来说,只要RST管脚上保持IOms以上的高电平,就能使堆片机有效的更位。3 .EA/VPP的功能和接法51单片机的EA/VPP(31脚)是内部和外部程序存储涔的选择管脚。当EA保持高电平常,单片机访问内部程序存储器:当ER保持低电平常,则不管是否有内部程序存储器,只访问外部存储器。对于现今的绝大部分单片机来说,其内部的程序存储器(一般为f1.ash)容量都很大,因此基本上不须要外接程序存储器,而是干脆运用内部的存储器.在本试验套件中,EA管脚接到/VCC上,只运用内部的程序存储器.4 .PO外接上拉电阻51单片机的P0口为开漏输出,内部无上拉电阻故在当做一般I/O输出数据时,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必需外接上拉电网。2.3车辆检测模块的介绍为了精确辨别出进出的物体以及统计车库剩余车位数目,车辆进出口的检测我接受点状激光头协作光板传感器模块感知车辆的进出。现介绍光板传感器模块。2.3.1车辆检测的光轴传感器模块中蓝以检周环亮度强敏度图色数字电位器调整)3 .工作电压3.3V-5V4 .输出形式:a模拟量电压输出b数字开关量输出(0和D5 .设有固定螺栓孔,便利安装.6 .小板PCB尺寸:3cm*1.6cm7 .电源指示灯(红色)和数字开关量输出指示灯(绿色)8 .比较器接受1.M393芯片,工作稳定9 .小板接口说明(4线制)VCC外接3.3V5Y电压GND外接GND【)0数字量输出接口(0和1)AO模拟量输出接口10 3.2光敏传感号模块硬件电路本次设计选取的光敏传感器模块做工精细,工作稳定。图中给出光敏传感器模块内部硬件电路图,其中1.M393是双电压比较涔集成电路,工作电源电压范围宽,输出与TT1.DT1.MOS,CMOS等兼容,输出也可以用开路集电极连接“或”门。如卜图2.5所示。图2.5光敏传感器模块硬件电路图当传感器模块选择DO(数字量输出)时,DO引脚可干脆与单片机1/0口相连接,通过雌片机来检测凹凸电平,由此来检测环境的光强变更。模块在无光条件或者光强达不到设定阈值时,non输出高电平,当外界环境光强超过设定阙值时,模块no输出低电平。2.4 显示模块2.4.1 数码管的介绍基于便利、节约的原则,显示模块接受的是数码管显示。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多个发光二极管单元(多一个小数点显示),其他的基本相同:按能显示多少个“8”可分为1位、2位、4位等等数码管:按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。我们最常用的是七段式和八段式1.ED数码管。所谓的八段就是指数码管里有八个小1.ED发光二极管,通过限制不同的1.ED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个1.ED的阴极连在一起,让其接地,这样给任何一个1.ED的另一端裔电平,它便能点亮。而共阳极就是将八个1.ED的阳极连在一起。其原理图如下图2.6所示。IrniIh引脚图共阴极共阳极图2.6数码管内部结构图中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共附数码管将其接正5伏电源。一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,ej,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位.所以假如想让数码管显示数字0,那么共阴数码管的字符编码为OOI1.u1.1,即0x3f:共阳数码管的字符编码为UOOOOo0,即OXC0。可以看出两个编码的各位正好相反。.因此,共阳、共阳极的数码管0f的段编码分别如下:(0xc0,Oxf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,Oxa1.,0x86,0x8e:共阳极Od数码管编码0x3f,0x06,0x5b,Ox1.f10x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;共阴极0-f数码管编码2.4.2 1.ED数码管的驱动方式数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此依据数码管的驱动方式的不同,可以分为净态式和动态式两类。静态显示驱动:静态驱动也称直流驱动.静态驱动是指每个数科管的每一个段码都由一个单片机的I/O湍口进行驱动,或者运用如BCD码二-十进制译码器译码进行驱动.静态驱动的优点是编程简沽,显示亮度高,缺点是占用1/0端口多,如驱动5个数码管静态显示则须要5X8=40根I/O端口来驱动,要知道个89S51单片机可用的I/O端口才32个),实际应用时必需增加译码驱动器进行驱动,增加了硬件电路的困难性。动态显示出动:数码管动态显示接口是堆片机中应用最为广泛的一种显示方式之一,动态出动是将全部数码管的8个显示笔划"a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通限制电路,位选通由各自独立的1/0线限制,当单片机输出字形码时,全部数码管都接收到相同的字形码,但原委是那个数码管会显示出字形,取决于单片机对位选通COM端电路的限制,所以我们只要将须要显示的数码管的选通限制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮番限制各个数码管的的CoM端,就使各个数码管轮番受控显示,这就是动态驱动.在轮番显示过程中,每位数码管的点亮时间为12ms,由于人的视觉留留现象及发光二极管的余辉效应,尽管事实上各位数码管并非同时点亮,但只要扫描的速度足筋快,给人的印象就是一组稳定的显示数据,不会有闪耀感,动态显示的效果和静态显示是一样的,能够节约大量的I/O端口,而且功耗更低。在本次设计中接受的是动态显示驱动数码管的方式。2.4.3 数码管与单片机的连接数码管选取的是4位共阳极八段式数码管。两个74HC573锁存器IO口接PO.0-P0.7.对应原理图上Do-D7。当锁存使能端1.E为高时,这些器件的锁存对于数据是透亮的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存,以此驱动数码管,支持动态扫描,数码管的段adp接74HC573-1芯片,对应原理图上XO-X7。数码管的位Y0Y3对应74HC573-2芯片。段选信号接74HC573-1芯片,对应接堆片机IO口P2.6,位选信号接74HC573-2芯片,对应接单片机IO口P2.7.与堆片机的连接如F图2.7所示。图2.7数码管与单片机的连接2.5 出入口间的通信模块为了实现远距离监控,通信模块选取的是NRF241.01无线模块NRF241.O1.是由NORD1.C生产的工作在2.4GHZ-2.5GHZ的ISM频段的维片无线收发器芯片。无线收发器包括:频率发生器、增加型“SchockBurs1.”模式限制器、功率放大器、晶体振荡器、调制器和解调器。输出功率频道选择和协议的设置可以通过SP1.接口进行设置。NRF241.OI含有六个引脚,几乎可以干脆连接到各种单片机芯片,并完成无线数据传送工作。其与51第片机的连接如下图2.9所示。o图2.8NRF241.01与单片机的连接整个系统数据接收显示端的硬件电路图见附录A。3车位监控系统软件的设计3.1 汇编语言与C语言汇编语言曾经是单片机工程师进行软件开发的唯选择。作为单片机初学者必须驾驭汇编语言的基本设计方法,因为汇编语言干脆操作计算机的硬件,学习汇编语言对于了解单片机的硬件构造是有帮助的。但汇编语言程序的可读性和可移植性较差,接受汇编语言编写单片机应用程序的周期长,而且调试和排错也比较困难。为了提高编制计算机系统和应用程序的效率,改善程序的可读性和可移植性,最好的方法是接受高级语言编程。目前你,C语言渐渐成为国内外开发堆片机的主流语言。C语言是一种通用的编译型结构化计算机程序设计语言,兼顾了多种高级语言的特点,并具备汇编语言的功能。它支持当前程序设计中广泛接受的由顶向下的结构化程序设计技术.一般的高级语言难以实现汇编语言对手计克机硬件干脆进行操作(如对内存地址的操作、移位操作等)的功能,而C语言既具有一般高级语言的特点,又能干脆对计算机的俊件进行操作.C语言有功能丰富的库函数,运算速度快、编程效率高,并口接受C语言编写的程序能够很简洁地再不同类型的计算机之间进行移植。因此,C语言的应用范围越来越广泛。用C语言来编写目标系统软件,会大大缩短开发周期,I1.明显增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。因此,用C语言进行单片机程序设计是单片机开发与应用的必定趋势。对汇编语言驾驭到只要可以读懂程序,在时间要求比较严格的模块中进行程序的优化即可。接受C语言也不必对舱片机和硬件接口的结构有很深化的了解,编译裾可以自动完成变量存储单元的安排,编程者就可以专注于应用软件部分的设计,大大加快了软件的开发速度。采用C语言可以很简洁地进行单片机的程序移植工作,有利于产品中的单片机道新选型。依据C语言模块化程序结构的特点,可以使程序模块大家共享,不断丰宓。根据C语言可读性的特点,使大家更简洁借鉴前人的开发阅历,提高自己的软件设计水平。接受C语言,可针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块、算法等编制相应的函数。这些函数经过归纳整理可形成专家库函数,供广阔单片机爱好者运用完善,这样可大大提高国内单片机软件设计水平.过去长时间困扰人们的“高级语言产生代码太长,运行速度太慢,不适合单片机运用”的致命缺点已被大大地克服.目前,51系列单片机的C语言代码长度在未加入人工优化的条件下,已经做到f最优汇编程序水平的1.21.5倍.可以说,已超过中等程序员的水平。51系列单片机中,片上ROM空间做到32KB/64KB的比比皆是,代码效率所差的10V20%已经不是重要问题。关于执行速度的问题,只要有好的仿真器帮助,用人工优化关键代码就是很简洁的事了。至于开发速度、软件质量、结构严遂、程序坚实等方面,C语言的完备绝非是汇编语言所能比拟的。3.2 编程工具Kei1.的介绍Kei1.C51是美国Kei1.SOfbrare公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用.Kei1.供应了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UViSiOn)将这些部分组合在一起。运行Kei1.软件须要W1.N98、NT,W1.M2000、W1.NXP等操作系统.假如运用C语言编程,那么Kei1.几乎就是你的不二之选,即使不运用C语言而仅用汇编语言编程,其便利易用的集成环境、强大的软件仿真调试工具也会使得设计事半功倍。1 .编辑器和调试器源代码编辑落uVision4编辑器包含用户常用到的全部特性,语法彩色显像和文件识别都对C源代码进行和优化,可以在编辑器内调试程序,它能供应一种自然的调试环境,使你更快速地检查和修改程序。调试器UVision1.源代码级调试器是一个志向、快速牢线的程序调试器。调试器包含一个高速模拟器,可以模拟整个8051系统,包括片上外围罂件和外部硬件。当你从器件库中选择器件时,这个器件的特性将自动配置。2 .C51编译器Kei1.UViSion4编译器在语言上的扩展功能为用户运用软件资源供应便利,对于8051系列资源C51编译器都可以进行操作。Sfr和Sbit两个关键字对SFR实行存取.变量可转移到随意地址空间,变址还可以通过关键字一at一放入固定的存储器中,存储模式确定了变量的存储类型.KCi1.UYiSion4的编译器和高性能仿真器,支持应用程序的调试。软件界面如图图3.1KEI1.C51软件界面3,软件开发流程(1)点击Project工程下面的菜单,选择弹出对话框中的NCWProject,如图3.2所示。在弹出的文件对话窗口中输入程序项口名称,“保存”后的文件扩展名为uv4,这是KEI1.Vision1.项目文件的扩展名,以后可以干脆点击此文件以打开以前做的项目。(2)选择符合要求的单片机,Atem1.公司的AT89C51。(3)编写程序,首先要在项目中创建新的程序文件.(4)保存新建的程序,把第一个程序命名为xxxc,保存在之前的书目下,假如程序颜色不同,说明语法合理。在屏幕左侧的SourceGroup1.文件夹图标上右击弹出菜单,在这里可以做在项目中增加削减文件等操作。选择wAddFiIetoGroup4SourceGroupI'”选项,弹出文件窗口,选择刚刚已经保存的文件,单击DD按钮,关闭文件窗口,程序文件被加到项目中。这时在SOUrCeGrOUP1.文件夹图标左边出现了个小+号说明,文件组中有了文件,点击它可以绽开查看。如图3.3所示。Fi1.eEditVevProjectF1.ashDebugPeriphera1.sToo1.sSVCSWindowHe1.pNewVisonProject.Projectm1.iTarget1自TSource因STARE国DigitMinQnNewMutthPfOjertWorkspace-OpenProject.£1.oseProjectExportManageSe1.ectDeviceforTargetTargetV.RemoveftemOptionsforTargetTarget1,.Art*F7图3.2创建文件ra<1Ofi<A*forQrOMpsourceOfOup1'.STARTVMarQComponents.QpenF1.eOpenytFi1.eOpenbMpteBt>51.da1.1.targtf*1.*fiui1.dtargetT<11*at<P1.Mopbyi1.tfEeMV*wRrojeciFatRt>ugPefipKerAit100KSVCS*cdowHeIPf-1Ter<1向-ShowtQ<iudFi1.eDpndrc*山AIICIGfOMp.AdtfFMetoGroup,SourceGroup一RemoteGroupSourceGroup1and,"FMC图3.3添加程序(5)C程序文件已加项目中,在进行编译运行.如图3.4所示,图中左边的按钮用于编译单个文件,中间的用F编译当前项目,假如编译过的文件没有改动过.不会出现重新编译,右边的按钮用于重新编译。(6)进入调试模式,软件窗口样式如图3.5所示。打开调试对话框,从这个对话框可以看到芯片的串行口输入输出的字符,可以在这里看运行结果。要停止运行程序回到编辑模式中,可先按停止按钮再按开启关闭调试模式按钮。Q.J1.-5图3.5词试程序(7)生成HEX文件,打开书H,找到项F1.文件,然后右击项目的文件夹,在弹出的菜单中,选择OP1.iOnSforTarget'Targei1.'选项,在弹出的设置窗口中选择项目文件夹图标,打开项目选项窗口,转到如图3.6所示的Output选项页,可以选择编译输出的路径和设置编译输诞生成的文件名,要选择创建HEX文件,选好后再将它重新编译一次。图3.6生成IIEX文件3.3软件程序的组成系统中为了使得各硬件之间能够正常通信,正确运行,有效地完成检测、传输、显示等基本功能,除了要有合理的硬件设计外,高明量的软件支持也是必不行少的。个堆片机系统的执行效率,工作稳定性与其软件的设计亲密相关,软件设计的好与坏干脆影响系统的整体运行效果。本设计的程序由两大部分组成,一是检测部分程序,二是显示部分程序。检测部分的程序主要功能是单片机限制传感器实现对进出车辆的计数,无线的数据传送,当单片机接收到传感器发送来的信息后执行车位加减或者保持等待状态等一系列的操作。显示程序主要是两位八段数码管的显示,即数码管将单片机发送过来的信息显示出来。本设计中,各种功能都是通过调用子程序来实现。各个中断服务程序都特别短小,功能不同是通过一些标记位供主程序进行推断,跳转.这样的设计是因为在运用中断的程序中,中断服务程序假如过长,执行时间太久,会影响到其他中断服务的运行,造成系统反应迟钝等不良现象,所以我们在设计程序时尽量避开CPU长时间停留在中断服务程序的运算中。运用中断也可以有效的提高系统的工作效率。3. 4部分程序介绍3.1.1 程序中引脚的定义系统的主要功能上面已经具体介绍/,这里主要介绍软件的设计方法及设计流程。主机的限制核心是AT89C51;AT89C51供应以下功能:1. 4kByteSFIaSh片内程序存储器;2. 128bytes的随机存取数据存储器(RAM);3. 32个外部双向输入/输出("0口;4. 2个中断优先级、2层中断嵌套中断:5. 5个中断源;6. 2个16位可编程定时器/计数器:7. 2个全双工串行通信”:引脚定义:8. 片内振荡器和时钟电路:9. 与MS-51兼容:10. 全静态工作:OHZ-33MHz:I1.:级程序存储器保密锁定:12. 可编程串行通道:引脚定义:Sbitrk1.=P2*0;Sbitrk2=P2;入口处传感器Sbitck1.=P2'2:Sbitck2=P23;/出口处传感器sbi1.CE=P1.4;/ChipEnab1.epinsigna1.(output)sbi1.CSN=P33:/S1.aveSe1.ectpin.(outputtoCSN,nRI241.01)sbitSCK=P1.6;/Interruptsigna1.,from11RF241.O1(input)sbitMOS1.P1.5;/MasterIn,S1.aveOutpin(input)sbitMISO=P1.7;/Seria1.C1.ockpin,(output)sbitIRQ=P1.3;/MasterOut,S1.aveInpin(output)sbitdu1.a=P26;/数码管段选信号的锁存器限制sbitWe1.a=P2'7;/