单片机原理及应用:第8章 单片机IO口扩展-键盘与显示器_第1页
单片机原理及应用:第8章 单片机IO口扩展-键盘与显示器_第2页
单片机原理及应用:第8章 单片机IO口扩展-键盘与显示器_第3页
单片机原理及应用:第8章 单片机IO口扩展-键盘与显示器_第4页
单片机原理及应用:第8章 单片机IO口扩展-键盘与显示器_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第8章单片机IO口扩展[按键与显示器扩展]

引言按键扩展显示器扩展按键与显示器扩展引言MCS-51的编址方式I/O口与数据存储器单元同等对待,统一编址。每一接口芯片中的一个功能寄存器(端口)的地址就相当于一个RAM单元,不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强。数据存储器和程序存储器之间是独立编址。引言按键扩展显示器扩展按键与显示器扩展键盘基本知识独立式键盘与应用程序设计矩阵式键盘与应用程序设计按键扩展键盘基本知识键盘实现方式的选择译码方式的选择(硬件)编码键盘(非硬件)编码键盘键盘接口形式的选择独立连接键盘矩阵连接键盘按键扩展键盘实现方式的选择译码方式的选择编码键盘:采用硬件编码电路来实现键的编码,每按下一个键,键盘便能自动产生按键代码。编码键盘主要有BCD码键盘、ASCII码键盘等类型。特点:使用方便,键盘码产生速度快,占用CPU时间少,但对按键的检测与消除抖动干扰是靠硬件电路来完成的,因而硬件电路复杂、成本高。非编码键盘:仅提供按键的通或断状态,按键代码的产生与识别由软件完成。特点:硬件电路简单,成本低,但占用CPU的时间较长。单片机系统中多采用非编码键盘。发展趋势为少量按键配以菜单的方式。按键扩展键盘实现方式的选择按键的基本接口形式独立式:连线简单,适用于按键较少的情况行列式(矩阵式):连线较复杂,适用于按键较多的情况按键扩展键盘基本知识键盘输入应解决的基本问题

按键检测:如何识别有键按下;去抖动:识别被按键与释放键时必须避开抖动状态,只有处在稳定接通或断开状态时,才能保证识别正确无误;

键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在程序存储器中建立了一个键盘编码表,通过查表获得键码。防串键:防串键是为了解决多个键同时按下或者前一键没有释放而又有新键按下时产生的问题;按键扩展键输入的基本处理过程按键扩展按键抖动与按键消抖抖动时间:10ms左右,与按键的机械特性有关。按键抖动按键消抖硬件消抖(利用RS触发器)软件消抖按键扩展按键抖动与按键消抖按键消抖硬件消抖(利用RS触发器)按键扩展按键抖动与按键消抖按键消抖软件消抖按键扩展基本思想:检测到有键按下,键对应的输入线为低,软件延时10ms后,输入线如仍为低,则确认该行有键按下;当键松开时,输入线变高,软件延时10ms后,输入线仍为高,说明按键已松开。按键抖动与按键消抖按键消抖软件消抖(定时)按键扩展利用定时器如何实现软件消抖?定时器定时10ms中断服务程序中定义两个标志,K1和K2第一次检测到按键,置标志K1第二次检测到按键,置标志K2两个标志都置位表示按键检测完毕键盘驱动程序的主要功能监测有无键按下保证可靠性:采取软件消抖不管按键过程持续多长时间,仅执行一次按键功能程序。输出确定的键号(键值)按键扩展

键盘监测方法程序扫描方式

当CPU空闲时,扫描键盘,判断有无键按下。定时扫描方式

利用CPU的定时器,每隔一定时间扫描一次键盘。中断方式

有键按下时产生中断,由中断服务程序来处理。按键扩展

按键的基本接口方法独立式:连线简单,适用于按键较少的情况。行列式(矩阵式):连线较复杂,适用于按键较多的情况。

按键扩展独立式键盘与应用程序设计接口方式查询方式中断方式应用程序设计按键扩展独立式按键检测方法

查询方式:按键扩展KEY:JNBP1.0,PLAY;逐键判别

JNBP1.1,STOPJNBP1.2,PAUSEJNBP1.3,STEPRET;其他情况由此返回PLAY:……;实现播放功能

RETSTOP:……;停止功能

RETPAUSE:……;暂停功能

RETSTEP:……;步进功能

RET独立式按键检测方法

中断方式:在硬件上采用中断,有键按下时,产生中断,由中断服务程序来处理。按键扩展ORG0013HCLREX1;关外部中断1LJMPKEYSCAN….KEYSCAN:JNBP1.0,PLAY;逐按键查询判别

JNBP1.1,STOPJNBP1.2,PAUSEJNBP1.3,STEPSETBEX1;开外部中断1

RETIPLAY:….SETBEX1;开外部中断1

RETISTOP:….SETBEX1;开外部中断1

RETIPAUSE:….

SETBEX1;开外部中断1

RETISTEP:….SETBEX1;开外部中断1

RETI按键扩展键值编码:将按键的输入状态信息转换为对应键值的过程,称为对按键的编码。有8个按键怎么办?如何快速做到识别?按键扩展KCODE: MOV R3,#8;循环8次

MOV R4,#0;初始键值=0 MOV A,P1NEXT: RRCA ;C=ACC.0 JNCFIND

INCR4 ;键值加1

DJNZR3,NEXTFIND: RET

独立式按键的键编码方法按键扩展典型按键应用程序设计按键扩展矩阵式键盘与应用程序设计接口方式工作原理按键扩展矩阵式键盘与应用程序设计接口方式

