出租车自动计费器

合集下载

出租车计价器__毕业设计(完整版)

出租车计价器__毕业设计(完整版)

摘要现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局,预计未来计价器市场很有前景。

计价器作为出租车的一个重要组成部分,关系着出租车司机和乘客双方利益,起着重要的作用,因此,具有良好性能的计价器对广大出租车司机朋友和乘客来说是很必要的。

但是现阶段出租车的计费系统功能有时候并不能满足出租车司机的意愿。

本课题是出租车计价器系统的设计。

重点是设计出租车计价器的实用性,并尽量使最后的成品接近于商品。

整个系统是以89S51单片机为中心,采用A44E霍尔传感器对轮胎转数进行计数,实现对出租车里程的测量,并最终计算出结果。

其中采用掉电存储芯片AT24C02使系统在掉电的时候对单价、里程等信息进行存储,人机交换界面采用的是LCD1602液晶屏显示,并且通过语音芯片进行播报。

本电路设计的出租车计价器不但能实现计价的功能,同时还能实现根据时钟芯片自动调整白天、黑天计价模式,能自动处理中途等待等功能。

关键词:单片机AT89S51;LCD1602;出租车计价器;霍尔传感器;AT24C02ABSTRACTAutomatic taximeter has been universal among Cities for now. The taximeter technology is a foregone conclusion already. So taximeter of cars is still potential at next generation. As an important component taximeter is not only the interests of taxi drivers but also the passengers, so it has played an important role. The good performed taximeter is necessary for the public. The current taxi billing systems don’t meet the wishes of people. In this article we talk about various designs of taximeter system.The point is to design the practicality of the taximeter and as far as possible to make the final finished product close to commodities. The whole system is based on single-chip 89S51 and use a hall-sensor A44E to count the number of revolutions. In this way we can achieve the statistics of the taxi mileage and give out the final results. In this design we use AT24C02 to store the price, mileage and other information when the power is down. The man-machine interface of the exchange is LCD1602 screen, and through the voice chip broadcasts. This circuit design can not only realize the meter taxi valuation function, but also can realize the automatic adjustment according to the clock chips during the day, dark pricing mode, it can automatic processing midway waiting for function. Keywords: single-chip AT89S51; LCD1602; Taximeter; Hall sensor; AT24C02目录摘要 (I)ABSTRACT ....................................................................................... I I 1 绪论. (1)1.1 国内外出租车计价器的研究现状 (1)1.2 国内外出租车计价器的发展趋势 (2)1.3 本课题的研究目的及意义 (2)2 出租车计价器的方案论证 (4)2.1 出租车计价器的功能要求 (4)2.2 方案论证与比较 (5)3 出租车计价器的硬件设计 (7)3.1 单片机的介绍 (7)3.2 单片机最小系统 (11)3.3 里程计算模块的设计 (13)3.4 显示模块设计 (16)3.5 语音模块的设计 (18)3.6 掉电存储电路的设计 (21)3.7 按键电路的设计 (23)3.8 时钟电路的设计 (24)4 出租车计价器的软件设计 (27)4.1 模块介绍 (27)4.2 主程序模块 (27)4.3 里程计数中断程序 (28)4.3 定时中断服务程序 (29)4.4 中途等待服务程序 (30)4.5 显示服务子程序 (31)4.6 键盘服务程序 (33)5 系统调试 (34)5.1 软件调试 (34)5.2 里程计价测试 (35)5.2 掉电存储测试 (37)结论与展望 (38)可行性分析报告 (39)参考文献 (40)致谢 (41)附录一 (42)附录二 (43)附录三 (76)1 绪论出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器技术也在不断进步和提高。

实验十四出租车计费器

实验十四出租车计费器

实验十四出租车计费器一、实验任务及要求1.能实现计费功能,计费标准为:按行驶里程收费,起步费为7.00元,并在车行3公里后再按2.2 元/公里,当计费器计费达到或超过一定收费 (如20元)时,每公里加收50%的车费,车停止不计费。

2.实现预置功能:能预置起步费、每公里收费、车行加费里程。

