矩阵键盘编程

矩阵键盘编程
矩阵键盘编程

矩阵键盘编程

键盘结构与类型

独立式按键键盘由若干独立式按键组成。独立式按键指每个按键作为一位占用一根I/O口线,直接用I/O口线构成单个按键电路。独立式按键键盘可分为中断方式和查询方式两种。独立式按键键盘优点是配置灵活,软件结构简单,操作速度快;缺点是按键多时I/O口浪费较大,故只在按键数目不多时采用。

行列式键盘(矩阵式键盘)用I/O口线组成行、列结构,按键设置在行列的交点上。在按键较多时可节省I/O口线,如4×8行列结构可构成32个键的键盘。

行列式键盘键输入过程及接口软件应解决的任务

键开关状态的可靠输入主要应解决抖动问题。

对按键编码以便识别对按键编码,使不同的按键有不同的键值或键号。

按键状态的输入方式有中断方式与查询方式两种。

编制键盘程序检测有无按键按下、去抖动、按键信息的逻辑处理、

输出确定的键号等。

行列式键盘(矩阵式键盘)及接口程序设计

行列式键盘的结构及键值赋值方法

键盘行线的一端经上拉电阻接+5v电源,另一端接单片机的输入口(因而各输入口均被钳位于高电平)。各列线的一端接单片机的输出口,另一端悬空。按键设置在行列线的交点上,行、列线分别连接到按键的两端,按键按下则相应交点的行列线接通。由图可见,矩阵式键盘接口的设计思想是把键盘既作为输入设备又作为输出设备对待的。

为了让CPU能识别是哪个按键被按下,必须给每个按键都分配一个键号(一般以十进制数表示)。例如,4×4列矩阵式键盘共16个按键,键号依次按顺序排列为0~15。

对行列式键盘的每个按键,还有一个更重要的概念:键值或者说键码。键值是一个可表征按键状态的8位数据,不同的按键有不同的键值。按键后根据键值便能转到相应的键处理子程序,实现键盘的数据输入功能或命令处理功能。

同一个按键的键值和键号可以相同,也可以不相同,这主要取决于键盘的结构与采用的编码方法。

对行列式键盘来说,识别被按键的位置也就是找出被按键所在行和列的坐标值。对于4行×4列行列式键盘,被按键所在行和列的坐标值为两个4位数据;

而对于8行×8列行列式键盘,则为两个8位数据。采用某种方法将被按键所在行和列的两个坐标值加工成一个8位数据(称为键码赋值或键值赋值),便得到该按键的键值。键值赋值的方法可任意选择,只需满足以下两个要求即可:每个按键具有唯一的键值;在有两个按键被同时按下时,求出的键值应不在键值表之内,以便CPU能识别串键。

键值赋值的方法主要有两种:按二进制编码和按顺序排列键号。

(1)按二进制编码

这是键值赋值的最直接方法。这种方法是将所有行线、列线的状态(高、低电平)分别用二进制编码,求得被按键所在行和列的坐标值,再将两个坐标值拼装成一个8位数据,便得到键值。

下面以4行×4列矩阵式键盘电路为例来说明这种方法。按键输入通常都采用低电平有效,因此,假定单片机I/O口向接在D1上的列线输出0信号,而向其它列线均输出1信号,此时,若将D6行与D1列交点处的按键按下,则D6行将向单片机输入 0信号,而其它行将输入1信号。可见,代表D6行与D1列交点处的按键按下的特征信号(即单片机I/O口的输入信号和输出信号)为:

行信号(行坐标值):1011(D6行为0)

列信号(列坐标值):1101(D1列为0)

在这里,行、列信号正好都是4位,为了便于单片机处理,可将行、列信号拼装在一个字节中,这样便得到用负逻辑表示的键值BDH。这种负逻辑表示往往不够直观,通过在行列线上加反相器或由软件求反,可得到用正逻辑表示的键值42H。拼装过程示意图如下:

求反

同理,可得其余按键的键值(按各键从左至右、从上至下排列):

由此种方法所得的键值与已按键的对应关系是唯一的,换言之,可以根据键值来识别键盘上的所有按键。键值按二进制编码时,软件较为简单直观,但键值太分散且不等距,入口地址安排不方便。按顺序排列键号可克服按二进制编码方法的缺点。

(2)按顺序排列键号

下面以4行×8列矩阵式键盘为例说明这种方法。当要求键值与键号相一致时,可将各键的键值分配如下:

观察上述分配表可知,十六进制的各列号与列首键值(即第0行的各键值)相等,从左至右依次为00H、01H、?、07H;而十六进制的行号与行首键值(即第0列的各键值)不相等,但行号乘8即得到行首键值:0?8=0(00H),1?8=8(08H),2?8=16(10H), 3?8=24(18H)。则

任意键值=行首键值+列号=行号?8+列号

当单片机应用系统既有数字键又有功能键时,为了软件中便于区分,可将左边16个键定义为数字键,右边16个键定义为功能键。这样,一个键值的高半字节为0表示数字键,为1表示功能键;键值的低半字节则依次表示16个数字键和功能键。这样,可得另一种键值分配方案如下(键值与键号不一致):

