2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1FPGA 控制的 控制的 PS/2 接口電路設計 接口電路設計摘要: 摘要:PS2 作為鍵盤接口至今仍在廣泛使用。本論文根據(jù) PS2 鍵盤接口的協(xié)議,用 VHD語言編程,用 FPGA 控制 PS2,使其能夠接收從鍵盤鍵入的信息,并把它顯示在數(shù)碼管和液晶顯示頻上。The Design of PS / 2 Interface Circuit by Control of FPGAAbstract:Today,PS2 keyboard int

2、erface is still being used widely.This report is based PS2 keyboard interface protocol, with VHD language programming, using FPGA control PS2, so that it can receive information from the keyboard to type, and display it

3、in the digital frequency of the tube and liquid crystal display.關鍵詞: 關鍵詞:VHDL,F(xiàn)PGA , PS2, QuartusII引言: 引言:PS2 是一類應用廣泛的鍵盤接口。本文論述了用 FPGA 控制 PS2 的設計思想及方法,并實現(xiàn)把按鍵的掃描碼及其對應的 ASCII 碼顯示在 LED 及 LCD上。 設計原理 設計原理通過分析,本次設計需要分四部分實現(xiàn):1.接

4、收從鍵盤發(fā)出的掃描碼信息2.把接收到的掃描碼轉(zhuǎn)換成 ASCII 碼 3.把掃描碼和 ASCII 碼顯示在數(shù)碼管上 4.把掃描碼和 ASCII 碼顯示在 LED 液晶上。1.PS2 鍵盤接口協(xié)議 鍵盤接口協(xié)議介紹 介紹PS2 協(xié)議和接口最初是由 IBM 公司開發(fā)并廣泛使用的應用于鍵盤/鼠標的協(xié)議和 接口。PS2 鍵盤接口是 6 芯的插頭,各插頭定義如下:1DATAKey Data2n/cNot connected3GNDGnd4VCCPo

5、wer , +5 VDC5CLKClock6n/cNot connected在 PS2 的 6 個芯中,2 和 6 未定義,3 和 4 為電源和地,需要用 FPGA 控制的只有 1(數(shù)據(jù))和 5(時鐘)。 2. 2.把從鍵盤發(fā)出的數(shù)據(jù)轉(zhuǎn)換成掃描碼 把從鍵盤發(fā)出的數(shù)據(jù)轉(zhuǎn)換成掃描碼3碼兩種,當一個按鍵按下或按住,鍵盤就向接口發(fā)送一個字節(jié)的鍵盤接通的掃 描碼,稱為通碼。當該按鍵彈起或釋放時,鍵盤向接口發(fā)送兩個字節(jié)的鍵盤斷開的掃描碼,稱為斷碼。

6、斷碼和通碼有一定的聯(lián)系,多數(shù)第二套斷碼有兩字節(jié) 長。它們的第一個字節(jié)是 F0 ,第二個字節(jié)是這個鍵的通碼。擴展按鍵的斷碼通常有三個字節(jié),它們前兩個字節(jié)是 E0h,F0h ,最后一個字節(jié)是這個按鍵通碼的 最后一個字節(jié)。鍵盤每個按鍵被分配了唯一的通碼和斷碼。這樣,我們通過查找唯一的通碼和斷碼就可以確定按下的是哪一個鍵。每個鍵一整套的通斷碼組成了掃描碼集。有三套標準的掃描碼集,所有現(xiàn)代的鍵盤默認使用第二套掃描 碼。有了這個基礎,我們就可以設計

7、程序把掃描碼轉(zhuǎn)換成 ASCII 碼了。這部分的核心是查表。需要注意的是當 Shift 鍵和 CapsLock 鍵按下時的不同結果。我們同樣先來定義幾個端口。用 scan 作為掃描碼的輸入端口,CLK 作為時鐘信號,它與上一個掃描碼輸出電路的觸發(fā)中斷信號 INTERRUPT1 相連接。定義 DATAASCII 為最終的 ASCII 碼輸出。另外再定義一個 ASCII 碼轉(zhuǎn)換結束的中斷信號 INTERRUPT2。整個轉(zhuǎn)換的思路是,由接收過來

8、的掃描碼的值,通過查表判斷這個掃描碼對應的是哪一個按鍵,再在 ASCII 表中查找這個按鍵的 ASCII 值,然后把按鍵的 ASCII 值輸出。這里面牽扯到組合鍵的問題。即 Shift 和 Capslock 這兩個鍵有沒有按下。為了判斷組合鍵有沒有按下,我們設計幾個觸發(fā)器來保存上一個時鐘的特殊組合鍵的狀態(tài),以便后來的 ASCII 碼轉(zhuǎn)換。當檢測到有這兩個按鍵 按下時,就把相應的 Shifted_D 或 Capslocked_D 置為 1

9、,然后再通過 D 觸發(fā)器把這兩個鍵的狀態(tài)鎖存起來。鎖存后為 Shifted 和 Capslocked。判斷這兩個鍵按下的依據(jù)是判斷掃描碼的值,若掃描碼的值對應的是這兩個按鍵,就可以把 相應的鍵的狀態(tài)置 1。在轉(zhuǎn)換時我們先不管組合鍵有沒有按下,先根據(jù)掃描碼的值通過查表找到它的 ASCII 值,最后再判斷組合鍵有沒有按下。具體操作是,當接收到掃描碼時,先判斷掃描碼的值是否為 Shift 或 Capslock 的掃描碼值,如果是的話就表示有組

10、合鍵按下了,這時把 Shifted_D 或 Capslocked_D 置 1,否則置 0.轉(zhuǎn)換成 的 ASCII 碼用 TMPASCII 表示。當這些工作完成以后,再判斷 Shifted 或Capslocked 的值是否為 1,若這兩個值都為 1 或 0,則應為小寫,這時就需要把 前得到的 TMPASCII 的值加上十六進制的“20”。當然,這些大小寫轉(zhuǎn)換是針對 ASCII 值在“A”和“a”之間而言的。另外,有些鍵上面有上下兩排字符,

11、當Shift 鍵按下時用到的是上面一排,這個應該注意。解決這個問題的方法很簡 單,由于在前面我們已經(jīng)把 Shift 鍵前一個狀態(tài)鎖存起來,在進行掃描碼到 ASCII 碼轉(zhuǎn)換的時候,若遇到有兩排字符的鍵時,先判斷 Shifted 是否為 1,若為 1 則轉(zhuǎn)換上面字符的 ASCII 值就行了。最后我們把轉(zhuǎn)換得到的值賦給一個信 號 ASCII。若沒有按鍵按下或掃描碼對應的不是鍵盤的 126 個鍵,則把 ASCII賦成“10000000”。在轉(zhuǎn)

12、換中我們還應該考慮一個問題。比如我們要顯示小寫的 a 這個字母, 當按下 a 再彈起時我們接收到的一串掃描碼應該為 1C,F0,1C。再比如我們要顯示大寫的字母 A,應該是先按 Shift 鍵,再按 A 鍵,然后彈起 A 鍵,再彈起 Shift 鍵。那么我們接收到的掃描碼就該為:12,1C,F0,1C,F0,12。我們接收到這么些掃描碼,而我們要輸出的 ASCII 碼應該為 61(A 為小寫時)和 41(A 為 大寫時)。如果我們都一一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論