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

正文內(nèi)容

基于fpga的電子鐘的設計(編輯修改稿)

2025-07-20 01:34 本頁面
 

【文章內(nèi)容簡介】 et_EN || Stopwatch_EN) == 139。b1) begin disp_select = time_disp_select。 case(time_disp_select) 639。b100000: Data = hour1。 639。b010000: Data = hour0。 639。b001000: Data = minute1。 639。b000100: Data = minute0。 639。b000010: Data = second1。 639。b000001: Data = second0。 default: Data = 439。b0。 endcase end //鬧鐘設置顯示 else if(Alarmclock_EN == 139。b1) begin disp_select = alarmclock_disp_select。 case(alarmclock_disp_select) 639。b100000: Data = hour1。 639。b010000: Data = hour0。 639。b001000: Data = minute1。 639。b000100: Data = minute0。 639。b000010: Data = second1。 639。b000001: Data = second0。 default: Data = 439。b0。 endcase end //日期以及日期設置顯示 else if((Date_EN || DateSet_EN) == 139。b1) begin disp_select = date_disp_select。 case(date_disp_select) 639。b100000: Data = month1。 639。b010000: Data = month0。 639。b001000: Data = day1。 639。b000100: Data = day0。 default: Data = 439。b0。 endcase end //顯示數(shù)據(jù)譯碼 case(Data) 439。b0000: disp_data = 739。b1111110。 439。b0001: disp_data = 739。b0110000。 439。b0010: disp_data = 739。b1101101。 439。b0011: disp_data = 739。b1111001。 439。b0100: disp_data = 739。b0110011。 439。b0101: disp_data = 739。b1011011。 439。b0110: disp_data = 739。b1011111。 439。b0111: disp_data = 739。b1110000。 439。b1000: disp_data = 739。b1111111。 439。b1001: disp_data = 739。b1111011。 default: disp_data = 739。b0。 endcaseendendmodule 跑表模塊(stopwatch)該模塊實現(xiàn)跑表的功能,在實際中,可以通過改變自動工作模式下的時間的計數(shù)時鐘的頻率來實現(xiàn)秒表的功能,流程圖如圖324所示,邏輯框圖如圖325所示,波形仿真326如圖所示。圖324跑表模塊流程圖圖325跑表模塊邏輯框圖圖326跑表模塊波形仿真圖該模塊的VerilogHDL程序如下:module stopwatch(clk1,clk2,EN,F_out)。output F_out。input EN。input clk1,clk2。reg F_out。always @(EN,clk1,clk2)begin case(EN) 139。b0: F_out = clk1。 139。b1: F_out = clk2。 default: F_out = 139。b0。 endcaseendendmodule 日期顯示與設置模塊(date_main)該模塊實現(xiàn)日期的顯示和日期的調(diào)整與設置,分為三個小模塊:日期自動工作模塊、日期設置模塊和日期控制模塊。該模塊頂層電路圖如圖328所示,邏輯框圖329如圖所示。圖327日期顯示與設置模塊頂層電路圖圖328日期顯示與設置模塊邏輯框圖 日期自動工作模塊(autodate)該模塊實現(xiàn)的是日期的自動工作功能,邏輯框圖如圖329所示,波形仿真如圖330所示。圖329日期自動工作模塊邏輯框圖圖330(a)日期自動工作模塊仿真波形圖圖330(b)日期自動工作模塊仿真波形圖 日期設置模塊(setdate)該模塊用于日期設置,邏輯框圖如圖331所示。圖331 日期設置模塊邏輯框圖當Date_Set_EN為1時,即實現(xiàn)日期設置功能。SW1實現(xiàn)日期格式中月高、低位,日高、低位的位選,即每出現(xiàn)一個SW1上升沿,disp_drive的相應數(shù)值加1(選擇具體的需要調(diào)整的位置)。SW2實現(xiàn)相應得位的數(shù)值的調(diào)整,即每出現(xiàn)一個SW2上升沿,相應位的數(shù)值增加1。 日期控制模塊(datecontrol)該模塊用來選擇向顯示單元傳輸所要顯示的數(shù)據(jù),Date_Set_EN=1時顯示設置后的日期,否則顯示自動模式時的日期。邏輯框圖如圖332所示。圖332 日期控制模塊邏輯框圖 鬧鐘模塊(alarmclock)該模塊實現(xiàn)的功能包括鬧鐘的設置以及鬧鐘時間到后的提示。EN為鬧鐘設置使能,clk_200Hz用于設置中的閃爍顯示的時鐘,其中還定義了hour_set1,hour_set0,minute_set1,minute_set0,second_set1,second_set0,用來表示已經(jīng)設置好的鬧鐘時間。鬧鐘一直處于工作狀態(tài),當前時間(hour1,hour0,minute1,minute0,second1,second0)與設置的鬧鐘時間相比較,當小時、分鐘、秒鐘的時間完全相同時,則鬧鈴響,輸出信號alarm為有效信號1。SW1和SW2是調(diào)整鍵,分別控制位選和數(shù)值的調(diào)整。邏輯框圖如圖333所示,流程圖如334所示,波形仿真如圖335所示。圖333 鬧鐘模塊邏輯框圖圖334 鬧鐘模塊流程圖圖335 鬧鐘模塊波形仿真圖該模塊的VerilogHDL程序如下:module alarmclock(clk_200hz,EN,SW1,SW2,hour1,hour0,minute1,minute0,second1,second0,alarm,alarmclock_disp_select)。output alarm。output [5:0] alarmclock_disp_select。input EN,SW1,SW2,clk_200hz。input [3:0] hour1,hour0,minute1,minute0,second1,second0。reg [5:0] alarmclock_disp_select。reg alarm。reg [3:0] hour_set1,hour_set0。 //存放設置的小時reg [3:0] minute_set1,minute_set0。 //存放設置的分reg [3:0] second_set1,second_set0。 //存放設置的秒reg [2:0] disp_drive。 //設置鬧鐘時間時,數(shù)碼管顯示的動態(tài)位選擇//鬧鐘一直工作(設置的鬧鐘時間與當前時間比較)alwaysbegin if((hour_set1 == hour1)amp。amp。(hour_set0 == hour0) amp。amp。(minute_set1 == minute1)amp。amp。(minute_set0 == minute0) amp。amp。(second_set1 == second1)amp。amp。(second_set0 == second0)) alarm = 139。b1。 else alarm = 139。b0。end//鬧鐘設置中,按SW1一次,將移位一次,顯示當前設置位always @(posedge SW1)begin if(EN == 139。b1) begin if(disp_drive != 339。b101) disp_drive = disp_drive + 339。b1。 else disp_drive = 339。b000。 endend//當前位的鬧鐘數(shù)字設置,按SW2一次,數(shù)字增加1always @(posedge SW2)begin case(disp_drive) 339。b000: begin if(hour_set1 439。b0010) hour_set1 = hour_set1 + 439。b1。 else hour_set1 = 439。b0。 end 339。b001: begin if((hour_set1 439。b0010)amp。amp。(hour_set0 439。b1001)) hour_set0 = hour_set0 + 439。b1。 else if((hour_set1 == 439。b0010)amp。amp。(hour_set0 439。b0100)) hour_set0 = hour_set0 + 439。b1。 else hour_set0 = 439。b0。 end 339。b010: begin if(minute_set1 439。b0101) minute_set1 = minute_set1 + 439。b1。 else minute_set1 = 439。b0。 end 339。b011: begin if(minute_set0 439。b1001) minute_set0 = minute_set0 + 439。b1。 else minute_set0 = 439。b0。 end 339。b100: begin if(second_set1 439。b0101) second_set1 = second_set1 + 439。b1。 else second_set1 = 439。b0。 end 339。b101: begin if(second_set0 439。b1001) second_set0 = second_set0 + 439。b1。 else second_set0 = 439。b0。 end default: begin end endcaseend//閃爍顯示always @(posedge clk_200hz)begin case(disp_drive) // 339。b000: alarmclock_disp_select = 639。b100000。 // 339。b001: alarmclock_disp_select = 639。b010000。 // 339。b010: alarmclock_disp_select = 639。b001000。 // 339。b011: alarmclock_disp_select = 639。b000100。 // 339。b100: alarmclock_disp_select = 639。b000010。 // 339。b101: alarmclock_disp_select = 639。b000001。 default: alarmclock_disp_select = 639。b000000。 endcase endendmodule第四章 總結(jié)與展望 總結(jié)在此次的數(shù)字鐘設計過程中,進一步地熟悉有關數(shù)字電路的知識和具體應用。學會了利用Quartus ii軟件進行原理圖的繪制,硬件描述語言VerilogHDL的編寫,并進行程序的仿真等工作。并能根據(jù)仿真結(jié)果分析設計的存在的問題和缺陷,從而進行程序的調(diào)試和完善。這些加強了我們的分析問題的能力,提高了我們編程的能力,同時還培養(yǎng)了我們獨立完成任務和查閱資料刪選資料的能力。此次的數(shù)字鐘設計重在于各個模塊代碼的編寫,雖然能把各個模塊的代碼編寫出來,但對于各個模塊的優(yōu)化設計還有一定的缺陷和不足。總的來說,通過這次的設計實驗更進一步地增強了編程能力和軟件學習能力,對數(shù)字鐘的工作原理也有了更加透徹的理解。 展望本設計是采用硬件描述語言VerilogHDL和Quartus
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1