21.avr学习笔记二十一、avr学习笔记二十一、计算机键盘(ps2键盘)实验

21.avr学习笔记二十一、avr学习笔记二十一、计算机键盘(ps2键盘)实验

ID:18911940

大小:105.50 KB

页数:10页

时间:2018-09-27

21.avr学习笔记二十一、avr学习笔记二十一、计算机键盘(ps2键盘)实验_第1页
21.avr学习笔记二十一、avr学习笔记二十一、计算机键盘(ps2键盘)实验_第2页
21.avr学习笔记二十一、avr学习笔记二十一、计算机键盘(ps2键盘)实验_第3页
21.avr学习笔记二十一、avr学习笔记二十一、计算机键盘(ps2键盘)实验_第4页
21.avr学习笔记二十一、avr学习笔记二十一、计算机键盘(ps2键盘)实验_第5页
资源描述:

《21.avr学习笔记二十一、avr学习笔记二十一、计算机键盘(ps2键盘)实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、AVR学习笔记二十一、计算机键盘(PS/2键盘)实验21.1实例功能在前面的实例学习中,我们已经了解了独立按键,矩阵(行列)按键、AD按键,这些按键都有一个共同的缺点:按键数目有限,如果想要增加按键数目不但要增加程序量,电路连接也需要有很大的改动。今天我们来学习一下计算机的键盘、也就是常说的PS/2键盘。这种键盘有100个以上的按键,而它与外部器件的连线只有4根,在需要大量按键而单片机I/O资源有限的情况下,使用这种键盘是一种很好的解决方案。本实例有三个功能模块:单片机系统:利用ATmega16单片机实现对P

2、S/2键盘的按键识别,并通过串口发送到计算机;外围电路:PS/2键盘与单片机的连接,RS232电平转换电路;软件程序:编写程序,实现读取PS/2键盘的按键功能。21.2器件和原理21.2.1PS/2键盘的接口PS/2键盘的接口有很多,我们以6芯接口为例说明,如图1所示,键盘通过6芯插头跟微机相连,其中只有四根有用,分别是:电源、地、时钟线、数据线。图16芯PS/2键盘接口21.2.2PS/2键盘接口协议标准PS/2键盘接口协议标准主要有两种:PC/XT标准、AT标准;前者数据位是9位,是一种老式的标准;后者为

3、11位,是现在比较常用的一种标准,目前许多微机键盘都支持这一标准,在本实例中我们采用符合这种标准的微机键盘。21.2.3AT标准的PS/2键盘的数据格式键盘通过数据线和时钟线与系统通信,当有按键按下时,在时钟线的作用下,通过数据线将键盘命令码发送出去。键盘接通电源后,首先进行复位等初始化工作,然后开始进行键盘扫描,同时做好接受命令和发送键盘数据的准备工作,一旦有按键按下,则立即送出按键编码。键盘和系统间采用11位格式的串行方式:第一位起始位,第2-9位是8位数据位,低位在前,高位在后,这8位数据位就是被按下按

4、键的键码,第10位是奇偶校验位,第11位是停止位。数据的起始位为低电平。系统接受的键盘数据在移位时钟的下降沿输出,时钟周期为50us,时序图如图2:图2键盘输出时序21.2.4PS/2键盘编码PS/2键盘有上百个按键,每一个按键都有各自的唯一的编码,由于按键数目太多,在此就不一一说明,大家可以通过查询PS/2键盘编码表来获得键码。21.3电路和连接RS232电平转换电路前面已经介绍过,不再详述;这里只介绍PS/2键盘与单片机的连接,本例中将键盘的时钟线连接到单片机的外部中断1(INT1)端口相连,键盘的数据线

5、连接单片机的PD0口,键盘的电源和地分别连到开发板的电源和地上。21.4程序设计21.4.1程序功能本程序利用外部中断判断是否有键盘数据传输,当有数据传输时,键盘的时钟线在下降沿将数据发出,首先设置外部中断为下降沿触发方式,进入中断后接收数据,接收完数据后将外部中断触发方式设置为上升沿触发,在上升沿触发中断里,处理接收到的数据,这样提高了程序的执行效率。21.4.2函数说明本实例程序主要有两部分组成:串口数据发送程序和键盘处理程序(外部中断函数和键值解码函数),串口发送程序前面已经详细讲解,在此不再重复,键盘

6、处理程序主要有下面几个函数:voidGet_KeyValue(unsignedcharKeyCode);//获取键值voidInt_init(void);//外部中断初始化//外部中断1函数,下降沿接收数据,上升沿处理接受的数据ISR(INT1_vect)3、编程说明使用WINAVR开发环境,使用的是外部12M的晶振,所以需要将makefile文件中的时钟频率修改为12M。另外在程序烧录到单片机的时候,熔丝位也要选择为外部12M晶振(注意是晶振,不是外部振荡器,一定不要选择错了,否则会导致单片机不能再烧写程序

7、)。4、程序代码在这里列出键盘处理程序的主要代码,串口发送程序在此不再列出,完整的程序代码在附件中。/***************************************************AVRPS2键盘范例*******MCU:ATmega16*******作者:maweili*******编译器:WINAVR**************2009.4.25**************************************************/#include

8、#include#include//中断函数头文件#include"usart.h"unsignedcharunshifted[][2]={//shift键没按下译码表0x0e,'`',0x15,'q',0x16,'1',0x1a,'z',0x1b,'s',0x1c,'a',0x1d,'w',0x1e,'2',0x21,'c',0x22,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。