在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用單片機驅動標準PC機鍵盤?C51程序詳細說明

Wildesbeast ? 來源:福星電子網 ? 作者:福星電子網 ? 2020-01-18 11:07 ? 次閱讀

功能:實現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)

{

if(count==9)

{

dat1=dat; //中斷9次后為鍵盤所按按鍵的通碼(開始位始終為0在第一次中斷時右移中忽略)

num=20; //使中斷可以繼續中斷11次

}

if(count==20)

{

dat2=dat; //取回第二個通碼

if(dat1==0xe0 || dat2==0xf0) //第一個通碼是0xe0則證明所按按鍵為功能鍵,第二個通碼是0xf0證明按鍵結束

{

temp[shu]=dat1;temp[shu+1]=dat2; shu+=2; //將所按按鍵存到緩沖區中

ie=0x82; //關閉外部中斷并打開內部中斷來處理所按按鍵

tr0=1;

}

else

{

temp[shu]=dat1;temp[shu+1]=dat2; shu+=2; //如果shift鍵被按下則記錄與它同時按下的那個鍵

count=0;

}

if((temp[0]==18 || temp[0]==89) && (temp[2]==18 || temp[2]==89) ) tr0=1; //如果緩沖區中有兩個間隔的shift鍵則證明需要的銨鍵結束

}

}

}

void getkey() interrupt 1 //內部中斷0 用來處理緩沖區里的數據

{

unsigned char i=0;

tr0=0;

th0=0;

tl0=0;

count=0; //中斷記數則0

if((temp[0]==18 || temp[0]==89) && temp[1]!=0xf0 ) //shift被按下

{

for(i=0;i《21;i++)

{

if(addshift[i][0]==temp[1]) //搜索shift被按下的表

{

key=addshift[i][1];

ie=0x83; //打開外部中斷

return;

}

}

}

else if(temp[0]==0xe0) //所按下的按鍵是功能鍵

{

for(i=0;i《80;i++)

{

if(noshift[i][0]==temp[1]) //功能鍵的通碼在緩沖區的第二位

{

key=noshift[i][1];

ie=0x83;

return;

}

}

}

else //普通按鍵

{

for(i=0;i《80;i++)

{

if(noshift[i][0]==temp[0]) //普按鍵的通碼在緩沖區的第一位

{

key=noshift[i][1];

ie=0x83;

return;

}

}

}

for(i=0;i《5;i++)

{

temp[i]=0;

}

}

PC機鍵盤按鍵通碼與ASCII對照表

這個庫要配合 單片機驅動標準pc機鍵盤的c51程序使用

unsigned char code noshift[80][2]=

{

22 ,49,// { 1 }

30 ,50,// { 2 }

38 ,51,// { 3 }

37 ,52,// { 4 }

46 ,53,// { 5 }

54 ,54,// { 6 }

61 ,55,// { 7 }

62 ,56,// { 8 }

70 ,57,// { 9 }

69 ,48,// { 0 }

28 ,97,// { a }

50 ,98,// { b }

33 ,99,// { c }

35 ,100,// { d }

36 ,101,// { e }

43 ,102,// { f }

52 ,103,// { g }

51 ,104,// { h }

67 ,105,// { i }

59 ,106,// { j }

66 ,107,// { k }

75 ,108,// { l }

58 ,109,// { m }

49 ,110,// { n }

68 ,111,// { o }

77 ,112,// { p }

21 ,113,// { q }

45 ,114,// { r }

27 ,115,// { s }

44 ,116,// { t }

60 ,117,// { u }

42 ,118,// { v }

29 ,119,// { w }

34 ,120,// { x }

53 ,121,// { y }

26 ,122,// { z }

84 ,91,// { [ }

91 ,93,// { ] }

76 ,59,// { ; }

82 ,39,// { ‘ }

65 ,44,// { , }

73 ,46,// { 。 }

74 ,47,// { / }

78 ,45,// { - }

85 ,61,// { = }

93 ,92,// { \ }

14 ,96,// { ` }

90 ,32,// { enter }

5 , 0,// { f1 }

6 , 1,// { f2 }

4 , 2,// { f3 }

12 , 3,// { f4 }

3 , 4,// { f5 }

11 , 5,// { f6 }

131, 6,// { f7 }

10 , 7,// { f8 }

1 , 8,// { f9 }

9 , 9,// { f10 }

120,10,// { f11 }

7 ,11,// { f12 }

102,12,// { back }

224,13,// { home }

105,14,// { end }

125,15,// { pageup }

122,16,// { pagedown }

117,17,// { up }
責任編輯 LK

114,18,// { down }

107,19,// { left }

116,20,// { right }

113,21,// { del }

112,22,// { insert }

225,23,// { pause }

118,24,// { esc }

13 ,25,// { tab }

88 ,26,// { caps }

20 ,27,// { ctrl }

17 ,28,// { alt }

41 ,29,// { space }

31 ,30,// { win }

47 ,31,// { winright }

};《/P》《P》unsigned char code addshift[47][2]=

