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

正文內(nèi)容

基于fpga的led點陣顯示屏的設(shè)計_學(xué)士學(xué)位論文(編輯修改稿)

2024-08-15 21:26 本頁面
 

【文章內(nèi)容簡介】 數(shù)據(jù)輸出。靜態(tài)顯示時,只要進(jìn)行逐行掃描,第 i位出現(xiàn)‘ 0’時,則選通第 i行。所以當(dāng)按下停止鍵時,則直接輸出 1639。b1111_1111_1111_1110。當(dāng)有其他鍵按下時則觸發(fā)移位。移位時,首先啟動計數(shù)器 ,當(dāng)每計滿 9, 999, 999(即)時,行數(shù)據(jù)移位一次。如圖 44所示,仿真 key_up鍵按下時, row_data每 循環(huán)右移一次。 列數(shù)據(jù)控制模塊 列數(shù)據(jù)控制模塊主要實現(xiàn)左右移動、開簾、合攏四種顯示方式的控制。 以下為模塊的例化程序: module column_control( input clk, input rst, 圖 44 行數(shù)據(jù)控制仿真波形 南昌航空大學(xué)學(xué)士學(xué)位論文 18 input key_left, input key_right, input key_stop, input [31:0] rdata, output [31:0] data )。 其中, key_left表示左鍵標(biāo)志信號, key_right表示右鍵標(biāo)志信號, key_stop為停止移位標(biāo)志信號,在沒有讀取到按鍵時顯示方式為循環(huán)開簾和合攏。 rdata為原列數(shù)據(jù), data為移動后的列數(shù)據(jù)。移位速度為 1/20s,如圖 45所示,當(dāng) key_left鍵按下時, rdata=3239。h05_05_A0_A0,每 。 按鍵模塊 一位按鍵模塊 debounce如圖 46所示,模塊包括電平檢查模塊和延遲模塊。 設(shè)計思路: ( 1)一旦檢測到有按鍵按下(高電平到低電平變化),電平檢查模塊就會拉高 H2L_Sig電平,然后拉低。 ( 2) 10ms延遲模塊檢測到 H2L_Sig為高電平時,就會利用 10ms過濾 H2L_Sig,拉高 輸出。 ( 3)當(dāng)按鍵被釋放時,電平檢測模塊會拉高 L2H_Sig,然后拉低。 圖 45 列數(shù)據(jù)左移仿真波形 圖 46 一位按鍵模塊 南昌航空大學(xué)學(xué)士學(xué)位論文 19 ( 4) 10ms延遲模塊檢查到 L2H_Sig為高電平時, 就會利用 10ms過濾 H2L_Sig,然后拉低輸出。 組合按鍵則是組合五個獨立按鍵模塊,如圖 47 所示。 以下為五位組合按鍵模塊的實例化程序: module key_interface ( input CLK, input RSTn, input [4:0]Key_In, output [4:0]Key_Out )。 其中,五位 Key_In 輸入連接至 I/O 端口,五位 Key_Out 主要傳輸給行列控制模塊。 圖 47 組合按鍵模塊 南昌航空大學(xué)學(xué)士學(xué)位論文 20 串口通信模塊 串口接收 模塊 如圖 48所示,串口接收模塊由電平檢測模塊、波特率定時模塊和接收控制模塊組成。 其中, detect_module模塊的輸入是連接至引腳 rx,它主要檢測一幀數(shù)據(jù)的第 0位,也就是起始位,然后產(chǎn)生一個高脈沖經(jīng) H2L_Sig 給 rx_control_module模塊 ,以表示一幀數(shù)據(jù)接收工作已經(jīng)開始。 rx_bps_module模塊是產(chǎn)生波特率定時的功能模塊。它是配置波特率的模塊。 當(dāng) rx_control_module 模塊拉高 Count_Sig, bps_module 模 塊經(jīng) BPS_CLK 對rx_control_module模塊產(chǎn)生定時。本設(shè)計使用 9600bps傳輸速率。傳輸一位數(shù)據(jù)的周期是 。以 20Mhz時鐘頻率要得到上述的定時需要設(shè)置的計數(shù)次數(shù) N: N = / ( 1 / 20Mhz ) = 2083 如果從零開始算起 2083 1 亦即 2082 個計數(shù)。然而,采集數(shù)據(jù)要求“在周期的中間”,那么結(jié)果是 2082 / 2 ,結(jié)果等于 1041?;旧? rx_bps_module模塊只有在 Count_Sig拉高的時候,模塊才會開始計數(shù)。 rx_control_module模塊是核心控制模塊。針對串口的配置主要是 1幀 11位的數(shù)據(jù),重視八位數(shù)據(jù)位,無視起始位、校驗位和結(jié)束位。當(dāng) RX_En_Sig拉高,這個模塊就開始工作,它將采集來自 RX_Pin_In的數(shù)據(jù),當(dāng)完成一幀數(shù)據(jù)接收的時候,就會產(chǎn)生一個高脈沖給 RX_Done_Sig。 圖 48 串口接收模塊 南昌航空大學(xué)學(xué)士學(xué)位論文 21 串口接收接口 模塊 RTL圖如圖 49所示。 此 控制模塊一開始就 開啟 串口接收模塊 ,當(dāng)串口接收模塊完成一次性的讀取操作以后,就會反饋數(shù)據(jù) RX_Data 和完成信號 RX_Done_Sig。當(dāng)串口接收頂層控制模塊接收到串口接收模塊反饋的完成信號,就會關(guān)閉串口接收模塊。然后該控制模塊就會將經(jīng) RX_Data反饋回來的數(shù)據(jù)緩沖至 FIFO模塊。 FIFO是英文 First In First Out 的縮寫,是一種先進(jìn)先出的數(shù)據(jù)緩存器,他與普通存儲器的區(qū)別是沒有外部讀寫地址線,這樣使用起來非常簡單,但缺點就是只能順序?qū)懭霐?shù)據(jù),順序的讀出數(shù)據(jù),其數(shù)據(jù)地址由內(nèi)部讀寫指針自動加 1完成,不能像普通存儲 器那樣可以由地址線決定讀取或?qū)懭肽硞€指定的地址。 FIFO的一些重要參數(shù) FIFO的寬度:也就是英文資料里??吹降?THE WIDTH,它指的是 FIFO一次讀寫操作的數(shù)據(jù)位。 FIFO的深度: THE DEEPTH,它指的是 FIFO可以存儲多少個 N位的數(shù)據(jù)(如果寬度為 N)。如一個 8位的 FIFO,若深度為 8,它可以存儲 8個 8位的數(shù)據(jù),深度為 12 ,就可以存儲 12個 8位的數(shù)據(jù)。 滿標(biāo)志: FIFO已滿或?qū)⒁獫M時由 FIFO的狀態(tài)電路送出的一個信號,以阻止 FIFO的寫操作繼續(xù)向 FIFO中寫數(shù)據(jù)而造成溢 出( overflow)。 空標(biāo)志: FIFO已空或?qū)⒁諘r由 FIFO的狀態(tài)電路送出的一個信號,以阻止 FIFO的讀操作繼續(xù)從 FIFO中讀出數(shù)據(jù)而造成無效數(shù)據(jù)的讀出( underflow)。 讀指針:指向下一個讀出地址。讀完后自動加 1。 寫指針:指向下一個要寫入的地址的,寫完自動加 1。 圖 49 串口接收接口 南昌航空大學(xué)學(xué)士學(xué)位論文 22 串口接收數(shù)據(jù)處理 此模塊處理串口接收的十六進(jìn)制數(shù)據(jù),取模之后作 LED 點陣的列驅(qū)動,接收的數(shù)據(jù)顯示在 09 之間。 以下是數(shù)據(jù)處理模塊的端口實例化程序: module address ( input CLK, input RSTn, input [7:0] FIFO_Write_Data , output [15:0] write_data, input isdone )。 其中,輸入保存在 FIFO 中上位機發(fā)送的數(shù)據(jù),上位機使用串口小助手發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù)類型為十六進(jìn)制,每次發(fā)送 8 位數(shù)據(jù)位。 isdone 為行掃描更新標(biāo)志位,由LED 點陣驅(qū)動模塊提供。 write_data 輸出作為點陣列驅(qū)動。 程序設(shè)計思路: ( 1)讀取高四位,使用 case 語句判 斷 BCD 值,當(dāng)接收到行掃完畢標(biāo)志后( isdone),送顯相應(yīng) BCD 值的列數(shù)據(jù),循環(huán)逐行送顯; ( 2)讀取低四位,使用 case 語句判斷 BCD 值,當(dāng)接收到行掃完畢標(biāo)志后( isdone),送顯相應(yīng) BCD 值的列數(shù)據(jù),循環(huán)逐行送顯。 時鐘模塊 時鐘模塊主要實現(xiàn)讀寫時鐘芯片 DS1302 和驅(qū)動數(shù)碼管顯示時鐘。如圖 410 所示,inter_face 完成對時鐘初始化和讀取時鐘以及作為 smg 模塊與 ds1302 的接口。 圖 410 時鐘模塊 RTL 圖 南昌航空大學(xué)學(xué)士學(xué)位論文 23 讀寫時鐘芯片 如圖 410 所示,該模塊由 命令控制模塊和函數(shù)模塊組成。 _function模塊端口實例化程序: module _function( input CLK, input RSTn, input [1:0] start, output done, input [7:0] addr, input [7:0] write_data, output [7:0] read_data, output rst, output sclk, inout SIO )。 其中,兩位的 start為讀寫選擇信號,當(dāng) start[1]為‘ 1’的時候進(jìn)行寫操作,當(dāng)start[0]為‘ 1’的時候進(jìn)行讀操作; addr為操作碼; write_data為待寫數(shù)據(jù); read_data保存了讀取到的時鐘數(shù)據(jù); rst驅(qū)動 DS1302復(fù)位引腳; sclk為 DS1302的提供時鐘信號;SIO為輸入輸出口,驅(qū)動 DS1302數(shù)據(jù)端口。 編程思路: ( 1)根據(jù) start判斷進(jìn)行讀操作還是寫操作 ; ( 2)讀操作或?qū)懖僮鞫夹枰劝l(fā)送一個字節(jié)操作碼; 圖 411 時鐘芯片讀寫模塊 南昌航空大學(xué)學(xué)士學(xué)位論文 24 ( 3) 讀操作時,使 SIO作為輸入,依次讀取 DS1302輸入的 8位數(shù)據(jù)保存于 read_data; ( 4)寫操作時,使 SIO作為輸出口,依次發(fā)送 write_data的八位數(shù)據(jù); ( 5)操作完畢時向外界發(fā)送一脈沖信號 done。 control模塊端口實例化程序: module control( input CLK, input RSTn, input [7:0] cmd, output done_sig, input [7:0] wrtime, output [7:0] rdtime, output [1:0] start, input done, output [7:0] addr, input [7:0] read_data, output [7:0] write_data )。 其中, cmd為 8位命令; wrtime保存待寫數(shù)據(jù); rdtime保存讀取的時鐘; start控制 _function模塊讀寫操作選擇 ; done為 _function完成一次操作后的觸發(fā)信號;done_sig完成一次時鐘操作的標(biāo)志信號;其他信號都是用于聯(lián)絡(luò) _function模塊。 Control模塊主要實現(xiàn)對位命令的功能化,具體命令分配如表 41所示。 Cmd[ 7..0 ] 位命令 功能 0110_0000 變更年寄存器 0101_0000 變更月寄存器 0100_0000 變更日寄存器 0011_0000 變更時寄存器 0010_0000 變更分寄存器 0001_0000 變更秒寄存器 南昌航空大學(xué)學(xué)士學(xué)位論文 25 0000_0110 讀取年寄存器 0000_0101 讀取月寄存器 0000_0100 讀取日寄存器 0000_0011 讀取時寄存器 0000_0010 讀取分寄存器 0000_0001 讀取秒寄存器 表 41 功能分配 編程思路: 根據(jù)輸入的不同命令 cmd依據(jù)圖 312所示進(jìn)行分配不同的操作碼至 _function模塊。同時根據(jù)前四位為零時進(jìn)行的是讀操作,所以置 start為 2’ b01。反之,后四位全為零時進(jìn)行寫 操作,置 start為 2’ b10。 數(shù)碼管顯示模塊 此模塊用于在數(shù)碼管上顯示六位十六進(jìn)制數(shù)。程序端口實例化程序為: module smg( input CLK, input RSTn, input[23:0] data, output [7:0] smg_data, output [5:0] scan)。 其中,
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1