行号

显然,键值与键号不一致时求键值的方法,比一致时要复杂一些,这可以在键值分析程序中用软件来完成。

行扫描法按键识别流程

按键识别指如何确定被按键的行列坐标,并据此产生键码。这是非编码键盘接口设计的主要问题。常用按键识别技术有两种:行扫描法和线翻转法,其中行扫描法使用较为普遍。现以16键行列式键盘为例,说明行扫描法的按键识别流程。

(1)测试有无按键被按下

键盘中有无按键按下是由输出口向列线输出全扫描字(00H)、输入口读入行线状态来判断的。其方法是:先由输出口向所有列线输出低电平0,然后将行线电平状态读入,若行线状态都是高电平,则表明无键按下;若行线状态中有低电平,则表明有键被按下。

(2)去抖动

一般调用延迟子程序来达到去抖动的目的。但当系统中有显示器时,也可只调用几次显示子程序来达到延迟去抖动的目的。

(3)用行扫描法确定被按键物理位置

只判断有无按键闭合还是不够的,更为关键的是判断究竟是哪一个按键闭合,以便CPU根据闭合键的功能进行处理。常用“行扫描法”来确定被按键的行、列位置。

所谓行扫描即采用步进扫描方式,由CPU通过输出口依次给每条列线送0信号(称扫描键盘),而同时向其余各列线送1信号,然后通过输入口检测对应于每一列扫描时的所有行线状态。输出口给列线每输出一次0电平,就从输入口读入一次代表所有行线状态的数据,若数据各位全为“1”,则此列线上无闭合键;

若不全为“1”,则此列线上有闭合键,且闭合键就在“0”电平的行、列线交点上。行扫描识别闭合键原理见图(Note: No picture)。

(4)计算闭合键的键值

有闭合键时,根据从输出口输出的数据与从输入口读入的数据,就可计算出闭合键的键值,其方法前已述及,不再赘述。

(5)延时等待键释放

按键释放后,就可根据键值转到相应的键处理子程序,进行数据输入或命令处理。

CPU对键盘的控制方式

单片机对非编码键盘有三种控制方式:

编程扫描方式此方式是指CPU只在完成其它工作的空闲时间里才调用键盘扫描子程序,响应键输入请求。而在执行键功能程序时,CPU不再响应键输入请求。因此,在单片机应用系统软件方案设计时,应考虑这种键盘扫描子程序的编程调用是否能满足键盘响应的要求。

定时扫描方式指每隔一定时间对键盘扫描一次。通常利用单片机内部定时器产生定时中断(例如10ms),CPU响应后即对键盘进行扫描,并在有键按下时转入键功能处理程序。定时扫描工作方式的键盘硬件电路与编程扫描工作方式相同。

中断扫描方式指在键盘有键按下时发中断申请,CPU响应中断后,才进行键盘扫描,执行该键功能程序。中断扫描方式可提高CPU效率,避免CPU处于空扫描状态(前两种扫描方式使CPU经常处于空扫描状态),但硬件电路比编程扫描方式、定时扫描方式复杂,因为需扩展中断电路。定时扫描方式在本质上就是中断扫描方式。

行列式键盘接口及程序设计(编程扫描方式)

单片机应用系统的键盘程序一般包括以下几个部分:判别有无闭合键,若有则应消除抖动;扫描键盘以获取闭合键的行值和列值并求出键值(用计算法或查表法);判别闭合键是否释放;执行键操作;返回。

下面以4行×8列矩阵式键盘为例,介绍行列式键盘与8031单片机的接口方法和键盘管理程序的设计。该电路以8155的PA口作输出口,地址为7F01H;PC 口作输入口,地址为7F03H。键值与键号一致。由图可得各键的列信号(列值)与行信号(行值),见下表。

由表可见,首列扫描字(列值)为FEH,第一列扫描字为FDH,最后一列扫描字为7FH。故扫描字左移一位就是下一列的扫描字。另外,利用PA7为0的标志可判别8列(一轮)扫描是否完成。当PA7=0且各行都查找结束时,该轮扫描即告结束,可重新开始键盘扫描。

设初始化程序在主程序中。下面给出判别是否有键闭合子程序、键盘扫描子程序。后者的作用是求出闭合键的键值送累加器。

在键盘扫描程序中需调用两个子程序:DISPLAY(显示子程序)、KEYCH(判别是否有键闭合子程序)。

矩阵键盘键值显示

/******************************************************************* * 网站: https://www.360docs.net/doc/715007274.html,/(伟纳电子) * * 功能:根据扫描键盘返回的键值编码查键值编码表,从而得到键值并送数码管(一位)显示。

开机时,数码管显示“-”。

当键按下时,数码管显示按下键的键值,蜂鸣器响一声。

* 接法:行线接P1.4-P1.7,列线接P1.0-P1.3。

*******************************************************************/

