⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8279键盘.htm

📁 8279键盘控制程序。作为一般的外设
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>8279键盘</title>
</head>

<body>

<p><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font size="5">8279键盘、显示接口芯片</font></b></p>      
<p><b>序号:</b>6-10<br>      
<b>生产厂家:</b>Intel公司<br>      
<b>特性:</b>Intel8279芯片是一种通用的可编程序的键盘、显示接口器件,单个芯片就能完成键盘输入和LED<br>      
显示控制两种功能。其内部结构如图6-10-1所示。8279包括键盘输入和显示输出两个部分。<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 键盘部分提供的扫描方式,可以和64个按键或传感器的阵列相连。能自动消除开关抖动以及N个键<br>      
同时按下的保护。<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       
显示部分按扫描的方式工作。可以显示8或16位LED显示块。<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一、8279电路工作原理<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       
根据结构框图,分别介绍各部分电路工作原理。<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.I/O控制及数据缓冲器<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       
数据缓冲器是双向缓冲器,连接内、外总线,用于传送CPU和8279之间的命令或数据;I/O控制线是<br>      
CPU对8279进行控制的引线。<span style="text-decoration: overline">CS</span>是8279的片选信号,<span style="text-decoration: overline">CS</span>=0时,8279才被允许读出或写入信息。<span style="text-decoration: overline">WR</span>、<span style="text-decoration: overline">RD</span>为来自<br>      
CPU的控制信号。<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A<font size="1">0</font>用于区别信息特性:A<font size="1">0</font>=1时,表示数据缓冲器输入为指令、输出为状态字;A=0时,输入、输出皆为数据。<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.控制与定时寄存器及定时控制<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       
控制与定时寄存器用来寄存键盘及显示的工作方式,以及由CPU编程的其它操作方式。这些寄存器一旦接受并锁存送来的命令,就通过译码产生相应的信号,从而完成相应的控制功能。<br>      
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       
定时控制包含基本记数键。首级计数器是一个可编程的N级计数器。N可以2~31之间由软件编程,以便<br>      
从外界时钟CLK分频得到内部所需要的100KHZ时钟。然后再经过分频为键盘扫描提供适当的逐行扫描频率和显示扫描时间。<br>      
&nbsp;&nbsp;&nbsp;&nbsp; 3.扫描计数器<br>   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 扫描计数器有两种工作方式。按编码方式工作时,计数器作二进制记数。4位记数状态从扫描线SL<font size="1">0</font>~SL<font size="1">3</font><br>   
输出,经外部译码器译码后,为键盘和显示器提供扫描线;按译码方式工作时,扫描计数器的最低二位被译码后,从SL<font size="1">0</font>~SL<font size="1">3</font>输出。因此,SL<font size="1">0</font>~SL<font size="1">3</font>提供了4中取1的扫描译码。<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 4.回复缓冲器、键盘去抖及控制<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 来自RL0~RL3的8根回复线的回复信号,由回复缓冲器缓冲并锁存。<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 在键盘工作方式中,回复线作为行列式键盘的行列输入线。在逐行列输入时,在逐行列扫描时,回复线用来搜索每一行列中闭合的键。当某一键闭合时,去抖电路被置位,延时等待10ms后,再检验该键是否继续闭和,并将该键的地址和附加的移位、控制状态一起形成键盘数据被送入8279内部FIFO(先进先出)存储器。键盘数据格式如下:<br>   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;     
D<font size="1">7 &nbsp; </font>D<font size="1">6 &nbsp; </font>D<font size="1">5    
&nbsp; </font>D<font size="1">4 &nbsp; </font>D<font size="1">3 &nbsp; </font>D<font size="1">2    
&nbsp; </font>D<font size="1">1 &nbsp; </font>D<font size="1">0</font></p>   
   
<div align="center">   
  <center>   
  <table border="1" cellpadding="0" cellspacing="0" width="238">   
    <tr>   
      <td width="59">控制</td>   
      <td width="59">移位</td>   
      <td width="59">扫描</td>   
      <td width="59">回复</td>   
    </tr>   
  </table>   
  </center>   
