毕业论文-基于89S51单片机的出租车计价器系统设计【定稿】 06099.doc

上传人:爱问知识人 文档编号:3941669 上传时间:2019-10-10 格式:DOC 页数:49 大小:624.52KB
返回 下载 相关 举报
毕业论文-基于89S51单片机的出租车计价器系统设计【定稿】 06099.doc_第1页
第1页 / 共49页
毕业论文-基于89S51单片机的出租车计价器系统设计【定稿】 06099.doc_第2页
第2页 / 共49页
毕业论文-基于89S51单片机的出租车计价器系统设计【定稿】 06099.doc_第3页
第3页 / 共49页
毕业论文-基于89S51单片机的出租车计价器系统设计【定稿】 06099.doc_第4页
第4页 / 共49页
毕业论文-基于89S51单片机的出租车计价器系统设计【定稿】 06099.doc_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《毕业论文-基于89S51单片机的出租车计价器系统设计【定稿】 06099.doc》由会员分享,可在线阅读,更多相关《毕业论文-基于89S51单片机的出租车计价器系统设计【定稿】 06099.doc(49页珍藏版)》请在三一文库上搜索。

1、目 录第一章 引言1第二章 出租车计价器的设计内容22.1基本设计要求 22.2拓展功能 2第三章 方案论证33.1方案比较 33.2确定方案 4第四章 计价器系统设计54.1计价器工作原理 54.2 单片机系统总体设计 6第五章 硬件设计75.1单片机总体电路图设计75.2 AT89S51单片机介绍85.3电源控制线路设计 85.4里程计算、计价单元的设计 125.5数据显示单元的设计155.6 AT24C02 掉电存储单元的设计185.7启动及清除电路195.8按键单元的设计19第六章 软件设计 206.1软件设计 206.2流程图25第七章 程序设计 287.1主程序清单287.2计价器

2、子程序清单38第八章 测试分析 678.1里程计价测试678.2掉电存储测试测试68第九章 设计总结及展望629.1设计总结699.2展望新型多功能出租车计价器709.3 新型产品的未来 71致谢 72参考文献 73附件(系统设计总电路图)74基于89S51单片机的出租车计价器系统设计摘要:现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。本电路以89S51 单片机为中心、附加A44E 霍尔传感器测距,实现对出租车计

3、价统计,采用AT24C02 实现在系统掉电的时候保存单价和系统时间等信息,输出采用8 段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机同志提供方便。关键词:89S51单片机 A44E霍尔传感器 断电保存 8段数码显示管Abstract: It is now the major cities in the taxi industry have universal automatic meter, meter technology development is a foregone conclusion. And

4、 some small cities not yet universal, but with increasing speed up urban construction, a symbol of urban landscape taxi industry will also accelerate development, and the popularity meter is no doubt, therefore, the future of the automobile market valuation is still potential . The circuit of 89 S51

5、 MCU as the center, additional A44E Hall sensor location and realize the Taximeter statistics, a brownout AT24C02 achieve in the system and when the system priced preservation time information, output by paragraph 8 of the digital display. The circuit design of the meter can not only realize the bas

6、ic valuation, but also in accordance with the day, night, halfway to wait for price regulation, while also not denominated as a time clock to provide convenience for the drivers comrades. Keywords: 89 S51 MCU A44E Hall sensor power preservation of digital display paragraph 8第一章 引 言随着生活水平的提高,人们已不再满足于

7、衣食住的享受,出行的舒适已受到越来越多人的关注。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。用更加精良的计价器来为乘客提供更加方便快捷的服务。我国在70年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。随着城市旅游业的发展,出租

8、车行业已成为城市的窗口,象征着一个城市的文明程度。现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。凡乘过出租车的人都知道,只要汽车开动,随着行驶里程的增加,就会看到汽车前面的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如5KM)计费数字显示开始从起步价(如10元)增加。当出租车到达某地需要在那里等候时,司机只要按一下“计时”键,每等候一定时间,计费显示就增加一个该收的等候费用。汽车继续行驶时,停止计算

