当前位置:首页 > 单片机 > 单片机
[导读]   PIC16F877A单片机是MicroChip公司的中档产品,它采用14位的RISC指令系统,内部集成了A/D转换器、EEPROM、模拟比较器、带比较和捕捉功能的定时器/计数器、PWM输出,异步串行通信( USART)电路等。 

 

  PIC16F877A单片机是MicroChip公司的中档产品,它采用14位的RISC指令系统,内部集成了A/D转换器、EEPROM、模拟比较器、带比较和捕捉功能的定时器/计数器、PWM输出,异步串行通信( USART)电路等。

  1).程序存储器和堆栈PIC16F877A单片机内部具有8K×14位的Flash程序存储器,程序存储器具有13位宽的程序计数器PCo程序存储器的地址范围为OOOOH—1FFFH。由程序计数器提供13条地址线进行单元选择,每个单元宽14位(即PIC16F877A的指令字节宽度为14位),能够存放一条PIC单片机系统指令。

 

  在系统上电或其他复位情况下,程序计数器均从OOOOH地址单元开始工作。如果遇到调用子程序或系统发生事件中断时,将把当前程序断点处的地址送入8级×14位的堆栈区域进行保护。堆栈是一个独立的存储区域,在调用的子程序或中断服务程序执行完后,再恢复断点地址。通过14位程序总线,取出对应程序指令的机器码,送入指令寄存器,将组成的操作码和操作数进行有效分离。如果操作数为地址,则进入地址复用器;如果操作数为数据,则进入数据复用器。而操作码将在指令译码和控制单元中转化为相应的功能操作。

  PIC的多数指令均是顺序执行,即使条件跳转也是隔行间接跳转。具有大范围转移功能的指令只有两条:无条件转移GOTO语句和调用子程序CALL语句。但它们受到2KB范围的约束。所以必须将整个程序存储器以2KB为单位进行分页。如下图所示,8KB程序存储器共分作4页,分别称为页0、页1、页2和页3。

  PIC16F877A单片机的上电复位地址是OOOOH,中断入口地址是0004H,中断产生时PC指针会自动指向该地址。在进行中断应用时,特别是涉及多个中断同时打开时,必须要逐个对中断标志位( XXIF)进行判断。编程时,在0000H~0003H单元内要放置一条GOTO跳转指令,跳转到主程序,以避开0004H存储器单元。

  2).数据存储器PIC单片机的数据存储器与传统的MCS-51单片机一样,在配置结构上可分为通用寄存器和特殊功能寄存器两大类。数据存储器的每个存储单元除具备普通存储器功能之外,还能实现移位、置位、复位和位测试等通常只有寄存器才能完成的操作,功能非常强大。PIC16F877A单片机RAM数据存储器与程序存储器一样,在其51 2个地址空间( 000H—1FFH)进行类似区域划分,分为4个体( Bank),从左到右分别记为体0、体1、体2和体3,每个“体”均为128×8位宽的存储单元。特殊功能寄存器安排在低位地址存储单元,通用寄存器在高位地址存储单元。下图是PIC16F877A的寄存器组映射图,对通用寄存器可以直接进行访问,也可以通过寄存器FSR间接访问。

  通过比较可知,程序存储器的4等分区域采用串接方式排列,而数据存储器的4等分区域采用并接方式排列。

  通用寄存器PIC16F877A单片机的通用寄存器扮演了其他单片机中的通用寄存器和片内RAM存储器的双重角色。

  PIC16F877A单片机的通用寄存器主要分布在数据存储器RAM各体的下半部分区域,包括体O和体I区域各有96个单元(20H—7FH和AOH—FFH)及体2和体3区域各有1 12个单元(110H—17FH和190H~1FFH)。在体1、体2和体3的数据存储器RAM体内,分别存在一个映射的地址区域:FOH—FFH、170H—17FH和1FOH—1FFH。这些单元都是虚拟设计,本身的硬件结构并不存在,但它们的地址信息都可以索引(或映射)到体O中的高地址(70H—7FH)处的16个RAM单元。正是基于这样的数据存储器结构,实际的通用寄存器单元数为368个。

  特殊功能寄存器特殊功能寄存器SFR主要分布在数据存储器RAM各体的上半部分区域。PIC16F87X系列单片机的特殊功能寄存器的布局保持了高度一致,目的是便于PIC单片机之间的相互兼容和调换。

  特殊功能寄存器中,有的专门用于控制CPU内核的性能配置,有的专门用于控制各种外围设备模块的操作,因此又可依用途分为两类:一类是与CPU内核相关的寄存器,另一类是与外围模块相关的寄存器。在此我们仅介绍与CPU内核相关的几个常用特殊功能寄存器,其余的则到讲解各种功能部件和外围模块时再介绍。

  (1).状态寄存器STATUS

  状态寄存器的内容用来记录算术逻辑单元ALU的运算状态和算术特征、CPU的特殊运行状态、以及RAM数据存储器的体间选择等信息。状态寄存器与通用寄存器有着本质的区别,例如功能位/TO和/PD只能读;另一些位的状态将取决于运算结果。

  状态寄存器STATAS(地址03H、83H、103H、183H):

  注意:对于借位,极性相反,执行减法指令时,是通过加上第二操作数的补码实现的;对于移位指令( RRF、RLF),是把源寄存器的最高位或最低位放入进位位C实现的。

  (2).选择寄存器OPTION 选择寄存器OPTION是一个可读/写寄存器,它含有用于设置定时器TMRO前分频器/监视定时器WDT后分频器、外部INT中断、TMRO和B口的弱上拉等各种控制位。

  注意:如果需要定时器TMRO得到1:1的前分频值,可以把前分频器分配给监视定时器WDT(即PSA=1)。

 

  Bit2—Bit0( PS2—PSO)前分频器倍率选择位。

  注意:当使用低电压编程LVP并且PORTB引脚弱上拉使能时,TRISB的Bit3清O以关闭RB3的弱上拉才能确保芯片的正确运行。

  (3).间接寻址寄存器INDF和文件选择寄存器FSR

  间接寻址寄存器INDF位于数据存储器各体的最低位单元,即OOH、80H、100H和180Ho它们是互相映射,只具有地址编码,但物理上并不真正存在的虚拟寄存器。INDF必须与文件选择寄存器FSR配合,才能实现间接寻址。当访问INDF地址时,实际是访问以FSR内容为地址所指向的数据存储器RAM单元。PIC系列单片机采用这种独特而巧妙的构想,实现对数据存储器的循环访问,也使PIC指令集系统得到很大的精简。

  在PIC单片机指令系统中,直接寻址和间接寻址是很重要的数据访问方式,主要是借助于状态寄存器相关位的补充实现数据存储器的选择。直接寻址/间接寻址方式示意图如上图所示。在直接寻址中,体选码来自状态寄存器STATUS的RP1和RPO位,体内的单元地址直接来自指令机器码;而在间接寻址中,体选码由STATUS的IRP位和FSR寄存器的Bit7组成,体内单元地址来自FSR的低7位。

  (4).与PC相关的寄存器PCL和PCLATH

  PIC16F877A单片机程序计数器PC指针宽13位,它总是指向CPU下一条指令所在程序存储器单元的地址。为了与其它8位宽的寄存器进行数据交换,将PC指针分成PCL和PCH两部分:低8位PCL有自己的专用地址,数据信息可读写:而高5位PCH没有自己的地址,是根本不存在的,也就不能直接写入,只能借用寄存器PCLATH进行间接装载。PCLATH实现对高5位PCH的装载分两种情况:一种情况是当执行以PCL为目标的写操作指令时,PC的低8位来自算术逻辑单元ALU的运算结果,PC的高5位来自PCLATH的低5位;另一种情况是执行跳转指令GOTO或调用子程序指令CALL时,PC的低11位直接来自指令码所携带的1 1位地址信息,而PC的高2位由PCLATH的第4位、第3位装载。具体如下图所示。

  (5).电源控制寄存器PCON

  电源控制寄存器只有两个有效位,其中一位用来记录和区分是否发生了上电复位和外部引脚/MCLR输入低电平时引起的手动复位或看门狗超时溢出复位;另一位用来记录和鉴别是否发生了掉电复位。

  电源控制寄存器两个有效位的含义如下。

  BitO/BOR:电源上电复位标志,被动参数。

  0:发生了上电复位。当发生上电复位之后,系统自动清零。应该用软件及时将其置位,以便下次利用该位来判断是否发生了电源上电复位:

  1:未发生上电复位。

  Bitl/POR:掉电锁定复位标志,被动参数。

  0:发生了掉电锁定复位。当发生掉电锁定复位之后,系统自动清零。应该用软件及时将其置位,以便下次利用该位来判断是否发生了电源掉电锁定复位:

  1:未发生掉电锁定复位。

  3).EEPROM数据存储器

  PIC16F877A单片机内含一个256×8位EEPROM数据存储器模块。它可在线擦/写,用于掉电时数据的保留。

  对EEPROM数据存储器进行写入操作时,不会影响PIC单片机其他指令的执行。PIC16F877A单片机EEPROM数据存储器的单元空间为256X8位,对应地址的范围是OOH—FFH。其中的数据信息并不直接映射在文件寄存器中,只能通过特殊功能寄存器的间接寻址来访问。

  涉及到EEPROM数据存储器读/写操作的共有4个特殊功能寄存器。

  (1).EEDATA:

  是一个专用数据读/写寄存器,用于临时存放对EEPROM数据存储器进行读/写操作的数据。

  (2). EEADR:

  是一个专用地址读/写寄存器,用于临时存放对EEPROM数据存储器进行读/写访问的单元地址。

  (3).EECON1:

  EEPROM数据存储器读/写控制第一寄存器,主要用于读/写方式的设定和初始化寻址控制。EECON1寄存器中有3位是无效定义。

  其各位的含义如下:

  BitO/RD:EEPROM数据存储器数据读出方式控制位。

  O:不处于EEPROM读操作过程,或在一个读操作周期后由硬件自动清零: 1:启动E'PROM读操作,软件主动置位。

  Bit1/WR:写操作控制位,复合参数。

  0:不处于EEPROM写操作过程,或在一个写操作周朔后由硬件自动清零;

  1:启动EEPROM写操作,软件主动置位。

  Bit2/WREN:EEPROM写使能位。

0:使能对EEPROM写

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