键盘及接口显示电路 EDA

键盘及接口显示电路 EDA
键盘及接口显示电路 EDA

河南科技大学

课程设计说明书

课程名称 EDA技术

题目键盘及接口显示电路

学院车辆与动力工程学院

班级农业电气化与自动化091

学生姓名卢浩冉

指导教师罗四倍

日期 2012年7月12号

键盘及接口显示电路

摘要

本文通过对4×4矩形键盘的信息采集,并能够在数码显示管上显示所按下的信息。通过循环输出行信号,检测列信号输入,将行列信号相并,来达到采集信号的目地,并通过译码在7段数码管上显示出来。此次设计,为了防止抖动引起的混乱,加入了一个防抖动环节。

在译完一个键值后,加了一个计算环节,一旦检测到列信号后,译码,紧跟着进入计数环节,此时键抖动不会进入其他环节,这样可以防止抖动。给精度较高的场合应用提供了良好的条件,为以后高精度的应用创造良好空间。设计中通过按键控制可以显示字符串,例如“HELLO”,较小的改动可以任意显示5个字符,这在广告中的用处随处可见,给现代生活带来了方便。

关键词:键盘扫描译码显示字符串

目录

第一章绪论 (4)

§1.1设计目的和意义 (4)

§1.2设计任务及要求 (4)

第二章总体设计 (5)

§2.1工作原理 (5)

§2.2设计思路 (5)

§2.3数码管显示译码模块设计 (7)

§2.4字符串“HELLO”的模块实现 (8)

§2.4.1七段数码管译码扫描显示 (8)

§2.4.2原理图 (9)

第三章仿真 (10)

§3.1键盘扫描功能的仿真 (10)

§3.2字符串的仿真 (11)

第四章程序 (12)

§4.1键盘扫描程序 (12)

§4.2字符串显示程序 (20)

第五章结论 (24)

参考文献 (25)

第一章绪论

§1.1 设计目的和意义

本次设计的目的就是通过实践深入理解计算机组成原理,了解EDA技术并掌握VHDL硬件描述语言的设计方法和思想。以计算机组成原理为指导,通过学习的VHDL 语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用。通过对掌握4×4键盘的扫描的巧妙实现和对字符串的显示过程.巩固和综合运用所学知识,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。

§1.2 设计任务及要求

1.键盘扫描功能:能够对矩形键盘信息采集;

2.显示功能:能够显示相应的按键信息,并能够在按键控制下切换为字符串显示“HELLO”!

3.掌握数码管工作的原理,并能够对设计的程序进行仿真和测试,以实现相应的功能。

第二章总体设计

§2.1工作原理

可编程器件的KEY_HANG[3..0]行信号输出端不停循环输出“1110”“1101”“1011”“0111”。当没有键按下时可编程器件的KEY_LIE[3..0]列信号输入端检测到的是“1111”。当有按键按下时,如按下1,此时KEY_HANG[3..0]行信号输出为“0111”,即KEY_HANG[3..0]的3管脚为“0”,可由电路看出,此时输入端KEY_LIE[3..0]检测到的将是“0111”。KEY_LIE[3..0]的3管脚为0,可以在编写程序时,将输出信号KEY_HANG[3..0]与输入信号KEY_LIE[3..0]同时判断,比如可以认为当数据“KEY_HANG&KEY_LIE”为“01110111”时,可译码成数据1,。同理可得其他按键的编码。根据不同数据的编码译成不同的数据。

§2.2设计思路

1.循环输出行信号,检测列信号输入,将行列信号相并。

2.译键值。

3.去抖动。在译没一个键值后,为了防止抖动,加了一个计算环节,一旦检测到列信号后,译码,紧跟着进入计数环节,此时键抖动不会进入其他环节,这样可以防止抖动。

4.数码管译码、循环显示。

电路的具体功能罗列如下:

1) 采用4×4矩阵键盘作为操作数和操作符的输入设备。

2) 采用2位8段数码管作为输出显示设备,显示按下的数字及简单的功能。

3) 由于所有键盘在按下或者弹起的时候均有按键抖动,所以应该采用去抖电路,当检测到有按键按下去的时候,应该延时20ms后,再进行检测,如果仍有键盘按键被按下去的话,则进行键盘读值。

当CLK_1K上升沿到来时状态转为state0,然后判断列与非后的值,看是否有按键按下,如果有输入数据,则自动启动20ms的计数器,当计满数后,产生一个指示信号,此信号为1bit,高电平有效。当读到此指示信号后,便再次将row信号锁存至寄存器,便得到键盘的一个返回值。如果row没有变化,则state转换为state2,对第二行进行按键扫描。依此类推,扫描第三行与第四行。

因为普通的按键都是接触式的,当按键闭合或释放时,上下接触面都会产生一个很短暂的抖动,如图2.2所示,这个抖动时间一般都会持续5-10ms,虽然这个抖动时间很短,但对于FPGA工作在50M的高频率上的器件来说,还是可以捕捉的到的。为了使CPU对于一次按键操作只处理一次,在软件中必须加入去除抖动处理。如图2.1所示

图2.1 按键闭合时产生的抖动

由图中可以看出,最简单的去抖方法就是每隔一段时间读一次键盘,时间间隔大于

10ms即可。如果连续两次检测都有按键被按下,则可以肯定有按键被按下,而且也进入闭合稳定期。