</div>   
<p>&nbsp;&nbsp;&nbsp;&nbsp; 控制和移位(D<font size="1">6、</font>D<font size="1">7</font>)的状态由两个独立的附加开关决定,而扫描(D<font size="1">5、</font>D<font size="1">4、</font>D<font size="1">3</font>)和回复(D<font size="1">2、</font>D<font size="1">1、</font>D<font size="1">0</font>)则是被按键置位的数据。D<font size="1">5、</font>D<font size="1">4、</font>D<font size="1">3</font>来自动扫描计数器,是按下键的行列编码,而(D<font size="1">7</font>D<font size="1">7</font>D<font size="1">7</font>)则来自行/列计数器,它们是根据回复信号而确定的行/列编码。<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 在传感器开关状态矩阵方式中,回复线的内容直接被送往和相应的传感器RAM(即FIFO存储器)。<br>   
在选通输入方式中,回复线的内容在CNTL/STB线的脉冲上升沿被送入FIFO存储器。<br>   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.FIFO/传感器及其状态寄存器<br>   
FIFO/传感器RAM是一个双重功能的8×8RAM。<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 在键盘或选通方式工作时,它是FIFO存储器,其输入或读出遵循先入先出的原则。FIFO状态寄存器用于存放FIFO的工作状态。例如,RAM是满还是空;其中存有多少数据;是否操作出错等。当FIFO存储器不空,状态逻辑将产生IRQ=1信号向CPU申请中断。<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 在传感器矩阵方式工作时,这个存储器以是传感器不是存储器。它存放着传感器矩阵中的每一个传感器状态。在此方式中,若检索出传感器的变化,IRQ信号变为高电平,向CPU申请中断。<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 6.显示RAM和显示地址寄存器<br>   
&nbsp;&nbsp;&nbsp; 显示RAM用来存储显示数据。容量为16×8位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分别为A、B两组,OUTA<font size="1">0~3</font>和OUTB<font size="1">0~3</font>可以单独送数,也可以组成一个8位的字。显示寄存器的输出与显示扫描配合,不断从显示RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。<br>  
&nbsp;&nbsp;&nbsp; 显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读写或写入之后自动递减。<br>  
&nbsp;&nbsp;&nbsp; 二.管脚、引线与功能<br>  
&nbsp;&nbsp;&nbsp; 8279采用40引脚封装,其管脚、引线功能如图6-10-2所示。其引脚功能如下:<br>  
&nbsp;&nbsp;&nbsp;&nbsp; D<font size="1">0</font>~D<font size="1">7</font>(数据总线):双向、三态总线,和系统数据总线相连;用于CPU和8279间的数据/命令传递。<br>  
&nbsp; &nbsp;&nbsp; CLK(系统时钟):输入线,为8279提供内部时钟的输入端。<br>  
&nbsp; RESET(复位):输入线,当RESET=1时,8279复位,其复位状态为:<br>  
&nbsp;&nbsp;&nbsp; 16个字符显示;<br>   
&nbsp;&nbsp;&nbsp; 编码扫描键盘--双键锁定;<br>  
&nbsp; 程序时钟编码为31。<br>  
&nbsp; &nbsp; <span style="text-decoration: overline">CS</span>(片选):输入线,当<span style="text-decoration: overline">CS</span>=0时8279被选中,允许CPU对其读、写,否则被禁止。<br>   
&nbsp; &nbsp; A<font size="1">0</font>(数据选择):输入线。当A<font size="1">0</font>=1时CPU写入数据为命令字,读出数据为状态字;A<font size="1">0</font>=0时CPU读、写的字节均为数据。<br>   
&nbsp;&nbsp;&nbsp; <span style="text-decoration: overline">RD</span>、<span style="text-decoration: overline">WR</span>(读、写信号):输入线。低电平有效,来自CPU的控制信号,控制8279的读、写操作。<br>   
&nbsp;&nbsp;&nbsp; IRQ(中断请求):输出线。高电平有效。<br>  
&nbsp;&nbsp;&nbsp; 在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据,则IRQ再次恢复高电平。<br>  
&nbsp;&nbsp;&nbsp; 在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。<br>  
&nbsp;&nbsp;&nbsp; SL<font size="1">0</font>~SL<font size="1">3</font>(扫描线):输出线。用来扫描键盘和显示器。它们可以编程设定为编码(4中取1)或译码输出(16取1)。   
<br>  
<font size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>RL<font size="1">0</font>~RL<font size="1">7</font>(回复线):输入线。它们是键盘矩阵或传感矩阵的列(或行)信号输入线。<br>   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHIFT(移位信号):输入线、高电平有效。该输入信号是键盘数据的最高位(D7),通常用来扩充键开关的功能,作为控制功能键用。<br>  
&nbsp;&nbsp;&nbsp;&nbsp; 在选通输入方式时,该信号的上升沿可将来自<font size="1"></font>RL<font size="1">0</font>~RL<font size="1">7</font>的数据存入FIFO    
RAM中。<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 在传感器输入下,该信号无效。<br>  
&nbsp;&nbsp;&nbsp;&nbsp; OUTA<font size="1">0</font>~OUTA<font size="1">3(</font>A组显示信号):输出线。<br>  
&nbsp;&nbsp;&nbsp;&nbsp; OUTB<font size="1">0</font>~OUTB<font size="1">3(</font>B组显示信号):输出线。<br>  
&nbsp;&nbsp;&nbsp;&nbsp; 这两组引线都是显示数据输出线,与多位数字显示的扫描线SL<font size="1">0</font>~SL<font size="1">3</font>同步,两组可以独立使用,也可以合并使用。<br>  
&nbsp;&nbsp;&nbsp;&nbsp; <span style="text-decoration: overline">BD</span>(显示消隐):输出线。低电平有效。该信号在数字切换显示或使用消隐命令时,将显示消隐。<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 三、命令格式与命令字<br>  
&nbsp;&nbsp;&nbsp;&nbsp; 8279的操作方式是通过CPU对8279送入命令时来实现编程的。当数据选择端A<font size="1">0</font>置1时,CPU对8279写入数据为命令字,读出的数据为状态字。<br>  
&nbsp;&nbsp;&nbsp;&nbsp; 8279共有八条命令。其功能及命令字定义分述如下。<br>  
&nbsp;&nbsp;&nbsp; 1.键盘/显示方式设置命令字<br>  
&nbsp;&nbsp;&nbsp; 命令格式:</p>  
  
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    
&nbsp;&nbsp; D<font size="1">7 &nbsp; </font>D<font size="1">6 &nbsp; </font>D<font size="1">5    
&nbsp; </font>D<font size="1">4 &nbsp; </font>D<font size="1">3 &nbsp; </font>D<font size="1">2    
&nbsp; </font>D<font size="1">1 &nbsp; </font>D<font size="1">0</font></p>   
   
