您好,欢迎访问三七文档
1一、设计目的出租车计价器是乘客与司机双方的交易准则,是出租车行业发展的重要标志,它关系着交易双方的利益。现在,城市建设日益加快,象征着城市面貌的出租车行业也将加快发展,计价器的普及是毫无疑问的,所以未来出租车行业计价器的市场是很有潜力的。本文是为了探索计价器的设计而制作的。二、设计要求1、不同情况具有不同的收费标准。白天、晚上、途中等待(10min开始收费)2、能进行手动修改单价3、具有数据的复位功能4、IO口分配的简易要求,距离检测使用霍尔开关A44E,白天/晚上收费标准的转换开关,数据的清零开关,单价的调整(最好使用+和-按键)5、数据输出(采用LCM103)单价输出2位、路程输出2位、总金额输出3位6、按键启动计时开关、数据复位(清零)、白天/晚上转换三、总体设计1、采用单片机控制,程序框图如下:图1程序框图利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。单片机方案有较大的活动空间,不但能实现所要求键盘控制AT24C02掉电存储里程计算单元89S51单片机总金额显示单价显示串口显示驱动电路2的功能,而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。2、程序流程图如下:主程序流程图如图2所示。当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、开始S1按下?初始化数据S4按下?设定默认单价(白天)启动计价器里程中断?到一公里?总路程加1总金额加1传感有信号?停止计价和里程计数是是是是否否否设定晚上单价按下S4?设定中途等待单价S4按下?返回时间显示是是是否否否显示金额及单价S3按下?否是显示路程和单价S3按下?是否图2主程序流程图3每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。四、各部分电路设计1、键盘调整单元图3键盘调整单元当单价等信息需要进行修改时,就要用到键盘进行修改。由于调节信息不多,故采用4个独立键盘即可,分别实现清零、切换、增大、减小和功能等作用。电路原理如图3所示。S1:接P1.0口,对上一次的计费进行清零,为下次载客准备S2:接P1.1口,实现白天和夜晚单价的切换;当功能键S4按下时,S2可对数据进行增大。S3:接P1.2口,当功能键S4按下时,S3可对数据进行减小。S4:接P1.3口,按1次,进入调整白天单价;按2次,进入调整夜晚单价;按3次,进入调整等待单价;按4次,进入调整起步价;按5次,返回。2、里程计算里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图4传感器测距示意图所示。s1s2s3s44图4传感器测距示意图由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHZ。A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。在输入端输入电压CCV,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差HV输出,该HV信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到工作点(即OPB)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开。当施加的磁场达到释放点(即rPB)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。这样两次电压变换,使霍耳开关完成了一次开关动作。我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1米),霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到1000次时,也就是1公里。3、显示电路设计5图5显示电路显示单元由7个8段共阳数码管组成,采用动态扫描进行显示。前三个数码管分别接P3.0、P3.1和P3.2,用于显示总金额;中间两个分别接P3.4和P3.5,用于显示里程;后边两个分别接P3.6和P3.7,用于显示单价。电路如图5所示。4、总金额计算总金额=单价*里程+起步价五、整体电路图6XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC133pC233pC310u7R21kSCL6SDA5WP7A12U2AT24C1024NET=a10R34.7kR44.7ks1s2s3s4掉电保护p2.2p2.3复位图7整体电路图1、S1按键的功能在出租车不走的时候,按下S1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1切换到里程和单价显示屏,供客户查询。2、S2按键的功能在按下S1按键之后,若接着按下S2键则进行单价调整(默认为调整白天单价),当接着按下S1时,则进行晚上单价调,再次按下S1可进行中途等待单价调整。当单价调整结束后,可以通过过按下S2按键进行时间调整,默认为调整时,接着按下S1可进行调整分,分调整后再接下S1可进行秒调整。当时调整完成后,若接着按下S2则又可进行单价调整。3、S3按键的功能在显示金额及单价时,若按下S3键则显示路程和单价,再次按下S3,可返回显示金额及单价。74、S4按键的功能在按下S1按键之后,若接着按下S4按键,则进行设定默认晚上单价,并启动计价器,若没有按下S4则可设定默认单价(白天),并启动计价器。当设定默认晚上单价结束后,再次接下S4按键,则可设定默认中途等待单价,并启动计价器。当设定默认中途等待单价后,若还按一次S4,则返回系统时间的显示。六、设计总结经过本周关于出租车计价器的课程设计,我对单片机的应用有了更深的了解。当然在课程设计的过程中,不可避免的碰到了许多问题。对于代码的前后顺序及调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。通过这几天的思考,以及参考网上的程序和听取同学的讲解,最终还是把问题解决了。通过本次课程设计,又使我学到了许多书本上无法学到的知识,也使也深该体会到单片机技术应用领域的广泛,不仅使我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常,我们应该将每次遇到的问题记录下来,并分析清楚,将之一一解决。全部源程序该出租车计价器的系统软件设计源程序如下:DAY_PRICEEQU6FHNIGHT_PRICEEQU6EHMIDWAY_PRICEEQU6DHSTART_PRICEEQU6CHCOUNTLEQU6BHCOUNTHEQU6AHM100EQU69H;外部中断次数DISTANCEEQU68H;行车距离MS100EQU67HSECEQU66HMINEQU65H8HOUREQU64HLEDSLEQU63H;时分钞显示缓冲区LEDSHEQU62HLEDMLEQU61HLEDMHEQU60HLEDHLEQU5FHLEDHHEQU5EHLEDDANJIALEQU5DH;总额,单价显示缓冲区LEDDANJIAHEQU5CHLINE_EQU5BHLEDCOUNT1EQU5AHLEDCOUNT2EQU59HLEDCOUNT3EQU58HLEDDANJIA2LEQU57H;路程,单价显示缓冲区LEDDANJIA2HEQU56HLINE__EQU55HLINE___EQU54HLEDDISTANCELEQU53HLEDDISTANCEHEQU52HLEDDAY_PLEQU51H;中途,晚上,白天显示缓冲区LEDDAY_PHEQU50HLEDNIG_PLEQU4FHLEDNIG_PHEQU4EHLEDW_PLEQU4DHLEDW_PHEQU4CHS1BITP1.0S2BITP1.1S3BITP1.2S4BITP1.3S11EQU4BHS22EQU4AHS33EQU49HS44EQU48HM1EQU47H9H1EQU46HM2EQU45HH2EQU44HPRICEEQU43HORG0000HAJMPMAINORG0003HAJMPTOORG000BHAJMPTOTIMEORG001BHAJMPTOSTARTORG0030HMAIN:MOVSP,#70HMOVTMOD,#11HMOVTH0,#3CHMOVTL0,#0B0HMOVTH1,#3CHMOVTL1,#0B0HMOV22H,#0AHSETBEASETBTR0SETBEX0SETBIT0SETBET0SETBET1MOVR7,#34MOVR0,#69HLOOPL:MOV@R0,#0DECR0DJNZR7,LOOPLMOVCOUNTL,#00H;起步价MOVCOUNTH,#05H10MOVDAY_PRICE,#25H;白天价格初始化MOVNIGHT_PRICE,#30H;晚上价格初始化MOVMIDWAY_PRICE,#10H;中途等待初始化MOVSTART_PRICE,#50H;起步价初始化MOVS11,#0MOVS22,#0MOVS33,#0MOVS44,#0MOVDISTANCE,#02HMOVHOUR,#12HKEY_MAIN:SETBTR0ACALLHMS_DISACALLT100MSDACALLT100MSDACALLT100MSDJBS1,KEY_MAINACALLT10MSDJBS1,KEY_MAINJNBS1,$SJMPWAI1WA1:JBS1,K1ACALLT10MSDJBS1,K1WAIT1:JNBS1,WAIT1MOVR0,#LEDDANJIALMOVR2,#6CLRAMOVCOUNTL,AMOVCOUNTH,AMOVM100,AMOVDISTANCE,ABK1:MOV@R0,ADECR0DJNZR2,BK111MOVPRICE,DAY_PRICE;起动初始化MOVCOUNTL,#00H;起步价MOVCOUNTH,#05HLCALLCP_DIS;总金额和单价显示K1:JBS2,K2ACALLT10MSDJBS2,K2WAIT2:JNBS2,WAIT2INCS22MOVA,S22CJNEA,#1,NEXT1LCALLPA_DISLJMPKEY_DJNEXT1:CJNEA,#2,NEXT2CLRTR0LCALLHMS_DISLJMPKEY_SJNEXT2:CJNEA,#3,K2MOVS22,#0K2:JBS3,K3ACALLT10MSDJBS3,K3WAIT3:JNBS3,WAI
本文标题:出租车计价器设计
链接地址:https://www.777doc.com/doc-4841789 .html