4X4扫描式矩阵键盘课程设计要点.docx

上传人:b****8 文档编号:11422914 上传时间:2023-03-01 格式:DOCX 页数:16 大小:94.44KB
下载 相关 举报
4X4扫描式矩阵键盘课程设计要点.docx_第1页
第1页 / 共16页
4X4扫描式矩阵键盘课程设计要点.docx_第2页
第2页 / 共16页
4X4扫描式矩阵键盘课程设计要点.docx_第3页
第3页 / 共16页
4X4扫描式矩阵键盘课程设计要点.docx_第4页
第4页 / 共16页
4X4扫描式矩阵键盘课程设计要点.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

4X4扫描式矩阵键盘课程设计要点.docx

《4X4扫描式矩阵键盘课程设计要点.docx》由会员分享,可在线阅读,更多相关《4X4扫描式矩阵键盘课程设计要点.docx(16页珍藏版)》请在冰豆网上搜索。

4X4扫描式矩阵键盘课程设计要点.docx

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

 

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

 

课程设计名称:

4_4扫描式矩阵键盘设计

姓名:

DUKE

班级:

电子1008班

学号:

10086

成绩:

日期:

2014年1月6日

 

 

摘要

随着21世纪的到来,电子信息行业将是人类社会的高科技行业之一,式设施现代化的基础,也是人类通往科技巅峰的直通路。

电子行业的发展从长远来看很重要,但最主要的还是科技问题。

矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。

是它能准时、实时、高效地显示按键信息,以提高工作效率和资源利用率。

矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,显示在LED数码管上。

单片机控制依据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。

4*4矩阵式键盘采用AT89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用C语言编程。

单片机将检测到的按键信号转换成数字量,显示于LED显示器上。

该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。

 

目录

第一章:

系统功能要求--------------------------------------------------------

1.14*4矩阵式键盘系统概述------------------------------------------------

1.2本设计任务和主要内容---------------------------------------------------

第二章:

方案论证---------------------------------------------------------------

第三章:

系统硬件电路的设计------------------------------------------------

3.1单片机控制系统原理-----------------------------------------------------

3.2原理图绘制说明----------------------------------------------------------

3.3画出流程图----------------------------------------------------------------

3.4原理图绘制---------------------------------------------------------------

第四章:

系统程序的设计------------------------------------------------------

4.1程序的编写步骤-----------------------------------------------------------

4.2编写的源程序--------------------------------------------------------------

第五章:

调试及性能分析------------------------------------------------------

第六章:

心得体会---------------------------------------------------------------

参考文献----------------------------------------------------------------------------

 

第一章:

系统功能要求

1.14*4矩阵式键盘系统概述

AT89C51单片机对4*4矩阵键盘进行动态扫描,当有按键盘的键时,可将相应按键值(0~F)实时显示在数码管上。

由p1.0—p1.3(列)和p1.4—p1.7(行)组成4*4矩阵键盘,p0口接LED静态显示电路。

由于p0口内部无上拉电阻,因此必须外部接上上拉电阻,其值的选择可以根据LED数码管发光电流及其亮度来决定。

通过编写4*4键盘的驱动程序,当有键盘按下时,能够在数码管显示器与按键的键值对应的数字。

0

3

2

1

最常见键盘布局如下图1.1所示。

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

4

5

6

7

8

B

9

A

F

C

D

E

图1.1

1.2本设计任务和主要内容

本论文主要研究单片机控制的键盘识别显示系统,分别对按键信息和显示电路以及软、硬件各个部分进行研究。

主要内容如下:

1.2.1根据矩阵式键盘的特点,进行键盘控制系统的整体研究与设计;

1.2.2熟练掌握protues软件的使用,并能够按要求对设计的电路进行仿真,实现相应的功能;

1.2.3LED实时显示按键的信息;

1.2.4采用软件编程的方法实现按键信息的提取和显示。

第二章:

方案论证

2.1用proteus仿真软件进行仿真

2.1.1按照设计任务在proteus7professional中绘制电路原理图。

2.1.2根据设计任务的要求编写程序,画出程序流程图,并在proteus下进行仿真,实现相应功能。

2.1.3以AT89C51为核心,设计系统硬件电路,并根据所设计的电路制作实物。

 

第三章:

系统硬件电路的设计

3.1原理图绘制说明

3.1.1用AT89C51单片机对4*4矩阵键盘进行动态扫描,当按键盘的键时,可以将相应的按键值(0~F)实时显示在数码管上。

4*4矩阵键盘是用4条I/O线作为行线,4条I/O线作为列线,在行线和列线的交叉点上设置一个按键,每个按键有它的行值和列值。

3.1.2在“单片机系统”区域中,把单片机的P1.0-P1.7端口通过8联拨动拨码开关连接到“4×4行列式键盘”区域的相应端口上。

3.1.3在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-g端口上;要求:

P0.0对应着a,P0.1对应着b,……,P0.6对应着g。

3.2画出流程图

流程开始先对第一列进行扫描,如果没有按键,再对第二列、第三列、第四列分别进行扫描,如果没有返回到开始;如果第一列有按键,分别对第一行、第二行、第三行、第四行进行扫描,若有按键按下分别显示0、1、2、3;第二列、第三列、第四列类似第一列,分别对第一行、第二行、第三行、第四行进行扫描,有按键相应的显示出数值。

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

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

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

综合一二两步的结果,可以确定按键的编号。