9、等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来

10、完成更多的附加功能。第二章 出租车计价器系统设计内容2.1基本设计内容(1) 不同情况具有不同的收费标准。l 白天l 晚上l 途中等待(10min 开始收费)(2) 能进行手动修改单价(3) 具有数据的复位功能(4) IO 口分配的简易要求l 距离检测使用霍尔开关A44El 白天/晚上收费标准的转换开关l 数据的清零开关l 单价的调整(最好使用 和 按键)(5) 数据输出(采用LCM103)l 单价输出2 位l 路程输出2 位l 总金额输出3 位(6) 按键l 启动计时开关l 数据复位(清零)l 白天/晚上转换2.2拓展功能l 能够在掉电的情况下存储单价等数据l 能够显示当前的系统时间l 语音

11、播报数据信息第三章 方案论证3.1方案比较方案一:采用数字电路控制。其原理方框图如图31 所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。移位寄存器电路金额显示单价显示里程传感器电源电路及保护电路图31数字电路方案方案二:采用单片机控制。利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。其原理如图32所示。89S51单片机键盘控制总金额显示单价显示AT24C02掉电存储串口显示驱动电路里程计算单元图32单片机控制方案3.2

12、确定方案通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。第四章 单片机计价器系统总体设计4.1计价器的工作原理通常计价器采用MCS - 51 芯片,在EEPROM中预先已写入了有关程序和数据的信息,如基本距离、续程距离、候时时间的规定值,与收费标准规定相应的收费价格值,不同出租条件下收费的变化比率,附加车费值计费方式等数据和与收费办法相应的车费计算与控制程序等,并且在计价器安装前已根据不同车型选定好K 值。计价器的原理结构如图4-1 所示。在工作过程中其主要的功能都是由MCS - 51

13、 芯片中的定时器/ 计数器来实现。图4-1 计价器的原理结构图4.2 单片机系统总体设计单片机系统总体设计框图如图4-2所示启动/清除开关89S51单片机AT24C02掉电存储里程传感器键盘控制串口显示驱动电路总金额显示单价显示锁存器图42 单片机系统总体设计框图第五章 硬件设计5.1单片机总体电路图设计电路图见附图一所示5.2 AT89S51单片机介绍AT89S51兼容MCS51微控制器,4K字节FLASH存贮器支持在系统编程ISP 1000次擦写周期,128字节片内RAM,工作电压4.0V到5.5V,全静态时钟0 Hz 到33 MHz,三级程序加密,32个可编程IO口,2/3个16位定时/

14、计数器,6/8个中断源,全双工UART,低功耗支持Idle和Power-down模式, Power_down模式支持中断唤醒, 看门狗定时器,双数据指针,上电复位标志。内部逻辑结构,如图5-1所示。图5-1 AT89S51内部逻辑结构图1.定时器/ 计数器的基本原理作为基本组成内容,AT89S51单片机共有两个可编程的定时器/ 计数器,分别称定时器/ 计数器0和定时器/ 计数器1 。它们都是十六位加法计数结构,分别由TH0 和TL0 及TH1 和TL1 两个8 位计数器组成。2.计数功能所谓计数是指对外部事件进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。MC

15、S - 51 芯片有T0 ( P3. 4)和T1 (P3. 5) 两个信号引脚,分别是这两个计数器的计数输入端。外部输入的脉冲在负跳变时有效,进行计数器加1 (加法计数) 。3.定时功能定时功能也是通过计数器的计数来实现的,不过这时的计数脉冲来自单片机的内部,既每个机器周期产生一个计数脉冲。也就是每个机器周期计数器加1 。由于一个机器周期等于12 个振荡脉冲周期,因此计数频率为振荡频率的1/ 12 。如果单片机采用12MHz 晶体,则计数频率为1MHz。即每微秒计数器加1 。这样不但可以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的预置值。5.3电源控制线路设计出租车计价

