上一篇 | 下一篇

第九章 基本I/O的应用(单片机应用教程之课次二十,电子圈原创)

发布: 2008-5-27 09:17 | 作者: feller | 来源: 本站原创 | 查看: 333次

9.4 矩阵式键盘的扩展

     (1)实训目的

    ◆熟悉矩阵式键盘扫描的基本原理

    ◆学习使用单片机基本I/O口扩展矩阵式键盘的电路设计及编程方法

    (2)功能设计

    用P1口扩展4×4矩阵式键盘,键值分别为0~15,将P1口读入的键值(二进制)送入P2.0~P2.3中显示出来。

    具体要求:4位发光二极管分别代表4位二进制数,“1”代表亮,“0”代表灭。例如,若1号键按下,则发光二极管L1亮,L2~L4灭(0001);若5号键按下,则发光二极管L1和L3亮,L2和L4灭(0101),以此类推。设系统晶振为12MHz。

    (3)背景知识

    矩阵式键盘也称为行列式键盘。行线通过上拉电阻接到VCC电源上,列线上逐列给低电平,如果有键按下,相应的行线就能够接收到低电平,据此就可以判断出相应的键值。采用矩阵式键盘,可以节约系统I/O口线。

    (4)硬件原理与资源分配

    硬件电路如图9-7所示。

    资源分配:R1为输入按键位置的列号,R2为输入按键位置的行号,R7为总扫描列数,R5为列扫描数据,R6为按键的总行数,R3和R4为延时参数。

图9-7 矩阵式键盘电路

     (5)参考程序

      ORG   OOOOH

      AJMP  MAIN

      ORG   0030H

MAIN: MOV   R1,#00H      ;R1为输入按键位置的列号

      MOV   R2,#00H      ;R1为输入按键位置的行号

GN1:  MOV   R7,#04H      ;R7为总扫描列数

      MOV   R5,#OFEH     ;设第一列为低电平

      MOV   A,R5

GN2:  MOV   P1,A         ;送扫描数据

      MOV   A,P1         ;读行线上的信号

      LCALL LOOP1

      MOV   R6,#04       ;检查一列中的各行按键

      SETB  C

      MOV   R2,#00H

GN3:  RLC   A

      JNC   DIS

      INC   R2

      DJNZ  R6,GN3

      MOV   A,R5          ;R5为输入按键位置的列号

      INC   R1

      DJNZ  R7,GN2

DIS:  MOV   A,R1          ;计算键值

      MOV   B,#04H

      MUL   AB            ;键值=(列号×4)+行号

      ADD   A,R2

      CPL   A

      MOV   P2,A

      LJMP  MAIN

LOOP1:MOV   R3,#0FFH

LOOP: MOV   R4,#0FFH

      DJNZ  R4,$

      DJNZ  R3 LOOP

      RET

      END

 

9.5 8279可编程键盘/显示器接口控制试验

    (1)实训目的

◆熟悉可编程专用键盘/显示器接口芯片8279的原理及功能

◆掌握8279芯片的编程方法

    (2)功能设计

    用8279芯片扩展2×8矩阵键盘和8个共阴极LED数码管显示器,16个按键的键值分别为0~F。编程实现的功能为;当有键按下时,用左边第一个LED显示按键的键值,当再有键按下时,显示的键值依次右移。

    (3)背景知识

    8279是Intel公司生产的通用可编程键盘/显示器接口芯片。8270可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号。这样不仅可节省CPU对键盘/显示器的操作时间,而且显示稳定,程序简单,不会出现误动作。

    1)8279的引脚如图9-8所示

 

◆D0~D7:双向、三态数据总线。用与CPU和8279之间数据、命令和状态的传送。

◆CLK:时钟输入线,用于产生内部时钟。

◆RESET:复位输入线,该引脚输入一个高电平以复位8279。其复位状态为:16个字符显示左边输入;编码扫描键盘—双键锁定;时钟系数为31。

◆/RD:读有效输入线,低电平有效。读有效时将数据读出,送外部数据总线。

◆/WR:写有效输入线,低电平有效。写有效时接收外部数据总线上的数据。

图9-8 8279引脚图

◆A0:缓冲器地址输入线。当A0=1时CPU写入8279的数据为命令字,CPU从8279读出的数据为状态字;当A0=0时,CPU读、写的信息均为数据。

◆/CS:片选信号。当为低电平时,CPU才选中8279进行读写。

◆IRQ:中断请求输出线,高电平有效。在键盘工作方式中,当FIFO  RAM缓冲器中存有键盘上闭合键的编码时,IRQ线升高,向CPU请求中断

◆SHIFT:换挡输入线,高电平有效。

◆CNTL/STB:控制/选通输入线,高电平有效。在键盘工作方式时,该输入信号是键盘数据的最高位。在选通输入方式时,该信号的上升沿可把来自RL0~RL7的数据存入FIFO  RAM中。在传感器方式下,该信号无效。

◆RL0~RL7:输入线,它们是键盘矩阵或传感器矩阵的列(或行)信号输入线。作为键输入线,由内部上拉电阻拉成高电平,也可由键盘上按键拉成低电平。

◆SL0~SL3:扫描输出线,用于对键盘显示器扫描。

◆OUTB0~OUTB3:显示段数据输出线。OUTB0~OUTB3和OUTA0~OUTA3可分别作为两个半个字节输出,也可作为8位段数据输出口,此时OUTB0为最低位,OUTA3为最高位。

◆BD:显示消隐输出线,低电平有效。

TAG: 单片机 电子 教程 应用 原创

字号: | 推荐给好友

 

评分:0

我来说两句