按键状态扫描显示电路的设计与制作课程设计任务962462

课程设计任务书

题目: 按键状态扫描显示电路的设计与制作

初始条件:

(1)以0~9十个数符标识十个按键

(2)当有键按下时,显示其标识符,并保持显示符直到新的按键作用

(3)如果多个按键同时作用,只响应最先作用的按键

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

(1)设计任务及要求

(2)方案比较及认证

(3)系统框图,原理说明

(4)硬件原理,完整电路图,采用器件的功能说明

(5)调试记录及结果分析

(6)对成果的评价及改进方法

(7)总结(收获及体会)

(8)参考资料

(9)附录:器件表,芯片资料

时间安排:

6月27日~6月30日:明确课题,收集资料,方案确定,仿真

7月1日~7月4日:硬件电路制作与调试

7月5日~7月8日;报告撰写,交设计报告,答辩指导教师签名:年月日

系主任(或责任教师)签名:年月

目录

摘要 (Ⅰ)

1 任务及要求 (2)

1.1 设计任务 (2)

1.2 设计要求 (2)

2 设计方案 (2)

2.1 总体设计思想 (2)

2.2 总体逻辑功能图 (2)

2.3 设计方案的选择 (3)

2.3.1 编码电路的选择 (3)

2.3.2 触发电路的选择 (5)

3 单元电路的功能说明 (6)

3.1 单元电路的设计 (6)

3.1.1 按键控制电路 (6)

3.1.2 编码电路 (8)

3.1.3 触发电路的设计 (9)

3.1.4 逻辑反馈电路的设计 (10)

3.1.5 译码显示电路的设计 (11)

3.2 整体电路的工作原理 (15)

4 利用Protues,Multisim仿真电路 (16)

5 结束语 (18)

参考文献 (19)

附录 (20)

摘要

随着电子技术和计算机技术的飞速发展,电子线路的设计工作也日益显得重要。经过人工设计,制作实验板,调试再修改的多次循环才定型的传统产品设计方法必然被计算机辅助设计所取代,因为这种费时费力又费资源的设计调试方法即增加了产品开发的成本和周期,又受到实验工作场地及仪器的限制。因此,在EDA飞速发展的今天,EDA技术正慢慢领导着电子科技,同时慢慢进入到生活的各个方面。

本次按键状态扫描显示电路的设计与制作,就是一次理论知识与EDA技完美结合。本次设计要求以0-9十个数符标识十个按键,当有按键按下时,显示其标识符,并保持显示符,并保持显示指导新的按键作用,如果多个按键同时作用,只响应最先作用的按键,有点类似于带数字的抢答器,不过加了个数码显示管。

关键词:EDA技术状态扫描数码显示

按键状态扫描显示电路的设计与制作

1 任务及要求

1.1设计任务

1)以0-9十个数符标识十个按键;

2)当有键按下时,用数码显示管显示其标识数字,并保持到新的按键作用;

3)如果多个按键同时作用,只响应最先作用的按键。

1.2设计要求

本课程设计要求设计一个10按键数字状态扫描显示电路,以0-9标识十个按键,按下某一按键,数码显示管显示相应的数字。

2 设计方案

2.1总体设计思想

根据课程设计任务书要求,以及十个按键所对应的逻辑关系分析,得出设计及该电路大体需要按键控制电路、编码电路、触发电路、逻辑反馈电路、译码电路以及译码显示,其中译码电路和译码显示共同构成了译码显示电路。其控制关系如图2-1所示。

图2-1总体方案图

2.2总体逻辑功能图

按照按键控制电路的运行状态与数码管的显示数字的分析,总结写出不同开关按下时,数码管的显示,以满足当有开关按下时,用数码显示管显示其标识数字,并保持到新的按键作用,并且多个按键同时作用,只响应最先作用的按键的任务

要求。其关系如下表1。

表1 开关和数码显示的关系

2.3设计方案的选择

