液晶和矩陣鍵盤(pán)SOPC外設組件設計開(kāi)發(fā)

圖 4 VGA 和HY-12864E 字模顯示示意圖
變換后的字庫文件HZK16_lcd.bin 和ASC16_lcd.bin 通過(guò)Nios II Command Shell 的命令 bin2flash 轉換為.Flash 文件后就可以下載到NiosII 開(kāi)發(fā)板中Flash 特定位置,供中英文顯示 時(shí)字模查詢(xún)使用,假定Flash 大小是2Mbytes,起始地址是0x0,方法如下:
bin2flash--location=0x100000--input=HZK16_lcd.bin --output=HZK16_lcd.flash
bin2flash --location=0x10ffff --input=ASC16_lcd.bin --output=ASC16_lcd.flash
nios2-flash-programmer --base=0x0 HZK16_lcd.flash(中文字庫下載到Flash 的0x100000 位置)
nios2-flash-programmer --base=0x0 ASC16_lcd.flash (英文字庫下載到Flash 的0x10ffff 位置)
由于 LCD 是接在A(yíng)valon 總線(xiàn)的從端口上的,在完成LCD 用戶(hù)組件時(shí)使用的地址映射 (Slave Addressing)是memory 方式,這種方式可以支持一個(gè)字節(8bits)寬度的數據訪(fǎng)問(wèn), 而LCD 的數據寬度也是一個(gè)字節,因此可以使用IOWR_8DIRECT(BASE,OFFSET,DATA) 和IORD_8DIRECT(BASE,OFFSET)函數完成對LCD 的寫(xiě)、讀操作,根據前面地址線(xiàn)的連 接定義,我們可以定義對LCD 的操作函數如表4 所示。
表 4:LCD 的讀寫(xiě)操作函數定義

這里的 LCD_HY12864_BASE 為L(cháng)CD 在NiosII 軟核中的基地址。HD61202 控制器通過(guò)寫(xiě)相 應的命令控制LCD 顯示的開(kāi)關(guān)、起始行號、操作的行地址列地址等,通過(guò)讀狀態(tài)獲得LCD 的工作信息,通過(guò)讀/寫(xiě)數據指令讀出寫(xiě)入RAM 中的數據。在這些基本的LCD 讀寫(xiě)函數上, 定義LCD 操作的宏參數,編寫(xiě)一些對LCD 的操作函數:LCD 初始化函數、清行函數、置行函 數、顯示一行中英文的函數等。其中顯示一行中英文流程如圖5 所示。

圖 5 中英文顯示流程圖
4. 本文創(chuàng )新點(diǎn)
最后經(jīng)過(guò)測試,矩陣鍵盤(pán)按鍵中斷響應準確無(wú)誤,由于掃描的過(guò)程由硬件實(shí)現,不占用 CPU 資源,大大提高了系統的性能。LCD 可以接收任意中英文的輸入顯示。在開(kāi)發(fā)設計過(guò) 程中,矩陣鍵盤(pán)和LCD 接口均封裝為用戶(hù)自定義外設組件,加入SOPC Builder 的元件庫中, 可以很方便地在其他系統中根據實(shí)際情況添加使用,二者的驅動(dòng)程序也可以很方便地移植到 其他工程設計中,體現出了SOPC 片上可編程系統靈活、方便、可重用的優(yōu)勢。本文設計的 矩陣鍵盤(pán)和LCD 成功應用到筆者設計的PDA 項目中。
DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY
上拉電阻相關(guān)文章:上拉電阻原理
評論