§2.3数码管显示译码模块设计

数码管显示译码电路主要用来对实际的二进制数据装换为8段数码管的实际显示控制码,采用两个2位的8段共阴极数码管,数码管的显示方式有两种:静态显示和动态显示。具体如下:

静态显示方式:所谓静态显示就是指无论是多少位数码管,同时处于显示状态需要的硬件电路较多(每一个数码管都需要一个锁存器),将造成很大的不便,同时由于所有数码管都处于被点亮状态,所以需要的电流很大,当数码管的数量增多时,对电源的要求也就随之增高。所以,在大部分的硬件电路设计中,很少采用静态显示方式。

动态显示方式:所谓动态显示,是指无论在任何时刻只有一个数码管处于显示状态,每个数码管轮流显示。

动态显示的优点是:硬件电路简单(数码管越多,这个优势越明显),由于每个时刻只有一个数码管被点亮,所以所有数码管消耗的电流较小;缺点是:数码管亮度不如静态显示时的亮度高,例如有8个数码管,以1秒为单位,每个数码管点亮的时间只有1/8秒,所以亮度较低;如果刷新率较低,会出现闪烁现象;如果数码管直接与单片机连接,软件控制上会比较麻烦等。

显示译码方式如下:

1) 时钟上升沿到来时分别对位选和段选进行译码。

2) 将输入的2bite位选数据译码成4比特数据控制数码管的2位,由于是共阴极数码管要选定相应的数码管则使该位位低电平,其它位为高电平即可,如:0000译码为0111_1111,对应于实验板上的左边第一位数码管。

3) 将输入的4bite段选数据译码为8比特数据控制8个LED的亮灭,最高位接A,最低位接小数点位DP。若要显示0则对应的译码为8’b1111_1100。

§2.4字符串“HELLO”的模块实现

§2.4.1 七段数码管译码扫描显示

clk:时钟输入端,此信号是串行扫描的同步信号。

data_control[7..0]:8个分别控制数码管显示的输入信号;

led_addr[7..0]:对8个数码管进行串行扫描的输出控制信号;

seg7_data[6..0]:驱动7段数码管各显示段的输出信号;

§2.4.2 原理图

图2.2 字符串显示原理图

第三章仿真

§3.1 键盘扫描功能的仿真

没有键按下时行循环输出“1110”“1101”“1011”“0111”

图3.1 无按键时波形

当随机按下时行保持所按下的状态不变

图3.2 随机按键时波形

§3.2 字符串的仿真

图3.3 字符串显示

第四章程序

§4.1 键盘扫描程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity jp is

port(

clk,start:in std_logic;

kbcol:in std_logic_vector(3 downto 0); --行扫描信号

kbrow:out std_logic_vector(3 downto 0); --列扫描信号

seg7_out:out std_logic_vector(6 downto 0);--显示控制信号

scan:out std_logic_vector(7 downto 0) --数码管地址选择控制信号);

end jp;

architecture one of jp is

signal count,sta:std_logic_vector(1 downto 0);

signal seg7:std_logic_vector(6 downto 0);

signal dat:std_logic_vector(4 downto 0);

signal fn:std_logic; --按键标志位,判断是否有键被按下begin

scan<="00000001"; --只使用一个数码管显示

--循环扫描计数器

process(clk)

begin

if clk'event and clk='1'then

count<=count+1;

end if;

end process;

--循环列扫描

process(clk)

begin

if clk'event and clk='1'then

case count is

when "00"=>

kbrow<="0001";

sta<="00";

when "01"=>

kbrow<="0010";

sta<="01";

when "10"=>

kbrow<="0100";

sta<="10";

when "11"=>

kbrow<="1000";

sta<="11";

when others=>

kbrow<="1111";

end case;

end if;

end process;

--行扫描译码

process(clk,start)

begin

if start='0'then

seg7<="0000000";

elsif clk'event and clk='1'then case sta is

when "00"=>

case kbcol is

when "0001"=>

seg7<="1111001";

dat<="00011";

when "0010"=>

seg7<="1101101";

dat<="00010";

when "0100"=>

seg7<="0110000";

dat<="00001";

when "1000"=>

seg7<="1111110";

dat<="00000";

when others=>

seg7<="0000000";

dat<="11111";

end case;

when "01"=>

case kbcol is

when "0001"=>

seg7<="1111000";

dat<="00111";

when "0010"=>

seg7<="1011111";

dat<="00110";

when "0100"=>

seg7<="1011011";

dat<="00101";

when "1000"=>

seg7<="0110011";

dat<="00100";

when others=>

seg7<="0000000";

dat<="11111";

end case;

when "10"=>

case kbcol is

when "0001"=>

seg7<="0011111";

dat<="01011";

when "0010"=>

seg7<="1110111";

dat<="01010";

when "0100"=>

seg7<="1111011";

dat<="01001";

when "1000"=>

seg7<="1111111";

dat<="01000";

when others=>

seg7<="0000000";

dat<="11111";

end case;

when "11"=>

case kbcol is

when "0001"=>

seg7<="1000111";

dat<="01111";

when "0010"=>

seg7<="1001111";

dat<="01110";

when "0100"=>

seg7<="0111101";

dat<="01101";

when "1000"=>

seg7<="1001110";

dat<="01100";

when others=>

