ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:536.12KB ,
资源ID:9454318      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9454318.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整版基于单片机和FPGA的出租车计费系统毕业设计.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

完整版基于单片机和FPGA的出租车计费系统毕业设计.docx

1、完整版基于单片机和FPGA的出租车计费系统毕业设计Liaoning Normal University( 届)本科生毕业论文(设计)题 目: 基于单片机和FPGA的出租车计费系统学 院: 辽宁师范大学专 业: 电子信息工程学 号: 学生姓名: 指导教师: 年 月摘要本系统电源电压为+16V,速度传感器具有汽车每运行1提供1000个脉冲信号的特性。显示器可以采用LED数码管。系统采用单片机和FPGA的结合进行系统的主体设计,测控FPGA芯片通过采集传感器脉冲信号WCLK进行里程计算,里程计费,利用外部脉冲信号SCLK产生标准时钟信号,以计算等待时间,等待费用,并产生里程标志(LCBZ),等待标志

2、(DDBZ),熄灯标志(XDBZ)等有关控制标志信号,同时根据单片机发出的开始信号(START),时段标志(SDBZ),传输数据选择(SEL)等控制信号将有关计算结果传送给FPGA芯片。单片机MCU除了完成键盘扫描,显示控制外,还通过P0口与FPGA进行数据交换,并向测控FPGA芯片发出有关控制信号。本设计方案利用单片机和FPGA的结合,发挥它们各自的长处,分工清晰,实际使用和操作符合大众逻辑,容易被人接受。而且,单片机丰富的I/O口和FPGA模块化的设计为系统功能的扩展提供了空间和便利。关键词:计费系统;单片机;FPGA芯片 AbstractThe system power supply v

3、oltage of + 16V, speed sensor having a car every runs 1 provide a 1000 pulse signal characteristics. The display can be used LED digital tube. The system adopts the single chip and FPGA binding system of the main design, control FPGA chip through the acquisition sensor pulse signal WCLK to mileage,

4、metered, using an external pulse signal SCLK produces a standard clock signal, to calculate the waiting time, waiting cost, and generate the mileage signs ( LCBZ ), wait for the signs (DDBZ ), mark ( lights out XDBZ ) and other related control signal, at the same time according to the MCU by a start

5、 signal ( START ), time slot markers ( SDBZ ), transmission data selection ( SEL ) and other control signals to be transmitted to the calculation results of FPGA chip. Single chip MCU in addition to the completion of the keyboard scanning, display control, through the P0 and FPGA data exchange, and

6、to control FPGA chip emits the control signal. The design makes use of SCM and FPGA combination, play to their respective strengths, a clear division of labor, the actual application and operation in line with the general logic, is easy to be accepted by people. Moreover, SCM rich I / O and FPGA mod

7、ular design for system expansion provides space and facilities.Key words:billing system;SCM;FPGA chip1绪论出租车是现代人类的重要交通工具,而出租车的计费系统的安全性和先进性是人们普遍关心的问题,要求计费器性能稳定,计费准确,以及预防司机作弊行为等等都关系到乘客的切身利益。因此,设计出符合人们普遍要求及放心的产品具有重要的意义。同时,设计该系统所应用的知识涉及范围广,通过设计可以牢固掌握所学理论知识,对电子信息工程专业的就业方向有初步认识,将理论与实际有机联系起来。应该是对以前所学知识的一次审核

8、吧!本设计主要介绍了出租车计费系统的设计思路和过程,并给出了所涉及的相关知识的详细介绍。EDA技术应用,单片机的功能及应用,传感器检测技术,VHDL编程语言及汇编语言程序,显示系统设计及按键控制,等等。第一部分为绪论,第二部分为方案论证,第三部分为系统设计,第四部分是硬件及软件实现,第五部分系统检测及分析,第六部分是结论,第七部分是附录,第八部分是参考文献,第九部分是致谢.目前,普遍的出租车计费器仅仅具有时钟,起步价,里程计费,等待计费及显示几个功能。其发展前景是可观的,将来的产品除具有这些功能外,另外还可增加如下功能:防作弊功能,IC卡付费:顾客能在制定点购买一定额度的“顾客IC卡”,乘车后

