单片机课程设计出租车计价器Word文档格式.docx
- 文档编号:13425006
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:15
- 大小:300.37KB
单片机课程设计出租车计价器Word文档格式.docx
《单片机课程设计出租车计价器Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计出租车计价器Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
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.1Proteus介绍12
4.2调试与测试12
4.3里程计价测试12
5课程设计体会14
参考文献15
附1:
系统原理图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所示。
图2.1电路的组成部分
2.2单片机最小系统单元
主控机系统采用了Atmel公司生产的AT89S52单片机,它含有256字节数据存储器,内置8K的电可擦除FLASHROM,可重复编程,大小满足主控机软件系统设计,所以不必再扩展程序存储器。
复位电路和晶振电路是AT89S52工作所需的最简外围电路。
单片机最小系统电路图如图2.2所示。
图2.2单片机最小系统图
在复位电路中,按一下复位开关就使在RST端出现一段时间的高电平,外接11.0592M晶振和两个30pF电容组成系统的内部时钟电路。
2.3霍尔传感器检测单元
Us1881属于开关型的霍尔器件,其工作电压范围比较宽(3.5~24V),其输出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHZ。
Us1881集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。
在输入端输入电压Vcc,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。
当施加的磁场达到工作点(即Bop)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,三极管截止,使OC门输出高电压,这种状态为关。
这样两次电压变换,使霍尔开关完成了一次开关动作。
图2.3霍尔开关集成传感器原理图及其输出特性
里程计算是通过安装在车轮上的霍尔元件检测到的信号,送到单片机,经过处理计算,送给显示显示单元的。
霍尔传感器是一种磁传感器。
用它可以检测磁场及其变化,可在各种与磁场有关的场合中使用。
霍尔传感器以霍尔效应为其工作基础,是由霍尔元件和它的附属电路组成的集成传感器。
霍尔传感器分为线性型霍尔传感器和开关型霍尔传感器两种。
我们所用的是开关型霍尔传感器。
其原理图如图2.4
所示:
图2.4传感器测距示意图
我们选择P3.2口作为信号输入端,车轮每转一圈(假设车轮周长为1米),霍尔开关就检测并输出信号,引起单片机中断,对脉冲计数,当计数达到一千次时,也就是1公里,单片机就控制金额自动增加。
2.4键盘调整单元
独立式键盘:
独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。
I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。
I/O口内部有上拉电阻时,外部可不接上拉电阻。
键盘接口电路如图2.5所示:
图2.5键盘接口电路
S1:
接P1.0口,对上一次的计费进行清零,为下次载客准备。
S2:
接P1.1口,能自动显示总等待时间T,再按下该键回到显示里程数、金额状态。
S3:
接P1.2口,选择是按单程计费还是双程计费。
S4:
接P1.3口,可以暂停计费,方便乘客结账。
2.5显示单元
对于现实电路我们可以采用数码管,也可以采用液晶显示。
LED数码管特点有:
寿命长、成本低、亮度高、故障少、视角大、可视距离远等,但其显示内容有限。
液晶显示的特点有:
显示内容丰富等,但其驱动复杂,成本高;
外部光线强时,可视距离近。
综合考虑,本次设计采用LED数码管。
显示电路如图2.6所示:
图2.6显示电路
3软件设计
软件是单片机系统的灵魂,根据设计的要求,在本系统中本系统软件中包括下面程序模块:
主程序:
初始化系统涉及到的硬件模块,扫描键盘,根据按键启动/停止里程测量,实时更新单价、里程、等待时间、费用等信息显示。
按键扫描程序:
扫描按键,返回扫描结果。
计算程序:
将传感器发出脉冲数转换为公里数,并根据规则计算对应的费用。
显示子程序:
将计算程序得到的数据反映到数码显示管上。
中断程序:
监测行驶速度,统计等待时间。
现在应用更广泛的是单片机C语言,因其简单明了,故此次课程设计采用单片机C语言编程。
3.1系统主程序
在主程序模块中,需要完成对各参量和接口的初始化、出租车起价和单价的初始化以及中断、计算、循环等工作。
当汽车运行起来时,就启动计价,根据里程寄存器中的内容计算和判断行驶里程是否已超过起步价公里数。
若已超过,则根据里程值、每公里的单价数和起步价数来计算出当前的总金额,并将结果存于总金额寄存器中;
中途等待时,无脉冲输入,不产生中断,当时间超过等待设定值时,开始进行计时,并把等待价格加到总金额里,然后将总金额、里程和单价、往返价格送数码管显示出来。
程序流程如图3.1所示:
图3.1主程序流程
3.2按键扫描程序
键盘实质上是一组按键开关的集合,均利用机械触点的合、断作用。
按键在闭合及断开的瞬间均伴随有一连串的抖动,抖动反应在电压上就是呈现出高电平或低电平,为了确保CPU对一次按键动作只确认一次,必须消除抖动的影响。
去抖通常有硬件去抖和软件去抖两种方法,本程序使用软件延时去抖。
图3.2按键抖动信号波形
对于独立式键盘判键,首先看有键按下不,如果有键按下则延时一会儿,在判断是否真的有键按下,如果确实有键按下,再判键释放,最后执行键功能程序。
判键子函数的流程框图如图3.3所示:
图3.3判键子程序流程图
3.3中断程序
每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1500次时,进入里程计数中断服务程序中,里程变量加一。
主函数中总金额也相应地变化。
在中途等待中断程序中,每1ms产生一次中断,将由当前里程计算出速度值送入某个缓存变量。
把当前速度值与预先设定的速度值相
比较,当小于设定的车速时,进入等待计时。
等待时间5分钟相当于里程增加一公里。
流程如图3.4所示:
图3.4中断流程
3.4计算程序
计算程序根据里程数分别进入不同的计算公式。
如果里程大于3公里,则执行公式:
总金额=起步价+(里程-3)*单价;
否则,执行公式:
总金额=起步价。
程序流程如3.5所示:
图3.5计算程序流程
3.5显示程序
程序利用定时器每1ms产生一次中断,相应变量置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 出租车 计价器