在设计本电路时,一共考虑过两种方案。这两种方案的不同点在于编码的方法不同,触发电路以及译码显示电路的芯片选择不同。下面简单的介绍一下这两种方案。

2.3.1.编码电路的选择

方案一:用十个按键和门电路组成的8421BCD码编码器

此电路逻辑图如图2-2所示,增值表如表2所示,十个按键S0-S9分别对应十进制数0-9,编码输出为ABCD和GS。

对真值表和逻辑电路进行分析,可得知:1.该编码器为输入低电平有效;2.再按下S0-S9中任意一个键时,即输入信号中有一个为低电平是GS=1,表示信号输入,在本次设计中还可作为后续电路的反馈信号,只有S0-S9均为高电平时GS=0,

图2-2 用十个按键和门电路组成的8421BCD码编码器

表示有无信号输入,此时的输出代码0000为无效代码。

尽管用十个按键和门电路组成的8421BCD码编码器由以上诸多强大的功能,不过其门电路在实际中很难找到。我也曾经想过用其他的门电路来代替图2-2中的五输入与非门但还是比较复杂让人望而却步。这就是我不选此电路的一个重要原因。

表2 十个按键8421BCD码编码器真值表

方案二:由74LS147和非门组成的十进制编码电路

此方案中用一个74LS147代替了方案一中大量的门电路,让电路变得简化。美中不足的是74LS147只有九个输入端,再加上74LS芯片后必须得加上四个非门,让我感觉很麻烦,这也让我一度放弃用这种编码电路。后来,我发现可以用反馈电路中的一个开关代替“0”输入开关,弥补了它的不足,这一点将在后续的反馈电路中加以说明。所以采用此方案。

2.3.2触发电路的选择

方案一:由74LS373和反馈电路连接

74LS373是一个八D锁存器。我让其使能端与反馈电路相连接,使得有信号输入后,反馈使能,锁存信号,使得其他信号不能输入,实现如果多个按键同时作用,只响应最先作用的按键的作用。理论分析的结果和仿真效果完全吻合。但是,在实际制作中,我们的开关系统所用的开关是按键是的。用这种方法,当开关由闭合到断开后,数码显示管显示的数字会归零,不符合“当有键按下时,用数码显示管显示其标识数字,并保持到新的按键作用”的功能。

另外,选用锁存器就是一个方向性的错误。当我决定用按键开关时,就应该想到应该用触发器。

综合以上理由,不选方案一。

方案二:由74LS273与反馈电路连接

74LS373是一个八D触发器,适合于这种用按键开关控制的电路。按键开关每按一下都会产生相应的一个脉冲信号,进行反馈和触发。

方案二完全符合本题目的要求,所以选方案二

方案一和方案二的总体电路图分别如图2-3,图2-4所示。

图2-3方案一的总体设计图(弃选)

图2-4方案二的总体设计图(采用)

3.单元电路的功能说明

3.1单元电路的设计

3.1.1 按键控制电路

按键控制系统不仅仅是几个开关,图3-1就是一个典型错误。

图3-1 错误的开关连接

图3-2正确的开关连接

图3-1中没有加上拉电阻,当按键没有按下时,芯片输入管脚悬空,不利于电路功能的实现。

正确的按键电路应该是加上10k的上拉电阻,使得当按键都没有按下时,芯片输入为高电平。否则,若按照图3-1的接法,没有一个按键按下时,芯片的输入有可能是高电平,也有可能是低电平,造成芯片输入混乱,对后面的逻辑电路造成重大的影响。

如图3-2所示,从上到下的按键分别表示1,2,3,4,5,6,7,8,9.。.通过按键的闭合即可完成相关信号的输入。

3.1.2编码电路

按键状态扫描显示电路的设计我采用的是74LS147十进制优先编码器,它的真值表和管脚图如下。

表3 74LS147真值表

其中74LS147的第9脚NC为空。74LS147优先编码器有9个输入端和4个输出端。某个输入端为0,代表输入某一个十进制数。当9个输入端全为1时,代表输入的是十进制数0。4个输出端反映输入十进制数的BCD码编码输出。

