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

正文內(nèi)容

畢業(yè)論文--數(shù)字電路課程設(shè)計報告--基于1602液晶屏的數(shù)字萬年歷verilog版-全文預(yù)覽

2024-12-12 21:41 上一頁面

下一頁面
  

【正文】 alr_clk_fen_ge , .clk_nian_qian clk_nian_qian , .clk_nian_bai clk_nian_bai , .clk_nian_shi clk_nian_shi , .clk_nian_ge clk_nian_ge , .clk_yue_shi clk_yue_shi , .clk_yue_ge clk_yue_ge , .clk_ri_shi clk_ri_shi , .clk_ri_ge clk_ri_ge , .clk_xing clk_xing , .clk_shi_shi clk_shi_shi , .clk_shi_ge clk_shi_ge , .clk_fen_shi clk_fen_shi , .clk_fen_ge clk_fen_ge , .clk_miao_shi clk_miao_shi , .clk_miao_ge clk_miao_ge , .data data , .rs rs , .en en , .rw rw , .lcd_on lcd_on , .lcd_blon lcd_blon , .seg7 seg7 , .seg6 seg6 , .seg5 seg5 , .seg4 seg4 。 wire [3:0] alr_clk_fen_shi。 wire [3:0] clk_miao_shi。 wire [3:0] clk_shi_shi。 wire [3:0] clk_yue_ge。 wire [3:0] clk_nian_bai。 wire alr_yi。 wire r_en。 output [6:0] seg5。 output lcd_on。 output [7:0] data。 input alr_clk_sw。 input key_yi。 附錄:數(shù)字萬年歷 Verilog 源代碼 頂層文件: module clk_1602 clk, rst_n, key_r, key_yi, key_jia, key_jian, alr_clk_set, alr_clk_sw, sw1,sw2,sw3, rs, rw, en, lcd_on, lcd_blon, data, seg7,seg6,seg5,seg4, alr_led_r, led_g 。再者是學(xué)習了例外一種硬件描述語言 VHDL,雖然本系統(tǒng)是采用自身比較擅長的 Verilog 語言進行代碼的編寫,但從某種程度上來說,通過兩種語言之間的對比和聯(lián)系的學(xué)習方法,收獲很大的一點就是理解了 FPGA 內(nèi)部門電路系統(tǒng)搭建運行與語言代碼編寫的聯(lián)系和工作原理,相比之下, FPGA 的多并發(fā)處理系統(tǒng)對比較其他所有包括嵌入式等微處理器設(shè)計開發(fā)系統(tǒng)有其非常鮮明的特點,以往一些如嵌入式微處理器處理過程都是順序執(zhí)行代碼內(nèi)容,而 FPGA 真正實現(xiàn)了并發(fā)多線程的處理,相比之下,對于以往傳統(tǒng)未處理器相對復(fù)雜的問題對于用 FPGA 處理可能將會大大簡化,如本數(shù)字萬年歷系統(tǒng)就是很明顯的一個例子,但對于某些比較簡單的單線處理問題對于 FPGA 來說在代碼編寫就顯得比較麻煩,例如本系統(tǒng)中的液晶顯示屏驅(qū)動程序的編寫, FPGA 對時序的要求較傳統(tǒng)處理器更加嚴格,但實現(xiàn)速度更快,這些是本次課程設(shè)計過程中體驗比較深刻的一點 。這從芯片內(nèi)部門電路單元或寄存器延遲角度講也是有可能的 ②本人自身代碼編寫風格特點不好,導(dǎo)致代碼編寫中出現(xiàn)難以察覺的錯誤,與傳統(tǒng)編程語言不同,硬件描述語言不是主打簡潔,而是追求一個良好的代碼風格,良好的代碼風格對于系統(tǒng)穩(wěn)定運行有不可忽視的作用。其他位數(shù)在平潤年情況下均正常。 系統(tǒng)還設(shè)置了液晶顯示屏的背光開關(guān),顯示開關(guān)控制開關(guān),可實現(xiàn)液晶顯示屏的顯示與否,以及背光的有無。若此時按下設(shè)置移位鍵,則光標移到秒的十位閃爍。在鬧鐘開關(guān)關(guān)閉狀態(tài)下,數(shù)碼管滅,相應(yīng)鬧鈴功能關(guān)閉。 4.系統(tǒng)運行結(jié)果 系統(tǒng)實現(xiàn)功能和結(jié)果如下: 系統(tǒng)正常運行時,按萬年歷實時時鐘的功能正常運行,其中,液晶顯示屏1602 越每 600 毫秒更 新一次。對于鬧鐘的譯碼也詳見源代碼。 算法描述:對于秒,分,時,中的每一位十進制數(shù),代碼中定義一 個 4 位二進制數(shù)來表示(如秒時間定義 2 個 4 位二進制數(shù)表示秒的十位和個位),采用逐級計數(shù)的方法產(chǎn)生相應(yīng)的時間信號,在設(shè)置按鍵有效或者前一級時間信號產(chǎn)生進位時,當前時間相應(yīng)加 1 或者減一,以此類推產(chǎn)生更高級的時間信號(如分對于秒來說有高級信號,秒滿 60 對分信號為進一信號),在日,月模塊的判斷處理才有內(nèi)嵌多個 case 語句的方法實現(xiàn),而平潤年的判斷則采用對年份的十位和個位拼接利用 case 語句判斷在非整百年下是否為閏年,而對于整百年情況下再拼接年的百位和千位,再內(nèi)嵌一個 case 語句用同樣的方法進行判斷是否為閏年。 三.系統(tǒng)以及模塊硬件電路設(shè)計 1.系統(tǒng)總體結(jié)構(gòu)框圖 基于上述方案分析,以 FPGA 芯 片 Cyclone II EP2C35F672C6 為核心構(gòu)建的數(shù)字萬年歷系統(tǒng)的硬件總體結(jié)構(gòu)框圖如下: 2.各個硬件模塊接口電路圖 以上各個模塊實際硬件接口電路如下: ① 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 ④整點報時模塊(綠色 LED 閃爍 燈) ⑤鬧鐘提示模塊(紅色 LED 閃爍燈) ⑥萬年歷設(shè)置模塊(功能按鍵) ⑦系統(tǒng)設(shè)置模塊(功能撥碼開關(guān)) 注:本系統(tǒng)只用到了開發(fā)板上的以上幾個撥碼開關(guān)作為系統(tǒng)控制 3.系統(tǒng)芯片管腳配置情況 數(shù)字萬年歷系統(tǒng) I/O 配置表: 接口 名稱 類型 輸入 /輸出 結(jié)構(gòu)圖上 的信號名 引腳號 說明 時鐘 輸入 clk D13 系 統(tǒng) 輸出 時鐘 源 系統(tǒng)復(fù)位 輸入 rst_n P25 系統(tǒng)復(fù)位開關(guān) 時間設(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] ― 整點報時綠色 LED 燈輸出 紅色 LED 燈 輸出 alr_led_g[15? 0] ― 鬧鐘報時紅色 LED 燈輸出 四.系統(tǒng)的 Verilog 設(shè)計 1.根據(jù)上述分析設(shè)計,系統(tǒng)的代碼編寫可分為如下三個模塊文件實現(xiàn): ① key_scan 模塊文件 模塊功能及其實現(xiàn)算法描述: 功能:四個設(shè)置按鍵的消抖及其處理,產(chǎn)生在長按下復(fù)位鍵下的有效狀態(tài)送萬年歷時間設(shè)定,以及在鬧鐘有效狀態(tài)下的按鍵輸 出。 鬧鐘模塊:對鬧鐘寄存器的值與萬年歷實現(xiàn)時鐘的值進行判斷處理,并驅(qū)動紅色 LED 燈閃爍實現(xiàn)鬧鐘的報時提示。在代碼編寫時需要進行按鍵的消抖處理,同時,由于鬧鐘設(shè)定和時間設(shè)定時均用到,故需要進行設(shè)置復(fù)用,這里采用的方法是,以復(fù)位鍵為區(qū)分,長摁下后可進行萬年歷的時間設(shè)定,長摁下后在短按一下返回正常狀態(tài),而鬧鐘設(shè)定需要在鬧鐘開關(guān)有效狀態(tài)下,上述的功能鍵方有效。但需要注意的是以上所有萬年歷時鐘信號的每位數(shù)(十進制)在底層均為 4 位二進制數(shù)表示,且由于 FPGA 中乘除法運算不可綜合,在處理平閏年判斷時,采用拼接語句,然后內(nèi)嵌多個 CASE 語句進行處理實現(xiàn)該功能。系統(tǒng)采用模塊化方案進行設(shè)計。 ②整點報時部分:使用 7 個綠色 LED 作為提示燈。 ①秒,分,時。 用 LCD 液晶屏來顯示當前時間及功能模式。 能夠調(diào)整小時和分鐘的時間,調(diào)整的形式為通過按鍵進行累加。 在整點進行提示,可通過 LED 閃爍實現(xiàn) ,閃爍頻率及花型可自己設(shè)計。 調(diào)整當前時間以及鬧鐘時間,在按鍵累加的功能不變的基礎(chǔ)上,增加一個功能,即當按住累加鍵超過 3 秒,時間能夠以 4Hz 的頻率累加。 基礎(chǔ)部分:萬年歷可包括以下時間處理模塊:基于秒時鐘計數(shù)器進行判斷處理。 ④鬧鐘 功能部分: ①時間設(shè)定:使用四個按鍵進行控制,分別是:設(shè)置復(fù)位按鍵,設(shè)置移位鍵,功能“加”鍵,功能“減”鍵。 2.方案設(shè)計 基于 FPGA 的特點以及本萬年歷系統(tǒng)自身功能特點的實現(xiàn)方式。 時鐘處理模 塊:在時鐘發(fā)生模塊基礎(chǔ)上,利用 FPGA 多模塊并發(fā)處理特點,產(chǎn)生分鐘,小時等基礎(chǔ)信號,在此基礎(chǔ)上再進行計數(shù)以及一些判斷處理可容易產(chǎn)生星期,上 /下午,日,月,年等信號。功能按鍵部分主要包括上述分析中的四 個,即設(shè)置復(fù)位,設(shè)置移位,功能“加”,功能“減”。本模塊主要功能是實現(xiàn) 1602 的驅(qū)動顯示程序,數(shù)碼管的譯碼驅(qū)動程序。以綠色 LED燈作為提示,實現(xiàn)效果是流水閃動。 ② clock 模塊文件 模塊功能及其實現(xiàn)算法描述: 功能:萬年歷時間產(chǎn)生模塊,包括時間中的秒,分,時,星期,上 /下日,月,年的產(chǎn)生和處理,鬧鐘寄存器的設(shè)置,整點報時的處理及輸出顯示,鬧鐘報時的處理及顯示。相應(yīng)的 ASCII碼譯碼詳見 源代碼。 五.結(jié)論以及結(jié)果說明 1.系統(tǒng)開發(fā)環(huán)境: PC 機一臺: Windos XP 綜合開發(fā)軟件: 仿真軟件: 2.系統(tǒng)運行環(huán)境: Altera DE2115 FPGA 開發(fā)板 的應(yīng)用,故本系統(tǒng)沒有進行相關(guān)仿真,而是著重進行了調(diào)試,調(diào)試方法采用基于開發(fā)板的實驗現(xiàn)象,采用單模塊調(diào)試,多模塊組合調(diào)試等多種方法相結(jié)合的調(diào)試方法進行,確保了每個小模塊功能的正常及整個系統(tǒng)的穩(wěn)定運行。 在鬧鐘開關(guān)開情況下,數(shù)碼管顯示當前鬧鐘時間,并且到時鐘走到相應(yīng)鬧鐘設(shè)定時間時,紅色 LED 以閃動效果進行鬧鐘報時提示,持續(xù)一分鐘后停止。 只有在長按下設(shè)置復(fù)位鍵達 3 秒時,液晶顯示屏上秒的個位有光標閃爍,表示可修改該位,功能“加”和“減”鍵可實現(xiàn)加 1 或減 1。若想退出修改狀態(tài),此時,短按一下設(shè)置復(fù)位鍵即可退出,系統(tǒng)正常狀態(tài)下,短按設(shè)置復(fù)位鍵無效。 Bug:數(shù)字萬年歷系統(tǒng)中月份的十位在未能正常進位走時。但經(jīng)過多次的檢查代碼及其調(diào)試未能找出錯誤源頭,現(xiàn)分析可能的錯誤如下 : ①由于在一個 always 語句模塊里面內(nèi)嵌過多的 case 語句以及判斷語句,致使綜合成實際電路后,本模塊電路起始到最終有效信號延遲時間過長,導(dǎo)致在一個 clk 周期內(nèi)(本系統(tǒng)晶振位 27MHZ,一個 clk 為 36ns)無法正常實現(xiàn)本 always語句功能。其次一點非常重要的是更加熟悉了 FPGA 的開發(fā)流程和相關(guān)過程中的重要環(huán)節(jié)。最后,本次課程設(shè)計非常大的收獲就是,本次設(shè)計中出現(xiàn)的找不到錯誤源頭的 Bug 深深提醒了我今后養(yǎng)成一個良好的風格和習慣,一個良好的編寫代碼風格,對于系統(tǒng)的正確和穩(wěn)定實現(xiàn)意義重大,一個良好的仿真習慣,對于錯誤的 查找和算法的深入分析具有指導(dǎo)意義,能幫助我很快很好的找到那些難以察覺的錯誤,或是算法漏洞。 input key_r。 input alr_clk_set。 input sw3。 output rw。 output [6:0] seg6。 output [7:0] led_g。 wire jian_en。 wire [3:0] clk_nian_qian。 wire [3:0] clk_yue_shi。 wire [2:0] clk_xing。 wire [3:0] clk_fen_ge。 wire [
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1