任务.docx
《任务.docx》由会员分享,可在线阅读,更多相关《任务.docx(15页珍藏版)》请在冰豆网上搜索。
任务
一、任务
设计并制作一台出租车计价器。
二、要求
1、基本要求
(1)不同情况具有不同的收费标准。
●白天
●晚上
●途中等待(>10min开始收费)
(2)能进行手动修改单价
(3)具有数据的复位功能
(4)IO口分配的简易要求
●距离检测使用霍尔开关A44E
●白天/晚上收费标准的转换开关
●数据的清零开关
●单价的调整(最好使用.+.和.-.按键)
(5)数据输出(采用LCM103)
●单价输出2位
●路程输出2位
●总金额输出3位
(6)按键
●启动计时开关
●数据复位(清零)
●白天/晚上转换
2、发挥部分
●能够在掉电的情况下存储单价等数据
●能够显示当前的系统时间
●语音播报数据信息
三、说明
(1)时间要求
●两天。
●完成实际电路,总结报告。
(完)
摘要
本电路以89S51单片机为中心、附加A44E霍尔传感器测距,实现对出租车计价统计,采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。
本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机同志提供方便。
一、方案论证与比较
方案一:
采用数字电路控制。
其原理方框图如图1-1所示。
采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。
图1-1数字电路方案
方案二:
采用单片机控制。
利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。
其原理如图1-2所示。
图1-2单片机控制方案
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
二、电路的功能单元设计
1.里程计算、计价单元的设计
里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。
其原理如图2-1所示。
图2-1传感器测距示意图
由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到
1MHZ。
图2-2集成开关型霍耳传感器原理图
A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密
特触发器D和OC门输出E五个基本部分组成。
在输入端输入电压CCV,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差HV输出,该HV信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。
当施加的磁场达到.工作点.(即OPB)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为.开.。
当施加的磁场达到.释放点.(即rPB)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为.关.。
这样两次电压变换,使霍耳开关完成了一次开关动作。
其集成霍耳开关外形及接线如图2-3所示。
图2-3集成霍耳开关外形及接线
我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1米),霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到1000次时,也就是1公里,单片机就控制将金额自动的加增加,其计算公式:
当前单价×公里数=金额。
2.数据显示单元的设计
由于设计要求有单价(2位)、路程(2位)、总金额(3位)显示输出,加上我们另外扩
展了时钟显示(包含时分秒的显示),采用LCD液晶段码显示,在距离屏幕1米之外就无法
看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用6位LED
数码管的分屏显示,如图2-4a~d所示:
图2-4a时钟显示(图中显示为12点34分46秒)
图2-4b总金额和单价显示(图中显示为总金额12.3元,每公里4.6元)
图2-4c路程和单价显示(图中显示为总路程12公里,当前单价4.6元)
图2-4d单价调整显示(图中显示为右起白天单价4.6元/晚上7.8/中途等待1.2元)
数据的分屏的显示是通过按键S1来实现切换的,如图2-5所示。
图2-5S1切换显示屏
在出租车不走的时候,按下S1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1切换到里程和单价显示屏,供客户查询。
显示电路的电路原理图如图2-6所示。
图2-6显示器原理图
从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。
移位寄存器74HC164还兼作数码管的驱动,插头1(header1)接电源,插头2(header2)接数据和脉冲输出端。
电路中的三个整流管D1~D3的作用是降低数码管的工作电压,增加其使用寿命。
3.AT24C02掉电存储单元的设计
掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。
AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。
其电路如图2-7所示。
图2-7掉电存储电路原理图
图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。
每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。
4.按键单元的设计
电路共采用了四个按键,S1、S2、S3、S4,其功能分别是:
S1分屏显示切换按键,S2功能设定按键,S3.+./白天晚上切换按键,S4.-./中途等待开关。
5.设计总框图
图2-8总体设计框图
6.设计总体电路图
图2-9总体电路图
三、程序设计
1.模块介绍
该计程计价系统的软件设计分为以下几个模块:
(1)主程序模块
在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。
另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。
然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。
其程序流程如图所示.当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。
若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。
当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。
(2)定时中断服务程序
在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。
其程序流程如图所示.
(3)里程计数中断服务程序
每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。
在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。
其程序流程如图所示.
(4)中途等待中断服务程序
当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。
当中途等待结束的时候,也就自动切换到正常的计价。
(5)显示子程序服务程序
由于是分屏显示数据,所以就要用到4个显示子程序,分别是:
时分秒显示子程序(HMS_DIS)、金额单价显示子程序(CP_DIS)、路程单价显示子程序(DP_DIS)、单价调节子程序(PA_DIS)。
其程序流程如图所示.
(6)键盘服务程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。
其程序流程如图所示.
2.程序流程图
(1)主程序流程图如图3-1所示。
(2)计价流程图如图3-2所示。
图3-2计价流程图
(3)单价时间调整流程图如图3- 3所示。
图3-3 单价时间调整流程图
四、测试报告
1.里程计价测试
由于试验条件有限,我们采用电动机附带霍尔元件作为车轮,电机为3V的直流电机,每分的转速可以达到几千转,我们设定电机每转一圈为车轮转动1米,当电机转动达到1000圈时,就表示已经到达了一公里,系统自动将当前的单价加到总金额上。
表1的测试条件是:
设定白天的单价是2.5元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。
表1白天单价测试
表2的测试条件是:
晚上的单价设定为3.0元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。
表2晚上单价测试
表3的测试条件是:
设定在单价为2.5的情况下已经行驶了10公里,进行中途等待,分别等待不同的时间(10分钟为一个单位),起步价为5元(包含3公里)。
表3中途等待计价测试
里程测试数据的分析:
通过表1、表2、表3的数据,我们可以看到系统的计价功能很稳定,误差很小,几乎为零,不过还应该在实际的应用中测试。
2.掉电存储测试测试
表4掉电存储测试
表4显示的数据表明,系统能在掉电的情况下正确的保存数据,并且能在系统上电后将数据读到相应的存储单元。
五、总结
由于使用的是单片机作为核心的控制元件,以及灵敏的霍尔开关型器件,是本出租车计价器具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。
但是在我们设计和调试的过程中,也发现了一些问题,譬如计价的金额位数有限,实际的里程可能会很远,会超出我们的显示范围。
计价器的设计还不够人性化,比如加上语音的提示功能,可能会更有生命力。
Abstract
Anewintelligentmilometerbaseonamicrocontrollercancountthesum.Bytakingfull
useoftheprocessor89s51andE²PROM(AT24C02)andsensorofmagnetism,itcancountthe
sumoffullydistanceandthecourseofdevelopment.