- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PS2键盘与单片机通信全解
PS/2键盘与单片机通信
实验目的:
掌握PS/2键盘与单片机通信的原理,并能加以应用。
实验仪器:
单片机最小实验系统AT89S52,PS/2键盘
实验原理:
PS/2接口通信协议PS/2接口键盘与主机采用双向通信方式,键盘可以向主机发送数据主机也可以发送命令给键盘。主机具有最高优先权。通信协议是标准的串行异步通信格式,1位起始位,8位数据位(LSB在先),1位奇校验位P,1位停止位,若为主机发送状态,则还有一位应答位。数据格式如图2所示。
主机同键盘进行通信时,无论发送还是接收数据,都要依赖于键盘发送的时钟脉冲(每次数据传输发送l1个时钟脉冲),时钟频率为10-16.7kHz,通过判断时钟脉冲的上升沿和下降沿,逐位发送或读取数据位。当数据线DATA和时钟线CLK同时为高电平时,键盘可以发数据给主机。CLK可用作清除发送线。如果主机将CLK拉为低电平,则禁止键盘发送数据,而是将发送数据放到发送缓存区中,直到CLK变为高电平才开始发送数据。如果主机将DATA拉低,则当键盘检测到这一变化时,接收来自主机的命令。概括如表l所示。
当键盘发送数据时,键盘先将DATA 拉低,通知主机准备接收数据。键盘在CLK为高电平时建立数据,主机在CLK为低电平时读取数据。发送数据的时钟信号由键盘产生。时序如图3所示。
图4给出了键盘接受一个字节的时序。为了避免在同一时刻发送数据,应将CLK拉低大约100 uS以上, 以禁止键盘发送数据。然后主机将数据线DATA拉低,发送起始位,并释放CLK(高电平),由键盘接管CLK,以产生时钟信号。主机在此同步时钟信号下发送数据。键盘接收数
据是从检测到DATA变低开始,然后在CLK为高电平时读取数据,这与键盘发送数据时的情形相反。当主机发送完校验位后,释放数据线DATA(停止位)。随后,键盘将DATA置成低电平,作为收到数据的应答信号(ACK),并产生一个周期的时钟脉冲。如果在第11个脉冲后,主机未释放DATA,键盘将继续发送时钟信号到DATA空闲。
软件编程与调试
1、接口设计
PS/2键盘 单片机
Data T1(P3^5)
CLk INT1(P3^3)
LCD液晶 单片机
Data Bus P0
RS P2^3
RW P2^5
E P2^7
流程简图
源程序
#includereg52.h
#includelcd12864.c//包含128X64驱动程序
#includeintrins.h
sbit Key_Data =P3^5;//定义Keyboard数据端口引脚
sbit Key_CLK=P3^3; //中断端口,时钟线
static unsigned char KeyV=0X00; //键值
static unsigned char BF = 0; //标识是否有字符被收到
static unsigned char IntNum = 0; //中断次数计数
bit dx=0; //大小写标志 dx==1时大写状态
/*************************/
void Keyboard_out(void) interrupt 2//键盘中断处理 键值存储在 KeyV 中
{
if ((IntNum0) (IntNum 9))
{
KeyV = KeyV 1; //因键盘数据是低高,结合上一句所以右移一位
if (Key_Data==1) //当键盘数据线为1时(执行if语句里面的代码),当键盘数据线为0时(不执行if语句里面的代码),直接执行KeyV1
{KeyV = KeyV | 0x80;} //当键盘数据线为1时,存储一位高电平1
}
IntNum++; //中断次数加一(中断一次接收一位数据)
if (IntNum 10) //中断11次后数据发送完毕
{
IntNum = 0; //当中断11次后表示一帧数据收完,清变量准备下一次接收
BF = 1; //标识有字符输入完了
EA = 0; //关中断等显示完后再开中
}
}
void Decode() //键值处理
{
unsigned char TempCyc;
您可能关注的文档
- PROE曲线方程(附图)全解.doc
- proe曲线方程大全全解.doc
- ProE4.0教程全解.ppt
- proe基础教程全解.ppt
- Proe大作业全解.doc
- ProE4.0教程全套共366页全解.ppt
- Proe野火4.0版基础教程及上机指导12全解.ppt
- PROFIBUS-DP简介全解.ppt
- ProE5.0全套教程全解.ppt
- Proposal巴特勒-英文(2011.8.24)2全解.doc
- 8 黄山奇石(第二课时)课件(共22张PPT).pptx
- 22《纸船和风筝》教学课件(共31张PPT).pptx
- 17 松鼠 课件(共23张PPT).pptx
- 23《海底世界》课件(共28张PPT).pptx
- 21《大自然的声音》课件(共18张PPT).pptx
- 第12课《词四首——江城子 密州出猎》课件 2025—2026学年统编版语文九年级下册.pptx
- 第2课《济南的冬天》课件(共42张PPT) 2024—2025学年统编版语文七年级上册.pptx
- 17 跳水 第二课时 课件(共18张PPT).pptx
- 第六单元课外古诗词诵读《过松源晨炊漆公、约客》课件 统编版语文七年级下册.pptx
- 统编版六年级语文上册 22《文言文二则》课件(共27张PPT).pptx
最近下载
- QlikView专业版培训教程精品.pdf VIP
- 部编版2025秋六年级上册语文1.27《我的伯父鲁迅先生》 课件.pptx VIP
- 生物专业英语第三版蒋悟生编__课文翻译试卷.doc VIP
- NB∕T 20485-2018RK 核电厂应急柴油发电机组设计和试验要求.pdf
- 读《地球的红飘带》有感.pptx VIP
- 建筑与市政地基基础通用规范试卷含答案.docx
- 班级管理(第3版)张作岭课后习题答案.docx VIP
- 2026年中国互联网体育服务市场深度评估与发展机遇预测报告.docx
- 党课讲稿、深刻把握“信念是本,作风是形”的时代内涵与实践要求.docx VIP
- 学堂在线 日语与日本文化 期末考试答案.docx VIP
原创力文档


文档评论(0)