單片機的硬件結(jié)構(gòu)
書上是以MCS-51為例介紹的單片機硬件結(jié)構(gòu)。對硬件不太感興趣,省略若干內(nèi)容。
按功能來分主要包括如下部分:
- CPU
- RAM
- ROM
- 四個并行I/O口
- 1個串行口
- 2個16位定時器/計數(shù)器
- 中斷系統(tǒng)
- 特殊功能寄存器
CPU是8位的,RAM只有可憐的128B,8051ROM為4KB。
引腳介紹省略……
PSW(Program Status Word)
位7 | 位6 | 位5 | 位4 | 位3 | 位2 | 位1 | 位0 |
Cy | Ac | F0? | RS1 | RS0 | OV | -- | P |
- CY:進位標志CY(PSW 7)。它表示了運算是否有進位(或借位)。如果操作結(jié)果在最高位有進位(加法)或者借位(減法),則該位為1,否則為0。
- AC:輔助進位標志AC。又稱半進位標志,它反映了兩個八位數(shù)運算低四位是否有半進位,即低四位相加(或減)有否進位(或借位),如有則AC為1狀態(tài),否則為0。
- F0:標志0(用戶可用途一般用途)
- RS1,RS0:在四組工作寄存器中選擇
- OV:溢出標志位OV。MCS-51反映帶符號數(shù)的運算結(jié)果是否有溢出,有溢出時,此位為1,否則為0。
- P:奇偶標志P。反映累加器ACC內(nèi)容的奇偶性,如果ACC中的運算結(jié)果有偶數(shù)個1(如11001100B,其中有4個1),則P為0,否則,P=1。
RS1 | RS0 | 所選擇的寄存器組 |
0 | 0 | 0區(qū)(00H~07H) |
0 | 1 | 1區(qū)(08H~0FH) |
1 | 0 | 2區(qū)(10H~17H) |
1 | 1 | 3區(qū)(18H~1FH) |
PC
PC是程序計數(shù)器,正常時存放著下一條將要執(zhí)行的指令,在程序跳轉(zhuǎn)以及子程序調(diào)用的時候會有變化。PC是16位的,216=65536,所以51可以尋址64KB的存儲器空間。復(fù)位后PC的值是0000H。
ROM
RAM稱為數(shù)據(jù)存儲器,ROM稱為程序存儲器,SFR稱為特殊功能寄存器。RAM又分為內(nèi)部RAM與外部RAM,ROM也分為內(nèi)部ROM與外部ROM,不過ROM的區(qū)分僅僅是物理上的,邏輯上ROM不區(qū)分內(nèi)外。
ROM中有5個特殊地址:
中斷源 | 處理程序地址 |
外部中斷0(INT0) | 0003H |
定時器0中斷(T0) | 000BH |
外部中斷1(INT1) | 0013H |
定時器1中斷(T1) | 001BH |
串口中斷 | 0023H |
RAM
7FH 30H | 用戶RAM區(qū) |
2FH 20H | 位尋址區(qū) |
1FH 18H | 第3工作寄存器區(qū) |
17H 10H | 第2工作寄存器區(qū) |
0FH 08H | 第1工作寄存器區(qū) |
07H 00H | 第0工作寄存器區(qū) |
SFR
特殊功能寄存器以及其地址見下圖?瞻椎貐^(qū)不能讀寫,行為隨機。
SFR列表
標識符號 | 地址 | 寄存器名稱 |
ACC | 0E0H | 累加器 |
B | 0F0H | B寄存器 |
PSW | 0D0H | 程序狀態(tài)字 |
SP | 81H | 堆棧指針 |
DPTR | 82H、83H | 數(shù)據(jù)指針(16位)含DPL和DPH |
IE | 0A8H | 中斷允許控制寄存器 |
IP | 0B8H | 中斷優(yōu)先控制寄存器 |
P0 | 80H | I/O口0寄存器 |
P1 | 90H | I/O口1寄存器 |
P2 | 0A0H | I/O口2寄存器 |
P3 | 0B0H | I/O口3寄存器 |
PCON | 87H | 電源控制及波特率選擇寄存器 |
SCON | 98H | 串行口控制寄存器 |
SBUF | 99H | 串行數(shù)據(jù)緩沖寄存器 |
TCON | 88H | 定時控制寄存器 |
TMOD | 89H | 定時器方式選擇寄存器 |
TL0 | 8AH | 定時器0低8位 |
TH0 | 8CH | 定時器0高8位 |
TL1 | 8BH | 定時器1低8位 |
TH1 | 8DH | 定時器1高8位 |
時鐘周期、機器周期與指令周期
時鐘周期:Tosc = 1 / fosc。
機器周期:12Tosc = 12 / fosc。
指令周期:1~3個機器周期。單字節(jié)指令一個機器周期,雙字節(jié)可能1或2個機器周期,而3字節(jié)指令肯定是兩個機器周期,乘除法個別、是4個機器周期。
編輯:admin 最后修改時間:2018-05-08