您当前的位置:五五电子网电子知识电子制作电脑-IT数码-外设用单片机设计制作的PS/2标准键盘接口 正文
用单片机设计制作的PS/2标准键盘接口

用单片机设计制作的PS/2标准键盘接口

点击数:7284 次   录入时间:03-04 11:49:09   整理:http://www.55dianzi.com   电脑-IT数码-外设
  每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1。键盘到系统通信时,系统总在时钟下降沿读入数据线状态。
  
  (3)数据处理程序设计
  
  数据处理程序对接收到的来自键盘的数据进行处理,这些数据可以是回应命令或者扫描码,因此需要有合理的判断和处理。
  
  回应命令一共有8条,最常用的是AcknowLEDge(HexValue:FA),对于扫描码,根据其字节长度可分为以下几类:
  
  第一类扫描码,通码为1字节,断码为“OxFO+通码形式”。如A键,其通码为1C,断码为“FO1C”。
  
  第二类扫描码,通码为2字节“EO+XX”形式,断码为“EO+FO+XX”形式。
  
  如rightCTRl键,其通码为“EO14”,断码为“EOFO14”。
  
  第三类特殊扫描码,有两个,printscreen键通码为“EO12EO7C”,断码为“EOFO7CEOFO12”;pause键通码为“E11477E1FO14FO77”,断码为空。
  
  组合按键的扫描码序列则是按照按键发生的次序构成的。如左Ctrl键的通码为14,断码为FO14,C键的通码为21,断码为FO21,若以下面顺序按左Ctrl+C键:(1)接下左Ctrl键,(2)接下C键,(3)释放C键,(4)释放左Ctrl键,那么计算机接收到的一串数据为“1421FO21FO14”。
  
  数据处理模块的程序流程如下图所示。

数据处理模块的程序流程

  在驱动程序中应声明numlock、capslock、scrolllock、SHIFT、ALT、CTRL(L/R)、GUI(L/R)键的标志变量为全局变量,还要建立一个数组SCAN_data用于存放扫描码序列,还要建立EO_FLAG、E1_FLAG、FO_FLAG三个标志变量用于数据处理程序模块内部做分支选择,以及一个keypress_fl标志变量用于标示键的状态。该部分功能由AT89S52完成。
  
  从上图可以看出,数据分为回应命令、PAUSE键、PRINTSCREEN键、第二类扫描码、第一类扫描码五个分支块来处理,而后面的三个分支块都内含一个相同的程序流程结构,如下图所示。该流程结构用于将扫描码细化到通码和断码分开处理。


  
  该设计方法保证了第二类扫描码和PRJNTSCREEN键的断码有独立的处理过程,在开发驱动程序时忽略这个步骤。
  
  (4)键盘扫描码转换程序设计
  
  将扫描码转换成ASCII码需要建立一张完备的对照表。该部分的设计需要考虑键接下与放开的状态,以及shift键和CapsLock键在不同状态下的逻辑上下面给出扫描码转换时大小写处理的关键程序。
  
  If((shift_flag==Falandcapslock-flag==False)or(sflag==Trueandcapslock_flag==True))and(tempASCll>Ox40)and(temPASCii<Ox5Aand(keypress-flag==True)) {temPASCu..=temPASCii+321}
  
  (5)LCD显示程序设计
  
  RTl602C是基于HD44780芯片构建的2行16列字符型的液晶显示模块,其接口只需要8条数据线和3条控制线即可。下面给出该部分驱动程序的部分代码。
  
  voidwriteIColu.struction(charinstru)//向LCD写命令
  
  {
  
  inti;
  
  for(i=DELAY;i>0;i-.};//延时
  
  LCD_CTL=Ox4;//清零RS位(命令),清零R/W位(写入)
  
  LCD-DATA-DIR=LCD-DATAOUTI檄据传输方向
  
  LCD_DATA=instru;//发送命令
  
  for(i=DELAY;i>0;i一一);//延时
  
  LCD-CTL=0;
  }
  
  voidwritelcddata{charlcddata)//向LCD写数据
  
  {lnt1;
  
  for(i=DELAY;i>0;i一一);//延时
  
  LCD_CTL=Ox6;//置位RS位(数据),清零R/W位(写入)  
  
  LCD-DATA-DIR=LCD-DATA-OUT;/,,IAII方向LCD_DATA=kddata;//发送数据
  
  for(i=DELAY;i>0;i-→;//延时
  
  LCD-CTL=0;}



上一页  [1] [2] 


本文关键字:单片机  接口  设计制作  键盘  电脑-IT数码-外设电子制作 - 电脑-IT数码-外设