/********************************************************** 头文件、变量定义、宏定义

**********************************************************/ #include

//#include

#define uchar unsigned char

#define uint unsigned int

sbit BEEP = P3^7; //蜂鸣器驱动线

uchar key;

unsigned char code disp_code[]={

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};

unsigned char code key_code[]={

0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,

0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77 };

/********************************************************** 延时子函数

**********************************************************/ void delayms(uint ms)

{

uchar t;

while(ms--)

{

for(t = 0; t < 120; t++);

}

}

/********************************************************** x*0.14mS 延时子函数

**********************************************************/ void delay0(uchar x)

{

uchar i;

while(x--)

{

for (i = 0; i<13; i++) {;}

}

}

/********************************************************** 蜂鸣器驱动子函数

**********************************************************/ void beep()

{

uchar i;

for (i=0;i<180;i++)

{

delay0(5);

BEEP=!BEEP; //BEEP取反

}

BEEP=1; //关闭蜂鸣器

delayms(250); //延时

}

/********************************************************** 键盘扫描子函数

**********************************************************/ uchar keyscan()

{

uchar scan1,scan2,keycode,j;

P1=0xf0; //P1口发

scan1=P1; //读P1口的状态

if((scan1&0xf0)!=0xf0) //判键是否按下

{

delayms(30); //延时30ms

scan1=P1;

if((scan1&0xf0)!=0xf0) //二次判键是否按下

{

P1=0x0f; //线翻转法

scan2=P1; //

keycode=scan1|scan2; //组合成键编码

for(j=0;j<=15;j++)

{

if(keycode== key_code[j]) //查表得键值

{

key=j;

return(key);

}

}

}

}

else P1=0xff;

return (16); //?

}

/********************************************************** 判键是否按下子函数

**********************************************************/ void keydown()

{

P1=0x0f;

if((P1&0x0f)!=0x0f)

{

keyscan();

P0=disp_code[key];

beep();

}

}

/********************************************************** 主函数

**********************************************************/ void main()

{

P0 = 0xbf;

P2 = 0x7f; //数码管显示"-"

P1 = 0xff;

while(1)

{

keydown();

}

}

/*********************************************************/

监控矩阵键盘说明书

.. 主控键盘 (SYSTEM KEYBOARD) 使用说明书 (中文版第二版)

Copyright 2009-2012. All Rights Reserved. 注意事项: 1.安装场所 远离高温的热源和环境,避免直接照射。 为确保本机的正常散热,应避开通风不良的场所。 为了防止电击和失火,请勿将本机放置于易燃、易爆的场所。 小心轻放本机避免强烈碰撞、振动等,避免安装在会剧烈震动的场所。避免在过冷、过热的场所间相互搬动本机,以免机器部产生结露,影响机器的使用寿命。 2.避免电击和失火 切记勿用湿手触摸电源开关和本机。 勿将液体溅落在本机上,以免造成机器部短路或失火。 勿将其它设备直接放置于本机上部。 安装过程中进行接线或改线时,都应将电源断开,预防触电。 重要提示: 为了避免损坏,请勿自动拆开机壳,必须委托有资格有专业维修人员在指定的维修单位进行维修。 清洁装置时,请勿使用强力清洗剂,当有灰尘时用干布擦拭装置。 不得在电源电压过高和过低的场合下使用该本机。 务请通读本使用说明书,以便您掌握如正确使用本机。当您读本说明书后,请把它妥善保存好,以备日后参考。如果需要维修,请在当地与经本公司授权的维修站联系。 环境防护: 本机符合电磁辐射标准,对人体无电磁辐射伤害。 申明:

产品的发行和销售由原始购买者在可协议条款下使用; 未经允,任单位和个人不得将该产品全部或部分复制、再生或翻译成其它机器可读形式的电子媒介; 本手册若有任修改恕不另行通知; 因软件版本升级而造成的与本手册不符,以软件为准。 目录 设备概述 (3) 第一部分控制矩阵切换系统 (4) 1.1键盘通电 (4) 1.2键盘操作加锁 (4) 1.3键盘操作解锁 (4) 1.4键盘密码设置 (4) 1.5选择监视器 (5) 1.6选择摄像机 (5) 1.7控制解码器 (5) 1.8控制智能高速球 (6) 1.9操作辅助功能 (7) 1.10系统自由切换 (8) 1.11系统程序切换 (9) 1.12系统同步切换 (10) 1.13系统群组切换 (10) 1.14报警联动 (10) 1.15防区警点 (11) 1.16警点状态 (11) 1.17声音开关 (11) 第二部分控制数字录像机、画面处理器 (11) 2.1进入数字录像机、画面处理器模式 (11) 2.2退出数字录像机、画面处理器模式 (11) 2.3选择数字录像机、画面处理器 (11) 2.4控制数字录像机、画面处理器 (12) 第三部分设置连接 (12) 3.1键盘工作模式 (12)

笔记本16乘8矩阵键盘原理

