PIC16F887系统资源.ppt

上传人:小飞机 文档编号:5443676 上传时间:2023-07-07 格式:PPT 页数:51 大小:319.50KB
返回 下载 相关 举报
PIC16F887系统资源.ppt_第1页
第1页 / 共51页
PIC16F887系统资源.ppt_第2页
第2页 / 共51页
PIC16F887系统资源.ppt_第3页
第3页 / 共51页
PIC16F887系统资源.ppt_第4页
第4页 / 共51页
PIC16F887系统资源.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《PIC16F887系统资源.ppt》由会员分享,可在线阅读,更多相关《PIC16F887系统资源.ppt(51页珍藏版)》请在三一办公上搜索。

1、中山火炬职业技术学院,第二章 PIC16F877硬件系统慨况,2.0 PIC16F87X芯片引脚图2.1 40脚PIC16F87X引脚功能说明2.2 PIC16F87X内部结构方框图2.3 程序存储器和堆栈2.4 RAM数据存储器(文件寄存器)2.5 PIC系列单片机的复位功能2.6 PIC单片机的系统时钟,中山火炬职业技术学院,2.0 40脚DIP封装的PIC16F87X芯片引脚图,PIC16F87XmicrochipFLASH型,/MCLRRA0RA1RA2RA3RA4RA5RE0RE1RE2V ddV ssOSC1OSC2RC0RC1RC2RC3RD0RD1,RB7RB6RB5RB4RB

2、3RB2RB1RB0V ddV ssRD7RD6RD5RD4RC7RC6RC5RC4RD3RD2,端口A:RA(6线)端口B:RB(8线)端口C:RC(8线)端口D:RD(8线)端口E:RE(3线),注:只列出引脚的基本功能;28脚芯片只有RA、RB 和RC端口。,返回本章目录,中山火炬职业技术学院,课堂练习:PIC16F877A引脚?A,B,C,D,E端口的IO个数?,中山火炬职业技术学院,在了解PIC16F877的引脚时,要注意两点:引脚的“复用功能”;通过引脚的复用功能来认知PIC单片机内部各功能模块的结构、特点。,中山火炬职业技术学院,2.1:40脚PIC16F87X引脚功能说明(参见

3、25页),中山火炬职业技术学院,中山火炬职业技术学院,中山火炬职业技术学院,中山火炬职业技术学院,返回本章目录,中山火炬职业技术学院,课堂练习:外接编程器的IO口是?,中山火炬职业技术学院,课堂练习:外部中断输入端口的IO?,中山火炬职业技术学院,课堂练习:模拟输入端口的IO?,中山火炬职业技术学院,2.2:PIC16F87X内部结构方框图,为了便于分析、理解,可以将PIC16F87X内部结构分为:内部核心模块、外围模块两个区域。核心模块:是PIC系列单片机任何一款都必不可少的;外围模块:则由生产厂家根据设计目标灵活的“拼装”和“剪裁”,因而派生出许许多多的系列和型号,以使产品在应用中达到最佳

4、的“性价比”。我们仍然以PIC16F87X系列(重点介绍PIC16F877)为主,来分析PIC单片机的内部结构。,中山火炬职业技术学院,端口E,端口D,端口B,端口C,端口A,EEPROM数据存储器,A/D转换器,捕捉,比较,PWM1,捕捉,比较,PWM2,同步串口,通用同步/异步收发器,8位从动并行端口,定时器2,定时器1,定时器0,FLASH程序存储器8K*14,程序计数器,数据存储器RAM 368X8,8级堆栈13位,指令寄存器,地址复用器,间址寄存器,状态寄存器,数据复用器,ALU,W寄存器,指令译码器,时基发生器,RAM地址(9位),程序总线(14位),内部数据总线8位,直接地址7位

5、,PIC16F877结构简图,8,8,3,8,返回前一次,上电延时 起振延时上电复位WDT欠压复位在线调时低压编程,中山火炬职业技术学院,:PIC16F87X的核心模块区域,1.程序存储器:存放程序、常数和表格。规格:8K*14的FLASH;2.程序计数器:为程序存储器提供指令地址的13位计数器(寻址范围8K)。初始状态为全零,每执行一条指令自动加一;3.堆栈:保存程序断点地址。当调用子程序或发生中断时,将断点地址自动 压入堆栈,结构为8*13即可以有8级的断点保护(不同于 MCS51)。4.指令寄存器:暂存从程序存储器中取出的指令。将指令的操作码和数据进 行分离,分别送到不同的逻辑电路;5.