seg7<="0000000";

dat<="11111";

end case;

when others=>

seg7<="0000000";

end case;

end if;

end process;

--产生按键标志位,用于存储按键信息

fn<=not (dat(0) and dat(1) and dat(2) and dat(3) and dat(4));

process(fn)

begin

if fn'event and fn='1'then --按键信息存储seg7_out <=seg7;

end if;

end process;

end one;

§4.2 字符串显示程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity Scan8led is

port(clk:in std_logic;

data_control:in std_logic_vector(4 downto 0);

led_addr:out std_logic_vector(4 downto 0);

seg7_data:out std_logic_vector(6 downto 0)); end entity scan8led;

单片机键盘显示接口电路设计说明

中北大学 单片机及其接口技术 课程设计说明书 学生:学号: 学院: 专业: 题目:单片机键盘显示接口电路设计 指导教师:小林职称: 副教授 2012年6月17日

中北大学 单片机及其接口技术 课程设计任务书 11/12 学年第二学期 学院: 专业: 学生姓名:学号: 课程设计题目:单片机键盘显示接口电路设计 起迄日期:6月11日~6月17日 课程设计地点:中北大学 指导教师:小林 系主任:王忠庆

下达任务书日期: 2012年06月11日课程设计任务书

课程设计任务书

第一章、绪论89C51是一种带4KB闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。在本次课程设计中,便采用89C51单片机。 第二章、设计容 一、4×4键盘 原理:4 行 行 行 行

图1 电路原理图见附图一 本次设计为4×4的矩阵键盘,这样的设计可以有效的减少键盘与单片机接口时所占用的I/O接口。在这种非编码键盘的单片机系统中,键盘处理程序首先执行有无按键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键被按下,对键的识别常采用逐行(逐列)扫描的方法。 首先判断有无按键按下。方法是:向行线输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入到累加器A中,如果有按键按下,会使列线电平被拉至低电平,是列输入不全为1。 判断键盘哪一个键被按下。方法是:一次给行线送低电平,然后查所有列线状态,称为行扫描,如果全为1,则所按下键不在此行,如果不全为1,则所按下键必在此行,而且是在与零电平列线相交的交点上的那个键。 在此,按键的位置码并不等于按键的实际定义键值,因此还必须进行转换,即键值译码,本次设计中采用软件实现键值的译码,译码方式如下: 第0行键值为:0行×4+列号(0~3)为0、1、2、3; 第1行键值为:1行×4+列号(0~3)为4、5、6、7; 第2行键值为:2行×4+列号(0~3)为8、9、A、B; 第3行键值为:3行×4+列号(0~3)为C、D、E、F; 译码程序如下:

编码器和译码器的应用

编码器、译码器及应用电路设计 一、实验目的: 1、掌握中规模集成编码器、译码器的逻辑功能测试和使用方法; 2、学会编码器、译码器应用电路设计的方法; 3、熟悉译码显示电路的工作原理。 二、实验原理: 1、什么是编码: 教材说:用文字、符号、或者数字表示特定对象的过程称为编码 具体说:编码的逻辑功能是把输入的每个高、低电平信号编成对应的二进制代码 2、编码器74LS147的特点及引脚排列图: 74LS147是优先编码器,当输入端有两个或两个以上为低电平,它将对优先级别相对较高的优先编码。其引脚排列图: 3、什么是译码:译码是编码的逆过程,把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出,译码器广泛用于代码转换、终端的数字显示、数据分配、组合控制信号等。 译码器按照功能的不同,一般分为三类:二进制译码器、二—十进制译码器、显示译码器。 (1)变量译码器(用以表示输入变量的状态) 74LS138的特点及其引脚排列图:反码输出。 ABC是地址输入端,Y0—Y7是输出端,G1、G2A’、G2B’为 使能端,只有当G1=G2A’=G2B’=1时,译码器才工作。 (2)码制变换译码器:用于同一个数据的不同代码之间的相互转换,代表是4—10线译码器 译码器74LS42的特点及其引脚排列图: 译码器74LS42的功能是将8421BCD码译成10个对象 其原理与74LS138类同,只不过它有四个输入端, 十个输出端,4位输入代码0000—1111十六种状态组合

其中有1010—1111六个没有与其对应的输出端, 这六组代码叫做伪码,十个输出端均为无效状态。 (3)数码显示与七段译码驱动器:将数字、文字、符号的代码译成数字、文字、符号的电路 a、七段发光二极管数码显示管的特点:(共阴极) b、七段译码驱动器: 4、在本数字电路实验装置上已完成了译码器74LS48和数码管之间的连接图。 三四五脚接高电频,数码管的单独端接低电频。

基于51单片机的USB键盘设计与实现

三江学院 本科生毕业设计(论文)题目基于51单片机的USB键盘设计与实现高职院院(系)电气工程及其自动化专业 学生姓名梁邱一学号 G105071013 指导教师孙传峰职称讲师 指导教师工作单位三江学院 起讫日期 2013年12月10日至2014年4月12日

