文章目錄
- 前言
- 一、CPU
- 二、存盤器
- 1.存盤器結構
- 2.物理上有4個存盤器地址空間
- 3.邏輯上有3個存盤器地址空間
- 4.程式存盤器
- 5.程式存盤器中的幾個特殊地址的使用
- 三、外部資料存盤器
- 四、內部資料存盤器
- (1)內部RAM——暫存器區(地址為0~1FH的前32個單元)
- (2)內部RAM——位尋址區
- (3)內部RAM——用戶RAM區
- (4)堆疊區
- 五、特殊功能暫存器
- 六、時鐘電路
- 七、單片機的時序單位
- 八、復位電路
- (1)復位的作用
- (2)幾個重要的復位狀態:
- 九、引腳功能
- 總結
前言
51系列單片機包括下列部件
1個8位CPU
1個片內振蕩器及時鐘電路
4KB ROM程式存盤器
128B RAM資料存盤器
可尋址64KB外部資料存盤器和64KB外部程式存盤器的控制電路
32條可編程的I/O線(4個8位并行I/O介面)
兩個16位的定時/計數器
1個可編程全雙工串行介面
5個中斷源和兩個優先級嵌套中斷結構
一、CPU
CPU是單片機的核心部件,它由運算器和控制器等部件組成,
-
運算器
運算器的功能是進行算術運算:加、減、乘、除、加1、減1、比較、BCD碼十進制調整等
邏輯運算:與、或、異或、求反、回圈等邏輯操作
位操作:內部有布爾處理器,它以進位標志位C為位累加器,用來處理位操作,可對位置 “1”、對位清零 、位判斷等,
操作結果的狀態資訊送至狀態寄存PSW,2.程式計數器PC(注:PC是不可以被用戶尋址) 程式計數器PC是16位的暫存器,用來存放即將要執行的指令地址,可對64KB程式存盤器直接尋址,執行指令時,PC內容的低8位經P0口輸出,高8位經P2口輸出,
3.指令暫存器 指令暫存器中存放指令代碼,CPU執行指令時,由程式存盤器中讀取的指令代碼送入指令存盤器,經指令譯碼器譯碼后由定時與控制電路發出相應的控制信號,完成指令功能,
二、存盤器
1.存盤器結構
MCS-51的儲存器結構與常見的微型計算機的配置方法不同,主要特點是:程式存盤器和資料存盤器的尋址空間是分開的,各有自己的尋址方式、控制信號和功能,
前面我們講到了51單片機有64KB的程式存盤器,其中呢有4KB的程式存盤器0000H~0FFFH的4KB地址范圍是在單片機的片內還是片外,由EA引腳決定
存盤器映像圖,

程式存盤器用來存放程式和始終要保留的常數,
資料存盤器存放程式運行中所需要的常數和變數,
程式計數器PC是16位的暫存器,用來存放即將要執行的指令地址,可對64KB程式存盤器直接尋址,執行指令時,PC內容的低8位經P0口輸出,高8位經P2口輸出,
2.物理上有4個存盤器地址空間

3.邏輯上有3個存盤器地址空間

4.程式存盤器
程式存盤器用來存放編制好的始終保留的固定程式和表格常數,程式儲存器以程式計數器 PC 作為地址指標,通過16位地址總線,可尋址的地址空間為64KB,
對于內部無ROM的單片機,如8031單片機,必須外部擴展程式存盤器,地址從0000H~FFFFH都是外部程式存盤空間,/EA 應始終接地,
對于內部有ROM的單片機,/EA引腳可接高電平,使程式從內部ROM開始執行,當PC值超出內部ROM的容量時,會自動轉向外部程式存盤器空間,外部程式存盤器地址空間為1000H~FFFFH;/EA引腳也可接低電平,此時內部ROM將不起作用,
5.程式存盤器中的幾個特殊地址的使用

