《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于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| 亚洲福利视频二区| 91久久久久久久久久久久久| 亚洲国产精品久久久久秋霞蜜臀 | 最新日韩在线| 91久久午夜| 亚洲精品日韩在线观看| 亚洲美洲欧洲综合国产一区| 亚洲精品美女在线观看| 亚洲日本aⅴ片在线观看香蕉| 亚洲激情成人| 亚洲毛片在线免费观看| 9色国产精品| 亚洲女同性videos| 午夜精品久久久久久久白皮肤| 亚洲一区二区不卡免费| 午夜精品视频一区| 久久精品国产亚洲精品| 久久在线免费观看| 欧美精品播放| 国产精品国产三级国产aⅴ入口 | 在线日韩欧美视频| 亚洲激情一区二区三区| 亚洲伦理在线| 亚洲一级黄色av| 久久精品色图| 亚洲精选视频在线| 亚洲一区二区视频在线观看| 午夜激情久久久| 久久久久久国产精品mv| 蜜桃精品一区二区三区| 欧美区一区二| 国产精品制服诱惑| 影音先锋亚洲一区| 99视频在线精品国自产拍免费观看| 中国女人久久久| 久久大香伊蕉在人线观看热2| 91久久国产综合久久91精品网站| 一本大道av伊人久久综合| 亚洲一区二区三区在线| 久久精品男女| 欧美精品乱码久久久久久按摩| 国产精品分类| 国语自产精品视频在线看抢先版结局 | 正在播放欧美视频| 欧美亚洲日本国产| 日韩亚洲精品电影| 欧美亚洲一级片| 男女激情久久| 国产精品入口麻豆原神| 精品999久久久| 一区二区三区**美女毛片 | 久久电影一区| 一区二区三区视频在线播放| 欧美影院在线播放| 欧美成人亚洲| 国产九九精品| 91久久精品美女| 亚洲欧美日韩精品久久亚洲区| 亚洲精品日韩一| 久久精品亚洲乱码伦伦中文| 欧美日本视频在线| 国产一区二区三区久久久| 99视频日韩| 亚洲区欧美区| 久久久久久97三级| 国产精品av一区二区| 在线国产亚洲欧美| 亚洲视频电影图片偷拍一区| 欧美伊人久久久久久久久影院| 亚洲视频axxx| 欧美69wwwcom| 国产综合av| 亚洲专区欧美专区| 中文av一区二区| 欧美1区免费| 国产专区欧美专区| 亚洲在线一区二区| 91久久久精品| 久久综合九色九九| 国产日韩欧美在线播放| a4yy欧美一区二区三区| 亚洲精品123区| 久久久亚洲一区| 国产女主播在线一区二区| 亚洲九九精品| 91久久在线播放| 玖玖综合伊人| 国产亚洲成av人在线观看导航| 国产精品99久久不卡二区| 日韩午夜三级在线| 欧美成人午夜视频| 尤物在线观看一区| 久久精品国产免费看久久精品| 午夜精品久久久久影视| 欧美日韩成人综合天天影院| 黄色亚洲在线| 欧美在线视频日韩| 亚洲欧美久久久| 欧美日韩久久不卡| 日韩午夜激情av| 亚洲视频一区二区免费在线观看| 欧美日韩午夜激情| 国产一区二区三区高清| 亚洲午夜伦理| 一区二区免费看| 欧美成黄导航| 在线视频国内自拍亚洲视频| 久久国产精品久久精品国产| 欧美在线看片| 国产伪娘ts一区| 亚洲欧美久久久| 欧美一区二视频| 国产免费观看久久| 香蕉av福利精品导航| 欧美在线播放| 国产一区二区三区四区老人| 欧美一区二区三区婷婷月色| 久久精品一区二区三区四区| 国产字幕视频一区二区| 久久riav二区三区| 久久久久久免费| 欲香欲色天天天综合和网| 亚洲成色777777女色窝| 欧美a级一区| 亚洲黄色片网站| 亚洲美女网站| 欧美日韩国产综合视频在线| 一区二区三区导航| 日韩视频在线观看国产| 欧美日韩另类在线| 中文在线不卡| 欧美综合二区| 一区久久精品| 久久精品国产免费观看| 欧美成人午夜激情在线| 日韩一级在线| 午夜一区二区三区不卡视频| 国产日韩欧美日韩| 久久av资源网| 欧美激情精品| 制服丝袜激情欧洲亚洲| 性视频1819p久久| 精品69视频一区二区三区| 亚洲精品少妇30p| 欧美性大战久久久久久久蜜臀| 亚洲专区一区二区三区| 久久天天躁狠狠躁夜夜av| 亚洲高清二区| 在线午夜精品| 国产精品综合视频| 亚洲国产综合在线看不卡| 欧美精品免费看| 亚洲欧美久久久| 欧美国产精品久久| 亚洲另类在线视频| 久久动漫亚洲| 亚洲精品一区二区三区福利| 欧美一级大片在线观看| 亚洲福利精品| 亚洲自拍电影| 亚洲第一天堂av| 亚洲欧美日韩精品| 在线播放日韩| 亚洲综合日本| 亚洲国产精品成人| 亚洲天堂免费观看| 久久资源在线| 亚洲天堂av高清| 亚洲一区二区三区四区五区午夜| 最新亚洲激情| 国产精品久久二区二区| 久久国产精品久久精品国产| 欧美日本免费| 久久福利精品| 欧美四级剧情无删版影片| 久久国产夜色精品鲁鲁99| 欧美日韩欧美一区二区| 久久国产精品毛片| 国产精品mm| 亚洲黄色在线观看| 国产精品视频xxx| 亚洲精品一区二区三区婷婷月 | 亚洲人成人一区二区三区| 久久国产高清| 日韩一区二区福利| 久久只有精品| 亚洲尤物视频在线| 欧美日韩精品久久| 亚洲电影中文字幕| 国产精品一二三视频| 99精品99|