键盘工作的主要原理:计算机键盘通常采用行列扫描法来确定按下键所在的行列位置。所谓行列扫描法是指,把键盘按键排列成n行×m列的n*m行列点阵,把行、列线分别连接到两个并行接口双向传送的连接线上,点阵上的键一旦被按动,该键所在的行列点阵信号就被认为已接通。按键所排列成的矩阵,需要用硬件或软件的方法轮转顺序地对其行、列分别进行扫描,以查询和确认是否有键按动。如有键按动,键盘就会向主机发送被按键所在的行列点阵的位置编码,称为键扫描码。单片机通过周期性扫描行、列线,读回扫描信号结果,判断是否有键按下,并计算按键的位置以获得扫描码。键被按下时,单片机分两次将位置扫描码发送到键盘接口:按下一次,叫接通扫描码;按完释放一次,叫断开扫描码。这样,通过硬件或软件的方法对键盘分别进行行、列扫视,就可以确定按下键所在位置,获得并输出扫描位置码,然后转换为ASCII码,经过键盘I/O电路送入主机,并由显示器显示出来。 我們的應用是EC有KSI/KSO接鍵盤,EC確認鍵盤某個鍵有作用,才會通知系統來減少系統資源浪費,此外每一列会间断性发low讯号 請問一秒內,一個固定的列(KSO)會發1000次Low Pulse. 笔记本EC中使用到了16*8矩阵键盘,其中16根列线输入端为KSO0~KSO15,8根行线输出端为KSI0~KSI7。16根列线和8根行线可以确定16*8=128个坐标点。键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。下图给出了4*4的矩阵键盘的电路具体加以说明。 矩阵式键盘中,行、列线分别连接到按键开关的两端,行线X0、X1、X2、X3通过上拉电阻接到+5 V上。当无键按下时,行线处于高电平状态,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这一点是识别矩阵按键是否被按下的关键。 按键按下时,与此键相连的行线与列线导通,对应的行线被拉低,CPU根据行平电的变化,便能判定相应的行有键按下。例如8号键按下时,第X2行一定为低电平,然而,第2行为低电平时,不能确定一定是8号键按下的,因为9、10、11号键按下同样使第2行为低电平。为进一步

矩阵式键盘的输入实验

实验六、矩阵式键盘的输入实验 实验目的 学习矩阵式键盘工作原理 学习矩阵式键盘接口的电路设计和程序设计 实验设备 仿真器 单片机最小系统实验教学模块 矩阵式键盘实验模块 动态扫描数码管显示模块 实验要求 要求实现:在矩阵式键盘中的某个键被按下时,8位LED动态显示器上最低位显示该键对应的字符,以前的字符向高位推进一位 实验原理 矩阵式由行线和列线组成,按键位于行、列的交叉点。一个4*4 的行列结构可以构成一个16个按键的键盘。很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多的I/O端口 矩阵式键盘工作原理 按键是设置在行列的交接点上,行列分别连接到按键开关的两端。行线通过上拉电阻接到+5V上。平时无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低,列线电平如果为高,则行线电平则为高。这一点是识别矩阵式键盘是否被按下的关键所在。由于行列式键盘中行列线为多键共用,各按键均影响该键所在行和列的电平。因此,各按键彼此将相互发生影响,所以必须将行列线信号配合起来并作适当的出来,才能确定闭合键的位置。 键被按下时,与此键相连的行线电平将由与此相连的列线电平决定,而行线电平在物件按显示处于高电平状态。如果让所有列线出于高电平时没法识别出按键的,现在发过来,让所有列线处于低电平,很明显,按下的键所在行电平将也被置为低电平,根据此变化,便能判定该行一定又键被按下。但我们还不能确定是这一行的哪个键被按下。所以,为了进一步判定到底是哪一列的键被按下,可在某一时刻只让一列线处于低电平。而其余所有列线处于高电平。当第一列为低电平,其余各列为高电平时,因为键4被按下,所以死一行扔处于高电平状态;当第二列为低电平,其余各列为高电平时,同样哦我们会发现第一行仍处于高电平状态。知道让第四列为低电平,其余各列为高电平时,因为是4号键被按下,所以第一行的高电平状态转换到第四列所处的低电平,据此,我们确信第一行第四列交叉点处的按键即4号键被按下。 识别键盘有无键被按下的方法是:让所有列线均为低电平,检查各行线电平是否有低电

矩阵键盘的工作原理和扫描确认方式