三、外部資料存盤器
用于存放隨機讀寫的資料,
MCS-51單片機的外部資料存盤器和外部I/O口實行統一編址,最多可擴展64KB外部資料存盤器,
四、內部資料存盤器
前面我們說到,51單片機有128B 的資料存盤器,即128個位元組的資料存盤器
那么讓我們來看看是怎么區分的
內部資料存盤器是使用最多的地址空間,存放隨機讀寫的資料,分為:通用暫存器區、堆疊區、運算運算元存放區
那么有同學就有疑問了,51不是只有128B的內部資料存盤器,哪來的高128單元,原因是我們現在是用的52即增強型的了,所以講的也是52的了
注: 對51基本型單片機只有00H-7FH單元128位元組的RAM區,對52增強型的單片機還有80H-FFH組成的高128位元組RAM區(共256位元組RAM ),


(1)內部RAM——暫存器區(地址為0~1FH的前32個單元)
內部RAM的前32個單元,共分為4組,每組含8個暫存器,在組中按R7~R0編號,地址從00H~1FH,
CPU使用哪一組暫存器,由程式狀態字中的RS0、RS1的設定來決定,

初始化時或復位時,自動選中0組,
一旦選中一組,其它三組只能作為資料存盤器使用,而不能作為暫存器使用,
設定多組暫存器可以方便保護現場,
(2)內部RAM——位尋址區
片內20H~2FH位元組單元,即可作為一般的RAM區使用進行位元組操作,也可以對單元中的每一位進行位操作,共有16個位元組尋址單元,按位計算有128位,位地址為:00H~7FH
例:清除位地址00H單元
CLR 00H ;對某位清0
MOV 20H, #00H ;
或 AND 20H, #0FEH

(3)內部RAM——用戶RAM區
除選中的寄存組以外的存盤器均可以作為通用RAM區,
單元地址為30H~7FH,共80個位元組單元,
注意:對于用戶RAM區,只能以存盤單元(位元組地址)的形式來使用,一般用作堆疊區,
(4)堆疊區
8XX51單片機的堆疊設在內部RAM區,深度不大于128位元組,初始化時SP指向07H,
注: 對51基本型單片機只有00H-7FH單元128位元組的RAM區,對52增強型的單片機還有80H-FFH組成的高128位元組RAM區(共256位元組RAM ),
五、特殊功能暫存器
專用暫存器:做為專門規定的、有特定的用途暫存器,也就是用于存放相應部件的控制命令、狀態、或者資料的暫存器,共22個專用暫存器,其中有21個為可尋址的 , 特殊功能暫存器用英文縮寫SFR (Special Fuction Register)表示, 具體見下表,表中標注了各SFR的名稱、位元組地址、可尋址位的位地址和位名稱,

21個特殊功能暫存器的名稱及主要功能介紹如下,詳細的用法見后面各節的內容,
A—累加器,自帶有全零標志Z,A=0則Z=1;A≠0則Z=0,該標志常用于程式分支轉移的判斷條件,
B—暫存器,常用于乘除法運算,
PSW—程式狀態字,主要起著標志暫存器的作用,其8位定義如下,

CY:進/借位標志
反映最高位的進位借位情況,加法為進位、減法為借位,
CY=1,有進/借位 ; CY=0,無進/借位,
AC:輔助進/借位標志
反映高半位元組與低半位元組之間的進/借位,
AC=1有進/借位; AC=0無進/借位 ,
FO:用戶標志位,可由用戶設定其含義,
RS1,RS0:作業暫存器組選擇位,
OV:溢位標志
反映補碼運算的運算結果有無溢位
有溢位 OV=1,無溢位OV=0,
(計算機中設立了溢位標志位OV,通過最高位的進位(符號位的進位CY和次高位的進位CY-1異或產生))
例如