3.实现模拟功能:能模拟汽车启动、停止、暂停、车速等状态。

4.设计动态扫描电路:将车费显示出来,有两位小数。

5.用VHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。

6.各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。

7.完成电路全部设计后,通过系统实验箱下载验证设计课题的正确性。

二、实验原理系统顶层框图:车速控制模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY speed ISPORT(clk,reset,start : IN S TD_LOGIC;――clk基本车速,reset复位,start起停开关k : IN S TD_LOGIC_VECTOR(4 downto 0);――车速选择clkout : OUT STD_LOGIC); ――脉冲输出END speed;ARCHITECTURE a OF speed ISSIGNAL count1 : STD_LOGIC_VECTOR(1 downto 0);SIGNAL tempclk,clks : STD_LOGIC;SIGNAL kinside : STD_LOGIC_VECTOR(4 downto 0);BEGINkinside<="00000"-k;――车速越大,脉冲输出频率约高,因此计数周期越小clks_label:PROCESS (reset,clk)variable count2 : STD_LOGIC_VECTOR(4 downto 0);BEGINIF reset='1' THENcount2:="00000";ELSIF clk'event and clk='1' THENif start='1'thenif count2=kinside then count2:="00000"; end if;――计数周期if not (k="00000") then count2:=count2+1; end if;――车速不为0if count2="00001" then tempclk<=not tempclk; end if;――每个计数周期发出一个脉冲END IF;end if;END PROCESS clks_label;clkout<=tempclk;END a;里程计数模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity cdu99 isport ( clk,reset:in std_logic;count1 :out std_logic_vector (3 downto 0);――里程数值的十分位count2 :out std_logic_vector (3 downto 0); ――里程数值的个位count3 :out std_logic_vector (3 downto 0)); ――里程数值的十位end cdu99 ;architecture aa of cdu99 isbeginprocess(clk,reset)variable mm : std_logic_vector (11 downto 0);beginif reset='1' thenmm:="000000000000";elsif clk'event and clk='1' thenif mm(3 downto 0)="1001" then――十六进制转换成十进制mm:=mm+7;else mm:=mm+1; end if;if mm(7 downto 4)="1010" thenmm:=mm+"01100000"; end if;end if;count1<=mm(3 downto 0);count2<=mm(7 downto 4);count3<=mm(11 downto 8);end process;end aa;计费计数模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity count99 isport ( clk,reset:in std_logic;judge2 :in std_logic_vector (3 downto 0);――里程个位judge3 :in std_logic_vector (3 downto 0);――里程十位count1 :out std_logic_vector (3 downto 0); ――计费百分位 count2 :out std_logic_vector (3 downto 0); ――计费十分位 count3 :out std_logic_vector (3 downto 0); ――计费个位 count4 :out std_logic_vector (3 downto 0)); ――计费十位end count99 ;architecture aa of count99 issignal en : std_logic;signal money : std_logic_vector(7 downto 0);signal mcount : std_logic_vector (15 downto 0);money<="00110011" when ((mcount(15)='1') or (mcount(14)='1')or (mcount(13)='1')) else "00100010";――计费模式:0。

出租车计价器5页

出租车计价器5页

本计价器的主要功能包括:计时功能;计费功能;计程功能;LCD显示;功能:1)启动计费器,里程计数器和时间计数器从零开始,费用计费器从10元开始计算;2)根据出租车行驶的里程数和时间(包括停车等待时间)进行计费,当出租车启动在3公里以内,且在等待累计2分钟内时费用计数器复位为起步价10元;3)当出租车在行驶状态下超过3公里时,每满1公里时,费用计数器加1元;4)当出租车等待时间累计超过2分钟时以每分钟1元计费。