但是键闭合一次只能进行一次键功能操作,因此必须等到按键释放后,再进行键功能操作,否则按键一次,有可能会连续多次进行同样的操作。

 

流程图如下:

开始

扫描一行

扫描一列

扫描下一行

扫描下一行

该行该列是否有按键按下

延时去抖

Y

四列全部扫描完?

N

扫描下一行

再次扫描原列

扫描下一行

N

四行全部扫描完?

是否与原值相符?

N

返回表示无键按下

释放按键

YNY

Y

根据行列号求键值

根据键值查询数码显示值表

返回

 

图3.1

3.3原理图绘制

3.3.1打开protrus仿真软件,进入主界面,然后新建一个图纸文件,软件默认为A4纸张,符合我们的要求,所以不需要修改。

3.3.2开始绘图,点击按钮P,弹出选择添加的器件框图,在Keywords里直接输入所需器件的名称或者在Category的下面各个选项里一次查找所需的器件名称,然后点击ok将所需器件添加进去。

3.3.3依次添加AT89C51芯片,共阳极的7段数码管,16个按键,8个电阻R0~R7,一个晶片,3个电容,地及电源。

3.3.4按照设计的要求正确的连接电路,连接时注意管脚的分配及AT89C51的工作原理。

3.3.5对连接好的电路图进行仿真,如果有错误要先按下暂停,然后对电路进一步的调整与修改,再进行仿真,保存原理图文件。

用protrus仿真软件所画的仿真图如下:

图3.2仿真原理图

 

第4章:

系统程序的设计

4.1程序的编写步骤

4.1.1判断是否有键按下;

4.1.2识别被按下的键;

4.1.3查数码显示编码表;

4.2编写的源程序

#include

#defineucharunsignedchar//数据类型的宏定义

#defineuintunsignedint//数据类型的宏定义

sbitP07=P2^1;

Unsigned;chartcode

table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF};

//共阳数码管显示字型码数组10111111"-"

voiddelay1ms(uinti)

{

ucharj;

while(i--)

{

for(j=0;j<115;j++)//1ms基准延时程序

{

;

}

}

}

voiddisplay(unsignedchari)

{

P07=1;//选通最有端的数码管显示

P0=~table[i];//显示i参数传来的字型码

}

voidmain(void)

{

unsignedchartemp;

display(16);//初始显示"-"

while

(1)

{

//P1=0xff;//先向P1口写1;端口读状态

P1=0xf0;

temp=P1;

if(temp!

=0xf0)

{

delay1ms(15);

if(temp!

=0xf0)

{

P1=0xfe;

temp=P1;

switch(temp)

{

case(0xee):

display(0);break;

case(0xde):

display(4);break;

case(0xbe):

display(8);break;

case(0x7e):

display(12);break;

}

P1=0xfd;

temp=P1;

switch(temp)

{

case(0xed):

display

(1);break;

case(0xdd):

display(5);break;

case(0xbd):

display(9);break;

case(0x7d):

display(13);break;

}

P1=0xfb;

temp=P1;

switch(temp)

{

case(0xeb):

display

(2);break;

case(0xdb):

display(6);break;

case(0xbb):

display(10);break;

case(0x7b):

display(14);break;

}

P1=0xf7;

temp=P1;

switch(temp)

{

case(0xe7):

display(3);break;

case(0xd7):

display(7);break;

case(0xb7):

display(11);break;

case(0x77):

display(15);break;

}

}

}

}

}

 

第5章:

调试及性能分析

5.1仿真结果:

将此程序在汇编器中生成的“.hex”文件,导入AT89C51芯片中,用鼠标右键点击AT89C51,然后点鼠标左键,弹出编辑元件的框图,在programfile里添加.hex文件,再点OK。

5.2点击“开始”按键,进行仿真,点击右边4*4按键,则数码管显示0~F,仿真结果符合实验要求,仿真结果如下图所示:

图5.1仿真结果显示图(图中显示4)

5.3系统实现的功能

5.3.1基本功能:

通过键盘输入,在数码管上显示相应的数值;

5.3.2功能优势:

键盘输入,单片机控制,数码管显示,在数码管连接方面克服了共阳极数码管显示不清晰的困难。

 

第6章:

心得体会

课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。

同时,设计让我感触很深。

使我对抽象的理论有了具体的认识。

通过本次电子线路设计,我不仅加深了对单片机理论知识的理解,学会了学以致用的重要性;而且还学会了如何去加强锻炼创新精神,同时也提高了自身的动手能力,让我深刻的意识到理论与实际结合的重要性。

电子线路的学习对于我们专业来说非常的重要,通过本次设计也让我更加清晰了对专业的了解,理论知识再丰富,没有实际的操作经验也是不行的;本次设计也运用到了proteus仿真软件,由于之前没有学过该仿真软件,所以在操作的过程中遇到了很多困难,但庆幸的是通过不断的学习,对proteus软件也有了很大的了解,也学会了一些简单的操作,所以也让我意识到,如果你想学好,通过自己的努力就一定会学好。

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。

 

参考文献:

【1】张朝等;电子线路原理及串口外设接口技术;北京航空航天大学出版社,2008年10月;

【2】曾志海、姜连鑫;电子线路设计原理及应用;北京;机械工业出版社;

【3】刘志刚等;电子线路应用系统设计;北京;机械工业出版社;

【4】赵秋爽、洪绍龙等;电子线路开发基础与经典设计实例;北京;机械工业出版社;

【5】王星寒等;从0开始教你学电子线路;北京;北京航空航天大学出版社;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1