9、可用IC卡付帐,付帐是否成功有相应的提示。车主可定期将总营业额写入“车主IC卡”中,并据此IC卡向所属公司领取报酬。车票资料打印:顾客付费后可打印发票,打印内容包括车主信息和车费信息等。可打印车主总营业额信息。语音播报:当乘客上车时,可自动问候乘客,当到达目的地,自动播报乘车费用并礼貌再见,表达希望下次乘坐的意思。增加的这些功能将会更好地为乘客服务。本系统设计也可应用于其他计费系统中,如电脑计费系统等等,其应用技术也有相当范围的应用面,如显示和播报部分也可应用于智能饭卡智能电动车机器人等电子相关产品中。可见掌握了该系统的设计和分析可实现对电子专业知识的具体应用,增强理论联系实际的能力。除此以外

10、,所涉及的知识面也联系到现实生活中很多相关电子产品,也将对其他电子产品有一定理论基础。 2系统设计2.1 系统组成其中系统电源电压为+16V。速度传感器不需要进行设计,假设它具有汽车每运行1提供1000个脉冲信号的特性。显示器采用LED数码管。具体功能要求如图2-1:图2-1系统方框图2.1.1 计费及显示里程,即汽车行程里程,用四位数字显示,显示方式为“XXX.X”,单位为,精确到0.1。 单价,即里程单价,用三位数字显示,显示方式为“X.XX”,单价为元/,根据每天不同的时间段有两种情况:当时间段为06:0023:00时单价为1.4元/,其他时间段内单价为1.80元/。 等候时间,用四位数

11、字显示分钟和秒,显示方式为“XX:XX”,等候的定义是:当汽车行驶速度小于或等于12/h时为“等候”。在等候时间大于1小时的情况下,可以不显示等候时间,但必须对等候时间进行统计计算。等候单价,等候单价有两种情况:在等候时间小于1小时的情况下,等候单价为1元每5分钟;在等候时间大于1小时的情况下,等候单价为20元每小时。 费用的计算,出租车的起价为5.00元,当里程小于2时,按起价计算费用;当里程大于2时按下式计算费用:费用=里程*里程单价+等候时间*等候单价。费用的显示,用五位数字显示,显示方式为“XXX.XX”,单价为元。2.1.2 时钟及显示 当出租车在通常运行状态下,应能显示当前的时间,

12、在汽车熄火的情况下,时钟必须正常运行,但是可以不显示时钟. 2.1.3 计费开始提示 当出租车载上乘客并起步后,将空车指示牌扳倒时,空车指示牌里的指示灯熄灭,并有语音或灯光提示信号,如图2-2:图2-2 总体原理框图2.2 功能模块设计根据系统的设计要求,将整个测控FPGA系统CZJFXT分为七个模块,它们分别是:分频器模块FPQ,等待判别模块DDPB,里程计算模块LCJS,里程计费模块LCJF,等待计时模块DDJS,等待计费模块DDJF,输出数据选择模块SCXZ。分频器模块FPQ:将外部时钟信号SCLK(设计时假设为1024HZ)经过适当分频后,产生1HZ的系统工作用基准时钟信号CLK1HZ

13、,供给系统中的有关模块计时用。等待判别模块DDPB:根据速度传感器脉冲信号WCLK和分频器产生的基准时钟信号CLK1HZ,计算单位时间里WCLK的脉冲个数(每产生1000个脉冲信号,即每米产生1个脉冲信号),亦即出租车行驶速度,从而判别出租车是否处于等待状态,发出等待标志信号DDBZ。当速度大于12/H,即速度大于200M/MIN时,出租车处于运行状态,这时等待标志DDBZ=0;当速度小于等于12/H,即速度小于等于200M/MIN时,出租车处于等待状态,这时等待标志DDBZ=1。该模块的VHDL程序设计可分为三个进程:60S周期性跳变信号产生进程,每分钟行驶距离计算进程,等待标志判别进程。等

