续上一篇文章,依旧学习AT89S51单片机的硬件结构。
1.单片机的CPU
CPU由运算器和控制器组成
1)运算器
?注:51单片机实际上是8位机与1位机的结合,1位机经常会用来进行位控。
????????(1)算数逻辑运算单元ALU
????????(2)累加器A?
? ? ? ? ? ? ? ? 是使用最频繁的寄存器,也可写作ACC,在有些场合下,A必须写成ACC
? ? ? ? ? ? ? ? 作用:
?????????????????A进位标志位Cy同时又是位处理器的位累加器
? ? ? ? (3)程序状态字寄存器PSW
注:特殊功能寄存器对单片机的学习非常重要,实际上编程就是对这些特殊寄存器进行操作
特殊功能寄存器在片内的地质区是80H~FFH
PSW的字节地址是这里面的D0,又往后定义了7个位。
PSW各位功能:
注:F0是用户可以在程序中进行调用和编程的标志位?
注:单片机运行的时候都有一组在当前工作状态,有一组在当前寄存器区,选哪一组来作为当前寄存器区呢,就由RS1、RS0来选。四组寄存器区使得编程更方便。使用0、1组合来进行不同的切换。
?
?注:A中为奇数P为1,为偶数P为0。
?2)控制器
任务:识别指令,控制单片机各功能部件,保证各部分自动协调工作。
?注:对单片机来说,PC指针是一个独立的寄存器,是16位的计数器,每取一条指令,程序在单元里面挨着放,PC指针加1,用户不可访问PC,单片机复位时,PC指向0000H,程序从0地址开始执行。注意PC所取的内容为所取指令的地址,程序存储器按照此地址输出指令字节
PC中内容变化轨迹决定程序流程
注:PC为16,这也是为什么外部是64K程序存储器的原因。
2.单片机的存储器结构(AT89S51)
结构特点之一是哈佛结构,有各自的访问指令
注:外部有个数据存储器,还有程序存储器空间,他俩是相互独立的结构,这叫哈佛结构,如果是混在一起的,需要自己来区分,这种结构叫做普林斯顿结构。
51单片机存储器空间分4类
1).程序存储器空间
分为片内和片外两部分。片内4KB Flash ,编程和擦除完全是电气实现。可用通用编程器对其编程,也可在线编程。
注:当片内4KB Flash存储器不够用时,可外扩,最多可扩展至64K。
但当EA引脚接高电平时,片内最低为4K,外面最多能扩60K。
2).数据存储器空间
分为片内与片外两部分
片内有128字节RAM(52子系列为256字节)片内RAM 不够用时,在片外可扩展至64KBRAM。
注:片内和片外地址是一样的,但他们不会发生数据冲突,因为访问内部RAM和外部RAM使用的是不同的指令。
3).特殊功能寄存器SFR(重要,必须要了解各个位的功能)
各功能部件的控制寄存器及状态寄存器。SFR综合反映了整个单片机基本系统内部实际的工作状态及工作方式。
4).位地址空间
211个可寻址位。片内RAM(共128位)+SFR区(共83位)
注:
什么叫位地址空间:利用51单片机的位操作指令,对他进行置1、清0、求补等,只对这一位进行操作。
(1)程序存储器空间
存程序和表格的固定常数。片内为4KB的FIash,地址为0000H~0FFFH。16位地址线,外扩的程序存储器空间最大为64KB地址为0000H~FFFFH。
注:程序存储器要外扩,必须有16位地址线可以访问,这16位是P0口发低8位地址,P2口发高8位地址,这样可以对外部程序存储器进行寻址。具体外面可以扩多少与EA引脚的接法有关。
注:程序存储器有5个固定中断源的中断入口,这5个单元地址是固定的:
?注:每两个中断源之间差8个单元,但是由于编的程序,8个单元往往不够,所以在这里放跳转指令。不能在这里乱放指令,只能放跳转指令或中断服务程序。这5个中断入口是程序存储器里面的对应的5个中断源的中断入口。