1. 程式人生 > >微控制器學習札記1---前言

微控制器學習札記1---前言

首先,說一下,為什麼發這個帖子,我之前也沒有寫部落格的習慣,偶爾回答初學者的問題,留下了QQ,結果很多人加我,我想,一次一次的回答效率太低,不如把自己以前學習微控制器的一些總結寫下來,也許能幫助更多的人,積德行善,修己達人,自己要進步,也不要忘了初學者,畢竟都是從哪個時候過來的,不是高手,也不是大俠,只是一個普通而平凡的微控制器工作者,也許在過個幾十年,就是微控制器地下工作者了偷笑,本人也一直往這個方向努力著大笑

我覺得任何技術,都可以用通俗易懂的文字表達出來,微控制器技術也不例外,技術不應該故作高深,應該接地氣。親自動手做一個實用的電子鐘是個不錯的選擇,接下來,我將逐步還原我做這個專案的過程,以及在開發製作過程中的思考,在這期間,遇到什麼,我們就學什麼,通過這個專案,把微控制器有關知識點捋一遍,希望初學者能夠有所收穫,少走彎路。

做專案得有需求,當時我是這麼想的:

  • 要電池供電,拖著個數據線太發火。。。
  • 年月日最基本的要輪流顯示,不然還能叫電子時鐘嘛大笑
  • 要能讓蜂鳴器唱歌,這個有難度哭。。。
  • 三組鬧鐘,可以開啟或者關閉,還可以自由選擇鬧鈴,這個好奮鬥
  • 60個LED旋轉做秒指標,多幾個花樣做點綴,想法不錯微笑
  • 晚上睡覺太刺眼,要有光控模式,好吧微笑
  • 晚上房間太熱了,當時是夏天難過,能顯示溫度就好了
  • 電池太費電,要有低功耗和待機模式可選擇就好了驚訝
  • 電池耗電快,要是能顯示電池電壓就好了委屈
  • 設計一個介面,既可以用來學習,也可以拿來作為生活用品使用,這功能,逆天了。。。尷尬
以上,我提出來了很多的要求,但是能不能做,我們就要分析一下:
  1. 電池供電,沒有問題,關鍵是充電部分,因為成本低,所以只能選擇簡單充電方案
  2. 這個用數碼管,很容易做到,到底是用1302還是8563呢?哭
  3. 這個有些難度,好在萬能的百度上有很多共享資料,可以借鑑大笑
  4. 這個實現也沒問題,考驗我的程式設計能力的時候到了,小宇宙爆發吧偷笑
  5. 不用就是個點陣嘛,換個馬甲我還不認識你了麼?吐舌頭
  6. 用光敏電阻就能解決,要帶AD採集的片子
  7. 18B20是精確,但是太貴了,還是用熱敏電阻吧
  8. 待機模式,沒問題,可以實現,顯示電池電壓得用到帶AD的片子啊快哭了
  9. 不就是預留個程式下載介面嗎?說的那麼專業幹嘛鄙視
     好了,經過以上分析,我認為這個東西,在技術上是可行的,既然可行就要畫原理圖,而畫圖,要用到ALTIUM DESIGNER,經過一番思索,畫好的原理圖如下:
       我們解釋下這個原理圖,四段時鐘數碼管專用的,共陽的,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,實現我們的要求完全沒問題,好了,理論分析上是如此,實際會是我想的那樣嗎?
       今天就到這裡吧,有時間在更新,欲知後事如何,且聽下回分解偷笑,第一次寫,還不知道怎麼上傳原理圖,先傳到我的網盤裡,有需要的直接下載就好了。 https://pan.baidu.com/s/1mhO71va