9.3.1 矩阵键盘的工作原理和扫描确认方式 来源:《AVR单片机嵌入式系统原理与应用实践》M16华东师范大学电子系马潮 当键盘中按键数量较多时,为了减少对I/O 口的占用,通常将按键排列成矩阵形式,也称为行列键盘,这是一种常见的连接方式。矩阵式键盘接口见图9-7 所示,它由行线和列线组成,按键位于行、列的交叉点上。当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,MCU 通过检测行或列线上的电平变化可以确定哪个按键被按下。 图9-7 为一个 4 x 3 的行列结构,可以构成12 个键的键盘。如果使用 4 x 4 的行列结构,就能组成一个16 键的键盘。很明显,在按键数量多的场合,矩阵键盘与独立式按键键盘相比可以节省很多的I/O 口线。 矩阵键盘不仅在连接上比单独式按键复杂,它的按键识别方法也比单独式按键复杂。在矩阵键盘的软件接口程序中,常使用的按键识别方法有行扫描法和线反转法。这两种方法的基本思路是采用循环查循的方法,反复查询按键的状态,因此会大量占用MCU 的时间,所以较好的方式也是采用状态机的方法来设计,尽量减少键盘查询过程对MCU 的占用时间。 下面以图9-7 为例,介绍采用行扫描法对矩阵键盘进行判别的思路。图9-7 中,PD0、PD1、PD2 为3 根列线,作为键盘的输入口(工作于输入方式)。PD3、PD4、PD5、PD6 为4根行线,工作于输出方式,由MCU(扫描)控制其输出的电平值。行扫描法也称为逐行扫描查询法,其按键识别的过程如下。 √将全部行线PD3-PD6 置低电平输出,然后读PD0-PD2 三根输入列线中有无低电平出现。只要有低电平出现,则说明有键按下(实际编程时,还要考虑按键的消抖)。如读到的都是高电平,则表示无键按下。 √在确认有键按下后,需要进入确定具体哪一个键闭合的过程。其思路是:依

矩阵键盘设计实验报告

南京林业大学 实验报告 基于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、电路图

单片机矩阵键盘设计方案

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 ;;;;;;;;;;初始化程序;;;;;;;;;;

矩阵键盘电路设计

课程设计 题目矩阵键盘电路设计教学院计算机学院 专业计算机应用技术班级 姓名 指导教师 2010 年01 月12 日

前言.................................................................... 第一章需求分析......................................................... 功能描述......................................................... 功能分析......................................................... 第二章系统的原理及分析................................................. 用到的知识点的介绍,知识点使用的总体思路 第三章详细设计......................................................... 硬件设计 系统结构图,元器件的选择等 软件设计 所设计的软件关键模块的程序流程 第四章测试............................................................ 运行结果分析等 第五章总结............................................................. 参考文献................................................................ 附录 关键程序代码........................................................

三维矩阵键盘操作手册

矩阵控制键盘操作说明 键盘概述 控制器是智能电视监控系统中的控制键盘,也是个监控系统中人机对话的主要设备。可作为主控键盘,也可作为分控键盘使用。对整个监控系统中的每个单机进行控制。 键盘功能 1.中文/英文液晶屏显示 2.比例操纵杆(二维、三维可选)可全方位控制云台,三维比例操纵杆可控制摄像机的变倍 3.摄像机可控制光圈开光、聚集远近、变倍大小 4.室外云台的防护罩可除尘和除霜 5.控制矩阵的切换、序切、群组切换、菜单操作等 6.控制高速球的各种功能,如预置点参数、巡视组、看守卫设置、菜单操作等 7.对报警设备进行布/撤防及报警联动控制 8.控制各种协议的云台、解码器、辅助开头设置、自动扫描、 自动面扫及角度设定 9.在菜单中设置各项功能 10.键盘锁定可避免各种误操作,安全性高 11.内置蜂鸣器桌面上直接听到声音,可判断操作是否有效 技术参数 1.控制模式主控、分控 2.可接入分控数16个 3.可接入报警模块数239个 4.最大报警器地址1024个 5.最大可控制摄像机数量1024个 6.最大可控制监视器数量 64个 7.最大可控制解码器数量 1024个 8.电源 AC/DC9V(最低500mA的电源) 9.功率 5W 10.通讯协议Matri、PEL-D、PEL-P、VinPD 11.通讯波特率1200 Bit/S,2400 Bit/S,4800 Bit/S ,9600Bit/S, Start bit1,Data bit8,Stop bit1

接线盒的脚定义 控制线连接图 键盘按键说明 lris Focus Far 聚焦远 Focus Near 聚焦近 Zoom Tele 变倍大 Zoom Wide 变倍小 DVR 设备操作 DVR 功能键 Shift 用户登入 Login 退出键 Exit 报警记录查询 List 进入键盘主菜单 MENU 启动功能 F1/ON 关闭功能 F2/OFF 液晶显示区

2×2矩阵式键盘

