基于单片机的键盘和LED数码管工作原理_第1页
基于单片机的键盘和LED数码管工作原理_第2页
基于单片机的键盘和LED数码管工作原理_第3页
基于单片机的键盘和LED数码管工作原理_第4页
基于单片机的键盘和LED数码管工作原理_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的键盘和LED数码管工作原理摘要:键盘和显示器是微机最常见的输入输出设备。本文介绍键盘和LED显示器的基本工作原理,并给出在8051基础上的电路结构及C语言代码。关键字:键盘,LED,单片机 键盘是微型计算机系统中最基本、最常见的输入设备。在各种工业过程的计算机控制和监视系统中,广泛应用发光二极管向用户提供提示。由发光二极管可以构成7段/8段LED显示器,用于显示工作状态、参数数值和故障位置。一.键盘的工作原理 键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。(一)键盘的基本介绍1.键盘的功能 键盘接口必须具有4个基本功能:1. 去抖动2. 防串键3

2、. 识别被按键并产生与之对应的键码4. 释放键 而键码产生后如何去实现按键的特定功能,是操作系统和应用程序的任务2.键盘的分类 根据按键开关的排列方式,键盘可分为线性键盘和矩阵键盘。 线性键盘:硬件连接和接口程序都很简单,只适用于按键少的场合,因为线性键盘有多少按键,就需要有多少根连线与微机输入端口相连。 矩阵键盘:将按键排成n行m列,每个按键占据行列的一个交点,需要的外连接线数目是m+n,而容许的最大按键数是m*n,显然可以减少微机接口的连线,是一般微机常采用的键盘结构。3.键盘与单片机的连接方式 矩阵键盘的连接方法有多种。可直接连接于单片机的I/O口线;可利用扩展的并行I/O口连接;也可利

3、用可编程的键盘、显示接口芯片(如8297)进行连接等等。其中,利用扩展的并行I/O口连接方便灵活,在单片机应用系统中比较常用。下图就是通过8255A芯片扩展的并行I/O口连接的矩阵键盘。图 1 微处理器和键盘接口接线示意(二)键盘的工作过程 被按键的识别和键码的产生是键盘接口要解决的主要问题,可以通过软硬结合的方法来解决。通常识别被按键有两种方法:行扫描法和线反转法。 实际微型计算机系统中以行扫描法应用最广,其基本思想是:由程序对键盘进行逐行扫描,通过检测到的列状态来确定闭合键,需要输出端口、输入端口各1个。 下面由以并行接口芯片8255A组成的微机与键盘接口来说明非编码键盘采用行扫描法进行按

4、键识别并产生编码的原理。 设8255的端口地址为:4043H,键盘的行线接在PA0PA3上,列线接在PB0PB3上,接口示意如图1,PA端口定义为输出端口,PB端口定义为输入端口。扫描的步骤如下:(1)快速检查是否有键按下。使PA0PA3输出全为0,读取PB0PB3上数据,只要有一位为0,必定有某键被按下。(2)去抖动。延时20ms左右,等待按键通、断引起的抖动消失,然后再判断具体按下的到底是哪个键。(3)确定被按下的键。从0行开始,顺序逐行扫描,即该行输出0。每扫描一行,读入列线数据,从0列开始,逐列检查,判断是否有输入为0的列,若无,则顺序扫描下一行,并检查各列;若检查到某列线为0,则该行

5、、列交点上的按键为被按下的键。 具体控制程序请见附录1。二.LED数码管显示器的工作原理(一)LED显示器的基本介绍 一般8段LED显示器的内部结构和外部引脚如图2所示。每段都是一个发光二极管,通过点亮不同的字段,可显示09和AF等不同字符。其内部各发光二极管之间的连接方法有共阴极和共阳极两种。如图2所示。图2 LED显示器内部结构(二)LED显示器工作过程 为了达到显示某一波形的目的,需要从接口中输出不同的数码,这些数码称为字形码或段码。采用共阳极接法时,得到低电平信号的引脚对应的段被点亮;采用共阴极接法时,得到高电平信号的引脚对应的段被点亮。所以对于共阴极和共阳极两种不同的接法,为了显示同

6、一个字符,对应的显示段码是不同的。在8段和8位字节数有如下对应关系时,ag分别接数据线D0D5,dp接D7,图3给出了这两种接法的8段LED显示器字符段码表。图3 8段LED显示器字符段码表 比如,为了显示5,采用共阴极接法(1是亮),应该使D7D0=B;采用共阳极接法,D7D0=B。 实际使用的LED数码管LED数码显示器位数较多,为了简化线路,降低成本,对于多位LED数码显示器,通常采用动态扫描显示方法,即逐个地循环点亮各位显示器。这样虽然在任意时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮的效果基本一样(在亮度上有差别)。图4 8段动态LED显示器接口

7、原理三.键盘和显示器与单片机8051 的连接图5 矩阵键盘与8051芯片连接原理图6 LED显示器与8051连接原理附录1:矩阵键盘与数码管显示控制程序排线连接方法:JP8(P1)与JP4(矩阵键盘接口)连接;P0与JP3(静态数码管)连接。矩阵键盘定义:P1.1-P1.4为列线;P1.4-P1.7为行线;程序:#include #include #define uchar unsigned char#define uint unsigned intuchar dis_buf; /显示缓存uchar temp;uchar key; /键顺序吗void delay0(uchar x); /x*0

8、.14MS#define delayNOP(); _nop_();_nop_();_nop_();_nop_();/ 此表为 LED 的字模 0 12 3 4 56 78 9 a b cd e funsigned char code LED7Code = 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71;/*/* */* 延时子程序 */* */*/void delay(uchar x) uchar j; while(x-)!=0) for(j=0;j4)|0xF0); if(temp

9、=1) / p1.4 被拉低 key=0; else if(temp=2) / p1.5 被拉低 key=1; else if(temp=4) / p1.6 被拉低 key=2; else if(temp=8) / p1.7 被拉低 key=3; else key=16; P1=0x0F; /低四位输入 列为高电平 行为低电平 delay(1);temp=P1; /读P1口 temp=temp&0x0F; temp=(temp|0xF0); if(temp=2) / p1.1 被拉低 key=key+0; else if(temp=4) / p1.2 被拉低 key=key+4; else i

10、f(temp=8)/ p1.3 被拉低 key=key+8; else key=16; dis_buf = key; /键值入显示缓存 dis_buf = dis_buf & 0x0f; /*/* */*判断键是否按下 */* */*/ void keydown(void) P1=0xF0;if(P1!=0xF0) /判断按键是否按下 如果按钮按下 会拉低P1其中的一个端口 keyscan(); /调用按键扫描程序 /*/* */* 主程序 */* */*/ main() P0=0xFF; /置P0口 P1=0xFF; /置P1口 delay(10); /延时 while(1) keydown

11、(); /调用按键判断检测程序 P0 = LED7Codedis_buf%16&0x7f; /LED7 0x7f为小数点 共阴和共阳此处也是不一样; %16表示输出16进制 /*/ 附录2:8051单片机引脚功能介绍 8051芯片管脚图单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 电源: VCC - 芯片电源,接+5V; VSS - 接地端; 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。 EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 I/O线 80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 P0口有三个功能:1、外部扩展存储器时,当做数据总线(如图1中的

温馨提示

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

评论

0/150

提交评论