多功能出租车计价器的设计_第1页
多功能出租车计价器的设计_第2页
多功能出租车计价器的设计_第3页
多功能出租车计价器的设计_第4页
多功能出租车计价器的设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第0页共29页摘要本设计利用AT89S51单片机、AT24C02掉电存储单元及A44E霍尔传感器电路实现一台多功能出租车计价器,具有性能可靠、电路简单、成本低等特点。所设计的出租车计价器的主要功能有:数据的复位、数据输出、路程输出、计时计价、单价输出及调整、显示当前的系统时间等功能,同时在不计价的时候还能作为时钟为司机同志提供方便。关键词多功能出租车计价器;AT89S51;AT24C02第0页共29页目录摘要.1第1章绪论.2第2章系统硬件设计.32.1控制电路方案论证与比较.32.2系统硬件设计.42.2.1系统的硬件构成.42.2.2AT24C02芯片简介.42.2.3AT24C02掉电存储单元的设计.52.2.4里程计算和计价单元的设计.52.2.5数据显示单元设计.72.2.6多功能出租车计价器总体电路图.9第3章系统软件设计.103.1系统主程序设计.103.2定时中断服务程序.123.3里程计数中断服务程序.123.4中途等待中断服务程序.123.5显示子程序服务程序.133.6键盘服务程序.13第4章系统调试.144.1里程计价测试.144.2掉电存储测试.15第5章结论.16致谢.17参考文献.18附录一原理图.191附录二源程序.20第2页共29页第1章绪论出租车计价器是出租车营运收费的专用智能仪表,目前市面所使用的计价器大都功能较少,这给出租车行业的服务质量及管理带来一定影响。而功能齐全的计价器大都采用双CPU结构,这就提高了计价器的生产成本。从加强出租车行业管理及服务质量并且节约成本出发,本设计介绍了一种以AT89S51单片机为核心的,具有计价、存储、性能可靠、电路简单、成本低等特点的多功能出租车计价器,能够很好的满足市场对出租车计价器的要求。本设计的目的就是通过对现有计价器的分析,从而解决计价器的现存问题,同时完成具有单价输出、单价调整、路程输出、显示当前的系统时间等功能的新型计价器的硬件及软件设计。第3页共29页第2章系统硬件设计2.1控制电路方案论证与比较方案一:采用数字电路控制。其原理方框图如图1所示。采用传感器,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。图1数字电路控制方框图方案二:采用单片机控制。利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价和价格调整、时钟显示的功能。其原理如图2所示。图2单片机控制方框图通过比较以上两种方案,第二种方案有较大的活动空间,不但能实现所要求的功能,而且能在很大的程度上扩展功能,还可以方便的对系统进行升级,所以我们电源电路及保护电路金额显示单价显示移位寄存器里程传感器89S51单片机键盘控制单元掉电存储单元元元远元里程计价单元串口显示驱动电路显示单元第4页共29页采用此方案。第5页共29页2.2系统硬件设计本系统的硬件主要包括单片机AT89S51、数据显示部件、A44E霍尔传感器电路、AT24C02掉电存储单元、里程计算及计价单元。2.2.1系统的硬件构成计价器的单片机控制方框图如图3所示。它由单片机AT89S51、总金额及单价显示单元、键盘控制单元,AT24C02掉电存储单元、里程计算单元以及串口显示驱动电路组成。图3单片机控制方框图2.2.2AT24C02芯片简介AT24C02是ATMEL公司研发的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到,额定电流为,芯片内的资料可以在V5.2mA1断电的情况下保存40年以上,使用方便。其引脚配置如图4所示。图4AT24C02引脚配置图89S51单片机键盘控制单元AT24C02掉电存储单元里程计价单元串口显示驱动电路总金额显示单价显示GNDVCC18273645A0A1A2WPSCLSDL第6页共29页其中:A2A0:地址引脚;SDA、SCL:I2C总线接口;WP:写保护引脚,WP接VSS时,禁止写入高位地址,WP接VDD时,允许写入任何地址;VCC:电源端;GND:接地端。2.2.3AT24C02掉电存储单元的设计掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。其电路如图5所示。图5掉电存储电路原理图图中、是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C028R10的数据线和地址线是复用的,采用串口方式传送数据,所以只用两根线SCL(位脉冲)和SDA(数据/地址)与单片机传送数据。其工作原理是:每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价信息读到缓存单元中,供主程序使用。2.2.4里程计算和计价单元的设计里程计算是将通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片GNDVCC接P2.6接P2.5.NCNCNCGNDVCCWPSCLSDA123415678R85.1KR105.1KAT24C02A.第7页共29页机,经处理计算,送给显示单元的。其原理如图6所示。图6传感器测距示意图由于A44E属于开关型的霍尔器件,其工作电压范围比较宽,其输V185.4出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHz。A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。图7集成开关型霍耳传感器原理图其原理如下:在输入端输入电压,经稳压器稳压后加在霍耳电势发生器的Vc两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差,该信号经放大器放大后送HV至施密特触发器整形,使其成为方波送到OC门输出。当施加的磁场达到“工作点”(即ON)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端霍尔传感器小磁铁车轮89S51单片机P3.2Vo/V1215200369B/mT工作点(ON)释放点(OFF)b)105(3)VCCa)GND.EBDC(2).OUT(1)A第8页共29页输出低电压,通常称这种状态为“开”。当施加的磁场达到“释放点”(即OFF)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为“关”。这样两次电压变换,使霍耳开关完成了一次开关动作。其外形及接线如图8所示。图8集成霍耳开关外形及接线图在本设计中选择用P3.2口作为信号的输入端,内部采用外部中断0的方式,车轮每转一圈(假设车轮的周长是1米),霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到1000次时,也就是1公里,单片机就控制将金额自动的增加,其计算公式:当前单价公里数=金额。2.2.5数据显示单元设计由于设计要求有单价(2位)、路程(2位)、总金额(3位)显示输出,再加上我们另外扩展了时钟显示(包含时分秒的显示),若采用LCD液晶段码显示,在距离屏幕1米之外就无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此采用6位LED数码管的分屏显示,如图9所示。a)时钟显示(显示为12点0分46秒)b)总金额和单价显示(显示为总金额55.2元,每公里4.6元)A44E1231-2-GNDVc3-OUTOUTb)集成霍耳开关接线图12004612-4-6a)集成霍耳开关外形图552-46.GND1A44E+4.512v2K32.第9页共29页c)路程和单价显示(显示为总路程12公里,当前单价4.6元)d)单价调整显示(显示为右起白天单价4.6元/晚上7.8/中途等待1.2元)图9采用6位LED数码管的分屏显示而数据的分屏显示是通过按键S1来实现切换的,如图10所示。图10S1对分屏显示的切换原理图各按键实现的功能如下:(1)S1按键的功能在出租车不走的时候,按下S1按键,可以实现数据的分屏显示;车在行走的时候只有总金额和单价在显示,当到达目的地的时候,客户要求查看总的里程,就可以按下S1按键切换到里程和单价显示,供客户查询。(2)S2按键的功能在按下S1按键之后,若接着按下S2按键则进行单价调整,默认为调整白天单价,当接着按下S1按键时,可进行晚上单价调整,再次按下S1按键,则可进行中途等待单价调整。当单价调整结束后,可通过按下S2按键进行时间调整,默认为调整时,接着按下S1按键可进行分调整,分调整后再接下S1按键可进行秒调整。当时间调整完成后,若接着按下S2按键则又可进行单价的调整。(3)S3按键的功能在显示金额及单价时,若按下S3按键,则显示路程和单价,再次按下S3按键,127846.S1S2S3S4120046127846552-4612-46一次一次.第10页共29页则返回金额及单价的显示。(4)S4按键的功能在按下S1按键之后,若接着按下S4按键,则进行设定默认晚上单价,并启动计价器,若没有按下S4按键则可设定默认白天单价,并启动计价器。当设定默认晚上单价结束后,再次接下S4按键,则可设定默认中途等待单价,并启动计价器。当设定默认中途等待单价后,若再按一次S4按键,则返回系统时间的显示。2.2.6多功能出租车计价器总体电路图利用AT89S51单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示等功能。其具体电路如图11所示。XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72P1.01.2P1.23.34P1.45.56P1.67.78P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47U1AT89C51SCL6DA5WP7A12U2AT24C1024AMFM+-SRG8RC1/-&1D132456108112913U374HC164C21nFC31nFX1CRYSTALC11uFR110k图11多功能出租车计价器总体电路图第11页共29页第3章系统软件设计本系统的软件设计主要可分为主程序、定时计数中断程序、里程计数中断服务程序、中途等待中断服务程序、显示子程序服务程序、键盘服务程序六大模块。下面对各部分作介绍。3.1系统主程序设计在主程序中,需要完成对芯片各接口的初始化、出租车起价和单价的初始化、中断的设计以及开中断、循环等待等工作。另外,在主程序中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。主程序流程图如图12所示。当按下S1按键时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化。第12页共29页图12主程序流程图否是否S4按下?到一公里?设定中途等待单价否开始初始化程序S1按下?S4按下?设定默认单价(白天)启动计价器里程中断?总路程加一总金额加一传感器有信号?停止计价和里程计数设定晚上单价显示路程及单价S4按下?S3按下?S3按下?显示金额及单价是否是否是是否否是是是否是返回时间显示第13页共29页3.2定时中断服务程序在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就是到了一秒,将数据送到相应的显示缓冲单元,并调用显示子程序实时显示。其程序流程如图14所示。图13定时中断服务程序3.3里程计数中断服务程序每当霍尔传感器输出一个低电平就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,进入里程计数中断服务程序。在该程序中,需要完成当前行驶里程数和总金额的累加,并将结果存入里程和总金额寄存器中。3.4中途等待中断服务程序当在计数状态下霍尔开关没有输出信号时,片内的T1定时器便被启动,每当计时到达10分钟,就会将当前金额加上中途等待的单价,以后每10分钟都自动加上中途等待的单价。当中途等待结束的时候,将自动切换到正常的计价。开始保护现场重置计数初值中断10次?数据送显示缓冲单元调用显示子程序恢复现场并中断返回否是第14页共29页3.5显示子程序服务程序由于是分屏显示数据,所以就要用到4个显示子程序,分别是:时分秒显示子程序、金额单价显示子程序、路程单价显示子程序、单价调整子程序。3.6键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束后再返回。第15页共29页第4章系统调试4.1里程计价测试由于试验条件有限,因此采用电动机附带霍尔元件作为车轮,电机为的直流V3电机,每分的转速可以达到几千转,设电机每转一圈为1米,当电机转动达到1000圈时,就表示已经到达了一公里,系统自动将当前的单价加到总金额上。表1的测试条件是:设定白天的单价是2.5元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。表1白天单价调整41015374959理论7.522.53590120145总金额实际7.5223590120145理论41015374959行驶里程实际4101536.948.959误差00.2%00.02%0.02%0表2的测试条件是:晚上的单价设定为3.0元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。表2晚上单价调整41015374959理论82641107143173总金额实际825.540.5107143173理论41015374959行驶里程实际4101536.54959误差00.2%0.1%0.1%00公里公里第16页共29页表3的测试条件是:设定在单价为2.5元的情况下已经行驶了10公里,进行中途等待,分别等待不同的时间(10分钟为一个单位),起步价为5元(包含3公里)。表3中途等待单价调整204050607080理论30.538.542.546.550.554.5总金额实际30.53842.5465054.5理论000000误差实际00.1%00.1%0.1%0里程测试数据的分析:通过表1、表2、表3的数据,我们可以看到系统的计价功能很稳定,误差很小,几乎为零,不过还应该在实际的应用中测试。4.2掉电存储测试掉电存储是为了防止在系统掉电的情况下所存储的单价信息丢失,在此采用人为的掉电方法实现这一测试。表4掉电存储测试白天单价晚上单价中途等待单价掉电前数据2.53.04.0重新上电后数据2.53.04.0表4显示的数据表明,系统能在掉电的情况下正确的保存数据,并且能在系统上电后将数据读到相应的存储单元。时间第17页共29页第5章结论由于本设计使用的是单片机以及灵敏的霍耳开关型器件,使此出租车计价器具有功能强、性能可靠、电路简单、成本低的特点,而且还具有单价输出、单价调整、路程输出、显示当前的系统时间等功能,再加上经过优化的程序,使其有很高的智能化水平。但是在我们设计和调试的过程中,也发现了一些问题,譬如计价的金额位数有限,实际的里程可能会很远,会超出我们的显示范围。计价器的设计还不够人性化,比如加上语音的提示功能,可能会更有生命力。通过本次设计,让我学到了许多书本上无法学到的知识,也使我深深体会到单片机技术应用领域的广泛,不仅加强了我对所学的单片机知识的巩固,同时也让我对单片机这一门课程产生了更浓厚的兴趣。在本次设计过程中,我学会了在网络上查找有关本设计的硬件资源,其中包括:AT89S51单片机及其引脚说明、AT24C02引脚图及其引脚功能和霍耳传感器的有关知识等,为本次设计提供了一定的资料。由于平时很少进行设计,所以对于设计报告的格式也是近期才接触到,经过这次的设计,为我以后的实际制作奠定了一定的基础。第18页共29页致谢时光飞逝,三年的努力与付出,随着论文的完成,终于让大学的生活,得以划下完美的句点。论文得以完成,要感谢的人实在太多了,首先要感谢我的指导老师潘峰,因为论文是在潘老师的悉心指导下完成的。从课题的选择到设计的最终完成,潘老师都给予我细心的指导和不懈的支持。在他紧张而又繁忙的工作中,还要抽出一定的时间为我进行指导,这篇论文的每个实验细节和每个数据,都离不开他的细心指导。在此,谨向潘老师表示崇高的敬意和衷心的感谢!谢谢潘老师在我撰写论文的过程中给予我极大地帮助。同时,论文的顺利完成,也离不开其他老师和同学的关心与帮助。例如在第2章的硬件设计部分,老师和同学给了我很多不同的建议,并给我提供了许多可行的方案。多亏了他们的帮助,才让我顺利的完成了这一章的内容。所以,在此,我也要感谢曾经帮助过我的老师和同学。第19页共29页参考文献1朱永金,成友才单片机应用技术C语言北京:中国劳动社会保障出版社,20072张鑫,华臻,陈书谦单片机原理及应用北京:电子工业出版社,20053丁元杰,吴大伟单片微机实题集与实验指导书北京:机械工业出版社,20044熊建云Protel99SEEDA技术及应用北京:机械工业出版社2007第20页共29页附录一原理图XTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/A138P0.2/AD237P0.3/A336P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113P3.4/T014P3.7/RD17P3.6/W16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51SCL6SDA5WP7A12U2AT24C1024AMFM+-SRG8RC1/-&1D132456108112913U374HC164C21nFC31nFX1CRYSTALC11uFR110k第21页共29页附录二源程序DAY_PRICEEQU6FHNIGHT_PRICEEQU6EHMIDWAY_PRICEEQU6DHSTART_PRICEEQU6CHCOUNTLEQU6BHCOUNTHEQU6AHM100EQU69H;外部中断次数DISTANCEEQU68H;行车距离MS100EQU67HSECEQU66HMINEQU65HHOUREQU64HLEDSLEQU63H;时分钞显示缓冲区LEDSHEQU62HLEDMLEQU61HLEDMHEQU60HLEDHLEQU5FHLEDHHEQU5EHLEDDANJIALEQU5DH;总额,单价显示缓冲区LEDDANJIAHEQU5CHLINE_EQU5BHLEDCOUNT1EQU5AHLEDCOUNT2EQU59HLEDCOUNT3EQU58HLEDDANJIA2LEQU57H;路程,单价显示缓冲区LEDDANJIA2HEQU56HLINE_EQU55HLINE_EQU54HLEDDISTANCELEQU53HLEDDISTANCEHEQU52HLEDDAY_PLEQU51H;中途,晚上,白天显示缓冲区LEDDAY_PHEQU50HLEDNIG_PLEQU4FHLEDNIG_PHEQU4EHLEDW_PLEQU4DHLEDW_PHEQU4CHS1BITP1.0S2BITP1.1S3BITP1.2S4BITP1.3S11EQU4BHS22EQU4AHS33EQU49HS44EQU48HM1EQU47HH1EQU46HM2EQU45HH2EQU44HPRICEEQU43HORG0000HAJMPMAINORG0003HAJMPTOORG000BHAJMPTOTIMEORG001BHAJMPTOSTARTORG0030HMAIN:MOVSP,#70HMOVTMOD,#11HMOVTH0,#3CHMOVTL0,#0B0HMOVTH1,#3CHMOVTL1,#0B0HMOV22H,#0AHSETBEASETBTR0SETBEX0SETBIT0SETBET0SETBET1第22页共29页MOVR7,#34MOVR0,#69HLOOPL:MOVR0,#0DECR0DJNZR7,LOOPLMOVCOUNTL,#00H;起步价MOVCOUNTH,#05HMOVDAY_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:MOVR0,ADECR0DJNZR2,BK1MOVPRICE,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,WAIT3INCS33MOVA,S33CJNEA,#1,NXT1LCALLDP_DISNXT1:CJNEA,#2,NXT2CLRCMOVA,M2SUBBA,M1MOVM1,AMOVA,H2SUBBA,H1MOVH1,ANXT2:CJNEA,#3,K3MOVS33,#0LCALLCP_DISK3:JBS4,BK_KEY_MAIN第23页共29页ACALLT10MSDJBS4,BK_KEY_MAINWAIT4:JNBS4,WAIT4INCS44MOVA,S44CJNEA,#1,NT1MOVPRICE,DAY_PRICELCALLCP_DISNT1:CJNEA,#2,NT2MOVPRICE,NIGHT_PRICELCALLCP_DISNT2:CJNEA,#3,NT3MOVPRICE,MIDWAY_PRICESETBTR1LCALLCP_DISNT3:CJNEA,#4,BK_KEY_MAINMOVS44,#0LJMPKEY_MAINBK_KEY_MAIN:LJMPWA1KEY_DJ:JBS1,KY1ACALLT10MSDJBS1,KY1WAIT5:JNBS1,WAIT5INCS11MOVA,S11CJNEA,#1,NEXT11LJMPDAY_PNEXT11:CJNEA,#2,NEXT12LCALLNIG_PNEXT12:CJNEA,#3,KY1LCALLMID_PMOVS11,#0LJMPKEY_MAINKY1:JBS2,KY2ACALLT10MSDJBS2,KY2WAIT6:JNBS2,WAIT6INCS22MOVA,S22CJNEA,#1,NEXT13LCALLPA_DISLJMPKEY_DJNEXT13:CJNEA,#2,NEXT14CLRTR0LCALLHMS_DISLCALLKEY_SJNEXT14:CJNEA,#3,KY2MOVS22,#0LJMPKEY_MAINKY2:AJMPKEY_DJKEY_SJ:JBS1,KEY1ACALLT10MSDJBS1,KEY1WAIT7:JNBS1,WAIT7INCS11MOVA,S11CJNEA,#1,NEXT21LCALLHOU_TNEXT21:CJNEA,#2,NEXT22LCALLMIN_TNEXT22:CJNEA,#3,KEY1MOVS11,#0LJMPKEY_MAINKEY1:JBS2,KEY2ACALLT10MSDJBS2,KEY2WAIT8:JNBS2,WAIT8INCS22MOVA,S22CJNEA,#1,NEXT23LCALLPA_DISLJMPKEY_DJNEXT23:CJNEA,#2,NEXT24CLRTR0LCALLHMS_DISNEXT24:CJNEA,#3,KEY2MOVS22,#0LCALLKEY_SJLJMPKEY_MAINKEY2:AJMPKEY_SJDAY_P:SETBF0LCALLT100MSDLCALLT100MSD第24页共29页MOVLEDDAY_PL,#0AHMOVLEDDAY_PH,#0AHLCALLPA_DIS1LCALLT100MSDLCALLT100MSDLCALLPA_DISLP1:JBS3,KEY11MOVA,#1ADDA,DAY_PRICEDAAMOVDAY_PRICE,AMOVA,DAY_PRICECJNEA,#99H,KEY11MOVDAY_PRICE,#0KEY11:JBS4,KEY12LCALLT10MSDJBS4,KEY12MOVA,DAY_PRICEADDA,#99HDAAMOVDAY_PRICE,ACJNEA,#00H,KEY12MOVA,#99HKEY12:JBS1,KEY13ACALLT10MSDJBS1,KEY13WAIT11:JNBS1,WAIT11INCS11MOVA,S11CJNEA,#1,NEXT31LCALLDAY_PNEXT31:CJNEA,#2,NEXT32LCALLNIG_PNEXT32:CJNEA,#3,NEXT33LCALLMID_PNEXT33:CJNEA,#4,KEY13MOVS11,#0KEY13:JBS2,KEY14LCALLT10MSDJBS2,KEY14WAIT12:JNBS2,WAIT12LJMPKEY_MAINKEY14:AJMPDAY_PNIG_P:SETBF0;调用定时延时标志位LCALLT100MSDLCALLT100MSDMOVLEDNIG_PL,#0AHMOVLEDNIG_PH,#0AHLCALLPA_DIS1LCALLT100MSDLCALLT100MSDLCALLPA_DISJBS3,KEY21LCALLT10MSDJBS3,KEY21MOVA,#1ADDA,NIGHT_PRICEDAAMOVNIGHT_PRICE,ACJNEA,#99H,KEY21MOVNIGHT_PRICE,#0KEY21:JBS4,KEY22LCALLT10MSDJBS4,KEY22MOVA,NIGHT_PRICEADDA,#99HDAAMOVNIGHT_PRICE,ACJNEA,#00H,KEY22MOVNIGHT_PRICE,#99HKEY22:JBS1,KEY23ACALLT10MSDJBS1,KEY23WAIT15:JNBS1,WAIT15INCS11MOVA,S11CJNEA,#1,NEXT41LCALLDAY_PNEXT41:CJNEA,#2,NEXT42LCALLNIG_PNEXT42:CJNEA,#3,NEXT43LCALLMID_P第25页共29页NEXT43:CJNEA,#4,KEY23MOVS11,#0LJMPKEY_DJKEY23:JBS2,KEY24LCALLT10MSDJBS2,KEY24WAIT30:JNBS2,WAIT30LJMPKEY_MAINKEY24:AJMPNIG_PMID_P:SETBF0;调用定时延时标志位LCALLT100MSDMOVLEDW_PL,#0AHMOVLEDW_PH,#0AHLCALLPA_DIS1LCALLT100MSDLCALLPA_DISJBS3,KEY31LCALLT10MSDJBS3,KEY31MOVA,MIDWAY_PRICEADDA,#1DAAMOVMIDWAY_PRICE,ACJNEA,#99H,KEY31MOVMIDWAY_PRICE,#00HCJNEA,#100,KEY31MOVMIDWAY_PRICE,#0KEY31:JBS4,KEY32LCALLT10MSDJBS4,KEY32MOVA,MIDWAY_PRICEADDA,#99HDAAMOVMIDWAY_PRICE,ACJNEA,#00H,KEY32MOVNIGHT_PRICE,#99HKEY32:JBS1,KEY33ACALLT10MSDJBS1,KEY33WAIT18:JNBS1,WAIT18INCS11MOVA,S11CJNEA,#1,NEXT51LCALLDAY_PNEXT51:CJNEA,#2,NEXT52LCALLNIG_PNEXT52:CJNEA,#3,NEXT53LCALLMID_PNEXT53:CJNEA,#4,KEY33MOVS11,#0LJMPKEY_DJKEY33:JBS2,KEY34LCALLT10MSDJBS2,KEY34WAIT31:JNBS2,WAIT31LJMPKEY_MAINKEY34:AJMPMID_PHOU_T:SETBF0;调用定时延时标志位LCALLT100MSDLCALLT100MSDMOVLEDHL,#0AHMOVLEDHH,#0AHLCALLHMS_DIS1;直接调用显示,不经过拆分程序LCALLT100MSDLCALLT100MSDMOVSEC,#0LCALLHMS_DISJBS3,KEY41MOVA,HOURADDA,#1DAAMOVHOUR,ACJNEA,#24H,KEY41MOVHOUR,#0KEY41:JBS4,KEY42MOVA,HOURADDA,#99HDAAMOVHOUR,ACJNEA,#99H,KEY42MOVHOUR,#23HKEY42:JBS1,KEY43第26页共29页ACALLT10MSDJBS1,KEY43WAIT21:JNBS1,WAIT21INCS11MOVA,S11CJNEA,#1,NEXT61LJMPHOU_TNEXT61:CJNEA,#2,NEXT62LJMPMIN_TNEXT62:CJNEA,#3,KEY43MOVS11,#0LJMPKEY_SJKEY43:JBS2,KEY44LCALLT10MSDJBS2,KEY44WAIT32:JNBS2,WAIT32LJMPKEY_MAINKEY44:AJMPHOU_TMIN_T:SETBF0;调用定时延时标志位LCALLT100MSDLCALLT100MSDMOVLEDML,#0AHMOVLEDMH,#0AHLCALLHMS_DIS1;直接调用显示,不经过拆分程序LCALLT100MSDLCALLT100MSDMOVSEC,#0LCALLHMS_DISJBS3,KEY51MOVA,MINADDA,#1DAAMOVMIN,ACJNEA,#60H,KEY51MOVMIN,#0KEY51:JBS4,KEY52MOVA,MINADDA,#99HDAAMOVMIN,ACJNEA,#99H,KEY52MOVMIN,#59HKEY52:JBS1,KEY53ACALLT10MSDJBS1,KEY53WAIT24:JNBS1,WAIT24INCS11MOVA,S11CJNEA,#1,NEXT71LCALLHOU_TNEXT71:CJNEA,#2,NEXT72LCALLMIN_TNEXT72:CJNEA,#3,KEY53SETBTR0MOVS11,#0LJMPKEY_SJKEY53:JBS2,KEY54LCALLT10MSDJBS2,KEY54WAIT33:JNBS2,WAIT33LJMPKEY_MAINKEY54:AJMPMIN_TTOTIME:PUSHPSWPUSHACCMOVTH0,#3CHMOVTL0,#0B0HINCMS100MOVA,MS100CJNEA,#10,RETURNMOVMS100,#0MOVA,SECADDA,#1DAAMOVSEC,ACJNEA,#60H,RETURNMOVSEC,#0MOVA,#1HADDA,MINDAAMOVMIN,ACJNEA,#60H,RETURNMOVMIN,#0MOVA,#1H第27页共29页ADDA,HOURDAAMOVHOUR,ACJNEA,#24H,RETURNMOVHOUR,#0RETURN:POPACCPOPPSWRETITO:PUSHPSWPUSHACCMOVA,#1ADDA,M100MOVM100,AMOVA,M100CJNEA,#100,RETURN1MOVM100,#0INC21HMOVA,21HCJNEA,#0AH,RETURN1;已经到了1公里MOV21H,#0MOVA,#1ADDA,DISTANCEDAAMOVDISTANCE,AMOVA,PRICEADDA,COUNTLDAAMOVCOUNTL,ACJNEA,#10H,RETURN1MOVCOUNTL,#0MOVA,#1ADDA,COUNTHDAAMOVCOUNTH,ACJNEA,#99H,RETURN1MOVCOUNTH,#0RETURN1:POPACCPOPPSWRETITOSTART:PUSHPSWPUSHACCMOVTH1,#3CHMOVTL1,#0B0HDJNZ22H,RETURN2;1S未到返回MOV22H,#0AHMOVA,#1ADDA,23HDAAMOV23H,ACJNEA,#60H,RETURN2MOV23H,#0MOVA,#1ADDA,24HDAAMOV24H,ACJNEA,#10H,RETURN2MOV24H,#0MOVA,START_PRICEADDA,COUNTLDAAMOVCOUNTL,ACJNEA,#10H,RETURN2MOVCOUNTL,#0MOVA,#1ADDA,COUNTHDAAMOVCOUNTH,ACJNEA,#99H,RETURN2MOVCOUNTH,#0RETURN2:POPACCPOPPSWRETIHMS_DIS:PUSHACCPUSHPSWSETBRS1MOVR0,#SEC;时分秒的拆分(三个字节)MOVR1,#LEDSLMOVR6,#03HLOOP1:MOVA,R0MOVB,AANLA,#0FHMOVR1,ADECR1第28页共29页MOVA,BSWAPAANLA,#0FHMOVR1,ADECR1DECR0DJNZR6,LOOP1POPPSWPOPACCHMS_DIS1:PUSHACCPUSHPSWMOVR7,#06HMOVR0,#LEDSLLOOP:MOVA,R0MOVDPTR,#TABMOVCA,A+DPTRMOVSBUF,ABK:JBCTI,NEXTSJMPBKNEXT:DECR0DJNZR7,LOOPCLRRS1POPPSWPOPACCRETCP_DIS:PUSHACCPUSHPSWSETBRS1MOVR0,#COUNTH;MOVR1,#LEDCOUNT2MOVA,R0MOVB,AANLA,#0FHMOVR1,ADECR1MOVA,BSWAPAANLA,#0FHMOVR1,AMOVLEDCOUNT1,COUNTLMOVA,LEDCOUNT1;送总金额低位MOVDPTR,#TABMOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTIMOVA,LEDCOUNT2;送总金额中位MOVDPTR,#TABMOVCA,A+DPTRCPLACC.4MOVSBUF,AJNBTI,$CLRTIMOVA,LEDCOUNT3;送总金额高位MOVDPTR,#TABMOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTICLRRS1MOVSBUF,#0FEH;送短线(短线的字型码是0FEH)JNBTI,$CLRTIMOVR0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论