對于題主的困惑,想要深入單片機,學得更明白的話,談談我是怎么做的吧。
1. 51入門單片機很好,已經明白寄存器原理就OK,說明程序中的代碼對IO口在做什么事情至少是清楚的。datasheet看不懂,為什么?因為不知道看哪里和怎么看。
- 看哪里呢?不管是中文還是英文文檔,幾百頁從頭看到尾那簡直是瘋了~ 所以需要有目的性地看,也就是說要帶著問題看文檔,比如你遇到操作舵機,舵機有自己的時基脈沖,脈沖寬度多少表示多少角度?怎么產生PWM,怎么改變脈沖?這些問題都需要看datasheet,舵機的手冊會告訴你它的產品脈沖和角度的關系;單片機的手冊會告訴你怎么生成PWM,怎么自己修改脈沖寬度。去目錄里找相應問題可能的位置就好啦。
- 那怎么看呢?通常手冊都會有圖或者圖表文字的形式展示給你它的外設框圖,圖中一般會寫出寄存器的名稱甚至操作位和寄存器位段之間的聯動關系,根據上下文的描述看著圖很容易就能明白要怎么操作了。
2. 為什么總要看著別人的理解才能試著做呢,拿了新的外設還是不知道如何開始動手呢?因為沒有產生自己的新想法。外設功能,無非就是讓單片機對IO口的操作來完成,不論是關于調整波形、實現通信協議還是基本的電平變化。這些操作都是可以看到實現效果的,而效果很關鍵,你做一個東西至少要讓出來的東西符合自己的預期吧。而通常一個外設可以直觀地想象出能拿來做什么。
比如一個人體紅外模塊,它可以感知生物的熱紅外,而它做出的反應就是輸出一個電平告訴你它識別到相應東西了,不需要你了解紅外PIR探頭怎么反射捕獲的,感應信號如何運算放大,耦合再放大... 拿到電平你可以做很多事情,接燈、蜂鳴器、電動門、風扇、自動洗手池...超乎你想象的應用場景。
知道應用場景了,我們從程序設計出發,看看改動一些邏輯能在IO產生什么新的現象,為什么能發生,還能怎么改動?這樣在程序運行結果上給你的反饋能大大加強參與感,獲得不斷的樂趣,探索新的設備使用,對單片機平臺作更深入的應用。
3.單片機還是屬于偏軟件層面的編寫,必要時需要自己畫PCB板子,并焊接使用。如果題主希望向硬件方面,電子這一塊發展,模電還是相當重要的,解釋了很多電氣電路的使用原理和適應的使用范圍。在產品電路設計乃至畫板時會起很大作用,感興趣寒假好好利用看看自己是不是能堅持電子電路這一塊也不錯噠。
我在CSDN的博客,會不時記錄下開發中的經歷,歡迎來訪喲
https://blog.csdn.net/Emmy_kanly
祝學業有成!