21.AVR学习笔记二十一AVR学习笔记二十一计算机键盘(PS2键盘)实验.doc

21.AVR学习笔记二十一AVR学习笔记二十一计算机键盘(PS2键盘)实验.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
21.AVR学习笔记二十一AVR学习笔记二十一计算机键盘(PS2键盘)实验

AVR学习笔记二十一、计算机键盘(PS/2键盘)实验 21.1 实例功能 在前面的实例学习中,我们已经了解了独立按键,矩阵(行列)按键、AD按键,这些按键都有一个共同的缺点:按键数目有限,如果想要增加按键数目不但要增加程序量,电路连接也需要有很大的改动。 今天我们来学习一下计算机的键盘、也就是常说的PS/2键盘。这种键盘有100个以上的按键,而它与外部器件的连线只有4根,在需要大量按键而单片机I/O资源有限的情况下,使用这种键盘是一种很好的解决方案。 本实例有三个功能模块: 单片机系统:利用ATmega16单片机实现对PS/2键盘的按键识别,并通过串口发送到计算机; 外围电路:PS/2键盘与单片机的连接,RS232电平转换电路; 软件程序:编写程序,实现读取PS/2键盘的按键功能。 21.2 器件和原理 21.2.1 PS/2键盘的接口 PS/2键盘的接口有很多,我们以6芯接口为例说明,如图1所示,键盘通过6芯插头跟微机相连,其中只有四根有用,分别是:电源、地、时钟线、数据线。 图1 6芯PS/2键盘接口 21.2.2 PS/2键盘接口协议标准 PS/2键盘接口协议标准主要有两种:PC/XT标准、AT标准;前者数据位是9位,是一种老式的标准;后者为11位,是现在比较常用的一种标准,目前许多微机键盘都支持这一标准,在本实例中我们采用符合这种标准的微机键盘。 21.2.3 AT标准的PS/2键盘的数据格式 键盘通过数据线和时钟线与系统通信,当有按键按下时,在时钟线的作用下,通过数据线将键盘命令码发送出去。键盘接通电源后,首先进行复位等初始化工作,然后开始进行键盘扫描,同时做好接受命令和发送键盘数据的准备工作,一旦有按键按下,则立即送出按键编码。键盘和系统间采用11位格式的串行方式:第一位起始位,第2-9位是8位数据位,低位在前,高位在后,这8位数据位就是被按下按键的键码,第10位是奇偶校验位,第11位是停止位。 数据的起始位为低电平。系统接受的键盘数据在移位时钟的下降沿输出,时钟周期为50us,时序图如图2: 图2 键盘输出时序 21.2.4 PS/2键盘编码 PS/2键盘有上百个按键,每一个按键都有各自的唯一的编码,由于按键数目太多,在此就不一一说明,大家可以通过查询PS/2键盘编码表来获得键码。 21.3 电路和连接 RS232电平转换电路前面已经介绍过,不再详述;这里只介绍PS/2键盘与单片机的连接,本例中将键盘的时钟线连接到单片机的外部中断1(INT1)端口相连,键盘的数据线连接单片机的PD0口,键盘的电源和地分别连到开发板的电源和地上。 21.4 程序设计 21.4.1 程序功能 本程序利用外部中断判断是否有键盘数据传输,当有数据传输时,键盘的时钟线在下降沿将数据发出,首先设置外部中断为下降沿触发方式,进入中断后接收数据,接收完数据后将外部中断触发方式设置为上升沿触发,在上升沿触发中断里,处理接收到的数据,这样提高了程序的执行效率。 21.4.2 函数说明 本实例程序主要有两部分组成:串口数据发送程序和键盘处理程序(外部中断函数和键值解码函数),串口发送程序前面已经详细讲解,在此不再重复,键盘处理程序主要有下面几个函数: void Get_KeyValue(unsigned char KeyCode); //获取键值 void Int_init(void); //外部中断初始化 //外部中断1函数,下降沿接收数据,上升沿处理接受的数据 ISR(INT1_vect) 3、编程说明 使用WINAVR开发环境,使用的是外部12M的晶振,所以需要将makefile文件中的时钟频率修改为12M。另外在程序烧录到单片机的时候,熔丝位也要选择为外部12M晶振(注意是晶振,不是外部振荡器,一定不要选择错了,否则会导致单片机不能再烧写程序)。 4、程序代码 在这里列出键盘处理程序的主要代码,串口发送程序在此不再列出,完整的程序代码在附件中。 /*********************************************** **** AVR PS2键盘范例 *** **** MCU: ATmega16 *** **** 作者: maweili *** **** 编译器:WINAVR *** ****

文档评论(0)

cwhs + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档