1.3 PICl6F87X单片机的硬件结构
PIC16F87X是微芯公司于1998年底推的一款特色鲜明的MCU子系列.其突出优点是内部集成了一个在
线调试器(InCircuitDcbuggcr).可以实现在线调试和在线编程,这是MCS.51和MCS-96系列单片机不具
备的。另外,微芯公司还为PICl6F87X系列单片机研制了廉价的开发工具MPLAB-ICD,用户使用低成木即
可搭建一个PIC微处理器的开发平台。
PICl6F87X了系列目前共有7款不同型号的单片机,分别是PICl6F870、PICl6F871、
下面分别从PICl6F87X芯片内核的特色和外围特色两个方面对PICl6F87X进行介绍。
1.PICl6F87X内核的特色
PICl6F87X内核的主要特色如下:
·高性能的RISC结构CPU。
· 精简指令集。仅35条单字节指令。
· 除地址分支跳转指令为双周期指令外,其余指令均为单周期指令。
· 执行速度:DC.20MHz时钟输入,DC.200ns指令周期。
· 最大有8K×14字节(对于PICl6F873/4/6/7)/2Kx l4字节(对于PICl6F870/I/2)
· 最大有368×8字节(对于PICl6F873/4/6/7)/128X8字节(对于PICl6F870/1/2)
· E2PROM数据存储器。
·具有多达l4种中断源。
·8级硬件堆栈。
·4种寻址方式:立即寻址、直接寻址、问接寻址及寄存器间接寻址。
· 上电复位。
· 具有上电延时器.保证VDD稳定建立。
· 具有振荡定时器,保证振荡稳定建立。
· 自带振荡式看门狗,不需要任何外部器件。
· 可编狂代码保护。
· 休眠模式 . ·
· 具有下面4种振荡方式可选。
RC:阻容振荡。
Xl:标准晶体/陶瓷振荡。
HS:高速晶体/陶瓷振荡。
LP:低功耗荡。
· 低功托、高速CMOS技术。
· 全静态设计。
· 在线串行编程技术ICSP(In—Ci rcuit Serial Prograrnming)。
· 在线调试功能。
· 宽范围操作电压:2.0V~5.5V。
. I/O端口驱动电流高达25mA。
· 宽工作温度范围。
商业级:0C~70℃。
工业级:一40C~85℃。
军用级:一40℃~l25℃。
.低功耗设计:
在5V工作电压、4MHz时钟下的典型工作电流小于2n1A。
在3V工作电压、32kHz时钟下的典型工作电流小于20uA。
典型待机电流小于luA。
2.PICl6F87X微控制器外围特色
PICl6F87X微控制器外围色如下。
·Timer0:8位定时器,计数器,带8位预分频器。
·Timerl:16位定时器,计数器,m预分频器。可在睡眠模式中通过外部时钟来计数。
·Timer2:8位定时器/计数器,带有8位周期寄存器、预分频器和后分频器。
· 具有捕捉(Capture)、比较(Compare)和PWM模式。
· 多通道l0位AID转换器。
· 同步串行口SSP:SPI(主模式)和12C(主从模式)。
· 通川异步小行口USART。
·8位宽并行从口,具有外部、读、写和片选信号。
具有掉电复位检测电路。当VDD低于VBOR一段时间后,芯片自动进入复位状态,所有
1.3.2 PIC16F87X的内部结构
PIcl6F87X系列微控制器的内部结构如图1-4和图1-5所示,整个控制器可分为核心
1.PIC16F87X单片机的核心模块
核心区域包含的主要部件及其功能介绍如下。
1)运算器(ALU)和工作寄存器(Wreg)
运算器(ALU)是一个通用算术、逻辑运算单元,使用它可心对工作寄存器(Wreg)
和任何通用寄存器中的两个数进行算术运算(如加、减、乘、除等)如逻辑运算(如与、
或、异或等。PIC16F87X是8位单片机,ALU的字长是8位。在有两个操作数的指令中,
典型的情况是一个操作数在工作寄存器中,而另一个操作数在通用寄存器中(或者是一个
立即数)。在只有一个操作数的情况下,该数要么在工作寄托存器中,要么在通用寄托存
器中。需要注意的是,工作寄托存器是一个专用于ALU操作的寄托存器,它是不可寻址的。
要据所执行的指令,ALU还可能会影响结构框图中状态寄存器(STATUS)的进位标志(C)
、全零标志(z)等。
2)程序存储器(ProgramMemkry)和程序计数器(ProgramCounter)
在单片机内存放程序指令的存储器称为程序存储器。PIC16F87X的所有指令字长为14
以和序存储器的各存储单元是14位宽。一个存储单元存放一条指令。PIC16F87X的程序存储器的
存储容量为2KB~8KB不等,这些程序存储器都是由闪速存储器(Flash)构成的,程序存储器由
程序计数器PC寻址。PIC16F87X的程序计数器为13位宽,可寻址8KB的程序存储器空间。
3)状态寄存器(STATUS)
状态寄存器又称标志寄存器,用来反映某一逻辑运算或操作结果的特征,例如是否产生进位或借
位,以及结果是否为0等,它常常配合跳转指令来使用。
4)数据存储器(RAMFileREGISTERS)
数据存储器包括通用寄存器和特殊功能寄存器两种,用于存储CPU运算过程中产生的中间数据,
既可以读出也可以写入,除此之外,PIC单片机还提供了功能灵活的各种面向位的操作方法,可直接
对数据存储进行位测试、置位、移位等操作。
5)间接寻址寄存器INDF和FSR
间接寻址寄存器INDF和FSR位于PIC数据存储器的顶端,地址00单元(地址码最小)的间接寻址
寄存器INDF是一个空的寄存器,它只有地址码,在物理上不是一个真正的寄存器。它的功能常常与寄
存器FSR(又称选择寄存器)配合工作,实现间接寻址的目的。
6)复用器(MUX)
复用器包括数据复用器和地址复用器,数据复用器主要对指令码和数据存储器中的数据进行选,地
址复用器主要对指令码和FSR中的地址进行选择(即一个通路选择器)。
7)堆栈(Stack)
当发生程序中断或跳转等操作时,需要对当前主程序断点的地址进行保存,以便执行完其他程序后
返回中断点(即现场保护)。此时开辟一部分先进先出(FIFO)的存储区来存储断点地址,这一存储区就称为堆栈。
除了以上7个基本部件外,还有上电延时(Power-up TIMER)、起振延时(OscillatorStart-upTimer)、上电复位(Power-onReset)、看门狗(WatchdogTimer)、欠压复位(Brown-outReset)、在线调试(In-CircuitDebugger)、低压编程(Low-Voltageprogramming)、等附加电路,它们主要起到电路保护、方便调试、优化运行等作用,以提高运行的可靠性和可操作性。所有一部件通过内部数据总线或程序总线相连,其详细功能在此不再敷述。
2.PIC16F87X单片机的外围模块
PIC16F87X的内部可集成种类丰富的外围模块,在开发过程中充分节省了外围电路。各外围电路的功能和使用方法比较复杂,这里只是列出各模块的基本功能,以便读者对PIC16F87X单片机有一个整体的认识。
1)基本I/O端口
PIC16F873/876有RA、RB、RC3个基本输入/输出端口,PIC16F87/877有RA、RB、RC、RD、RE5个基本输入/输出端口,其中RB、RC、RD为8位宽,RA为6位宽,RE为3位宽,共33个引脚。输入/输出方式可编程,部分引脚同其他功能复用。
2)定时、计数器
单片内集成了TMR0、TMR1、TMR23个可编程定时器。其中TMR0为8位宽,TMR1、TMR2为16位宽,所有的定时器还可作为计数器使用。除此之外,TMR1与CCP模块配合使用可实现捕捉和比较功能,TMR2和CCP模块配合使用可实现脉宽调制输出功能。
3)E2PROM数据存储器
可擦除存储器,容量为256字节,其存储的数据掉电之后不会丢失,因此可心用来务份一些数据,但是擦写次数是有限制的,不能无限次使用。
4)A/D转换器
A/D转换器具有5个(RIC16F873/876)或8个(PIC16F874/877)10位分辨率的模/数转转换通道,用于对外部的模拟量进行采样。
5)捕捉、比较、脉宽调制CCP(CaptureComparePWM)
捕捉功能可捕捉外部输入脉冲的上升沿或下降沿,产生相应中断,从而可用于测量外部信号的周期、频率、脉宽等;比较功能用于从引脚上输出不同宽度的矩形脉冲和延时信号;脉宽调制功能将产生占空比可调的周期性方波信号,可用来实现直流电机的调速、D/A转换及步进电机的控制等。
6)同步串行端口SSP(SynchronousSerialPort)
具有SPI和I2C两种工作模式,主要功能用于同其他设备进行数字通信。
7)同步、异步收发器(USART)
用于两线制串行通信,可定义为半双工同步方式和全双工异步方式。
8)并行从动端口PSP
用于同其他具有开放总线的微处理器进行高速的数据传输,其数据传输,其数据传输权由通信的另一方掌握,故称为从动端口。
1.3.3PIC16F87X的引脚功能
PIC16F87X系列单片机采用PDIP、SOIC、QFP和PLCC4种封装形式,其外形和引脚如图1-6和图1-7所示。
1.供电引脚
PIC单片机的工作电压为2.0V~5.5V,VDD接电源“+”端,VSS接电源“-”端,除了28引脚外,其他芯片上一般都有两VDD和VSS引脚。
2.振荡器输入/输出引脚
PIC单片机可采用3种不同的振荡器方式。第一,采用晶振或陶瓷谐振器,将一晶体或陶瓷谐振器连到单片机的OSC1/CLKIN和OSC2/CLKOUT引脚上,以建立振荡。第二,除了可以使用已集成在片内的振荡外,也可以使用由TTL门电路构成的简单振荡器电路,当外接振荡器时,外部振荡信号从OSC1端输入,OSC2端开路。第三,还可采用RC振荡频率随电源电压(VDD)、RC值及工作环境温度的变化而变化,同时由于工艺参数的差异,对不同芯片其振荡器频率将不同。
3.硬件复位引脚
PIC单片机除了可以实现软件复位之外,还可以通过MCLR引脚接收外部电路的复位信号,产生硬件复位,此时低电平有效。另外,在编程时,还可以用做编程电压输入端。
4.I/O及功能引脚
PIC16F873/876单片机共3组22个端口,PIC16F874/877单片机共5组33个端口,所有端口都要可作为双向的输入/输出端口,且具有锁存功能。此外,其中大部分端口还具有第二和第三功能,以及与其I/O功能复用。这些第二和第三功能包括AD转换、捕捉、比较、脉宽调制输出和串口通信等,具体功能如表1-4和表1-5所示。