摘要 随着计算机技术的不断更新和多媒体技术的快速发展,传统的计算机外设接口因为存在许多缺点已经不能适应计算机的发展需要。比起传统的AT,PS/2,串口,通用串行总线USB,具有速度快,使用方便灵活,易于扩展,支持即插即用,成本低廉等一系列优点,得到了广泛的应用。 本论文阐述了51系列单片机和USB的相关内容,详细介绍了系统的一些功能设计,包括硬件设计和软件设计。在程序调试期间用简单的串口通信电路,通过串口调试助手掌握了USB指令的传输过程,这对整个方案的设计起到了很大的指导作用。论文以单片机最小系统配合模拟键盘组成的USB键盘硬件系统,通过对D12芯片的学习与探索,在其基本命令接口的支持下,结合硬件进行相应的固件程序设计,使其在USB协议下,实现USB模块与PC的数据通信,完成USB键盘的功能模拟。 总结论文研究工作有阐述USB总线的原理、对本设计的系统要求作出了分析、根据要求选定元件和具体编程方案、针对系统所要实现的功能对相关芯片作了详细介绍以及在硬件部分设计了原理图。 关键词:USB;D12;PC

Abstract With the rapid development of computer technology and multimedia technology constantly updated, traditional computer peripheral interface because there are many shortcomings have been unable to meet the development needs of the https://www.360docs.net/doc/da1514724.html,pared to traditional AT, PS / 2, serial, Universal Serial Bus USB, with fast, flexible and easy to use, easy to expand, support Plug and Play, a series of advantages, such as low cost, has been widely used. This paper describes the 51 series and USB related content, detailing some of the features of the system design, including hardware and software design.During debugging a simple serial communication circuit, through the serial port debugging assistant master USB transfer instructions, which designed the entire program has played a significant role in guiding.Thesis smallest single-chip system consisting of analog keyboard with a USB keyboard hardware system, by learning and exploration D12 chips, with the support of its basic command interface, in conjunction with the corresponding hardware firmware design, making it in the USB protocol, USB module data communication with the PC, the USB keyboard to complete the functional simulation. This paper summarizes research work has elaborated the principle of the USB bus, the system is designed to require the analysis, components and solutions based on the specific requirements of the selected programming for the system to achieve the function of the relevant chips are described in detail in the hardware part of the design as well as the principle of Figure. Keywords:USB;D12;PC

实验四 键盘扫描及显示设计实验报告

实验四键盘扫描及显示设计实验报告 一、实验要求 1. 复习行列矩阵式键盘的工作原理及编程方法。 2. 复习七段数码管的显示原理。 3. 复习单片机控制数码管显示的方法。 二、实验设备 1.PC 机一台 2.TD-NMC+教学实验系统 三、实验目的 1. 进一步熟悉单片机仿真实验软件 Keil C51 调试硬件的方法。 2. 了解行列矩阵式键盘扫描与数码管显示的基本原理。 3. 熟悉获取行列矩阵式键盘按键值的算法。 4. 掌握数码管显示的编码方法。 5. 掌握数码管动态显示的编程方法。 四、实验内容 根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能: 1.扫描键盘输入,并将扫描结果送数码管显示。 2.键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。 实验具体内容如下: 将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码 管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数 码管上可以显示最近 4 次按下的按键编号。 五、实验单元电路及连线 矩阵键盘及数码管显示单元

图1 键盘及数码管单元电路 实验连线 图2实验连线图 六、实验说明 1. 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为 5~10ms。这是一个很重要的时间参数,在很多场合都要用到。 键抖动会引起一次按键被误读多次。为了确保 CPU 对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按

矩阵键盘设计实验报告

南京林业大学 实验报告 基于AT89C51 单片机4x4矩阵键盘接口电路设计 课程机电一体化设计基础 院系机械电子工程学院 班级 学号 姓名

指导老师杨雨图 2013年9月26日

一、实验目的 1、掌握键盘接口的基本特点,了解独立键盘和矩 阵键盘的应用方法。 2、掌握键盘接口的硬件设计方法,软件程序设计 和贴士排错能力。 3、掌握利用Keil51软件对程序进行编译。 4、用Proteus软件绘制“矩阵键盘扫描”电路,并用测试程序进行仿真。 5、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果 能做出分析和解释,能写出符合规格的实验报告。 二、实验要求 通过实训,学生应达到以下几方面的要求: 素质要求 1.以积极认真的态度对待本次实训,遵章守纪、团结协作。 2.善于发现数字电路中存在的问题、分析问题、解决问题,努力培养独立 工作能力。 能力要求 1.模拟电路的理论知识 2.脉冲与数字电路的理念知识 3.通过模拟、数字电路实验有一定的动手能力 4.能熟练的编写8951单片机汇编程序 5.能够熟练的运用仿真软件进行仿真 三、实验工具 1、软件:Proteus软件、keil51。 2、硬件:PC机,串口线,并口线,单片机开发板 四、实验内容

1、掌握并理解“矩阵键盘扫描”的原理及制作,了解各元器件的参数及格 元器件的作用。 2、用keil51测试软件编写AT89C51单片机汇编程序 3、用Proteus软件绘制“矩阵键盘扫描”电路原理图。 4、运用仿真软件对电路进行仿真。 五.实验基本步骤 1、用Proteus绘制“矩阵键盘扫描”电路原理图。 2、编写程序使数码管显示当前闭合按键的键值。 3、利用Proteus软件的仿真功能对其进行仿真测试,观察数码管的显示状 态和按键开关的对应关系。 4、用keil51软件编写程序,并生成HEX文件。 5、根据绘制“矩阵键盘扫描”电路原理图,搭建相关硬件电路。 6、用通用编程器或ISP下载HEX程序到MCU。 7、检查验证结果。 六、实验具体内容 使用单片机的P1口与矩阵式键盘连接时,可以将P1口低4位的4条端口线定义为行线,P1口高4位的4条端口线定义为列线,形成4*4键盘,可以配置16个按键,将单片机P2口与七段数码管连接,当按下矩阵键盘任意键时,数码管显示该键所在的键号。 1、电路图

