暑假大概看了一下單片機,走馬觀花式的,不過感覺對它的整理了解還可以 這兩天仔細看了下單片機編程的程序,跳躍式的過來過去的翻著那本書,感覺有了點小感悟 單片機,最強大的還是她的位操作!
我們學生一般用的51單片機是八位的,而八位恰好一個字節,在尋址方式里按字節尋址我感觸不大,因為比較常見吧 單片機的sfr,也就是特殊功能寄存器,在單片機設計之初的目的應該是方便控制所以大部分sfr可以直接位尋址 這里的位尋址其實也就是可以直接對某些sfr的位直接訪問,這對于控制很方便
舉幾個例子,對于單片機的內部資源,定時器T0,T1和中斷IE,中斷優先IP 這些sfr的位都有特定的含義,參看單片機的書可以了解到有的位是選擇工作方式的,有的是檢測工作狀態的,對于置位操作可以很快且高效地控制相關資源的使用
計算機只認0,1吧,單片機作為簡單的計算機,麻雀雖小,五臟俱全哦 那么你與單片機交流最簡單高效地方法就是01串了,不過處理2進制比較麻煩,所以單片機一般處理16進制數據 這樣看起來比較簡約
對于單片機的位定義,bit和sbit很自由,只要你定義的位在可位尋址的區域,那么就OK了 位定義和宏定義結合起來使用,可以大大增強程序的可讀性
說個實際點的例子,比如我要選擇T0的工作方式2 那么我可以寫TMOD=0x02;二進制下就是00000010 看下TMOD的D0-D7的定義,自然你就知道了這個方式是怎么實現的 還有包括IE中的中斷操作,用|或&很方便
在學習單片機之初,跑馬燈的程序很經典,一般都會以<<實現燈輪流亮,這個便是位中的移位操作,通過<<或>>改變狀態很是快捷~~
本來想要把一些實例寫出來,后來想等時間多了再好好鉆研下 計算機的位操作之美很是讓人陶醉!
繼續研究……