找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3401|回复: 0
打印 上一主题 下一主题
收起左侧

出租车计价器-数字电子技术基础实验报告

[复制链接]
跳转到指定楼层
楼主
数字电子技术基础实验报告
——出租车计价器的设计

目录
一、 实验要求        - 1 -
1. 基础功能部分        - 1 -
2. 进阶功能部分        - 1 -
3. 发散功能部分        - 1 -
二、 实验分析        - 2 -
1. 电路实现要求分析        - 2 -
2. 仿真说明        - 4 -
1) 开关功能介绍        - 4 -
2) 程序启动介绍        - 5 -
3) 程序显示介绍        - 5 -
三、 电路设计和分析        - 7 -
1. 行驶时间模块设计        - 7 -
2. 行驶里程模块设计        - 7 -
3. 低速行驶费模块        - 8 -
1) 控制部分        - 8 -
2) 计数部分        - 8 -
3) 十进制加法器        - 9 -
4. 普通行驶费用模块        - 10 -
1) 3公里以内控制模块        - 10 -
2) 起步价控制模块        - 11 -
5. 总行驶费用模块        - 12 -
四、 实验总结        - 14 -
五、 附录        - 16 -
1. 元器件数目        - 16 -
2. 程序图        - 16 -


一、实验要求1.基础功能部分
1) 该实验的行车部分要求实现显示时间、里程数、价格三方面。
2) 能够区分普通搭乘,预约搭乘,合乘等不同情况。
3) 行车结束后显示总价。
2.进阶功能部分
1) 增加显示表,显示高峰期低速行驶费用。
2) 增加显示表,显示普通时段低速行驶费用。
3) 增加显示表,显示低速行驶总费用。
3.发散功能部分

二、实验分析1.电路实现要求分析
根据Project里面关于计程车花费的明细,我们组首先列出了一张表,代表出租车不同时段的起步价。
类别
普通搭乘
预约(4小时内)
预约(4小时以上)
起步价/()
13
18
19
同时,为了简便计数,我们将出租车的行驶简化成了脉冲的输入,一个脉冲的输入代表出租车行驶500m,同时一公里的价格改成2元,即每个脉冲增加1元。
我们用开关来模拟是否高峰期和低速行驶。
普通时段低速行驶每5分钟加收2元,高峰期低速行驶每5分钟加收5元,下面是收费的明细表。
类别
普通行驶
单价/(公里/元)
2
低速行驶加收项目
普通时段
高峰期
单价(5分钟/元)
2
5
下面是关于电路的整体模块划分:
1) 行驶时间模块
该部分我们采用6块74160芯片组成一个时、分、秒的时间显示器,对于分和秒,我们都用2块74160组成一个60进制的计数器,用来显示时间。
2) 行驶里程模块
里程部分我们记单位为km,便于显示和统计。
我们采用2块74160进行显示,对于每一个脉冲,我们记为500m,即每2个脉冲计数加1。
3) 低速形式费用模块
该部分我们采用开关来控制是否是低速行驶阶段。
同时来判断是高峰期低速行驶还是普通时段,对于高峰期时段和普通时段,我们分别采用一个74160来计数,同时将计数显示出来。将显示时间部分的分钟部分的进位来当作这部分的CLOCK,当计数到5,即5分钟的时候,计数加5,通过一个74283加法器来实现。同时这部分的显示,各位采用了74175的锁存器,因为这部分是进行跳变的,十位部分我采用了一个74160进行计数,每2个CLOCK计数加1,同时对锁存器清零。这样就达到了显示非连续数字的目的。
4) 行驶总费用模块
该部分费用其实就是低速行驶费加上普通行驶费,所以我采用了74283的加法器来对这两部分进行相加同时输出。
2.仿真说明1) 开关功能介绍
各开关功能介绍表
表示含义
   
D闭合,出租车低速行驶。
D打开,出租车正常行驶。
E开关打到上面,表示出租车处于高峰期。此时的费用为每5分钟多收5元。(如左图)
E开关打到下面,表示出租车处于普通时段。此时的费用为每5分钟多收2元。(如左图)
开关S,设置起步价初始值的十位。
开关K,控制出租车是否行驶,同时控制初始值。
开关A,B,C,设置起步价。
A设置起步价13。
B设置起步价18。
C设置起步价19。(左图为开关B)

