第2章 PIC16F87X系列单片机
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表2.1 PIC16F87X系列单片机功能配置
§2.2 内部功能及时序
• PIC16F87X系列单片机是一种高速度、低功耗、
高性能的CMOS器件,含有ROM、RAM、EEPROM、 FLASH RAM、I/O端口、A/D转换器、捕捉器/比较 器/PWM、串行通信端口、定时器、中断控制器和 一个中央处理器。这种结构是基于文件寄存器概 念,有独立的数据/数据存储器总线和程序存储器 总线。数据总线和数据存储器总线是8位的字宽, 程序总线和程序存储器(FLASH PROGRAM MEMORY)是14位字宽。由于数据存储器集成在 片内,通过片内的8位总线与算术逻辑单元(ALU) 连接,可以直接通过内部总线传送信息,所以它 们都是以寄存器方式工作和寻址,程序编码简洁 高效。
§2.1ຫໍສະໝຸດ Baidu概 述
• PIC16F87X系列单片机是MICROCHIP公司
生产的中级产品,具有FLASH程序存储器的 8位CMOS单片机,品种有28引脚的 PIC16F876(A)/873(A)和40/44引脚引脚的 PIC16F877(A)/874(A),对应的封装形式有 PDIP、SOIC、SSOP、PLCC和QFP等多种。 这个系列单片机采用CMOS技术和静态设计 技术,实现了低功耗和宽工作电压范围, 可以满足不同的应用要求。
(PC),可以访问8k×14字的程序存储器空 间。
• 程序存储器被分为几个区:
– 第一是复位矢量区,占据0000H字节; – 第二是中断矢量区,占据0004H字节; – 第三是程序存放区,从0005H字节开始。
• 在程序存放区中又分为页,每页7FFH字节。
图2.6和图2.7
• PIC16F87X系列单片机的存储器映射和堆栈的分布状况
表2.3 PICF874(A)/877(A)引脚功能(续)
§2.4 存储器组织
• 在PIC16F87X系列单片机中,有三个存储器
模块。由于单片机内采用了哈佛总线结构, 它的程序存储器和数据存储器的总线是独 立分开的,CPU可以同时访问程序存储器和 数据存储器。
2.4.1 程序存储器
• PIC16F87X系列单片机具有13位指针计数器
图2.4 指令流
§2.3 引脚功能
• 在PIC系列单片机种,除电源和地线引脚之外,其
它的引脚基本都可能采用编程选择多功能复用。
• 封装形式
– PIC16F87X系列单片机采用DIP、PLCC和QFP三种封装 形式。
– PIC16F877/874采用40引脚的PDIP、44引脚的PLCC和 44引脚的QFP,PIC16F876/873采用28引脚的PDIP或 SOIC。
图2.3 芯片时序
2.2.3 指令流
• 哈佛结构,使得程序存储器(存放指令)的访问
和数据存储器(存放运算数据)的访问并行处理。 在单片机的指令运行中,一般需要如下的过程: 从程序存储器取出指令,根据指令进行译码,然 后执行。在复杂指令集中,首先取指令需要1~2 个周期,译码和执行指令又需要1~2个周期。 在PIC单片机中采用RISC指令集,使用指令流水 线结构,在一个周期内完成两部分工作:一是执 行指令,二是从程序存储器取出下一条指令。这 样总的看起来每条指令只需要一个周期(个别除 外)。如图2.4所示,在一个周期中,完成本条指 令的执行,同时取出了下一条指令。
• 作为第二或第三功能口,每个引脚的功能都
可能不同,主要包含有如下的功能:用于A/D 转换的模拟电压输入端和参考电压输入端,用 于定时器的时钟输入端和振荡器输出端,用于 串行通信的数据输入/输出端和时钟端,并行从 属端口和读/写/片选端等。
表2.2 PICF873(A)/876(A)引脚功能
表2.3 PICF874(A)/877(A)引脚功能
存器放在低位存储区,专用寄存器上面是通用寄存器,通 用寄存器采用静态随机访问存储器(SRAM)。
• 所有的执行存储体都包含有专用寄存器
(SFR),为了达到减少编码和快速访问的 目的,一些经常访问的专用寄存器可以从 一个存储体映射到另一个存储体。 PIC16F873/873A/874/874A数据存储器的 映射图如图2.8所示, PIC16F877/877A/876/876A数据存储器的 映射图如图2.9所示。
• 图 2.6 PIC16F873/873A/874/874A
图2.7 PIC16F877/877A/876/876A
2.4.2 数据存储器
• 数据存储器分为四个存储体,存储体中包含通用寄存器和
专用寄存器(SFR),体的选择采用状态寄存器 (STATUS)的位6(RP1)和位5(RP0)。
• 每个存储体最多可包含128字节,而每个存储体中专用寄
2.2.1 内部组成
• PIC16F87X系列单片机的内部结构框图如图所示。
整个单片机集成了算术逻辑单元ALU,FLASH程序 存储器,14位指令寄存器,13指针寄存器和8级 13位的堆栈,文件寄存器RAM和特殊功能寄存器, 状态寄存器,定时器,多通道10位A/D转换器, 数据EEPROM,同步串行通信端口,通用异步串 行通信端口,捕捉器/比较器/PWM,多功能输入/ 输出(I/O)端口,上电定时器,振荡器起振定时 器,看门狗定时器,上电和掉电复位电路,时序 产生电路,从属并行端口,低电压编程电路等。
• 根据所执行的指令,ALU会影响状态寄存器STATUS中十进制
数字进位标志(即半进位标志) 、二进制借位标志C和全零标志 Z。当ALU运行后的结果为0时,标志位Z置1,否则为0;当进 行加法运算,发生最高为进位,标志位C置1,否则为0;当进 行减法运算,最高位发生借位,标志位C清零,否则为1;当 进行加法运算D3向D4进位时,标志位DC置1,否则为0;当进 行减法运算D3向D4借位,标志位DC清零,否则置1。
1 通用寄存器组(续)
– PIC16F877/877A/876/876A: – 20H~7FH(存储体0); – A0H~EFH(存储体1); – F0H~FFH(存储体1:映射到存储体0的70H~7FH); – 110H~16FH(存储体2); – 170H~17FH(存储体2:映射到存储体0的70H~7FH); – 190H~19FH(存储体3); – 1A0H~1FFH(存储体3:映射到存储体0的70H~7FH)。
的总线。
• 正是第二点使PIC系列单片机能够采用RISC结构,提高CPU
的访问速度。
• PIC16F87X系列的单片机指令采用14位字宽,使所有的指令
操作码都为单字指令,即可以在单周期内通过14位程序存 储器访问总线取出l4位指令。另外还有两级流水线结构可以 重叠取指和指令执行,加快了指令执行速度。程序的运行 除程序分支(跳转)需要两周期的指令外,其它指令均为 单周期指令,指令集一共包含有35条单字节指令。
哈佛结构CPU和RISC指令集
• PIC16F87X系列单片机采用高性能的哈佛结构CPU和RISC
指令集,CPU通过不同的总线访问存储器的数据和指令(程 序),这样提高了CPU的工作速度和效率,比传统的程序与 数据共用存储体和总线的冯.偌依曼结构改善了带宽。
• 这种结构带来两个明显的优点:
– 其一是CPU可以同时访问程序存储区和数据存储区 – 其二是程序存储区和数据存储区可以采用不同字节宽度
– 如图2.5所示。
• 根据引脚的功能,可以将引脚分为下列几类。
图2.5 PIC16F87X单片机封装与引脚图
图2.5 PIC16F87X单片机封装与引脚图(续1)
2.3.1 电源VDD引脚和地VSS引脚
• PIC单片机的供电可以在+2.7V~+5V的
范围,为了减少电源噪声的影响,将电源 引脚和地线引脚放置芯片的中间。
• 对于间接地址,它表示一个具体物理寄存
器;对于阴影部分,实际上不可操作,读 操作结果是0。
图2.8 PIC16F873/873A/874/874A数据存储器组映射图
图2.9 状态寄存器STATUS
1 通用寄存器组
• 通用寄存器是在指令执行过程中存放数据或状态信息
的存储区,上电复位后其内容随机不确定,CPU可以 直接访问,也可以通过组选择寄存器(FSR)间接访 问。
第2章 PIC16F87X系列单片机
2.1 概 述 2.2 内部功能及时序 2.3 引脚功能 2.4 存储器组织 2.5数据E2PROM和闪存组织 2.6振荡电路 2.7复位电路与复位状态 2.8 I/O端口 2.9 中断组织 2.10看门狗电路 2.11 低功耗设置(休眠模式)
2.12在线串行编程与调试功能
PIC16F87X系列单片机 内涵
• PIC16F873(A)/874(A)包含4K×14的程序闪存,
192字节的数据随机存储器和128字节数据 EEPROM存储器。PIC16F876(A)/877(A)的程序闪 存为8K×14,数据随机存储器为368字节,数据 EEPROM存储器为256字节。PIC16F873(A)/876(A) 具有A、B和C三个I/O端口,内部包含13个中断源、 三个定时器、两个CCP(捕捉器/比较器/PWM) 模块和一个看门狗电路,同时集成了5通道A/D转 换器。PIC16F874(A)/877(A)具有A、B、C、D和E 五个I/O端口,内部包含14个中断源、三个定时器、 两个CCP(捕捉器/比较器/PWM)模块、一个看 门狗电路和一个并行从属端口PSP,同时集成了8 通道A/D转换器。PIC16F87X系列既有SPI和I2C主 串行通信端口,又有USART异步串行通信端口。
• 工作寄存器W是操作过程中的一个过渡寄存器,它可以存放
操作数,也可以存放操作结果,相当于MCS51系列中的A寄存 器,不可寻址。使用起来相当灵活。
图2.1 PIC16F873 (A)/876(A) 单片机的内 部结构框图
图2.2 PIC16F874( A)/877(A) 单片机的内 部结构框图
2.3.3 主复位信号引脚
• 主复位信号引脚用于外部电路产生复位信
号使PIC单片机复位,低电平有效。在对 CPU编程时,此引脚作为编程电压的输入端 VPP。
2.3.4 端口/功能引脚
• 在PIC单片机中,包含多个端口,且端口引脚大
部分都具有两种或三种功能复用。作为端口, 端口A、端口B、端口C、端口D和端口E都是双 向I/O口,端口B可以通过编程设置为弱上拉输 入。
2.3.2 振荡器输入输出引脚
• 在PIC单片机中有一根振荡器输入引脚
OSC1/CLKIN和一根振荡器输出引脚 OSC2/CLKOUT,由于PIC单片机可以采用不同的 振荡器,这样使得这两根引脚可以有不同的功能。 采用晶体振荡器或陶瓷谐振器,将晶体振荡器的 两脚直接接入OSC1/CLKIN和OSC2/CLKOUT;采 用外部振荡器电路时,将OSC1/CLKIN作为输入, OSC2/CLKOUT开路;采用RC振荡器时, OSC1/CLKIN作为输入,OSC2/CLKOUT作为4分频 信号输出(参见图2.26)。
• 对PIC16F87X系列不同型号的单片机,通用寄存器的
范围是不一样的。具体如下:
– PIC16F873/873A/874/874A: – 20H~7FH(存储体0); – A0H~FFH(存储体1); – 120H~17FH(存储体2:映射到存储体0的20H~7FH); – 1A0H~1FFH(存储体3:映射到存储体1的A0H~FFH).
ALU和工作寄存器W
• PIC16F87X芯片内核心是一个ALU和工作寄存器W。ALU控制
工作寄存器W的内容(数据)和任何一个文件寄存器中的内 容(数据)进行算术运算和逻辑(布尔)运算,ALU的字为8 位,可以用其进行加、减、移位和逻辑操作。除非特别指出, 一般的操作都是以2的补码进行。在有两个操作数的指令中, 典型情况是其中一个操作数放在W寄存器中,另一个操作数 放在文件寄存器或是一个立即数。
2.2.2 指令周期和时序图
• 时钟信号从OSCI/CLKIN引脚上输入后,在片内产
生4个非重叠四个信号,分别被称作Q1、Q2、Q3 和Q4,如图2.3所示。每个指令周期(TCY)包含 这4个Q周期,Q周期与芯片的振荡周期(TOSC)一 致。每个Q周期提供每条指令的指令译码、读、 处理数据以及写等操作的定时。每个指令周期完 成四部分工作:在Q1周期指令译码或不操作,在 Q2周期指令读数据或不操作,在Q3周期处理数据, 在Q4周期写数据或不操作。