16、器316V/ 60mAh 镍镉电池恒流充放电控制线路额定电压316V , 容量为60mAh 的Nicd 电池在出租车计价器中有着广泛的应用,它也是其它智能化仪表中最为常用的备用电池。在出租车计价器的日常维护中,一旦由于电池爬碱(轻微漏液),线路漏电、短路以及长期使用造成电池性能下降时,对电池的处理办法一般采用弃用。然而对这类电池进行适当的维护,如对爬碱的电池进行清理并用绝缘胶密封,对记忆效应明显的电池可进行多次循环充放电加以消除,有不少电池仍可利用,但这需要一种可用于判定电池性能的容量检测线路,而普通的NiCd 电池充电器并不具有这一功能。为此笔者设计了一种适用于316V/ 60mAh NiC

17、d 电池恒流充放电控制线路,不仅可用于容量检测,在作一般的充电器使用时,可在充电前对电池的剩余容量给予准确有效的放电以消除其记忆效应,比普通的充电线路更具优越性。1基本原理(1)恒流放电线路图5-2 是恒流放电线路原理图,其基本工作原理是当电池放电时,由于电压下降引起电流下降时,通过电阻R 的反馈及运放的调整,使三极管T 的基极电流发生变化,调节三极管ce 极压降从而确保R 上的电压不变,使之流过的电流保持恒定。设电池放电电流为I ,运放同反相端电压分别为V + , V - ,基准稳压管D 的电压为E0 ,由于三极管的基极电流较小,可忽略不计,因此流过R 的电流可视为电池的放电电流。则:图5-

18、2 恒流放电线路原理图V = RI , V + = E0由于运放的同反相端电压相等,即V + = V - ,因此:E0 = RI则: I = E0/ R显然,放电电流只决定于基准电压E0 及限流电阻R 的阻值,与电池电压无关,一旦E0 及R 保持定值,电流I 即恒定不变。由于R 上的压降必须大于电池的终止放电电压,并确保三极管c e 之间的压降有足够的调整空间,因此R 的取值不易过大。(2)放电终止控制线路图5-3 为放电终止控制线路原理图,图中运放构成电压比较器,当电池电压E 大于基准电压E0 时,V + V - ,比较器输出高电平,三极管导通,继电器吸合。同样当电池电压低于基准电压时, V

19、 + V - 。运放输出低电平,三极管截止,继电器断开。这样,便可通过继电器触点控制放电电流的通断。根据“GB/ T1103 - 1996 圆柱密封镉镍可充单体电池”标准规定, 单体电池的终止放电电压为110V ,对于316V NiCd 电池是由三只单体电池串联而成,因此,终止放电电压为310V ,而图中的基准电压应取E0 = 3. 0V。图5-3 放电终止控制线路原理图(3)恒流充电线路图5-4为由78L05 构成的恒流充电线路原理图,图中: I0 = U0/ R ,则充电电流I 为:I = I0 + I d = U0/ R + Id式中U0 为78L05 的输出电压(定值+ 5V) ,而I

20、d 为78L05 的静态工作电流,一般在几至十几毫安也为定值,因此,一旦R 调整确定,充电电流即为恒定电流不变。图中输入电压Ui 要求大于U0 + E ,其中E 为电池电压。D 是反向隔离二极管,为防止电池电流反串而设。由于785L05 输出电流仅为100mA ,因此,该线路的充电电流也不超过100mA。图5-4 恒流充电线路原理图(4)充电定时控制线路如图5-5 所示由555 及两级4020 计数器构成了充电定时控制线路,图中555 构成了多谐振荡器,其周期稳定的振荡波形经两级4020 计数实现长时间定时,采用两级计数的目的是为了降低555 的振荡周期,以便采用小容量CBB (金属聚酯膜电容

21、) 振荡电容,虽然采用单级4020 计数同样可达到两级计数的定时时间,但振荡电容必须采用容量较大的电解电容,而电解电容的稳定性及温度特性远不及CBB电容。如采用10F 的电解电容,当温度在030 范围内波动时,8 小时的定时时间将产生30min 的温度误差,而采用CBB 电容产生的误差小于1min。图中调整W1 使555 振荡周期为t = 11716ms ,则定时时间: T = 214 210 t = 810h 。图中按下AN1 ,4020 复位,4020 ( IC3) 的Q10输出低电平,三极管T导通,继电器通电,触点J K 吸合自锁,接通充电电路工作电源对电池进行充电,同时555 振荡,4