单片机4X4键盘接口和显示设计报告

汽车学院 单片机原理及接口技术 课程设计 题目:单片机原理与应用 专业:交通运输 班级:0 8 0 1 姓名:白鹭 学号:0811140107 指导教师:黄艳 (2011-6-29)

目录 一、开题报告 (3) 一、实验目的 (6) 二、实验内容 (6) 三、设计要求 (6) 四、系统设计环境 (7) 五、实验原理 (7) 六、实验步骤 (8) 七、设计流程图 (11) 八、程序编程 (13) 九、仿真过程 (18) 十、调试过程中的难点及其解决思路 (18) 十一、课设总结与体会 (19) 十二、参考文献 (20)

开题报告 一.课设目的 为了进一步加强巩固理论知识增强学生对所学知识的实际应用能力和应用所学知识解决问题的能力。通过本设计使学生在巩固所学知识的基础上具有初步的单片机系统设计与应用能力。 1.通过本设计,使学生综合应用,《微型计算机技术》,《数学电路》,及《模拟电路》等课程内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。 2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。 3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。 二、设计内容 1、本设计利用各种器件设计,并利用原理图将8255单元与键盘及数码管显示单元连接,扫描键盘输入,最后将扫描结果送入数码管显示。键盘采用4*4键盘,每个数码管可以显示0-F共16个数。将键盘编号,记作0-F,当没按下其中一个键时,将该按键对应的编号在一个数码管上显示出来,当在按下一个 键时,便将这个按键的编号在下一个数码管上显示,数码管上

数电实验 编码与译码显示电路

实验二:编码与译码显示电路 一:实验目的 1.掌握中规模集成编码器及译码器的逻辑功能测试方法。 2.掌握编码器译码器的使用方法, 3.熟悉仿真工具的使用。 二:实验设备与器件 直流稳压电源,数字多用表,数字电路实验箱,三位二进制优先编码器,七段译码器,二输入与非门,双四输入与非门,六反相器。 四:实验内容 1.测试电路: 通信工程2014117308 周童桐

2.多位显示电路,要求具有灭零功能。 3.依据题目设计电路并仿真。 题目:若将八路服务信号按轻重缓急安排优先级别后,作为医院病房的八个呼叫信号,在护士值班室放置数码管显示电路,这样,当病号按下呼叫按钮发出呼叫信号时,护士值班室显示相应呼叫号码,并产生提示声音,在护士的按下处理按钮后,电路又回到等待呼叫状态,等待新的呼叫,设计上述控制电路及声音提醒电路并测试结果并用报警电路报警。

真值表: K0 Y2 Y1 Y0 A3 A2 A1 A0 I0 K1 1 1 1 0 0 0 1 I1 K2 1 1 0 0 0 1 0 I2 K3 1 0 1 0 0 1 1 I3 K4 1 0 0 0 1 0 0 I4 K5 0 1 1 0 1 0 1 I5 K6 0 1 0 0 1 1 0 I6 K7 0 0 1 0 1 1 1 I7 K8 0 0 0 1 0 0 0 依据真值表列式并计算 化简后得: A0=Y0 A1=Y0Y1’+Y0’Y1 A2=Y0’Y1’Y2+Y0Y1’Y2’+Y1Y2’ A3=Y0’Y1’Y2’ 依据化简后,设计电路。 依据电路图进行仿真:

应用74LS148编码部分: 优先显示电路部分:蜂鸣器电路:

基于FPGA的键盘接口设计正文

基于FPGA的键盘接口设计 专业:电子信息科学与技术系作者:李先仙指导老师:刘强摘要:现场可编程逻辑门阵列FPGA (Field Programmalbe Gate Array)具有掩膜可编程门阵列的通用结构,由逻辑功能块排成阵列组成,并由可编程的互联资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。在电子产品中,键盘是最基本的输入设备,然而在应用中都采用通用的键盘扫描器件是不现实的,需要单独设计成专用的小键盘。随着电子技术和EDA (Electronic Design Automatic,电子设计自动化)技术的发展,大规模可编程逻辑器件PLD(Programmable Logic Device)、现场可编程门阵列FPGA完全可以取代大规模集成电路芯片,实现计算机可编程接口的功能,并可将若干接口电路的功能集成到一片PLD或FPGA芯片中。鉴于大规模PLD或FPGA的计算机接口电路不仅具有集成度高、体积小和功耗低等优点,而且还具有独特的用户可编程能力,从而实现计算机系统的功能重构。本文设计首先介绍行列式键盘的原理和应用,通过对其接口电路的详细分析;然后利用VHDL硬件描述语言和FPGA器件并采用模块化设计的方法完成了基于FPGA的行列式键盘接口电路的设计;最后通过计算机仿真,对本文设计的行列式键盘接口电路的正确性进行了验证。 关键词:键盘;仿真;VHDL语言;FPGA;模块化设计 Based on FPGA Keyboard Connection Design Major:Electronic Information Science and Technology Author: Li Xianxian Instructor: Liu Qiang Abstract: The Filed Programmmalbe Gate Array,shorted by FPGA,which has a mask-programmable gate array of generic structure and function blocks in the logic array of line,through a programmable logic of internet resources connecting these function blocks and the corresponding input/output modules to achieve different design.In electronic products,the keyboard is the most basic input device,however,it’s unrealistic of using general keyboard scanning device in the application ,we need for the separate designing of the small keyboard. With the development of Electronic and EDA(Electronic Design Automatic)technology,Large Scale Integration chips can be replaced by PLD(Programmable Logic Device)and FPGA ,which can realize the function of the Programmable Interface chips and feature a number of interface circuits integated into one of the PLD or FPGA chips.The computer interface circuit based on the technology of PLD and FPGA not only has the virtue of high integration,low volume and low power loss, but also has the unique programmable function,which can realize