2×2矩阵式键盘 摘要:本设计主要是用来学习键盘扫描程序的设计,数码管的动态显示程序设计。设计中,将单片机8051的并行口P1的P1.0,P1.1接键盘的行,将P1.2,P1.3接键盘的列,将并行口P2的P2.7~P2.0分别接数码管的数据段g,f,a,b,d,h,e,c. 以及将P3.6,P3.7分别接数码管的偏选端,当按下第0行0列时数码管就显示00,按下第0行1列时数码管就显示01,第1行0列时数码管就显示02,第1行1列时数码管就显示03。本设计一共四个按键,用双数码管动态显示。 关键字:单片机,数码管动态显示,行列式键盘,共阴数码管 一、矩阵式键盘工作原理 如下图1,I/O接口线组成行、列结构,按键设置在行、列的交点上。行线通过上拉电阻接+5V。 第一步是CPU检测键盘上是否有按键。具体过程如下:P1.2, P1.3输出0,即将列P1.2, P1.3置成低电平,然后将行线P1.0,P1.1电平状态读入累加器A中。如果有键按下,总有一根行线电平被拉至低电平,从而使行输入状态不全为“1”。 第二步是识别是哪一个键按下。具体过程如下:先将P1.2输出为0,即将列P1.2置成低电平。然后读入行线P1.0,P1.1电平状态,如果全为“1”,则按下的键不在此列;如果不全为“1”,则按下的键必在此列;而且是该列与“0”电平线相交的交点上的那个键。再将P1.3输出为0,即将列P1.3置成低电平。做法如上。 二、数码管动态显示原理 A.数码管原理:在单片机应用系统中,经常用到LED数码管作为显示输出设备。LED数码管虽然显示信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、与单片机接口方便等特点,所以在应用中经常使用它。 LED数码管显示器是由发光二极管按一定的结构组合起来的显示器件。在单片机应用系统中通常使用的是8段式LED数码管显示器,他有公阳极和共阴极两种。如图1—1所示。其中共阳极8段发光二极管的阳极端连接在一起,阴极端分开控制,使用时公共端接电源,要使哪根数码管亮,则对应的阴极接低电平。而共阴极8段发光二极管的阴极端连接在一,阳极端分开控制,使用时公共端接地,要使哪根数码管亮,则对应的阳极接高电平即可。从a~g引脚输入不同的8位二进制编码,可显示不同的数字或字符。h为小数点位。 图1—1 在此我们着重介绍下本次实验中用到的共阴极结构的数码管。在共阴极结构中,各段发光二极管的阴极连在一起,将此公共点接地,某一段发光二极管的阴极为高电平时,该段发光。共阴极字段码:LED显示0~9某个字符时,则要求在a~dp送固定的字段码,如要使LED 显示“0”,则要求a、b、c、d、f各引脚为高电平,g和dp为低电平,字段码为“3fh” 。dp g f e d c b a对应为0 0 1 1 1 1 1 1 。共阴极字符0~9七段码如下: 字符:0 1 2 3 4 5 6 7 8 9

单片机课程设计4X4矩阵键盘显示

长沙学院 《单片机原理及应用》 课程设计说明书 题目液晶显示4*4矩阵键盘按键号 程序设计 系(部)电子与通信工程系 专业(班级)电气1班 姓名龙程 学号09 指导教师刘辉、谢明华、王新辉、马凌 云 起止日期— 长沙学院课程设计鉴定表

《单片机技术及应用》课程设计任务书系(部):电子与电气工程系专业:11级电子一班指导教师:谢明华、刘辉

目录 前言 .......................................................................................................................................... 错误!未定义书签。 一、课程设计目的 .................................................................................................................... 错误!未定义书签。 二、设计内容及原理 ................................................................................................................ 错误!未定义书签。 单片机控制系统原理 ...................................................................................................... 错误!未定义书签。 阵键盘识别显示系统概述 ................................................................................................ 错误!未定义书签。 键盘电路 ............................................................................................................................ 错误!未定义书签。 12864显示器 ................................................................................................................... 错误!未定义书签。 整体电路图 ........................................................................................................................ 错误!未定义书签。 仿真结果 ............................................................................................................................ 错误!未定义书签。 三、实验心得与体会 ................................................................................................................ 错误!未定义书签。 四、实验程序 ............................................................................................................................ 错误!未定义书签。参考文献 .................................................................................................................................... 错误!未定义书签。

矩阵键盘操作说明