22、020开始计数,当定时时间达到预定时间后,4020 ( IC3)的Q10输出高电平,三极管T 截止,继电器线包断电,触点J K断开,切断定时线路及后级充电线路工作电源,停止对电池充电。图5-5 电池恒流充放电控制线路2恒流充放电控制线路图5-5 为316V/ 60mAh NiCd 电池恒流充放电控制线路,其容量检测精度优于3 %(不计计时误差) 。根据GB/ T11013 1996 标准规定,NiCd 电池容量测试时的充电电流应为012C (C 为电池容量) ,充电时间8h ,然而以012C 的恒定放电电流放电至终止电压,要求最小放电时间不低于4175h 。因此,图中充放电电流为12mA。充电

23、定时时间为8h 。(1)恒流放电控制线路:图5-5 中运放A1 、A2 采用LM324 (一片LM324 可用于二个放电控制线路) 。其中A1 、A2 的基准电压由工作电源(当采用7812 稳压器稳压后的工作电源已有足够的稳压精度) 分压而成,A1 的基准电压为112V ,通过W2 调整,A2 的基准电压为310V ,可通过W3 调整。当K1 时,NiCd 电池接入放电回路,按下AN1 ,当电池电压高于310V 时, 继电器动作,J K1 吸合自锁,L ED1 亮,表示放电开始,当电池电压低于310V 时,继电器断开,电池终止放电,同时其常闭触点闭合,蜂鸣器鸣响,提示放电终止,只有当K 2或切

24、断工作电源时蜂鸣才停止蜂鸣。若按下AN1 蜂鸣器一直鸣响,说明电池电压已低于310V ,不用再进行放电。(2)恒流定时充电控制线路:图5-5 中W3 为充电电流调节电阻,调整W3 使充电电流为12mA。图中C2 、R8 及C3 、R10 为4020 上电复位线路,C4 、C5 、C6 为旁路电容,可提高定时线路的干扰性能。555 选择电压、温度漂移较小的SE555 ,L ED2 用于充电状态指示,当K 2 时,电池接入充电回路,按下AN2 ,电池便开始充电,同时L ED2 闪烁,当充电时间到8h 时,线路自动切断并停止充电。 线路用于电池容量检测时,首先对电池剩余容量放电,当放电至终止电压时,

25、转入8 小时充电,充电完毕后,再进行放电,记录开始放电至终止放电的时间t (h) ,即可计算出电池的容量:实际容量= t 额定容量/ 5h (mAh)一般出租车计价器关机时, 静态电流小于50A ,而计价器要求断电一个月其内存数据及时钟线路仍能正常工作,可计算出备用电池容量不得低于36mAh ,因此若实际容量仍能达到36mAh ,则可继续使用。图5-5 为单路充放电控制线路。多路可按图复制,但定时控制线路只需一路。控制线路电压可由220V 交流经变压、整流、滤波后由7812 提供,若变压器次级电流为1A(电压可选15V) ,而继电器的线包电流小于100mA ,则最多可驱动8 路充放电控制线路,

26、可同时对8 节316V/ 60mAh 时NiCd 电池进行充放电。5.4里程计算、计价单元的设计1车轮转动里程检测电路该电路的主要作用是敏感路程,产生计程脉冲;在具体实现时采用霍尔传感器A44E来作为里程传感器,将安装在与车轮相连接的涡轮变速器的磁铁上,使汽车每前进10 m传感器产生一次脉冲,即向里程计数器电路发出一个计数脉冲,以使得计数电路进行里程计数。车速传感器测控系统框图如图5-6所示89S51单片机计价系统D/A转换A/D转换测速采集卡车速传感器图5-6 车速传感器测控系统框图2里程计数中断电路当车轮转动里程检测电路提供了计程脉冲信号后,里程计数中断电路则根据该脉冲信号定时向微机系统发