6、指令译码器和控制器:将指令寄存器送来的操作码进行译码,产生一系列 的微操作,控制个功能电路协调工作,完成指令的功能。,结构图,中山火炬职业技术学院,6.算术逻辑单元ALU:实现算术和逻辑运算操作;7.工作寄存器W:指令使用频率很高的寄存器,比如存放要参加运算的数据和暂存运算结果,类似MCS-51的累加器A;8.状态寄存器STATUS(类似MCS-51的PSW):反映运算结果的状态如:进位、借位、结果是否为全零等;控制RAM中4个体的体选。9.数据复用器:用来选择参加运算的数据来源:数据可以是来自RAM存储 器,也可以是来自程序存储器中的常数。10.数据存储器RAM:存放运算的中间结果。RAM单

7、元具有移位、置位、清零和位测试等只有寄存器才有的功能,所以这些RAM单元也称“文件寄存器”。整个分为体0、体1、体2和体3四个体,由status中的rp0、rp1来设定。上电复位时指向体0。,结构图,中山火炬职业技术学院,11.地址复用器:提供访问数据寄存器所需要的RAM地址。地址可以来源于间址寄存器FSR,也可来自指令码中的直接地址;12.间址寄存器FSR(文件选择寄存器):存储间接地址,执行相应的指令前要事先将要访问数据的RAM地址存入FSR中(类似于MCS-51的Ri);13.时基发生器:产生内部各功能电路工作时所需的时钟信号;14.上电复位电路:芯片上电后Vdd上升到一定值(1.61.

8、8V)后,电路产 生一个复位脉冲使单片机复位。15.上电延时电路:为了保证电源电压上升到足够高时再使单片机工作。电路提供一个72ms的延时时间以确保CPU在电源电压达到正常值时工作(如果CPU在电源电压偏低的情况下工作时,会发生错误的操作)。,结构图,中山火炬职业技术学院,16.起振延时电路:当芯片上电延时后,该电路再提供一个1024个时钟周期的延时,以保证振荡器有足够的时间来产生稳定的时钟信号;17.看门狗定时器WDT:自带RC振荡器时钟源的定时器。用来监视程序的运行状态。如果因某种原因使程序“脱离了”正常的“轨道”而“死机”时,能够强行将CPU复位,使系统从0000开始重新执行程序。18.

9、欠压复位电路:当芯片的电源电压低于某个值时,CPU将不能正确的执行指令,这样系统将会产生不可想象的后果。为了防止这种情况的发生,PIC内部设立了电源监控电路,一旦电源电压低于某一个值时,系统将自动产生复位,直到电源Vdd恢复正常后再延时72ms,CPU才由复位状态转向运行状态。,结构图,中山火炬职业技术学院,19.在线调试电路:实现对于焊接在板子上的PIC16F87X芯片的在线调 试。当然,必须使用microchip公司提供的“MAPLAB IDE”调试软件的支持。20.低电压编程电路:PIC16F87X芯片可以实现在线串口编程。使用芯片电源(+5V),通过芯片内部的“电源泵”将5V升为高压完

10、成编程(固化程序),而不是一般的单片机使用的外加高电压输入编程。21.数据总线:8位宽度,内部数据的通道,也是连接各外围模块的连接 通道。22.程序通道:14位的取指高速通道。专职实现从程序存储器到指令寄 存器的指令快速传递。,结构图,中山火炬职业技术学院,课堂练习:PIC16F877堆栈的级别?,中山火炬职业技术学院,课堂练习:PIC16F877的上电延时电路的用途?,中山火炬职业技术学院,课堂练习:PIC16F877的震荡延时电路的用途?,中山火炬职业技术学院,:PIC16F87X的外围模块区域,PIC的外围模块种类较多、功能也比较复杂,不同的型号其配制不同。对于学习PIC这门课程,可以先

11、“绕过”这里的一些复杂的环节,等到后面的相应章节中作专题讲解。这里先对PIC的外围模块预先做一个简要的介绍:1.端口RA模块:6线可编程I/O端口,有第2、3功能;2.端口RB模块:8线可编程I/O端口,有第2、3功能;3.端口RC模块:8线可编程I/O端口,有第2、3功能;4.定时器TMR0模块:8位可编程定时/计数器。5.定时器TMR1模块:16位可编程定时/计数器,与捕捉/比较/脉宽调制器CCP模块配合使用,实现捕捉、比较功能;6.定时器TMR2模块:8位可编程定时器,不能做计数器使用,与捕捉/比较/脉宽调制器CCP模块配合使用,实现脉宽调制输出功能;,中山火炬职业技术学院,7.EEPR