14、待标志判别进程就是比较每分钟WCLK脉冲个数与等待状态WCLK脉冲临界个数200的大小,从而确定DDBZ的赋值。里程计算模块LCJS:根据速度传感器脉冲信号WCLK和等待标志DDBZ,对出租车行驶的里程数XSLC进行计算,同时发出里程标志信号LCBZ和里程计费标志信号JFBZ。如果LCBZ=1,说明行驶距离超过2,里程计费启动;如果LCBZ=0,说明没超过2,按起价计费,每行驶1应计费1次,并且计费的启动信号应是某一时刻,因此每行驶1,计费标志信号JFBZ应跳变1次。该模块的VHDL程序设计可分为两个进程:里程计算及标志产生进程,产生计费信号进程。产生计费信号进程就是每行驶10百米(即1)JF

15、BZ由低电平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元

16、/。如果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控制下,进行等待费

17、用DDFY的计费操作。该模块的VHDL程序包括两个进程:60S周期性跳变信号产生进程,等待费用计算进程。等待费用计算的条件是在DDBZ=1并且在60S周期性跳变信号T60S的上升沿,根据XDBZ分别进行加法计费操作。当DDBZ=1且XDBZ=0时,按1元/5分钟,即20分/分钟计费;当DDBZ=0且XDBZ=1时,按20元/小时,即33分/分钟计费。输出数据选择模块SCXZ:根据单片机发出的数据传输选择控制信号SEL,选择有关计算处理结果传输给单片机。3硬件及软件实现3.1 传感器传感器通常是指能感受并能按一定规律将所感受的被测非电量(包括物理量、化学量、生物量等)转换成便于处理与传输的电量(

18、一般为电量,也有少数为其他物理量,如光信号)的器件或装置。光电传感器是把光信号转换为电信号的传感器,光电传感器的种类极多。它们共同的特点是响应速度快,易于实现非接触测量,非常适于与计算机接口。3.1.1 光电传感器电路设计光电传感器工作时,大致应用了三种效应:通过光子与物质的相互作用能直接得到电信号的量子效应;光被物质吸收变成热量后,利用热电转换得到电信号的热效应;光作为一种电磁波,直接与物质相互作用,从而感应出电信号的波动相互作用效应。反射式光电传感器是用来检测黑白线条的,如图3.1(a)所示 由于黑白物体的反射系数不同,利用反射光可以使光敏三极管实现导通和断开,调节传感器与被测对象之间的距

19、离,使光敏三极管只能接受到白色物体反射回来的光束。而黑色物体的反射系数小,所反射回来的光束很弱,光敏三极管无法接受到反射光。 从而实现对黑白线条的检测。还要在输出信号处加个控制电路,如图3.1(b)起隔离强信号和方波整形的作用。(a)(b)图3-1 反射式光电传感器3.1.2车轮光电开关检测电路由于要测出出租车的运行速度,每1千米产生1000个脉冲信号并计算出单位时间里的脉冲个数,转换成车轮所转的圈数,即产生脉冲数的多少。在该设计中采用在车轮的转盘上安装一个3条黑白线均匀的圆盘,再用光电开关来检测,如下图4.1.2所示,当出租车运动时,车轮转动,光电传感器利用接收黑白电平时输出的高低电平,当光

20、电传感器检测到黑色条纹时,输出高电平给单片机,相反当检测到白色条纹时输出低电平,从而把连续输出高低电平转化为脉冲数,也就把电机转动时带动有黑白线的圆盘黑白条数转换成脉冲数,从而测试出出租车运行速度。图3-2 光电检测电路用一张贴有黑色胶带的白纸,让光电传感器离纸不到5cm的平面上与胶带垂直经过,看计数是否与所经过的的胶带数目相等,若多次测试都是吻合的,则此光电传感器良好.3.2 单片机单片机既是一个微型的计算机,它具有组成计算机系统的三个要素:CPU、内存与I/O。CPU:运算或逻辑上的判断;内存:存放程序与数据;I/O:与外界沟通的桥梁。图3-3 单片机简图3.2.1 8051 单片机功能方

