所需E币: 5
时间: 2019-12-25 09:51
大小: 23KB
单片机驱动标准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……