矩阵键盘操作说明 一、系统复位 1按数字键0后,按MON键 2输入99后,按NEXT键 二、键盘视频选择 首先是监视器选择然后是摄像机选择 1、按键盘上的CLEAR键,清除键盘数字输入ENTER区中的数字显示 2、输入所选择的监视器号,该数字在键盘数字输入ENTER区中显示 3、按MON键,该监视器号在键盘监视器MONITOR区中显示 4、同时系统主机将返回该监视器对应的图像号,在键盘的摄像机CAMERA区中显示。 5、输入选择的摄像机号,该数字在键盘数字输入ENTER区中显示 6、按CAM键 7、系统主机将返回该图像号,在键盘的摄像机CAMERA区中显示则选择的图像再选择的 监视器上显示 三、图像区域切换 在指定的监视器上运行一个指定区域的图像切换,该功能可以在任何一个监视上浏览切换所有的图像操作步骤如下: 1、按键盘上CLERA键,清除数字输入ENTER区中的数字显示 2、输入所选择的监视器号,该数字在键盘数字输入ENTER区中显示 3、按MON键,该监视器号在键盘监视器MONITOR区中显示 4、输入区域切换中的开始图像号 5、按ON键,确认开始区域的开始图像 6、输入区域切换中的结束图像号 7按OFF键确定区域切换的结束图像 完成后则该监视器开始区域切换依次按照设定的图像号进行切换如要添加一个图像到切换序列中则: 1和设置区域切换的步骤一样重复1-3步,选择一个监视器,该监视必须已存在一个切换队列 2、输入所希望添加的摄像机图像好,该摄像机图像号必须在系统的最大允许摄像机图像号的范围内 3、按组合键ENTER-ON,ENTER键必须在前面,确定添加的图像。 如要在切换队列中删除一个图像: 1、和设置区域切换的步骤一样重复1-3步,选择一个监视器,该监视必须已存在一个切换队列 2输入所希望添加的摄像机图像好,该摄像机图像号必须在这个序列切换范围内。 3、按组合键ENTER-OFF,ENTER必须在前面,确认删除图像。 四、报警设置 单布防 针对需要布防的防区一个一个的布防,防区布防后,根据监视器与防区触点权限表,自动将该防区分配到与之对应的监视器上。一旦报警,则与之相关的报警监视器就可以对这个报警防区进行响应。具体操作如下1、输入防区号 2、按组合键ARM-ON,ARM键必须先按,对该报警防区进行确认。 全布防。撤防即按ARM-OFF键 1、输入数字键0

单片机实验报告——矩阵键盘数码管显示

单片机实验报告 信息处理实验 实验二矩阵键盘 专业:电气工程及其自动化 指导老师:高哲 组员:明洪开张鸿伟张谦赵智奇 学号:152703117 \152703115\152703118\152703114室温:18 ℃日期:2017 年10 月25日

矩阵键盘 一、实验内容 1、编写程序,做到在键盘上每按一个键(0-F)用数码管将该建对应的名字显示出来。按其它键没有结果。 二、实验目的 1、学习独立式按键的查询识别方法。 2、非编码矩阵键盘的行反转法识别方法。 3、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。 4、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。 5、掌握利用Keil51软件对程序进行编译。 6、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果 能做出分析和解释,能写出符合规格的实验报告。 三、实验原理 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然

后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

实验二 矩阵键盘实验

实验二矩阵键盘实验 一、实验目的 (1)掌握矩阵键盘行列设计方法; (2)掌握矩阵键盘识别方法; (3)掌握矩阵键盘去抖原理; (4)掌握矩阵键盘控制LED或数码管的设计方法; 二、实验原理 电路图参考实验板电路。 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。 三、实验内容 1.编写程序,做到在键盘上每按一个数字键(0-F)用LED数码管将该代码显示出来。按其它键退出。 2.利用Proteus,设计4*4矩阵键盘硬件电路,并仿真实现。

4×4矩阵式键盘的课程设计

“电子创新设计与实践”课程期中 课题设计报告 姓名:张思源,学:20102121026,年级:2010,专业:电信

