出租车计费设计.doc

基于AT89S51单片机的出租车计费设计的设计

收藏

压缩包内文档预览:(预览前20页/共45页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:6699539    类型:共享资源    大小:759.74KB    格式:RAR    上传时间:2017-12-19 上传人:专业****设计 IP属地:江苏
30
积分
关 键 词:
定做请加QQ: 1060741974 参考网站 http://www.bysj360.com/ http://www.bylw520.net/ http://www.bysj360.com/cat.asp?id=25
资源描述:
基于AT89S51单片机的出租车计费设计的设计,定做请加QQ:,1060741974, ,参考网站 ,/, ,/, ,/cat.asp?id=25
内容简介:
摘要I摘要本系统电源电压为+16V,速度传感器具有汽车每运行1提供1000个脉冲信号的特性。显示器可以采用LED数码管。系统采用单片机和FPGA的结合进行系统的主体设计,测控FPGA芯片通过采集传感器脉冲信号WCLK进行里程计算,里程计费,利用外部脉冲信号SCLK产生标准时钟信号,以计算等待时间,等待费用,并产生里程标志(LCBZ),等待标志(DDBZ),熄灯标志(XDBZ)等有关控制标志信号,同时根据单片机发出的开始信号(START),时段标志(SDBZ),传输数据选择(SEL)等控制信号将有关计算结果传送给FPGA芯片。单片机MCU除了完成键盘扫描,显示控制外,还通过P0口与FPGA进行数据交换,并向测控FPGA芯片发出有关控制信号。本设计方案利用单片机和FPGA的结合,发挥它们各自的长处,分工清晰,实际使用和操作符合大众逻辑,容易被人接受。而且,单片机丰富的I/O口和FPGA模块化的设计为系统功能的扩展提供了空间和便利。关键词计费系统,单片机,FPGA芯片IIABSTRACTThesystemsPowersupplyvoltageto+16V,thevelocitygeneratorhasthecharacteristicthatautoprovide1000pulsessignalseverytimewhilethetaximove1.TheLEDdigitaldisplaycanbeused.ThesystemadoptingmicrocontrollercombinatewithFPGAmakethesystemsmaindesign,themonitoringandcontrolFPGAchipthroughcollectionthepulsesignal(WCLK)fromsensor,formileagecalculation,mileagerates,useofastandardexternalpulsesignal(SCLK)clocksignalstocalculatewaitingtime,waitingcosts,andgeneratemileagesigns(LCBZ)awaitingsigns(DDBZ),XDBZsigns,andaccordingthestartsignal(START),sessionssigns(SDBZ),datatransmissionoptionssigns(SEL)generatbymicrocontrollerwillbetransmittedtotheFPGAchip.Inadditiontothecompletionandtheothercontrolsignalsofkeyboardscanningcontrolthedisplay,microcontroller(MCU)alsothroughtheport(P0)toexchangedatawithFPGA,andmonitoringFPGAchipbythecontrolsignal.ThedesigncombinatstheFPGAandmicrocontrollerintegratedtoplaytheirrespectivestrengths,itscleardivisionoffunction,theactualusedandtheoperationadoptingthepubliclogicandcanbeeasilyaccepted,Moreover,themicrotrollerisrichinI/OportandthemodulardesignoftheFPGAfortheexpansionofsystemfuctionsprovidemuchmorespaceandfacilities.KeywordsThecostssystem,Microcontroller,theFPGAchip目录目录摘要.IABSTRACT.II1绪论.12系统设计.22.1系统组成.22.1.1计费及显示.22.1.2时钟及显示.22.1.3计费开始提示.32.2功能模块设计.33硬件及软件实现.53.1传感器.63.1.1光电传感器电路设计.63.1.2车轮光电开关检测电路.73.2单片机.73.2.18051单片机功能方块图.83.2.2AT89S51单片机简介.113.2.3AT89S5l与51系列单片机相比具有如下特点.123.2.489S51的内部框图.123.2.5中断控制.153.2.6单片机控制程序设计.163.2.7单片机汇编语言源程序.203.3显示及按键控制系统.353.3.1LED数码管.353.3.2数据显示电路的设计.364系统检测及分析.564.1系统仿真/硬件验证.564.1.1系统的调试方法.564.1.2系统的硬件验证.564.2设计技巧分析.57结论.59II附录A:FPGA芯片引脚.60附录B:总体电路图.61参考文献.62致谢.631绪论11绪论出租车是现代人类的重要交通工具,而出租车的计费系统的安全性和先进性是人们普遍关心的问题,要求计费器性能稳定,计费准确,以及预防司机作弊行为等等都关系到乘客的切身利益。因此,设计出符合人们普遍要求及放心的产品具有重要的意义。同时,设计该系统所应用的知识涉及范围广,通过设计可以牢固掌握所学理论知识,对电子信息工程专业的就业方向有初步认识,将理论与实际有机联系起来。应该是对以前所学知识的一次审核吧!本设计主要介绍了出租车计费系统的设计思路和过程,并给出了所涉及的相关知识的详细介绍。EDA技术应用,单片机的功能及应用,传感器检测技术,VHDL编程语言及汇编语言程序,显示系统设计及按键控制,等等。第一部分为绪论,第二部分为方案论证,第三部分为系统设计,第四部分是硬件及软件实现,第五部分系统检测及分析,第六部分是结论,第七部分是附录,第八部分是参考文献,第九部分是致谢.目前,普遍的出租车计费器仅仅具有时钟,起步价,里程计费,等待计费及显示几个功能。其发展前景是可观的,将来的产品除具有这些功能外,另外还可增加如下功能:防作弊功能,IC卡付费:顾客能在制定点购买一定额度的“顾客IC卡”,乘车后可用IC卡付帐,付帐是否成功有相应的提示。车主可定期将总营业额写入“车主IC卡”中,并据此IC卡向所属公司领取报酬。车票资料打印:顾客付费后可打印发票,打印内容包括车主信息和车费信息等。可打印车主总营业额信息。语音播报:当乘客上车时,可自动问候乘客,当到达目的地,自动播报乘车费用并礼貌再见,表达希望下次乘坐的意思。增加的这些功能将会更好地为乘客服务。本系统设计也可应用于其他计费系统中,如电脑计费系统等等,其应用技术也有相当范围的应用面,如显示和播报部分也可应用于智能饭卡智能电动车机器人等电子相关产品中。可见掌握了该系统的设计和分析可实现对电子专业知识的具体应用,增强理论联系实际的能力。除此以外,所涉及的知识面也联系到现实生活中很多相关电子产品,也将对其他电子产品有一定理论基础。3系统设计23系统设计3.1系统组成其中系统电源电压为+16V。速度传感器不需要进行设计,假设它具有汽车每运行1提供1000个脉冲信号的特性。显示器采用LED数码管。具体功能要求如下:速度传感器电路主板汽车电瓶+9+16VV空车指示牌显示器LED/LCD/DC/DC(+5V)图3.1系统方框图3.1.1计费及显示里程,即汽车行程里程,用四位数字显示,显示方式为“XXX.X”,单位为,精确到0.1。单价,即里程单价,用三位数字显示,显示方式为“X.XX”,单价为元/,根据每天不同的时间段有两种情况:当时间段为06:0023:00时单价为1.4元/,其他时间段内单价为1.80元/。等候时间,用四位数字显示分钟和秒,显示方式为“XX:XX”,等候的定义是:当汽车行驶速度小于或等于12/h时为“等候”。在等候时间大于1小时的情况下,可以不显示等候时间,但必须对等候时间进行统计计算。等候单价,等候单价有两种情况:在等候时间小于1小时的情况下,等候单价为1元每5分钟;在等候时间大于1小时的情况下,等候单价为20元每小时。费用的计算,出租车的起价为5.00元,当里程小于2时,按起价计算费用;当里程大于2时按下式计算费用:费用=里程*里程单价+等候时间*等候单价。费用的显示,用五位数字显示,显示方式为“XXX.XX”,单价为元。3.1.2时钟及显示当出租车在通常运行状态下,应能显示当前的时间,在汽车熄火的情况下,时钟必须正常运行,但是可以不显示时钟.33.1.3计费开始提示当出租车载上乘客并起步后,将空车指示牌扳倒时,空车指示牌里的指示灯熄灭,并有语音或灯光提示信号。传感器时钟信号DISPLAYP3.0-P3.1P0P2.2-P2.0P2.3P2.7P2.4P2.5P2.6RESETP1.0-P1.5MCUXDBZDDBZLCBZSTARTSDBZSELDATA复位FPGA83WCLKSCLK显示切换确定修改启动空车牌图3.2总体原理框图3.2功能模块设计根据系统的设计要求,将整个测控FPGA系统CZJFXT分为七个模块,它们分别是:分频器模块FPQ,等待判别模块DDPB,里程计算模块LCJS,里程计费模块LCJF,等待计时模块DDJS,等待计费模块DDJF,输出数据选择模块SCXZ。分频器模块FPQ:将外部时钟信号SCLK(设计时假设为1024HZ)经过适当分频后,产生1HZ的系统工作用基准时钟信号CLK1HZ,供给系统中的有关模块计时用。等待判别模块DDPB:根据速度传感器脉冲信号WCLK和分频器产生的基准时钟信号CLK1HZ,计算单位时间里WCLK的脉冲个数(每产生1000个脉冲信号,即每米产生1个脉冲信号),亦即出租车行驶速度,从而判别出租车是否处于等待状态,发出等待标志信号DDBZ。当速度大于12/H,即速度大于200M/MIN时,出租车处于运行状态,这时等待标志DDBZ=0;当速度小于等于12/H,即速度小于等于200M/MIN时,出租车处于等待状态,这时等待标志DDBZ=1。该模块的VHDL程序设计可分为三个进程:60S周期性跳变信号产生进程,每分钟行驶距离计算进程,等待标志判别进程。等待标志判别进程就是比较每分钟WCLK脉冲个数与等待状态WCLK脉冲临界个数200的大小,从而确定DDBZ的赋值。里程计算模块LCJS:根据速度传感器脉冲信号WCLK和等待标志DDBZ,对出租车行驶的里程数XSLC进行计算,同时发出里程标志信号LCBZ和里程计费标志信号JFBZ。如果LCBZ=1,说明行驶距离超过2,里程计费启动;如果3系统设计4LCBZ=0,说明没超过2,按起价计费,每行驶1应计费1次,并且计费的启动信号应是某一时刻,因此每行驶1,计费标志信号JFBZ应跳变1次。该模块的VHDL程序设计可分为两个进程:里程计算及标志产生进程,产生计费信号进程。产生计费信号进程就是每行驶10百米(即1)JFBZ由低电平0变为1,经过一个系统时钟周期后JFBZ又回复到低电平0,里程计费模块LCJF就是在JFBZ脉冲信号的上升沿到来时进行计费的加法操作。里程计费模块LCJF:在计费标志信号JFBZ,等待标志信号DDBZ,里程标志信号LCBZ和时段标志信号SDBZ等信号的控制下,计算行驶里程超过2以上里程的费用LCFY。该模块的VHDL程序是通过由多个条件控制的加法进程来完成里程计费的,里程计费的条件是在DDBZ=0,并且在JFBZ的上升沿根据SDBZ分别进行加法计费操作。当SDBZ=1时,表示在06:0023:00时段,其单价SD1为1.4元/;当SDBZ=0时,表示其他时段,其单价SD2为1.8元/。如果LCBZ=1,说明行驶距离超过2,里程计费启动;如果LCBZ=0,说明没超过2,按起价计费。等待计时模块DDJS:在等待标志信号DDBZ和基准时钟信号CLK1HZ的控制下,进行等待时间DDSJ的计算,其中DDSJ的低8位表示等待时间的秒数,DDSJ的高8位表示等待时间的分钟数,同时根据等待时间的长短发出一个熄灯标志信号XDBZ。当等待时间小于等于1小时,XDBZ=0,等待时间显示灯亮;当等待时间大于1小时,XDBZ=1,等待时间显示不亮。该模块的VHDL程序是通过一个多层嵌套的加法进程来完成等待计时的。等待计费模块DDJF:在等待标志信号DDBZ和熄灯标志信号XDBZ控制下,进行等待费用DDFY的计费操作。该模块的VHDL程序包括两个进程:60S周期性跳变信号产生进程,等待费用计算进程。等待费用计算的条件是在DDBZ=1并且在60S周期性跳变信号T60S的上升沿,根据XDBZ分别进行加法计费操作。当DDBZ=1且XDBZ=0时,按1元/5分钟,即20分/分钟计费;当DDBZ=0且XDBZ=1时,按20元/小时,即33分/分钟计费。输出数据选择模块SCXZ:根据单片机发出的数据传输选择控制信号SEL,选择有关计算处理结果传输给单片机。54硬件及软件实现4.1传感器传感器通常是指能感受并能按一定规律将所感受的被测非电量(包括物理量、化学量、生物量等)转换成便于处理与传输的电量(一般为电量,也有少数为其他物理量,如光信号)的器件或装置。光电传感器是把光信号转换为电信号的传感器,光电传感器的种类极多。它们共同的特点是响应速度快,易于实现非接触测量,非常适于与计算机接口。4.1.1光电传感器电路设计光电传感器工作时,大致应用了三种效应:通过光子与物质的相互作用能直接得到电信号的量子效应;光被物质吸收变成热量后,利用热电转换得到电信号的热效应;光作为一种电磁波,直接与物质相互作用,从而感应出电信号的波动相互作用效应。反射式光电传感器是用来检测黑白线条的,如图4.1.1(a)所示由于黑白物体的反射系数不同,利用反射光可以使光敏三极管实现导通和断开,调节传感器与被测对象之间的距离,使光敏三极管只能接受到白色物体反射回来的光束。而黑色物体的反射系数小,所反射回来的光束很弱,光敏三极管无法接受到反射光。从而实现对黑白线条的检测。还要在输出信号处加个控制电路,如图4.1.1(b)起隔离强信号和方波整形的作用.(a)4硬件及软件实现6(b)图4.1.1反射式光电传感器4.1.2车轮光电开关检测电路由于要测出出租车的运行速度,每1千米产生1000个脉冲信号并计算出单位时间里的脉冲个数,转换成车轮所转的圈数,即产生脉冲数的多少。在该设计中采用在车轮的转盘上安装一个3条黑白线均匀的圆盘,再用光电开关来检测,如下图4.1.2所示,当出租车运动时,车轮转动,光电传感器利用接收黑白电平时输出的高低电平,当光电传感器检测到黑色条纹时,输出高电平给单片机,相反当检测到白色条纹时输出低电平,从而把连续输出高低电平转化为脉冲数,也就把电机转动时带动有黑白线的圆盘黑白条数转换成脉冲数,从而测试出出租车运行速度。Optoisolator1U11KR111KR2+5传传传传传+5Text74HC14IOB2orIOB3图4.1.2光电检测电路用一张贴有黑色胶带的白纸,让光电传感器离纸不到5cm的平面上与胶带垂直经过,看计数是否与所经过的的胶带数目相等,若多次测试都是吻合的,则此光电传感器良好.4.2单片机单片机既是一个微型的计算机,它具有组成计算机系统的三个要素:CPU、4硬件及软件实现7内存与I/O。CPU:运算或逻辑上的判断;内存:存放程序与数据;I/O:与外界沟通的桥梁。图4.2.1单片机简图4.2.18051单片机功能方块图图4.2.28051单片机功能方块图振荡及时序单元(OSC):8051内部有晶体振荡电路,只要在外部加上石英振荡晶体,即可产生频率非常稳定的振荡信号,这个振荡信号正是8051的心脏,所有8051的时钟序列都以SERIALPORT4I/OPROTBUSCONTROLOSC振荡与时序CPU8051COREETC(TIMER2)TIMER1TIMER0ON-CHIPRAM128/(256)BytesON-CHIPPROGRAMMEMORY4K/(8K)INTERRUPTCONTROLINT1INT0EXTRNALINTERRUPTS指令分析中断系统统控制总线串行接口并行接口TXDRXDP0P2P1P3ROMRAMWRDPSENALECOUNTERINPUTS定时/计数器EAEXTRNALINTERRUPTSTIMER0TIMER1(TIMER2)SERIALCPU中央处理器Memory内存I/O输入/出设备4硬件及软件实现8此振荡信号为基准。内部数据存储器(DataMemory):当程序在运行时,有些数据是经常在变动的,例如LED的显示状态或显示值等,它会因I/O测量的结果而变动,这些值就暂时放置在此区域中,供其他程序进一步读取,这也代表此区域是可以随时读写的。8051系列的CPU提供128个字节可读写的数据存储单元,52系列的CPU则提供256个字节的数据存储单元,这个数据区域中有一段区域16个字节共128位是可以进行位寻址的,MCS51系列的CPU有相当强的位处理指令,可以妥善且有效地运用该数据存储器,使用方法将在8051的指令说明中再详述。内部程序存储器(Programmemory):这段区域用于存放我们的应用程序,而且这部分一经确认后是永远不做修改的。8051系列的CPU提供内部4096个字节(4KB)的程序存储器,8052系列的CPU则提供2倍即8192个字节(8KB)的程序存储器,而8031和8032则不含此单元。此单元可以使CPU选择由内部的程序区启动或由外部的程序区启动,内部的程序区启动具有保护功能,后者成本较为低廉。在8051系统中特地将程序区和数据区分隔开,两者最大的差异是后者可以读取和写入,简而言之,PROGRAMMEMORY就是ROM,DATAMEMORY则是RAM。定时/计数器(Timer/Counter):51系列的CPU有2个定时/计数器,而52系列CPU则有3个定时/计数器,每个定时/计数器又有多种模式可供选择。串行接口(SerialPort):8051可通过此接口与外部的计算机等设备连线交换信息,也可以通过此接口进行I/O的扩充。并行输入/出端口(ParelledI/O):不论是8051或8052单片机都有4个输入/出端口,总共有32个输入/出,而且每个点都可以单独定义成输入或输出。控制总线(BusControl):当程序的空间超出MSC51系列内存程序空间的限制时,会通过本单元的控制线路向外部送出地址线信号和控制信号,同时当程序执行MOVXDPTR,A指令时,代表对外部数据内存做写入的运行,此时也要靠本单元送出必要的控制信号,才能达成外部READ与WRITE的运行请求。8051运算处理单元(Core):这是整个单片机的控制处理核心,它读取程序码,经过计算及处理后,将结果送到各个寄存器或输入/输出端口上,并且接受内部和外部的中断信号,然后4硬件及软件实现9执行特定的中断服务程序。只要加入电源并且石英晶体开始运行后,本单元就一直不停地工作着,通常我们所谓的死机是指本单元跳入一个未知没有出口的循环中执行,而不是指CPU停止一切的运行,不再执行任何程序。累加器(Accumulator):累加器是众多寄存器中最重要的一个寄存器,通常以简写Acc代表累加器,8051的指令中有许多指令和Acc寄存器有关,也有多个指令非通过Acc不可,基本上,8051的指令中赋予Acc累加器的权限最大。Intel公司建议程序的执行尽量以Acc为主。B寄存器(BRegister):B寄存器是一个一般用途的工作寄存器,当8051使用乘除指令时,则一定要通过B寄存器来做运算。中断优先顺序控制寄存器(IPC,InterruptPriorityControl):这个寄存器中存放中断时的优先顺序表,若对应的位设成1时,代表中断有较高的中断优先权。允许中断控制寄存器(IEC,InterruptEnableControl):此寄存器内含系统允许中断的中断源设置值,8051共有5个中断可供选择,8052则有6个中断源,IEC寄存器内另有一个位简称位,若0时就禁止EA系统所有的中断要求。串行输出入缓冲寄存器(SBUF,SerialBuffer):所有待送出或刚进入的串行数据值都存放在此寄存器中,8051的串行通信是非常简单的,只要一设置完通信协议后,再执行一个MOVSBUF,A指令,就可立即将并行数据值转化成串行数据送到外部。串行通信控制寄存器(SCON,SerialControL或称UART):此寄存器主要在设置串行通信的模式,当串行数据已经送完或数据已收妥时,会有对应的位被设置成1,这些位也可以当成中断要求信号,请求CPU执行特定的串行中断服务程序。定时/计数控制寄存器(TCON,Timer/CounterControl):这个寄存器可以控制定时/计数器的打开或关闭,若一经打开且计数到溢位时,TCON上亦有对应的位被设成1,CPU必须针对此位的状态,决定是否重新设置定时/计数值。堆栈指标寄存器(SP,StackPointer):8051利用SP指引最近一次存入堆栈内的地址,每当我们在程序中调用其他子程序时,原程序的返回地址就会自动存入内部DATAMEMORY组成的堆栈(Stack)中,而当子程序执行到RET指令时,CPU会自动由堆栈中取回原先存入4硬件及软件实现10的返回地址,继续执行原程序。每当CPU将8位值存入堆栈时,我们称之为PUSH(推入),这时SP值会增加1,反之堆栈中取回8位值时,则称之为POP(提回),此时SP值会减少1。在写8051单片机的控制程序时,在程序起始状态阶段一定要设置SP值,以便程序有足够的堆栈空间,也可以利用软件程序随时机动调整的堆栈指标SP的值。特殊功能寄存器区(SFR,SpecialFunctionRegister)8051单片机内部将多个寄存器统称成SFR,代表其特定的功能,甚至Port0、Port1、Port3也都是属SFR的成员之一,在这些SFR中有部分的寄存器可以进行位寻址,表4.1是这些SFR寄存器的整理,其中加(*)记号的寄存器可进行位寻址。表4.1可进行位寻址的SFR寄存器SFR寄存器部分可进行位寻址的寄存器算术运算寄存器Acc(*)、B(*)、PSW(*)指标类寄存器SP、DPL、DPH并行输入/出端口P0(*)、P1(*)、P2(*)、P3(*)中断控制寄存器IP(*)、IE(*)定时/计数寄存器TMOD、TCON(*)、TL0、TH0、TL1、TH1串行通信寄存器SCON(*)、SBUF4.2.2AT89S51单片机简介AT89S5l是新型高档单片机。它的主要特性是:片内含有32KB的Flash程序存储器,擦写周期为1000次;片内数据存储器内含512字节的RAM;具有可编程32线I/O口(P0,P1,P2和P3口);具有3个可编程定时器T0,T1和T2;中断系统是具有8个中断源、6个中断矢量、2级中断优先权的中断结构;具有一个全双工UART串行口;低功耗工作方式为空闲模式和掉电模式;具有双数据指针DPTR0和DPTR1;具有3级程序锁定位;具有硬件看门狗定时器WDT;AT89S51工作电源为4.05.5V(AT89LV51RC为2.75.5V);AT89S51最高工作频率为33MHZ(AT89LV51RC为12MHZ);4硬件及软件实现11具有断电标志POF4.2.3AT89S5l与51系列单片机相比具有如下特点程序存储器由8KB增加到32KB;片内数据存储器由256宇节增加到512字节;数据指针由1个增加到2个;增加了看门狗定时器,CPU在执行程序过程中,由于瞬时的干扰使程序陷入死循环状态,WDT(WatchdogTimer)是使CPU摆脱这种困境而自动恢复的一种方法;退出掉电方式由单纯硬件复位方式增加到硬件复位和中断两种方式;新增加了断电标志POF4.2.489S51的内部框图振荡器和时钟电路CPU总线扩展控制器程序存储器(4KB)并行可编程I/O口中断控制可编程串行口两个16位定时器/计数器数据存储器(128字节)外时钟源外部事件计数图4.2.389S51的内部框图引脚排列及功能:AT89S51有3种封装形式:PDIPPLCC和TQFPPDIP封装的引脚排列如图所示。4硬件及软件实现12P1012P3145P167INT1I0T10X21RESTDWRVP/EAP0102P3045P067P2012P3245P267RXDTPSENPAL/AT89S51P1.0.1.2P31.4.5P61.71234567813215431198VCX29176398765432D012D3D671234256278A890A1213A415103029C10FR10kS3W_PBC30pFC130pFCRYSTAL12MX2X1P1.7P1.6S1W_BS2_BVCGNDGND图4.2.4单片机电路板口线P0口8位、漏极开路的双向1O口。当使用片外存储器及外扩IO口时,P0口作为低字节地址数据复用线。在编程时,P0口可用于接收指令代码宇节;在程序校验时,P0口可输出指令字节(这时需要加外部上拉电阻)。P0口也可作通用I/O口使用但需加上拉电阻变为准双向口。当作为普通输入时,应将输出锁存器置1PO口可驱动8个TTL负载P1口8位、准双向IO口,具有内部上拉电阻。P1口是为用户准备的1O双向口。在编程和校验时,可用做输入低8位地址。用做输入时,应先将输出锁存器置1P1口可驱动4个TTL负载。表4.2P1.0P1.1替代功能引脚替代功能说明P1.0T2定时器2的外部事件输入端;可编脉冲输出端P1.1T2EX定时器2的捕捉重装触发器输入端;定时器2的计数方向控制端4硬件及软件实现13P2口8位、准双向1O口具有内部上位电阻当使用片外存储器或外扩1O口时P2口输出高8位地址。在编程校验时P2口可接收高字节地址和某些控制信号。P2口也可作普通IO口使用。用做输入时,应先将输出锁存器置1P2口可驱动4个TTL负载。P3口8位、准双向1O口,具有内部上拉电阻。P3口可作为普通1O口。用做输入时,应先将输出锁存器置1在编程校验时P3口接收某些控制信号。它可驱动4个TTL负载。P3口还提供各种替代功能。表4.3P3口替代功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2Error!(外部中断0)P3.3Error!(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6Error!(外部数据存储器写选通)P3.7Error!(外部数据存储器读选通)控制信号线RST复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期(即24个晶振周期)以上的高电平,将器件复位。Error!VPP外部程序存储器访问允许信号EA(ExternalAccessEnable)。当Error!信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000HFFFFH;当Error!接地时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压(AT89C51的VPP为5V或12V;AT89LV51的VPP为12V)。在编程校验时,该引脚可接VCC。Error!片外程序存储器读选通信号用PSEN(ProgramStoreEnable),低电平有效在片外程序存储器取指令期间,当Error!有效时,程序存储器的内容被送至PO口(数据总线);在访问外部RAM时,Error!无效。AIE/Error!低字节地址锁存信号AlE(AddresslatchEnable)。在系统扩展时,AlE的下降沿将PO口输出的低8位地址锁存在外接的地址锁4硬件及软件实现14存器中,以实现低字节地址和数据的分时传送。此外,ALE端连续输出正脉冲频率为晶振频率的16,可用做外部定时脉冲使用。但要注意,每次访问外RAM时要丢失一个ALE脉冲。在编程期间该引脚输入编程脉冲(Error!)。电源线VCC电源电压输入。GND接地。外部晶振引线XTAL1片内振荡器反相放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。XTAL2片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体和微调电容。当使用外部振荡器时,引脚XTAL1接收外振荡器信号,XTAIL2悬空。4.2.5中断控制可采用中断的时机:当计数值数完时要做一个特定的动作。当外部信号有一个脉冲信号产生时要做某种特定的运算。当外部某些信号成立时,必须立即处理。当收到通信界面上的一个特定值时,必须立即反应。当程序必须处理数个小程序,且这些程序必须几乎同时都在执行中。当程序必须随时更新某项数据或显示值。当程序必须自动且随时去检查系统中的状态值时。上述的情形亦可采用平常的程序,以持续或经常询问的写法来应付,但是若系统有多个条件要询问时,写法就会变得相当的复杂。假如改用程序中断的写法,则程序的写法就会变得较单纯些,中断程序通常有以下一个或一个以上的特征,假使我们的应用中发现有这些特征时,在程序规划前就要考虑是否采用中断的写法。特征1:每隔一个时间间隔就必须做某件特定的事情。特征2:当某个条件(不论软件或硬件线路)成立时,就让CPU立即处理。特征3:CPU正以多任务(Multi-task)的模式,同时处理数个程序或信号。特征4:某项状态可能平时均不成立,可是一成立时,CPU必须立即停止原先的动作,马上来处理这个状态。4硬件及软件实现154.2.6单片机控制程序设计单片机模块包括单片机AT89S51及其控制的显示和键盘系统,AT89S51对FPGA的数据进行计算,计算出用车总费用并送入显示系统显示,同时它接收键盘信息并处理显示切换。系统采用6+1显示,6个数码管作常规显示,一个数码管作状态显示。按键共有5个,分别是功能切换键,确定键,修改键,启动模拟键和空车牌压下模拟键。SP60HP2#00H定时器0,工作方式1定时50ms启动定时器工作,开中断开始清内存调用键处理图4.2.5主程序流程图键处理开始置标志位RUNBZNNYYYYYNNNNNNYYYNNYNYN汽车启动没有?ZKBZ1送载客标志给FPGAY调用当前时间修改子程序调用里程单价显示子程序Y调用里程显示子程序调用费用显示子程序有键按下吗?是功能键SB0?RUNBZ=1?有键按下吗?是SB0吗?有键按下吗?是SB0吗?有键按下吗?是SB0吗?有键按下吗?有键按下吗?图4.2.6按键处理流程图NYYNNY显示子程序开始R0#LED8R1#08HA(R1)NA(R1)AYNR0#FYDY8A(R1)查表添加小数点查表显示数据送串行口R1R1-1返回NYYANYYN28H.0=0?28H.6=0?(R1)=#05H?(R1)=#02H?(R1)=#03H?R1=0?28H.0=0?28H.6=0?图4.2.7显示子程序流程图赋数码管显示参数N里程显示子程序开始P2.11R0#4FHR3#02H读P0口数据放4D4FHR3R3-1(R3)=0?P2#0F8H2220H4D4FHLCALLHEXBCD2SETB28H.6返回Y4硬件及软件实现16图4.2.8里程显示子程序流程图赋数码管显示参数N乘车费用显示子程序开始P2#0F8HR0#4FHR3#02H读P0口数据放4D4FHR3R3-1P2#0F8H5F,5EH存放(500)DLCALLADDMB2220H4D4FHLCALLHEXBCD2SETB28H.0返回(R3)=0?Y图4.2.9乘车费用显示子程序流程图4.2.7单片机汇编语言源程序;CZJFXT.ASMLED8EQU7FH4硬件及软件实现17LED7EQU7EH;时间显缓LED6EQU7DHLED5EQU7CHLED4EQU7BHLED3EQU7AHLED2EQU79HLED1EQU78HFUNKEYEQUP1.0;功能SELKEYEQUP1.1;选择FIXKEYEQUP1.2;修改RUNEQUP1.4;运行信号(传感器)RUNBZEQU28H.4ZKEQUP1.5;载客信号-单片机(传感器)ZKBZEQU28H.2;载客标志SZKBZEQUP2.7;送FPGA的载客标志INT_R1EQU46HINT_R0EQU47HINT_R2EQU48HKEYNUMEQU49HADAEQUP2.0ADBEQUP2.1ADCEQUP2.2SDBZEQUP2.3;时段标志LCBZEQUP2.4;里程标志DDBZEQUP2.5;等待标志DDBZCEQU28H.5XDBZEQUP2.6;等待超过1小时标志FYDY8EQU3FH;费用显缓FYDY7EQU3EHFYDY6EQU3DHFYDY5EQU3CHFYDY4EQU3BHFYDY3EQU3AHFYDY2EQU39H4硬件及软件实现18FYDY1EQU38H;主程序START:JMPMAIN;转移到主程序ORG000BH;中断服务入口地址LJMPPIT0ORG30HMAIN:CLEAR:MOVR0,#00HMOVR1,#128MOVA,#00HL1:MOVR0,AINCR0DJNZR1,L1MOVP2,#00HMOVSP,#60H;开辟堆栈区MOVTMOD,#01H;定时器0,定时工作方式1,16位MOVTL0,#0B0H;初值为4C00H,50MSMOVTH0,#03CHSETBTR0;启动定时器工作SETBIE.7;中断总允许SETBIE.1;允许定时中断MOV30H,#14H;中断循环次数初值为20次ML2:LCALLKKEYIMLL3:CJNEA,#04H,ML4SETBRUNBZSJMPML2;调用键盘扫描程序ML4:CJNEA,#00H,MLL1CLR28H.0CLR28H.6LCALLSJJZLCALLKKEYICJNEA,#00H,MLL34硬件及软件实现19LCALLLCDJDISPLCALLKKEYICJNEA,#00H,MLL3CLR28H.0LJMPML6LCALLKKEYIMLLL1:CJNEA,#00H,MLL3LJMPML5MLL1:JNBRUNBZ,ML2CJNEA,#05H,ML2SETBZKBZSETBSZKBZNOPLCALLDELAY3CLRSZKBZ;LCALLQJDISP;起价显示ML5:LCALLFYDISP;费用显示LCALLKKEYIIJNB28H.3,ML3;有键按下转ML3LJMPML5;没键按下继续刷新费用显示ML3:LJMPMLL3ML6:LCALLLCDISPLCALLKKEYIIJNB28H.3,MLLL1LJMPML6DDDISP:;等待时间显示子程序MOVFYDY8,#0DHMOVFYDY7,#12HMOVFYDY6,#12HRET;时间校正子程序SJJZ:MOVR6,#03HMOV40H,#LED6SJL0:LCALLKKEYI4硬件及软件实现20CJNEA,#01H,NEXT3SJL3:LCALLKKEYISJL1:CJNEA,#02H,NEXT3MOVA,R6CJNEA,#03H,SL0MOVR0,40HLCALLDAAD1MOVA,R2;是否到了60S?XRLA,#24HJNZSJL4;不到,转RET1返回LCALLCLR0;到了60S,则秒
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于AT89S51单片机的出租车计费设计的设计
链接地址:https://www.renrendoc.com/p-6699539.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!