出租车计价器的设计,出租车计价器设计

维修要闻     2020-12-24    浏览:14

出租车计价器设计

实验任务及要求
1.能实现计费功能,计费标准为:按行驶里程收费,起步费为10.00元,并在车行3公里后再按1.6元/公里,车暂停时,停车一分钟之后开始加价,每分钟增加2.5元。
2. 实现预置功能:能预置起步费、每公里收费、车行加费里程。
3. 实现模拟功能:能模拟汽车启动、停止、暂停等状态。
4. 设计动态扫描电路:将车费及暂停时间显示出来。
5. 用VHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。
6. 综合仿真验证,并通过有关波形确认电路设计是否正确。
7. 完成电路全部设计后,通过GW48系统实验箱下载验证设计的正确性。
二、实验原理


图1出租车计价器流程图

图2系统结构图
接口部分定义如下:
输入:clk_240,系统时钟,频率为240Hz;
Start,启动信号,当start=1时,汽车启动,开始计价; 当start=0时,清零;
Stop,暂时计时信号,当stop-1时,中途暂停,开始计时;当stop=0时,再次出发;
Fin,汽车车速脉冲信号,是一个与随着车速变化而变化的脉冲信号。
输出:cha2,cha1,cha0,分别为价钱的十位,个位和角位;
Km1,km0,分别为行驶公里数的十位,个位;
Min0,暂时分钟数输出。
接口部分源程序如下:
port ( clk_240 :in std_logic; --频率为240Hz的时钟
start :in std_logic; --计价使能信号
stop:in std_logic; --等待信号
fin:in std_logic; --公里脉冲信号
cha2,cha1,cha0:out std_logic_vector(3 downto 0); --费用数据
km1,km0:out std_logic_vector(3 downto 0); --公里数据
min0: out std_logic_vector(3 downto 0)); --等待时间
计价部分原理如下:
起步价10元,3公里内10元,超出3公里部分,每公里1.6元,车暂停时,2分钟内不加价,超出2分钟部分,每分钟2.5元;
计费部分源程序如下:
feipin:process(clk_240,start)
begin
if clk_240"event and clk_240="1" then
if start="0" then q_15<=0;q_16<=0;f_15<="0";f_16<="0";f_1<="0";f<="0";
else
if q_15=15 then q_15<=0;f_15<="1"; --此IF语句得到频率为15Hz的信号
else q_15<=q_15+1;f_15<="0";
end if;
if q_16=14 then q_16<=0;f_16<="1"; --此IF语句得到频率为16Hz的信号
else q_16<=q_16+1;f_16<="0";
end if;
if q_1=239 then q_1<=0;f_1<="1"; --此IF语句得到频率为1Hz的信号
else q_1<=q_1+1;f_1<="0";
end if;
if en1="1" then f<=f_15; --此IF语句得到计费脉冲f
elsif en0="1" then f<=f_16;
else f<="0";
end if;
end if;
end if;
end process;

process(f_1)
begin
if f_1"event and f_1="1" then
if start="0" then
w<=0;en1<="0";en0<="0";m1<="000";m0<="0000";k1<="0000";k0<="0000";
elsif stop="1" then
if w=59 then w<=0; --此IF语句完成等待计时
if m0="1001" then m0<="0000"; --此IF语句完成分计数
if m1<="101" then m1<="000";
else m1<=m1+1;
end if;
else m0<=m0+1;
end if;
if m1&m0>"0000001"then en1<="1"; --此IF语句得到en1使能信号
else en1<="0";
end if;
else w<=w+1;en1<="0";
end if;
elsif fin="1" then
if k0="1001" then k0<="0000"; --此IF语句完成公里脉冲计数
if k1="1001" then k1<="0000";
else k1<=k1+1;
end if;
else k0<=k0+1;
end if;
if k1&k0>"00000010" then en0<="1"; --此IF语句得到en0使能信号
else en0<="0";
end if;
else en1<="0";en0<="0";
end if;
cha3<=c3;cha2<=c2;cha1<=c1;cha0<=c0; --费用数据输出
km1<=k1;km0<=k0;min1<="0"&m1;min0<=m0; --公里数据、分钟数据输出
end if;
end process;

