1.PIC16F877A单片机框架

1.1 为何性能如此之高?

PIC单片机之所以有很高的性能是因为其具备如下特性:

内部为哈佛结构、寄存器文档、大多数单指令周期、指令流水线操作、长字型指令、指令数很少、指令实现的功能基本不重复

1.2 什么是哈佛结构?

冯诺依曼结构可以如下表示:

从同一存储器空间取指令和取操作数据,限制了数据流量。

哈佛结构可以用下图表示:

从两个独立存储空间分别取指令和存取操作数。数据流量增加。针对程序区和数据区可以设计不同的数据线宽度

1.3 指令流水线

大部分单片机, 其取指和执行过程是顺序进行的。指令流水线的引入允许取指和执行可以同步进行。使得指令可以在一个指令周期内执行。程序分支例外 (如 GOTO, CALL 或直接修改PC),这需两个指令周期。
指令流水线操作形式如下图所示:

1.4 寄存器文档概念


 RAM被看作是一组通用的寄存器。周边模块(I/O)也作为寄存器。所有的指令操作都可针对所有的寄存器。长字指令使得在指令中直接寻址寄存器。

1.5 指令实例

PIC MCU 指令编码为操作码和参数.编码用一个字完成。


2.PIC16F877A单片机存储器

单片机的存储器主要就是两种类型:程序、(RAM 和EEPROM)。存储器的构成主要也是两个部分:Pages – 页 (程序存储器)、Banks – 组 (数据存储器)

2.1 存储器表



2.2 分页的程序存储器 (14bit 核)


在14-bit 核的器件中:11 位访问 2048 (2k) 空间,访问更多的空间,需要更多位。程序存储器的分页提供这些位。

程序存储器最大8K(0x0000~0x1FFF)字:四页,每页 2k ;使用  PCLATH<4:3>访问页;复位地址 0000h;中断地址 0004h

2.3 PC的绝对地址是如何计算的?

用CALL和GOTO指令修改PC 

2.4 分组的 数据存储器 (14 bit core)


在14-bit 核的器件中:7 位访问 128 空间;访问更多的空间,需要更多的位;程序存储器的分组提供这些位
数据存储器: 直接寻址:
低7位的数据地址直接在指令中描述。
高2位在STATUS寄存器中 (又称寄存器组号BANK)。


2.5 数据存储器的组成

数据存储器共分成4个组:SFR映射到最顶端32 位置;通过RP0,1 和 IRP 选择组。

3. PIC12F675单片机的寄存器图



转自:
https://blog.csdn.net/shenziheng1/article/details/53043866