微控制器學習札記1---前言
阿新 • • 發佈:2019-02-09
首先,說一下,為什麼發這個帖子,我之前也沒有寫部落格的習慣,偶爾回答初學者的問題,留下了QQ,結果很多人加我,我想,一次一次的回答效率太低,不如把自己以前學習微控制器的一些總結寫下來,也許能幫助更多的人,積德行善,修己達人,自己要進步,也不要忘了初學者,畢竟都是從哪個時候過來的,不是高手,也不是大俠,只是一個普通而平凡的微控制器工作者,也許在過個幾十年,就是微控制器地下工作者了,本人也一直往這個方向努力著
我覺得任何技術,都可以用通俗易懂的文字表達出來,微控制器技術也不例外,技術不應該故作高深,應該接地氣。親自動手做一個實用的電子鐘是個不錯的選擇,接下來,我將逐步還原我做這個專案的過程,以及在開發製作過程中的思考,在這期間,遇到什麼,我們就學什麼,通過這個專案,把微控制器有關知識點捋一遍,希望初學者能夠有所收穫,少走彎路。
做專案得有需求,當時我是這麼想的:
- 要電池供電,拖著個數據線太。。。
- 年月日最基本的要輪流顯示,不然還能叫電子時鐘嘛
- 要能讓蜂鳴器唱歌,這個有難度。。。
- 三組鬧鐘,可以開啟或者關閉,還可以自由選擇鬧鈴,這個好
- 60個LED旋轉做秒指標,多幾個花樣做點綴,想法不錯
- 晚上睡覺太刺眼,要有光控模式,好吧
- 晚上房間太熱了,當時是夏天,能顯示溫度就好了
- 電池太費電,要有低功耗和待機模式可選擇就好了
- 電池耗電快,要是能顯示電池電壓就好了
- 設計一個介面,既可以用來學習,也可以拿來作為生活用品使用,這功能,逆天了。。。
- 電池供電,沒有問題,關鍵是充電部分,因為成本低,所以只能選擇簡單充電方案
- 這個用數碼管,很容易做到,到底是用1302還是8563呢?
- 這個有些難度,好在萬能的百度上有很多共享資料,可以借鑑
- 這個實現也沒問題,考驗我的程式設計能力的時候到了,小宇宙爆發吧
- 不用就是個點陣嘛,換個馬甲我還不認識你了麼?
- 用光敏電阻就能解決,要帶AD採集的片子
- 18B20是精確,但是太貴了,還是用熱敏電阻吧
- 待機模式,沒問題,可以實現,顯示電池電壓得用到帶AD的片子啊
- 不就是預留個程式下載介面嗎?說的那麼專業幹嘛
我們解釋下這個原理圖,四段時鐘數碼管專用的,共陽的,60的LED,差不多一個8*8點陣,蜂鳴器用8550驅動,光敏電阻和熱敏電阻選擇了50K的,時鐘晶片選擇了PCF8563的IC,IIC介面,2根線,很方便,2個按鍵,P3.0是外部中斷,可以用於待機喚醒,電池充電部分很簡單,5V的電源經USB輸入後,經過一個二極體,然後大概4.0-4.3v左右的壓降會載入在3.7V的鋰電池上,鋰電池限值充電電壓是4.2V,然後對採集進來的電壓進行分壓,AD採集得有基準電壓,我們用了3.3V的穩壓晶片,同時作為微控制器電源使用,電池加了一個開關,如果將開關關閉,可以作為學習板使用,可以下載我們自己編寫的程式碼,如果將開關閉合的話,是無法識別的,只能作為生活用品使用了,微控制器用了STC15W1K16PWM這個晶片,功能比較強大,帶AD,強推輓大電流可以直接驅動LED,實現我們的要求完全沒問題,好了,理論分析上是如此,實際會是我想的那樣嗎?