process(f,start)
begin
if start="0" then c3<="0000";c2<="0001";c1<="0000";c0<="0000";
elsif f"event and f="1" then
if c0="1001" then c0<="0000"; --此IF语句完成对费用的计数
if c1="1001" then c1<="0000";
if c2="1001" then c2<="0000";
if c3<="1001" then c3<="0000";
else c3<=c3+1;
end if;
else c2<=c2+1;
end if;
else c1<=c1+1;
end if;
else c0<=c0+1;
end if;
end if;
end process;
end behav;
出租车计价器设计

电子技术课程设计

出租车自动计费器

学院:华科学院
专业:电气工程及其自动化
班级:
姓名:
学号:
指导老师:
2008年1月2日
目 录

一、设计任务与要求-------------- 1

二、总体框图----------------- 1

三、器材选择---------------- 1

四、模块功能----------------- 5

五、总体设计电路图-------------- 9

六、心得体会-----------------------10

出租车计费器
一. 设计任务与要求

出租车自动计费器根据客户用车的实际情况而自动显示用车费的数字仪表,根据用车起价,行车里程计费及等候时间计费三项求出客户用车的总费用,通过数码自动显示。
1. 里程测量精确到1km。
2. 起步价按7元/3km,起步价外按1元/进行机费。
3. 等候按1元/60 min计费。
4. 具有里程显示,收费显示,里程单价显示。

二.总体框图

三.器件选择

A.十进制计数器74LS160
1.74LS160是中规模集成同步十进制加法计数器,具有异步清零和同步预置数的功能。使用74LS160通过置零法或置数法可以实现任意进制的计数器。其引脚图见图 。
先对74LS160的基本功能进行测试,逻辑功能表如下图。
①异步清零:当 CLR=0时,Q 0=Q1=Q2=Q3=0。
②同步预置:当 LOAD=0时,在时钟脉冲CP上升沿作用下,Q 0=D0,Q1=D1,Q2=D2,Q3=D3。
③锁存:当使能端 时,计数器禁止计数,为锁存状态。
④计数:当使能端EP=ET=1时,为计数状态。

功能管脚图
2. 74LS160的逻辑功能表

时钟CP 异步清除 同步置数 EP ET 工 作 状 态
× 0 × × ×
↑ 1 0 × ×
× 1 1 0 1
× 1 1 × 0
↑ 1 1 1 1

3.74LS160的逻辑图

B.555定时器

它含有两个电压比较器,一个基本RS触发器,一个放电开关T,比较器的参考电压由三只5KΩ的电阻器构成分压,它们分别使高电平比较器A1同相比较端和低电平比较器A2的反相输入端的参考电平为和。A1和A2的输出端控制RS触发器状态和放电管开关状态。当输入信号输入并超过时,触发器复位,555的输出端3脚输出低电平,同时放电,开关管导通;当输入信号自2脚输入并低于时,触发器置位,555的3脚输出高电平,同时放电,开关管截止。
功能管脚图

功能管脚图

逻辑图

功能表

74LS192
74LS192是十进制同步加法、减法器,采用8421BCD码编码,具有直接清零,异步置数的功能。
CPU CPD LD CR 操作
随意 随意 0 0 置数
脉冲 1 1 0 加数
1 脉冲 1 0 箭术
随意 随意

四.功能模块

1.里程计算与显示电路

里程计算模块对测距传感器发出的0.1km的脉冲信号进行计数,计满10个脉冲表示1km。里程计算与显示电路如下图。

如上图当所示,用三片74ls160接成三个十进制计数器,由信号发生器触发脉冲,每触发一个脉冲为出租车行进中的0.1km,第一块加法计数器累计十次脉冲,向第二快加法计数器输去一次脉冲,当第二块加法计数器累计到十次时,灯泡亮一次,表示出租车向前行进了1km.断开开关J1实现同步清零。

