51單片機入門基礎知識(二)之寄存器

上一篇文章中我們講了51系列單片機的內部結構,它的中央處理單元CPU中包含有運算器,控制邏輯以及特殊功能寄存器。寄存器是中央處理器內用來暫存指令、數據和地址的模塊。寄存器的存貯容量有限,讀寫速度非???。51單片機的寄存器位于某段RAM區(qū)內,我們可以在官方數據手冊中了解到詳細情況。

在8051系列單片機中,00H~7FH是片內數據存儲器空間,80H~FFH是特殊功能寄存器空間(僅占用20多字節(jié));對于8052單片機,00H~7FH為片內數據存儲器空間,80H~FFH是數據存儲器和特殊功能寄存器地址重疊空間。但是高128字節(jié)RAM與特殊功能寄存器區(qū)貌似共用相同的地址范圍,但物理上是獨立的,使用時通過不同的尋址方式加以區(qū)分。高128字節(jié)RAM只能間接尋址,特殊功能寄存器區(qū)只可直接尋址。低128字節(jié)的數據存儲器既可直接尋址也可間接尋址。
51單片機的32個工作寄存器與RAM安排在同一個隊列空間,統(tǒng)一編址并使用相同的尋址方式(直接尋址和間接尋址)。如圖中所示,00H~1FH地址中包含4組工作寄存器區(qū),每組有8個工作寄存器(R0~R7),共占32個單元。
為了統(tǒng)一和增強靈活性,累加器ACC、寄存器B以及程序狀態(tài)寄存器PSW也被納入特殊功能寄存器空間進行尋址。
21個特殊功能寄存器(52單片機是26個)不連續(xù)地分布在128個字節(jié)特殊功能寄存器SFR存儲空間中,地址空間為80H-FFH,在這片SFR空間中,包含有128個位地址空間,地址也是80H-FFH,但只有83個有效位地址,在這21個寄存器中,我們可對11個特殊功能寄存器的某些位作位尋址操作(這里介紹一個技巧:其地址能被8整除的都可以位尋址)。


對于這些定時器的具體介紹在教材和芯片手冊都會有詳細的說明,我這里就不一一列出講解了,后續(xù)講到特定功能時再具體講解它們的用途。大家不用死記硬背,平時沒事時多看幾眼,大概心里有些印象就好了,在編程的時候如果記不住了就趕緊打開資料看一下,對著資料把程序調通就OK了。
我個人是建議沒必要去記憶這些寄存器或其他信息的,首先考試不會考你默寫程序,二是你使用的芯片可能已經升級了,它可能包含更多新的寄存器,還有一個原因是這只是一款基礎的單片機,以后如果接觸更復雜的單片機你要是還想著記憶所以寄存器那你可能會記到哭,并且等你辛辛苦苦記住了在你使用時發(fā)現很多沒用上。
作為一種應用型技術課程掌握它的關鍵在于熟練使用它,如果你記性特別好能全記下來那你真是棒棒噠,如果你記性特別不好,看了就忘,那也無所謂,告訴你一個熟練它的好辦法就是多動手編程,寫多了就有印象了??赡苡信笥堰€會說我練過很多程序還是掌握不了,那我現在就告訴你,既然你編了那么多程序,如果你確定把功能都調通了就把它給保存下來呀,這樣就用不著每次都要重新編寫一次了。在平時的學習,工作過程中把你調通的功能模塊都歸檔保存,以后編程時直接調用或做適當修改就能使用,這樣就可以大大提高開發(fā)效率。甚至在寫代碼時時刻提醒自己能不能把這段代碼做成通用代碼,讓它可以不受單片機平臺的影響,這種不重復造輪子的習慣從初學時養(yǎng)成是最好的。具體的編程方法后面的編程內容中會講到,網上也有許多資料可以自己先了解。
今天的知識就分享到這里,下一篇內容我們再接著繼續(xù)學習。