单片机课程设计矩阵式键盘识别显示电路的设计_第1页
单片机课程设计矩阵式键盘识别显示电路的设计_第2页
单片机课程设计矩阵式键盘识别显示电路的设计_第3页
单片机课程设计矩阵式键盘识别显示电路的设计_第4页
单片机课程设计矩阵式键盘识别显示电路的设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《单片机原理及应用》课程设计题目:4×4矩阵式键盘与单片机连接与编程专业:测控技术与仪器班级:机电082-1姓名:学号:指导老师:组员:(2023.7.13)目录第1节引言…………21.14*4矩阵式键盘系统概述…………………21.2本设计任务和重要内容……………………3第2节系统重要硬件电路设计……………………42.1单片机控制系统原理………42.2单片机主机系统电路………52.2.1时钟电路……………82.2.2复位电路……………82.2.3矩阵式键盘电路……………………82.3译码显示电路………………9第3节系统软件设计………………133.1软件流程图…………………133.2系统程序设计………………14第4节结束语………………………17参考文献…………18第一节引言矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,即时在LED数码管上。单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,重要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。4*4矩阵式键盘采用89C51单片机为核心,重要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。单片机将检测到的按键信号转换成数字量,显示于LED显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。1.14*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个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。FB73EA62D951C840 图1-1键盘布局随着21世纪的到来,资源危机接踵而至。快速席卷整个国家,这一状况还将随着时间的推移和社会的发展而更加严重。国家提倡资源节约型社会,资源危机已成为全球性的突出问题,运用科技手段缓解这一危机,将是人类重要的出路。电子信息行业是人类社会的高科技行业之一,是设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最重要的还是科技问题。国家设施的现代化的主线出路在于全面提高科技水平,现代的社会经营模式由传统模式向现代化、高科技模式转变,由粗放型向集约型方向转变,必须规定科技有一个大的发展,进行一次新的技术革命。矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有助于资源的节约,减少对操作者自身素质的规定。是它能准确、实时、高效地显示按键信息,以提高工作效率和资源运用率。随着计算机技术和电子科技的迅猛发展,计算机和电子产品的价格日益降低,可靠性日益提高。本文旨在设计一套能对按键信息进行自动实时显示的系统。本设计任务本设计重要研究单片机控制的键盘辨认显示系统,分别对按键信息和显示电路以及软、硬件各个部分进行研究。任务规定:4*4矩阵式键盘与单片机的连接方法用软件法消除按键抖动用两位数码管将按键值显示出来系统重要硬件电路设计2.1单片机控制系统原理图2-1单片机控制系统原理框图2.2单片机主机系统电路AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微解决器,与IntelMCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简朴、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。AT89C51简介AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微解决器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示重要特性:·与MCS-51兼容·4K字节可编程FLASH存储器·寿命:1000写/擦循环·数据保存时间:2023·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定期器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明: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口作为第八位地址接受。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”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接受一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定期目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想严禁ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。此外,该引脚被略微拉高。假如微解决器在外部执行状态ALE严禁,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何规定,但必须保证脉冲的高低电平规定的宽度。图2-2单片机主机系统图2.2.1时钟电路时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚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矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;P1口输出按键信息,在数码管上显示每个按键的“0-F”序号。实际电路图连接如图2-4所示。图2-3矩阵式键盘电路2.3驱动部分74LS48引脚图及功能表74LS48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电路和单片机系统的显示系统中。

<74ls48引脚图>74ls48引脚功能表—七段译码驱动器功能表十进数