12、OM数据存储模块:128*8的电擦/写的存储器,掉电时数据不丢失;8.A/D转换器:10位转换精度,有5/8路;9.捕捉/比较/脉宽调制CCP1、CCP2模块:两个几乎完全一样的CCP模块,与TMR1、TMR2配合使用可以实现输入捕捉,输出比较和脉宽调制PMW输出功能。输入捕捉:用于测量信号的周期、脉宽和频率等;输出比较:功能用于产生宽度不同的正负方波信号,用于驱动可控 硅、继电器等;脉宽调制输出:用于产生周期固定、脉宽可调的周期性的方波信 号,以驱动可控硅、步进电机等;,中山火炬职业技术学院,10.主同步串行端口MSSP模块:具有SPI和I2C两种工作模式,用于与SPI和I2C串行端口的外接

13、器件或单片机进行通信;SPI:serial peripheral interface 外围串行接口;I2C:inter integrated circuit bus 电路板级集成芯片间总线。11.通用同步/异步收发器USART模块:用于实现二线式的串行通信,有两种工作方式:全双工异步方式。用于与微机或单片机系统的通信;半双工同步方式。用于与A/D、D/A、串行EEPROM等器件的通信。12.并行从动端口PSP模块:用于与其它具有开放总线的单片机、数据处理器或微处理器并行数据总线连接,进行高速的数据传送和交换。因为总线的使用、控制权由与PIC连接的外部系统掌握,所以称其为“并行从动端口”;,返回

14、本章目录,中山火炬职业技术学院,课堂练习:PIC16F877的EEPROM的容量?,中山火炬职业技术学院,课堂练习:PIC16F877的定时器的数量?,中山火炬职业技术学院,2.3 程序存储器和堆栈(参见45页),PIC16F87X系列单片机具有一个13位的程序计数器,其寻址范围为213=8K(1024*8=8192个字节),对应的寻址范围是:0000H1FFFH。PIC16F87X系列单片机程序存储器容量表,中山火炬职业技术学院,PC,0000H,0004H,1FFFH,07FFH,0800H,第0页,第1页,第2页,第3页,1800H,17FFH,1000H,0FFFH,13,13,PIC

15、16F877内部程序存储器和堆栈示意图,将程序存储器每2K为一页,这样:PIC16F877的8K*14空间可以划分为四个页(如图所示)。第0页中的0000H、0004H单元为两个特殊的“上电复位矢量”单元和“中断矢量”入口单元”。,独立于RAM,中山火炬职业技术学院,PIC16F87X系列单片机采用的是“硬件堆栈”方式,堆栈深度为8级。“硬件堆栈”:CPU执行CALL指令或响应中断时,程序跳转且自动地把当前程序计数器PC的内容(断点)压入堆栈;返回时将堆栈中的断点地址自动“弹到”程序计数器PC中,使CPU恢复执行原来的程序(同MCS-51);由于PIC的堆栈是专门存储程序断点的(13位),所以

16、此堆栈不能用来存储数据,所以PIC没有专用的“进栈”、“出栈”指令(不同于MCS-51)。,返回本章目录,中山火炬职业技术学院,2.4 RAM数据存储器(文件寄存器)参见47页,PIC16F87X系列单片机的RAM单元包含了通用寄存器和专用寄存器。都可以实现:移位、置位、清零和位测试等复杂操作,所以在microchip公司的技术资料中,常常把其RAM又称为“文件寄存器”(在MCS51中只有累加器A才具备上述功能)。由于指令代码中直接寻址位数的限制,将512B的存储空间分为四个体(Bank):即体0、体1、体2 和体3。由status中的rp0、rp1来设定。每一个体中有128个单元。PIC16

