[导读]通过本文介绍而制作完成后的BCD发生器可以提供4位BCD编码输出,方便地控制每位BCD输出,可以快速地得到BCD编码而完成测试或输出BCD编码接到集成电路的BCD编码接口,无需频繁跳线。
|
1 引言
BCD码又称二/十进制码,即二进制编码的十进制码,在设计、测试数字电路硬件过程或是面对带有BCD码接口的集成电路时,常常希望方便、快速地产生BCD码来完成当前的工作,检验硬件电路的正确性,例如锁相频率合成集成电路MC145163P带有4位BCD编码接口,用于设置环路N分频器,通过本文介绍而制作完成后的BCD发生器可以提供4位BCD编码输出,方便地控制每位BCD输出,可以快速地得到BCD编码而完成测试或输出BCD编码接到集成电路的BCD编码接口,无需频繁跳线。
另外,BCD编码有8421码、2421码、余3码等多种形式,本文以常见的8421码为例介绍电路的实现和程序的编写。如果对程序略加修改则可以很方便地实现其他类型的编码方式(如2421码)。本电路以AT89C2051为核心设计了4×4的矩阵键盘(S0-S15),这样只需在键盘上按下相应的按键(S0-S9)即可以产生一个对应(十进制0-9)的BCD码,通过设置切换按键(S10-S13)可以随意地控制4位中任意的一位,期间用数码管实时地显示当前BCD码对应的十进制数。
电路功能和特点:
4位BCD编码输出,利用单片机口线可以扩展位数。
改变软件中键号0-键号9(即S0-S9对应功能)的程序可以实现其他编码形式(如2421码)。参见软件部分。
电路以常用的8421码为例,并有数码显示出对应的十进制数(也可以省略)。
完整的4×4的矩阵键盘扫描执行程序,可以移植到其他应用电路中。
BCD编码由锁存器实现信号锁存,并引出接口,方便连接其他电路。
“位”控制和0-9编码输出互不影响,直接按下功能键就可以得到需要的BCD编码输出和“位数”选择。
2 电路框图
电路原理图如图1所示。
 |
3 电路分析
AT89C2051的P1口组成4×4矩阵键盘(S0-S15),其中P1.0-P1.3作为行线,P1.4-P1.7作为列线,设计键盘扫描程序可以达到预先设想的功能(见软件设计部分)。按下S0-S9可以产生0-9十进制数对应的BCD码,S10-S13用作4位BCD码的切换按键,S14、S15暂未使用,可以不安装,P3.3-P3.0是BCD码的数据输出线,从电路中可以看出,因为功用键盘而实现4位BCD编码输出,显然P3.3-P3.0作为数据总线而同时并接在4个D锁存器(4042),通过S10-S13来切换,对于4个D锁存器(U3-U6)每次只有一个有效而把P3.3-P3.0的数据“读入”然后锁存。实际上S10-S13控制P3.4和P3.5的状态(P3.4和P3.5共有4种组合)并通过2-4线译码器(U2;74LS139)得到对应的U3-U6的有效信号,表1是S10-S13控制所对应的各芯片状态,可见,U3-U6中任意一个(例如U3)处于有效状态而“读入”P3.3-P3.0数据时,其余的(U4/U5/U6)处于锁存状态,保留原来数据,因此使用者可以在任意一位中改变所希望的BCD码输出。
 |