74147将9 条数据线(1-9)进行4 线BCD 编码,即对最高位数据线进行译码。当 1-9 均为高电平时,编码输出(ABCD)为十进制零。故不需单设/IN0 输入端。74LS147优先编码器的输入端和输出端都是低电平有效,即当某一个输入端低电平0时,4个输出端就以低电平0的输出其对应的8421 BCD编码。当9个输入

图3-3 74LS47管脚图

全为1时,4个输入出也全为1,代表输入十进制数0的8421 BCD编码输出。

选用74LS147有一个明显的缺陷,就是它只有九个输入端子,不能实现“0”按键的功能。但是,幸运的是,“0”按键的功能比较简单。可以在后续电路中实现,具体情况我将要在后续电路中介绍。

3.1.3触发电路的设计

如图3-5所示,为带有清零端的八D触发器74LS273。只有在清除端保持高电平时,数据才能通过触发器传递到后续电路。触发控制端为11脚CLK,采用上升沿触发。通过D触发器,我们可以将输入的相关信号“锁存”(因为必须要有上升沿的脉冲触发才能使信号通过,有点类似于锁存)起来。防止信号的任意跳变。 74LS273是8位数据/地址锁存器,他是一种带清除功能的8D触发器

1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上;

第一脚WR:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0(低电平);

CP(CLK):触发端,上升沿触发,即当CP从低到高电平时,D0~D7的数据通过芯片,为0时将数据锁存,D0~D7的数据不变

1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作

8位地址锁存器。

图3-4 74LS273的电气符号引脚图和逻辑功能表

通过真值表以及芯片的相关功能,我们已经了解74LS273的相关功能。在本次相关电路的设计中,通过反相器作用的信号输入到芯片74LS273,由于芯片为八D 触发器。由D触发器的基本功能,输出Q端与输入D相同,如果同时有多个按键作用的时候,此时74LS273芯片起到锁存器的作用,只显示出最初输入的信号。

同时,当按键恢复到没有按下去的时候,信号通过相关逻辑作用后,反馈给CLK。在CLK的作用下,实现清零的功能。清零以后,D触发器就不再锁存以前加入的信号。当有按键按下去的时候,此时芯片输入的就是作用按键的信号,再通过D触发器的作用,就可以完成新输入信号的锁存。

3.1.4逻辑反馈电路的设计

逻辑反馈电路如图3-5所示,有四个个或门(实际操作时,用或非门加上一个非门代替或门,具体原理为:L=A+B=A B

)和一个开关组成。其中出现的开关是“0”开关。

当图3-6中的四个非门有一个输出为高电平,就会输入一个上升沿信号到CLK 端,并且输出一个高电平到清零端,使得输出的信号通过。而且如果最先按下的

按键没有按下,高电平会持续输入到CLK端,阻止其他信号的输入。从而实现“如果多个按键同时作用,只响应最先作用的按键”的功能。

图3-5逻辑反馈电路

CLK端的具体逻辑输入为:

CLK=Q1+Q2+Q3+Q4

对于MR输入表达式,根据设计的方案,写出MR的逻辑表达式: MR=CLK+D0

图3-5中的开关起到清零的作用,由于设计的电路中有一些芯片需要控制使能端,才能使芯片工作在所需要的状态。此外对于不同的芯片,可能有效的信号高低电平不同,需要加入反相器进行相关的转换。因为设计选择的芯片是九输入的74LS147,所以我们还需要补充一个按键作为“0”按键。而上图中的开关就是“0”开关。当该按键按下时,输出低电平到清零端清零。

3.1.5译码显示电路的设计

本次设计利用的是CD4511芯片以及共阴极七段数码显示管显示管构成译码显示电路。

这里,先简要介绍一下CD4511。

CD4511的功能:

CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码—七段码译码器,特点如下:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS 电路能提供较大的拉电流。可直接驱动LED显示器。用CD4511实现LED与接口方法如下图:

图3-6 CD4511连接方法

其功能介绍如下:

BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。

LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入DCBA 状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏。

LE:锁定控制端,当LE=0时,允许译码输出。 LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。

A1、A2、A3、A4、为8421BCD码输入端。

a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效。

CD4511的内部有上拉电阻,在输入端与数码管笔段端接上限流电阻就可工作。

1. CD4511的引脚

CD4511具有锁存、译码、消隐功能,通常以反相器作输出级,通常用以驱动LED。

其引脚图如3-2所示。

各引脚的名称:其中7、1、2、6分别表示A、B、C、D;5、4、3分别表示LE、BI、LT;13、12、11、10、9、15、14分别表示 a、b、c、d、e、f、g。左边的引脚表示输入,右边表示输出,还有两个引脚8、16分别表示的是VDD、VSS 2. CD4511的工作原理:

(1)CD4511的工作真值表如表3所示

( 2 )锁存功能

译码器的锁存电路由传输门和反相器组成,传输门的导通或截止由控制端LE的电平状态。

当LE为“0”电平导通,TG2截止;当LE为“1”电平时,TG1截止,TG2导通,此时有锁存作用。如图3-3

(3)译码

CD4511译码用两级或非门担任,为了简化线路,先用二输入端与非门对输入数据B、C进行组合,得出A、B、C、D四项,然后将输入的数据A、D一起用或非门译码。

(4)消隐

BI为消隐功能端,该端施加某一电平后,迫使B端输出为低电平,字形消隐。消隐控制电路如图3-6所示。

消隐输出J的电平为:

J=(C+B)D+BI

如不考虑消隐BI项,便得J=(B+C)D

据上式,当输入BCD代码从1010---1111时,J端都为“1”电平,从而使显示器中的字形消隐。

表3 CD4511的真值表

输入输出

LE BI LI D C B A a b c d e f g 显示

X X 0 X X X X 1 1 1 1 1 1 1 8

X 0 1 X X X X 0 0 0 0 0 0 0 消隐

0 1 1 0 0 0 0 1 1 1 1 1 1 0 0

0 1 1 0 0 0 1 0 1 1 0 0 0 0 1

0 1 1 0 0 1 0 1 1 0 1 1 0 1 2

0 1 1 0 0 1 1 1 1 1 1 0 0 1 3

0 1 1 0 1 0 0 0 1 1 0 0 1 1 4

0 1 1 0 1 0 1 1 0 1 1 0 1 1 5

0 1 1 0 1 1 0 0 0 1 1 1 1 1 6

0 1 1 0 1 1 1 1 1 1 0 0 0 0 7

0 1 1 1 0 0 0 1 1 1 1 1 1 1 8

0 1 1 1 0 0 1 1 1 1 0 0 1 1 9

0 1 1 1 0 1 0 0 0 0 0 0 0 0 消隐

0 1 1 1 0 1 1 0 0 0 0 0 0 0 消隐

0 1 1 1 1 0 0 0 0 0 0 0 0 0 消隐

0 1 1 1 1 0 1 0 0 0 0 0 0 0 消隐

0 1 1 1 1 1 0 0 0 0 0 0 0 0 消隐

1 1 1 X X X X 锁存锁存

这里我要着重强调一下七段译码显示管,它看似简单,却让我们组吃尽了苦头。简单的数码管还分为两种:共阴极和共阳极(如图3-7,图3-8)。.

图3-7 共阴极数码管

图3-8 共阳极

图3-9数码显示管管脚图另外,我们所选用的CD4511只能搭配共阴极数码显示管。

3.2整体电路的工作原理

整个电路的电路图如下:

图3-10 总体电路图

电路中有十个按键,右侧的那个按键为“0”,左侧的按键从高到低依次是1-9。当任意按键按下后,通过译码电路,数码显示管显示其对应的数字,并通过触发电路的作用,保持到有新的按键作用。当多个按键同时作用时,由于反馈电路的作用,只响应最先作用的按键。