17、F87X的RAM按照功能划分:特殊功能寄存器。在每一个体中的上半部分;通用寄存器。占用每一个体中的下半部分。,中山火炬职业技术学院,PIC单片机的RAM操作,首先要通过status中的rp0、rp1位的设置,来确定被访问单元所在的“体”的位置,然后才能对该单元进行访问!这种方式多少为编程者带来了不便。其原因是PIC的指令系统的访问内存指令中的直接地址的有效位数不够(只有7位地址);如果使用C语言编程(PICC)上述问题可以忽略。,PIC单片机的RAM访问注意事项,中山火炬职业技术学院,PIC16F87X数据存储器RAM结构图(简图),返回上一次,中山火炬职业技术学院,2.4.1 通用寄存器(参

18、见51页),通用寄存器(GPR general purpose registers)PIC16F87X系列不同型号RAM配置的数量不同,在同一型号中的不同的“体”中数量也各不相同(以PIC16F877为例):在体0中有96个RAM单元,地址为:20H7FH;在体1中有80个RAM单元,地址为:A0HEFH;在体2中有96个RAM单元,地址为:110H16FH;在体3中有96个RAM单元,地址为:190H1EFH;,中山火炬职业技术学院,注意:体1-体3的最后16个单元实际上是不存在的,但可以使用其地址来访问,但是真正被访问的单元不是地址所对应的体1-体3的对应单元,而是在体0中所“影射”的单元

19、。【例如】访问体1中的F0H单元时,真正被访问的却是体1中的70H单元。体2、体3也是如此。我们将体0中70H7FH的16个单元称之为体1-3的影射区;影射区的好处是在一些较特殊的场合(如中断响应时)对数据的保护可以省掉对RAM的体选操作)具体将在后面相关的章节中介绍。,中山火炬职业技术学院,PIC16F877 RAM中通用寄存器的结构,00H,1FH,20H,70H,7FH,80H,9FH,A0H,EFH,F0H,FFH,100H,10FH,110H,11FH,120H,16FH,170H,17FH,180H,18FH,1A0H,19FH,18FH,1EFH,1F0H,1FFH,中山火炬职业

20、技术学院,2.4.2 特殊功能寄存器,与通用寄存器不同,特殊功能寄存器在PIC16F87X系列中4个体中的布局保持了一致(重叠式设计),这是考虑到编程时节省选体操作、同时工程技术人员在使用PIC16F87X系列中不同产品之间编程时的兼容性(参见结构图)。将特殊功能寄存器划分为:与CPU内核相关的特殊功能寄存器;与外围模块相关的特殊功能寄存器。为了便于学习和掌握,先分析与CPU相关的特殊功能寄存器,而与外围模块相关的寄存器放到相关的章节中介绍。,中山火炬职业技术学院,有六个比较常用、重要的特殊功能寄存器:状态寄存器STATUS;间接寻址寄存器INDF;程序计数器低八位PCL;文件选择寄存器FSR

21、;程序计数器高位锁存器PCLATH;中断控制寄存器INCON。它们在四个体上地址是互相映像的,在物理上是同一个寄存器单元。还有一些寄存器在体0、体1(或体2、体3)内是相互映像的。这种设计的好处:访问时不受“体选”的约束,简化编程。,寄存器简图,中山火炬职业技术学院,(一)状态寄存器STATUS,用于记录算术逻辑单元ALU的运算状态和算术特征、CPU的特殊运行状态、以及RAM数据存储器的体选择等信息。在RAM中的地址分别为03H(体0)、83H(体1)、103H(体2)和183H(体3),在四个体上的位置是相互影射的;地址映射可理解为:物理上只有体0上的STATUS,而其它体上的位置为“空”,

22、访问时都与体0的STATUS产生关系。这种设计为编程带来方便,避免了要预先“选体”的麻烦(参见52页)。,D7,D0,RAM结构图,中山火炬职业技术学院,状态寄存器 STATUS 详解,中山火炬职业技术学院,(二)与间接寻址相关的INDF和FSR,INDF是RAM最顶端的寄存器,地址为00H,但是它是一个“空寄存器”,即只有地址而没有其物理上的寄存器;与FSR配合实现间接寻址。当寻址INDF寄存器时,实际上是访问以FSR内容为地址的RAM单元。使用这种方法可以使指令系统得到极大的简化。例如 MOVF INDF,W;实际上是按照FSR的内容为 地址,从RAM中取数据到W假如FSR的内容为30H,