<div align="center">   
  <center>   
  <table border="1" cellpadding="0" cellspacing="0" width="200">   
    <tr>   
      <td width="24">0</td>   
      <td width="24">0</td>   
      <td width="25">0</td>   
      <td width="25">D</td>   
      <td width="25">D</td>   
      <td width="25">K</td>   
      <td width="25">K</td>   
      <td width="25">K</td>   
    </tr>   
  </table>   
  </center>   
</div>   
<p>&nbsp;&nbsp;&nbsp; 其中:<br>  
&nbsp;&nbsp;&nbsp; D<font size="1">7、</font>D<font size="1">6、</font>D<font size="1">5</font>=000方式设置命令特征位。<br>  
&nbsp;&nbsp;&nbsp; D&nbsp; D(D<font size="1">4、</font>D<font size="1">3</font>):来设定显示方式,其定义如下:<br>   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    
00:8个字符显示,左入口<br>   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    
00:16个字符显示,左入口<br>   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    
00:8个字符显示,右入口<br>   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    
00:16个字符显示,右入口<br>   
&nbsp;&nbsp;&nbsp;&nbsp; 所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;   
所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动。<br>  
&nbsp;&nbsp;&nbsp; KKK(D<font size="1">2、 </font>D<font size="1">1、 </font>D<font size="1">0</font>):用来设定七种键盘、显示工作方式:<br> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   
000&nbsp; 编码扫描键盘,双键锁定&nbsp;<br>  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   
001&nbsp; 译码扫描键盘,双键锁定&nbsp;<br>  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   
010&nbsp; 编码扫描键盘,N键轮回<br>  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   
011&nbsp; 译码扫描键盘,N键轮回<br>  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   
100&nbsp; 编码扫描传感器矩阵<br>  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -