1、单片机课程设计说明书 华北水利水电学院 单片机原理及应用期末课程设计 题 目:44矩阵式键盘识别显示电路的设计 专 业: 机械设计制造及其自动化 班 级: 机械xxx班 姓 名: xsxxx 学 号: 指导老师: 雷冀南 成 绩: 第1节 引 言2 1.1 4*4矩阵式键盘系统概述 21.2 本设计任务和主要内容3第2节 系统主要硬件电路设计42.1 单片机控制系统原理42.2 单片机主机系统电路5 2.2.1 时钟电路5 2.2.2 复位电路6 2.2.3 矩阵式键盘电路7第3节 系统软件设计10 3.1 软件流程图114 、系统工作原理图 115. 系统仿真和模拟116. 结束语.11第4
2、节 附录12 4.1系统工作截图12 4.2 系统程序 13第五节 参考文献144*4矩阵式键盘识别显示电路的设计第一节 引 言 矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,即时显示在LED数码管上。单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。4*4矩阵式键盘采用AT89c51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。单片机将检测到的按键信号转换成数字量,显示于数码管显示器上。该系
3、统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。1.1 4*4矩阵式键盘识别显示系统概述矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。矩阵式键盘简介:矩阵式键盘又称行列键盘,它是用
4、N条I/O线作为行线,N条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为N*N个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。最常见的键盘布局如图1-1所示。一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。图1-1 键盘布局 随着21世纪的到来,资源危机接踵而至。快速席卷整个国家,这一状况还将随着时间的推移和社会的发展而更加严重。国家提倡资源节约型社会,资源危机已成为全球性的突出问题,利用科技手段缓解这一危机,将是人类主要的出路。 电子信息行业是人类社
5、会的高科技行业之一,是设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最主要的还是科技问题。国家设施的现代化的根本出路在于全面提高科技水平,现代的社会经营模式由传统模式向现代化、高科技模式转变,由粗放型向集约型方向转变,必须要求科技有一个大的发展,进行一次新的技术革命。矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。是它能准确、实时、高效地显示按键信息,以提高工作效率和资源利用率。 随着计算机技术和电子科技的迅猛发展,计算机和电子产品的价格日益降低,可靠性日益提高。本文旨在设计一套能对按键信息进行
6、自动实时显示的系统。1.2 本设计任务和主要内容1课程设计的目的 单片机应用基础课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。2课程设计任务根据给定的任务要求选择合适的单片机和其他电子元器件,进行系统硬件电路设计和软件编程,根据系统制作并调试系统电路板,使之实现任务要求。有关参数选择要求符合国家标准。具体设计内容如下:模拟步进
7、电机、模拟交通灯模块、模拟键盘输入及显示模块。设计系统工作原理图,利用PROTEUS软件绘制系统工作原理图;系统控制程序设计、调试及实现:(1)根据要求,写出完整的程序流程图;(2)将设计程序输入、汇编,排除语法错误,生成*.OBJ文件;(3)按所设计的原理图,在实验平台上连线,检查无误;2.1 单片机控制系统原理图2-1 单片机控制系统原理框图 22 单片机主机系统电路AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位
8、CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。图2-2 单片机主机系统图2.2.1时钟电路 时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图2-2所示在其外接晶体振荡器(简称
9、晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。 图2-2中外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz 。2.2.2复位电路 为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。 单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片
10、机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。图2-2中R1和Cl组成上电复位电路,其值R取为1K, C取为10pF。2.2.3 矩阵式键盘电路 AT89C51单片机的并行口P1接44矩阵键盘,以P1.0P1.3作输入线,以P1.4P1.7作输出线;P1口输出按键信息,在数码管上显示每个按键的“0F”序号。实际电路图连接如图2-4所示。图2-3 矩阵式键盘电
11、路2.3 译码显示电路译码电路中常用的显示器有LED(数码管)和LCD(液晶显示器)。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点。本系统输出结果选用1个LED显示。数码管有共阴共阳之分,本系统采用8段共阴型LED,其原理图如图2-5所示。数码管内部有8个发光二极管,公共端由8个发光二极管的阴极并接而成,正常显示时公共端接低电平(GND),各发光二极管是否点亮取决于a-dp各引脚上是否是高电平。 LED数码管的外形结构如图2-4,外部有10个引脚,其中3, 8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字(0-9中的一个)必须在这个数码管的段选端加上与
12、数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。如图3-1所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。 符号和引脚 共阳极 共阴极图2-4 LED数码管结构当无按键闭合时,P1.0-P1.3与P1.4-P1.7之间开路。当有键闭合时,
13、与闭合键相连的两条I/O口线之间短路。判断有无按键按下的方法是:第一步,置列线P1.4-P1.7为输入状态,从行线P1.0-P1.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P1.4-P1.7读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。由于本显示电路功能简单,为使编程简单,采用直接输出模式,即把P0.0P0.7端口用8芯排线连接到数码显示模块区域中的ah端口上,要求:P
14、0.0对应着a,P0.1对应着b,P0.7对应着h。表2-1 LED显示段码字型共阳极段共阴极段字型共阳极段共阴极段0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H第3节 系统的软件设计3.1 软件流程图 键盘扫描流程图 八位4段数管动态显示 4、 绘制工作原理图根据总体设计要求,确定系统扩展与功能接口,设计出系统的电路原理图,并用PROTEUS软件绘制,然后进行模拟仿真。5、 系统仿真和调
15、试根据系统电路原理图,在Lab2000单片机仿真实验系统上正确连线,并使用WAVE软件进行软件仿真和硬件仿真,验证电机控制是否符合要求。6、结 束 语 通过此次的单片机课程设计,我不仅加深了对单片机理论的理解,深刻懂得了要不断地时间才能掌握知识,而且还学会了如何去加强锻炼创新精神,从而不断地战胜自己,超越自己。创新,是要我们将理论很好地联系实际,并不断地去开动自己的脑子,从为先到并做到别人没想到没做到的事,不断地超越别人,超越自己;同时,更重要的是,在这一设计过程中,我懂得了坚持不懈,不轻易言弃是每个理工科学子应具备的良好素质。设计过程,也好比是我们的成长的历程,常有一些不如意的事情发生,这就
16、对我们提出了挑战。只要自己坚持,坚持,再坚持,再苦再累也值得。 机遇青睐有准备的人。这个设计过程中,我遇到过许多的考验,给整个设计带来的困扰,真想要就此放弃,然而,我还是挺了过来,回头想想这个设计的过程,我明白了,原来结果并不是那么得重要,我们更应该注重的是过程。 系统以单片机AT89C51为核心部件,单片机系统完成对按键信号识别、检测、处理、显示等功能,用Protel软件绘制电路原理图,利用MCS-51汇编语言编制程序。这个系统设计能让我们更好地去认识和使用单片机,矩阵式键盘,节约I/O口资源,引脚分配,实时显示,芯片应用,编程实践,还有诸如此类的优点。然而由于时间有点紧张,本来想设计一个数
17、码管动态扫描电路,或者用液晶屏显示的电路来显示按键信息,这样更加清晰,而且还可以显示其他的东西,比如时间,排序等等。 7、 附录7.1程序工作截图7.2程序#include#include#define uint unsigned int#define uchar unsigned charint flag,j;uchar a=0x7e,0x7d,0x7b,0x77,0xbe,0xbd,0xbb,0xb7, 0xde,0xdd,0xdb,0xd7,0xee,0xed,0xeb,0xe7; /*反转法键盘对应的码值表*/Ucharm=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0
18、x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /*7段码LED显示数字对应的码值表*/void delay(uint k) /*延时子程序*/ uchar i; while(k-) for(i=0;i100;i+); void main() int w,g; uchar i,s5=0x00,0x00,0x00,0x00,0x00,f=0xff,0xfe,0xfd,0xfb,0xf7,n; /*存放P0,P2口数据的缓冲数组*/ for(i=0;i+) /* 等待键按下*/ P1=0xf0; if(P1&0xf0)!=0xf0) break;
19、 while(1) /*主循环*/ uchar h,y; P1=0xf0; if(P1&0xf0)!=0xf0) /*有键按下*/ delay(10); /*延时去手抖*/ if(P1&0xf0)!=0xf0) /*反转法求码值*/ flag=1; P1=0xf0; y=P1; P1=0x0f; h=P1; h=h|y; for(j=0;j16;j+) /*查询键号*/ if(h=aj) break; n=j; if(flag=1) /*判断是否有键输入*/ for(i=1;i4;i+) /*始终将刚输入的7段码值存在最高位*/ si=si+1; s4=mn; P1=0xf0; for(w=0;w+) /*循环显示各LED*/ for(i=1;i5;i+) P0=si; P2=fi; delay(10); P2=0xff; P1=0xf0; if(P1&0xf0)=0xf0) break; /*判断按键是否松开*/ if(flag=0) break; flag=0; 7.3参考文献1 电子工业出版社 . 单片机设计与应用M.2 谢自美.电子线路设计实验测试.:华中科技大学出版社,20083 陈小忠.单片机实用接口技术子程序.人民邮电出版社,20054 阎石.数字电子技术基础(第三版). 北京:高等教育出版社,20035 廖常初.现场总线概述J.电工技术,2001
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1