- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 ***
****
您可能关注的文档
- 2016年中央财经大学金融硕士考研参考书才思.doc
- 2016年中央财经大学金融硕士考研参考书汇集才思.doc
- 2016年中央财经大学金融硕士考研参考书精粹才思.doc
- 2016年中央财经大学金融硕士考研参考书笔记才思.doc
- 2016年中央财经大学金融硕士考研参考书总结才思.doc
- 2016年中央财经大学金融硕士考研参考书整理才思.doc
- 2016年中央财经大学金融硕士考研参考书汇总才思.doc
- 2016年中央财经大学金融硕士考研参考书精编才思.doc
- 2016年中央财经大学金融硕士考研参考书解析才思.doc
- 2016年中财金融硕士考研参考书及431考试大纲.doc
- 2024年证券分析与咨询服务项目投资申请报告代可行性研究报告.docx
- 2024年铬酸酐项目资金申请报告代可行性研究报告.docx
- 2024年清洁胶项目资金申请报告代可行性研究报告.docx
- 2024年肉松饼项目投资申请报告代可行性研究报告.docx
- 2024年陆上泵项目资金需求报告代可行性研究报告.docx
- 2024年未硫化复合橡胶及其制品项目资金需求报告代可行性研究报告.docx
- 2024年精密温控节能设备项目资金筹措计划书代可行性研究报告.docx
- 2024年汽车覆盖件模具项目资金筹措计划书代可行性研究报告.docx
- 宋词行书钢笔字帖.pdf
- 我的暑假生活作文三年级300字10篇.pdf
文档评论(0)