当要扩展的按键较多时,一般采用行列式非编码键盘。

如扩展4×4键盘,16个按键。行线:四根,接P1.0—P1.3(输出状态)列线:四根,接P1.4—P1.7(输入状态)按键扩展矩阵式键盘与应用程序设计工作原理程序扫描法原理:①

行线(P1.0—P1.3)同时输出低电平,读列线(P1.4—P1.7)的状态,若全为1,则无键按下;若不全为1,则有键按下。

行列32103210P1.3P1.2P1.1P1.0P1.7P1.6P1.5P1.40000111100001110按下的按键可能是谁?S1、S5、S9、S13按键扩展矩阵式键盘与应用程序设计工作原理程序扫描法原理:②

在有键按下的情况下,进一步判断是哪个键按下。

使P1.0—P1.3依次输出低电平,读出P1.4—P1.7的状态。按键位置:1行,0列,“S5”键按键扩展矩阵式键盘与应用程序设计工作原理程序扫描法原理:③依据行号和列号,求取该键的键值NN=行首键号+列号×列增量

行首键号:0,1,2,3(S5)N=1+0×4思考:扩展16个按键至少需要多少根I/O线?按键扩展引言按键扩展显示器扩展按键与显示器扩展显示器分类LED显示器LED显示器接口设计显示器扩展显示器的作用和地位人机对话窗口显示工作状态和参数显示测量结果显示器扩展显示器分类LED(LightEmittingdiode):发光二极管显示器LCD(LiquidcrystalDisplay):液晶显示器CRT(Cathode-rayTube):阴极射线管显示器显示器扩展LED显示器又分有字符型和点阵型显示器扩展LED显示器LED显示器的结构常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。有共阳极和共阴极两种。共阴极共阳极显示器扩展字模(段码)

为使LED显示不同的符号或数字,要为LED的段提供适当的逻辑电平。该组逻辑电平称为段码(或字模)。要显示数字“3”,各段的电平如下:dpgfedcba共阴极01001111共阳极10110000如果a~dp,依次连接P1.0~P1.7,则段码值为:4FH(共阴极),B0H(共阳极)显示器扩展LED段码(8段)显示字符共阴极共阳极03FH(00111111)C0H(11000000)106H(00000110)F9H(11111001)25BH(01011011)A4H(10100100)34FH(01001111)B0H(10110000)466H(01100110)99H(10011001)56DH(01101101)92H(10010010)67DH(01111101)82H(10000010)707H(00000111)F8H(11111000)87FH(01111111)80H(10000000)96FH(01101111)90H(10010000)灭00H(00000000)FFH(11111111)显示器扩展inch0.30.512mm7.6212.525.450.8★公共端(接法):共阴、共阳★亮度:普亮、高亮、超高亮★尺寸(高度):★颜色:红、绿、黄、紫、白LED的种类显示器扩展VF:正向压降IF:正向工作电流主要电气参数参数高亮管普亮管白光LEDVF1.7V-1.8V2.2V-2.5V3.0V-3.6VIF5mA10-20mA

限流电阻的计算显示器扩展LED显示器接口设计静态驱动持续驱动LED显示器的共公端。在显示器工作过程中,系统为每个显示器的公共端都一个有效电平。软件编程简单,但占用I/O口线多,功耗大。软件代码实现:

MOVP1,#0C0H;送‘0’的字模MOVP2,#0F9H;送‘1’的字模显示器扩展LED显示器接口设计多位LED显示驱动段选:控制显示的字型位选:控制该显示位的亮或暗显示驱动方式静态显示控制简单,占用硬件资源多,亮度高,占用软件资源少动态显示控制稍复杂,占用硬件资源少,亮度稍低,占用软件资源多显示器扩展LED显示器接口设计静态显示驱动持续驱动LED显示器的共公端。在显示器工作过程中,系统为每个显示器的公共端都一个有效电平。软件编程简单,但占用I/O口线多,功耗大。软件代码实现:

MOVP1,#0C0H;送‘0’的字模MOVP2,#0F9H;送‘1’的字模显示器扩展LED显示器接口设计动态显示驱动单片机定时扫描显示器,采用分时驱动的方法,轮流控制各个显示器的COM端,使各个显示管轮流点亮。该驱动方式利用了人的视觉暂留现象。动态扫描驱动方式中,显示管分时工作,每次只有一个LED管显示。在轮流点亮扫描过程中,每位显示管的点亮时间是极为短暂的(约1ms)。显示器扩展动态显示6位动态LED显示器电路,各位轮流驱动显示。特点:

硬件连线少,功耗低;

软件复杂,需要不停地扫描。

显示亮度既与导通电流有关,也与点亮时间和间隔有关。所有位的段码线相应段并在一起,由一个8位I/O口控制,形成段码线的多路复用。各位的公共端分别由相应的I/O线控制,形成各位的分时选通。单片机定时扫描显示器件。显示器件分时工作,每次只有一个LED显示。显示器扩展动态显示

硬件实现显示器扩展动态显示

软件实现在LED显示器上显示

“123456”基本思路:1)设置显示缓冲区:7EH-79H(6个单元)2)通过查表法,求取字模。数码管序号543210显示信息123456缓冲区地址7EH7DH7CH7BH7AH79H缓冲区单元内容(非压缩BCD码)01H02H03H04H05H06H对应字模值06H5BH4FH66H6DH7DH显示器扩展动态显示

软件实现基本思路:3)逐位输出位选信号和段码资源分配:R0:显示缓冲区指针,初值为79HR3:扫描位选择器,

初值

温馨提示

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

评论

0/150

提交评论