{

14,126, // { ~ }

22, 33, // { ! }

30, 64, // { @ }

38, 35, // { # }

37, 36, // { $ }

46, 37, // { % }

54, 94, // { ^ }

61, 38, // { & }

62, 42, // { * }

70, 40, // { ( }

69, 41, // { ) }

78, 95, // { _ }

85, 43, // { + }

93,124, // { | }

84,123, // { { }

91,125, // { } }

76, 58, // { : }

82, 34, // { “ }

65, 60, // { 《 }

73, 62, // { 》 }

74, 63, // { ? }

28 ,65,// { a }

50 ,66,// { b }

33 ,67,// { c }

35 ,68,// { d }

36 ,69,// { e }

43 ,70,// { f }

52 ,71,// { g }

51 ,72,// { h }

67 ,73,// { i }

59 ,74,// { j }

66 ,75,// { k }

75 ,76,// { l }

58 ,77,// { m }

49 ,78,// { n }

68 ,79,// { o }

77 ,80,// { p }

21 ,81,// { q }

45 ,82,// { r }

27 ,83,// { s }

44 ,84,// { t }

60 ,85,// { u }

42 ,86,// { v }

29 ,87,// { w }

34 ,88,// { x }

53 ,89,// { y }

26 ,90,// { z }

};

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6057

    文章

    44806

    瀏覽量

    644135
  • 鍵盤
    +關注

    關注

    4

    文章

    862

    瀏覽量

    40270
