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

正文內容

用vhdl語言編寫的數(shù)字鐘程序5篇(已修改)

2025-10-20 10:58 本頁面
 

【正文】 第一篇:用VHDL語言編寫的數(shù)字鐘程序永州職業(yè)技術學院課 程 設 計課程名稱: EDA技術實用教程 題 目:基于FPGA的數(shù)字鐘設計 系、專業(yè): 電子技術系應用電子 年級、班級: 07級電子大專 學生姓名: 馮 苗 指導老師: 龍 安 國 時 間: 2008年12月目 錄一、系統(tǒng)設計………………………………………………………..…………………………………………………… ………………………………………………..……………………………………………….………………………………………… 二.方案論證與比較………………………………… ………………………………………… 方案二 ………………………………………… 方案三 …………………………………………三、設計思路…………………………………………………………………………………………………… ………………………………………………….四、調試情況………………………………………………….五、系統(tǒng)調試…………………………………………………六、心得體會……………………………………………………...附:參考文獻……………………………………………………..用VHDL語言編寫的數(shù)字鐘程序摘要:本設計要求一個12進制或24進制的具有時、分、秒計時功能的數(shù)字鐘,并要求能進行時、分、秒調整,每逢時有報時功能。數(shù)字鐘是一種用數(shù)字電路技術實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。本設計基于FPGA芯片的數(shù)字鐘的設計,通過多功能數(shù)字鐘的設計思路,詳細敘述了整個系統(tǒng)的硬件、軟件實現(xiàn)過程,實現(xiàn)了時間的顯示和修改功能、報時功能等,并盡可能的減少誤差,使得系統(tǒng)可以達到實際數(shù)字鐘的允許誤差范圍內。關鍵詞:FBGA、數(shù)碼管、按鍵一、系統(tǒng)設計1.1 設計要求 1.1.1 任務設計并制作一個數(shù)字鐘,通過設計,掌握電子設計的一般思路,學習電子設計的一般方法。1.1.2要求(1)基本要求①計時功能:這是數(shù)字鐘的基本功能,每隔一秒鐘計時一次,并在顯示屏上顯示當前時間。②校時功能:能設置實時時間作為數(shù)字鐘的當前時間,具有小時、分鐘的手動校準時間功能。(2)發(fā)揮部分①計時進制的選擇功能:十二小時制或二十四小時制可選擇控制; ②整點報警功能:每逢整點自動報警; ③其他創(chuàng)新功能。二.方案論證與比較、方案一:采用74LS163和CD4046設計數(shù)字鐘 方案一電路圖晶體振蕩器電路給數(shù)字鐘提供一個頻率穩(wěn)定準確的32768Hz的方波信號,可保證數(shù)字鐘的走時準確及穩(wěn)定。不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電路。由CD4046組成的分頻器電路將32768Hz的高頻方波信號經32768(2次分頻后得到2Hz的方波信號經過D觸發(fā)器二分頻得到秒信號供秒計數(shù)器進行計數(shù)。分頻器實際上也就是計數(shù)器。時間計數(shù)電路由秒個位和秒十位計數(shù)器、分個位和分十位計數(shù)器及時個位和時十位計數(shù)器電路構成,其中秒個位和秒十位計數(shù)器、分個位和分十位計數(shù)器為60進制計數(shù)器,而根據(jù)設計要求,時個位和時十位計數(shù)器為12進制計數(shù)器。,并且為保證數(shù)碼管正常工作提供足夠的工作電流。數(shù)碼管通常有發(fā)光二極管(LED)數(shù)碼管和液晶(LCD)數(shù)碼管,本設計提供的為LED數(shù)碼管。14)方案二:采用AT89C52單片機、數(shù)碼管設計數(shù)字鐘 方案二電路圖本方案采用AT89C52單片機,單片機的P1口接數(shù)碼管顯示電路,P0口接鍵控制數(shù)碼管的顯示,RESET接入復位和晶振電路。該電路能否成功,關鍵在于程序的編寫而對元器件的要求不太高。用匯編編寫得數(shù)字鐘電路,采用分支結構編寫,程序正常計數(shù),當檢測到有鍵按下時,:采用FPGA制成的數(shù)字鐘 方案三電路圖,12MHZ的晶振信號加入到FPGA芯片的內定義PORT,切換鍵、調時鍵,輸出的8個四位的BCD碼,經過數(shù)據(jù)選擇器使得某一位信號的BCD碼被選中,被選中的信號經過3/8譯碼電路,、分,采用ALTER公司的ACE1K系列的EP1K10TC1003芯片,得到的1HZ時鐘信號作為內部秒個位計數(shù)模塊的時鐘信號,秒個位進行十進制計數(shù),到9進位,為秒十位提供6進制時鐘信號,當秒為59時,為小時計數(shù)器的個位提供時鐘信號,當小時計數(shù)器、分鐘計數(shù)器輸出信號與鬧鐘預設信號一樣時,:計時功能、整點報時功能和重置時間功能,因此有3個子模塊:計時、報時(alarm1)、重置時間(smhd1)。其中計時模塊有4部分構成:秒計時器(second1)、分計時器(minute1)、時計時器(hour1)和星期計時器(day1)。該數(shù)字鐘可以實現(xiàn)3個功能:計時功能、整點報時功能和重置時間功能,因此有3個子模塊:計時、報時(alarm1)、重置時間(smhd1)。其中計時模塊有4部分構成:秒計時器(second1)、分計時器(minute1)、時計時器(hour1)和星期計時器(day1)。 1)、分頻器模塊其實是一個計數(shù)器,外加信號頻率為12MHZ時,在內部定義了一個信號從0到11999999的整數(shù)型計數(shù)信號count1,當內部信號計數(shù)為11999999時,count1計數(shù)為0,產生進位信號CLK1為1,當內部信號計數(shù)為11999時,countf計數(shù)為0,產生進位信號CLK1為1,)、秒計數(shù)模塊內部定義時鐘其余時刻均為為秒計時器(second1)是由一個60進制的計數(shù)器構成的,具有清0、置數(shù)和計數(shù)功能。其中reset為清0信號,當reset為0時,秒計時器清0;set 為置數(shù)信號,當set為0時,秒計時器置數(shù),置s1的值。clk為驅動秒計時器的時鐘,sec為秒計時器的輸出,ensec為秒計時器的進位信號,作為下一級的時鐘輸入信號。3)、分計時器(minute1)是由一個60進制的計數(shù)器構成的,具有清0、置數(shù)和計數(shù)功能。其中reset為清0信號,當reset為0時,分計時器清0;set 為置數(shù)信號,當set為0時,分計時器置數(shù),置m1的值。clkm為驅動分計時器工作的時鐘,與ensec相連接;min為分計時器的輸出;enmin為分計時器的進位信號,作為下一級的時鐘輸入信號。4)、時計時器(hour1)模塊是由一個24進制的計數(shù)器構成的,具有清0、置數(shù)和計數(shù)功能。其中reset為清0信號,當reset為0時,時計時器清0;set 為置數(shù)信號,當set為0時,時計時器置數(shù),置h1的值。clkh為驅動時計時器工作的時鐘,與enmin相連接;hour為時計時器的輸出;enhour為時計時器的進位信號,作為下一級的時鐘輸入信號。圖75)、報時模塊(alarm1)的功能是當整點(將min作為該模塊的輸入信號,min=00)時,alarm輸出高電平,并且持續(xù)1分鐘。清0端(reset)前面一小段(200ns)為低電平,后面均為高電平;設置min的值,使其分別為……58分、59分、00分、01分、02分、03分……,保存波形圖,進行仿真,產生如下波形: 7見由上述波形可以清楚的看到:alarm在0分時輸出高電平,并且持續(xù)至1min不為0。6)、去抖模塊定義變量fb范圍0到29999,當外部時鐘信號來臨時候,fp計數(shù),只有當FP為29999時,該信號送到內部的D觸發(fā)器中,只有按鍵按下且5ms時鐘信號來臨時,)、系統(tǒng)總調試(topclock)(Endtime為10us在秒計時器的clk輸入一個周期為5ns的時鐘信號;清0端(reset)前面一小段(40ns)為低電平,后面均為高電平;置數(shù)端(set)前面一小段(60ns)為低電平,后面均為高電平;秒重置端(s1)可設置數(shù)值為50秒,分重置端(m1)可設置數(shù)值為57分, 時重置端(h1)可設置數(shù)值為23時, 星期重置端(d1)可設置數(shù)值為6(星期六);保存波形圖,進行仿真,產生如下波形”圖8由上述波形可以清楚的看到:當reset為0時,數(shù)字鐘清0;當set為1時,數(shù)字鐘置數(shù)圖9由上述波形可以清楚的看到:秒計時器開始計時,當?shù)竭_59秒后,秒計時器sec又從0開始計時,同時分鐘min加了1,為58分。由上述波形可以清楚的看到:分計時器開始計時,當?shù)竭_59分后,分計時器min又從0開始計時,同時小時hour加了1,為24時,即時計時器hour也又從0開始計時,而此時星期計時器day也由6加1后回0,又從0開始計時。當分計時器min為0時,alarm輸出一個高電平,持續(xù)直到分計時器min的值為1。圖108)、用經過5ms去抖程序后,使得keyout輸出一個脈沖,將此信號作為按鍵代碼計數(shù)電路.為每一種按鍵代碼賦已一定功能.從而實現(xiàn)一鍵控制.程序流程圖如下:詳細程序見附錄。程序控制過程如下說明:四、產品調試與結果分析 1)書寫遺漏錯誤提示在305行和307行附近有一個錯誤,在結束時,沒有加END ,)數(shù)碼管顯示時有閃爍檢查掃描信號時鐘時,發(fā)現(xiàn)掃描信號時鐘為100HZ,掃描頻率過低,發(fā)現(xiàn)掃描信號頻率設為100HZ,)數(shù)碼管秒個位顯示時無8字符、8賦值錯誤修改觀察,、心得體會轉眼一學期就要悄悄走遠,,進一步加深了對EDA的了解,讓我對它有了更加濃厚的興趣。特別是當每一個子模塊編寫調試成功時,心里特別的開心。但是在編寫頂層文件的程序時,遇到了不少問題,特別是各元件之間的連接,以及信號的定義,總是有錯誤,在細心的檢查下,終于找出了錯誤和警告,排除困難后,程序編譯就通過了,心里終于舒了一口氣。在波形仿真時,也遇到了一點困難,想要的結果不能在波形上得到正確的顯示:在設定輸入的時鐘信號后,數(shù)字鐘開始計數(shù),但是始終看不到小時、星期的循環(huán)計數(shù)。后來,在數(shù)十次的調試之后,才發(fā)現(xiàn)是因為輸入的時鐘信號對于小時、星期來說太短了。經過屢次調試,終于找到了比較合適的輸入數(shù)值:分鐘的初始值可以設為57(559都可以),小時的初始值可以設為23,星期的初始值可以設為6,這樣,仿真之后,就能清楚的看出分鐘、小時的循環(huán)計數(shù)。另外,Endtime的值需要設置的長一點:10us左右,輸入的時鐘周期值要設置的短一點:5ns左右??偟膩碚f,這次設計的數(shù)字鐘還是比較成功的,有點小小的成就感,終于覺得平時所學的知識有了實用的價值,達到了理論與實際相結合的目的,不僅學到了不少知識,而且鍛煉了自己的能力,使自己對以后的路有了更加清楚的認識,同時,對未來有了更多的信心。附:參考文獻黃仁欣主編《EDA技術實訓教程》,清華大學出版社,2006年第2版。楊志忠主編《數(shù)字電子技術》,北京高等教育出版社,2003年12第2版。潘松、黃繼業(yè)主編《單片機實訓教程》,科學出版社,2005年5月第2版。附件程序:library ieee。use 。use 。use 。entity clock isport(clk:in std_logic。12M時鐘keyin:in std_logic。speak:out std_logic。蜂鳴器dout:out std_logic_vector(7 downto 0)。段碼selout:out std_logic_vector(2 downto 0))。位選 end clock。architecture one of clock issignal count:integer range 0 to 11999999。1HZ秒信號signal counf:integer range 0 to 11999。1000HZSIGNAL CP_5ms : STD_LOGIC。SIGNAL Q1,Q2,Q3: STD_LOGIC。SIGNAL keyout : STD_LOGIC。SIGNAL CJ:STD_LOGIC_VECTOR(2 DOWNTO 0)。signal sel:std_logic_vector(2 downto 0)。位選signal hou1:std_logic_vector(3 downto 0)。計數(shù)中小時的十位signal hou2:std_logic_vector(3 downto 0)。小時的個位signal min1:std_logic_vector(3 downto 0)。分鐘的十位signal min2:std_logic_vector(3 downto 0)。分鐘的個位signal sec1:std_logic_vector(3 downto 0)。秒的十位signal sec2:std_logic_vector(3 downto 0)。秒的個位signal seth1:std_logic_vector(3 downto 0)。設時中小時的十位signal seth2:std_logic_vector(3 downto 0)。小時的個位signal setm1:std_logic_vector(3 downto 0)。分鐘的十位signal setm2:std_logic_vector(3 downto 0)。分鐘的個位signal h1:std_logic_vector(3 downto 0)。顯示小時十位signal h2:std_logic_vector(3 downto 0)。小時的個位signal m1:std_logic_vector(3 downto 0)。分鐘的十位signal m2:std_logic_vector(3 downto 0)。分鐘的個位signal s1:std_logic_vector(3 downto 0)。秒的十位signal s2:std_logic_vector(3 downto 0)。秒的個位signal clk1,clkk,beep:std_logic。begin分頻 fp:process(clk)beginif rising_edge(clk)thencountcounfif count=11999999 then clk1countbee
點擊復制文檔內容
數(shù)學相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1