资料
  • 资料
  • 专题
单片机驱动标准PC机键盘的C51程序
推荐星级:
时间:2019-12-25
大小:23KB
阅读数:177
上传用户:微风DS
查看他发布的资源
下载次数
0
所需E币
5
ebi
新用户注册即送 300 E币
更多E币赚取方法,请查看
close
资料介绍
单片机驱动标准PC机键盘的C51程序 功能:实现pc机键盘(p/s2接口)与8位单片机连接使用 原理:键盘时钟接在p3.2口,既8051的外部中断int0上,键盘数据接到p1.0上 每次按键,键盘会向单片机发脉冲使单片机发生外部中断,数据有p1.0口一位一位传进 来 传回的数据格式为:1位开始位(0),8位数据位(所按按键的通码,用来识别按键), 1位 校验位(奇校验) 1位结束位(1) 实现:将键盘发回的数据放到一个缓冲区里(数组),当按键结束后发生内部中断来处 理所 按的按键 缺点:由于51单片机的容量有限所以缓冲区不可以开的太大,这就导致可以记录键盘的 按键 次数过少, 也就是容错性一般。不过如果正常使用键盘是不会出错的 ============================================================================ ==== ====================*///#include"reg51.h" #include "intrins.h" #include "ku.h" //按键通码与ascii对照表 sbit sda= p1^0; //键盘数据线unsigned char dat=0,dat1=0,dat2=0; //接收 键盘 数据变量? 存储通码变量 接受连续通码变量 unsigned char count=0,num=9,temp[5],shu=0; //中数次数 中断控制变量 缓冲区数组  缓 冲区指针 unsigned char key=0; //按键最终值void zhongduan() interrupt 0 //外部中 断 0 用来接受键盘发来的数据 { dat>>=1; //接受数据 低->高 if(sda) dat|=0x80; count++; if(count==num……
版权说明:本资料由用户提供并上传,仅用于学习交流;若内容存在侵权,请进行举报,或 联系我们 删除。
相关评论 (下载后评价送E币 我要评论)
没有更多评论了
  • 可能感兴趣
  • 关注本资料的网友还下载了
  • 技术白皮书