实验五编码、译码、显示电路

实验五 编码、译码、显示电路 一、实验目的 1. 学习编码器原理及基本电路。 2. 熟悉七段译码器的逻辑功能和使用。 3. 掌握七段显示器的使用方法。 4. 进一步学习组合电路的应用。 二、实验用元器件 编码器74LS148×2 全加器74LS283×1 显示译码器4511×2 四2输入与非门74LS00×2 编码、译码、显示电路是由编码、译码器和显示器三部分电路组成的逻辑电路。下面分别加以介绍。 1. 编码器 实验中选用被广泛使用的74LS148集成8-3优先编码器。常用于优先中断系统、键盘编码等,引脚图如图2-1。共有9个输入引脚,一个使能端和8个编码输入,均为低电平有效,即输入“0”表示有输入,0~7输入的优先级 由低到高排列,优先级高的 输入有效时,优先级低的输入不起作用。输出为反码,如输入0号端有效时,如输出原码为“000”,实际输出“111”。功能见表2-1。可以将多片编码器扩展成更多二进制码,通过高位使能输出去控制低位编码器的使能输入,实现芯片之间的优先级,再将输出作相应处理,CS 是工作状态标志,如图2-2所示。 图2-1 74LS148的引脚图

表2-1 74LS148优先编码器的功能表 图2-2 优先编码器的扩展 2.全加器 实验中建议使用74LS283全加器,它将A0A1A2A3和B0B1B2B3相加,和由S0S1S2S3输出,C-1为进位输入,Co为进位输出。引脚图见图2-3。

图 2-3 74LS283全加器引脚图 图2-4 4511译码器 3. 译码器 这里所说的译码器是将二进制码译 成十进制数字符的器件。实验中选用的CD4511是一个BCD 码七段译码器,并兼有驱动功能,内部没有限流电阻,与数码管相连接时,需要在每段输出接上限流电阻,引脚排列见图2-4。表2—2是CD4511功能表, CD4511只能对0~9的数字译码,超出范围将无显示。 表3-2 CD4511功能表 4. LED 数码显示器 数码显示器采用八段发光二极管显示器,它可直接显示出译码器输出的十进制数。七段发光显示器有共阴接法和共阳接法两种:共阴接法就是把发光二极管的阴极都接在一个公共点 (接地),其引脚排列和内部原理如图2-5(a )所示, 配套的译码器为CD4511,

单片机 矩阵键盘设计方案