整体设计方案:Clk 输入 C9;Sw1输入 L14;TXD 输出 u8;Flash_ce 输出 k18;Lcd_e 输出 M18;LCD_RW 输出 L17;LCD_RS 输出 L18;LCD_d[3:0] 输出 R15 R16 P17 M15;模块划分1.分频电路模块:2. 时间计算模块:start:启动信号,当start为高电平时出租车开动,选择以公里计费;当start为低电平时出租车等待;选择以时间计费m:输出的时间分信号s: 输出的时间秒信号Time_enable:控制计费的时间信号,当其为高电平时控制计数器按时间数计数3. 计程功能“distance_enable:控制计费的公里信号,当其为高电平时控制计数器按路程计数distance:输出的公里信号4.判断控制模块;select_clk:输出选择的时钟信号5.计费模块:fee: 输出的费用信号6.显示模块:分频程序:module div(clk_50M,clk,reset);input clk_50M;input reset;output clk;wire clk_50M;wire reset;reg clk;reg [7:0] count;always@ (posedge clk_50M or negedge reset)beginif(!reset)begincount<=0;clk<=0;endelseif(count==8'd100)begincount<=8'd0;clk<=~clk;endelsecount<=count+1'd1;endendmodulemodule test;reg clk_50M;reg reset;wire clk;div u1(.clk_50M(clk_50M),.reset(reset),.clk(clk));initial#0 clk_50M=1'b0;always #5 clk_50M=~clk_50M;initialbegin#0 reset=1'b0;#100 reset=1'b1;endendmodule计时激励:module timemokuai(clk,reset,start,s,m,time_enable);// 端口的定义input clk,reset,start;output [7:0] s;//输出的秒output [7:0] m;//输出的分output time_enable;//输出的控制计费的信号reg [7:0] s;reg [7:0] m;wire time_enable;always@(posedge clk or negedge reset)//异步复位beginif(!reset)//低电平有效begin //复位s<=8'd0;m<=8'd0;endelse if(!start)//start 信号低电平有效beginif(s[3:0]==9)// 秒的低四位是9begins[3:0]<=4'd0;//清零if(s[7:4]==5) // 秒的高四位是5begins[7:4]<=4'd0; //清零if(m[3:0]==9) // 分的低奈皇?beginm[3:0]<=4'd0; //清零if(m[7:4]==9) // 分的高四位是9m[7:4]<=4'd0; //清零else m[7:4]<=m[7:4]+1'd1; // 分的高四位不是9加一endelse m[3:0]<=m[3:0]+1'd1; //分的低四位不是9加一endelse s[7:4]<=s[7:4]+1'd1; // 秒的高四位不是5加一endelse s[3:0]<=s[3:0]+1'd1; //秒的低四位不是9加一end//end alwaysendassign time_enable=((m[7:0]>8'd2)&&(s[7:0]==8'd0))?1'd1:1'd0; //产生time_enable信号。

数字电路逻辑课程设计--出租车自动计费器

数字电路逻辑课程设计--出租车自动计费器

数字电路逻辑课程设计--出租车自动计费器数字电路与逻辑设计课程设计学院:信息工程学院班级:通信学号:姓名:同组人:指导老师:白静时间 2013 年 12月 30日出租车自动计费器任务与要求出租车用自动计费器是根据客户用车的实际情况而自动显示车费的数字仪表。

仪表根据用车起价行车里程计费及等候时间计费三项求得用户的总计费,通过数码自动显示,还可以联系打印机自动打印数据。

由于实验室的条件,本次设计主要围绕着显示起价和按时间计数的宗旨进行设计,实现自动计费功能。

设计制作一个自动计费器,具有行车起价计费功能和按时间计费功能。

用数码显示管显示总的金额,最大金额为99.9元。

设计思路1、起价计费功能按照给定的参数设计起步价为8.0元。

用开关置数,既可以实现置8.0的功能。

2、按时间计费功能按照给定的参数,按时间每一秒钟计费一个最小单元。

即脉冲为1Hz的计数频率。

实验原理电路所需元件清单:74LS160芯片3个,七段数码显示屏3个,数字逻辑电路实验箱,电源。

下面是74LS160的主要电器特性:异步清零端/MR1为低电平时,不管时钟端CP信号状态如何,都可以完成清零功能。

160的预置是同步的。

当置入控制器/PE为低电平时,在CP上升沿作用下,输出端Q0-Q3与数据输入端P0-P3一致。

对于54/74160,当CP由低至高跳变或跳变前,如果计数器控制端CEP、CET为高电平,则/PE应避免由低至高电平的跳变,而54/74LS160无此种限制。

160的计数是同步的,靠CP同时加在四个触发器上而实现的。

当CEP、CET均为高电平时,在CP上升沿作用下Q0-Q3同时变化,从而消除了异步计数器中出现的计数尖峰。

对于54/74LS160的CEP、CET跳变与CP无关。

160有超前进位功能。

当计数溢出时,进位输出端(TC)输出一个高电平脉冲,其宽度为Q0的高电平部分。

在不外加门电路的情况下,可级联成N位同步计数器。

对于54/74LS160,在CP出现前,即使CEP、CET、/MR发生变化,电路的功能也不受影响。

出租车计费器自动化方案的发展趋势

出租车计费器自动化方案的发展趋势

出租车计费器自动化方案的发展趋势随着科技的不断进步和技术的不断创新,出租车计费器自动化方案的发展趋势已经逐渐显现出来。

出租车计费器是出租车行业中的重要设备之一,它对于乘客和出租车司机来说都具有重要的意义。

传统的出租车计费器需要司机手动输入里程和时间等信息进行计费,容易出现误操作和纠纷。

而自动化方案的发展将极大地提高计费的准确性和效率,为出租车行业带来巨大的便利和改善。

首先,随着车辆定位技术的发展,出租车计费器将实现自动定位功能。

通过将出租车和计费器与GPS系统相连,可以实时获取出租车位置信息,自动计算行驶里程、路程时间和行车速度等关键指标,从而精确计算费用。

这种自动化的定位技术不仅可以减少司机的工作负担,还可以减少人为操作错误和欺诈行为,提高计费的公正性和可靠性。

其次,出租车计费器的自动化方案将更加智能化。

随着人工智能技术的发展,出租车计费器可以通过学习和分析大量的乘车数据,自动识别乘客的上下车地点和行车路线,并根据道路拥堵情况和时间变化自动调整计费参数。

这种智能化的计费方案能够更好地适应不同的道路和交通状况,提高计费的准确性和合理性。

此外,出租车计费器的自动化方案还需要与支付系统相结合,实现无现金支付。

通过与移动支付平台的对接,乘客可以使用手机扫码或小程序进行支付,避免了携带现金的麻烦和安全风险。

同时,支付系统还可以与出租车计费器进行实时对账,确保计费的准确性和清晰度,提高服务质量和用户满意度。

而在用户方面,出租车计费器的自动化方案将提供更加便捷的乘车体验。

例如,乘客可以通过手机APP预约出租车并实时追踪车辆位置,不再需要在路边等待。

同时,出租车计费器可以自动识别乘客目的地并提供优惠折扣和推荐服务,增加用户对出租车的使用频率和黏性。

然而,出租车计费器自动化方案在发展过程中也面临着一些挑战。

首先是技术问题,比如GPS信号不稳定、数据传输延迟等,可能导致计费误差或异常。

其次是监管和隐私问题,自动化方案需要与政府监管机构和乘客的个人信息进行合规和保护,确保数据安全和使用透明度。

出租车计费器

出租车计费器

出租车计费器设计要求计费标准为武汉起步3元,1公里后为4元/公里,1.5公里后为5元/公里,2公里后为6元/公里,2.5公里后为7元/公里,3公里后为8元/公里,以后1.4元/公里。

当计费达到20元后,每公里加收50%的车费,车停止每3分钟增加0.7元。

车费显示出来,有一位小数。

1、 设计原理及方法如图1所示,包含运算控制模块、分频器、显示模块这三大部分。

图1系统框图运算控制器模块将其他两个进行连接,是本次设计的核心。

它包含计程器、计时器、计价器,同时还有读取外部的拨码开关控制信号,提供当前显示信号与显示位选信号,从而周期性交替显示计价/计时信息、等时信息。

计程器、计时器、计价器根据位选信号,输出相应数据的当前选中数字,由顶层模块根据显示数据类型变换信号进行选择,传输给显示模块。

实验箱的时钟信号为20MHz方波,由分频器分为10Hz的计时信号(一个周期代表现实中的1s)、10Hz的计程信号(一个周期代表现实中的10m)、500Hz的数码管扫描信号(扫描频率62.5Hz)、0.2Hz的显示数据类型变换信号(变化周期5s)。

显示模块由实验箱上的3/8译码器、五个LED灯构成状态的指示灯、程序编写的一个七段数码管译码器。

2、主要模块设计2.1、速度模块速度模块首先根据start信号判断是否开始计费,然后根据输入的速度档位sp[2..0]的判断,确定行驶100m所需要的时钟数,每前进100m,输出一个clkout 信号。

同时由cnt对clk进行计数,当cnt等于kinside时,把clkout信号置1,cnt清0。

其模块框图如图2图2速度模块框图2.1.1、速度模块仿真速度模块的仿真波形图如图3示。

该模块根据出租车所处的运行状态和不同的形式速度,对相应数目的时钟周期进行计数,车每行驶100m时输出信号clkout 输出高电平。

图3速度模块仿真波形图2.2、计程模块主要用于记录行进的距离,其模块框图如图4所示。

出租车计费器

出租车计费器

出租车计费器一、设计任务出租车自动计费器是根据客户用车的实际情况而自动计算、显示车费的数字表。

数字表根据用车起步价、行车里程计费及等候时间计费三项显示客户用车总费用,打印单据,还可设置起步、停车的音乐提示或语言提示。

1.自动计费器具有行车里程计费、等候时间计费和起步费三部分,三项计费统一用4位数码管显示,最大金额为99.99元。

2.行车里程单价设为1.80元/km,等候时间计费设为1.5元/10分钟,起步费设为8.00元。

要求行车时,计费值每公里刷新一次;等候时每10分钟刷新一次;行车不到1km或等候不足10分钟则忽略计费。

3.在启动和停车时给出声音提示。

二、设计方案方案1 采用计数器电路为主实现自动计费。

分别将行车里程、等候时间都按相同的比价转换成脉冲信号,然后对这些脉冲进行计数,而起价可以通过预置送入计数器作为初值,如图1的原理框图所示。

行车里程计数电路每行车1km输出一个脉冲信号,启动行车单价计数器输出与单价对应的脉冲数,例如单价是1.80元/km,则设计一个一百八十进制计数器,每公里输出180个脉冲到总费计数器,即每个脉冲为0.01元。

等候时间计数器将来自时钟电路的秒脉冲作六百进制计数,得到10分钟信号,用10分钟信号控制一个一百五十进制计数器(等候10分钟单价计数器)向总费计数器输入150个脉冲。

这样,总费计数器根据起步价所置的初值,加上里程脉冲、等候时间脉冲即可得到总的用车费用。

图1 出租车计费器原理框图一上述方案中,如果将里程单价计数器和10分钟等候单价计数器用比例乘法器完成,则可以得到较简练的电路。

它将里程脉冲乘以单价比例系数得到代表里程费用的脉冲信号,等候时间脉冲乘以单位时间的比例系数得到代表等候时间的时间费用脉冲,然后将这两部分脉冲求和。

如果总费计数器采用BCD码加法器,即利用每计满1km的里程信号、每等候10分钟的时间信号控制加法器加上相应的单价值,就能计算出用车费用。

图2 出租车计费器原理框图二方案2 采用单片机为主实现自动计费。

出租车自动计费器的设计原理分析

出租车自动计费器的设计原理分析

出租车自动计费器的设计原理分析出租车自动计费器是一种应用于出租车行业的设备,用于准确计算乘客的车费并提供相关信息。

它是出租车行业中不可或缺的一部分,通过自动化计费系统,确保乘客和司机之间的交易公平、透明。

出租车自动计费器的设计原理可以大致分为以下几个方面:1. 计价规则与费率表:出租车自动计费器的设计需要根据当地的法规和政策,在其内部设置相应的计价规则和费率表。

这些规则和费率表通常由政府部门制定,并根据当地的交通、燃油价格等因素进行调整。

计费器根据行驶距离、时间、等候时间等因素来计算车费,并根据费率表提供准确的计费信息。

2. 里程计算与定位系统:自动计费器通过里程计算,精确地测量出租车行驶的距离。

这通常通过车辆上安装的里程传感器来实现,它可以实时监测车辆的行驶状况,并将数据传输给计费器进行计算。

同时,定位系统(如GPS)也被应用于自动计费器中,以便准确计算出租车行驶的距离和时间。

3. 时间计算与时钟系统:除了里程计算,自动计费器还需要正确计算出租车的行驶时间。

为此,计费器内置了精确的时钟系统,可以准确记录出租车的行驶开始和结束时间,以便计算行驶时间。

时钟系统通常会自动校准以确保准确性。

4. 显示器与用户界面:出租车自动计费器通常会配备一个显示器和用户界面,用于向乘客显示当前的车费和其他相关信息。

乘客可以根据显示器上的信息来了解乘车费用,并可以通过用户界面进行一些操作,如选择付款方式等。

5. 结算与支付:自动计费器设计需要支持多种支付方式,如现金、刷卡等。

计费器通过连接支付终端或电子支付平台,实现与支付系统的集成,以便乘客可以方便地完成支付。

同时,自动计费器还需记录每一笔交易的信息,以便司机和乘客在需要时进行查阅和核对。

除了以上的设计原理,出租车自动计费器还需要考虑耐用性、安全性和易使用性等因素。

例如,设计师需要选择高品质的材料来保证计费器的稳定性和耐用性,还需要考虑防水、防尘等特性以适应车辆使用环境。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录摘要 (1)1 概述 (2)1.1 基本要求 (2)1.2 功能介绍 (2)2 设计方案 (3)2.1设计原理 (3)3 硬件电路 (4)3.1 单片机最小系统 (4)3.2 按键电路 (5)3.3 数码管显示电路 (6)3.4 LCD1602显示电路 (6)4 软件设计 (8)4.1单片机I/O资源使用 (8)4.2 单片机软件模块设计 (8)4.3 程序框图 (9)5 PROTEUS仿真 (13)5.1 总仿真电路图 (13)5.2 不调价仿真 (13)5.3 调价仿真 (14)6 心得体会 (16)参考文献 (18)附录1 原件清单 (19)附录2 程序 (20)附录3 原理图 (34)出租车自动计费器设计摘要近些年来,出租车成为了人们出行重要的交通工具之一,出租车以低价高质的服务给人们带来了不少方便。

基于单片机系统设计的出租车计费器以单片机作为核心的控制元件,具有功能强,性能可靠,电路简单,成本低的特点,加上经过优化的程序,使其具有很高的智能化水平。

本次设计中,硬件设计主电路以AT89S51单片机为核心控制元件,输出采用LCD1602液晶屏和四位一体数码管,显示起价、每公里单价、等待价格、行驶总里程和总金额,并配有多个按键,以供手动调节乘车价格。

关键词:计费器51单片机LCD1602 数码管1 概述1.1 基本要求①以MCS-51系列单片机为核心,设计出租车自动计费器。

②设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用四位数码管显示总金额,最大值为99.99元。

③行车里程单价1元/公里,等候时间单价0.5元/10分钟,起价3元(3公里起价)均能通过人工输入。

④行车里程的计费以一个脉冲模拟汽车前进十米,⑤用LED显示行驶公里数和收费金额。

一、计费功能费用按行驶里程计费,起步价为3元。

1、当行驶里程小于或等于3公里,按起步价计费2、当行驶里程大于3公里,每公里收费1元,不足1公里不计3、等待时间为每10分钟收费0.5元,不足10分钟不计二、显示功能1、显示行驶里程:用LCD1602液晶屏显示,显示方式为“XX”,单位为Km,范围0-99Km2、显示等候时间:用LCD1602液晶屏显示,显示方式为“XX”,单位Min,范围0-99Min3、显示总费用:用四位数码管显示,显示方式为“XX.X”,单位元,范围3-99.9元1.2 功能介绍本出租车自动计费,上电后显示默认的起步价,每公里计费单价,等待时间计费单价,可通过按键调整起步价,里程计费单价,等待时间计费单价。

具有运行、暂停、停止状态,可以显示行驶的里程、等待的时间和出租车行驶的总费用。

2 设计方案2.1设计原理利用单片机的强大功能,可用AT89S51单片机作主控芯片,用来处理计费器的各种数据并控制LCD1602和数码管显示模块,实现基本的里程计费和价格调整。

为模拟汽车行驶,用单片机的T0定时器进行16位定时,每0.05S发射一个信号进入定时中断,20个中断为1S,每秒向单片机发送信号表示前进10米。

2.2 设计方案图2-1 总体设计框图3 硬件电路3.1 单片机最小系统该电路单片机最小系统由四个部分组成:电源、地、复位电路、时钟电路。

电源电路中,电源接单片机,同时连接一个电容接地用于去耦合,稳定电源电压。

复位电路如图3-1所示,共有两种基本形式:上电复位和按键复位。

单片机上电瞬间会对C1进行充电,此过程C1相当于短路,RST引脚电平升高单片机复位;若要手动复位,则按下RSTK复位按键,RST引脚直接接高电平,单片机复位。

图3-1 复位电路图3-2为单片机时钟电路,AT89S51内部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为XTAL2,。

这两个引脚跨接石英晶体和微调电容,构成一个稳定的自激振荡器,微调电容的典型值通常为30pF。

图3-2 时钟电路3.2 按键电路本设计共有6个独立按键:复位按键RSTK,进入退出设置键K1,光标移动键K2,数值增加键K3,等待计时键K4,开始暂停计费键K5。

1.复位或者程序跑飞,可用RSTK键进行复位;2.调整计费单价,按K1进如设置状态,设置完后再按下K1退出设置状态;3.按K2可移动光标,分别调整各收费单价;4.按K5键开始计费,中间需要停车等待,可直接按K4进行等待计时计费,等待完毕直接按K5继续行驶计费。

按键电路如图3-3所示。

图3-3 按键电路3.3 数码管显示电路数码管用于显示计费总价,显示方式为“XX.X”,单位元,显示范围为3-99.9元。

为保证数码管显示的稳定性,在段选端前接锁存器74HC573,数码管电路如图3-4所示。

图3-4 数码管显示电路由于单片机P0口没有上拉能力,所以数码管的段选口高电平由锁存器提供。

3.4 LCD1602显示电路LCD1602液晶屏是字符型液晶屏,并且带字符库的,不需要查找代码,英文字符可直接输入显示。

液晶电路使用时,如果发现液晶不亮可以调节连接液晶的变阻器,改变液晶的亮度。

每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。

LCD1602显示电路如图3-5所示。

图3-5 LCD显示电路另外,系统供电由P1口外接的5V电源供电,如图3-6。

图3-6 电源接口4 软件设计4.1单片机I/O资源使用此设计中P10到P13口和P32口连接按键控制输入,P0口和P14、P15、P16、P17口用于控制数码管,P2口和P34、P35、P36口用于控制LCD1602液晶屏。

4.2 单片机软件模块设计一、LCD1602显示模块由于LCD1602程序比较复杂,所以专门创建一个1602的头文件,将1602的使用程序存放于头文件中,在主程序中只要声明了1602头文件,即可调用1602子程序。

头文件下包含的子程序有:延时程序、LCD1602初始化程序、写命令程序和写数据程序。

由于只是使用LCD1602进行显示,所以不需要读命令数据程序。

二、中断程序模块程序共使用三个中断:INT0、T0、T1中断。

INT0中断用于进入或退出调价模式,打开计费器后进行计费之前,随时可以利用INT0中断进行调价,开始计费之后则关闭INT0中断,不能调价。

T0定时中断形成行车脉冲,模拟汽车行驶,每0.05s产生一次中断,每20次中断为1s,每秒行驶10米距离。

程序中设置一个变量flag2用来表示按下的是K4还是K5,按下K5键T0中断中的t1开始计时,模拟汽车行驶,再次按下则暂停计时,即停止行驶;按下K4,T0中的t2开始计时,计算等待的时间。

T1中断用于数码管显示,由于数码管是动态显示,所以在此较为复杂的主程序中运行会产生闪烁,将数码管显示程序置于T1中断程序中,就不会再闪烁。

三、其它程序模块其它程序模块主要包括数码管显示模块、数据计算模块、调价模块、按键扫描模块等。

数码管显示模块用于显示总费用,使用四位一体数码管显示,但只用其中后三位,显示0到99.9。

数据计算模块主要计算行车里程、等待时间、等待收费、总收费。

调价模块用于调整起价、每公里单价和等待收费单价。

按键扫描模块用于检测用户按下了哪些功能键。

4.3 程序框图本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计中采用主程序调用子程序的方法,使程序通俗易懂。

在main函数开始,要对系统初始化,和对硬件设备进行初始化,并使硬件处于就绪状态。

通过判断是否计费,调价,清零等状态,来分别调用不同的子程序,使程序在设计之前,就有了很强的逻辑关系。

这些对应于硬件就是通过按下各个控制开关,来分别进行不同的动作,最后显示屏根据输入的信息,来显示不同的数据信息,这就达到了软件控制硬件,同时输入信息控制输出信息的目的。

整个程序的流程图如下:图4-1 程序流程图从图中可以看出,程序开始就对LCD1602、T0 T1计数器和INT0进行了初始化,1602显示器开始显示计费标准,之后判断是否进行调整收费标准,如需调整则进入调整程序进行价格调整,若不需要调整则判断是否开始计费或者计时,若开始则进入数据处理程序进行各数据计算,计算结果显示在LCD1602和数码管上,若不开始计价或者计时,则只用LCD1602显示收费标准。

5 PROTEUS仿真5.1 总仿真电路图使用PROTEUS搭建好电路,下载程序进行仿真。

仿真电路包含AT89S51单片机、按键控制电路、74HC573锁存器、四位共阴极数码管和LCD1602液晶屏。

总电路如图5-1所示。

图5-1 仿真电路图5.2 不调价仿真先使用默认的价钱进行仿真,即起步价3元,每公里1元,每等待10分钟0.5元。

通过计算,行驶10公里且不等待收费10块钱,对比仿真结果图5-2发现电路运行正常。

图5-2 仿真一再仿真等待收费。

行驶7公里,等待10分钟,通过计算应收费7.5元,对比仿真结果图5-3,运行结果也正确。

图5-3 仿真二5.3 调价仿真这次先进行调价,再开始计费,检查调价程序是否能够正常运行。

将起步价调为6元,每公里单价调为3元,按K5开始行驶计费,行驶10公里,计算得费用为27元,对比仿真结果图5-4,结果相同。

图5-4 仿真三再将起步价调为5元,每公里单价调为2元,每10分钟等待单价调为1.5元进行仿真,等待10分钟,显示计费12.5元,与计算结果图5-5相同。

图5-5 仿真四6 心得体会出租车计费器系统的设计已经全部完成,能按预期的效果进行模拟汽车启动,停止,暂停等功能,并能够通过LCD和数码管显示车费数目。

本款出租车计价器包括单价输出、单价调整、显示当前总费用等功能。

另外,多功能出租车计价器还具有性能可靠、电路简单、成本低、实用性强等特点,加上经过优化的程序,使其有很高的智能化水平。

经过自己努力,基本上完成了设计要求的内容,在系统可行性分析、原理图设计等方面都作了许多实际工作,取得了一些成绩,同时也遇到了一些问题,存在一些不足。

经过这几天的学习和工作,我觉得自己不论是在理论知识方面还是在动手能力方面都有了不小的进步,自己从中受益匪浅。

这次设计很好的把以前学到的理论知识应用于实践,使我认识到理论知识与实践之间有一定的差距,只有通过不断的努力学习和实践才能很好的把理论知识应用到实践当中,也只有通过不断的实践才能对理论知识的理解。

通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。

经过单元设计和系统设计巩固了以前所学的专业知识,自己真正认识到理论联系实际的重要性,为以后的学习和工作提供了很多有价值的经验。

通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。

相关文档
最新文档