資源簡介
基于AT89S52單片機驅動PS2鼠標 支持四個方向的移動和左右中鍵的點擊操作。

代碼片段和文件信息
#include?
#include?
/************************************************************/????????????????????
sbit?Data_Line=P3^5;???????????????????????//數據線P3_5
sbit?Clock_Line=P3^3;????????????????????????????//時鐘線P3_3
unsigned?char?table[10]={0841221061419}; //LED燈顯示數字 ??
unsigned?char?position[4]?={163264128}; ??//LED燈選位
/***********************定義位變量***************************/
unsigned?char?bdata?Temp_Buffer;???????//接收字節
sbit?D_Buf0=Temp_Buffer^0;????????????????//Temp_Buffer第0位
sbit?D_Buf1=Temp_Buffer^1;
sbit?D_Buf2=Temp_Buffer^2;
sbit?D_Buf3=Temp_Buffer^3;
sbit?D_Buf4=Temp_Buffer^4;
sbit?D_Buf5=Temp_Buffer^5;
sbit?D_Buf6=Temp_Buffer^6;
sbit?D_Buf7=Temp_Buffer^7;????????????????????//Temp_Buffer第7位0
/************************************************************/
unsigned?char?Buffer[11];??????????????????????//接收位數據緩沖區
unsigned?char?Rec_ptr=0x00;?????????????????//接收數據指針
unsigned?char?Rec_data=0xFF;???????????//接收數據
unsigned?char?Data_Buf[3];????????????//接收鼠標數據緩沖區
unsigned?char?Buffer_ptr=0x00;??????????//緩沖區指針
unsigned?char?Data_ptr=0;??????????????????//數據處理指針
/*******************點陣顯示數據字符編碼*****************************/
//鼠標移動點
const?unsigned?char?code?char_P[8]={0x000x000x000x080x000x000x000x00};
//鼠標左鍵被按下
const?unsigned?char?code?char_L[8]={0x000x240x140x8C0x970xF40x940x84};
//鼠標中鍵被按下
const?unsigned?char?code?char_M[8]={0x000x3C0x240xFF0xFF0x240x3C0x00};
//鼠標右鍵被按下
const?unsigned?char?code?char_R[8]={0x000x240x140xEC0xA70xA40xA40xE4};
//多個按鍵被按下
const?unsigned?char?code?char_S[8]={0xFF0xFF0xFF0xE70xF70xFF0xFF0xFF};
//---------------------------------掃描位數組----------------------------------
const?unsigned?char?Row_Control[8]={0xFE0xFD0xFB0xF7
0xEF0xDF0xBF0x7F};
unsigned?char?send_data[8];??????//發送數據緩沖區
//鼠標移動數據緩沖區
unsigned?char?move_data[8]={0x000x000x000x080x000x000x000x00};?
unsigned?char?ptr_send=0x00;?????//發送數據指針?????
unsigned?char?ptr_con1=0x00;?????//掃描指針?
unsigned?char?button_L;??????????????????//左鍵標志
unsigned?char?button_R;??????????????????//右鍵標志
unsigned?char?button_M;?????????????????//中鍵標志
unsigned?char?length_X;??????????????????//橫向位移
unsigned?char?length_Y;??????????????????//縱向位移
unsigned?char?flag_Y;?????????????????//橫向移動標志?左移為1,右移為0
unsigned?char?flag_X;?????????????????//縱向移動標志?下移位1,上移為0
unsigned?char?X_Lmove;????????????????//橫向左移距離
unsigned?char?Y_Umove;????????????????//橫向右移距離
unsigned?char?X_Rmove;????????????????//縱向上移距離
unsigned?char?Y_Dmove;????????????????//縱向下移距離
/***********************定義位變量***************************/
unsigned?char?bdata?BitData;??????//控制信息字節
sbit?B_dat0=BitData^0;????????????????????//BitData第0位
sbit?B_dat1=BitData^1;
sbit?B_dat2=BitData^2;
sbit?B_dat3=BitData^3;
sbit?B_dat4=BitData^4;
sbit?B_dat5=BitData^5;
sbit?B_dat6=BitData^6
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????16793??2007-08-08?11:54??at89S52_ps2鼠標\PC_M.c
?????文件?????????71??2009-08-07?11:02??at89S52_ps2鼠標\readme.txt
?????目錄??????????0??2009-08-07?10:59??at89S52_ps2鼠標
-----------?---------??----------?-----??----
????????????????16864????????????????????3
- 上一篇:erase_all_pin.jlk
- 下一篇:可調 ldo芯片資料
評論
共有 條評論