21、块图图3-4 8051 单片机功能方块图振荡及时序单元(OSC):8051内部有晶体振荡电路,只要在外部加上石英振荡晶体,即可产生频率非常稳定的振荡信号,这个振荡信号正是8051的心脏,所有8051的时钟序列都以此振荡信号为基准。内部数据存储器(Data Memory):当程序在运行时,有些数据是经常在变动的,例如LED的显示状态或显示值等,它会因I/O测量的结果而变动,这些值就暂时放置在此区域中,供其他程序进一步读取,这也代表此区域是可以随时读写的。8051系列的CPU提供128个字节可读写的数据存储单元,52系列的CPU则提供256个字节的数据存储单元,这个数据区域中有一段区域16个字节共

22、128位是可以进行位寻址的,MCS51系列的CPU有相当强的位处理指令,可以妥善且有效地运用该数据存储器,使用方法将在8051的指令说明中再详述。内部程序存储器(Program memory):这段区域用于存放我们的应用程序,而且这部分一经确认后是永远不做修改的。8051系列的CPU提供内部4096个字节(4KB)的程序存储器,8052系列的CPU则提供2倍即8192个字节(8KB)的程序存储器,而8031和8032则不含此单元。此单元可以使CPU选择由内部的程序区启动或由外部的程序区启动,内部的程序区启动具有保护功能,后者成本较为低廉。在8051系统中特地将程序区和数据区分隔开,两者最大的差

23、异是后者可以读取和写入,简而言之,PROGRA MMEMORY就是 ROM,DATA MEMORY则是 RAM。定时/计数器(Timer/Counter):51系列的CPU有2个定时/计数器,而52系列CPU则有3个定时/计数器,每个定时/计数器又有多种模式可供选择。串行接口(Serial Port):8051可通过此接口与外部的计算机等设备连线交换信息,也可以通过此接口进行I/O的扩充。并行输入/出端口(Parelled I/O):不论是8051或8052单片机都有4个输入/出端口,总共有32个输入/出,而且每个点都可以单独定义成输入或输出。控制总线(Bus Control):当程序的空间超

24、出MSC51系列内存程序空间的限制时,会通过本单元的控制线路向外部送出地址线信号和控制信号,同时当程序执行MOVX DPTR,A指令时,代表对外部数据内存做写入的运行,此时也要靠本单元送出必要的控制信号,才能达成外部READ与WRITE的运行请求。8051运算处理单元(Core):这是整个单片机的控制处理核心,它读取程序码,经过计算及处理后,将结果送到各个寄存器或输入/输出端口上,并且接受内部和外部的中断信号,然后执行特定的中断服务程序。只要加入电源并且石英晶体开始运行后,本单元就一直不停地工作着,通常我们所谓的死机是指本单元跳入一个未知没有出口的循环中执行,而不是指CPU停止一切的运行,不再

25、执行任何程序。累加器(Accumulator):累加器是众多寄存器中最重要的一个寄存器,通常以简写Acc代表累加器,8051的指令中有许多指令和Acc寄存器有关,也有多个指令非通过Acc不可,基本上,8051的指令中赋予Acc 累加器的权限最大。Intel公司建议程序的执行尽量以Acc为主。B寄存器(B Register):B寄存器是一个一般用途的工作寄存器,当8051使用乘除指令时,则一定要通过B寄存器来做运算。中断优先顺序控制寄存器(IPC,Interrupt Priority Control):这个寄存器中存放中断时的优先顺序表,若对应的位设成1时,代表中断有较高的中断优先权。允许中断控

26、制寄存器(IEC,Interrupt Enable Control):此寄存器内含系统允许中断的中断源设置值,8051共有5个中断可供选择,8052则有6个中断源,IEC寄存器内另有一个位简称 位,若 0时就禁止系统所有的中断要求。串行输出入缓冲寄存器(SBUF,Serial Buffer):所有待送出或刚进入的串行数据值都存放在此寄存器中,8051的串行通信是非常简单的,只要一设置完通信协议后,再执行一个MOVSBUF,A指令,就可立即将并行数据值转化成串行数据送到外部。串行通信控制寄存器 (SCON,Serial ControL或称UART):此寄存器主要在设置串行通信的模式,当串行数据已