27、出计数中断请求信号,使系统根据一定的算法对里程数据进行计数计算。里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图56所示。 89S51 单片机 霍尔传感器小磁铁车轮图57传感器测距示意图由于A44E 属于开关型的霍尔器件,其工作电压范围比较宽(4.518V),其输出的信号符合TTL 电平标准,可以直接接到单片机的IO 端口上,而且其最高检测频率可达到1MHZ。集成开关型霍耳传感器原理如图5-8,A44E 集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D 和OC 门输出E 五个基本部分组成。在输入端

28、输入电压CC V ,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差H V 输出,该H V 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC 门输出。当施加的磁场达到.工作点.(即OP B )时,触发器输出高电压(相对于地电位),使三极管导通,此时OC 门输出端输出低电压,通常称这种状态为.开.。当施加的磁场达到.释放点.(即rP B )时,触发器输出低电压,三极管截止,使OC 门输出高电压,这种状态为.关.。这样两次电压变换,使霍耳开关完成了一次开关动作。图58 集成开关型霍耳

29、传感器原理图其集成霍耳开关外形及接线如图59 所示。图59集成霍耳开关外形及接线我们选择了P3.2 口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1 米),霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到1000 次时,也就是1 公里,单片机就控制将金额自动的加增加,其计算公式:当前单价 公里数=金额。5.5数据显示单元的设计设计使用一个定时/计数器每1/10 s向主机发一次中断请求信号,并利用并行接口电路完成对时钟的实时显示功能。同时,利用动态扫描电路完成对出租车的起价和当前累计价的显示。由于设计要求有单价(2 位)、路

30、程(2 位)、总金额(3 位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),采用LCD 液晶段码显示,在距离屏幕1 米之外就无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用6 位LED数码管的分屏显示,如图510所示:图510 a 时钟显示(图中显示为12点34分46秒)图510 b 总金额和单价显示(图中显示为总金额12.3元,每公里4.6元)图510 c路程和单价显示(图中显示为总路程12公里,当前单价4.6 元)图510 d单价调整显示(图中显示为右起白天单价4.6元/晚上7.8/中途等待1.2 元)数据的分屏的显示是通过按键S1 来实现切换的,如

31、图511所示。图511 S1切换显示屏在出租车不走的时候,按下S1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1 切换到里程和单价显示屏,供客户查询。显示电路的电路原理图见附图二所示。从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器74HC164还兼作数码管的驱动,插头1(header1)接电源,插头2(header2)接数据和脉冲输出端。电路中的三个整流管D1D3 的作用是降低数码管的工作电压,增加其使用寿命。5.6 AT24C02

32、 掉电存储单元的设计掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02 是ATMEL 公司的2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40 年以上,而且采用8 脚的DIP 封装,使用方便。其电路如图5-12所示。图512 掉电存储电路原理图图中R8、R10 是上拉电阻,其作用是减少AT24C02 的静态功耗,由于AT24C02 的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送

33、数据。每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。5.7启动及清除电路在系统电路中,设计一个启动/清除按钮,用来作为启动里程计数或清除里程数计数的开关。将该按钮开关接到微机系统的某个中断请求线上,当开关被按下一次时就作为计程启动中断请求;再按下一次时,就作为系统的计程清0中断处理。5.8按键单元的设计电路共采用了四个按键,S1、S2、S3、S4,其功能分别是:S1 分屏显示切换按键,S2功能设定按键,S3 ./白天晚上切换按键,S4 ./中途等待开关。第六章 软件设计6.1

