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

正文內(nèi)容

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

2024-12-16 03:47 本頁面
 

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