2.里程比较电路

基本里程设定为3km。当实际行驶距离超过基本里程时,则在原有计费的基础上加上每公里单价,里程比较电路如下图所示。

里程比较电路如上图所示,用两片74LS160接成30进制计数器,由信号发生器触发脉冲,每触发一个脉冲为出租车行进中的0.1km,当计满后触发触发器D使其输出(Q)为1,作为超基本里程计费的闸门信号,Q=1后启动超基本里程计费电路,由每公里的触发脉冲触发计费电路实现费用累加。一旦实际行驶里程超过了基本里程,Q非封锁30计数器,使里程比较电路停止计数,一直到总清零信号(总清信号清除模3计数和D触发器)后才开始新一轮的里程比较。

3.侯时电路

用555够成多谐振荡电路,然后用计数器按秒,分计时,1min给里程计数器一个0.1km的脉冲,侯时电路如下图所示

侯时电路如上图所示,当一分钟后触发一次脉冲,灯泡亮一次。

用555定时器构成秒脉冲发生器
电路如下图

五.总体设计电路图

侯时电路,里程比较电路,里程计算与显示电路,相互叠加,设置起步价7元
同过缓存器,锁存器的连接,信号的积累,显示总价。

六.心得体会

两周的课程设计时间很快就过去了,虽然它的时间很短,我们很匆忙,很辛苦,课

程设计真的很不容易,在这三周里,我一次次告诉自己要坚持,再坚持通过两周以来同学

和老师的共同努力,我们终于完成了电子课程。作完之后,我组的全体成员都大吸了一口

气,然后感叹道:终于做完了,可把我们可累苦了。但大家脸上的表情都是欣慰和欢喜的,

到底工夫不负有心人。俗话说的好:苦不苦想想红军长征二万五。当年红军爬雪山,越草

地,与自然做斗争,冰天雪地的。我们饿了还有香喷喷的饭菜吃,他们呢?吃草皮,啃树

皮,甚至连自己身上的皮带都煮着吃了,比起他们来我们幸福多了,看着自己的劳动成果:

面包板上大大小小的芯片,密密麻麻的连接线,大家都笑了,我们四目相接,面面相觑,

都在感慨实习终于结束了。不知道是因为心情好还是太累, 回去特舒服,特别的塌实 。

这次的课程设计使我认识到我在学习理论方面有很多的不足,通过向其他同学询问和学

习,才算基本上搞了出来。用555定时器产生秒脉冲,74LS160做10进制计数器,用不同

的器件组建不同的模块,从而达到最终的设计要求。

课程设计让我体会到知识上的收获重要,精神上的丰收更加可喜。让我知道了学无

止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山

峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程

设计必将成为我人生旅途上一个非常美好的回忆!
基于单片机的出租车计价器的课程设计怎么写?

这点功能说实在的51单片机就可以胜任了
1、现在常见的计价器一般都是根据车走了多远和运行时间计价的,那么你就要弄清楚这个规则,有了这个就知道怎么算价钱了啊。
2、行程一般用计轮胎圈数的方法咯,或者从汽车直接获知行程信息,我想对于一个课程设计来说,最好还是用一个开关来模拟计圈吧。
3、时间方面51自己不行了,用个时钟芯片吧。
4、逻辑框架是:51单片机的计数器来计圈,到达一定圈数(可以设定)产生中断,单片机更新显示里程和价格,其余时间基本上单片机就是扫描时钟芯片、刷新LCD显示和计算数据了。
5、其它功能:考虑到可能不只有一次乘车,可能需要累加多次乘车的总里程,统计乘车次数和总收入等,这些都简单。当然也可以多管闲事显示一下车辆速度。
6、按键需要开始和结束或者用一个按键的两种状态表示(出租车计价器通常是这样的,掰下来或者掰上去),一般需要一个reset键,这个隐蔽一点就行了。
7、显示方面根据你的设计选个能够显示足够信息的LCD就行了,如果抠一点直接用数码管显示钱数那就简单了。
出租车计费器设计

