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

正文內(nèi)容

基于vhdl語言實現(xiàn)數(shù)字時鐘的設(shè)計(編輯修改稿)

2025-01-11 01:18 本頁面
 

【文章內(nèi)容簡介】 電子工程學(xué)院 畢業(yè)設(shè)計論文 12 圖 顯示模塊 在圖 顯示模塊中, Led_hour1, Led_hour0, Led_ minu1, Led_ minu0,Led_sec1, Led_sec0 為 6個 4位輸入 bcd 碼; clk1khz 為掃描(觸發(fā))信號; Sel[2..0]為 3 位掃描位選信號用于選擇那個數(shù)碼管顯示共控制了 8 個數(shù)碼管; Ledga[6..0]為 7 位掃描段選信號用于選擇數(shù)碼管的 7 段管中的那些管子顯示。在本段程序中,七段碼采用的是共陰極接法。 控制 模塊 每一個電子時鐘都會有控制按鍵,因此本程序也不會列外,其控制按鍵如圖 所示。圖中 hour minu 為小時與分鐘的加; Ft 為功能選擇鍵; Out1, out2為計數(shù)模塊的 k1, k2; Out3, out4 為鬧鐘模塊的 k1, k2; Choice 為輸出數(shù)據(jù) 的選擇與功能的選擇;選擇的計數(shù) Choice 共有 4個模式,但此程序只用到了 3個模式。 圖 鬧鐘模塊 在圖 中可以看到,輸入信號有 3 個,分別為:掃描信號 Clk1khz;小時加 K1;分鐘加 K2。 6 個輸出信號為: Led_hour1[3..0]、 Led_hour0[3..0]、Led_minu1[3..0]、 Led_minu0[3..0]、 Led_sec1[3..0]、 Led_sec0[3..0]。其中l(wèi)ed_hour、 Led_minu、 Led_sec 為 6 個 4 位 輸出 bcd 碼。 成都 工業(yè)學(xué)院 電子工程學(xué)院 畢業(yè)設(shè)計論文 13 圖 鬧鐘模塊 鬧鐘模塊采用 led 的亮滅來 實現(xiàn),通過 fpga 芯片 的引腳輸出的電平變化來控制 led 的導(dǎo)通與否 。 顯示選擇 模塊 本設(shè)計的數(shù)字時鐘由于有計數(shù)和鬧鐘兩個顯示輸出模塊,因此要加一個顯示選擇模塊用于選擇顯示的數(shù)據(jù)。 如圖 ,模塊 A1a6與 b1b6為 4位輸入 bcd碼; led_hour、 Led_minu、 Led_sec 為 6個 4位輸出 bcd碼; clk1khz為掃描信號(觸發(fā)信號); Choice[1..0]為 2 位掃描。位選信號用于選擇數(shù)據(jù)顯示,其中 choice 為 00/01/11 顯示 a 數(shù)據(jù); choice 為 10 顯示 b數(shù)據(jù)。 圖 顯示選擇 圖 本 設(shè)計整個模塊以 FPGA 芯片 EPF10K10LC844 做為主控制核心模塊,再增加其它功能 以實現(xiàn)多功能數(shù)字時鐘 。圖 為 該 數(shù)字時鐘總的原理圖。 首先輸入脈沖進入分頻模塊,經(jīng)過分頻后得到 1hz 的計數(shù)脈沖;而得到的1hz 計數(shù)脈沖最終流入計數(shù)模塊,在計數(shù)模塊中 246060 邏輯的計數(shù),并且計成都 工業(yè)學(xué)院 電子工程學(xué)院 畢業(yè)設(shè)計論文 14 數(shù)模塊也在每時每刻的向顯示模塊輸出數(shù)據(jù)。 一般的時鐘功能由以上步驟已經(jīng)皆以實現(xiàn),而其他功能都是在其基礎(chǔ)上 進行添加而得到的,如鬧鐘功能,首先添加一個可以調(diào)節(jié)小時與分中的模塊,再將模塊中的小時與分鐘引入到計數(shù)模塊中,與其中的時間進行對比,當一一對應(yīng)時,報警。 圖 數(shù)字時鐘總的原理圖 成都 工業(yè)學(xué)院 電子工程學(xué)院 畢業(yè)設(shè)計論文 15 第 4 章 數(shù)字時鐘的 VHDL 實現(xiàn) 軟件設(shè)計與說明 FPGA 軟件的設(shè)計主要包括執(zhí)行軟件(完成各種實質(zhì)性功能)的設(shè)計和監(jiān)控軟件的設(shè)計。本設(shè)計是基于 FPGA VHDL 語言的數(shù)字時鐘,所以編寫調(diào)試 VHDL 語言的 QURATUS2 軟件是必不可少的,編寫調(diào)試 VHDL 程序 。 Quartus2 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào) 試工具,全 Windows 界面。與匯編相比, Vhdl語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。 程序流程框圖 本設(shè)計上電后,開始時對 fpga 芯片 進行初始化、對時間日期設(shè)置,顯示出初始數(shù)據(jù),然后對鍵盤進行掃描,如果功能鍵 ft按下,對時間、日期進行調(diào)整,如果 功能 鍵 ft 再 按下,對鬧鐘時間進行設(shè)置,再返回數(shù)據(jù)顯示。圖 為程序流程示意圖。 圖 程序流程框圖 開始 按鍵掃描 時間設(shè)置 鬧鐘設(shè)置 初始化 fpga 芯片 、時間日期處理 數(shù)碼管 顯示 成都 工業(yè)學(xué)院 電子工程學(xué)院 畢業(yè)設(shè)計論文 16 模塊流程圖 按鍵調(diào)整模塊流程圖 本設(shè)計開始后,功能鍵按下一次進入 時間 調(diào)整狀態(tài),有 小時加 鍵和 分鐘加 鍵進行調(diào)整;功能鍵按下兩次進入 鬧鐘 調(diào)整狀態(tài),有 小時加 鍵和 分鐘加 鍵進行調(diào)整;功能鍵 再 按下 一 次返回,時間繼續(xù)走。圖 為按鍵調(diào)整流程示意圖。 圖 按鍵調(diào)整示意圖 控制功能的主要思路也是選擇與分配, ft( functions selection)為功能選擇鍵,具體到程序中對應(yīng)為 choice 的數(shù)值。 Choic=00 時將 k1k2 的變化給計數(shù)模塊; Choic=10 時將 k1k2 的變化給鬧鐘 模塊; Choice 初始值為 11。 控制模塊的 VHDL 主要程序如下: always @( posedge ft ) choice = choice + 239。d1。 // 功能鍵的選擇 always @(posedge choice or posedge hour or posedge minu) begin a=0。 b=0。 //a,b 中間變量 if (hour==1) begin a=1。 end if (minu==1) begin b=1。 end if(choice!=0) begin out1=0。 out2=0。end//為選中計數(shù)模塊輸入為 0 if(choice!=2) begin out3=0。 out4=0。end//為選中鬧鐘模塊輸入為 0 case(choice) 239。b00: out1=a。 239。b10: out3=a。 endcase case(choice) 239。b00: out2=b。 239。b10: out4=b。 endcase end 開始 按鍵按一次 按 鍵連按二次 按鍵按一次 返回 進入計數(shù)模塊 小 時 加 分鐘 加 進入鬧鐘模塊 小 時 加 分鐘 加 成都 工業(yè)學(xué)院 電子工程學(xué)院 畢業(yè)設(shè)計論文 17 鬧鐘 模塊流程圖 模塊的功能實現(xiàn)共為 2 段 第一段為賦初值,為 鬧鐘賦初值 080000,運用了 initial 語句,此語句不帶觸發(fā)值,沿著時間軸,只運行一次。 第二段為 led_hour1,led_hour0,led_minu1,led_minu0, led_sec1, led_sec0 的計數(shù),觸發(fā)信號為 k k2,分別對應(yīng)時鐘與分鐘 最終將輸出的數(shù)據(jù),輸入給計數(shù)模塊,并于其時間相互對應(yīng),若一一對應(yīng) 觸發(fā)鬧鐘。 圖 鬧鐘模塊流程圖 。 圖 鬧鐘模塊流程圖 鬧鐘模塊 的 VHDL 主要程序如下: 首先賦初值,為鬧鐘賦初值 080000 initial begin led_hour1=0。 led_hour0=8。 led_minu1=0。 led_minu0=0。 led_sec1=0。 led_sec0=0。 //首先 賦初值 080000 end 開始 初始化 掃描按鍵 進入鬧鐘 修改數(shù)據(jù) 返回數(shù)據(jù) 成都 工業(yè)學(xué)院 電子工程學(xué)院 畢業(yè)設(shè)計論文 18 這一段, k2 為分鐘的按鍵調(diào)整鍵, k2 按下分鐘加 1, led_minu0[3:0]為分鐘的個位, led_minu1[3:0] 為分鐘的十位。 加法是按照 60 進制進行。 always @(posedge k2) //分鐘的按鍵調(diào)整 begin if(led_minu0[3:0]==9 ) //判斷是否為 9 begin led_minu0[3:0]=0。 if(led_minu1[3:0]==5) //判斷是否為 5 begin led_minu1[3:0]=0。 //判斷是否為 59 end else begin led_minu1[3:0]=led_minu1[3:0]+139。b1。//不為 5則分十位加 1 end end else begin led_minu0[3:0]=led_minu0[3:0]+139。b1。 //不為 9則 +1 end end 這一段為小時的按鍵調(diào)整 , k1為時鐘的按鍵調(diào)整鍵, k1 按下時鐘加 1, led_ hour 0[3:0]為時鐘的個位, led_ hour 1[3:0] 為時鐘的十位。 加法是按照 60進制進行。 always @(posedge k1) //小時的按鍵調(diào)整 begin if(led_hour0[3:0]==3 amp。amp。 led_hour1[3:0]==2) //判斷是否為 23 begin led_hour0[3:0]=0。 led_hour1[3:0]=0。//是則小時變?yōu)?00 end else begin if(led_hour0[3:0]9) begin led_hour0[3:0]=led_hour0[3:0]+139。b1。 //是則小時變?yōu)?00 end else begin led_hour0[3:0]=0。 成都 工業(yè)學(xué)院 電子工程學(xué)院 畢業(yè)設(shè)計論文 19 if(led_hour1[3:0]2) begin led_hour1[3:0]=led_hour1[3:0]+139。b1。 分頻 模塊流程圖 分頻模塊采用的原理為計數(shù),例如把一個 10hz 的信號分為 1hz,將 10hz 信號作為輸入信號,編程計數(shù) 10次,再翻轉(zhuǎn)就得到 1hz 的信號( 10hz 一秒鐘跳 10下)。 圖 44 分頻 模塊流程圖 。 圖 分頻 模塊流程圖 分頻模塊的 VHDL 主要程序如下: 主要原理為計數(shù), clk1kHz 為輸入觸發(fā)信號 , clk 為中間信號用于計數(shù),clk1Hz 為輸出信號,輸出 1hz 信號。 always @ (posedge clk1kHz)// clk1kHz 為輸入觸發(fā)信號 begin clk=clk+1。 //觸發(fā)信號每來一次, clk+1 if(clk==n) //分頻的關(guān)鍵 N分頻 begin clk=0。 //直到記為 n,清 0 clk1Hz=~clk1Hz。 //clk1Hz 為輸出信號 end end 計數(shù) 模塊流程圖 計數(shù)模塊,可一分為 3 小段:第一段為賦初值模塊;第二段為時間的 計數(shù)與調(diào)整;第三段為鬧鐘的驗證;計數(shù)模塊是整個程序的核心,一 切功能都是基于此展開。 圖 計數(shù) 模塊流程圖 。 計數(shù) 開始 輸入脈沖信號 計到 N時翻轉(zhuǎn) 將翻轉(zhuǎn)信號給 cpout 返回數(shù)據(jù) 成都 工業(yè)學(xué)院 電子工程學(xué)院 畢業(yè)設(shè)計論文 20 圖 計數(shù) 模塊流程圖 計數(shù)模塊的 VHDL 主要程序如下: 這段是 賦初值 ,將時間的初值賦為 120000, led_hour1 時鐘的十位 。 led_hour0 時鐘的個位 。 led_minu1 分鐘的十位 。 led_minu0 分鐘的個位 。led_sec1 秒鐘的十位 。 led_sec0 秒鐘的個位 begin led_hour1=1。 led_hour0=2。 led_minu1=0。 l
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1