U2(74LS139)是2-4线译码器,功能见表1,他的输入端B,A分别接至P3.4,P3.5,输出端Y0-Y3取决于输入端的组合,每种组合下只有一个输出端(Y0-Y3)以低电平有效输出。U3-U6是D锁存器,主要是其中的5脚和6脚关系决定他们的工作状态,查阅资料得知,当5脚和6脚逻辑电位相同时,该芯片可以把D3-D0数据输出到Q3-Q0;当5脚和6脚逻辑电位不同时,该芯片处于锁存原来数据的状态,而不会“读入”当前的D3-D0数据,电路中把U3-U6的6脚固定接低电位,而5脚分别用U2(74LS139)的输出信号来控制,不难实现“可以单独实现对各位BCD码的设置”。4511是译码驱动,接共阴数码管显示当前每位的BCD码所对应的十进制数,方便观察,显示部分很简单,此处不在赘述,同时,显示部分在电路上不是必须的,可省略,BCD码通过J3和J2引出,之所以用两个链接器是为了更灵活、方便使用。
4 软件设计
主要是实现键盘处理,程序中必须确认是哪一个按键被按下,然后转到相应的处理程序中执行,实际上该程序是一个完整的键盘扫描程序,如果改动其中的处理子程序完全可以应用到其他的控制电路中,下文附有详细的程序和说明供参考,图2是流程图。
 |