1 系统中各模块的硬件结构

(由于问问回答不能上传图片,所以回答中的图略)

这种用μPD78F0034为主控器件设计的计费器的组成框图如图1所示。整个计费器系统共由五个模块组成,分别为主控模块、按键显示模块、防作弊及脉冲输入模块、通信模块和电源模块。

1.1 主控模块



主控模块的结构框图如图2所示,图中的单片机为日本NEC 公司的μPD78F0034,该芯片的主要特点如下:



●时钟为8.38MHz时,指令周期为0.24μs;



●ROM为32kB FLASH,RAM为1024 bytes;



●可寻址空间为64kB bytes,有5个外部中断和15个内部中断;



●带有39个CMOS I/O,8个CMOS输入和4个N-CH漏极开路I/O;



●带有1个16位定时/计数器和2个8位定时/计数器;



●带有1个时钟定时器、1个看门狗定时器和1个UART端口;



●支持I2C 总线,可输出时钟及蜂鸣信号;



●外部数据总线为8位,内部寄存器为16位;



●有8位无符号乘法指令和16位除法指令;



●工作电压范围为1.8V~5.5V,具有STOP/HALT工作模式。

1.2 通信模块

它主要由单片机的两个I/O口、MAX232和一些电阻电容等组成。图中电阻均为10kΩ,电容均为10μF;单片机的P30为串行数据接收脚、P31为串行数据发送脚,通信的波特率设为9600。图中,MAX232芯片的作用是将单片机输出的TTL电平转换成PC机能接收的232电平或将PC机输出的232电平转换成单片机能接收的TTL电平。计费器通过通信模块与PC机或手持式资料传数器进行串行通信,以便设置计费器的各种参数及采集计费器里存储的各种数据。

1.3 按键及显示模块

按键及显示模块如图4所示,该模块由4片4511、1片4028、1片2003、20个数码管及一些发光二极管(作为计程、计时收费指示灯)组成。计费器有6个功能键,而实际上对外只有四个按键,分别设为A、B、C、D键。空车状态按下C键,计费器进入载客模块;空车状态按下B键,计费器进入通信模块;空车状态按下A键,计费器进入查询模块,然后按A键往上查询、按D键往下查询。另两个功能按键放在计费器内,用跳线J1、J2表示。在空车状态,J1短路时,计费器清除存储的所有数据;当计费器复位时,如J2短路,计费器直接进入资料传输模块(此功能主要为了防止计费器内资料紊乱或新计费器没有资料时进入死循环)。

a 单信号防作弊的工作原理

如图5所示,当计费器通过选项选定单信号防作弊方式后,跳线开关B与A相连、B与C断开,单片机通过P35使开关与K点相连。当有脉冲输入时,INT0产生一中断,单片机执行中断子程序;然后通过P35使开关与K点断开,即断开脉冲传感器的电源,此时检测P36的电平,如为低,则为正常,为高则为作弊脉冲。当作弊脉冲累积到一定数量(此数值由计费器的参数设定)后,计费器便认定有作弊发生,于是报警,同时产生一系列动作如车资、计程公里和计程时间全部清零或者锁死计费器等,究竟产生何种动作,可由选项来决定。



b 双信号防作弊的工作原理



当计费器选定双信号防作弊后,跳线开关B与C接通、B与A断开。当有脉冲输入时,INT0产生一中断,单片机执行中断子程序,此时单片机须判别P36脚输入的信号是否为低电平,为低则正常,否则为作弊脉冲。其余与单信号防作弊时一样。



1.5 电源模块



该模块为一开关电源,用于将输入的12V直流电源变为稳定的5V电源。由于12V电源由出租车上的电瓶提供,有一定的分散性,尤其当电瓶质量不好时,12V电源较低。而开关电源的适用范围较广,且驱动能力较强,因此,使用开关电源可有效防止因输入电压过低而产生的各种故障。



2 软件设计



