91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 23KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-17
  • 語言: 其他
  • 標簽: ps2??

資源簡介

ps2鍵盤程序,ps2鍵盤程序,ps2鍵盤程序,已成功。

資源截圖

代碼片段和文件信息

/*============================================================
????????使用1602液晶顯示和PS/2鍵盤的示例??
????????-------------------------------------------------
???????????
==============================================================

SMC1602A(16*2)模擬口線接線方式
連接線圖:
???????---------------------------------------------------
???????|LCM-----51???| LCM-----51???| LCM------51??????|
???????--------------------------------------------------|
???????|DB0-----P1.0?| DB4-----P1.4?| RW-------P2.1????|
???????|DB1-----P1.1?| DB5-----P1.5?| RS-------P2.0????|
???????|DB2-----P1.2?| DB6-----P1.6?| E--------P2.2????|
???????|DB3-----P1.3?| DB7-----P1.7?| VLCD接1K電阻到GND|
???????---------------------------------------------------

Keyboard接線
??????PS/2--------51
??????1?DATA------P3.4
??????3?GND
??????4?VCC
??????5?CLK-------P3.3?接在51的外部中斷,觸發方式為低電平


[注:AT89x51使用12M或11.0592M晶振實測使用11.059M
[Keil?uV2?7.01編譯運行通過?程序中沒有做鍵盤數據的奇偶校驗]

=============================================================*/
#include?
#include?“scancodes.h“

#define?LCM_RW??P2_1?//定義LCD引腳
#define?LCM_RS??P2_0
#define?LCM_E???P2_2
#define?LCM_Data??P0

#define?Key_Data?P3_4?//定義Keyboard引腳
#define?Key_CLK??P3_3

#define?Busy????0x80?//用于檢測LCM狀態字中的Busy標識

void?LCMInit(void);
void?DisplayOneChar(unsigned?char?X?unsigned?char?Y?unsigned?char?DData);
void?DisplayListChar(unsigned?char?X?unsigned?char?Y?unsigned?char?code?*DData);
void?Delay5Ms(void);
void?Delay400Ms(void);
void?Decode(unsigned?char?ScanCode);
void?WriteDataLCM(unsigned?char?WDLCM);
void?WriteCommandLCM(unsigned?char?WCLCMBuysC);

unsigned?char?ReadDataLCM(void);
unsigned?char?ReadStatusLCM(void);
unsigned?char?code?cdle_net[]?=?{“??www.pp51.com??“};
unsigned?char?code?email[]?=?{“pp51com@163.com“};
unsigned?char?code?Cls[]?=?{“????????????????“};
static?unsigned?char?IntNum?=?0;?//中斷次數計數
static?unsigned?char?KeyV;?//鍵值
static?unsigned?char?DisNum?=?0;?//顯示用指針
static?unsigned?char?Key_UP=0?Shift?=?0;//Key_UP是鍵松開標識,Shift是Shift鍵按下標識
static?unsigned?char?BF?=?0;?//標識是否有字符被收到

void?main(void)
{
unsigned?char?TempCyc;

Delay400Ms();?//啟動等待,等LCM講入工作狀態
LCMInit();?//LCM初始化
Delay5Ms();?//延時片刻(可不要)

DisplayListChar(0?0?cdle_net);
DisplayListChar(0?1?email);
ReadDataLCM();//測試用句無意義
for?(TempCyc=0;?TempCyc<10;?TempCyc++)
Delay400Ms();?//延時
DisplayListChar(0?1?Cls);

IT1?=?0;?//設外部中斷1為低電平觸發
EA?=?1;
EX1?=?1;?//開中斷

do
{
if?(BF)
Decode(KeyV);
else
EA?=?1;?//開中斷
}
while(1);
}

//寫數據
void?WriteDataLCM(unsigned?char?WDLCM)?
{
ReadStatusLCM();?//檢測忙
LCM_Data?=?WDLCM;
LCM_RS?=?1;
LCM_RW?=?0;
LCM_E?=?0;?//若晶振速度太高可以在這后加小的延時
LCM_E?=?0;?//延時
LCM_E?=?1;
}

//寫指令
void?WriteCommandLCM(unsigned?char?WCLCMBuysC)?//BuysC為0時忽略忙檢測
{
if?(BuysC)?ReadStatusLCM();?//根據需要檢測忙
LCM_Data?=?WCLCM;
LCM_RS?=?0;
LCM_RW?=?0;
LCM_E?=?0;
LCM_E?=?0;
LCM_E?=?1;
}

//讀數據
unsigned?char?ReadDataLCM(void)
{

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????14653??2008-04-27?13:04??PS2Key\PS2Key.M51

?????文件???????6942??2005-05-28?20:23??PS2Key\PS2Key.c

?????文件????????504??2008-04-27?13:10??PS2Key\PS2Key.plg

?????文件???????1506??2004-03-03?21:00??PS2Key\scancodes.h

????.......??????1660??2005-05-28?20:23??PS2Key\PS2Key_Uv2.Bak

?????文件???????1942??2008-04-27?13:04??PS2Key\PS2Key.Uv2

????.......???????829??2005-05-28?20:24??PS2Key\PS2Key_Opt.Bak

?????文件????????858??2008-04-27?13:04??PS2Key\PS2Key.Opt

?????文件??????15118??2008-04-27?13:04??PS2Key\PS2Key.LST

?????文件??????14123??2008-04-27?13:04??PS2Key\PS2Key.OBJ

?????文件??????12019??2008-04-27?13:04??PS2Key\PS2Key

?????文件???????3158??2008-04-27?13:04??PS2Key\PS2Key.hex

?????目錄??????????0??2008-04-27?13:03??PS2Key

-----------?---------??----------?-----??----

????????????????73312????????????????????13


評論

共有 條評論