34、软件设计该系统软件采用汇编语言编制,模块化设计,分为主程序,脉j巾中断程序,空车牌中断程序,键盘中断程序,日历时钟芯片中断程序,打印及显示程序。在空车牌中断程序中完成对出租车营运状态的判断;在脉冲中断程序中完成计量计价工作;日历时钟芯片每秒钟向80C31发中断请求,在中断程序中完成等候计时工作或者时钟显示工作。键盘中断程序用于完成各次营运数据的查寻工作。结构框图如6-1图所示主程序定时中断服务程序里程计数中断服务程序中途等待中断服务程序启动/清除计程中断服务程序显示子程序服务程序键盘服务程序图6-1 系统软件结构框图该计程计价系统的软件设计分为以下几个模块:1主程序模块在主程序模块中,需要完成

35、对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。当主程序判断出有“启动计程中断”发生时,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将已行走的里程数和当前累计价格送显示电路显示出来。当主程序判断出有“清除计程中断”产生时,将显示电路中的当前行驶里程数和运行累

36、计价格清0,并重新进行初始化过程。其程序流程如图6-5所示.当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。2定时中断服务程序在定时中断服务程序中,需要完成对行车时间的累加计数,并将该时间数据和当前时钟送显示电路进行实时显示。在定时中断服务程序中,每100m

37、s 产生一次中断,当产生10 次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。如图6-2所示定时中断定时处理键码分析功能键分别执行各自模块显示中断返回有按键否?有无有无图6-2 定时中断服务程序流程图 3里程计数中断服务程序当里程计数器对里程脉冲计满一定数值时,就由里程计数中断电路向微机发出中断请求,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数的累加操作,并将结果存入里程寄存器中。每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000 次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。在该程序中

38、,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。如图6-3所示传感器产生中断信号中断信号处理键码分析功能键分别执行各自模块显示中断返回有按键否?有无有无图6-3 里程计数中断服务程序流程图4中途等待中断服务程序当在计数状态下霍尔开关没有输出信号,片内的T1 定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。如图6-4所示中途等待产生中断定时器启动中途等待结束正常计价显示中途等待中断服务程序图6-4 中途等待中断服务程序流程图5启动/清除计程中断服务程序当系统有启动

39、/清除中断请求产生时,我们可以设定第一次中断为启动中断,第二次中断为清除中断,并在中断服务程序中将标志寄存器的内容相应置“1”或清“0”。其中,标志为“1”时表示本次中断是启动中断;为“0”时表示是清除中断。6显示子程序服务程序由于是分屏显示数据,所以就要用到4 个显示子程序,分别是:时分秒显示子程序(HMS_DIS)、金额单价显示子程序(CP_DIS)、路程单价显示子程序(DP_DIS)、单价调节子程序(PA_DIS)。7键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。6.2 流程图1主程序流程图主

40、程序流程图如图65所示:图65主程序流程图2计价流程图计价流程图如图66 所示:图66 计价流程图3单价时间调整流程图单价时间调整流程图如图67所示:图67 单价时间调整流程图第七章 程 序 设 计7.1 主程序清单出租车计价器程序ORG 0000HZ8279 EQU 0FF82HPOP PSWPOP ACCHMS_DIS1: PUSH ACCPUSH PSWMOV R7,#06HMOV R0,#LEDSLLOOP: MOVA, R0MOVDPTR,#TABMOVCA,A+DPTRMOV SBUF,ABK: JBCTI,NEXTSJMPBKNEXT: DECR0DJNZR7,LOOPCLRRS1POPPSWPOPACCRET总金额和单价显示CP_DIS:PUSH ACC ;(countpricedisplay)PUSH PSWSETB RS1MOV R0,#COUNTH ;MOV R1,#LEDCOUNT2MOV A, R0MOV B, AANL A, #0FHMOV R1,ADEC R1MOV A, BSWAPACLR RS1MOV SBUF,#0FEH ;-送短线(短线的字型码是0FEH)JNB TI, $CLR TIMOV R0,#PRI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1