收藏 人收藏

    評論

    相關推薦

    C51單片機矩陣鍵盤掃描去抖程序

    C51單片機矩陣鍵盤電子掃描去抖程序 這段有1個C51的項目,用的是新華龍的C51 F020
    發表于 10-25 15:43 ?1.3w次閱讀
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>矩陣<b class='flag-5'>鍵盤</b>掃描去抖<b class='flag-5'>程序</b>

    C51單片機相關的LCD驅動程序源代碼

    C51單片機相關的LCD驅動程序源代碼,可供參考調試
    發表于 02-22 18:14 ?19次下載

    PC標準鍵盤單片機系統中的應用

    通過實例對PC鍵盤工作原理及接口做了介紹,并提供了C51編寫的讀鍵函數及其應用實例。本文提供的接口及C51函數可直接移植到其他單片機系統開發
    發表于 03-28 17:01 ?0次下載

    C51單片機鍵盤掃描程序詳細資料免費下載

    本文檔的主要內容詳細介紹的是C51單片機鍵盤掃描程序詳細資料免費下載。
    發表于 11-27 16:02 ?20次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b><b class='flag-5'>鍵盤</b>掃描<b class='flag-5'>程序</b>的<b class='flag-5'>詳細</b>資料免費下載

    C51單片機矩陣鍵盤設計程序詳細資料免費下載

    本文檔的主要內容詳細介紹的是C51單片機矩陣鍵盤設計程序詳細資料免費下載。
    發表于 11-27 16:37 ?26次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>矩陣<b class='flag-5'>鍵盤</b>設計<b class='flag-5'>程序</b>的<b class='flag-5'>詳細</b>資料免費下載

    51單片機C51語言的scanf和printf是如何使用的詳細程序說明

    本文檔的主要內容詳細介紹的是51單片機C語言的scanf和printf是如何使用的詳細程序
    發表于 08-26 17:30 ?26次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>C51</b>語言的scanf和printf是如何使用的<b class='flag-5'>詳細</b><b class='flag-5'>程序</b><b class='flag-5'>說明</b>

    51單片機C程序基本架構詳細說明

    本文檔的主要內容詳細介紹的是51單片機C程序基本架構詳細說明
    發表于 08-15 17:32 ?7次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>C</b><b class='flag-5'>程序</b>基本架構<b class='flag-5'>詳細說明</b>

    單片機C51編程的警告提示說明

    本文檔的主要內容詳細介紹的是單片機C51編程的警告提示說明資料免費下載。
    發表于 08-02 17:34 ?2次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>C51</b>編程的警告提示<b class='flag-5'>說明</b>

    單片機C51的interrupt和using用法詳細資料說明

    本文檔的主要內容詳細介紹的是單片機C51的interrupt和using用法詳細資料說明
    發表于 07-17 17:38 ?5次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>C51</b>的interrupt和using用法<b class='flag-5'>詳細</b>資料<b class='flag-5'>說明</b>

    使用C51單片機和Proteus仿真進行呼吸燈的設計程序和資料說明

    本文檔的主要內容詳細介紹的是使用C51單片機和Proteus仿真進行呼吸燈的設計程序和資料說明
    發表于 05-20 08:00 ?7次下載
    使用<b class='flag-5'>C51</b><b class='flag-5'>單片機</b>和Proteus仿真進行呼吸燈的設計<b class='flag-5'>程序</b>和資料<b class='flag-5'>說明</b>

    C51單片機驅動的安裝教程詳細說明

    本文檔的主要內容詳細介紹的是C51單片機驅動的安裝教程詳細說明
    發表于 01-13 08:00 ?7次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b><b class='flag-5'>驅動</b>的安裝教程<b class='flag-5'>詳細說明</b>

    C51單片機64位驅動的應用程序免費下載

    本文檔的主要內容詳細介紹的是C51單片機64位驅動的應用程序免費下載。
    發表于 01-13 08:00 ?7次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>64位<b class='flag-5'>驅動</b>的應用<b class='flag-5'>程序</b>免費下載

    單片機C51語言程序設計基礎的資料合集免費下載

    本文檔的主要內容詳細介紹的是單片機C51語言程序設計基礎的資料合集免費下載包括了:單片機開發概述,構建C
    發表于 03-16 08:00 ?19次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>C51</b>語言<b class='flag-5'>程序</b>設計基礎的資料合集免費下載

    單片機C51語言程序設計的基礎資料詳細說明

    單片機C51語言既具有匯編語言對操作硬件的功能,又兼有高級編程語言的許多優點。在現代的單片機程序設計中,單片機
    發表于 03-16 17:08 ?39次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>C51</b>語言<b class='flag-5'>程序</b>設計的基礎資料<b class='flag-5'>詳細說明</b>

    C51單片機程序設計實例說明

    本文檔的主要內容詳細介紹的是C51單片機程序設計實例說明免費下載。雖然本章的例題很簡單,但是只要做完,就可以在如下幾個方面得到練習:
    發表于 01-26 11:53 ?35次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>程序</b>設計實例<b class='flag-5'>說明</b>
    主站蜘蛛池模板: 色性网| 啪啪91视频 | 久久香蕉综合色一综合色88 | 午夜免费片 | 欧美视频精品在线 | 亚洲天天做日日做天天欢毛片 | 国产乱辈通伦影片在线播放亚洲 | 欧洲色 | 免费一级特黄特色大片在线 | 草草影院ccyy国产日本欧美 | 国产久爱青草视频在线观看 | 奇米一区二区三区四区久久 | 欧美精彩狠狠色丁香婷婷 | 亚洲综合丁香 | 亚洲va中文字幕 | 婷婷丁香色综合狠狠色 | 国产精品久久久精品三级 | 一道精品一区二区三区 | 久久久午夜影院 | 99色在线播放 | 高黄视频| 成人夜色香网站在线观看 | 国产一级爱c片免费播放 | 成人夜色香网站在线观看 | 免费看久久 | 亚洲成人资源 | 亚洲免费视频播放 | 全黄h全肉边做边吃奶在线观看 | 日本美女中出 | 国产精品亚洲一区二区三区在线播放 | 婷婷亚洲综合五月天在线 | 日日操夜夜操免费视频 | h视频免费| 欧美一区二区三区四区视频 | 可以免费播放的在线视频 | 婷婷欧美| 4虎最新地址 | 亚洲最新在线观看 | 欧美日韩精品乱国产 | 在线天堂中文在线资源网 | 手机看片久久青草福利盒子 |