freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于fpga的lcd顯示控制系統(tǒng)的設計(編輯修改稿)

2024-12-16 03:47 本頁面
 

【文章內容簡介】 系統(tǒng)設計總體框圖 系統(tǒng)設計總體框圖如圖 41 所示,在系統(tǒng)上電后, FPGA 將首先對系統(tǒng)進行初始化操作,在初始化操作中最重要的是寄存器的復位,顯示開關的控制,功能設置以及對顯示屏幕進行清屏。之后通過顯示控制模塊對 LCD 進行顯示的控制。顯示控制模塊主要負責在 LCD 顯示多行字符時進行換行操作,在用戶指定數(shù)據(jù)在屏幕的指定顯示位置時設置該位置所對應的 RAM 的值,以及在圖像顯示時進行的 ROM 地址重映射算法,和對 LCD 顯示區(qū)對應 RAM 進行的寫入 操作。其中的數(shù)據(jù)分別來自中英文字符模塊,動態(tài)數(shù)據(jù)模塊,以及圖像數(shù)據(jù)模塊。 對此模塊的設計,主體結構以狀態(tài)機來實現(xiàn) ,如圖 31 所示 圖 41 系統(tǒng)設計總體框圖 系統(tǒng)硬件資源選用 液晶模塊選用 本設計選用了 帶 ST7920 驅動的 LCD1286412 模 塊來進行設計和調試。該模天津工業(yè)大學本科畢業(yè)論文 第三章 [XXXX...] 塊自帶字庫。 其中, 1286412 漢字圖形點陣液晶顯示模塊,可顯示漢字及圖形,內置 8192個中文漢字( 16X16 點陣), 128 個字符( 8X16 點陣)幾 64X256 點陣顯示RAM(GDRAM)。 [點擊輸入一級標題 標題 2] [點擊輸入 正文 ] 天津工業(yè)大學本科畢業(yè)論文 第四章 [XXXX...] 第四章 系統(tǒng) 軟件 設計 本章首先對該系統(tǒng)的各個模塊的設計思路進行描述,并給出框圖。首先介紹了初始化模塊的設計,然后介紹了分別針對字符以及圖片的寫入數(shù)據(jù)模塊。之后介紹了本設計中最關鍵的顯示控制模塊,并列舉了詳細的設計方法。最后給出系統(tǒng)設計的整體 Block Diagram。 初始化模塊設計 LCD模塊初始 化設計 對 1286412 模塊的初始化采用狀態(tài)機的方式,通過資料中給出的 1286412模塊的說明,選擇所需要的初始化命令,結合特定的時鐘頻率,對 LCD 進行初始化。最終使屏幕清屏,顯示區(qū)對應 RAM 復位, LCD 的功能則設置為所需要的功能。 其中,字符顯示模塊的初始化流 程圖如圖 41 所示 : 圖 41字符初始化流程圖 其中直至寫數(shù)據(jù)這一步驟之前都為起始的初始化動作。與字符顯示不同,圖天津工業(yè)大學本科畢業(yè)論文 第四章 [XXXX...] 片的現(xiàn)實需要使用特殊指令集中的指令,因此需要在功能設定時做出改動。而同時,在對 GDRAM 的地址以及內容進行操 作時,必須保持繪圖顯示的關閉狀態(tài),因此在初始化時,需要將繪圖顯示關閉。但是由于寫數(shù)據(jù)這一指令屬于常規(guī)指令集,因此在設置完 GDRAM 地址后,需要重新使用功能設定,將指令集的使用改回常規(guī)指令集。當數(shù)據(jù)全部寫入完畢,則可以通過再次使用特殊指令集,開啟圖像顯示,將 GDRAM 中的數(shù)據(jù)顯示在屏幕上。 圖片顯示模塊的初始化流程圖如圖 42 所示 : 圖 42 圖片顯示初始化流程圖 天津工業(yè)大學本科畢業(yè)論文 第四章 [XXXX...] 時鐘模塊初始化設計 由 LCD 初始化的流程圖可得大部分指令的執(zhí)行時間為 72us,而清除顯示和地址歸位則需要 ,為 72us 的 64 倍左右,因此需要選擇一個合適的時鐘來作為 ENABLE 信號的輸入。 時鐘電路的設計: 由于 FPGA 開發(fā)板上自帶的晶振頻率為 50MHZ,而所需要的時鐘頻率則需要小于 ,因此需要一個分頻器對其進行分頻。這里采用簡單的計數(shù)器對其進行分頻,計數(shù)器上限經(jīng)過計算設為 ,滿足實驗需要。在分頻之后由于時鐘信號需要同時控制 LCD 模塊以及 FPGA 的模塊,因此需要編寫一個程序,使得兩者之間同步。 最終的時鐘控制模塊如 圖 43 所示 : 圖 43 時鐘模塊 其中 CLOCK_LOGIC模塊的設計通過幾個觸發(fā)器來實現(xiàn),部分程序如下: ponent DFF port( d : in std_logic。 clk: in std_logic。 q : out std_logic)。 end ponent。 signal sig1,sig2,sig3 : std_logic。 begin sig1= not sig2。 sig3= not clock。 out_clk= sig2。 mydff1 : DFF port map (d=sig1,clk=clock, q=sig2)。 mydff2 : DFF port map (d=sig2,clk=sig3, q=enable)。 天津工業(yè)大學本科畢業(yè)論文 第四章 [XXXX...] 字符顯示前初始化模塊的設計 初始化部分的狀態(tài)機設計 根據(jù)字符模塊初始化的流程圖 如圖 44 所示 : 圖 44 LCD初始化流程圖 因此,此部分的狀態(tài)機設計如下: ? when IDLE= 空閑狀態(tài) if flag =39。039。 then state = CLEAR。 flag=39。139。 else state=IDLE。 end if。 when CLEAR= 清屏狀態(tài),使 LCD 屏幕上顯示全白 if div_counter2 DIVSS2 then DIVSS2 為 64,由于清屏狀態(tài)所需要的執(zhí)div_counter2 = div_counter2+1。 行時間為普通指令的 64 倍,因此采用 state=CLEAR。 一個 0 到 64 的計數(shù)器對其進行延遲處理 else div_counter2 =0。 天津工業(yè)大學本科畢業(yè)論文 第四章 [XXXX...] state=RETURNCURSOR。 end if。 when RETURNCURSOR= 地址歸位,使 DDRAM 地址復位 if div_counter2 DIVSS2 then 這里和清屏狀態(tài)一樣,需要延遲 64 倍的時div_counter2 = div_counter2+1。 鐘時間 state=RETURNCURSOR。 else div_counter2 =0。 state=SETMODE end if。 when SETMODE= 點設置,選擇整體畫面的移位方式 state=SWITCHMODE。 when SWITCHMODE= 顯示狀態(tài)開 state=SHIFT。 when SHIFT= 控制游標的移動和顯示移位 state=SETFUNCTION。 when SETFUNCTION= 功能設置 state=SETDDRAM1。 when SETDDRAM1= 設置 DDRAM 地址 state=WRITERAM。 ? 其中,由于時鐘信號的周期約為 80us,而 CLEAR 清屏和 RETURNCURSOR 點設定這兩個操作需要 的操作時間,因此在這兩個狀態(tài)中加入了計數(shù)器用以延遲,延遲時間為時鐘周期的 64 倍,約為 LCD的響應速度。 字符顯示的數(shù)據(jù)選擇 ? 清除顯示(對應狀態(tài)機狀態(tài)為 CLEAR)對應的數(shù)據(jù)接口的數(shù)據(jù)( DB7~DB0)為 00000001, RS,RW為 0; ? 地址歸位(對應狀態(tài)機狀態(tài)為 RETURNCURSOR)對應 (DB7~DB0)的數(shù)據(jù)為00000010, RS,RW為 0; ? 點設定(對應狀態(tài)機狀態(tài)為 SETMODE)選擇整體畫面不移位, DDRAM地址 +1,因此對應 DB7~DB0數(shù)據(jù)為 00000110, RS,RW為 0; ? 顯示狀態(tài)開(對應狀態(tài)機狀態(tài)為 SWITHMODE),光標顯示關,字符不反白,因此對應 DB7~DB0數(shù)據(jù)為 00001100, RS,RW為 0; 天津工業(yè)大學本科畢業(yè)論文 第四章 [XXXX...] ? 游標和顯示控制(對應狀態(tài)機狀態(tài)為 SHIFT)選擇 AC=AC+1,因此對應DB7~DB0數(shù)據(jù)為 00010100, RS,RW為 0; ? 功能設定(對應狀態(tài)機狀態(tài)為 SETFUNCTION)選擇 8為數(shù)據(jù)線接口,以及基本指令集動作,因此對應 DB7~DB0數(shù)據(jù)為 00110000, RS,RW為 0; ? DDRAM(對應狀態(tài)機狀態(tài)為 SETDDRAM)地址的設定則根據(jù)需要設定,對應 DB7~DB0數(shù)據(jù)為 10000000~10011111之間, RS為 1, RW為 0; 另外,根據(jù)模塊引腳說明, FPGA 還需要同時控制其他幾個引腳。其中,為了選擇并行的數(shù)據(jù)發(fā)送模式 , PSB 引腳應為 H。 RET 引腳則由 FPGA 控制在經(jīng)過一段時間的 L 復位后跳為 H。 初始數(shù)據(jù)的賦值: psb=39。139。 rs=39。139。 when state = WRITERAM or state = READRAM else 39。039。 當狀態(tài)為讀寫 RAM 時, RS 為 1 rw=39。039。 when state = CLEAR or state = RETURNCURSOR or state = SETMODE or state = SWITCHMODE or state = SHIFT or state = SETFUNCTION or state = SETCGRAM or state = SETDDRAM or state = WRITERAM else 39。139。 當狀態(tài)為如上時, RW 為 0 data=00000001 when state = CLEAR else 00000010 when state = RETURNCURSOR else 00000110 when state = SETMODE else 00001amp。open_displayamp。open_curamp。blank_cur when state = SWITCHMODE else 00010100 when state = SHIFT else 001amp。datawidth8 amp。 39。039。 amp。 exinstruction_offamp。00 when state = SETFUNCTION else 10000000 when state = SETDDRAM else …… 圖片顯示前初始化模塊的設計 圖片顯示初始化的狀態(tài)機設計 圖片顯示時需要用到擴充指令集。在基本指令集設置的時候需要將SETFUNCTION,功 能設計,中的 RE 設為 1. 而在擴充指令集的功能設定中也要將 RE 設為 1,同時在顯示模塊寫入圖片數(shù)據(jù)時,需要將圖片顯示關閉,然后轉入基本指令集進行數(shù)據(jù)的寫入,直至寫入數(shù)據(jù)完畢再使用擴充指令集,打開圖片天津工業(yè)大學本科畢業(yè)論文 第四章 [XXXX...] 顯示。 因此,其狀態(tài)機設計與字符顯示不同的部分如下: … when SHIFT= 游標和顯示移位,這一部和字符顯示部分一樣 state=SETFUNCTION1。 when SETFUNCTION1= 設置 8 位數(shù)據(jù)傳輸方式 state=SETFUNCTION2。 when SETFUNCTION2= 啟用特殊指令集 if flag_p=39。039。 then 這個選擇結構用于選擇打開或者關閉顯示, state=DRAWFUNOFF。 默認為關閉顯示,只有當圖像數(shù)據(jù)寫入完成 else 才會使 flag_p 等于 1,這時打開顯示。 state=DRAWFUNON。 end if。 when DRAWFUNOFF= 關閉顯示 state=SETGDRAM。 … when SETGDRAM= 設置 GDRAM 起始地址 state=DRAWFUNR。 when DRAWFUNR= 在使用寫入數(shù)據(jù)命令前,必須轉會常規(guī)指令集 state=CLEARRAM。 使 GDRAM 中數(shù)據(jù)清 0 … 圖片顯示初始化數(shù)據(jù)的選擇 其中與字符顯示不同的指令集數(shù)據(jù)如下: ? 功能設定 1(對應狀態(tài)機狀態(tài)為 SETFUNCTION1)選擇 8為數(shù)據(jù)線接口,以及特殊指令集動作,因此對應 DB7~DB0數(shù)據(jù)為 00110100, R
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1