或功能输入BI/RBO输出备注LTRBIDCBAabcdefg0HH0000H111111011Hx0001H01100002Hx0010H11011013Hx0011H11110014Hx0100H01100115Hx0101H10110116Hx0110H00111117Hx0111H11100008Hx1000H11111119Hx1001H111001110Hx1010H000110111Hx1011H001100112Hx1100H010001113Hx1101H100101114Hx1110H000111115Hx1111H0000000BIxxxxxxL00000002RBIHL0000L00000003LTLxxxxxH111111142.4译码显示电路译码电路中常用的显示器有LED(数码管)和LCD(液晶显示器)。这两种显示器都具有线路简朴、耗电少、成本低、寿命长等优点。本系统输出结果选用2个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-4LED数码管结构图2-5译码显示电路当无按键闭合时,P1.0--P1.3与P1.4--P1.7之间开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。判断有无按键按下的方法是:第一步,置列线P1.4--P1.7为输入状态,从行线P1.0--P1.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P1.4--P1.7读入数据,若有某一列为低电平,则相应行线上有键按下。综合一二两步的结果,可拟定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有也许会连续多次进行同样的键操作。由于本显示电路功能简朴,为使编程简朴,采用直接输出模式,即把P0.0-P0.7端口用8芯排线连接到数码显示模块区域中的a-h端口上,规定:P0.0相应着a,P0.1相应着b,……,P0.7相应着h。表2-1LED显示段码字型共阳极段共阴极段字型共阳极段共阴极段0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H(本设计所用数码管均为共阴极)7SEG-AN-GRN系统的软件设计软件流程图开始键盘值初始化读列线是否有键按下N延时去抖动Y读列是否有按键按下N根据当前状态辨认按键Y显示键值图3-1软件设计流程图系统程序设计(所用设计语言为C51语言)#include"reg51.h"#include"intrins.h"/************************************************定义数组*************************************************/unsignedcharcodeTable[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15};//0~15;unsignedintnum;unsignedchartemp;voiddelay(unsignedchara){unsignedcharb;for(;a>0;a--)for(b=200;b>0;b--);}voidmain(){while(1){P1=0x7f;temp=P1;temp&=0x0f;if(temp!=0x0f){delay(50);if(temp!=0x0f){switch(temp){case0x07:num=0;break;case0x0b:num=1;break;case0x0d:num=2;break;case0x0e:num=3;break;}}}P1=0xbf;temp=P1;temp&=0x0f;if(temp!=0x0f){delay(50);if(temp!=0x0f){switch(temp){case0x07:num=4;break;case0x0b:num=5;break;case0x0d:num=6;break;case0x0e:num=7;break;}}}P1=0xdf;temp=P1;temp&=0x0f;if(temp!=0x0f){delay(50);if(temp!=0x0f){switch(temp){case0x07:num=8;break;case0x0b:num=9;break;case0x0d:num=10;break;case0x0e:num=11;break;}}}P1=0xef;temp=P1;temp&=0x0f;if(temp!=0x0f){delay(50);if(temp!=0x0f){switch(temp){case0x07:num=12;break;case0x0b:num=13;break;case0x0d:num=14;break;case0x0e:num=15;break;}}}P0=Table[num];}}结束语通过本次的单片机课程设计,我不仅加深了对单片机理论的理解,深刻懂得了要不断地时间才干掌握知识,并且还学会了如何去加强锻炼创新精神,从而不断地战胜自己,超越自己。创新,是要我们将理论很好地联系实际,并不断地去开动自己的脑子,从为先到并做到别人没想到没做到的事,不断地超越别人,超越自己;同时,更重要的是,在这一设计过程中,我懂得了坚持不懈,不容易言弃是每个理工科学子应具有的良好素质。设计过程,也好比是我们的成长的历程,常有一些不如意的事情发生,这就对我们提出了挑战。只要自己坚持,坚持,再坚持,再苦再累也值得。

机遇青睐有准备的人。这个设计过程中,我碰到过许多的考验,给整个设计带来的困扰,但最后还是坚持了下来.回头想想这个设计的过程,我明白了,本来结果并不是那么得重要,我们更应当注重的是过程。系统以单片机AT89C51为核心部件,单片机系统完毕对按键信号辨认、检测、解决、显示等功能,用Proteus软件绘制电路原理图,运用C语言编制程序。这个系统设计能让我们更好地去结识和使用单片机,矩阵式键盘,节约I/O口资源,引脚分派,实时显示,芯片应用,编程实践,尚有诸如此类的优点。参考文献[1]电子工业出版社.单片机设计与应用[M].

[2]谢自美.电子线路设计•实验•测试.:华中科技大学出版社,2023

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

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

[5]廖常初.现场总线概述[J].电工技术,2023仿真图 #include<reg52.h>#defineucharunsignedcharucharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};uchartemp,num;voiddisplay(uchar);voiddelay(uchara

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论