2) 程序启动介绍
在运行程序之前,首先选择起步价,即13(开关A),18(开关B),19(开关C),注意每次只能选择一个起步价,否则程序将无法运行。然后运行程序,先按一下开关K,迅速按下开关S,以设置起步价初始值,此时显示的价格是初始设置的价格,当里程数大于3时,该价格开始增加。
运行过程中,按下开关E,来切换低速行驶时的时间段,一共有2种,一种是高峰期的计数,一种是普通时段的计数。具体情况请见上表。
3) 程序显示介绍
该程序一共有6大显示模块,请见下图。

注:由于低速行驶分为两个时间段,所以显示部分(右上角)也分为2部分,左边部分为高峰期时低速行驶费用,右边部分为普通时间段时低速行驶费用。


三、电路设计和分析1.        行驶时间模块设计
该部分接500kHz的脉冲,同时采用6块74160进行显示,对于分钟和秒钟,我们将它接成一个60进制的计数器,即十位的进位到6即清零,将秒钟十位的进位信号接到分钟个位的CLOCK上,将分钟同秒钟一样处理,即可得到显示行驶时间的功能。

(时间显示模块)
2.行驶里程模块设计
该部分接500kHz的脉冲作为输入,由于已经做过简化,模拟一个脉冲等于500m,同时里程计数我们只记录km数,所以对于每2个脉冲,我们计数加1。该部分实现简单,故不详细叙述了。

(行驶里程计数)
3.低速行驶费模块1) 控制部分
对于低速行驶的控制部分,我们采用了开关来控制,用开关D来控制是否是低速行驶,当开关D闭合时,则表示出租车处于低速行驶的范围,同时判断E开关的位置来判断是否是高峰期。
具体开关情况请看上表。
2) 计数部分
该部分我们采用了总时间的分钟脉冲作为输入的CLOCK,当脉冲输入达到5时,此时我们对于2种不同的时段,我们采用不同的处理方法。
① 高峰期时段
对于高峰期,当达到5分钟的时候,我们给74175锁存器一个脉冲,然后执行74283加法器,将该数加5,然后由74175锁存器锁存住该数,然后输出。当计数到达10的时候,我们给锁存器的CLR一个脉冲,让锁存器清零,给当前时间计数器清零,同时给作为十位的74160一个脉冲,即实现了5->10的跳变。
② 普通时段
对于普通时段,同样的,当打到5分钟的时间时,我们给74175锁存器一个脉冲,加法器加2,然后74175所存住该数,但是由于每次只执行加2,需要5次才能达到10位进位,所以这里多用了一个74160计数器,用来计数达到5分钟时间的脉冲,当计数打到5的时候,输出一个脉冲给作为十位的74160,同时将当前计数器和锁存器都清零。即实现了8->10的跳变。
3)         十进制加法器
该模块主要是为了实现低速行驶费的相加,由于低速行驶分为普通时段和高峰期,所以最后计数的时候需要对这部分费用进行相加,所以设计了一个十进制加法器的模块。
十进制加法器主要利用74283芯片进行,下面简要说明一下个位相加的情况,十位百位同理。
我们这里只模拟个位相加,首先取两个数的个位的4位2进制码,接到74283芯片的8个输入管脚,然后将输出接到7485的比较器上,判断输出的数字是否大于等于10,如果输出为1(代表相加的数字大于等于10),则给十位数字一个脉冲,使十位的数加1,同时将输出的数字再接到一个74283上,另外4个管脚接 ,即10的补码。此时个位输出的结果就是该数减去10的结果。

