首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 嵌入式系统 > 单片机驱动标准PC机键盘的C51程序

单片机驱动标准PC机键盘的C51程序

资料介绍
单片机驱动标准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

单片机驱动标准PC机键盘的C51程序
本地下载

评论