当前位置:文档之家› 扫描式矩阵键盘课程设计

扫描式矩阵键盘课程设计

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

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 编写的源程序-------------------------------------------------------------- 第五章:调试及性能分析------------------------------------------------------

第六章:心得体会---------------------------------------------------------------

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

第一章:系统功能要求

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

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

由p1.0—p1.3(列)和p1.4—p1.7(行)组成4*4矩阵键盘,p0口接LED静态显示电路。由于p0口内部无上拉电阻,因此必须外部接上上拉电阻,其值的选择可以根据LED数码管发光电流及其亮度来决定。

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

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

图1.1

1.2 本设计任务和主要内容

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

主要内容如下:

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

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

应的功能;

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

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

第二章:方案论证

2.1 用proteus 仿真软件进行仿真

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

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读入数据,若有某一列为低电平,则对应行线上有按键按下。

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

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

流程图如下:

图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.1 程序的编写步骤

4.1.1 判断是否有键按下;

4.1.2 识别被按下的键;

4.1.3 查数码显示编码表;

4.2 编写的源程序

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

}

void main(void)

{

unsigned char temp;

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;

第五章:调试及性能分析

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 功能优势:键盘输入,单片机控制,数码管显示,在数码管连接方面克服了共阳极数码管显示不清晰的困难。

第六章:心得体会

课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。

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

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

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。

参考文献:

【1】张朝等;电子线路原理及串口外设接口技术;北京航空航天大学出版社,2008年10月;【2】曾志海、姜连鑫;电子线路设计原理及应用;北京;机械工业出版社;

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

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

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

相关主题
文本预览
相关文档 最新文档