超详细!基于Proteus的出租车计价器实现(数字电路课程设计)

2023-10-31

本文阐述基于Proteus 7.8的出租车计价器电路的实现,附具体电路的工程文件下载:
工程文件下载链接

设计要求

  1. 里程测量精确到1㎞
  2. 按起步价7元/3公里,起步价外按1.4元/公里进行计价。
  3. 等候按1.4元/10分钟计算。
  4. 具有里程显示、收费显示、里程单价显示。

设计方法

基本上按照模块完成,我将它分为里程模块、小数价格模块、个位价格模块、十位价格模块、显示模块,模块与模块之间通过逻辑电路建立联系。用方波信号代替路程传感器和等待时间传感器,用开关来控制清零。研究数值的变化与各模块信号之间的联系,选择合适的触发条件,通过查询资料,找到合适的具有相应功能的芯片,设计条件电路或者状态电路,具体电路如下:
图1  原理图总览

电路工作原理分析

里程计数及显示

里程是十进制的,用十进制进位计数器,可以用十进制进位加法计数器74ls160或者二进制进位加法计数器74ls161(我采用的是74ls160,这样比较方便)。我用二位十进制数显示里程,所以还要一个异步十进制计数器,要实现异步进位,74ls90可以实现异步十进制计数功能。两个四位二进制数连到数码管上,显示里程数。起步价三公里内7元,大于三公里才开始加价,需要比较功能并输出高电平,数值比较器74ls85可以实现这个功能,里程个位大于3和十位有数字两种情况作或运算,再连到一个三态门上,这样就能判断里程是否满足加价条件。图2  里程设置

起步价和加价设置

三公里内价格是7元,所以刚开始的价格应该在7元的基础上加价,通过查资料,74ls83或者74ls283可以实现四位二进制全加器的功能(我采用了74ls283),将起步价7元和加价相加(另外还需要在超过10块钱后刷新个位,这样7元这个基数就不能保留了,取而代之的是0或者1,具体要根据未进位前的数值来判断,具体在“价格修正”部分分析)

加价是每公里1.4元,小数部分每次+4,一共是4、8、2、6、0五种情况,我想到尾灯控制电路里用的环形状态机,通过4个74ls74循环五种状态控制小数部分变化。个位每次+1,但是考虑到小数部分为6或者8的时候+1.4,个位+2,整数部分仍可以使用74ls160计数,每次都+1,小数进位部分当状态机循环到8或者6的位置,下一状态小数向整数进位(考虑到小数部分初始状态是0,如果用0、2判断,则初始状态也会+1,会导致计数错误,衡量了两个电路的复杂程度,选择采用74ls74延时再给74ls160计数器+1信号)。然后将整数+1部分和小数进位部分相加,同样使用74ls183。
图3  起步价和加价设置

价格修正

考虑到一开始是在起步价7元的基础上加价的,而且进位之后还要清零。个位在“逢十进一”后有0、1两种情况(例如68.6+1.4=70和9.8+1.4=11.2)。这个电路有点复杂,我尝试了几次过后还是选择使用状态机,首先分析,起步价在超过10元之后可以清零,个位的基准价格变为0或者1,那么0111B(7的8421码)第二位和第三位就可以清零并保持下去,所以我仍然采用74ls74D触发器,将输入端口D置高电平,Q ̅在未加触发信号的情况下是高电平,根据D触发器方程Q=D,在第一次进位后,Q ̅变为0,之后就一直是0(复位除外,74ls74有预置端和清零端,都都置1时不影响工作,R清零端置0时,输出Q为低电平,即初始状态)。
图4  价格修正
①进位信号,0101B(10D)触发(同时可用于清零);
②情况一:进位前是8,如8.6、8.8,置高电平等待进位信号;
③情况二:进位前是9,小数位进位之后是.4、.6、.8,置高电平等待进位信号;
④以上两种情况涵盖了需要将个位修正为0的情况,和进位信号相与即可;
⑤状态机:个位修正为0,R端接清零信号,clk接进位信号,如果无需修正,那么进位信号触发会将D端高电平传到Q端,这样就是1;
⑥状态机:在第一次进位之后就把8421码 中间两位清零,之后不干扰计数,R端接复位信号;
⑦或门:最低位要求两个状态机可以同时操控;

数码管显示

