仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
所有資料51hei提供下載:
電子時鐘.zip
(72.96 KB, 下載次數: 59)
2020-3-26 12:03 上傳
點擊文件名下載附件
一、 項目要求
1. 能用LED顯示時間,以“時:分:秒”的形式;2. 能通過撥動按鍵達到調時的目的;3. 能實現倒計時功能。二、 項目開發環境1. 硬件環境:Windows 102. 軟件環境:Protues 8.6 Keil uVision4三、 項目分析1. 顯示時間使用的LED可以使用LM016L,時間顯示的原理可以使用定時器,定時器定時滿1S,秒加1,判斷秒大于59時,分加1,并且秒清0;判斷分大于59時,時加1,并且分清0;判斷時大于23時,時清0。主程序流程圖:3. 倒計時設計當時間設定完成后,從當前時間開始倒計時,當秒小于0時,分減1,秒置59,當分小于0時,時減1,分置59,當時小于0時,從00:00:00開始正計時。四、 設計與實現1. 設計思路1) 首先要將時間顯示部分的邏輯原理理清楚并畫出仿真圖,考慮按鍵進去,并寫出時間顯示部分的核心代碼;2) 將按鍵的各個功能理清楚,以及按鍵控制的邏輯思路,編寫出完整的代碼,并進行仿真。3) 考慮增添倒計時功能,在原有的基礎上增加一個按鍵,修改仿真圖,并編寫倒計時函數代碼,最后仿真調試。2. 設計和實現的主要內容1) 設計實現一個以“時:分:秒”形式顯示的電子時鐘,使用4個按鍵實現:開始計時,設置時,設置秒,完成時間設置功能,最后增添按鍵實現倒計時功能。
五、 總結
本次課程設計仿真電子時鐘,相對來說,電路比較簡單,沒有那么復雜,仿真圖中需要注意的LM016L這個LED顯示器件的工作原理,LM016L是1602的一種,它是以ASCII碼為編碼方式,不注意的話,可能會造成亂碼。LM016L在寫入顯示地址時要求最高位D7恒定為高電平1,所以實際寫入的數據應該加上80H,它在顯示字符時光標自動右移,無須人工干預,它的VL為液晶顯示器對比度調整端,我們在仿真中為它接入一個滑動變阻器。對于本次課程設計,其重點在與理清其中的邏輯思路,再來編寫代碼,使得整個課程設計條理清晰。
本次課程設計讓我對本學期所學的單片機是識進行了一次整合,對AT89C51單片機的認識更加的清晰明了。讓我對單片機有關的硬件設計產生了濃厚的興趣,特別時有關定時計數器的部分。
本次設計使用了Keil uVision4和Proteus 8 Professional軟件,讓我對這兩個軟件的運用更加熟練,更加得心應手。讓我認識到了自己本身的不足以及問題解決的方法,讓我認識到了實踐與理論結合的重要性。
|