报告内容 设计一个4*4矩阵键盘,并编写相关程序 摘要 1.4×4矩阵式键盘程序识别原理。 2.4×4矩阵式键盘按键的设计方法。 报告正文: 一、设计原理 (1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。 (2)键盘中对应按键的序号排列如图14.1所示。 二、参考电路

图14.2 4×4矩阵式键盘识别电路原理图 图14.1 4×4键盘0-F显示

图14.3 4×4矩阵式键盘识别程序流程图 三、电路硬件说明 (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。 四、程序设计内容

(1)4×4矩阵键盘识别处理。 (2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。 五、程序流程图(如图14.3所示) 六、汇编源程序 ;;;;;;;;;;定义单元;;;;;;;;;; COUNT EQU 30H ;;;;;;;;;;入口地址;;;;;;;;;; ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI

矩阵键盘完整使用说明书

键盘控制器 (KEYBOARD CONTROLLER)使用说明书Operation Instruction Copyright 2003-2009. All Rights Reserved.

温馨提示: 感谢您使用本公司产品。 为了让您能够尽快熟练的操作本机,请您仔细阅读我们为您配备内容详细的使用说明书,从中您可以获取有关产品安全注意事项、产品介绍以及产品使用方法等方面的知识。当您阅读完说明书后,请将它妥善保存好,以备日后参考。 如果您在产品的使用过程中发现什么问题,请联系产品技术服务人员。谢谢您的合作! 申明: 在编写此说明书时我们非常小心谨慎,并认为此说明书中所提供的信息是正确可靠的,然而难免会有错误和疏漏之处,请您多加包涵并热切欢迎您的指正。但是我们将不对本手册可能出现的问题和疏漏负责。同时,由于我们无法控制用户对本手册可能造成的误解,因此,将不负责在使用本手册的过程中出现的事故或由此引起的损坏。对于因使用本产品所造成的任何损坏第三方的索赔不负责任。对于因软件的误操作、产品维修、或其它意外情况等引起资料的删改或丢失不负任何责任,也不对由此造成的其它间接损失负责。 本产品的发行和销售由原始购买者在许可协议条款下使用。 未经允许,任何单位和个人不得将本说明书全部或部分复制、再生或翻译成其它机器可读形式的电子媒介。 本说明书若有任何修改恕不另行通知。 因软件版本升级而造成的与本说明书不符,以软件为准。 注:本设备在出厂前已经过严格的质量测试,符合国家电磁辐射标准。

目录 第一部分键盘操作 (4) 1.1 设备概述 (4) 1.2 开机运行 (6) 1.3 键盘登录 (6) 1.4 键盘注销 (6) 第二部分控制监控主机 (6) 2.1 选择监视器 (6) 2.2 选择图像 (7) 2.3 向前、向后切换图像 (7) 2.4 图像保持 (7) 2.5 主机自由切换 (7) 2.6 主机程序切换 (8) 2.7 主机同步切换 (9) 2.8 主机群组切换 (10) 2.9 屏幕分割控制 (10) 2.10 屏幕拼接控制 (10) 2.11 保存主机当前设置 (11) 2.12 网络主机控制 (11) 2.13 监控主机菜单设置 (11) 第三部分控制摄像机 (12) 3.1 选择摄像机 (12) 3.2 控制摄像机方向 (12) 3.3 控制摄像机镜头 (13) 3.4 预置位操作 (13) 3.5 图像返回 (14) 3.6 自动巡视 (14) 3.7 轨迹扫描 (14) 3.8 区域扫描 (15) 3.9 云台自动扫描 (15) 3.10 操作辅助功能 (16) 3.11 智能摄像机菜单设置 (16) 第四部分控制报警主机 (16) 4.1 选择警点 (16) 4.2 防区警点设防、撤防 (16)

矩阵式键盘程序设计

矩阵式键盘程序设计 (1)定义字型码表和10ms延时程序设计。4X4矩阵键盘的16个键分别对应0~9、A~F 十六个字符,由于数码管显示使用共阴极LED数码管,所以字型码采用共阴极字型码。定义字型码表和软件去抖的10ms延时程序如下: #include /*定义0~9,A~F十六个字符的字型码表*/ unsigned char table[]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; /*10ms延时程序*/ void delay10ms(void) { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); } (2)矩阵式键盘主程序设计。4X4矩阵键盘的各行接P0口的P0.0~P0.3,矩阵键盘的各列接P0口的P0.4~P0.7,P1口的P1.0~P1.7接数码管的各段。矩阵式键盘主程序如下:void main() { char k=0; unsigned char tmp,key; P1=0x00; P0=0x0f; // P0口低四位做输入口,先输出全1 tmp=P0; while(1) { while(tmp==0x0f) //循环判断是否有键按下 { P0=0x0f; //所有列输出低电平 tmp=P0; //读行信号 } delay10ms(); //延时10ms去抖 P0=0x0f; //所有列输出低电平 tmp=P0; //再次读键盘状态 if(tmp==0x0f) continue; //如果无键按下则认为是按键抖动,重新扫描键盘 key=scan_key( ); //有键按下,调用键盘扫描程序,并把键值送key while(k!=-1) {delay10ms();k=scan_key();} P1=table[key]; //查表或字型编码送P1口,数码管显示闭合按键的编码 } (3)矩阵式键盘扫描程序设计 unsigned char scan_key(void) //键盘扫描子程序

矩阵键盘键信号检测电路设计-EDA课程设计说明书

课程设计说明书 题目EDA技术与应用系(部) 专业(班级) 姓名 学号 指导教师 起止日期

EDA技术课程设计任务书系(部):专业:指导教师:

目录 引言 (5) 一、绪论 (5) 1.1 FPGA概况 (5) 1.2 此课题的研究意义 (6) 二、矩阵键盘接口电路的原理与总体设计 (6) 2.1 矩阵键盘接口电路的原理 (6) 2.2 总体设计 (8) 三、各模块的设计及仿真 (8) 3.1 键盘扫描电路 (8) 3.2 键盘译码电路和按键标志位产生电路 (11) 3.3 时钟产生模块 (16) 3.4 键盘接口电路顶层电路实现 (18) 四、硬件测试 (19) 五、实验设备 (19) 六、总结 (20) 参考文献 (20)

矩阵键盘键信号检测电路设计 引言 人类文明已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronic Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。 此设计主要利用VHDL硬件描述语言在EDA平台Quartus II上设计一个4×4阵列键盘扫描电路,将行扫描信号输入阵列键盘,读取列信号的值,输出按键编码,从而判断出按键按下的位置。并且进行模拟仿真,下载到EDA实验箱进行硬件验证。 一、绪论 1.1 FPGA概况 早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(E2PROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。 其后出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与—或”表达式来描述,所以PLD能以乘积和的形式完成大量的组合逻辑功能。 这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。 PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和E2PROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上又发展了一种通用阵列逻辑(GAL、Generic ArrayLogic),如GAL16V8、GAL22V10等。它采用了EPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。 为了弥补这一缺陷,20世纪80年代中期,Altera和Xilinx分别推出了类似于PAL结构的扩展型

相关文档
最新文档