单片机的硬件结构

书上是以mcs-51为例介绍的单片机硬件结构。对硬件不太感兴趣,省略若干内容。
按功能来分主要包括如下部分:
cpu ram rom 四个并行i/o口 1个串行口 2个16位定时器/计数器 中断系统 特殊功能寄存器 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)。它表示了运算是否有进位(或借位)。如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0。 ac:辅助进位标志ac。又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则ac为1状态,否则为0。 f0:标志0(用户可用途一般用途) rs1,rs0:在四组工作寄存器中选择 ov:溢出标志位ov。mcs-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。 p:奇偶标志p。反映累加器acc内容的奇偶性,如果acc中的运算结果有偶数个1(如11001100b,其中有4个1),则p为0,否则,p=1。 rs1 rs0 所选择的寄存器组
0 0 0区(00h~07h)
0 1 1区(08h~0fh)
1 0 2区(10h~17h)
1 1 3区(18h~1fh)
pc pc是程序计数器,正常时存放着下一条将要执行的指令,在程序跳转以及子程序调用的时候会有变化。pc是16位的,216=65536,所以51可以寻址64kb的存储器空间。复位后pc的值是0000h。
rom ram称为数据存储器,rom称为程序存储器,sfr称为特殊功能寄存器。ram又分为内部ram与外部ram,rom也分为内部rom与外部rom,不过rom的区分仅仅是物理上的,逻辑上rom不区分内外。
rom中有5个特殊地址:
中断源 处理程序地址
外部中断0(int0) 0003h
定时器0中断(t0) 000bh
外部中断1(int1) 0013h
定时器1中断(t1) 001bh
串口中断 0023h
ram 7fh
30h 用户ram区
2fh
20h 位寻址区
1fh
18h 第3工作寄存器区
17h
10h 第2工作寄存器区
0fh
08h 第1工作寄存器区
07h
00h 第0工作寄存器区
sfr 特殊功能寄存器以及其地址见下图。空白地区不能读写,行为随机。
sfr列表 标识符号
地址
寄存器名称
acc
0e0h
累加器
b
0f0h
b寄存器
psw
0d0h
程序状态字
sp
81h
堆栈指针
dptr
82h、83h
数据指针(16位)含dpl和dph
ie
0a8h
中断允许控制寄存器
ip
0b8h
中断优先控制寄存器
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
串行数据缓冲寄存器
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个机器周期。单字节指令一个机器周期,双字节可能1或2个机器周期,而3字节指令肯定是两个机器周期,乘除法个别、是4个机器周期。