单片机课程设计 出租车计价器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计的是一个基于单片机AT89S52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。
在上电时LED数码管显示最初的起步价,里程收费,等待时间收费三种收费。按暂停键,计价器可暂停计价,按查询键,在LED数码管上可以显示运行时等待的时间。通过计算可以得出总共的费用和总的路程。在这里主要是以AT89S52
单片机为核心控制器,P0口、P2 口接两片四合一数码管,P1口接按键,通过按键输入。
关键词:单片机 AT89S52;LED数码管;出租车计费器;
目录
1 概述 (1)
1.1 课题简介 (1)
1.2 功能要求 (1)
2 系统总体方案及硬件设计 (2)
2.1 系统工作原理及总体方案 (2)
2.2 单片机最小系统单元 (3)
2.3 霍尔传感器检测单元 (3)
2.4 键盘调整单元 (5)
2.5 显示单元 (5)
3 软件设计 (7)
3.1系统主程序 (7)
3.2 按键扫描程序 (8)
3.3 中断程序 (9)
3.4 计算程序 (10)
3.5 显示程序 (10)
4 实验仿真 (12)
4.1 Proteus介绍 (12)
4.2 调试与测试 (12)
4.3 里程计价测试 (12)
5 课程设计体会 (14)
参考文献 (15)
附1:系统原理图 (16)
附2:源程序代码 (16)
1 概述
1.1 课题简介
出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。为此,我们采用单片机系统设计了一款符合大众化的计费系统。
本方案以At89s52单片机为中心、配合LED数码管,实现对出租车计价统计。本方案可以实现:
1. 系统接收里程传感器的脉冲输入,并对脉冲进行计数,继而转换为里程。
2. 采用现行出租车的计价系统的计算方法,并对行驶里程进行计费,提供友好的用户界面,并具有发光二极管指示操作状态功能。
1.2 功能要求
利用AT89s52单片机配合LED数码管,实现基本的出租车计价功能,具体设计规格如下:
1. 用前4位数码管实时显示里程数,单位为公里,最后一位为小数位;用后4位数码管时时显示金额数,单位为元,最后一位为小数位。
2. 规定出租车单程价格为2元/公里,往返则价格为1.5元/公里;单程/往返分别由“单程”按键和“往返”按键设定。
3. 车速<5公里/小时的时间累积为总等待时间T(分钟),每5分钟等待时间相当于里程数增加1公里。
4. 起步公里数为3公里,价格为5元;若实际运行大于3公里,按“设计任务2”计算价格。
5. 到达目的地后,按“暂停”键,计价器可暂停计价。
6. 按“清除”键,计价器能将记录数据(里程、等待时间与价格等)自动清0。
7. 按“查询”键,能自动显示总等待时间T,再按下该键回到显示里程数、金额状态。
8. 扩展:空车指示、语音提示、信息存储等
2 系统总体方案及硬件设计
2.1 系统工作原理及总体方案
出租车计价器用于记录里程、等待时间、是否往返、起步公里数与价格的关系,它能有效地避免司机与乘客间的矛盾,保障双方的利益。出租车行驶总路程可以通过车轮的周长乘车轮旋转圈数得到。即可计算得到车轮旋转几周出租车能行驶一公里的路程。因此,使用霍尔传感器的目的就是方便地计量车轮旋转的圈数。可在车轮转盘上粘一个小磁钢,当转轮转动时,霍尔传感器检测到磁场及其变化,产生脉冲信号。输出的脉冲信号被接入到AT89S52单片机系统中,通过计算接收到的脉冲个数,计算出当前所行驶的路程。同时,根据不同的收费标准,选择相应的起步价、单价等收费标准进行计算。再配置上键盘和数码显示,通过键盘能够实现启动、暂停计价器、切换显示当前的行驶里程和需支付的车费。
通过分析,需要实现四个主要的功能模块,分别为脉冲计数模块、定时器计时模块、按键的处理以及数码管动态扫描等功能。
定时器计时模块主要完成途中等待(即没有脉冲来时)30秒的计时。在启动键按下后,定时器就不停的计时,只要有脉冲来就将计时的值清除为零。如果没有脉冲来,当计时超过30秒时,相应的总金额要按照收费标准计价。
中断的管理:尽管中断有嵌套以及优先级的功能,但是由于定时器已经使用一个了中断资源,脉冲检测不宜再采用中断方式,而是采用查询方式。由于需要不停的要清除30秒的计时,因此,脉冲的计数不采用定时器的计数方式。
启动键触发定时器开始工作,而定时器的运行可以作为脉冲计数的标志,只要定时器计时在运行,每来一个中断都应该计数。
主程序完成键盘的扫描和按键的处理,查询脉冲产生的中断,并完成脉冲的计数。若每个脉冲代表1米,则当计数到1000时表示1千米的距离,相应的总金额要按照收费标准计价。
采用MCS51系列单片机AT89S51作为主控制器,外围电路器件包括数码管、独立式键盘、复位电路等。
模拟出租车计价器能根据总里程数、总等待时间长短、是否往返、起步公里数的情况作出相应报价等。当然实际的出租车计价器还具有打印票据,显示是否空车等功能。总体模块如图2.1所示。