版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 . 单片机原理与应用课程设计 题 目:4×4矩阵式键盘与单片机连接与编程 专 业: 测控技术与仪器 班 级: 机电082-1 姓 名:学 号:指导老师:组 员:( 2011.7 .13)目 录第1节 引 言2 1.1 4*4矩阵式键盘系统概述21.2 本设计任务和主要容3第2节 系统主要硬件电路设计42.1 单片机控制系统原理42.2 单片机主机系统电路5 2.2.1 时钟电路8 2.2.2 复位电路8 2.2.3 矩阵式键盘电路82.3 译码显示电路9第3节 系统软件设计13 3.1 软件流程图133.2 系统程序设计14第4节 结束语17参考文献18第一节 引 言 矩阵式键盘乃
2、是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,即时在LED数码管上。单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术与设备系统的硬件、软件等各个部分进行实现。4*4矩阵式键盘采用89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。单片机将检测到的按键信号转换成数字量,显示于LED显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。1.1 4*4矩阵式键盘识别显示系统概述矩阵式键盘模式以N个端口连接控制N*N个按键,实时在L
3、ED数码管上显示按键信息。显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。矩阵式键盘简介:矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为N*N个。这种行列式键盘结构能有效地
4、提高单片机系统中I/O口的利用率。最常见的键盘布局如图1-1所示。一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。FB73EA62D951C840图1-1 键盘布局随着21世纪的到来,资源危机接踵而至。快速席卷整个国家,这一状况还将随着时间的推移和社会的发展而更加严重。国家提倡资源节约型社会,资源危机已成为全球性的突出问题,利用科技手段缓解这一危机,将是人类主要的出路。 电子信息行业是人类社会的高科技行业之一,是设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最主要的还是科技问题
5、。国家设施的现代化的根本出路在于全面提高科技水平,现代的社会经营模式由传统模式向现代化、高科技模式转变,由粗放型向集约型方向转变,必须要求科技有一个大的发展,进行一次新的技术革命。矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。是它能准确、实时、高效地显示按键信息,以提高工作效率和资源利用率。 随着计算机技术和电子科技的迅猛发展,计算机和电子产品的价格日益降低,可靠性日益提高。本文旨在设计一套能对按键信息进行自动实时显示的系统。1.2 本设计任务1.3 本设计主要研究单片机控制的键盘识别显示系统,分别对按键信息和显示电路以与软、硬
6、件各个部分进行研究。任务要求:1. 4*4矩阵式键盘与单片机的连接方法2. 用软件法消除按键抖动3. 用两位数码管将按键值显示出来第2节 系统主要硬件电路设计2.1 单片机控制系统原理图2-1 单片机控制系统原理框图 22 单片机主机系统电路AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了
7、外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。AT89C51简介AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C
8、51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形与引脚排列如图所示 主要特性:·与MCS-51 兼容 ·4K字节可编程FLASH存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz ·三级程序存储器锁定 ·128×8位部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式
9、3;片振荡器和时钟电路 管脚说明: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口作为第
10、八位地址接收。 P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后
11、,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期
12、的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/
13、PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入与部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片振荡器。石晶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。
14、有余输入至部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 图2-2 单片机主机系统图2.2.1时钟电路时钟信号用来提供单片机片各种微操作的时间基准,时钟信号通常用两种电路形式得到:部振荡和外部振荡。MCS-51单片机部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图 2-2所示在其外接晶体振荡器(简称晶振)或瓷谐振器就构成了部振荡方式,片高增益反向放大器与作为反馈元件的片外石英晶体或瓷谐振器一起可构成一
15、个自激振荡器并产生振荡时钟脉冲。图2-2中外接晶体以与电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz 。2.2.2复位电路 为了初始化单片机部的某些特殊功能寄存器,必须利用复位电路,复位后可使CPU与系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF置为不定
16、值,其余的寄存器全部清0,部RAM的状态不受复位的影响,在系统上电时RAM的容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。图2-2中R1和Cl组成上电复位电路,其值R取为1K, C取为10pF。2.2.3 矩阵式键盘电路 AT89C51单片机的并行口P1接4×4矩阵键盘,以P1.0P1.3作输入线,以P1.4P1.7作输出线;P1口输出按键信息,在数码管上显示每个按键的“0F”序号。实际电路图连接如图2-4所示。图2-3 矩阵式键盘电路2.3驱动部分74LS48引脚图与功能表 74LS48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电
17、路和单片机系统的显示系统中。<74ls48引脚图>74ls48引脚功能表七段译码驱动器功能表十进数或功能输入BI/RBO输出备注 LTRBID C B A abcdefg0HH0 0 0 0H111111011Hx0 0 0 1H01100002Hx0 0 1 0H11011013Hx0 0 1 1H11110014Hx0 1 0 0H01100115Hx0 1 0 1H10110116Hx0 1 1 0H00111117Hx0 1 1 1H11100008Hx1 0 0 0H11111119Hx1 0 0 1H111001110Hx1 0 1 0H000110111Hx1 0 1
18、 1H001100112Hx1 1 0 0H010001113Hx1 1 0 1H100101114Hx1 1 1 0H000111115Hx1 1 1 1H0000000BIxxx x x xL00000002RBIHL0 0 0 0L00000003LTLxx x x xH111111142.4译码显示电路译码电路中常用的显示器有LED(数码管)和LCD(液晶显示器)。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点。本系统输出结果选用2个LED显示。数码管有共阴共阳之分,本系统采用8段共阴型LED,其原理图如图2-5所示。数码管部有8个发光二极管,公共端由8个发光二极管的阴极并接
19、而成,正常显示时公共端接低电平(GND),各发光二极管是否点亮取决于a-dp各引脚上是否是高电平。 LED数码管的外形结构如图2-4,外部有10个引脚,其中3, 8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字(0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。由于系统要显示的容比较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。如图3-1所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成
20、,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。符号和引脚 共阳极 共阴极图2-4 LED数码管结构图2-5 译码显示电路当无按键闭合时,P1.0-P1.3与P1.4-P1.7之间开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。判断有无按键按下的方法是:第一步,置列线P1.4-P1.7为输入状态,从行线P1.0-P1.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P1.4-P1.7读入数据,若有某一列为低电平,则对应行线上有
21、键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。由于本显示电路功能简单,为使编程简单,采用直接输出模式,即把P0.0P0.7端口用8芯排线连接到数码显示模块区域中的ah端口上,要求:P0.0对应着a,P0.1对应着b,P0.7对应着h。表2-1 LED显示段码字型共阳极段共阴极段字型共阳极段共阴极段0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7
22、DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H(本设计所用数码管均为共阴极) 7SEG-AN-GRN第3节 系统的软件设计3.1 软件流程图开始键盘值初始化读列线是否有键按下 N延时去抖动 Y读列是否有按键按下 N根据当前状态识别按键 Y 显示键值图3-1 软件设计流程图32 系统程序设计 (所用设计语言为C51语言)#include "reg51.h"#include "intrins.h"/* 定义数组*/ unsigned char code Table =0x00,0x01,0x02,0x03,0x04,0x05,0
23、x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15; /015; unsigned int num; unsigned char temp; void delay(unsigned char a) unsigned char b; for(;a>0;a-) for(b=200;b>0;b-);void main() while(1) P1=0x7f; temp=P1; temp&=0x0f; if(temp!=0x0f) delay(50); if(temp!=0x0f) switch(temp) case 0x07: num=
24、0; break; case 0x0b: num=1; break; case 0x0d: num=2; break; case 0x0e: num=3; break; P1=0xbf; temp=P1; temp&=0x0f; if(temp!=0x0f) delay(50); if(temp!=0x0f) switch(temp) case 0x07: num=4; break; case 0x0b: num=5; break; case 0x0d: num=6; break; case 0x0e: num=7; break; P1=0xdf; temp=P1; temp&
25、=0x0f; if(temp!=0x0f) delay(50); if(temp!=0x0f) switch(temp) case 0x07: num=8; break; case 0x0b: num=9; break; case 0x0d: num=10; break; case 0x0e: num=11; break; P1=0xef; temp=P1; temp&=0x0f; if(temp!=0x0f) delay(50); if(temp!=0x0f) switch(temp) case 0x07: num=12; break; case 0x0b: num=13; brea
26、k; case 0x0d: num=14; break; case 0x0e: num=15; break; P0=Tablenum; 结 束 语 通过此次的单片机课程设计,我不仅加深了对单片机理论的理解,深刻懂得了要不断地时间才能掌握知识,而且还学会了如何去加强锻炼创新精神,从而不断地战胜自己,超越自己。创新,是要我们将理论很好地联系实际,并不断地去开动自己的脑子,从为先到并做到别人没想到没做到的事,不断地超越别人,超越自己;同时,更重要的是,在这一设计过程中,我懂得了坚持不懈,不轻易言弃是每个理工科学子应具备的良好素质。设计过程,也好比是我们的成长的历程,常有一些不如意的事情发生,这就对我
27、们提出了挑战。只要自己坚持,坚持,再坚持,再苦再累也值得。 机遇青睐有准备的人。这个设计过程中,我遇到过许多的考验,给整个设计带来的困扰,但最后还是坚持了下来.回头想想这个设计的过程,我明白了,原来结果并不是那么得重要,我们更应该注重的是过程。 系统以单片机AT89C51为核心部件,单片机系统完成对按键信号识别、检测、处理、显示等功能,用Proteus软件绘制电路原理图,利用C语言编制程序。这个系统设计能让我们更好地去认识和使用单片机,矩阵式键盘,节约I/O口资源,引脚分配,实时显示,芯片应用,编程实践,还有诸如此类的优点。参考文献1 电子工业 . 单片机设计与应用M.2自美.电子线路设计实验
28、测试.:华中科技大学,20083小忠.单片机实用接口技术子程序.人民邮电,20054阎石.数字电子技术基础(第三版). :高等教育,20035廖常初.现场总线概述J.电工技术,2001仿真图#include<reg52.h>#define uchar unsigned char uchar code table=0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xC6,0xA1,0x86,0x8E;uchar temp,num;void display(uchar);void delay(uchar a) uchar b; for(;a>0;a-) for(b=200;b>0;b-);void main() while(1) P2=0x7f; temp=P2; temp&=0x0f; if(temp!=0x0f) d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45088-2024林木采伐技术规程
- 2024年物流园区入驻服务合同范本参考3篇
- 酒吧KTV音响系统设备合约
- 医疗卫生研究专项资金管理办法
- 商业综合体装修合同样本
- 机场周边房产买卖附加协议
- 药品处方滥用防控措施
- 2025版绿色环保市场摊位租赁服务协议3篇
- 水利工程招投标流程详解
- 金融区车辆通行办法
- TCECA-G 0171-2022 零碳工厂评价规范
- 幼儿园教学课件——我是哥哥姐姐
- ppt模板:青团团委团课动态ppt模板课件
- 国内异形盾构机分析课件
- 唤醒孩子内驱力家校共育家庭教育PPT课件(带内容)
- 合成气精脱硫催化剂的研究报告
- 滚装客船货物的积载绑扎系固分解课件
- 市政项目吊装施工方案
- 中控楼装饰装修方案
- 新供应商开发流程图
- 学校及周边环境集中整治工作台帐
评论
0/150
提交评论