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

正文內(nèi)容

畢業(yè)論文--數(shù)字電路課程設(shè)計(jì)報(bào)告--基于1602液晶屏的數(shù)字萬年歷verilog版(已修改)

2024-11-30 21:41 本頁面
 

【正文】 畢業(yè)論文 數(shù)字電路課程設(shè)計(jì)報(bào)告 基于 1602 液晶屏的數(shù)字萬年歷 Verilog 版 基于 1602 液晶屏的數(shù)字萬年歷( Verilog 版) 課程名稱: 數(shù)字電路課程設(shè)計(jì) 專 業(yè): 集成電路設(shè)計(jì)與集成系統(tǒng) 基于 1602 液晶屏的數(shù)字萬年歷( Verilog 版) 一.設(shè)計(jì)要求 1.基本功能 設(shè)計(jì)一個(gè)數(shù)字鐘,能夠顯示當(dāng)前時(shí)間,分別用 6 個(gè)數(shù)碼管顯示小時(shí)、分鐘、秒鐘的時(shí)間,秒針的計(jì)數(shù)頻率為 1Hz,可由系統(tǒng)脈沖分頻得到。 在整點(diǎn)進(jìn)行提示,可通過 LED 閃爍實(shí)現(xiàn) ,閃爍頻率及花型可自己設(shè)計(jì)。 能夠調(diào)整小時(shí)和分鐘的時(shí)間,調(diào)整的形式為通過按鍵進(jìn)行累加。 具有鬧鐘功能,鬧鐘時(shí)間可以任意設(shè)定(設(shè)定的形式同樣為通過按鍵累加),并且在設(shè)定的時(shí)間能夠進(jìn)行提示,提示同樣可以由 LED 閃爍實(shí)現(xiàn)。 2.?dāng)U展功能 設(shè)計(jì)模式選擇計(jì)數(shù)器,通過計(jì)數(shù)器來控制各個(gè)功能之間轉(zhuǎn)換。 調(diào)整當(dāng)前時(shí)間以及鬧鐘時(shí)間,在按鍵累加的功能不變的基礎(chǔ)上,增加一個(gè)功能,即當(dāng)按住累加鍵超過 3 秒,時(shí)間能夠以 4Hz 的頻率累加。 用 LCD 液晶屏來顯示當(dāng)前時(shí)間及功能模式。 二.設(shè)計(jì)分析及系統(tǒng)方案設(shè)計(jì) 1.要求分析: 基于 FPGA 實(shí) 際并發(fā)處理的特點(diǎn),對于實(shí)現(xiàn)數(shù)字萬歷年系統(tǒng),相比于任何嵌入式處理器而言,其特點(diǎn)和優(yōu)勢將得以更加全面體現(xiàn)。 數(shù)字萬年歷中所有模塊都將基于基準(zhǔn)時(shí)鐘源進(jìn)行處理,結(jié)合 FPGA 本身的特點(diǎn),在時(shí)鐘源下可進(jìn)行精確計(jì)數(shù),可輕易而產(chǎn)生十分精確的萬年歷時(shí)間。 基礎(chǔ)部分:萬年歷可包括以下時(shí)間處理模塊:基于秒時(shí)鐘計(jì)數(shù)器進(jìn)行判斷處理。 ①秒,分,時(shí)。 ②星期,上 /下午。 ③日,月,年。 ④鬧鐘 功能部分: ①時(shí)間設(shè)定:使用四個(gè)按鍵進(jìn)行控制,分別是:設(shè)置復(fù)位按鍵,設(shè)置移位鍵,功能“加”鍵,功能“減”鍵。 ②整點(diǎn)報(bào)時(shí)部分:使用 7 個(gè)綠色 LED 作為提示燈。 ③鬧鐘提示部分:使用 16 個(gè)紅色 LED 作為鬧鐘報(bào)時(shí)提示。 顯示部分:使用 LCD1602 液晶顯示屏作為萬年歷的主顯示屏,鬧鐘顯示部分使用 6 個(gè) 7 段數(shù)碼管。 2.方案設(shè)計(jì) 基于 FPGA 的特點(diǎn)以及本萬年歷系統(tǒng)自身功能特點(diǎn)的實(shí)現(xiàn)方式。系統(tǒng)采用模塊化方案進(jìn)行設(shè)計(jì)。各個(gè)模塊及其相關(guān)實(shí)現(xiàn)功能描述,同時(shí)具體的代碼中模塊設(shè)計(jì)將以此基礎(chǔ)進(jìn)行代碼的編寫,詳細(xì)代碼設(shè)計(jì)將在后面給出。 時(shí)鐘發(fā)生模塊:基于系統(tǒng)外部輸入基準(zhǔn)時(shí)鐘源進(jìn)行秒計(jì)數(shù),產(chǎn)生秒時(shí)鐘,在此基礎(chǔ)上可進(jìn)行相關(guān)判斷已經(jīng)在計(jì)數(shù)處理產(chǎn)生其他需要的時(shí)間信號(hào)。 時(shí)鐘處理模 塊:在時(shí)鐘發(fā)生模塊基礎(chǔ)上,利用 FPGA 多模塊并發(fā)處理特點(diǎn),產(chǎn)生分鐘,小時(shí)等基礎(chǔ)信號(hào),在此基礎(chǔ)上再進(jìn)行計(jì)數(shù)以及一些判斷處理可容易產(chǎn)生星期,上 /下午,日,月,年等信號(hào)。但需要注意的是以上所有萬年歷時(shí)鐘信號(hào)的每位數(shù)(十進(jìn)制)在底層均為 4 位二進(jìn)制數(shù)表示,且由于 FPGA 中乘除法運(yùn)算不可綜合,在處理平閏年判斷時(shí),采用拼接語句,然后內(nèi)嵌多個(gè) CASE 語句進(jìn)行處理實(shí)現(xiàn)該功能。以上所有萬年歷信號(hào)在其他模塊處理時(shí)仍然需要進(jìn)行相關(guān)轉(zhuǎn)換或者譯碼。 功能設(shè)定模塊:這里主要是針對功能按鍵和一些狀態(tài)開關(guān)。功能按鍵部分主要包括上述分析中的四 個(gè),即設(shè)置復(fù)位,設(shè)置移位,功能“加”,功能“減”。在代碼編寫時(shí)需要進(jìn)行按鍵的消抖處理,同時(shí),由于鬧鐘設(shè)定和時(shí)間設(shè)定時(shí)均用到,故需要進(jìn)行設(shè)置復(fù)用,這里采用的方法是,以復(fù)位鍵為區(qū)分,長摁下后可進(jìn)行萬年歷的時(shí)間設(shè)定,長摁下后在短按一下返回正常狀態(tài),而鬧鐘設(shè)定需要在鬧鐘開關(guān)有效狀態(tài)下,上述的功能鍵方有效。功能開關(guān)主要控制整個(gè)系統(tǒng)的復(fù)位,鬧鐘開關(guān),液晶顯示屏的讀寫開關(guān),背光,讀寫等,這里全部采用二狀態(tài)的撥碼開關(guān)實(shí)現(xiàn)。 顯示模塊:采用液晶屏 1602 作為數(shù)字萬年歷的主顯示屏,由于屏幕顯示字符數(shù)量有限,再考慮本課程設(shè)計(jì)的綜 合全面性,這里鬧鐘顯示部分采用 6 位數(shù)碼管作為顯示。本模塊主要功能是實(shí)現(xiàn) 1602 的驅(qū)動(dòng)顯示程序,數(shù)碼管的譯碼驅(qū)動(dòng)程序。 鬧鐘模塊:對鬧鐘寄存器的值與萬年歷實(shí)現(xiàn)時(shí)鐘的值進(jìn)行判斷處理,并驅(qū)動(dòng)紅色 LED 燈閃爍實(shí)現(xiàn)鬧鐘的報(bào)時(shí)提示。紅色 LED 的效果設(shè)定為整體閃爍。 整點(diǎn)報(bào)時(shí)模塊:對萬年歷實(shí)時(shí)時(shí)鐘的分鐘和秒鐘進(jìn)行判斷處理,實(shí)現(xiàn)在每個(gè)小時(shí)的整點(diǎn)報(bào)時(shí)功能,報(bào)時(shí) 10 秒鐘,即從 59 分 50 秒開始進(jìn)行報(bào)時(shí)。以綠色 LED燈作為提示,實(shí)現(xiàn)效果是流水閃動(dòng)。 三.系統(tǒng)以及模塊硬件電路設(shè)計(jì) 1.系統(tǒng)總體結(jié)構(gòu)框圖 基于上述方案分析,以 FPGA 芯 片 Cyclone II EP2C35F672C6 為核心構(gòu)建的數(shù)字萬年歷系統(tǒng)的硬件總體結(jié)構(gòu)框圖如下: 2.各個(gè)硬件模塊接口電路圖 以上各個(gè)模塊實(shí)際硬件接口電路如下: ① FPGA 最小系統(tǒng) 電源及控制電路 I/O 接口 BANK1 和 BANK2 I/O 接口 BANK3 和 BANK4 I/O 接口 BANK5 和 BANK6 I/O 接口 BANK7 和 BANK8 ②萬年歷顯示屏模塊( LCD1602 液晶顯示屏) ③鬧鐘顯示模塊( 7 端數(shù)碼管) 注:本系統(tǒng)只用了開發(fā)板上的 6 位數(shù)碼管作為鬧鐘顯示,即數(shù)碼管 7― 3 ④整點(diǎn)報(bào)時(shí)模塊(綠色 LED 閃爍 燈) ⑤鬧鐘提示模塊(紅色 LED 閃爍燈) ⑥萬年歷設(shè)置模塊(功能按鍵) ⑦系統(tǒng)設(shè)置模塊(功能撥碼開關(guān)) 注:本系統(tǒng)只用到了開發(fā)板上的以上幾個(gè)撥碼開關(guān)作為系統(tǒng)控制 3.系統(tǒng)芯片管腳配置情況 數(shù)字萬年歷系統(tǒng) I/O 配置表: 接口 名稱 類型 輸入 /輸出 結(jié)構(gòu)圖上 的信號(hào)名 引腳號(hào) 說明 時(shí)鐘 輸入 clk D13 系 統(tǒng) 輸出 時(shí)鐘 源 系統(tǒng)復(fù)位 輸入 rst_n P25 系統(tǒng)復(fù)位開關(guān) 時(shí)間設(shè)定 輸入 key_r G26 設(shè)定復(fù)位按鍵 設(shè)定移位 輸入 key_yi N23 設(shè)定移位按鍵 設(shè)定 /加 輸入 key_jia P23 功能“加”按鍵 設(shè)定 /減 輸入 key_jian W26 功能“減”按鍵 鬧鐘設(shè)定 輸入 alr_clk_set N26 鬧鐘設(shè)定開關(guān) 鬧鐘開關(guān) 輸入 alr_clk_sw N25 鬧鐘開關(guān)控制開關(guān) 1602 開關(guān) 輸入 sw3 AF14 液晶屏顯示開關(guān)控制開關(guān) 1602 背光 輸入 sw2 AE14 液晶屏背光開關(guān)控制開關(guān) 1602 讀寫控制 輸入 sw1 AD13 液晶顯示屏讀寫控制開關(guān) 1602 開關(guān) 輸出 lcd_on L4 液晶屏開關(guān)控制輸出 1602 背光 輸出 lcd_blon K2 液晶屏背光控制輸出 1602 讀寫控制 輸出 rw K4 液晶顯示屏讀寫控制輸出 1602 使能端 輸出 en K3 液晶顯示屏使能輸出 1602 數(shù)據(jù) /命令 輸出 rs K1 液晶顯示屏命令 /數(shù)據(jù)選擇輸出 1602 數(shù)據(jù) 8 位 輸出 data[7? 0] ― 液晶屏并行數(shù)據(jù)輸出 數(shù)碼管 7 7 位 輸出 seg7[6? 0] ― 數(shù)碼管 7 并行數(shù)據(jù)輸出 數(shù)碼管 6 7 位 輸出 seg6[6? 0] ― 數(shù)碼管 6 并行數(shù)據(jù)輸出 數(shù)碼管 5 7 位 輸出 seg5[6? 0] ― 數(shù)碼管 5 并行數(shù)據(jù)輸出 數(shù)碼管 4 7 位 輸出 seg4[6? 0] ― 數(shù)碼管 4 并行數(shù)據(jù)輸出 綠色 LED燈 輸出 led_g[7? 0] ― 整點(diǎn)報(bào)時(shí)綠色 LED 燈輸出 紅色 LED 燈 輸出 alr_led_g[15? 0] ― 鬧鐘報(bào)時(shí)紅色 LED 燈輸出 四.系統(tǒng)的 Verilog 設(shè)計(jì) 1.根據(jù)上述分析設(shè)計(jì),系統(tǒng)的代碼編寫可分為如下三個(gè)模塊文件實(shí)現(xiàn): ① key_scan 模塊文件 模塊功能及其實(shí)現(xiàn)算法描述: 功能:四個(gè)設(shè)置按鍵的消抖及其處理,產(chǎn)生在長按下復(fù)位鍵下的有效狀態(tài)送萬年歷時(shí)間設(shè)定,以及在鬧鐘有效狀態(tài)下的按鍵輸 出。 算法描述:每個(gè)消抖處理才用延遲打兩拍的處理方法實(shí)現(xiàn)消抖 20 毫秒,其中對于設(shè)定復(fù)位按鍵設(shè)定長按下達(dá) 3S 為有效輸出,短按一下置無效,在設(shè)置復(fù)位有效狀態(tài)下其他三個(gè)按鍵對于萬年歷時(shí)鐘部分方有效。在鬧鐘設(shè)置開關(guān)有效狀態(tài)下,其他三個(gè)按鍵對于鬧鐘設(shè)定有效。 ② clock 模塊文件 模塊功能及其實(shí)現(xiàn)算法描述: 功能:萬年歷時(shí)間產(chǎn)生模塊,包括時(shí)間中的秒,分,時(shí),星期,上 /下日,月,年的產(chǎn)生和處理,鬧鐘寄存器的設(shè)置,整點(diǎn)報(bào)時(shí)的處理及輸出顯示,鬧鐘報(bào)時(shí)的處理及顯示。 算法描述:對于秒,分,時(shí),中的每一位十進(jìn)制數(shù),代碼中定義一 個(gè) 4 位二進(jìn)制數(shù)來表示(如秒時(shí)間定義 2 個(gè) 4 位二進(jìn)制數(shù)表示秒的十位和個(gè)位),采用逐級(jí)計(jì)數(shù)的方法產(chǎn)生相應(yīng)的時(shí)間信號(hào),在設(shè)置按鍵有效或者前一級(jí)時(shí)間信號(hào)產(chǎn)生進(jìn)位時(shí),當(dāng)前時(shí)間相應(yīng)加 1 或者減一,以此類推產(chǎn)生更高級(jí)的時(shí)間信號(hào)(如分對于秒來說有高級(jí)信號(hào),秒滿 60 對分信號(hào)為進(jìn)一信號(hào)),在日,月模塊的判斷處理才有內(nèi)嵌多個(gè) case 語句的方法實(shí)現(xiàn),而平潤年的判斷則采用對年份的十位和個(gè)位拼接利用 case 語句判斷在非整百年下是否為閏年,而對于整百年情況下再拼接年的百位和千位,再內(nèi)嵌一個(gè) case 語句用同樣的方法進(jìn)行判斷是否為閏年。 ③ display 模塊文件 功能:液晶顯示屏的驅(qū)動(dòng),萬年歷時(shí)間譯碼成 1602 的 ASCII 碼字符,鬧鐘寄存器的譯碼及 6 個(gè) 7 段數(shù)碼管的驅(qū)動(dòng)。 算法描述:根據(jù)液晶顯示屏 1602 的驅(qū)動(dòng)時(shí)序圖(如下圖,由于本系統(tǒng)只用到了 1602 的寫時(shí)序,故讀時(shí)序不給出),可編寫 1602 的狀態(tài)機(jī)驅(qū)動(dòng) ,有時(shí)序圖可知,初始化是, RS 0, EN 0 狀態(tài)下,下一個(gè)狀態(tài)送出命令數(shù)據(jù),再下一個(gè)狀態(tài)將 EN 1,即產(chǎn)生高脈沖信號(hào),完成一次命令的初始化,相應(yīng)顯示輸出一個(gè)字符驅(qū)動(dòng)方法也也一直,只需將上述的 RS 1 即可,驅(qū)動(dòng)狀態(tài)機(jī)如下圖。相應(yīng)的 ASCII碼譯碼詳見 源代碼。對于鬧鐘的譯碼也詳見源代碼。數(shù)碼管的驅(qū)動(dòng)直接才有并行數(shù)據(jù)輸出即可。 Lcd1602 液晶顯示屏寫時(shí)序圖 LCD1602 驅(qū)動(dòng)狀態(tài)機(jī) ④頂層模塊為: clk_1602 2.系統(tǒng) Verilog 代碼軟件分析綜合結(jié)果 系統(tǒng) Verilog 模塊綜合的 RTL 視圖如下: 系統(tǒng)綜合報(bào)告如下: 3.系統(tǒng)代碼的重要變量及模塊名稱 由于系統(tǒng)代碼量較大,其中涉及的寄存器變量較多, always 塊語句較多,在源代碼的各個(gè)文件模塊里面均有詳細(xì)的注釋說明,這里不一一列舉,詳見源代碼。 五.結(jié)論以及結(jié)果說明 1.系統(tǒng)開發(fā)環(huán)境: PC 機(jī)一臺(tái): Windos XP 綜合開發(fā)軟件: 仿真軟件: 2.系統(tǒng)運(yùn)行環(huán)境: Altera DE2115 FPGA 開發(fā)板 的應(yīng)用,故本系統(tǒng)沒有進(jìn)行相關(guān)仿真,而是著重進(jìn)行了調(diào)試,調(diào)試方法采用基于開發(fā)板的實(shí)驗(yàn)現(xiàn)象,采用單模塊調(diào)試,多模塊組合調(diào)試等多種方法相結(jié)合的調(diào)試方法進(jìn)行,確保了每個(gè)小模塊功能的正常及整個(gè)系統(tǒng)的穩(wěn)定運(yùn)行。 4.系統(tǒng)運(yùn)行結(jié)果 系統(tǒng)實(shí)現(xiàn)功能和結(jié)果如下: 系統(tǒng)正常運(yùn)行時(shí),按萬年歷實(shí)時(shí)時(shí)鐘的功能正常運(yùn)行,其中,液晶顯示屏1602 越每 600 毫秒更 新一次。 若系統(tǒng)復(fù)位開關(guān)復(fù)位,系統(tǒng)所有數(shù)據(jù)復(fù)位,按下載時(shí)的初始化時(shí)間重新運(yùn)行,即實(shí)現(xiàn)可手動(dòng)復(fù)位。 在每個(gè) 59 分 50 秒開始,整點(diǎn)報(bào)時(shí)綠色 LED 以流水效果進(jìn)行閃爍,閃爍時(shí)間10 秒,即整點(diǎn)時(shí)停止。 在鬧鐘開關(guān)開情況下,數(shù)碼管顯示當(dāng)前鬧鐘時(shí)間,并且到時(shí)鐘走到相應(yīng)鬧鐘設(shè)定時(shí)間時(shí),紅色 LED 以閃動(dòng)效果進(jìn)行鬧鐘報(bào)時(shí)提示,持續(xù)一分鐘后停止。在鬧鐘開關(guān)關(guān)閉狀態(tài)下,數(shù)碼管滅,相應(yīng)鬧鈴功能關(guān)閉。 在鬧鐘設(shè)置開關(guān)有效狀態(tài)下,按下功能“加”鍵,鬧鐘的分鐘的個(gè)位加 1,按下功能“減”則該位減 1,若按下設(shè)置移位鍵后,再按功能“加”或“減” ,則分鐘的十位加 1 或者減 1。由此循環(huán),實(shí)現(xiàn)任意修改鬧鐘。 只有在長按下設(shè)置復(fù)位鍵達(dá) 3 秒時(shí),液晶顯示屏上秒的個(gè)位有光標(biāo)閃爍,表示可修改該位,功能“加”和“減”鍵可實(shí)現(xiàn)加 1 或減 1。若此時(shí)按下設(shè)置移位鍵,則光標(biāo)移到秒的十位閃爍。如此循環(huán),實(shí)現(xiàn)可任意修改液晶顯示屏萬年歷上的任一時(shí)間量。其中上 /下午為系統(tǒng)自動(dòng)判斷,無須修改。若想退出修改狀態(tài),此時(shí),短按一下設(shè)置復(fù)位鍵即可退出,系統(tǒng)正常狀態(tài)下,短按設(shè)置復(fù)位鍵無效。 系統(tǒng)還設(shè)置了液晶顯示屏的背光開關(guān),顯示開關(guān)控制開關(guān),可實(shí)現(xiàn)液晶顯示屏的顯示與否,以及背光的有無。 5.系統(tǒng) 設(shè)計(jì)指標(biāo)情況分析 本系統(tǒng)基本實(shí)現(xiàn)課程設(shè)計(jì)的基本功能和擴(kuò)展功能要求,但本次課程設(shè)計(jì)過程中仍存在以下一個(gè) Bug 和一個(gè)需要完善的功能點(diǎn)。限于學(xué)時(shí)有限,始終未能找到錯(cuò)誤源頭。 Bug:數(shù)字萬年歷系統(tǒng)中月份的十位在未能正常進(jìn)位走時(shí)。其他位數(shù)在平潤年情況下均正常。 需要完善的功能點(diǎn):鬧鐘系統(tǒng)中未設(shè)定是否重響,鬧鈴后認(rèn)為可關(guān)閉功能。 Bug 分析:基于設(shè)計(jì)系統(tǒng)中采用的平潤年的處理方法順利實(shí)現(xiàn)了萬年歷中日的走時(shí),由此可證明同樣的算法也可處理月份,使之正常走時(shí)。但經(jīng)過多次的檢查代碼及其調(diào)試未能找出錯(cuò)誤源頭,現(xiàn)分析可能的錯(cuò)誤如下 : ①由于在一個(gè) always 語句模塊里面內(nèi)嵌過多的 case 語句以及判斷語句,致使綜合成實(shí)際電路后,本模塊電路起始到最終有效信號(hào)延遲時(shí)間過長,導(dǎo)致在一個(gè) clk 周期內(nèi)(本系統(tǒng)晶振位 27MHZ,一個(gè) clk 為 36ns)無法正常實(shí)現(xiàn)本 always語句功能。這從芯片內(nèi)部門電路單元或寄存器延遲角度講也是有可能的 ②本人自身代碼編寫風(fēng)格特點(diǎn)不好,導(dǎo)致代碼編寫中出現(xiàn)難以察覺的錯(cuò)誤,與傳統(tǒng)編程語言不同,硬件描述語言不是主打簡潔,而是追求一個(gè)良好的代碼風(fēng)格,良好的代碼風(fēng)格對于系統(tǒng)穩(wěn)定運(yùn)行有不可忽視的作用。 ③還有可能是代碼中各個(gè) 寄存器變量的復(fù)合判斷使得代
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1