(10进制加法器)
4.普通行驶费用模块
该模块分为2部分,一部分是3公里以内时时,费用都为起步价,另一部分为大于3公里时,此时每公里费用加2元,由于在里程模块,我们模拟一个脉冲为500m,即2个脉冲为一公里,即2个脉冲加2元,那么相对于这个计价模块,在里程数大于3公里时,每个脉冲计价加1元即可。
1) 3公里以内控制模块
对于3公里以内的计价,我们采用的是一个7485比较器来比较个位的数字,首先判断个位数字是否大于3,然后判断十位数字是否全为0,因为如果有一个为1那么肯定已经进位,这个数字一定大于3。然后由两者的与门输出给计价器的load位,假设当前里程小于3,那么load位会一直置位,而置位的结果就是起步价。所以该方法可以控制3公里以内一直为起步价。
(判断是否3公里以内)
2) 起步价控制模块
由于起步价分为3个档次,所以这里由3种开关来控制,分别为开关A,B,C。
控制起步价的原理就是,给控制个位和十位费用的74160芯片一个clock单脉冲,让它置位,这样就可以达到设置初始值的效果了。对于单脉冲,我这里是用一个VCC和Ground通过开关控制起来的
如图,当开关K向下闭合的时候,就产生了一个下降沿脉冲,此时74160置位,即显示起步价。
对于置位的数字,我们将它分为2个部分,一个是十位,由于起步价的十位都是1,所以十位我们只需要置位为1即可。
对于个位,我们有3种选择,3,8,9,对于每一种初始值,我们都采用了4个开关,分别控制4位2进制的0和1,这样就可以通过控制不同的开关来选择不同的起步价了。
5.总行驶费用模块
该部分主要是将普通行驶费用和低速行驶费用相加,当然采用上述的程序十进制加法器即可完成,只是这里做的有点略微麻烦,因为总费用有3位,所以个位,十位,百位都有用到加法器,实现起来相当麻烦,整个程序看起来有点乱的原因也是这个。

(总费用相加模块)


四、实验总结
说实话,这个实验做的很累,就拿现在说,2014年1月2日 03:47:22,真是不可思议。
但是当真正做下去的时候,就会很有感觉,怎么说呢,就像退役之前晚上11点30做比赛,一直到凌晨2点,那种废寝忘食的感觉,遇到一道题不把他解出来就睡不着觉。我非常庆幸自己还没有遗忘掉这种死磕一道题的感觉,就像这次的数电实验。
说起来有点坑队友,由于之前一直忙于比赛,其实一直到上周六我才算正式忙完今年比赛的事情,之前虽然帮忙干了一些活,但是大部分还是队友做的,我也很感激,但愿下次别再坑别人了。
这次数电实验,可以说收获还是蛮大的吧,至少我觉得期末复习可以跳过第六章了,因为说实话这段时间,这些时序逻辑电路已经玩的很熟了。其次,我觉得更重要的是,让我懂得了数电和平时生活的联系,我可以用数电的知识去做一个生活中很常见的东西了,虽然不是一个很大不了的东西,但是我觉得这才是学以致用的学习方法,学了一学期的东西,连学的东西干嘛用的都不知道,那是多么sad的一件事。
不过,我还是来说以下本次实验的不足之处吧。
1.总体上看,程序太乱了,可以说开始之前没有一个很好的排版吧,导致最后处理的结果非常乱。
2.起步价控制那里略麻烦,这里其实已经修改过很多次了,这已经是其中算简洁的方案了,但是还是有12个开关。而且控制初值那里又要按两个开关,可以这么说,启动非常麻烦。
3.总价输出部分,那里也是改了很多次,一开始我是想直接把低速行驶部分的费用直接加到普通行驶费用那边,这样就不用多引出3个显示来显示加起来之后的总价了,但是由于普通行驶费那边使用的是74160,我还没弄清楚怎么在这个个位加上一个5,所以就作罢,只能采取那种非常麻烦的方式。
4.没有去发掘发散功能部分。
总的来说,这次数电实验还是很锻炼人的,不仅仅是书本上的东西,更多的是团队之间的合作,两个人的分工,如果分工不当就很容易造成我现在一样大半夜还在码字。当然这也很锻炼人。


五、附录1.元器件数目

元器件名称
使用个数
74LS160
17
74LS283
12
74LS85
4
74LS175
2
数码管
20


图片1.png (331.24 KB, 下载次数: 39)

图片1.png

图片2.png (27.78 KB, 下载次数: 34)

图片2.png

图片3.png (10.48 KB, 下载次数: 40)

图片3.png

图片4.png (17.84 KB, 下载次数: 34)

图片4.png

图片5.png (13.15 KB, 下载次数: 34)

图片5.png

图片6.png (17.84 KB, 下载次数: 35)

图片6.png

图片7.png (19.8 KB, 下载次数: 40)

图片7.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表