《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于NIOSⅡ的矩陣鍵盤和液晶顯示外設組件的設計
基于NIOSⅡ的矩陣鍵盤和液晶顯示外設組件的設計
摘要:  本文提出了一種針對LCD控制器和矩陣鍵盤的IP核的設計方法。該方法利用SOPC Builder中元件編輯器Create New Component,通過自定義邏輯方法在SOPC設計中添加自己開發的液晶顯示模塊和鍵盤IP核。該控制器具有Avalon總線接口,可與其它標準IP 核一起構成以NiosⅡ為核心的片上系統,并可編寫驅動程序。
關鍵詞: SoPC NiosⅡ SOPC Builder
Abstract:
Key words :

  0 引言

  NIOSⅡ是Altera公司推出的第二代IP軟核處理器。它與其他IP核可構成SOPC系統的主要部分。Altera SOPC Builder提供有NiosⅡ處理器及一些常用外設接口,因此,對于一些庫中沒有提供的模塊,用戶就可以自己定義添加。用戶還可以通過自定義邏輯方法在 SOPC設計中添加自己開發的IP核。而定制用戶邏輯外設是使用NiosⅡ嵌入式軟核處理器的SOPC系統的重要特性之一。

  本文提出了一種針對LCD控制器和矩陣鍵盤的IP核的設計方法。該方法利用SOPC Builder中元件編輯器Create New Component,通過自定義邏輯方法在SOPC設計中添加自己開發的液晶顯示模塊和鍵盤IP核。該控制器具有Avalon總線接口,可與其它標準IP 核一起構成以NiosⅡ為核心的片上系統,并可編寫驅動程序。

  1 鍵盤和顯示電路的硬件設計

  鍵盤采用4×4行列式鍵盤,其4根行輸入線KEY0~KEY3和4根列輸出線KEYSCAN0~KEYSCAN3與鍵盤接口電路相連,每行信號線使用上拉電阻接到3.3 V電源上。液晶顯示采用的是THSl2864-12顯示模塊。HSl2864-12是一種圖形點陣液晶顯示器,液晶顯示屏為128×64點陣,可顯示4 行,每行顯示8個漢字,該模塊具有2MB的中文字型ROM,可提供8192個16×16點陣中文字型。同時,為了便于英文和其它常用字符顯示,它還具有 16 KB半寬字型ROM,提供有128個16×8點陣的字母符號字型;另外,繪圖顯示畫面還可提供一個64×256點陣的繪圖區域(GDRAM)及240點的 ICONRAM,可以和文字、畫面混合顯示,其內含的CGRAM可提供4組軟件可編程的16×16點陣造字功能。其鍵盤電路和顯示模塊接口電路如圖1所示。

鍵盤電路和顯示模塊接口電路

  2 鍵盤掃描電路的程序設計

  行列式鍵盤又叫矩陣式鍵盤,它用帶有I/O口的線組成行列結構,按鍵設置在行列的交點上。傳統矩陣鍵盤大多使用軟件驅動控制,即在程序中循環掃描查詢鍵盤的狀態,以判斷是否有鍵按下,這種方法比較耗費CPU資源,而且查詢掃描結果可能出現誤碼。本文提出了一種新的用硬件描述語言在FPGA中實現矩陣鍵盤控制的方法。該方法使用時序電路掃描查詢鍵盤,在發現鍵按下的時候,可給出相應的鍵碼和中斷信號,并以中斷的方式處理按鍵。矩陣鍵盤掃描分4個時序,在每一個時序,KEY0~KEY3(四根行線線)端口分別輸出1110、1101、1011、0111掃描碼,并分別控制一列按鍵接地,同時在每個時序查詢 KEYSCAN0~KEYSCAN3(四根列線)端口。

  圖2所示是一種4×4行列結構的鍵盤掃描電路,它由分頻器電路、鍵盤掃描計數電路、鍵盤行(row)列(col)按鍵檢測電路、按鍵抖動消除電路、鍵盤編碼電路等組成。

  設計好鍵盤的硬件控制程序以后,鍵盤控制程序可封裝為參數可配置的用戶自定義外設組件,以在SOPCBuilder中直接添加使用。完成KEYS器件的加入后,KEYS器件就會出現在SOPCBuilder的組件選擇欄的“User Logic”項目下,最后在NiosⅡIDE中設計矩陣鍵盤的驅動程序,安裝鍵盤按鍵中斷,編寫按鍵中斷服務程序,從而通過按鍵中斷獲取相應按鍵的鍵盤碼。其例程如下:

  /*初始化鍵盤中斷*/