该计费器的软件设计主要由两部分组成,一是单片机的软件设计,二是PC机的软件设计。由于二者均采用模块化设计方法,因此,该程序结构清晰,便于今后修改及升级。鉴于篇幅的限制,下面只介绍这两部分的设计流程。



2.1 单片机的软件设计

单片机的软件设计流程如图6所示。其中初始化模块由硬件初始化和软件初始化两部分组成,硬件初始化主要是对单片机及其它相关芯片进行初始化;而软件初始化主要是对各种软件标志进行初始化,同时将断电前保存的各种状态数据读入单片机的RAM中;然后根据选项决定是否要识别司机卡、以及是直接回到空车状态还是回到断电前计费器所处的载客状态(如复位选项为0,则计费器复位后直接回到空车状态;而在为1时,如断电前计费器处于载客状态,则复位后回到载客状态,如断电前计费器处于非载客状态,则复位后直接回到空车状态)。图中的每个模块均由许多子模块组成,如载客模块应包含计程计费、计时计费、打印车票、暂停、客次数据写入RAM中等子模块;而查询则包括查询当天累计数据、总累积数据及客次记录等子模块。每个模块均可通过按键回到空车模块(图中未画出)。



2.2 PC机的软件设计



由于VB6.0有串行通讯MSComm(电话盒)控件来为应用程序提供串行通信,且具有良好的用户界面及简单方便的串行通信功能,因此,无须借用其它语言就可以开发出优秀的通信软件。PC机软件主要由以下几个模块组成:计费资料修改及传输、打印命令数据修改及传输、选项数据修改及传输、采集当天累积、采集总累积和采集客次记录等(由于篇幅的限制,这里没有给出程序流程图)。由于软件中设置了下拉式菜单及各种控制按钮,因此,直接用鼠标点击控制按钮或下拉式菜单即可完成相应的操作(当然,也可通过按下快捷键来实现)。计费资料、打印命令数据及选项数据均各自存于一文本文件中;此外,该软件还设置了各种口令,可防止无关人员非法修改数据。



3 设计时应注意的问题



该计费器的选项多达64个,功能齐全,能适应不同地区的需要,但软件编程及调试也比较复杂,需要特别小心。为了使计费器能够稳定、可靠地工作,进行软、硬件设计时要注意以下几点:



(1)为了防止计费器死机,软件编程时应采用指令冗余技术、软件陷阱技术以及软件看门狗技术。有兴趣者可查阅参考文献。



(2)由于司机卡、采集卡、收费卡共用一个IC卡接口,因此,主控模块要注意区分卡的类型,应按照IC卡的有关控制命令正确编程。



(3)尽量不用IC插座。由于IC插座有较大的分布电容,因此,应把IC直接焊在印刷电路板上。每个IC应加一个去耦电容,去耦电容在印刷电路板上的引脚要尽量短。另外,石英晶体的外壳也要接地。



(4)由于计费器采用开关电源,因此,设计时第一要在开关管的C、E极间加RC吸收电路。并在二次整流回路的整流二极管两端加RC吸收电路以抑制浪涌电压。第二要加厚开关管与散热片之间绝缘垫片的厚度,以减少开关管与散热片之间的耦合电容。第三要使用电源滤波器。因为在电源的输入端加入滤波器可以抑制输入端的瞬态干扰;直流电源的输出端也要接入电容滤波器,以将输出电压的纹波限制在一定范围内,同时抑制数字信号产生的脉冲干扰。第四还应采用屏蔽措施来进一步减少开关电源的干扰。



4 结束语



本计费器的设计由于采用了功能很强的单片机μPD78F0034、电源监控和看门狗芯片MAX705及单、双信号防作弊技术,因而基本上杜绝了出租车在营运过程中计费器的死机现象及作弊现象。从使用情况看,该计费器稳定性好、可靠性高、返修率很低。另外,由于采用了模块式结构和在系统可编程方法,因此,其软件的修改和升级也非常方便。

相关搜索

相似文章