• 沒有找到結果。

內部電路如圖 5-1 所示

N/A
N/A
Protected

Academic year: 2021

Share "內部電路如圖 5-1 所示"

Copied!
6
0
0

加載中.... (立即查看全文)

全文

(1)

第五章 I/O 介面控制模組規劃與設計

I/O 介面控制模組設計須配合自製之 FPGA 實驗平台上所設置的 I/O 模組進行設計。自製之 FPGA 實驗平台的配置將在第六章第一節討論之。

FPGA 實驗平台上的輸入模組包含 1 組 4x4 掃描式鍵盤、4 組 8 位元之指 撥開關(Dip Switch)、8 個按壓開關(Push Button);輸出模組包含 1 個 20 x 2 的文字型 LCD、2 組 4 位元的七段顯示器、5 組 10 位元之 LED。其中,

需撰寫 I/O 控制模組的為 4x4 掃描式鍵盤、文字型 LCD 及七段顯示器,

此外因在輸入模組中具備按鍵式的開關,故而亦需撰寫防彈跳電路。以 下將分節敘述各 I/O 介面控制模組程式規劃與設計。

第一節 輸入單元模組

壹、防彈跳電路

防彈跳電路設計是所有按鍵式輸入模組必須嵌入的基本電路,防止因 彈跳現象而得到不正確的鍵值。當按鍵被按下時,按鍵內部的機械開關會 產生振動現象,而得到不穩定的輸出,時間約持續數十個 ms,稱為彈跳現 象[35]。按鍵判斷是採用三級正反器搭配組合邏輯電路。當 DB_IN 連續讀 到三次 HI 準位時,防彈跳電路將會輸出一個 HI 準位,表示該按鍵被確實 被按下而非彈跳輸入。內部電路如圖 5-1 所示。

圖 5-1 防彈跳電路模組內部電路連接圖

D CLK

Q DFF DB_IN

CLOCK

CLR

D CLK

Q DFF

CLR

D CLK

Q DFF

CLR RESET

Q1 Q2 Q3

DB_BUF DeBounce

DB_OUT

(2)

貳、鍵盤控制模組

鍵盤可視為是多個按鍵的組合,每個按鍵具有個別的代表意義,如家 用按鍵式電話機,還有常用的個人電腦鍵盤。鍵盤控制模組是為得到按下 不同按鍵所得到的不同意義而設計。一個鍵盤掃描控制電路基本上包括:

防彈跳電路、掃描訊號產生電路、鍵盤解碼電路三大部分,鍵盤控制模組 內部電路圖如圖 5-2 所示。

圖 5-2 4x4 鍵盤控制模組內部電路方塊圖

ROWDAT[3:0]是鍵盤控制模組產生的鍵盤列掃描訊號,COLDAT[3:0]

則是按鍵按下後輸入鍵盤控制模組的訊號接收端。當掃描訊號送到某一 列,而該列的某個按鍵被按下時,COLDAT[3:0]得到訊號輸入,經過防彈 跳電路(DB)消除彈跳現象後得到 COLBUF[3:0]會在對應的位元,得到一個 準確的 HI 準位輸入,所以由 ROWDAT 與 COLBUF 作按鍵解碼,可得到 特定鍵值輸出(LED_DIG[3:0]),鍵值由 Decode Circuit 內定義。

4x4 KeyPad Scanning Signal Generate Circuit

4x4 KeyPad Decode Circuit

4x4 KeyPad

LED_DIG[3:0]

ROWDAT [3:0]

DB DB DB DB

COLDAT[3:0]

GET_DIG DBG_STATE RESET

CLOCK

KeyPad_Controller

COLBUF[3:0]

(3)

第二節 輸出單元模組

壹、七段顯示器控制模組

本研究自製的 FPGA 實驗平台上的七段顯示器硬體電路如圖 5-3 所 示。七段顯示器的顯示資料預先由 74LS47 解碼,並利用 74LS138 解碼各 個七段顯示器的掃描信號,節省七段顯示器控制模組耗費的 FPGA I/O 接

腳數。

圖 5-3 8 個顯示位元之七段顯示器硬體接腳示意圖

由硬體電路架構規劃七段顯示器控制模組,內部最主要是一個掃描訊 號產生電路,在人類眼睛產生視覺暫留的時間內,控制時脈速度輪流點亮 8 個七段顯示器,點亮第 1 個七段顯示器時,送出第 1 個七段顯示器顯示 資料,點亮第 2 個七段顯示器,送出第 2 個七段顯示器顯示資料,依此類 推…由人類肉眼觀察這 8 個七段顯示器是同時點亮的狀態,送出顯示的資 料亦是相同原理。內部電路方塊圖如圖 5-4 所示。

