資源簡介
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
- 上一篇:物聯網實習
- 下一篇:風力發電機齒輪箱故障診斷方法及信號仿真_武姣
評論
共有 條評論