1、设计原理 (1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。 (2)键盘中对应按键的序号排列如图14.1所示。 2、参考电路 图14.2 4×4矩阵式键盘识别电路原理图 3、电路硬件说明 (1)在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键盘”区域中的M1-M4,N1-N4端口上。 (2)在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-h端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h。 4、程序设计内容 (1)4×4矩阵键盘识别处理。 (2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。 5、程序流程图(如图14.3所示) 6、汇编源程序 ;;;;;;;;;;定义单元;;;;;;;;;; COUNT EQU 30H ;;;;;;;;;;入口地址;;;;;;;;;;

ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI ;;;;;;;;;;主程序入口;;;;;;;;;; ORG 0100H START: LCALL CHUSHIHUA LCALL PANDUAN LCALL XIANSHI LJMP START ;;;;;;;;;;初始化程序;;;;;;;;;;

第13讲51单片机按键电路

标题:键盘接口电路 教学目标与要求: 1.键盘去抖动和连接、控制方式 2.独立式按键及其接口电路 3.矩阵式键盘及其接口电路 授课时数:2 教学重点:.矩阵式键盘及其接口电路 教学内容及过程: 一、键盘接口概述 1、按键开关去抖动问题 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图9-11所示,抖动时间的长短与开关的机械特性有关,一般为5 10 ms 在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图9-12是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。 软件上采取的措施是:在检测到有按键按下时,执行一个10 ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步 骤进行确认,从而可消除抖动的影响。

2.编制键盘程序 一个完善的键盘控制程序应具备以下功能: (1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。 (2) 有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。 (3) 准确输出按键值(或键号),以满足跳转指令要求。 二、独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。 1. 独立式按键结构 独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的典型应用如图7.4所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。 2.矩阵式键盘 I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。特点: ①占用I/O端线较少; ②软件结构教复杂。 适用于按键较多的场合。 3.键盘扫描控制方式 ⑴程序控制扫描方式 键处理程序固定在主程序的某个程序段。 特点:对CPU工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。 ⑵定时控制扫描方式 利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。 特点:与程序控制扫描方式的区别是,在扫描间隔时间内,前者用CPU工作程序填充,后者用定时/计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。 ⑶中断控制方式 中断控制方式是利用外部中断源,响应键输入信号。 特点:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个宝贵的中断资源。 三、独立式按键及其接口电路 1、按键直接与I/O口连接

数字显示电路

数字电子技术综合实验一 数字显示电路 组员: 目录 一、实验目的…………………………………………………….

3 ●二、设计要求…………………………………………….. 4 ●三、各模块设计方案……………………………………. 5 ●四、电路的焊接成型及工作检测 (14) ●五、实验感想及问题………………………..…………. 14

六、元件清单及制作费 用 (21) 一、实验目的 数字显示电路实验将传统的4个分离的基本实验,即基本门电路实验,编码器、显示译码器、7段显示器实验,加法器实验和比较器实验综合为‘—个完整的设计型的组合电路综合实验。通过本实验,要求我们熟悉各种常用MSI组合逻辑电路的功能与使用方法,学会组装和调试各种MSI组合逻辑电路,掌握多片MSI、SSI组合逻辑电路的级联、功能扩展及综合设计技术,使我们具有数字系统外围电路、接口电路方面的综合设计能力。 本次实验的目的为: 1、掌握基本门电路的应用,了解用简单门电路实现控制逻辑。 2、掌握编码、译码和显示电路的设计方法。 3、掌握用全加器、比较器设计电路的方法。

二、设计要求 操作面板左侧有16个按键,编号为0到15,另正面板右侧配2个共阳7段显示器,操作面板图如图1所示。 图1:显示电路面板示意图 设计一个电路:当按下小于10的按键后,右侧低位7段显示器

显示数字,左侧7段显示器显示0;当按下大于9的按键后,右侧低位7段显示器显示个位数字,左侧7段显示器显示l。若同时按下几个按键,优先级别的顺序是15到0。现配备1个4位二进制加法器74LS283,2个8线-3线优先编码器74LSl48,2个四2输入与非门74LS00,一个非门7404,2个显示译码器74LS47。 三、各模块设计方案 该数字显示电路为组合逻辑电路,可分为编码、译码和显示电路以及基本门电路、全加器电路。实验采用的主要器件有1个4位二进制加法器74LS283,2个8线-3线优先编码器74LSl48,2个四2输入与非门74LS00,一个非门7404,2个显示译码器74LS47。 1.各种芯片的功能介绍如下: ①8—3线优先编码器74LSl48简介 在数字系统中,常采用多位二进制数码的组合对具有某种特定含义的信号进行编码。完成编码功能的逻辑部件称为编码器。编码器有

[实验四]定时器及键盘接口的应用 [实验目的] 了解定时器结构、功能及

[实验四]定时器及键盘接口的应用 [实验目的] 1.了解定时器结构、功能及应用。 2.熟悉基于状态机设计的软件设计方法和矩阵键盘的应用设计实现。 3.设计并实现一个改进型的电话拨号系统。 [实验内容]: 1.使用定时器的产生特定频率,输出到蜂鸣器上产生不同的音调。 2.用状态机设计的思想,设计键盘输入接口。 3.综合利用实验板上定时器,蜂鸣器,键盘,LED显示模块,设计一个电话拨号系统。 [实验步骤]: 1.参考第八章例8.7的硬件电路以及软件设计,利用AVR的16位T/C1的比较匹配功能, 发出不同频率的音调。 2.参考9. 3.2 定时扫描方式的键盘接口程序,以及图9-7的键盘部分硬件连线电路,实现 基于状态机思想的键盘扫描。 3.仔细思考例9.3,回答以下问题: ●本例中,在T/C0的中断服务中进行了LED的扫描,而读键盘和键盘处理是在主程序中 完成的。如果将读键盘和键盘处理也放在T/C0中断中完成是否可以?请深入分析这两种处理方式的优点和缺点,说明原因。 ●在read_keyboard()中,行线输出语句为什么重复2次? ●说明在read_keyboard()中,key_mask的作用,另外是否可以将变量key_line和 key_value定义成普通的局部动态变量?为什么? 4.在例9.3的基础上,改进实现一个电话拨号系统: 1)实验板上的矩阵键盘共包含有12个按键,其中10个作为数字“0,1,2….9”的数字输入,其他两个为功能键,一个是总清除键“#”,一个是修改键“*”。修改程 序,键盘上数字键功能不变,而“#”键的功能为总清除(即清除LED上的全部的 数字显示,显示复原为8个“-”),“*”键的功能为修改键(表示最后输入的数字 有误,LED显示全部右移一位,清除最后输入的数字,最左边一位补入“-”)。 2)系统上电时,8个LED数码管显示“--------”8条横线,每按下一个号码后,原8位LED数码管的显示内容向左移动一位,最右边一位则显示键盘上刚按下的数字。 3)将每个数字键与特定的音调相结合起来,比如数字1-2-3-4-5-6-7-8-9-0对应音阶Do-re-mi-fa-sol-la-ti-do-la-mi(后两个为高8度)。每当按下按键在LED上显示数字 后都能在蜂鸣器上发出相同节拍的对应音阶。 [思考题]: 1.当定时计数器工作在普通模式和CTC模式时,都可以产生一个固定的定时中断。如果要求精确的定时中断,采用那种模式比较好?为什么?

实现特定功能的键盘及LED显示 接口课程设计要点

河北科技大学 《接口技术》课程设计报告 学生姓名:学号: 专业班级: 课程名称: 学年学期:2 0 —2 0 学年第学期 指导教师: 2 0 年月

课程设计成绩评定表 学生姓名学号成绩专业班级起止时间 设计题目 验收内容课程设计小组验收结果: 硬件设计:优秀□良好□中等□及格□需努力□程序设计:优秀□良好□中等□及格□需努力□实验结果:优秀□良好□中等□及格□需努力□ 课程设计个人验收结果: 操作能力:优秀□良好□中等□及格□需努力□软件理解:优秀□良好□中等□及格□需努力□硬件理解:优秀□良好□中等□及格□需努力□ 指导教师: 年月日

目录 一、设计题目:--------------------------------------------------------------------------------------------- 2 二、设计目的:--------------------------------------------------------------------------------------------- 2 三、设计原理及方案: ----------------------------------------------------------------------------------- 2 1、实验电路图---------------------------------------------------------------------------------------- 2 2、实验框图 ------------------------------------------------------------------------------------------- 3 3、各功能实现方案---------------------------------------------------------------------------------- 4 4、实验程序 ------------------------------------------------------------------------------------------- 4 四、实验方法------------------------------------------------------------------------------------------------ 9 1、实验电路测试------------------------------------------------------------------------------------- 9 2、软件测试 ------------------------------------------------------------------------------------------- 9 五、实验结果------------------------------------------------------------------------------------------------ 9 六、改进意见及建议 -------------------------------------------------------------------------------------- 9 七、设计体会------------------------------------------------------------------------------------------------ 9

矩阵键盘EDA技术课程设计

《电子设计EDA》课程设计 专业:电子信息科学与技术 班级:2010级电信本(1)班 姓名: *** 学号: ********* 指导老师: *** 完成时间: 2012.11—2012.12 教师评分:

目录 一、绪论 (1) 1.1 FPGA概况 (1) 1.2 本课题的研究意义 (2) 二、课程设计的任务和目的 (3) 三、矩阵键盘接口电路的原理与总体设计 (3) 3.1 矩阵键盘接口电路的原理 (3) 3.2 总体设计 (5) 四、各模块的设计及仿真 (6) 4.1 键盘扫描电路 (6) 4.2 键盘译码电路和按键标志位产生电路 (8) 4.3 时钟产生模块 (10) 4.4 键盘接口电路顶层电路实现 (12) 五、参考文献 (13) 六、心得体会 (13) 七、附录 (14) 7.1 源程序代码 (14) 2

题目:矩阵键盘控制接口设计 一、绪论 1.1 FPGA概况 早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(E2PROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。 其后出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与—或”表达式来描述,所以PLD能以乘积和的形式完成大量的组合逻辑功能。 这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。 PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和E2PROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。PLA 器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上又发展了一种通用阵列逻辑(GAL、Generic ArrayLogic),如GAL16V8、GAL22V10等。它采用了E'PROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。 为了弥补这一缺陷,20世纪80年代中期,Altera和Xilinx分别推出了类似于PAL 结构的扩展型CPLD(Complex Programmable Logic Dvice)和与标准门阵列类似的FPGA(FieldProgrammable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品不需测试、质量 1

利用8279键盘显示后接口电路做做电子钟

利用8279键盘显示后接口电路做做电子钟 2007-01-29 23:08 ;系统晶振是 11.0592 MHz Z8279 EQU 0FF82H ;8279 状态/命令口地址 D8279 EQU 0FF80H ;8279 数据口地址 LEDMOD EQU 00H ;左边输入八位字符显示 ;外部译码键扫描方式,双键互锁 LEDFEQ EQU 2FH ;扫描速率 LEDCLS EQU 0C1H ;清除显示 RAM LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址READKB EQU 40H ;读 FIFO RAM 地址 0 的命令字 ORG 0000H AJMP START ORG 001BH ;INT T1 入口地址 AJMP INT_T1 ORG 0040H START: MOV SP,#60H LCALL INIT8279 ;初始化8279 MOV R3,#0H ;时 MOV R2,#0H ;分 MOV R1,#0H ;秒 MOV R0,#0H ;10毫秒 MOV R6,#0FFH ;标志 MOV TMOD,#10H MOV TL1,#00H ;10毫秒的时间常数 MOV TH1,#0DCH LCALL DIS_mS SETB ET1 SETB EA ;允许中断 WAIT: LCALL GETKEY ;读键盘 CJNE A,#0FFH,CONT ;判断是否有键输入 MOV A,B CJNE A,#3CH,KEY_G ;输入键是'C',转CLEAR_T LCALL CLEAR_T KEY_G: CJNE A,#3AH,KEY_D ;输入键是'G',转START_T LCALL START_T KEY_D: CJNE A,#3DH,KEY_P ;输入键是'D',转STOP_T LCALL STOP_T KEY_P: CJNE A,#3BH,KEY_E ;输入键是'P',转SET_T LCALL SET_T KEY_E: CJNE A,#3EH,CONT ;输入键是'E',转MONITOR

相关文档
最新文档