23、则指令执行的结果:将RAM30H中的数据送W。这一点FSR很像MCS-51 中的简址寄存器Ri,所以FSR要事先赋值(RAM地址)。,RAM结构图,中山火炬职业技术学院,PIC单片机的RAM有两种寻址方式:直接寻址:使用状态寄存器STATUS中的PR1、PR0进行体选;体内的地址(7位)由指令中7位地址码提供;间接寻址:使用STATUS中的IRP和FSR的第7位选体,体内地址由FSR的低7位提供(详见下图)。,中山火炬职业技术学院,数据存储器RAM的寻址示意图,6 来自指令 0 PR1 PR0,IRP 7 FSR寄存器 0,RAM,单元选择,单元选择,间接寻址的体选,直接寻址的体选,00 01

24、 10 11,体0 体1 体2 体3,STATUS寄存器,中山火炬职业技术学院,(三)与程序计数器PC相关的PCL和PCLATH,程序计数器PC是一个13位宽度的程序指针(访问空间213=8192),它时刻指向CPU下一步要执行的那条指令。为了能与其他8位宽度的寄存器进行数据交换,将PC设计成PCL(8位)和PCH(5位)两个部分,其中PCL有自己的地址(02H等)以便进行读写,而高5位的PCH却因为没有地址不能用软件访问,即不能直接访问(写入)。,PCH(5bit),PCL(8bit),程序计数器PC,RAM结构图,中山火炬职业技术学院,高5位PCH的修改只能通过PCLATH寄存器以“装载”

25、的方式完成。而装载又分两种情况:当执行以PC为目标的写操作时,PC的低八位来自ALU,而PC的高5位来自PCLATH的低5位;当执行跳转指令GOTO或子程序调用指令CALL时,PC的低11位地址直接来自指令所携带的11位地址,而PCH的高2位来自PCLATH的第3、4位。,中山火炬职业技术学院,程序计数器PC中13位地址的形成示意图,PCLATH,12 PCH 8 7 PCL 0,来自ALU(8位),PCLATH,12 PCH11 10 PCL 0,来自指令码(11位),执行以PCL为目标的指令时,执行GOTO 或CALL调用指令时,中山火炬职业技术学院,(四)电源控制寄存器PCON,电源控制

26、寄存器PCON只有两个有效位:bit0、bit1。两个标志位是分别用来:1,纪录、区分:复位是上电复位或/MCLR输入低电平还是“看门狗”引起的复位;2,记录和鉴别是否发生了掉电(电压跌落)复位。,返回本章目录,中山火炬职业技术学院,由于PIC单片机具有多种复位功能。造成复位的原因不同,对单片机内部寄存器、标志和状态影响都不同,所以应当在程序的开始部分可以加上对/POR和/BOR等标志的判断,以查清当前复位产生的原因,即程序运行的背景是什么:是原始的上电复位?(/POR=0?);是掉电复位?(/BOR=0?)是WDT复位?(在STATUS中的/TO=0?);单片机在SLEEP状态下由WDT造成

27、的复位?(在STATUS中的/TO和/PD=0?)。可以根据复位的原因,程序进行不同的处理。当然,对于一些简单的程序可以不考虑其复位的原因,只要复位后PC=000H后统统从初始化开始运行.,中山火炬职业技术学院,2.5 PIC系列单片机的复位功能,PIC16F87X具有完善的复位系通。有4种复位方式:人工复位:无论单片机处于运行、睡眠或死机状态,只要在引脚“/MCLR”上加一个低电平,就会令其复位;上电复位:上电时,上电复位电路就要对电压Vdd进行监控,当电源达到1.61.8V时就会产生一个复位信号,经72ms+1024个时钟的延时后才会使单片机进入工作状态;看门狗复位:只要没有对看门狗定时器

28、WDT及时清零,看门狗定时器就会出现超时溢出,引发WDT对单片机复位。欠压复位:当电源电压下降到4V以下时,欠压复位电路就会产生一个复位信号,使CPU进入到复位状态。电源恢复到正常后再延时72msCPU返回运行状态。,返回本章目录,中山火炬职业技术学院,2.6 PIC单片机的系统时钟,PIC16F87X的内部时钟电路是由一个具有三态控制的反相器、一个反馈电阻、外部石英振荡器和两个电容构成的自激多谐振荡器。当CPU执行SLEEP指令时,将反相器置成高阻状态令电路停振。这时,单片机内部大部分电路停止工作从而有效的降低电路的功耗。(其它三种工作方式略),到内部电路执行SLEEP指令,C1 OSC1,C2 OSC2,XTAL,PIC16F87X,时钟电路外围元件,返回本章目录,作业:PIC16F877单片机管脚和说明,返回本章目录,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号