27、经送完或数据已收妥时,会有对应的位被设置成1,这些位也可以当成中断要求信号,请求CPU执行特定的串行中断服务程序。定时/计数控制寄存器(TCON,Timer/Counter Control):这个寄存器可以控制定时/计数器的打开或关闭,若一经打开且计数到溢位时,TCON上亦有对应的位被设成1,CPU必须针对此位的状态,决定是否重新设置定时/计数值。堆栈指标寄存器(SP,Stack Pointer):8051利用SP指引最近一次存入堆栈内的地址,每当我们在程序中调用其他子程序时,原程序的返回地址就会自动存入内部DATA MEMORY组成的堆栈(Stack)中,而当子程序执行到RET指令时,CPU

28、会自动由堆栈中取回原先存入的返回地址,继续执行原程序。每当CPU将8位值存入堆栈时,我们称之为PUSH(推入),这时SP值会增加1,反之堆栈中取回8位值时,则称之为POP(提回),此时SP值会减少1。在写8051单片机的控制程序时,在程序起始状态阶段一定要设置SP值,以便程序有足够的堆栈空间,也可以利用软件程序随时机动调整的堆栈指标SP的值。特殊功能寄存器区(SFR,Special Function Register)8051单片机内部将多个寄存器统称成SFR,代表其特定的功能,甚至Port0、Port1、Port3也都是属SFR 的成员之一,在这些SFR 中有部分的寄存器可以进行位寻址,表

29、3-1是这些SFR 寄存器的整理,其中加(*)记号的寄存器可进行位寻址。SFR 寄存器部分可进行位寻址的寄存器算术运算寄存器Acc(*)、B(*)、PSW(*)指标类寄存器SP、DPL、DPH并行输入/出端口P0(*)、P1(*)、P2(*)、P3(*)中断控制寄存器IP(*)、IE(*)定时/计数寄存器TMOD、TCON(*)、TL0、TH0、TL1、TH1串行通信寄存器SCON(*)、SBUF表3-1 可进行位寻址的SFR 寄存器3.2.2 AT89S51单片机简介AT89S5l是新型高档单片机。它的主要特性是:片内含有 32 KB的 Flash程序存储器,擦写周期为 1000次;片内数据

30、存储器内含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);具有断电标志POF3.2.3 AT89S5l与51系列单片机相比具有如下特点 程序存储器由 8 KB增

31、加到32 KB; 片内数据存储器由256宇节增加到512字节; 数据指针由1个增加到2个; 增加了看门狗定时器,CPU在执行程序过程中,由于瞬时的干扰使程序陷入死循环状态,WDT(Watchdog Timer)是使CPU摆脱这种困境而自动恢复的一种方法; 退出掉电方式由单纯硬件复位方式增加到硬件复位和中断两种方式; 新增加了断电标志POF3.2.4 89S51的内部框图图3-5 89S51的内部框图引脚排列及功能:AT89S51有3种封装形式:PDIPPLCC和TQFPPDIP封装的引脚排列如图所示。图3-6 单片机电路板口线P0口8位、漏极开路的双向 1O口。当使用片外存储器及外扩 IO口时,P0口作为低字节地址数据复用线。在编程时,P0口可用于接收指令代码宇节;在程序校验时,P0口可输出指令字节(这时需要加外部上拉电阻)。P0口也可作通用I/O口使用但需加上拉电阻变为准双向口。当作为普通输入时,应将 输出锁存器置1 PO口可驱动8个 TTL负载P1口8位、准双向IO口,具有内部上拉电阻。P1口是为用户准备的 1O双向口。在编程和校验时,可用做输入低8位地址。用做输入时,应先将输出锁存器置1 P1口可驱动4个TTL负载。引脚替代功能说明P1.0T2定时器2的外部事件输入端;可编脉冲输出端P1.1T2EX

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2