74LS138

COM3 COM4 COM5 COM6

A B C D E F G Dot

74LS47

LED_COM[2:0]

LED_DATA[3:0]

COM7 COM8 COM2

COM1

(4)

圖 5-4 七段顯示器控制模組內部電路方塊圖

貳、文字型 LCD 控制模組

文字型 LCD 控制模組是由 2 個 VHDL 程式模組所組成(LCD_CTRL 及 LCD_TOP),內部電路方塊圖如圖 5-5 所示。

圖 5-5 LCD 控制模組內部電路方塊圖 下層的 LCD_CTRL 模組功能有二:

LCD

DB7~

DB0

EN RS R/W

LCD_TOP

LCD_Initial ROM

LCD_CTRL CLOCK

Delay

CLOCK RESET

S_DATA_IN [7:0]

S_RECV_DT (Busy Flag)

PC_DATABUS

TRI-State

TRI_ST_CTRL

LCD_EN LCD_RS LCD_RW RESET

CLOCK PC_GO

PC_DATABUS

MUX

PC_GO_BUF

REG_DAT[31:0]

LCD_EN LCD_RS LCD_RW LCD_DATA

_BUS[7:0]

S_DATA_IN [7:0]

Transfer ASCII

REG_SEL[4:0] SEL

PC_ADDR_X PC_ADDR_Y ADDR_X_BUF

ADDR_Y_BUF

Reset Clock

Out Counter Reset

Clock DATA_IN0 DATA_IN1 DATA_IN2 DATA_IN7

LCD_COM

LCD_DATA

…… MUX

Seven Segment Controller

(5)

二、送出設定 LCD 顯示模式控制指令。例如:顯示游標與否、游標移動 方向等…

上層的 LCD_TOP 模組除了 LCD_CTRL 外還包括 3 個小模組,分別是 時脈延遲電路(Clock Delay)、LCD 初始資料記憶體(LCD_Initial ROM)、及 ASCII Code(Transfer ASCII)轉換電路。時脈延遲電路是延遲輸入至 LCD 的 時脈週期,太快的 Clock 會致使 LCD 設定指令沒有足夠的時間執行完畢;

LCD 初始資料記憶體儲存重設 LCD 後,LCD 螢幕上常駐的顯示資料;

ASCII Code 轉換電路功能是將讀進來的二進位資料轉換成對應的 ASCII Code 再寫至 LCD 模組的資料匯流排顯示。

此外 LCD_TOP 在 LCD 初始化後,還能接受由外部模組(如 MIPS CPU 的執行結果)所輸入的顯示資料。

(6)

數據

圖 5-4  七段顯示器控制模組內部電路方塊圖  貳、文字型 LCD 控制模組  文字型 LCD 控制模組是由 2 個 VHDL 程式模組所組成(LCD_CTRL 及 LCD_TOP),內部電路方塊圖如圖 5-5 所示。  圖 5-5 LCD 控制模組內部電路方塊圖  下層的 LCD_CTRL 模組功能有二:  LCDDB7~DB0ENRSR/WLCD_TOPLCD_Initial ROMLCD_CTRLCLOCKDelayCLOCKRESETS_DATA_IN[7:0]S_RECV_DT(Busy Fla

參考文獻

相關文件

Visual Basic提供了許多控制項介面來處理由鍵盤輸入

afx_msg void OnLButtonDown(UINT nFlags, CPoint point). {……;

出現【解】記號,可連續按下按滑 鼠左鍵 或 滾輪 或

出現【解】記號,可連續按下按滑 鼠左鍵 或 滾輪 或

出現【解】記號,可連續按下按滑 鼠左鍵 或 滾輪 或

進階題 5% 設計以下功能:當 Text1 輸入完數字後,直接按 Enter 後跳到 Text2 ; 當 Text2 輸入完數字後,直接跳到 Command1 ,再接 Enter

額外加分題 5% 設計以下功能:當 Text1 輸入完數字後,直接按 Enter 後跳到 Text2 ; 當 Text2 輸入完數字後,直接跳到 Command1 ,再接 Enter

(approximation)依次的進行分解,因此能夠將一個原始輸入訊號分 解成許多較低解析(lower resolution)的成分,這個過程如 Figure 3.4.1 所示,在小波轉換中此過程被稱為