《《鍵盤輸入與IO實(shí)驗(yàn)》PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《鍵盤輸入與IO實(shí)驗(yàn)》PPT課件(15頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、JX44B0實(shí)驗(yàn)系統(tǒng)教案鍵盤輸入與IO實(shí)驗(yàn),武漢創(chuàng)維特信息技術(shù)有限公司,2020/9/21,2,,提綱,1,3,2,4,5,基礎(chǔ)知識(shí),實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)內(nèi)容,預(yù)備知識(shí),實(shí)驗(yàn)設(shè)備,6,實(shí)驗(yàn)過程,7,實(shí)驗(yàn)報(bào)告要求,3,一 實(shí)驗(yàn)?zāi)康?,實(shí)驗(yàn)?zāi)康?,學(xué)習(xí)鍵盤驅(qū)動(dòng)原理 掌握通過CPU的I/O擴(kuò)展鍵盤的方法,4,二 實(shí)驗(yàn)內(nèi)容,,實(shí)驗(yàn)內(nèi)容,,編寫矩陣鍵盤掃描程序,并將按鍵鍵值在數(shù)碼管中顯示,5,三 預(yù)備知識(shí),,預(yù)備知識(shí),,了解ADT集成開發(fā)環(huán)境的基本功能; 了解鍵盤的構(gòu)成以及原理,6,四 實(shí)驗(yàn)設(shè)備,,實(shí)驗(yàn)設(shè)備,,JX44B0教學(xué)實(shí)驗(yàn)箱 ADT1000仿真器和ADT IDE集成開發(fā)環(huán)境 串口連接線,7,五 基礎(chǔ)知
2、識(shí),,鍵盤實(shí)現(xiàn)方案,,,鍵盤實(shí)現(xiàn)方案 采用專門的芯片實(shí)現(xiàn)鍵盤掃描 采用軟件實(shí)現(xiàn)鍵盤掃描 軟鍵盤實(shí)現(xiàn)方案 當(dāng)開關(guān)打開時(shí),通過處理器的I/O 口的一個(gè)上拉電阻提供邏輯1;當(dāng)開關(guān)閉合時(shí),處理器的I/O 口的輸入將被拉低到邏輯0。,,8,五 基礎(chǔ)知識(shí),,矩陣鍵盤電路,,,一個(gè)瞬時(shí)接觸開關(guān)(按鈕)放置在每一行與每一列的交叉點(diǎn)。每一行由一個(gè)輸出端口的一位驅(qū)動(dòng),每一列由一個(gè)電阻器上拉且供給輸入端口一位。,,,9,五 基礎(chǔ)知識(shí),,按鍵抖動(dòng),,,開關(guān)并不完善,因?yàn)楫?dāng)它們被按下或者被釋放時(shí),并不能夠產(chǎn)生一個(gè)明確的1或者0。盡管觸點(diǎn)可能看起來穩(wěn)定而且很快地閉合,但與微處理器快速的運(yùn)行速度相比,這種動(dòng)作是比較慢的。當(dāng)
3、觸點(diǎn)閉合時(shí),其彈起就像一個(gè)球。彈起效果將產(chǎn)生如下圖所示的好幾個(gè)脈沖。彈起的持續(xù)時(shí)間通常將維持在5ms30ms 之間。,,,10,五 基礎(chǔ)知識(shí),,鍵盤掃描,,,鍵盤掃描過程就是讓微處理器按有規(guī)律的時(shí)間間隔查看鍵盤矩陣,以確定是否有鍵被按下 一旦處理器判定有一個(gè)鍵按下,鍵盤掃描軟件將過濾掉抖動(dòng)并且判定哪個(gè)鍵被按下 每個(gè)鍵被分配一個(gè)稱為掃描碼的唯一標(biāo)識(shí)符。應(yīng)用程序利用該掃描碼,根據(jù)按下的鍵來判定應(yīng)該采取什么行動(dòng),換句話說,掃描碼將告訴應(yīng)用程序按下哪個(gè)鍵,,,11,五 基礎(chǔ)知識(shí),,鍵盤掃描算法,,,初始化:所有的行(輸出端口)被強(qiáng)行設(shè)置為低電平 在沒有任何鍵按下時(shí),所有的列(輸入端口)將讀到高電平。
4、任何鍵的閉合將造成其中的一列變?yōu)榈碗娖健?一旦檢測(cè)到有鍵被按下,就需要找出是哪一個(gè)鍵。過程很簡(jiǎn)單,微處理器只需在其中一列上輸出一個(gè)低電平。如果它在輸入端口上發(fā)現(xiàn)一個(gè)0值,微處理器就知道在所選擇行上產(chǎn)生了鍵的閉合,,,12,五 基礎(chǔ)知識(shí),,JX44B0的鍵盤模塊,,,JX44B0具有44的軟鍵盤。原理圖如下:,,,13,五 基礎(chǔ)知識(shí),,實(shí)驗(yàn)說明,,,,鍵盤處理流程圖,,依次將鍵盤的每一行輸出低電平,延時(shí)一段時(shí)間 然后獲取該行中各列的輸入情況,如果各列全部為1則繼續(xù)查詢下一行,否則延時(shí)一段時(shí)間并重新掃描一次 如果掃描結(jié)果與上次掃描結(jié)果相同則調(diào)用key_get_char獲取鍵碼,然后調(diào)用display_num在LED上顯示相應(yīng)鍵值。 圖中通過如下程序?qū)㈡I盤的row行輸出低電平: unsigned char*keyboard_port = (unsigned char*)0 x2000000; *keyboard_port = (0 x00000001 << row);,14,六 實(shí)驗(yàn)過程,,實(shí)驗(yàn)過程,,,15,六 實(shí)驗(yàn)報(bào)告要求,,實(shí)驗(yàn)報(bào)告要求,,,鍵盤掃描有哪幾種方式,分別說明其基本原理; 思考使用中斷方式如何處理鍵盤輸入,試畫出流程圖。,