键盘扫描程序的任务简单讲就是:首先确认是否有按键按下,然后通过扫描判断来得到是在哪一行的按键,最后通过比较预先设定的4行表格查找并计算得到具体的按键,从而转到相应的功能程序。
(1)置列线为输入状态(P1.4-P1.7为1),行线(P1.0-P1.3)先为0,即设定的P1.7-P1.0等于F0H并把该状态保存,接这读入当前P1口状态,不难理解,只要有按键(任何一个)按下,P1口的状态肯定不是原来设定的P1.7-P1.0等于F0H,通过判断就可以实现第一步的目的:首先确认是否有按键按下?
(2)从第一行(P1.0行)开始一步步扫描,找出并确认按键在哪一行,扫描的方法步骤见表2。行线每次只有一个为0,例如第1次扫描时设定P1.0为0,而P1.1-P1.3为1,显然,在当前扫描过程中按下按键如果不是P1.0行,那么P1口状态始终是FEH,因此表2说明中强调“只有任一次比较P1口不等于该数值,说明当前按键就在该行”就是这样的含义,其余各次比较也是一样道理,通过这样的判断,可以实现查找按键所在得行数。
(3)程序中定义了4个表KEYVALTAB1-KEYVALTAB4,分别存放的数据用来为比较程序服务而指示出各行的按键具体位置,表3列出按键标号和比较数据对应关系,在R2中存放行号的起始值,R0用来存放在每一行中查到按键的具体位置(R0范围是0-3),各行查找时比较的数据见表(3)。读写可以简单分析就可以得到结果,假设通过程序先判断按键在第一行,显然如果S0按下,P1.7-P1.0的状态是11101110(S1连接于P1.0和P1.4),也就是表3中S0→EEH。
(4)KEYCALCU子程序中通过乘3运算用于散转指令JMP,注意LJMP是3字节指令,各按键对应的功能程序安排在一起串LJMP,所以通过乘3运算才能正确对应到各按键的执行目标功能程序。
关于各键的相应处理功能就较简单,只要对应不同的按键输入相应的控制命令,对于S0-S9是控制P3.3-P3.0不同的状态以得到所对应的BCD编码,对于S10-S13则是控制P3.4,P3.5的状态以实现对U3-U6的控制,限于篇幅,详细内容可以参见程序,程序开始执行时是逐个控制4位BCD编码输出,对应的数码管依次显示,初始状态为0001,0000,0000,0000 4位BCD码分别从J3,J2引出,数码管显示为1,0,0,0。
5 4×4键盘扫描程序
|
|
|
|
|
|
|
|
|
|
|
|
|
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
通过本文,你将了解到什么是绝对值编码器、绝对值编码器的工作原理以及单圈/多圈绝对值编码器的区别。
关键字:
绝对值编码器
指数
编码器
在上篇文章中,小编对增量式编码器有所阐述。为增进大家对编码器的认识,本文将对绝对式编码器予以介绍。
关键字:
绝对式编码器
指数
编码器
为增进大家对编码器的认识,本文将对增量式编码器、增量式编码器分类以及增量式编码器的工作原理予以介绍。
关键字:
增量式编码器
指数
编码器
构建可靠的硬件要求我们在设计阶段考虑所有公差。许多参考文献讨论了参数偏差导致的有源元件误差——展示了如何计算运算放大器失调电压、输入电流和类似参数的影响——但很少有人考虑无源元件容差。确实考虑了组件容差的参考文献是从科学...
关键字:
元件公差
电路设计
对于非比例电路,我们必须假设完整的电阻容差,因为容差不会分开。我们可以将输出电压计算为 V OUT =IR,其中 I 是理想的 1mA 电流源,R 是 5% 的电阻器(图 1a)。V OUT =1 mA (1±0.05±...
关键字:
电路设计
非比例电路
我们是否设计了一个电源,后来才发现我们的布局效率低下?按照这些关键提示创建电源布局并避免调试压力。什么是电源设计的布局?你知道吗?一个完美的电路设计,电源布局显得尤为重要。由于不同的设计方案的出发点不同,而有所差异,但是...
关键字:
电源布局
电路设计
2022年4月20日,宜科(天津)电子有限公司(下称“宜科”)与世强先进签署代理协议,授权世强先进代理其旗下传感器、编码器、I/O系统、连接系统、工业物联网平台等全线产品。
关键字:
世强
编码器
传感器
为增进大家对编码器的了解,本文将对编码器原理以及光电编码器按其原理分类的方法予以介绍。
关键字:
光电编码器
指数
编码器
(全球TMT2022年6月9日讯)韩国唯一一家纯晶圆代工公司启方半导体(Key Foundry)宣布,将发布用于低功耗PMIC的0.18微米30V非外延BCD工艺。BCD是一种将双极晶体管(Bipolar)、互补金属氧...
关键字:
BCD
低功耗
半导体
电源管理芯片
摘要:基于摄像机远程操作技术,利用单片机控制步进电机,建立摄像镜头的电力驱动系统。此系统节约了经济成本,通过人机交互闭环系统、模块化等方法,进一步提高了系统的通用性,使其可以应用于工程。
关键字:
步进电机
单片机
电路设计
一直以来,智能硬件都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来智能功率模块的相关介绍,详细内容请看下文。
关键字:
智能功率模块
IPM
电路设计
与传统聚合物电容器相比,多层陶瓷电容器 (MLCC) 在电力电子设计中很受欢迎,原因有很多:
MLCC 提供:
· 具有相对较高电容的小轮廓。
· 非常低的等效串联电阻 (ESR)。
· 非常低的等效串联电感 (...
关键字:
MLCC电容
电路设计
在这篇文章中,小编将对工业机器人对伺服电机、编码器的要求的相关内容和情况加以介绍以帮助大家增进对工业机器人的了解程度,和小编一起来阅读以下内容吧。
关键字:
工业机器人
伺服电机
编码器
许多同步降压转换器设计人员面临一个共同的问题:如何最好地连接开漏电源良好标志,也称为电源良好 (PGOOD) 引脚。在这篇文章中,我将探讨电源良好与各种不同的上拉源相关联时的预期行为。有一些错误信息四处流传,希望这篇文章...
关键字:
降压转换器
电路设计
绝对型旋转光电编码器,因其每一个位置绝对唯一、抗干扰、无需掉电记忆,已经越来越广泛地应用于各种工业系统中的角度、长度测量和定位控制。
关键字:
编码器
定位控制
长度测量
编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。
关键字:
编码器
数据
信号
嵌入式开发是指利用分立元件或集成器件进行电路设计、结构设计,再进行软件编程(通常是高级语言),实验,经过多轮修改设计、制作,最终完成整个系统的开发。
关键字:
嵌入式开发
电路设计
结构设计
通过信道编码器和译码器实现的用于提高信道可靠性的理论和方法。信息论的内容之一。信道编码大致分为两类 :①信道编码定理,从理论上解决理想编码器、译码器的存在性问题,也就是解决信道能传送的最大信息率的可能性和超过这个最大值时...
关键字:
信道
编码器
译码器