㈠ 51單片機3鍵鍵盤電路圖[只有三個按鍵,鏈接pc的]
同學你好,我來幫你,你可以使用串口啊,比如:1:給你一個從發給單片機數據後,單片機再原樣發給PC的參考代碼:2:將51某一個(引腳)按鍵0,1狀態,發給PC;
1::::::::::::::
#include <REG52.H>
bit Flag;
unsigned int R_D,S_D;
unsigned char i;
void usart_init(void); ///串口初始化
void main (void) {
usart_init(void); ///串口初始化
while(1)
{
if (Flag==1)
{
SBUF = S_D; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
Flag=0;
}
}
}
}
void ser_int (void) interrupt 4 using 1
{
if(RI == 1) //RI接受中斷標志
{
RI = 0; //清除RI接受中斷標志
R_D = SBUF; //SUBF接受/發送緩沖器
S_D=R_D;///////返回PC發送
Flag=1;
}
}
void usart_init(void)///串口初始化
{
SCON = 0x50; //REN=1允許串列接受狀態,串口工作模式1
TMOD|= 0x20; //定時器工作方式2
PCON|= 0x80;
TH1 = 0xF3;// //baud*2 /* 波特率4800、數據位8、停止位1。效驗位無 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //開串口中斷
EA = 1; // 開總中斷
}
2:::::::::::::
#include <REG52.H>
sbit p34=P3^4;////////定義一個按鍵
bit Flag=1;
unsigned int S_D;
unsigned char i;
void usart_init(void); ///串口初始化
void delay (unsigned int Z) ; //延時程序 Z倍 MS
void key_p34(void) ; /////按鍵檢
void main (void) {
usart_init(void); ///串口初始化
key_p34(void) ; ////上電後檢測一次按鍵的狀態
if (Flag==1)//上電後發送一次按鍵的狀態
{
SBUF =1; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
else
{
SBUF =0; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
while(1)
{
key_p34(void) ;
if (Flag==1)
{
SBUF =1; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
else
{
SBUF =0; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
}
}
void usart_init(void)///串口初始化
{
SCON = 0x50; //REN=1允許串列接受狀態,串口工作模式1
TMOD|= 0x20; //定時器工作方式2
PCON|= 0x80;
TH1 = 0xF3;// //baud*2 /* 波特率4800、數據位8、停止位1。效驗位無 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //開串口中斷
EA = 1; // 開總中斷
}
void delay (unsigned int Z)//延時程序 Z倍 MS
{
unsigned int x,y;
for(x=Z;x>0;x--)
for(y=110;y>0;y--) ;
}
void key_p34(void) /////按鍵檢測
{
if(p34==0)
{ delay(10);
if(p34==0)
{
while(!p34) ;/////等待按鍵鬆手
Flag=0;
}
}
}
㈡ 串列通信在矩陣鍵盤中的應用的電路圖怎麼設計
串列通信、矩陣鍵盤,以及顯示電路等等,在我的空間,都可以找到。
㈢ 鍵盤通信故障怎麼修
仔細檢查室電腦的問題還是鍵盤的問題,鍵盤就三樣東東:鍵盤電路板,印刷線路,介面線,只有線被老鼠咬斷了才有修的價值,其他兩樣都沒轍
㈣ 誰能告訴我usb鍵盤工作的原理〔就是按鍵到電腦識別的原理〕。謝謝啦!
每個按鍵都有個識別碼,當你按的時候,系統會接收到識別碼來確認你按了哪個鍵
㈤ 無線鍵盤的工作原理
不能!因為無線滑鼠的適配器里都有各自廠商的驗證代碼的,而你的本本里的藍牙卻沒有。你可以試試用藍牙或wifi鏈接ppc手機當滑鼠用。具體的可以試試這個軟體「無線滑鼠 Wireless Mouse」
㈥ 標准鍵盤的基本工作原理
CPU與外部設備、存儲器的連接和數據交換都需要通過介面設備來實現,前者被稱為I/O介面,而後者則被稱為存儲器介面。存儲器通常在CPU的同步控制下工作,介面電路比較簡單;而I/O設備品種繁多,其相應的介面電路也各不相同,因此,習慣上說到介面只是指I/O介面。
一、I/0介面的概念
1.介面的分類
I/O介面的功能是負責實現CPU通過系統匯流排把I/O電路和 外圍設備聯系在一起,按照電路和設備的復雜程度,I/O介面的硬體主要分為兩大類: 1)I/O介面晶元
這些晶元大都是集成電路,通過CPU輸入不同的命令和參數,並控制相關的I/O電路和簡單的外設作相應的操作,常見的介面晶元如定時/計數器、中斷控制器、DMA控制器、並行介面等。
2)I/O介面控制卡
有若干個集成電路按一定的邏輯組成為一個部件,或者直接與CPU同在主板上,或是一個插件插在系統匯流排插槽上。
按照介面的連接對象來分,又可以將他們分為串列介面、並行介面、鍵盤介面和磁碟介面等。
2.介面的功能
由於計算機的外圍設備品種繁多,幾乎都採用了機電傳動設備,因此,CPU在與I/O設備進行數據交換時存在以下問題: 速度不匹配:I/O設備的工作速度要比CPU慢許多,而且由於種類的不 同,他們之間的速度差異也很大,例如硬碟的傳輸速度就要比列印機快出很多。 時序不匹配:各個I/O設備都有自己的定時控制電路,以自己的速度傳 輸數據,無法與CPU的時序取得統一。 信息格式不匹配:不同的I/O設備存儲和處理信息的格式不同,例如可以分 為串列和並行兩種;也可以分為二進制格式、ACSII編碼和BCD編碼等。 信息類型不匹配:不同I/O設備採用的信號類型不同,有些是數字信號,而 有些是模擬信號,因此所採用的處理方式也不同。 基於以上原因,CPU與外設之間的數據交換必須通過介面來完成,通常介面有以下一些功能: 1)設置數據的寄存、緩沖邏輯,以適應CPU與外設之間的速度差異,介面通常由一些寄存器或RAM晶元組成,如果晶元足夠大還可以實現批量數據的傳輸; 2)能夠進行信息格式的轉換,例如串列和並行的轉換; 3)能夠協調CPU和外設兩者在信息的類型和電平的差異,如電平轉換驅動器、數/模或模/數轉換器等; 4)協調時序差異; 5)地址解碼和設備選擇功能; 6)設置中斷和DMA控制邏輯,以保證在中斷和DMA允許的情況下產生中斷和DMA請求信號,並在接受到中斷和DMA應答之後完成中斷處理和DMA傳輸。 3.介面的控制方式 CPU通過介面對外設進行控制的方式有以下幾種: 1)程序查詢方式 2)中斷處理方式 3)DMA(直接存儲器存取)傳送方式 二、常見介面 1.並行介面 目前,計算機中的並行介面主要作為列印機埠,介面使用的不再是36針接頭而是25針D形接頭。所謂「並行」,是指8位數據同時通過並行線進行傳送,這樣數據傳送速度大大提高,但並行傳送的線路長度受到限制,因為長度增加,干擾就會增加,容易出錯。 現在有五種常見的並口:4位、8位、半8位、EPP和ECP,大多數PC機配有4位或8位的並口,許多利用Intel386晶元組的便攜機配有EPP口,支持全部IEEE1284並口規格的計算機配有ECP並口。 標准並行口4位、8位、半8位:
4位口一次只能輸入4位數據,但可以輸出8位數據;8位口可以一次輸入和輸出8位數據;半8位也可以。 EPP口(增強並行口):由Intel等公司開發,允許8位雙向數據傳送,可以連接各種非列印機設備,如掃描儀、LAN適配器、磁碟驅動器和CDROM 驅動器等。 ECP口(擴展並行口):由Microsoft、HP公司開發,能支持命令周期、數據周期和多個邏輯設備定址,在多任務環境下可以使用DMA(直接存儲器 訪問)。 目前幾乎所有的586機的主板都集成了並行口插座,標注為 Paralle1或LPT1,是一個26針的雙排針插座。 2.串列介面 計算機的另一種標准介面是串列口,現在的PC機一般至少有兩個串列口COM1和COM2。串列口不同於並行口之處在於它的數據和控制信息是一位接一位串列地傳送下去。這樣,雖然速度會慢一些,但傳送距離較並行口更長,因此長距離的通信應使用串列口。通常COM1使用的是9針D形連接器,而COM2有些使 用的是老式的DB25針連接器。 3.磁碟介面 1)IDE介面 IDE介面也叫做ATA埠,只可以接兩個容量不超過528M的硬碟驅動器,介面的成本很低,因此在386、486時期非常流行。但大多數IDE介面不支持DMA數據傳送,只能使用標準的PCI/O埠指令來傳送所有的命令、狀態、數據。幾乎所有的586主板上都集成了兩個40針的雙排針IDE介面插座,分別標注為IDE1和IDE2。 2)EIDE介面 EIDE介面較IDE介面有了很大改進,是目前最流行的介面。 首先,它所支持的外設不再是2個而是4個了,所支持的設備除了硬碟,還包括CD-ROM驅動器磁碟備份設備等。 其次,EIDE標准取消了528MB的限制,代之以8GP限制。 第三,EIDE有更高的數據傳送速率,支持PIO模式3和模式4標准。 4.SCSI介面 SCSI(SmallComputerSystemInterface)小計算機系統介面,在做圖形處理和網路服務的計算機中被廣泛採用SCSI介面的硬碟。除了硬碟以外,SCSI介面還可以連接CD-ROM驅動器、掃描儀和列印機等,它具有以下特點: ●可同時連接7個外設; ●匯流排配置為並行8位、16位或32位; ●允許最大硬碟空間為8.4GB(有些已達到9.09GB); ●更高的數據傳輸速率,IDE是2MB每秒,SCSI通常可以達到5MB每秒,FASTSCSI(SCSI-2)能達到10MB每秒,最新的SCSI-3甚至能夠達到40MB每秒,而EIDE最高只能達到16.6MB每秒; ●成本較IDE和EIDE介面高很多,而且,SCSI介面硬碟必須和SCSI介面卡配合使用,SCSI介面卡也比IED和EIDE介面貴很多。 ●SCSI介面是智能化的,可以彼此通信而不增加CPU的負擔。在IDE和EIDE設備之間傳輸數據時,CPU必須介入,而SCSI設備在數據傳輸過程中起主動作用,並能在SCSI匯流排內部具體執行,直至完成再通知CPU。 5.USB介面 最新的USB串列介面標準是由Microsoft、Intel、Compaq、IBM等大公司共同推出,它提供機箱外的熱即插即用連接,用戶在連接外設時不用再打開機箱、關閉電源,而是採用「級聯」方式,每個USB設備用一個USB插頭連接到一個外設的USB插座上,而其本身又提供一個USB插座給下一個USB設備使用,通過 這種方式的連接,一個USB控制器可以連接多達127個外設,而每個外設間的距離可達5米。USB統一的4針圓形插頭將取代機箱後的眾多的串/並口(滑鼠、MODEM)鍵盤等插頭。USB能智能識別USB鏈上外圍設備的插入或拆卸。除了能夠連接鍵盤、滑鼠等,USB還可以連接ISDN、電話系統、數字音響、列印機以及掃描儀等低速外設。
三、I/O擴展槽
I/O擴展槽即I/O信號傳輸的路徑,是系統匯流排的延伸,可以插入任意的標准選件,如顯示卡、解壓卡、MODEM卡和音效卡等。通過I/O擴展槽,CPU可對連接到該通道的所有I/O介面晶元和控制卡定址訪問,進行讀寫。 根據匯流排的類型不同,主板上的擴展槽可分為ISA、EISA、MAC、VESA和PCI幾種。
1)ISA插槽 2)EISA插槽 3)VESA插槽 4)PCI插槽 白色,與VESA插槽一樣長,與ISA插槽平行,不需要與ISA插槽配合使用,而且只能插入PCI控制卡。由於主板的空間有限,PCI插槽要佔用ISA插槽的位置
㈦ 鍵盤與單片機串口通信
如果想要電腦控抄制的話襲,可以自己用VB設計一個上位機來控制你的小車啊,設計中用滑鼠移動事件或鍵盤按下事件,與下位機通信可以用無線串口。這樣不但可以使用鍵盤方向鍵來控制,而且還可實現滑鼠來控制,想想也是非常好玩的!我不太懂VB,不過學也不難。可以試試看嘛
㈧ 鍵盤的製作原理是什麼只需要知道鍵盤和主機的通信原理,按鍵的觸發不需要。
詳情參考網路經鍵盤字母排列的由來
鍵盤字母排列順是按照字母使用頻率的高低來排序的。有心的讀者也許會感到奇怪:為什麼要把26個字母作這種無規則的排列呢?既難記憶又難熟練。據說其原因是這樣的:
在19世紀70年代,肖爾斯公司是當時最大的專門生產打字機的廠家。由於當時機械工藝不夠完善,使得字鍵在擊打之後的彈回速度較慢,一旦打字員擊鍵速度太快,就容易發生兩個字鍵絞在一起的現象,必須用手很小心地把它們分開,從而嚴重影響了 打字速度。為此,公司時常收到客戶的投訴。
為了解決這個問題,設計師和工程師傷透了腦筋。後來,有 一位聰明的工程師提議:打字機絞鍵的原因,一方面是字鍵彈回速度慢,另一方面也是打字員速度太快了。既然我們無法提高彈回速度,為什麼不想辦法降低打字速度呢?
這無疑是一條新思路。降低打字員的速度有許多方法,最簡單的方法就是打亂26個字母的排列順序,把較常用的字母擺在笨拙的手指下,比如,字母"O"、"S"、"A"是使用頻率很高的,卻放在最笨拙的右手無名指、左手無名指和左手小指來擊打。使用頻率較低的"V"、"J"、"U"等字母卻由最靈活的食指負責。
結果,這種"QWERTY"式組合的鍵盤誕生了,並且逐漸定型。後來,由於材料工藝的發展,字鍵彈回速度遠大於打字員擊鍵速度,但鍵盤字母順序卻無法改動。至今出現過許多種更合理的字母順序設計方案,但都無法推廣,可知社會的習慣勢力是多麼強大。
另外,鍵盤也指鍵盤類樂器,如電子琴、鋼琴等。在樂隊現場演出時,許多聲效(如搖滾樂中的弦樂聲)需要電子琴或電子鋼琴來模擬,負責這一類樂器的樂手被稱作「鍵盤手」。
鍵盤的歷史
鍵盤非常悠久,早在1714年,就開始相繼有英、美、法、意、瑞士等國家的人發明了各種形式的打字機,最早的鍵盤就是那個時候用在那些技術還不成熟的打字機上的。直到1868年,「打字機之父」——美國人克里斯托夫·拉森·肖爾斯(Christopher Latham Sholes)獲打字機模型專利並取得經營權經營,又於幾年後設計出現代打字機的實用形式和首次規范了鍵盤,即現在的「QWERTY」鍵盤。
為什麼要將鍵盤規范成現在這樣的「QWERTY」鍵盤按鍵布局呢?這是因為最初,打字機的鍵盤是按照字母順序排列的,而打字機是全機械結構的打字工具,因此如果打字速度過快,某些鍵的組合很容易出現卡鍵問題,於是克里斯托夫·拉森·肖爾斯(Christopher Latham Sholes)發明了QWERTY鍵盤布局,他將最常用的幾個字母安置在相反方向,最大限度放慢敲鍵速度以避免卡鍵。肖爾斯在1868年申請專利,1873年使用此布局的第一台商用打字機成功投放市場。這就是為什麼有今天鍵盤的排列方式。
QWERTY的鍵盤按鍵布局方式非常沒效率。比如:大多數打字員慣用右手,但使用QWERTY鍵盤,左手卻負擔了57%的工作。兩小指及左無名指是最沒力氣的指頭,卻頻頻要使用它們。排在中列的字母,其使用率僅占整個打字工作的30%左右,因此,為了打一個字,時常要上上下下移動指頭。
1888年全美舉行打字公開比賽,法院速記員馬加林按照明確的指法分工展示了他的盲打技術,錯誤只有萬分之三,使在場人驚訝不已,據記載馬加林的獎金是500美元, 從這以後很多人效仿這種盲打,在美國也開始有了專門培養打字員的學校。
由於盲打技術的出現,使得擊鍵速度足以滿足日常工作的需要,然而在60年後(1934年),華盛頓一個叫德沃拉克(Dvorak)的人為使左右手能交替擊打更多的單詞又發明了一種新的排列方法,這個鍵盤可縮短訓練周期1/2時間,平均速度提高35%。DVORAK鍵盤布局原則是:1、盡量左右手交替擊打,避免單手連擊;2、越排擊鍵平均移動距離最小;3、排在導鍵位置應是最常用的字母。
比DVORAK鍵盤更加合理、高效的是理連·莫爾特(Lillian Malt)發明的MALT鍵盤。它改變了原本交錯的字鍵行列,並使拇指得到更多使用、使「後退鍵」(Backspace)及其他原本遠離鍵盤中心的鍵更容易觸到。但MALT鍵盤需要特別的硬體才能安裝到電腦上,所以也沒有得到廣泛應用。
到了20世紀中期,鍵盤又多了一個用武之地——作為電腦的基本輸入設備。另一方面,至今,「QWERTY」鍵盤仍然是使用的最多的鍵盤布局方式,這是一個非常典型的「劣勢產品戰勝優勢產品」的例子。驗
㈨ 鍵盤是怎麼和電腦通信的呢,之間用的是什麼協議。編寫鍵盤驅動需要學習那方面的知識。
如果是USB介面的鍵盤,那麼你要懂USB協議,而且單片機的速度要足夠快,有時候還需要回鍵盤內部usb晶元,答單片機做主機,USB鍵盤做從機。
USB協議是很復雜的,不是一天兩天就能搞得通的,程序也很復雜,如果你是初學者,那麼不建議你一開始就調試USB,你可以嘗試下圓口的PS2鍵盤,PS2是串列通信,只需要按照通信格式發送相應的數據就可以了,具體的可以查一下PS2方面的資料。
㈩ 怎麼把無線鍵盤改成有線鍵盤!拜求各位大神,小的略懂電路
鍵盤,滑鼠類通信,有PS/2,USB, 對於這兩種,除了,矩陣按鍵的,128=2的7次方,12*12根線組合,經版過串列的權晶元,或USB轉換晶元後,前者得到,,SCK DATA 兩根信號線,後者,就是D+,D1 兩根線,進USB口後,跟據驅動,操作電腦,無線鍵盤,滑鼠,採用,2.4G專用晶元,輸出高頻的調制無線信號,故,不能用原板直接改成有線,需要,上面的,串轉,或USB轉,才可以,