溢位OV:兩個補碼數相加時結果超出補碼表示范圍而產生
進位CY:當運算結果超出計算機位數的限制(8位,16位),會產生進位,他是由最高位計算產生的,在加法中表現為進位,在減法中表現為借位,
-:無效位,
P:奇偶標志
運算結果有奇個“1”,P=1;運算結果有偶個“1”,P=0,
SP—堆疊指標,8XX51單片機的堆疊設在片內RAM,
對堆疊的操作包括壓入(PUSH)和彈出(POP)兩種方式,并且遵循先進后出、后進先出的原則,同時,SP指向的存盤內容總是有用的,地址的生產方向是向上(高地址)生成,操作時先修改SP,后壓堆疊或出堆疊,并按位元組進行操作,
DPTR——資料指標暫存器
用來存放16位地址值,以便用間接尋址或變址尋址片外存盤器,DPTR可分成DPL和DPH兩個8位暫存器分別使用,
P0、P1、P2、P3——I/O埠暫存器
是四個并行I/O埠映射入SFR中的暫存器,通過對該暫存器的讀/寫,可實作從相應I/O埠的輸入/輸出,
例如:
指令 MOV P1,A 實作了把A累加器中的內容從P1埠輸出的操作;
指令MOV A,P3 實作了把P3埠線上的資訊輸入到A中的操作,
此外還有如下暫存器,它們將在后面章節介紹:
IP——中斷優先級控制暫存器,
IE——中斷允許控制暫存器,
TMOD——定時器/計數器方式控制暫存器,
TCON——定時器/計數器控制暫存器,
TH0、TL0——定時器/計數器0,
TH1、TH1——定時器/計數器1,
SCON——串行埠控制暫存器,
SBUF——串行資料緩沖器,
PCON——電源控制暫存器,
注: 在52子系列中,高128位元組RAM和SFR的地址是重疊的,究竟訪問哪一塊可通過不同的尋址方式加以區分,訪問高128位元組RAM采用暫存器間址,****訪問SFR則只能采用直接尋址(易錯),訪問低128位元組RAM時,兩種尋址均可采用,
六、時鐘電路
單片機的時鐘信號用來提供單片機內各種微操作時間基準,8XX51單片機的時鐘信號通常有兩種電路形式:
內部振蕩方式和外部振蕩方式,


★電容器C01、C02起穩定振蕩頻率、快速起振的作用,電容值一般為 5~30PF,
外部振蕩方式是把已有的時鐘信號引入單片機,這種方式適宜用于使單片機的時鐘與外部信號保持一致,外部振蕩方式如圖1-4所示,

七、單片機的時序單位
單片機的時序單位有:
振蕩周期:晶振的振蕩周期,又稱時鐘周期,為最小的時序單位,單片機作業的基本頻率信號,是單片機內的最高頻率,由單片機振蕩電路產生或外部振蕩電路提供;
振蕩周期(或時鐘周期):Tosc=1/fosc
狀態周期:振蕩頻率經單片機內的二分頻器分頻后提供給片內CPU的時鐘周期,因此,一個狀態周期包含2個振蕩周期,
狀態時間:S=2Tosc


機器周期(MC):1個機器周期由6個狀態周期及12個振蕩周期組成,是計算機執行一種基本操作的時間單位,
機器周期=12Tosc
指令周期:指令周期是執行一條指令所需要的時間,指令周期是以機器周期的倍數來表示,如單周期、雙周期和四周期指令等

例:單片機外接晶振頻率12MHZ時的各種時序單位:
振蕩周期=1/fosc=1/12MHZ=0.0833us
狀態周期=2/fosc=2/12MHZ=0.167us
機器周期=12/fosc=12/12MHZ=1us
指令周期=(1~4)機器周期=1~4us
八、復位電路
復位操作則使單片機的片內電路初始化,使單片機從一種確定的狀態開始運行,復位操作通常有2種基本形式:上電復位 和 開關復位
上電后,由于電容充電,使RST持續一段高電平時間,當單片機已在運行程序中時,按下復位鍵也能使RST持續一段時間的高電平,從而實作上電且開關復位的操作,通常選擇
C=10uf


(1)復位的作用
①得到一個可知的上電狀態;
②作業時可隨時重新初始化硬體,重新開始;
③協調多個器件同步作業;
④電源穩定后再作業,靠復位來確定單片機開始作業;
⑤在上電后控制程式開始的準確時間;

(2)幾個重要的復位狀態:
PC = 0000H
P0、P1、P2、P3 = 0FFH
PSW= 00H
SP = 07H
九、引腳功能
8XX51單片機有44引腳的
方形封裝形式和40個引腳的雙
列直插式封裝形式,最常用的
40個引腳封裝,見圖1-6.




總結
本章我們講到了,51單片機的結構,這也是最基本的知識,畢竟硬體決定物理世界,有哪些硬體決定能實作哪些功能,只有了解底層的硬體結構,才能讓我們更好地撰寫代碼,所以說本章可以說是重中之重,知識點也多,注意辨析,把這一章看懂了,說明51單片機入門了,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282917.html
標籤:其他
