矩阵键盘显示系统

矩阵键盘显示系统
矩阵键盘显示系统

1 4×4矩阵式键盘识别显示系统概述

矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O 端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。

矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为N×N个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。

最常见的键盘布局如图1.1所示。一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。

图1.1 键盘布局

2系统主要硬件电路设计

2.1单片机控制系统原理

图2.1 单片机控制系统原理框图

2.2单片机主机系统电路

AT89C52单片机是51系列单片机的一个成员,是52单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-52系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C52构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。

图2.2 单片机主机系统图

2.2.1时钟电路

时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-52单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图2.2所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。

图2.2中外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz 。

2.2.2复位电路

为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位

后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。

单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。

图2.2中R1和Cl组成上电复位电路,其值R取为1KΩ, C取为10pF。

2.2.3 矩阵式键盘电路

AT89C51单片机的并行口P1接4×4矩阵键盘,以P2.0-P2.3作输入线,以P2.4-P2.7作输出线;P0口输出按键信息,在数码管上显示每个按键的“0-F”序号。矩阵键盘实际电路图连接如图2.3所示。

图2.3 矩阵式键盘电路

当无按键闭合时,P2.0—P2.3与P2.4—P2.7之间开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。

判断有无按键按下的方法是:

(1)置列线P2.4—P2.7为输入状态,从行线P2.0—P2.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。

(2)行线轮流输出低电平,从列线P2.4—P2.7读入数据,若有某一列为低电平,则对应行线上有键按下。

综合(1)(2)两步的结果,可确定按键编号。

2.3 译码显示电路

译码电路中常用的显示器有LED(数码管)和LCD(液晶显示器)。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点。

本系统输出结果选用1个LED显示。数码管有共阴共阳之分,本系统采用8段共阴型LED,其原理图如图2.5所示。数码管内部有8个发光二极管,公共端

由8个发光二极管的阴极并接而成,正常显示时公共端接低电平(GND),各发光二极管是否点亮取决于a-dp各引脚上是否是高电平。