因为元件库里有四位二进制的数码管,所以我为了电路的简洁没有加上数码管译码器,但由于缺少小数点,故又使用了共阴极7段数码管加上74ls48译码器,将小数点位置1点亮。按要求一共用到三处数码管显示:图5  里程显示
图6  价格显示(中间的是七段共阴极数码管)
图7  单价显示

总结

本文电路较为复杂,肯定有更好的解决方法。该方案仅供参考,电路还有很多可以优化的方法,不要被一种方法限死。

如果有疏漏或者错误的地方还请指正,如果能够帮助到你,请给我点个赞。
祝各位学业有成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超详细!基于Proteus的出租车计价器实现(数字电路课程设计) 的相关文章

  • 组合逻辑电路——编码器

    组合逻辑电路 编码器 概念 编码的概念 在数字系统中 常需要将有特定意义的信息编成二进制代码 这一过程称为编码 编码器 实现编码的数字电路被称为编码器 二进制编码器 这里我们采用与非门来设计二进制编码器 二进制编码器输出端数量不定 可以根据
  • Timing Borrow的理解

    在集成电路设计中 静态时序分析 Static Timing Analysis STA 是一种常用的验证方法 用于确保芯片在运行时的时序约束得到满足 在STA分析过程中 Timing Borrow是一种时序收敛技术 即在某些情况下 可以借用下
  • 7种PCB走线方式

    01电源布局布线相关 数字电路很多时候需要的电流是不连续的 所以对一些高速器件就会产生浪涌电流 如果电源走线很长 则由于浪涌电流的存在进而会导致高频噪声 而此高频噪声会引入到其他信号中去 而在高速电路中必然会存在寄生电感和寄生电阻以及寄生电
  • chisel线网(wire)和寄存器(reg)详解(更新)

    主体内容摘自 https blog csdn net qq 34291505 article details 87714172 在Verilog里 模块内部主要有 线网 wire 和 四态变量 reg 两种硬件类型 它们用于描述数字电路的组
  • 超详细!基于Proteus的出租车计价器实现(数字电路课程设计)

    本文阐述基于Proteus 7 8的出租车计价器电路的实现 附具体电路的工程文件下载 工程文件下载链接 设计要求 里程测量精确到1 按起步价7元 3公里 起步价外按1 4元 公里进行计价 等候按1 4元 10分钟计算 具有里程显示 收费显示
  • 逻辑表达式三种化简方法

    逻辑表达式三种化简方法 目录 公式化简法 卡诺图化简法 机器化简法 一 公式法化简 是利用逻辑代数的基本公式 对函数进行消项 消因子 常用方法有 并项法 利用公式AB AB A 将两个与项合并为一个 消去其中的一个变量 吸收法 利用公式A
  • 数字电路设计之加法器的实现

    今天在看博客的时候看到有一种新颖的加法器写法 这和之前的超前进位加法器 二进制加法器不同 这个加法器应用了循环 我觉得应该会综合出来一个很差的东西 然后我试了一下 代码 module adder x y cin sum cout param
  • 数字电路实验(02)小规模组合逻辑电路实验1:交通灯状态

    数字电路实验 02 小规模组合逻辑电路实验1 交通灯状态 2020 5 11 一 实验要求 1 1 实验目的 1 认识解决实际组合逻辑问题的一般方法和过程 2 熟悉基本逻辑门的使用 1 2 实验器材 1 2输入与门 2 3输入与门 3 4输
  • CH1-数字逻辑基础

    文章目录 一 数制和码制 1 1 数字量和模拟量 1 2 数制和码制 一 数制 二 数制转换 三 码制 二 逻辑代数中的基本运算 与门 或门 非门 与非门 或非门 与或非门 异或门 同或门 三 基本和常用公式 3 1 基本公式 3 2 常用
  • chisel多时钟域设计(注释)

    在数字电路中免不了用到多时钟域设计 尤其是设计异步FIFO这样的同步元件 在Verilog里 多时钟域的设计很简单 只需声明多个时钟端口 然后不同的always语句块根据需要选择不同的时钟作为敏感变量即可 在Chisel里 则相对复杂一些
  • 试用74LS161和必要的门电路实现11进制计数器(要求用同步置数法实现)

    题目要求实现11进制计数器 则电路共有11个有效状态 我们可以选择0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010这11个状态作为电路的有效状态 按照上述状态选择方式 应向下图示接
  • 电子技术基础(三)__第7章 时序逻辑电路_D触发器

    在触发器的分类中有 同步触发器 同步触发器有3种 其中就有一种是 D触发器 称为同步D触发器 另外 还有一种触发器是 维持阻塞型 D触发器 这里 D 指Delay 延时 一 概念 1 1 概念 我们再次看到时钟上 有o 与 无o的区别 这在
  • 竞争与冒险

    竞争与冒险 文章目录 1 竞争与冒险产生原因 2 判断电路是否存在竞争 冒险现象 3 消除竞争与冒险 1 竞争与冒险产生原因 观察以下门电路 Gate1为 非门 Gate2为 与门 实现了逻辑 F A A
  • 74160同步置数法解析(以接成同步八进制计数器为例)

    我们先来看一下电路逻辑图 从中提取核心信息 将QD QC QB QA接成0010是为了配合LOAD引脚使用 以将74160的状态置为0010 计数器的最大状态为1001 当74160到达1001时 通过7400N与非门将LOAD引脚置为0
  • STM32 USB DP/DM内置的上下拉电阻阻值

    根据USB协议 工作在主机模式 USB DP DM下拉到GND 工作在设备模式 上拉到VCC DP上拉表示高全速设备 DM上拉表示低速设备 STM32在Device模式只支持高速或全速 图片来源于 STM32F407数据手册 红色为示意 实
  • 握手信号valid/ready的打拍技巧

    一 前言 valid和ready信号 尤其是ready信号的时序一般很差 因为它通常是接收端通过组合逻辑输出的 当流水线的级数较多时 ready反压信号一级一级往前传递 时序将会变得更差 为了优化时序 通常需要对valid和ready信号进
  • 小学期-中期总结报告

    实训中期总结报告 一 人文 本次实训采取讲练结合的方式 四次讲座分别介绍了实训整体要求安排 开发环境与流程 实验板的硬件电路 单片机原理 随着进度循序渐进 在实践方面 参观贴片整体流程 自己动手焊接电路板 下载实例进行学习 各个案例按照I
  • 组合逻辑毛刺消除(竞争冒险)

    一 毛刺产生的原因 信号在 IC FPGA 器件中通过逻辑单元连线时 是存在延时的 延时的大小不仅和连线的长短和逻辑单元的数目有关 而且也和器件的制造工艺 工作环境等有关 因此 信号在器件中传输的时候 所需要的时间是不能精确估计的 当多路信
  • 芯片后端开发基础知识(二)

    目录 1 静态时序分析 Static Timing Analysis 2 波形的压摆 Slew 3 信号偏斜 Skew 4 时序路径 Clock Path 5 时序弧 Timing Arc 6 时钟域 Clock Domain 7 工作环境
  • 输入延时(Input Delay)与输出延时(Output Delay)

    一 设置输入延时 Input Delay 1 不同的路径需要使用不同的约束 2 输入延时的定义 由下图可以看出Input Delay是以上游芯片的时钟发送沿为参考 上游的输出数据到达FPGA的外部输入端口之间的延迟 输入延迟 input d