例程如下

  3 LCD顯示模塊的程序設計

  在NiosⅡ和LCD的接口中,一方面可以通過在NiosⅡ系統中添加相應I/O口的方式來實現對液晶顯示屏LCD的間接控制,另一方面也可以利用構建 IP核來直接進行控制。第一種是將LCD接口當作普通的外部設備PIO進行操作,LCD的數據以及讀、寫使能、片選信號等都包括在PIO總線內;第二種是在SOPC Builder中自己定義eomponent,并把液晶顯示模塊看成外部存儲器,直接做成Avalon總線Slave設備。

  第一種方法在硬件工程中,需要設計與外設相連的I/O接口;而在軟件工程中,需要用戶編寫相應的接口程序對外設進行初始化,設置相應的外設寄存器。在每次新建一個工程后,這樣的工作都得重復進行,因而會增加開發成本。第二種方案需要寫HDL模塊,自己定義控制狀態、數據寄存器和控制位,這種方式控制靈活,易于實現復雜的控制時序,而且一旦自定義設備成功后,就可以像使用其他設備一樣來使用這些設備。用戶也可以將這些設備共享給其他的使用者,這樣就大大減少了重復工作。本設計中采用第二種方法。

   在Altera SOPC Builder中雙擊Create NewComponent,打開Component窗口,并在HDL Files標簽下添加LCD硬件描述語言編寫的文件(該文件描述了組件與Avalon總線的接口以及組件與液晶屏的接口),系統編輯器就會立即自動對文件進行分析,并從文件中讀I/O信號和參數信息。Lcd 12864自定義邏輯信號如圖3所示。

 

Lcd 12864自定義邏輯信號

  完成LCD_12864器件的加入后,LCD_12864器件就會出現在SOPC Builder的組件選擇欄的“User Logic”項目下。圖4所示是LCD模塊的管腳分配圖。

LCD模塊的管腳分配圖

  LCD模塊的初始化就是對LCD進行模式設置。由于SOPC Builder中的LCDl2864控制模塊已經考慮了LCD的讀寫時序,所以使用NIOSⅡIDE進行LCD驅動和控制時只需對LCD進行初始化。其部分初始化子程序如下:

部分初始化子程序

  之后,打開NiosⅡIDE,創建軟件工程,編寫test程序,即可測試驗證液晶模塊的顯示結果。其中部分程序如下:

部分程序

  4 結束語

  本設計最后經過測試證明,矩陣鍵盤按鍵中斷響應準確無誤。由于其掃描過程由硬件實現,無需占用CPU資源,故可大大提高系統的性能,LCD可以接收任意中英文的輸入顯示。在開發設計過程中,矩陣鍵盤和LCD接口均封裝為用戶自定義的外設組件加入SOPCBuilder的元件庫中,因而可以很方便地在其他系統中根據實際情況添加使用。用戶也可以將這些設備共享給其他的使用者,這樣就大大減少了重復工作。與其他方法相比,該方法無疑是一種更高效、靈活和低成本的開發方法,同時體現出了SOPC片上可編程系統的靈活、方便、可重用的優勢。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久激情网站| 午夜精品美女久久久久av福利| 欧美国产精品日韩| 久久av一区二区三区漫画| 最新日韩欧美| 久久精品国产久精国产一老狼 | 伊人久久婷婷色综合98网| 国产精品福利影院| 欧美精品免费看| 蜜臀av一级做a爰片久久| 性欧美大战久久久久久久免费观看| 亚洲人成网站在线观看播放| 欧美专区在线播放| 亚洲女性裸体视频| 夜夜嗨av色综合久久久综合网| 在线免费观看日韩欧美| 国内在线观看一区二区三区| 国产麻豆9l精品三级站| 欧美精品在线免费播放| 美女图片一区二区| 久久精品国亚洲| 欧美一区二区三区久久精品| 亚洲专区一区| 亚洲一区二区三区四区中文| 一区二区三区黄色| 亚洲精品视频在线看| 欧美一区二区三区免费观看视频 | 一本色道久久综合亚洲精品小说| 亚洲大片免费看| 欧美专区在线| 久久精品电影| 久久gogo国模啪啪人体图| 性感少妇一区| 欧美一站二站| 香蕉成人伊视频在线观看| 亚洲一区二区免费在线| 亚洲天堂偷拍| 在线亚洲一区| 中文在线不卡视频| 亚洲午夜一区二区三区| 亚洲午夜免费视频| 亚洲制服少妇| 亚洲欧美在线x视频| 先锋影音久久久| 亚洲第一在线视频| 亚洲国产精品999| 亚洲人成网在线播放| 亚洲美女电影在线| 中文久久乱码一区二区| 亚洲一区999| 午夜老司机精品| 久久高清一区| 午夜国产一区| 久久国产日韩| 麻豆九一精品爱看视频在线观看免费| 老司机一区二区| 欧美福利一区二区| 欧美精品一区二区在线播放| 欧美另类专区| 国产精品久久久久99| 国产性色一区二区| 亚洲二区在线观看| 亚洲久久一区| 亚洲影音先锋| 亚洲第一精品夜夜躁人人爽| 亚洲精品国产视频| 亚洲一卡久久| 久久久久国产精品一区| 免费av成人在线| 欧美日韩在线播放三区| 国产欧美日韩一区二区三区在线| 国内精品久久久久久久影视蜜臀| 亚洲国产mv| 亚洲一区二区三区免费在线观看| 篠田优中文在线播放第一区| 亚洲黄一区二区三区| 一区二区三区日韩| 午夜宅男欧美| 免费在线成人| 国产精品国码视频| 好看的日韩视频| 亚洲精品乱码久久久久久久久| 亚洲一区二区三区在线视频| 久久精品欧美日韩精品| 在线视频亚洲| 久久久精品tv| 欧美视频网站| 激情六月婷婷久久| 亚洲精品在线免费观看视频| 亚洲摸下面视频| 亚洲精品美女91| 欧美永久精品| 欧美日韩视频| 国内精品一区二区| 夜夜嗨av色一区二区不卡| 欧美在线视频一区| 在线亚洲欧美| 久久一区亚洲| 欧美午夜激情在线| 伊人成人在线| 制服诱惑一区二区| 亚洲开发第一视频在线播放| av成人老司机| 久久精品免费电影| 国产精品久久久久aaaa九色| 亚洲高清视频一区二区| 亚洲欧美精品伊人久久| 一区二区三区免费在线观看| 六月丁香综合| 国产伦精品一区二区| 99精品国产高清一区二区| 最新中文字幕亚洲| 久久久精品性| 国产欧美日韩视频在线观看| 99精品视频免费在线观看| 亚洲国产清纯| 久久精品视频免费观看| 国产精品九九| 亚洲美女免费视频| 亚洲精品一区二区三区不| 欧美有码在线视频| 欧美日韩在线三级| **欧美日韩vr在线| 欧美有码视频| 欧美一级理论片| 欧美电影在线观看| 亚洲激情六月丁香| 亚洲人成在线观看| 另类天堂av| 黄色日韩网站视频| 欧美在线播放高清精品| 欧美在线高清视频| 国产精品日韩欧美一区二区| 99国产精品99久久久久久粉嫩| 亚洲精品视频免费观看| 久久久久久夜| 国产欧美日韩精品a在线观看| 一区二区三区四区五区精品| 一区二区三欧美| 欧美韩日高清| 最近中文字幕日韩精品| 亚洲精品美女在线观看| 久久精品动漫| 国产视频一区二区三区在线观看| 亚洲女性裸体视频| 午夜精品一区二区三区在线| 国产精品久久99| 一区二区三区视频在线| 亚洲一区二区三区四区视频| 欧美午夜免费电影| 亚洲免费高清| 亚洲视频在线看| 国产精品国产三级国产专区53 | 亚洲欧美中文日韩在线| 欧美在线观看天堂一区二区三区| 国产精品久久久久久久久免费 | 欧美 亚欧 日韩视频在线| 在线国产日韩| 99riav国产精品| 欧美视频一区二| 亚洲性感激情| 欧美一区二区三区成人| 国产日韩欧美在线看| 欧美一区二区在线| 欧美aaa级| 99这里只有精品| 午夜精品一区二区三区在线| 国产欧美一区二区三区另类精品 | 欧美伊人久久| 国内揄拍国内精品久久| 亚洲激情影视| 欧美日韩国产成人在线91| 一区二区三区高清不卡| 亚洲香蕉成视频在线观看| 国产精品免费aⅴ片在线观看| 午夜精品久久久久久99热| 久久在线免费观看视频| 亚洲国产经典视频| 亚洲一区二区三区精品动漫| 国产噜噜噜噜噜久久久久久久久| 亚洲成人中文| 欧美区国产区| 亚洲一区二区在线视频| 久久久之久亚州精品露出| 亚洲国产精品欧美一二99| 亚洲综合色自拍一区| 国产在线乱码一区二区三区| 亚洲精品自在久久| 国产精品色在线| 亚洲福利视频网站| 欧美日一区二区在线观看| 欧美一区高清| 欧美日韩播放| 亚洲欧美在线x视频| 欧美国产一区二区在线观看| 亚洲午夜一级| 免费观看日韩av| 亚洲一区免费| 欧美a级一区| 午夜亚洲性色福利视频|