• 大小: 25KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: ps2驱动  

资源简介

PS2键盘驱动程序全部代码都已经实现,学习PS2的参考代码

资源截图

代码片段和文件信息

//在数码管上显示PS2的解码信息
//P3^2接CLK线,P1^6接数据线


#include 
#include 
#define led1 in_1=0;in_2=0;in_3=0  //选中第一个数码管
#define led2 in_1=0;in_2=0;in_3=1  //选中第二个数码管
#define led3 in_1=0;in_2=1;in_3=0 //选中第三个数码管
#define led4 in_1=0;in_2=1;in_3=1 //选中第四个数码管
#define led5 in_1=1;in_2=0;in_3=0  //选中第五个数码管
#define led6 in_1=1;in_2=0;in_3=1 //选中第六个数码管
#define led7 in_1=1;in_2=1;in_3=0 //选中第七个数码管
#define led8 in_1=1;in_2=1;in_3=1  //选中第八个数码管 

sbit ps2_data=P1^6; //ps2的数据线
sbit ps2_clk=P3^2; //ps2的时钟线
sbit in_1=P2^2;//138译码器的三个输入端位定义
sbit in_2=P2^3;
sbit in_3=P2^4;

unsigned char table[]={0x3F0x060x5B0x4F0x660x6D0x7D0x07
   0x7F0x6F0x770x7C0x390x5E0x790x71};//数码管上要显示的内容

unsigned char numbit;//存储接收的数据位数
unsigned char value; //通过移位来获取接收到的三个码
unsigned char key[3];//存储接收到的通码的断码
unsigned char keynum; //通过判断j.来确定是否以经完成接收

unsigned char nm;
void delay(void)   //误差 0us
{
    unsigned char ab;
    for(b=19;b>0;b--)
        for(a=130;a>0;a--);
}



void main()
{
EA=1;  //打开总中断
EX0=1; //外部中断0允许
IT0=1; //用下降沿触发
while(1)
{
if(keynum==3)//证明以经完成接收,可以进行显示 
{
keynum=0;
m=key[0]/16;
n=key[0]%16;
}
P0=table[m];
led1;
delay();
P0=table[n];
led2;
delay();
}

}
void int0() interrupt 0
{
if((numbit>0)&&(numbit<9))
{
  value=value>>1;
  if(ps2_data)  //判断接收到的数据是否为1
  value=value | 0x80;
}
numbit++;
if(numbit>10)  //一共11位,只接收了八位数据
{
numbit=0;
key[keynum]=value;
keynum++;
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-09-15 22:02  PS2键盘的驱动\
     文件        1748  2011-09-15 21:58  PS2键盘的驱动\main.c
     文件        4154  2011-09-15 21:58  PS2键盘的驱动\main.LST
     文件        4140  2011-09-15 21:58  PS2键盘的驱动\main.OBJ
     文件        4353  2011-09-15 21:58  PS2键盘的驱动\PS2
     文件         923  2011-09-15 21:58  PS2键盘的驱动\PS2.hex
     文件          55  2011-09-15 21:58  PS2键盘的驱动\PS2.lnp
     文件        6729  2011-09-15 21:58  PS2键盘的驱动\PS2.M51
     文件        6328  2011-09-15 22:02  PS2键盘的驱动\PS2.plg
     文件       55649  2011-09-15 22:02  PS2键盘的驱动\PS2.uvopt
     文件       13397  2011-09-15 20:59  PS2键盘的驱动\PS2.uvproj
     文件       55653  2011-09-15 20:59  PS2键盘的驱动\PS2_uvopt.bak
     文件           0  2011-09-15 20:29  PS2键盘的驱动\PS2_uvproj.bak
     文件        6376  2009-05-07 14:37  PS2键盘的驱动\STARTUP.A51
     文件       14048  2011-09-15 21:58  PS2键盘的驱动\STARTUP.LST
     文件         758  2011-09-15 21:58  PS2键盘的驱动\STARTUP.OBJ

评论

共有 条评论

相关资源