随机推荐

  • Http 响应头 Transfer-Encoding : chunked 导致 浏览器客户端请求错误问题

    生产环境服务器规划如下 服务器 类型 网络环境 cal com nginx 外网 192 168 7 15 9200 tomcat 内网 192 168 7 16 9200 tomcat 内网 sdd com nginx 内网 192 16
  • 如何在当前目录下查看npm已安装了哪些库

    要查看在当前目录下 npm 已安装的库 可以在命令行中输入以下命令 npm list
  • html下拉菜单栏代码

  • 记一次Redhat7无法正常开机的解决过程

    事情的起源是使用VMWare虚拟平台克隆一个虚拟机的时候 克隆之前将网络配置全部删掉 然后将虚拟机关机 然后克隆出来一台之后 发现两台都无法正常的开机 症状是监视器会显示一个灰色的7背景 然后虽然没有死机但是也无法进入登录窗口 由于克隆之前
  • Failed to restart ssh.service: Unit not found. Centos7不能启动ssh服务

    升级ssh后重启服务 systemctl restart sshd service 遇到报错 Failed to restart ssh service Unit not found 解决方法 执行以下命令即可 进入 etc init d
  • PostgreSQL REPMGR 灾难恢复过程复盘

    大家肯能注意到 最近一直都是各种数据库的灾难恢复的复盘 本身作为一个TEAM 的LEADER 我想到的是在紧急情况下 我们应该有一个应对的措施 对每一个 TEAM 的 DBA 都应该在那个时候沉着冷静 并且知道那些是应该做的 那些是不该做的
  • 记录Mysql使用小技巧

    1 统计用逗号分隔字段中的元素 例如 有如下数据 需要把participants中每个元素出现的次数及对应的id统计出来 id participants 169 吉利 搜狗 1 170 吉利 搜狗 2 171 吉利 3 172 吉利 4 1
  • MySQL的一些基本操作

    现在有的时候线上数据不能直接操作IDE工具 SQL是避免不了的 而且即使是开发也会用到一些语句 将常用的聚集在一起 一 字段 a 表结构修改 1 增加字段 TABLE关键字不能少 ALTER TABLE xxx order ADD orde
  • kali 中msfconsole报警“WARNING: No database support: could not connect to server: Connection refused”及解决

    问题点 kali 2020 02版中msfconsole报警 WARNING No database support could not connect to server Connection refused 解决方法 step1 在终端
  • 126.数据链路层有哪些协议?

    PPP 点到点 HDLC 高级数据链路协议 csma cd carrier sensor multiple access collosion detect 载波多路监听 冲突检测 工作原理 先听后发 边听边发 冲突停发 随机延迟后重发
  • centos7使用rpmbuild制作rpm包

    本文作为我实验的一个总结文档 可能实现的功能比较简单 适合于想要简单入门使用的 希望对朋友们有所帮助 下载rpmbuild程序包 所用系统 centos7 6 yum install rpm build 安装程序包 如果你所要打包的程序需要
  • yum清缓存_YUM 安装及清理

    Yum 全称为 Yellow dog Updater Modified 是一个在Fedora中的Shell前端软件包管理器 基於RPM包管理 能够从指定的服务器自动下载RPM包并且安装 可以自动处理 依赖性关系 并且一次安装所有依赖的软体包
  • 小程序无需编程,体验IoT物联网平台-物模型开发——设备接入类

    微信小程序码 1 准备工作 1 1 注册阿里云账号 浏览器打开 https aliyun com 开通阿里云账号 并通过支付宝实名认证 https www aliyun com gt 1 2 免费开通IoT物联网平台 在产品分类 找到物联网
  • c语言-循环打印星号图形*

    用两层循环 外层循环 控制行 行数 换行 内层循环 控制列 列数 列的符号 第一种效果图 为什么是j lt i 2呢 第一行以0计算 第一行星数为0 第二行为1计算 第二行星数为2 include
  • 【DP练习】美元DOLLARS

    1040 练习题目 美元DOLLARS Description 在以后的若干天里戴维将学习美元与德国马克的汇率 编写程序帮助戴维何时应买或卖马克或美元 使他从100美元开始 最后能获得最高可能的价值 Input 输入文件的第一行是一个自然数
  • Linux TOP CPU %wa 值的理解

    起因 近期阅读到Linux下显示CPU执行情况命令top的使用 网上搜索显示为 单位时间io占用cpu比例 cpu等待输入输出 cpu等待io的时间 起初看来 总觉得是io瓶颈或者是cpu负载率 仔细琢磨 总觉得哪里出了问题 跟进 因为IO
  • 深度优先遍历目录

    磁盘文件系统类型 ext2 ext3 ext4 深度优先遍历目录 include
  • Qt中.pro文件报错问题

    1 error No rule to make target C Program Files x86 Windows Kits 10 Lib 10 0 22621 0 um x64 User32d a needed by debug unt
  • Matlab中特征选择reliefF算法使用方法(分类与回归)

    1 ReliefF简介 ReliefF是特征选择的一种算法 在高维特征样本中 选取部分具有代表性的特征 从而降低样本特征维度 它也是relief算法的进阶 Relief算法只能用来做二分类 但其算法简单 效率高 结果不错 因此才有了其进阶算
  • 超详细!基于Proteus的出租车计价器实现(数字电路课程设计)

    本文阐述基于Proteus 7 8的出租车计价器电路的实现 附具体电路的工程文件下载 工程文件下载链接 设计要求 里程测量精确到1 按起步价7元 3公里 起步价外按1 4元 公里进行计价 等候按1 4元 10分钟计算 具有里程显示 收费显示