|
這是我學習過程中設計的一個七段數(shù)碼管的顯示。完成了用一個七段數(shù)碼管,在數(shù)碼管上順序顯示0~F,顯示間隔1s
請解決如下問題:
1.使用一個七段數(shù)碼管,在數(shù)碼管上順序顯示0~F,顯示間隔1s。
2.使用 8個七段數(shù)碼管,完成一個數(shù)字鐘,顯示效果:23 -59 -59。 要求計時準確,顯示清晰,穩(wěn)定,同時具有基本功能:①4個按鍵,一個模式鍵,一個+鍵,一個-鍵,一個清零鍵;②校時功能,調整小時和分鐘;③清零功能。附加功能:①增加鬧鐘功能,鬧鐘到時進行聲音提示;②增加倒計時功能,歸零時進行聲音提示;③增加使用聲、光進行整點報時的功能。
目錄
機械與電子信息學院通信工程系 1
一 實驗要求 3
1.1用一個七段數(shù)碼管,在數(shù)碼管上順序顯示 0~F。 3
1.2用 8個七段數(shù)碼管,完成一個數(shù)字鐘。 3
二 實驗方案 3
2-1-1 硬件準備 3
2-1-2 代碼編寫思路 3
2-2-1 硬件準備 3
2-2-2 代碼編寫思路 3
三 硬件電路實現(xiàn) 4
四 測試方法及結果 5
六 心得體會 5
6-1 遇到的困難及解決方法 5
6-1-1 軟件編程挑戰(zhàn) 5
6-1-2 功能整合難題 5
6-1-3 測試與調試 5
6-2 學習與鞏固 5
6-2-1軟件編程技能 5
6-2-1問題解決能力 5
一 實驗要求
1.1用一個七段數(shù)碼管,在數(shù)碼管上順序顯示 0~F。
使用一個七段數(shù)碼管,在數(shù)碼管上順序顯示 0~F,顯示間隔 1s。
1.2用 8個七段數(shù)碼管,完成一個數(shù)字鐘。
使用 8個七段數(shù)碼管,完成一個數(shù)字鐘,顯示效果:23-59-59。要求計時準確,顯示清晰,穩(wěn)定,同時具有基本功能:①4個按鍵,一個模式鍵,一個+鍵,一個-鍵,一個清零鍵;②校時功能,調整小時和分鐘;③清零功能。附加功能:①增加鬧鐘功能,鬧鐘到時進行聲音提示;②增加倒計時功能,歸零時進行聲音提示;③增加使用聲、光進行整點報時的功能。
二 實驗方案
2-1-1 硬件準備:本次實驗由Proteus仿真實現(xiàn)。
2-1-2 代碼編寫思路:設置定時器中斷,每隔1秒觸發(fā)一次。在中斷服務程序中改變顯示的數(shù)值。使用七段數(shù)碼管的譯碼函數(shù)將十六進制數(shù)轉換為對應的七段顯示輸出。
2-2-1 硬件準備:本次實驗由Proteus仿真實現(xiàn)。
2-2-2 代碼編寫思路:使用實時操作系統(tǒng)或裸機編程,根據(jù)優(yōu)先級分配任務。實現(xiàn)一個定時器中斷服務程序(ISR),用于獲取精確的時間。設計主循環(huán)負責更新顯示和檢測按鍵輸入。編寫函數(shù)將時間格式化為兩位數(shù)(小時、分鐘、秒),并在數(shù)碼管上顯示。循環(huán)遍歷八個數(shù)碼管,顯示當前時間。
使用按鍵切換顯示模式(正常時間、校時、鬧鐘設置、倒計時等)。在校時模式下調整小時和分鐘,倒計時模式下遞增/遞減剩余時間。用請零鍵在任何模式下都能重置時間為0或取消鬧鐘。 當處于校時模式時,+鍵和-鍵用來調整小時和分鐘。校時完成后,按下模式鍵返回正常顯示模式。
四 測試方法及結果
具體如視頻所示,將keil編寫的代碼導入芯片后進行運行即可。
六 心得體會
6-1 遇到的困難及解決方法
6-1-1 軟件編程挑戰(zhàn)
- 困難:在編寫程序時,我發(fā)現(xiàn)自己對于中斷服務程序的理解不夠深入,導致計時不準確。
- 解決方法:我查閱了大量的資料,并在網(wǎng)上尋找相關教程,逐步理解了中斷的工作原理和編程技巧。通過反復實驗和修改,終于實現(xiàn)了準確的計時功能。
6-1-2 功能整合難題
- 困難:如何有效地整合校時、清零、鬧鐘和倒計時等功能,而不影響整體性能?
- 解決方法:我采用了分層設計的方法,將每個功能獨立出來,然后通過主程序協(xié)調它們的工作。這樣既保證了功能的完整性,又不會相互干擾。
6-1-3 測試與調試
- 困難:在仿真時,發(fā)現(xiàn)某些功能偶爾會出現(xiàn)異常。
- 解決方法:我記錄下了所有異常情況,逐一分析原因,找到了幾個關鍵的bug,并及時修正。
6-2 學習與鞏固
6-2-1軟件編程技能
- 掌握了C/C++語言在嵌入式系統(tǒng)中的應用。
- 學會了如何編寫高效的中斷服務程序和定時器中斷。
- 學會了如何編寫用戶友好的界面代碼。
6-2-1問題解決能力
- 學會了如何快速定位問題并提出解決方案。
- 學會了如何從錯誤中學習,不斷提高自己。
|
|