使用STC51單片機模組在kevil4平臺制作的萬年歷專案,
算是自己的第一個專案的記錄和總結,通過這次專案提高了自己對C語言的使用,知道了怎么使用51單片機來完成一些功能,
參考資料為:普中51-雙核-A6開發板資料(記憶中有些例程好像是有點問題,自己辨別一下程式是否正確也對自己有點幫助),
相關的外設有:LCD1602(輸出屏),DS18B20(溫度傳感),DS1302(時鐘芯片),1個無源蜂鳴器(鬧鐘),4個按鍵來校時以及設定鬧鐘時間,
最終實作的功能如下:
上電后螢屏顯示當前年,月,日,溫度,時,分,秒,星期,(斷電后不會重置時間,時鐘芯片會繼續作業),顯示時間會有200ms延遲,
在正常顯示時間界面按下K3鍵會進入設定時間界面并且暫停時鐘芯片,通過K2鍵選中游標閃爍的單位,按下K1鍵為+1,再次按下K3鍵啟動時鐘芯片并回到正常顯示時間界面,(溫度單位無法選中),
在正常顯示時間界面按下K4鍵會進入設定鬧鐘界面(不會暫停時鐘芯片),通過K2鍵選中游標閃爍的單位(時,分),按下K1鍵為+1,再次按下K4退出設定鬧鐘界面并保存鬧鐘時間,當顯示時間到達鬧鐘時間蜂鳴器開始報警,螢屏會顯示鬧鐘界面直到按下K4鍵回傳正常顯示時間界面(時鐘芯片會一直作業,從鬧鐘界面回傳正常顯示時間界面時間不會停止), (鬧鐘一開始設定為25:00,當斷電重啟后鬧鐘時間會重新變成25:00),
總結:
本專案使用了類SPI總線通信的DS1302時鐘芯片,讓我對SPI總線通信有了一些經驗,
還使用了DS18B20溫度傳感器,讓我學習到了如何使用傳感器讀取資料和轉換傳感器讀取的資料,還有LCD1602顯示屏作為輸出設備顯示DS1302的資料還有DS18B20經過轉換后的資料,按鍵模塊讓我學習到了一些按鍵掃描的方法,還有一些常用的按鍵使用方法,還有設定時間模式和設定鬧鐘模式和正常顯示時間模式之間的轉換讓我知道了重入(主函式和中斷函式呼叫同一函式導致呼叫該函式時資料會出問題)這個概念,蜂鳴器模塊讓我學會了怎樣使用無源蜂鳴器,這些模塊綜合起來寫成一個專案也讓我知道頭檔案怎樣使用,還通過一些例程學習到了很多對資料的處理方法,讓我認識到自己C語言的一些格式使用方式是錯誤的,完成這個專案之后我對C語言的理解提高了很多,更重要的是學習到了使用芯片的方法,還有使用傳感器的方法,還學會了看一些基本的時序圖,相比起之前的自己有了很多的不同,能夠自己根據手冊寫出一些東西,最后通過這次的專案讓我知道了自己還有很多要去學習的東西,要不斷完善自己的不足,保持向上的勢頭,不能半途而廢,
此專案的工程還有保存,如有需要資料或是原始碼可以私信,
該鏈接是我完成的工程可以參考:鏈接:https://pan.baidu.com/s/1q6BR73AePHQU-JhiNTOA5A
提取碼:mttt
程序中遇到的問題也可以評論提出一下,一起進步
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287801.html
標籤:其他
