PIC16F877A单片机中文文献.pdf
文本预览下载声明
PIC16F877A单片机是 microchip 公司的产品,它采用 14 位的 RISC指令系
统,内部集成了 A/D 转换器、 EEPROM、模拟比较器、带比较和捕捉功能的定时器
/ 计数器、 PWM输出、异步串行通信电路等。
1. 程序存储器
程序存储器和堆栈 PIC16F877A单片机内部具有 8K×14位的 Flash 程序存储
器,程序存储器具有 13 位宽度的程序计数器地址范围: 0000H-1FFFH。由程序计
数器提供 13 条地址线进行单元选择,每个单元宽 14 位,即 PIC16F877A的指令
字节宽度为 14 位,能够存放一条 PIC 单片机系统指令。
在系统上电或其他复位情况下,程序计数器均从 0000H地址单元开始工作。
如果遇到调用子程序或系统发生事件中断时, 将把当前程序断点处的地址送入 8
级× 14 位的堆栈区域进行保护。堆栈是一个独立的存储区域,在调用的子程序
或中断服务程序执行完后,再恢复断点地址。通过 14 位程序总线,取出对应程
序之灵的机器码, 送入指令存储器, 将组成的操作码和操作数进行有效分离。 如
果操作数为地址,则进入地址复用器;如果操作数为数据,则进入数据复用器。
而操作码将在指令译码和控制单元中转化为相应的功能操作。
PIC 的多数指令均是顺序执行,即使条件跳转也是隔行间接跳转。具有大范
围转移功能的指令只有两条: 无条件 GOTO语句和调用子程序 CALL语句。但它们
受到 2KB范围的约束。所以必须将整个程序存储器以 2KB为单位进行分页。
PIC16F877A单片机的上电复位地址是 0000H,中端口地址是 0004H,中断产
生时 PC指针会自动指向该地址。在进行中断应用时,特别是涉及多个中断同时
打开时,必须要逐个对中断标志进行判断。 编程时, 在 0000H-0003H单元内要放
置一条 GOTO跳转指令,跳转到主程序,以避开 0004H存储器单元。
2. 数据存储器
数据存储器 PIC 单片机的数据存储器与传统的 MCS-51单片机一样,在配置
结构上可分为通用寄存器和特殊功能寄存器两大类。 数据存储器的每个存储单元
除具备普通存储器功能之外, 还能实现移位、 置位、 复位和位测试等通常只有寄
存器才能完成的操作,功能非常强大。 PIC16F877A单片机 RAM数据存储器与程
序存储器一样, 在其 512 个地址空间进行类似区域划分, 分为 4 个体,从左到右
纪委体 0、体 1、体 2 和体 3,每个体均为 128×8 位宽的存储单元。特殊功能寄
存器安排在低位地址存储单元, 通用寄存器在高位地址存储单元。 对通用寄存器
可以直接进行访问,也可以通过寄存器 FSR间接访问。
通过比较可知, 程序存储器的 4 等分区域采用串接方式排列, 而数据存储器
的 4 等分区域采用并联方式排列。通用寄存器 PIC16F877A单片机的通用存储器
扮演了其他单片机中的通用寄存器和片内 RAM存储器的双重角色。 PIC16F877A
单片机的通用寄存器主要分布在数据存储器 RAM个体的下半部分区域, 包括
显示全部