書上是以mcs-51為例介紹的單片機(jī)硬件結(jié)構(gòu)。對(duì)硬件不太感興趣,省略若干內(nèi)容。
按功能來分主要包括如下部分:
cpu
ram
rom
四個(gè)并行i/o口
1個(gè)串行口
2個(gè)16位定時(shí)器/計(jì)數(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:進(jìn)位標(biāo)志cy(psw 7)。它表示了運(yùn)算是否有進(jìn)位(或借位)。如果操作結(jié)果在最高位有進(jìn)位(加法)或者借位(減法),則該位為1,否則為0。
ac:輔助進(jìn)位標(biāo)志ac。又稱半進(jìn)位標(biāo)志,它反映了兩個(gè)八位數(shù)運(yùn)算低四位是否有半進(jìn)位,即低四位相加(或減)有否進(jìn)位(或借位),如有則ac為1狀態(tài),否則為0。
f0:標(biāo)志0(用戶可用途一般用途)
rs1,rs0:在四組工作寄存器中選擇
ov:溢出標(biāo)志位ov。mcs-51反映帶符號(hào)數(shù)的運(yùn)算結(jié)果是否有溢出,有溢出時(shí),此位為1,否則為0。
p:奇偶標(biāo)志p。反映累加器acc內(nèi)容的奇偶性,如果acc中的運(yùn)算結(jié)果有偶數(shù)個(gè)1(如11001100b,其中有4個(gè)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是程序計(jì)數(shù)器,正常時(shí)存放著下一條將要執(zhí)行的指令,在程序跳轉(zhuǎn)以及子程序調(diào)用的時(shí)候會(huì)有變化。pc是16位的,216=65536,所以51可以尋址64kb的存儲(chǔ)器空間。復(fù)位后pc的值是0000h。
rom
ram稱為數(shù)據(jù)存儲(chǔ)器,rom稱為程序存儲(chǔ)器,sfr稱為特殊功能寄存器。ram又分為內(nèi)部ram與外部ram,rom也分為內(nèi)部rom與外部rom,不過rom的區(qū)分僅僅是物理上的,邏輯上rom不區(qū)分內(nèi)外。
rom中有5個(gè)特殊地址:
中斷源
處理程序地址
外部中斷0(int0)
0003h
定時(shí)器0中斷(t0)
000bh
外部中斷1(int1)
0013h
定時(shí)器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ū)不能讀寫,行為隨機(jī)。
sfr列表
標(biāo)識(shí)符號(hào)
地址
寄存器名稱
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
定時(shí)控制寄存器
tmod
89h
定時(shí)器方式選擇寄存器
tl0
8ah
定時(shí)器0低8位
th0
8ch
定時(shí)器0高8位
tl1
8bh
定時(shí)器1低8位
th1
8dh
定時(shí)器1高8位
時(shí)鐘周期、機(jī)器周期與指令周期
時(shí)鐘周期:tosc = 1 / fosc。
機(jī)器周期:12tosc = 12 / fosc。
指令周期:1~3個(gè)機(jī)器周期。單字節(jié)指令一個(gè)機(jī)器周期,雙字節(jié)可能1或2個(gè)機(jī)器周期,而3字節(jié)指令肯定是兩個(gè)機(jī)器周期,乘除法個(gè)別、是4個(gè)機(jī)器周期。