LED数码管的外形结构如图2.4,外部有10个引脚,其中3, 8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字((0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。

由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。如图3.1所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。

符号和引脚共阳极共阴极

图2.4 LED数码管结构

图2.5 译码显示电路

由于本显示电路功能简单,为使编程简单,采用直接输出模式,即把P0.0-P0.7端口用8芯排线连接到数码显示模块区域中的a-h端口上,要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h。

表2-1 LED显示段码

3实验总电路图(单片机开发板)

图3.1单片机开发板

图3.1为本次课程设计所用的单片机开发板,这次课程设计主要用到单片机最小系统、矩阵键盘、数码管显示等电路模块。

4系统的软件设计4.1实验程序流程图

图4.1流程图

4.2实验程序

#include

#include

#define uint unsigned int

#define uchar unsigned char

Code char tab[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,

0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; void delay(void)

{uchar i;

for(i=254;i>0;i--);

}

uchar keyscan(void)

{ uchar sccode,recode;

P2=0xf0;

if((P2&0xf0)!=0xf0)

{

delay();

if((P2&0xf0)!=0xf0)

{ sccode=0xfe;

while((sccode&0x10)!=0)

{

P2=sccode;

if((P2&0xf0)!=0xf0)

{

recode=(P2&0xf0);

sccode=sccode&0x0f;

return((sccode)+(recode)) ;

}

else

sccode=(sccode<<1)|0x01;

}}}

return(0);

}

void display(uchar keydisp)

{ uchar keytab[16]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0x b7,0x7e,0x7d,0x7b,0x77};

uchar m;

for(m=0;m<16;m++)

{ if(keytab[m]==keydisp)

{ P1=0xfe;P0=tab[m];

}

}}

void main(void)

{ uchar key;

P1=0xfe;P0=0x40;

P2=0xff;

if(P2==0xff&P3^2==1){

while(1){

key=keyscan();

display(key);

}}}

5实验结果

图5.1 显示按键E的实验图

图5.2 显示按键8的实验图

6心得体会

本次课程设计在刚开始拿到选题时大家都感觉到这个题目是比较简单的,其实不然,做了之后才发现设计电路虽然看起来不太麻烦,但由于我们平时接触的大部分是理论而对于实践方面涉猎的不是太多,所以一时很难找到所以费了很长时间去上网查资料、看参考书并且请教指导老师才逐渐熟悉,另外我们认为真正困难的程序也在我们共同努力下最终完成了。

在完成课程设计以后,我们发现我们还有许多不足,所学到的知识还远远不够,一些技能还有待提高。

在实际的项目开发过程中,不断深化单片机应用技术,不断积累应用行业的专业知识。例如,我完成了“矩阵键盘显示系统”,就会对键盘的实现方法、数码管的工作原理、数码管不同的工作工作方式、单片机端口的应用等方面的专业技术有很深的认识。以后碰到类似的项目时,很多东西就可以直接利用了。有了扎实的单片机应用相关的基础知识,并且熟悉掌握了几款不同类型单片机的开发方法,再结合实际的应用背景,那么就可以随心所欲,设计出性能最优、结构最合理的单片机应用系统

总的来说,本次课程设计还是成功的,完成了4×4键盘和正确的显示在LED 上,能正常运行。

参考文献

[1] 谢自美.电子线路设计?实验?测试.华中科技大学出版社,2008

[2] 陈小忠.单片机实用接口技术子程序[M].人民邮电出版社,2005

[3] 阎石.数字电子技术基础(第三版). 北京:高等教育出版社,2003

[4] 廖常初.现场总线概述[J].电工技术,2001

[5] 彭同明,杨少华. 单片机原理及应用”课程改革的分析[J]. 武汉电力职业技术学院学报,2004,(1).

4X4扫描式矩阵键盘课程设计

4X4扫描式矩阵键盘课程设计 课程设计名称: 4_4扫描式矩阵键盘设计 姓名:DUKE 班级:电子1008班 学号:10086 成绩: 日期:2014年1月6日

摘要 随着21世纪的到来,电子信息行业将是人类社会的高科技行业之一,式设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最主要的还是科技问题。 矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。是它能准时、实时、高效地显示按键信息,以提高工作效率和资源利用率。 矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,显示在LED数码管上。单片机控制依据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。 4*4矩阵式键盘采用AT89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用C语言编程。单片机将检测到的按键信号转换成数字量,显示于LED显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。

目录 第一章:系统功能要求-------------------------------------------------------- 1.1 4*4 矩阵式键盘系统概述------------------------------------------------ 1.2 本设计任务和主要内容--------------------------------------------------- 第二章:方案论证--------------------------------------------------------------- 第三章:系统硬件电路的设计------------------------------------------------ 3.1 单片机控制系统原理----------------------------------------------------- 3.2 原理图绘制说明---------------------------------------------------------- 3.3 画出流程图---------------------------------------------------------------- 3.4 原理图绘制--------------------------------------------------------------- 第四章:系统程序的设计------------------------------------------------------ 4.1 程序的编写步骤----------------------------------------------------------- 4.2 编写的源程序-------------------------------------------------------------- 第五章:调试及性能分析------------------------------------------------------ 第六章:心得体会--------------------------------------------------------------- 参考文献----------------------------------------------------------------------------

矩阵按键识别技术

矩阵按键识别技术 矩阵按键部份由16个轻触按键按照4行4列排列,连接到JP50端口。将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。 相关原理: 程序运行照片:

接线方法: 1、用一条8PIN数据排线,把矩阵按键部份的JP50,接到CPU部份的P1口JP44. 2、接8位数码管的数据线。将数码管部份的数据口 JP5接到CPU部份的P0口JP51. 3、接8位数码管的显示位线。将数码管部份的显示位口 JP8接到CPU部份的P2口JP52. ;本程序实现扫描按键显示功能. ;分别按16个键盘显示分别显示数字123A456B789C*0#D ;键盘口P1,数码管显示第二位p21, 数码管段位p0口 确定矩阵式键盘上何键被按下,介绍一种“行扫描法”。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法. 程序流程图:

8031单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。列线P1.0-P1.3设置为输入线,行线P1.4-P.17设置为输出线。4根行线和4根列线形成16个相交点。 1、检测当前是否有键被按下。检测的方法是P1.4-P1.7输出全“0”,读取 P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,否则有键闭合。 2、去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。 3、若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。P1.4-P1.7按下述4种组合依次输出: 在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。 4、为了保证键每闭合一次CPU仅作一次处理,必须去除键释放时的抖动。 汇编语言参考程序: org 0000h ajmp main org 0080h main: mov dptr,#tab ;将表头放入DPTR lcall key ;调用键盘扫描程序 movc a,@a+dptr ;查表后将键值送入ACC mov p0,a ;将Acc值送入P0口

4乘4矩阵键盘输入数码管显示四位数

综合课程设计三相步进电机控制器电路的设计 学生姓名__________

指导教师_________ 课程设计任务书 一、设计说明 步进电机是工业过程控制及仪表控制中的主控元件之一,作为执行元件其特点为能够快速起启停、精度高且能直接接收数字量,由于这些特点使其在定位场合得到了广泛的应用。 设计一个三相步进电机控制器,使其能够控制步进电机的工作状态,如步进电机正、反转,步进电机的工作方式等。 用键盘设定步进电机的工作频率,工作方式,并用数码管显示设定值,可以通过按键来更换显示内容。用示波器观测三相的输出波形,并用数码管显示电路的工作状态。 二、技术指标 步进电机的工作频率为:<10kHz 三、设计要求 1.进行方案论证,提出一个合理的设计方案并进行理论设计; 2.对所设计的方案部分进行调试; 3.在选择器件时,应考虑成本。 4.设计测量调试电路。 四、实验要求 1.根据技术指标制定实验方案;验证所设计的电路。 2.进行实验数据处理和分析。 五、推荐参考资料 1?谢自美?电子线路设计?实验?测试.[M]武汉:华中理工大学出版社,2000 年 2. 阎石. 数字电子技术基础. [M] 北京:高等教育出版社,2006年 3. 童诗白、华成英.模拟电子技术基础. [M] 北京:高等教育出版社,2006年 4..付家才. 电子实验与实践. [M] 北京:高等教育出版社,2004年 5.沙占友、李学芝著.中外数字万用表电路原理与维修技术. [M] 北京:人民 邮电出版社,1993年

六、按照要求撰写课程设计报告成绩评定表

一、概述 本次毕设的题目是:三相步进电机控制电路的设计。本次毕设使用80C51单片机作为主控芯片,利用ULN2003A集成电路作为三相步进电机的驱动电路,采用单极性驱动方式,使三相步进电机能在(1)三相单三拍,(2)三相双三拍, (3)三相六拍三种工作方式下正常工作;能实现的功能有:启动/停止控制、方向控制;速度控制;用LED数码管显示工作方式。键盘输入工作频率。本次课程设计采用80C51单片机作为主控芯片,程序采用C语言来编写,驱动电路采用ULN2003A集成电路,显示采用 7SEG-MPX4-CC卩四位共阴数码管,P0接段码,并用8只1K欧左右电阻上拉。P2的4位10 口接位选码。正转,数码管显示1。反转,数码管显示2.不转,数码管显示0.采用Proteus软件进行仿真。在Keil uVsuon3编程环境下编程和编译生成HEX文件,导入到 80C51单片机,实现对各个模块的控制,实现我们所需要的功能。 本次课程是对毕业设计的基础设计,即实现4x4键盘输入,数码管显示输入数字的设计。 二、方案论证 1步进电机驱动方案选择 方案1 :使用功率三极管等电子器件搭建成功率驱动电路来驱动电机的运行。这种方案的驱动电路的优点是使用电子器件联接,电路比较简单,但容易受 干扰,信号不够稳定,缺点是器件较大而不便电路的集成,使用时很不方便,联接时容易出错误。 方案2:使用专门的电机驱动芯片ULN2003A来驱动电机运行。驱动芯片的优点是便于电路的集成,且驱动电路简单,驱动信号很稳定,不易受外界环境的干扰,因而设计的三相步进电机控制系统性能更好。 通过对两种方案的比较,我选择方案2使用ULN2003A S机驱动芯片来作为驱动。 2数码管显示方案选择 方案1:把所需要显示的数据通过专用的七段显示译码器(例如7448)的转换输出给LED显示屏。优点是输出比较简单,可以简化程序,但增加了芯片的费用,电路也比较复杂。 方案2:通过程序把所要的数据转化为七段显示的数据,直接通过单片机接 口来显示,其优点是简化了电路,但增加了软件编写的负担。 通过对两种方案进行比较,我选择通过软件编写来输出显示信号,即单片机直接和显示器相连。 3控制状态的读取 方案1:把按键接到单片机的中断口,若有按键按下,单片机接收到中断信 号,再通过软件编写的中断程序来执行中断,优点是接线简单,简化了电路,但软件编写较为复杂,不易掌握。

扫描式矩阵键盘课程设计

扫描式矩阵键盘课程设 计 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

4X4扫描式矩阵键盘课程设计课程设计名称: 4_4扫描式矩阵键盘设计 姓名: DUKE 班级:电子1008班 学号: 10086 成绩: 日期: 2014年1月6日 摘要 随着21世纪的到来,电子信息行业将是人类社会的高科技行业之一,式设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最主要的还是科技问题。 矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。是它能准时、实时、高效地显示按键信息,以提高工作效率和资源利用率。 矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,显示在LED数码管上。单片机控制依据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。 4*4矩阵式键盘采用AT89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用C语言编程。单片机将检测到的按键信号

转换成数字量,显示于LED显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。 目录 第一章:系统功能要求-------------------------------------------------------- 1.1 4*4 矩阵式键盘系统概述------------------------------------------------ 1.2 本设计任务和主要内容--------------------------------------------------- 第二章:方案论证--------------------------------------------------------------- 第三章:系统硬件电路的设计------------------------------------------------ 3.1 单片机控制系统原理----------------------------------------------------- 3.2 原理图绘制说明---------------------------------------------------------- 3.3 画出流程图---------------------------------------------------------------- 3.4 原理图绘制---------------------------------------------------------------

矩阵键盘电路设计

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

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

课程设计-制作单片机的4X4矩阵键盘

课程设计-制作单片机的4X4矩阵键盘

目录 摘要.............................................. 错误!未定义书签。第一章硬件部分 (5) 第一节AT89C51 (5) 第二节4*4矩阵式键盘 (8) 第三节LED数码管 (11) 第四节硬件电路连接 (13) 第二章软件部分 (15) 第一节所用软件简介 (15) 第二节程序流程图 (18) 第三节程序 (20) 第三章仿真结果 (23) 心得体会 (26) 参考文献 (27)

第一章硬件部分 第一节AT89C51 AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚如图所示 AT89C5 图1 AT89C51管脚 图 AT89C51其具有以下特性: 与MCS-51 兼容 4K字节可编程FLASH存储器 寿命:1000写/擦循环 数据保留时间:10年

全静态工作:0Hz-24MHz 三级程序存储器锁定 128×8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 特性概述: AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 接口,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。

4乘4矩阵键盘输入数码管显示四位数

沈阳航空航天大学 综合课程设计三相步进电机控制器电路的设计 班级 94020101 学号 2009040201023 学生姓名 XXXXXXXXX 指导教师常丽东

课程设计任务书 一、设计说明 步进电机是工业过程控制及仪表控制中的主控元件之一,作为执行元件其特点为能够快速起启停、精度高且能直接接收数字量,由于这些特点使其在定位场合得到了广泛的应用。 设计一个三相步进电机控制器,使其能够控制步进电机的工作状态,如步进电机正、反转,步进电机的工作方式等。 用键盘设定步进电机的工作频率,工作方式,并用数码管显示设定值,可以通过按键来更换显示内容。用示波器观测三相的输出波形,并用数码管显示电路的工作状态。 二、技术指标 步进电机的工作频率为:<10kHz 三、设计要求 1.进行方案论证,提出一个合理的设计方案并进行理论设计; 2.对所设计的方案部分进行调试; 3.在选择器件时,应考虑成本。 4.设计测量调试电路。 四、实验要求 1.根据技术指标制定实验方案;验证所设计的电路。 2.进行实验数据处理和分析。 五、推荐参考资料 1.谢自美. 电子线路设计·实验·测试. [M]武汉:华中理工大学出版社,2000年 2.阎石. 数字电子技术基础. [M]北京:高等教育出版社,2006年 3.童诗白、华成英.模拟电子技术基础. [M]北京:高等教育出版社,2006年 4..付家才. 电子实验与实践. [M]北京:高等教育出版社,2004年 5.沙占友、李学芝著.中外数字万用表电路原理与维修技术. [M]北京:人民邮电出版社,1993年

六、按照要求撰写课程设计报告成绩评定表

4×4矩阵键盘数码管显示 最简便易懂的键盘扫描方法

/////4×4矩阵键盘按键为1-16,按键显示0-9、a-f; ////////////////// #include #define uchar unsigned char uchar key=0; uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e,0xc0}; void show(uchar key) { P0=table[key];//显示数值 } void Scan_key()//扫描键盘 { uchar m; P1=0xff;//数码管全亮 P2=0x0f;//P2口赋初值低位1高位0 m=P2; switch (m) { case 0x0e: { P2=0xf0;

m=P2; switch (m) { case 0xe0:{key=0;show(key);break;} case 0xd0:{key=1;show(key);break;} case 0xb0:{key=2;show(key);break;} case 0x70:{key=3;show(key);break;} default:break; } break; } case 0x0d: { P2=0xf0; m=P2; switch (m) { case 0xe0:{key=4;show(key);break;} case 0xd0:{key=5;show(key);break;} case 0xb0:{key=6;show(key);break;} case 0x70:{key=7;show(key);break;} default:break; } break; } case 0x0b: { P2=0xf0; m=P2; switch (m) { case 0xe0:{key=8;show(key);break;} case 0xd0:{key=9;show(key);break;} case 0xb0:{key=10;show(key);break;} case 0x70:{key=11;show(key);break;} default:break; } break; } case 0x07: { P2=0xf0; m=P2; switch (m)

数码管显示4×4键盘矩阵按键

9数码管显示4×4键盘矩阵按键 #include #define uchar unsigned char #define uint unsigned int sbit BEEP = P3^7; uchar code DSY_CODE[]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00 }; uchar Pre_KeyNO = 16,KeyNO = 16; void DelayMS(uint ms) { uchar t; while(ms--) { for(t=0;t<120;t++); } }

void Keys_Scan() { uchar Tmp; P1 = 0x0f; DelayMS(1); Tmp = P1 ^ 0x0f; switch(Tmp) { case 1: KeyNO = 0; break; case 2: KeyNO = 1; break; case 4: KeyNO = 2; break; case 8: KeyNO = 3; break; default: KeyNO = 16; } P1 = 0xf0; DelayMS(1); Tmp = P1 >> 4 ^ 0x0f; switch(Tmp) { case 1: KeyNO += 0; break; case 2: KeyNO += 4; break; case 4: KeyNO += 8; break; case 8: KeyNO += 12; } } void Beep() { uchar i; for(i=0;i<100;i++) { DelayMS(1); BEEP = ~BEEP; } BEEP = 1; } void main() { P0 = 0x00; while(1) { P1 = 0xf0; if(P1 != 0xf0)

LED数码管显示矩阵键盘按键的设计

任务九设计说明2 一、电路原理及仿真图: 二、程序设计: #include #define uchar unsigned char uchar display[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0 x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0 x40}; uchar key; void get(){ uchar a; P1=0x0f; //按下按钮// a=P1^0x0f; switch(a) //确定行// { case 1:key=0;break; case 2:key=4;break; case 4:key=8;break; case 8:key=12;break; case 0:key=16;} P1=0xf0; a=P1^0xf0; switch(a) //确定列//{ case 16:key=key+3;break; case 32:key=key+2;break; case 64:key=key+1;break;

case 128:key=key+0;}} void main(){ P0=display[16]; get(); P0=display[key]; } 程序完成两个功能,首先扫描键盘,检测是否有按键按下并计算键值。 然后如果有按键按下则驱动数码管显示相应键值,否则显示”-“符号。 三、设计说明 如电路原理图所示,图中矩阵键盘和P3端口连接,共阳极数码管的段选端和单片机的P0口连接,位选直接接到高电平,使得数码管始终处于选通状态。系统启动后,单片机逐行扫描键盘,当没有按键按下时,驱动数码管显示“-”符号,当检测到有按键按下时,单片机将相应键值对应的数码编码送至P0端口,驱动数码管以十六进制方式显示被按下的按键的键值。四、遇到的问题 首先遇到的问题是系统启动后数码管没有任何显示,仔细查看仿真现象后发现P0口始终为高阻状态,于是怀疑是数码管极性错误。再检查数码管型号后发现果然使用了共阴极数码管,于是换成共阳极数码管后终于有了显示。其次是希望键值从键盘的左下角起始,即左下角键值为0。但由于对键盘的扫描方向理解的不是很透彻,导致调试了很多次,键值排列顺序都不尽人意。不过最终还是达到了设计要求。

矩阵键盘简易计算器要点

《微处理器系统与接口技术》课程实践报告 计算器 班级: 学号: 学生姓名: 指导老师: 日期: 2014.7.5 ******电子与信息工程学院

目录 1、设计题目:计算器 (3) 2、设计目的 (3) 3、计算器总体设计框图 (3) 4、计算器详细设计过程 (4) 4.1输入模块 (4) 4.2键盘输入电路 (5) 4.3主程序模块 (6) 5、分析与调试 (6) 7、运行结果 (8) 8、结束语 (8) 8、参考文献 (8) 9、源程序附录 (9) 9.1主程序 (9) 9.2延时函数delay (12) 9.3显示函数display (12) 9.4键盘扫描函数 (14) 9.5预定义函数 (15)

1、设计题目:计算器 2、设计目的 此次课程实践题目是基于单片机简单计数器的设计,本此设计使用的是Intel公司MCS-51系列的8051AH单片机。设计的计算器可以实现2位小数的加、减、乘、除运算以及整数的乘方运算,其中用4*4矩阵键盘来输入待参与运算的数据和运算符;八位数码管动态显示输入待参与运算的数据以及运算后产生的结果,每个硬件模块的调用过程中涉及到了函数入口及出口参数说明,函数调用关系描述等。 3、计算器总体设计框图 计算器以MCS-51系列的8051AH单片机作为整个系统的控制核心,应用其强大的I/O功能和计算速度,构成整个计算器。通过矩阵键盘输入运算数据和符号,送入单片机进行数据处理。经单片机运算后控制LED数码管的输出。整体框图如图1所示: 图3 整体框图 本系统硬件主要由矩阵键盘、独立键盘I/O输入输出、数码管显示等主要部分组成。各模块的主要功能如下: (1)矩阵键盘将十六进制编码的数字送到单片机。 (2) 单片机扫描键盘信号并接收,对输入的键盘信号进行处理 (3) LED以动态扫描的方式移位显示每次输入的数据和最后的运算结果。实践设计的具体流程图如下图2所示:

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

单片机实验报告 信息处理实验 实验二矩阵键盘 专业:电气工程及其自动化 指导老师:高哲 组员:明洪开张鸿伟张谦赵智奇 学号: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个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

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

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

长沙学院课程设计鉴定表

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

目录 前言 (5) 一、课程设计目的 (6) 二、设计内容及原理 (6) 2.1 单片机控制系统原理 (6) 2.2阵键盘识别显示系统概述 (6) 2.3键盘电路 (7) 2.4 12864显示器 (8) 2.5整体电路图 (9) 2.6仿真结果 (9) 三、实验心得与体会 (10) 四、实验程序 (10) 参考文献 (18)

前言 单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器 应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量不仅远超过PC机和其他计算机的总和,甚至比人类的数量还要多。 是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗低,因此倍受工程师青睐,适用于使用电池的电子设备。英国科学家在上世纪制造了第一块液晶显示器即LCD。而第一台可操作的LCD基于动态散射模式(Dynamic Scattering Mode,DSM),是RCA公司乔治·海尔曼带领的小组开发的。 LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。 交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键, 键盘是合理的。

矩阵键盘控制12864显示最经典程序

#include //这个程序的功能:用4*4的矩阵键盘(接P3口)按键盘k1——k16中的任何一个键ki #include //12864液晶上显示数字i-1 (液晶数据口接P0) #define uint unsigned int//键盘扫描的思想是将行设置为低,列设置为高,来读取P3口的值,就能知道是哪个按键按下了 #define uchar unsigned char #define LCDdata P0 sbit E = P2^7; sbit RW = P2^6; sbit RS = P2^5; void init(); void delayms(uint x); void displaykey(); void write_com(uchar com);//写命令 void write_data(uchar date);//写数据 uchar temp; //--------------主函数----------------- void main() { init();// P3=0xfe;//P3=0xfd;//P3=0xfb;//P3=0xf7; while(1) { displaykey(); } } //-------------液晶初始化---------------- void init() { write_com(0x01); write_com(0x02); write_com(0x06); write_com(0x0e); } //------------毫秒延时--------------- void delayms(uint x) { uchar i; while(x--) {

数码管动态显示与矩阵键盘的编程

实验四综合应用设计——数码管动态显示与矩阵键盘的编程 一、实验目的: 1、掌握单片机I/O技术和子程序设计等综合知识。 2、了解矩阵式键盘的内部结构和数码管显示的基本原理,掌握至少一种常用的按键识别方法。 3、熟练掌握数码管动态显示和矩阵键盘识别的综合应用。 二、实验内容: 设计一个矩阵键盘的识别和动态显示综合的系统,控制8个8段数码管动态扫描显示4*4矩阵键盘上按下的按键所对应的值。 三、实验要求: 给定一个4*4的矩阵键盘,16个按键对应显示0123456789ABCDE,第1次按下某按键在第一个8段数码管上显示对应的值,第2次在第二个数码管上显示,以此类推,第9次又在第一个数码管上显示,以此循环下去。其中ABCDE在数码管上无法表达,可以用其它代替,例如:B用8表示,D用0表示,E用H表示等。 四、实验设备及实验耗材: 计算机一台,W A VE6000软件模拟器,完成ISP下载的XLISP软件,XL1000单片机综合仿真试验仪一台(8个8段数码管,4*4矩阵键盘一个,89S51一片,9针对9针的串口线一条,5V稳压电源线一条) 五、实验基本原理与方法: 查阅相关资料掌握矩阵式键盘的内部结构,8段数码管动态显示原理和常用的按键识别方法,建议使用按键识别方法中最常用的“行扫描法”编写程序。结合动态显示技术和矩阵键盘识别技术。 六、实验方案设计: 1、采用哪些I/O口完成通信,采用何种按键识别的方法,如何综合动态显示技术和矩 阵键盘识别技术。 2、说明该程序的功能。 3、硬件连接原理图。 七、实验步骤: 1.弄清实验内容和实验要求。 2.学习相关理论知识,提出实验方案,画出程序流程图。

FPGA矩阵键盘课程设计

FPGA课程设计报告 项目名称基于FPGA的4*4矩阵键盘的设计 专业班级通信1 学生姓名张 指导教师 2016年7 月10 日

摘要 本课程设计提出了基于FPGA的4*4矩阵键盘的设计,主要是在软件Quartus II 9.0这个环境中,以硬件描述语言Verilog进行编写程序,从而完成矩阵键盘的相关设计。主要由矩阵式键盘电路、显示电路等组成,实现过程是通过行扫描输入随机信号,列扫描判断哪一个键被按下,并最后由数码管显示该按键。此次课程设计完成了4*4矩阵键盘控制LED数码管显示系统的设计,该设计具有灵活性强,易于操作,可靠性高,广泛应用于各种场合的特点,是进行按键操作管理的有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身的要求,并能正确、实时、高效地显示按键信息,以提高工作效率和资源换利用率的意义。 关键词:数码管;矩阵键盘;按键;显示电路

Abstract This course is designed based on FPGA is proposed 4 * 4 matrix keyboard design, mainly in the Quartus II software 9.0 this environment, with the Verilog hardware description language program, so as to complete the related design of matrix keyboard. Main matrix keyboard circuit, display circuit and so on, complete the 4 * 4 matrix keyboard control LED digital tube display system design, the design has strong flexibility, easy operation, high reliability, widely used in various occasions. Into 4 * 4 matrix keyboard control LED digital tube display system design, design flexibility is strong, easy to operate, high reliability, widely used in various occasions. Matrix keyboard control system, can improve efficiency, and is an effective method to manage the keystrokes, it can improve the system accuracy, and is conducive to resource saving and reduce the requirement of the operator itself, and correctly, real-time and efficient to show the key information, in order to improve the work efficiency and the utilization ratio of resources in meaning. Keywords: Digital tube; Matrix keyboard; The key; Disply circuit

矩阵键盘控制数码管

专业综合设计报告 项目名称:基于矩阵键盘和LED数码管显示器的简易 人机界面设计 学生姓名: 同组同学: 专业名称: 班级: 指导教师: 项目起止日期:2012年03月12日至2012年03月30日

目录 摘要 (3) 1、概述 (3) 2、总体设计方案 (3) 2.1总体设计要求 (3) 2.2系统框图 (4) 3、系统硬件设计 (4) 3.1单片机的最小系统 (5) 3.1.1电源电路 (5) 3.1.2复位电路 (5) 3.1.3晶振电路 (6) 3.2 LED数码管显示部分 (6) 3.3矩阵键盘 (7) 3.3.1键盘的工作原理 (7) 3.3.2键盘检测原理 (7) 4、系统软件设计 (9) 4.1 软件设计思想 (9) 4.2 主程序设计 (10) 4.3 子程序设计 (11) 4.3.1 数码管显示程序设计 (11) 4.3.2 键盘检测程序设计 (11) 4.3.3延时函数程序设计 (14) 5、系统调试 (14) 6.设计体会 (15) 参考文献 (15)

摘要 单片机自20世纪70年代以来,以其极高的性价比,以及方便小巧受到人们极大的重视和关注。本设计选用AT89S52芯片作为控制芯片,来实现矩阵键盘对LED数码管显示的控制。通过单片机的内部控制实现对硬件电路的设计,从而实现对4*4矩阵键盘的检测识别。用单片机的P3口连接4×4矩阵键盘,并以单片机的P3.0-P3.3口作键盘输入的列线,以单片机的P3.4-P3.7口作为键盘输入的行线,然后用P0.0-P0.7作输出线,通过上拉电阻在显示器上显示不同的字符“0-F”。在硬件电路的基础上加上软件程序的控制来实现本设计。其工作过程为:先判断是否有键按下,如果没有键按下,则继续检测整个程序,如果有键按下,则识别是哪一个键按下,最后通过LED数码管显示该按键所对应的序号。关键词:AT89S52芯片;4*4矩阵键盘;键盘识别;LED数码管 1、概述 随着单片机系统的日益更新,以及人们对产品的人机交互能力的不断提高;使得单片机系统的人机界面设计能力成为学习单片机的一项重要的基础内容。而4*4键盘的操作和LED数码管的动态显示是人机界面设计中最基础的内容,掌握这些基础的设计能力对以后的学习研究是非常必要的。 2、总体设计方案 2.1总体设计要求 本系统采用单片机AT89S52为数码管的控制核心,制造一种简单的4*4键盘检测显示,能够在目测条件下四位数码管各段亮度均匀、充足,本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。 根据设计要求,确定的设计方案如下: 2.1.1 选择AT89S52单片机作为整个系统的核心器件,对整个系统进行总体

相关文档
最新文档