4利用protues,Multisim仿真电路

NI Multisim软件是一个专门用于电子电路仿真与设计的EDA工具软件。作为Windows 下运行的个人桌面电子设计工具,NI Multisim 是一个完整的集成化设计环境。NI Multisim计算机仿真与虚拟仪器技术可以很好地解决理论教学与实际动手实验相脱节的这一问题。学员可以很方便地把刚刚学到的理论知识用计算机仿真真实的再现出来,并且可以用虚拟仪器技术创造出真正属于自己的仪表。NI Multisim软件绝对是电子学教学的首选软件工具。

整个操作界面就像一个电子实验工作台,绘制电路所需的元器件和仿真所需的测试仪器均可直接拖放到屏幕上,轻点鼠标可用导线将它们连接起来,软件仪器的控制面板和操作方式都与实物相似,测量数据、波形和特性曲线如同在真实仪器上看到的。

提供了世界主流元件提供商的超过17000多种元件,同时能方便的对元件各种参数进行编辑修改,能利用模型生成器以及代码模式创建模型等功能,创建自己的元器件。

以SPICE3F5和Xspice的内核作为仿真的引擎,通过Electronic workbench 带有的增强设计功能将数字和混合模式的仿真性能进行优化。包括SPICE仿真、RF仿真、MCU仿真、VHDL仿真、电路向导等功能。

提供了转换原理图和仿真数据到其他程序的方法,可以输出原理图到PCB布线(如Ultiboard、OrCAD、PADS Layout2005、P-CAD和Protel);输出仿真结果到MathCAD、Excel或LabVIEW;输出网络表文件;向前和返回注;提供Internet Design Sharing(互联网共享文件)。

Proteus是一种功能强大的电子设计自动化软件,提供智能原理图设计系统、SPICE模拟电路、数字电路及MCU器件混合仿真系统和PCB设计系统功能。其不仅可以仿真传统的电路分析实验、模拟电子线路实验、数字电路实验等,而且可以仿真嵌入式系统的实验,其最大的特色在于可以提供嵌入式系统(单片机应用系统、ARM应用系统)的仿真实验,这也是其它任何仿真软件无力所及的。例如,其支持单片机和周边设备,可以仿真51系列、8086、AVR、PIC、Motorola的68系列等常用的MCU,并提供周边设备的仿真,例如373、led、示波器等。Proteus

提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件等。在编译方面,它也支持Keil和MPLAB等多种编译器。

至于具体的仿真,前面都有叙述,此处不再赘述。

5.结束语

本次设计是通过查阅各种资料和我们的讨论的思考做出做出来的,在设计的过程中我们每个人都提出了自己的想法,用各种不同的芯片以实现我们所需要的功能。通过讨论我们从每个人的不同方案中选择出比较简单,易于实现的方案,自己独立思考,并且都自己动手组装电路。再组装前,我们就自己的方案用protues 进行了仿真,在仿真的过程中我们找到自己电路可能出现的问题,并且从中改正自己的错误。在这个过程中,我学会了自己找自己的错误,不是自己的就是对的,同时也告诉我,要更有耐心,更仔细的去完成设计,不能大概对了就马马虎虎的去动手。在改正自己的错误的过程中,我发现自己做动手分析问题的能力增强了,自己对设计的原理理解也更清楚了。

同时再动手搭电路的过程中发现动手做与仿真时还是不一样的,在动手的过程中会遇到仿真时没遇到的问题,接线时有时会没接好,导致断路,而没有发现,需要用万用表检查,而仿真时接线好不好一眼就可以看出来了,因此亲手做时还是不一样的。

此次的课程设计锻炼了我的思维和动手能力,在与同学的相互交流中看到了同学们不一样的想法,我们互相学习,相互提高,同时也拓宽了我们的视野,让自己的学习能力在设计的过程中得到提高。

相关文档
最新文档