【正文】
wm OF lj ISSIGNAL tmp1,tmp2 :STD_LOGIC。SIGNAL tmp_t : STD_LOGIC_VECTOR(15 DOWNTO 0)。 BEGIN tmp_t=h_hi amp。 h_lo amp。 m_hi amp。 m_lo。 PROCESS(clr,h_lo,h_hi,m_lo,m_hi,tmp1,tmp2) begin if clr=39。039。 then 當一定時間時,通過輸出tmp1,tmp2,再通過四個jk觸發(fā)器來實現(xiàn)上下課鈴的分辨 if tmp_t=0000100000000000 OR tmp_t=0000100001010000 or tmp_t=0000100101010000 or tmp_t=0001000001000000 or tmp_t=0001000100110000 or tmp_t=0001001100010101 or tmp_t=0001010000000101 or tmp_t=0001010001010101 or tmp_t=0001010101010101 or tmp_t=0001011001000101 or tmp_t=0001100000110000 or tmp_t=0001100100100000 or tmp_t=0010000000010000 then tmp1=39。139。tmp2=39。039。 elsif tmp_t=0000100001000101 OR tmp_t=0000100100110101 or tmp_t=1010000000110101 or tmp_t=0001000100100101 or tmp_t=0001001000010101 or tmp_t=0001010000000000 or tmp_t=0001010001010000 or tmp_t=0001010101000000 or tmp_t=0001011001000000 or tmp_t=0001011100110000 or tmp_t=0001100100010101 or tmp_t=0010000000000101 or tmp_t=0010000001010101 then tmp1=39。039。tmp2=39。139。 else tmp1=39。039。tmp2=39。039。 end if。 else tmp1=39。039。tmp2=39。039。 end if。 END PROCESS。 temp1=tmp1。 temp2=tmp2。END fwm。11譯碼器LIBRARY IEEE。USE 。ENTITY ymq01 ISPORT(data_in:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。dis_out:OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。END ymq01。ARCHITECTURE fwm OF ymq01 ISBEGINPROCESS(data_in) BEGIN CASE data_in IS WHEN 0000 = dis_out=1000000。顯示0 WHEN 0001 = dis_out=1111001。顯示1 WHEN 0010 = dis_out=0100100。顯示2 WHEN 0011 = dis_out=0110000。顯示3 WHEN 0100 = dis_out=0011001。顯示4 WHEN 0101 = dis_out=0010010。顯示5 WHEN 0110 = dis_out=0000010。顯示6 WHEN 0111 = dis_out=1111000。顯示7 WHEN 1000 = dis_out=0000000。顯示8 WHEN 1001 = dis_out=0010000。顯示9 WHEN 1010 = dis_out=0001000。顯示A WHEN 1011 = dis_out=0000011。顯示B WHEN 1100 = dis_out=1000110。顯示C WHEN 1101 = dis_out=0100001。顯示D WHEN 1110 = dis_out=0000110。顯示E WHEN 1111 = dis_out=1111111。顯示F WHEN OTHERS = dis_out=1111111。 END CASE。END PROCESS 。END fwm。 功能說明此系統(tǒng)完整模擬了紫金港校區(qū)的鈴聲系統(tǒng),并可實現(xiàn)時鐘對校功能。具有一定的擴展性和可調(diào)試性。同時此系統(tǒng)具有一定的擴展性:由于響鈴時間可控,當考試或其他特殊情況下,可根據(jù)需求重設響鈴時間。 樂譜可控,因此可隨個人喜好編寫樂譜,設置成電子鬧鐘。(詳見圖表) 風險預估與故障分析 在移位設置時間時,移動的位置不確定,因此可能會出現(xiàn)按動數(shù)次仍未到達所要調(diào)試的位置上。四 總結(jié)和結(jié)論一路走來,有挫折,有喜悅,有百思不得其解的困惑與彷徨,有試驗成功后的興奮與自豪,這次實驗帶給我們太多太多。在實驗中小組成員分工合作,在明確思路后按部就班地閱讀書籍,設計電路,進行仿真,利用VHDL語言編程。在編程過程中,我們遇到了許許多多的困難,包括如何控制音樂的啟停,如何實現(xiàn)時鐘的調(diào)試等。在老師與同學的幫助下,在連續(xù)奮戰(zhàn)十二小時后,我們的實驗終于調(diào)試成功,這一刻,喜悅的到來是多么不容易!通過本次試驗,我們掌握了一門編程語言,學會了對開發(fā)板的應用,更重要的是學會了一種 學習的方法與提高了自己獨立思考并善于發(fā)現(xiàn)問題的能力,這些對今后的學習特別是電子技術(shù)類課程的學習都極為重要。五 附錄 數(shù)電實驗設計日記2011/6/5 22:30閱讀老師提供的電子琴程序,明確設計思路。分頻器時鐘電路定時電路(45分鐘后開始)音調(diào)編譯電路旋律編譯電路選擇電路2011/6/6 10:002 選擇電路(四選一數(shù)據(jù)選擇器)(以便功能擴展)2011/6/614:13編譯LOOP循環(huán)(旋律響起三次)上課鈴聲樂譜編譯2011/6/6 15:11下課鈴聲樂譜編譯2011/6/6 20:00完成基本電子鐘,閃爍模塊,未修改2011/6/6 20:33完成樂譜改進完成音調(diào)編譯電路2011/6/523:151 完成分頻器設置(頻率未修改)2011/6/6 22:23音樂電路測試成功,但發(fā)現(xiàn)時鐘自動停止還需要加時序電路JK觸發(fā)器,k置高,控制J端,以強制置零.邊沿觸發(fā)器無法編譯,暫為高電平觸發(fā),不帶清零端的觸發(fā)器。2011/6/7咨詢老師,觸發(fā)問題解決2011/6/8理清JK觸發(fā)器控制鈴聲開始結(jié)束方法.時鐘模塊引出一個邏輯端接J當時間到時J=1,其余情況為零。鈴聲模塊引出邏輯段接K,當行至倒數(shù)第二個狀態(tài)時K變高,其余情況為零.2011/6/11 0:32鈴聲部分編譯完成其中預留的兩個J端與時鐘部分相連2011/6/11 2:00進一步完成電子鐘,閃爍,移位模塊。未測試。2011/6/11 14:0019:43完成整個電路的調(diào)試,引腳分配。其中遇到邏輯錯誤,引腳分配遇挫等各種問題。繼續(xù)奮斗.2011/6/11 21:24與開發(fā)板連接成功,但喇叭未向,時鐘和移位出現(xiàn)問題.2011/06/12 1:47基本完成,可以實現(xiàn)時鐘的調(diào)節(jié),閃爍,時間,時間正確;上下課鈴聲完美地調(diào)出與結(jié)束,移位隨機問題尚未解決,加數(shù)有瑕疵26 /