PIC单片机各寄存器汇总资料讲解

合集下载

PIC单片机器件配置字简介和使用

PIC单片机器件配置字简介和使用

PIC单片机器件配置字简介和使用在PIC系列单片机里,其芯片内部大都有设置一个特殊的程序存储单元,地址为2007,由单片机的用户自由配置,用来定义一些单片机功能电路单元的性能选项。

我们把这个单元叫做器件配置字(Configuration Bits)。

这种设计给单片机开发工程师带来了很大的灵活性,但是也给初学者带来了一些麻烦。

笔者以PIC16F877为例向初学者介绍配置字的用途和使用。

一、器件配置字的用途图1图1就是PIC16F877配置字的寄存器的情形。

对配置字的各位的解释如下:CP1-CP0:代码保护位,说明如下:11 = 代码保护关;10 = 参见器件数据手册;01 = 参见器件数据手册;00 = 所有存储器均受代码保护。

注:有些器件使用较多或较少的位数来配置代码保护。

目前就一些只使用一位(CP0) 的器件,保护位的说明如下:1 = 代码保护关;0 = 代码保护开。

DP:数据EEPROM 存储器的代码保护位,说明如下:1 = 代码保护关;0 = 数据EEPROM 存储器受代码保护。

注:对于具有数据EEPROM 存储器的ROM 程序存储器器件,使用该位。

BODEN:欠压复位(BOR) 使能位,说明如下:1 = BOR 使能;0 = BOR 禁止。

PWRTE:上电定时器(PWRT) 使能位,说明如下:1 = PWRT 禁止;0 = PWRT 使能。

注1:无论PWRTE 位的值为何,使能欠压复位即自动使能了上电定时器(PWRT)。

请确保使能欠压复位时,也使能了上电定时器。

注2:在一些早期的PICmicro® 单片机中,该位的极性被保留。

MCLRE:MCLR 引脚功能选择位,说明如下:1 = 引脚功能为MCLR;0 = 引脚功能为数字I/O,MCLR 在内部连接到VDD 上。

WDTE:看门狗定时器(WDT) 使能位,说明如下:1 = WDT 使能;0 = WDT 禁止。

FOSC1-FOSC0:振荡器选择位,说明如下:11 = RC 振荡器;10 = HS 振荡器;01 = XT 振荡器;00 = LP 振荡器。

PIC 系列单片机数据存储器的特点和功能概要

PIC 系列单片机数据存储器的特点和功能概要

PIC系列单片机数据存储器的特点和功能(中)PIC单片机学习PIC单片机数据存储器时,不仅要了解各寄存器单元的功能,而且还应在编制程序时会调用它们完成编程目的。

下面笔者将以编程实例说明它们的用途。

2 间接寻址寄存器INDF和FSR位于PIC单片机数据存储器的最顶端、地址00单元(地址码最小)的间接寻址寄存器INDF是一个空的寄存器。

它只有地址码,在物理上不是一个真正的寄存器。

它的功能常常与寄存器FSR(又称寄存器选择寄存器)配合工作,实现间接寻址目的。

初学专用寄存器INDF和FSR时,记住下述的逻辑关系对编程是有帮助的:使用寄存器INDF的任何指令,在逻辑上都是对寄存器FSR所指向的RAM进行访问,即对INDF(本身)进行间接寻址(访问),读出的应是FSR内容。

以下的一个简单程序是用间接寻址方式清除RAM地址20h~2Fh单元寄存器内容的实例。

MOVLW0x20;20h→w,对指向RAM单元的指针;初始化MOVWF FSR;20h→FSR,FSR指向RAMLOOP CLRF INDF;清除INDF,即清除FSR内容所指;向的单元20h→2FhINCF FSR;(指针)FSR内容加1BTFSS FSR,4;判别(指令)FSR的D3位,若为零;执行下条循环指令;若为1间跳;执行。

GOTO LOOP;跳转到LOOP(循环)CONTINUE…;已完成功能,继续执行程序由上述指令看出,因寄存器INDF和FSR的配合工作,达到了对RAM地址20h~2Fh 的寄存器清零目的。

由于完成上述功能的指令数很少,这就会简化指令系统,使PIC单片机的指令集得以精简。

说明:上述各条指令易于看懂,所以无需再复述,但其中的一条判别指令“BTFSS FSR,4”比较关键。

该条指令是保证题设中要选择RAM地址单元上限值2Fh时,其对应的二进制数为00101111B,此时FSR的第4位恰为1。

所以上述指令中用了一条判断指令;BTFSS FSR,4,判断FSR的D3位值是否为1,若不为1而为0,则执行下条循环指令GOTO LOOP,使FSR中的地址不断加1,直到寄存器FSR的D3位为1时,这时它的内容代表的RAM地址恰为2Fh。

PIC单片机原理及应用(第十一章)解读

PIC单片机原理及应用(第十一章)解读

1011:特殊事件触发,如果CCPR1与TMR1 相等, CCP1电 平不变,( CCP1IF 置位, CCP1 将 TMR1 复位,并且启动 A/D模数转换电路)。
11.3.3
CCP1比较方式应用
CCP1模块构成输出比较功能,需要对 相应的控制位进行设置,即所谓 CCP1 模块 比较工作方式的初始化。
实例
输出脉冲信号
改变信号频率
1、CCP1引脚的设定
CCP1和RC2合用一个引脚RC2/CCP1,在 CCP1 的捕捉方式下, RC2 引脚必须由 TRISC的 Bit2设定为输入方式。
2、 TMR1工作方式的设定
当CCP1工作于捕捉模式时,必须和TMR1 搭配。同时 TMR1必须设定为定时器工作方式 或者同步计数器方式。计数初值一般以0开 始。
TMR2控制寄存器:T2CON
CCP控制寄存器CCP1CON
Bit3-Bit0/CCP1M3-CCP1M0 :脉宽调制功能设置, 主动参数。
11XX:脉宽调制方式,低2位不起作用。
Bit5~Bit4/CCP1X~CCP1Y:CCP1脉宽寄存器的低2 位,高8位在CCPR1L中,数据参数。
PWM操作设置
比较功能
CCP 模块第 2 个功能是比较方式输出,用于 从引脚上输出不同宽度的矩形脉冲信号、不同 的周期频率脉冲以及非周期频率信号等。 根据预置的特定值(CCPR1)与TMR1计数器 的计数值进行比较,当两者数值一致时给出比 配信号,触发 CCP 中断标志位置位。由 RC2 引脚 可以输出3种逻辑状态。
脉宽调制方式原理图
PWM输出信号周期
PWM输出信号周期可通过向TMR2的周期 寄存器PR2写入来设定,计算公式如下: PWM周期=4Tosc×((PR2)+1)×(TMR2 预分频值) 其中,Tosc为系统时钟周期;4×Tosc为 指令周期;TMR2预分频值可以为1、4或16。

PIC16系列单片机中断寄存器

PIC16系列单片机中断寄存器

PIC16系列单片机中断寄存器1、EECON1---eeprom控制寄存器————————————————————————————-| R/W-x | U-0 | U-0 | U-0 | R/W-x | R/W-0 | R/S-0 | R/S-0 | ————————————————————————————-| EEPGD |------|-------|------|WRERR| WREN | WR | RD | ————————————————————————————-EEPGD:程序/数据选择位EEPGD=0;访问数据内存EEPGD=1;访问程序内存WRERR:错误标志位WRERR=0;写操作已经完成WRERR=1;写操作过早终止,指正常操作期间出现MCLR或WDT复位WREN:写使能位WREN=0;禁止写入EEPROMWREN=1;允许写入EEPROMWR:写操作控制位WR=0; EEPROM的写周期已经完成WR=1; 启动写周期。

一旦写入完成,该位将被硬件清零。

RD:读操作控制位RD=0; 未启动EEPROM读操作RD=1; 启动EEPROM读操作EEARD:2、INTCON---中断控制寄存器————————————————————————————--------- | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/S-0 | R/S-0 | ————————————————————————————--------- | GIE | PEIE | TMR0IE| INTE | RBIE | TMR0IF | INTF | RBIF | ————————————————————————————---------GIE: 全局中断允许位GIE=0; 禁止所有中断GIE=1; 允许所有未屏蔽中断PEIE:外设中断允许位PEIE=0;禁止所有外设中断PEIE=1;允许所有未屏蔽外设中断T0IE:TMR0溢出中断允许位T0IE=0; 禁止TMR0溢出中断T0IE=1; 允许TMR0溢出中断INTE:INT外部引脚中断允许位INTE=0; 禁止INT外部引脚中断INTE=1; 允许INT外部引脚中断RBIE:RB端口电平变化中断允许位RBIE=0; 禁止RB端口电平变化中断RBIE=1; 允许RB端口电平变化中断T0IF:TMR0溢出中断标志位T0IF=0; TMR0寄存器未发送溢出T0IF=1; TMR0寄存器已经溢出(必须用软件清零)INTF:INT外部引脚中断标志位INTF=0; 未发生INT外部中断INTF=1; 发生INT外部中断(必须用软件清零)RBIF:RB端口电平变化中断标志位RBIF=0; RB4-RB7引脚未有发生状态变化(电平变化)RBIF=1; RB4-RB7引脚中至少有一位的状态发生了变化(电平变化)3、PIE1:外设中断独立使能寄存器————————————————————————————--------- | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/S-0 | R/S-0 | ————————————————————————————--------- | PSPIE | ADIE | RCIE | TXIE | SSPIE | CCP1IE| TMR2IE| TMR1IE| ————————————————————————————---------PSPIE:并行从动端口的读/写中断允许位PSPIE=0; 禁止PSP的读/写中断PSPIE=1; 允许PSP的读/写中断ADIE:A/D转换中断允许位ADIE=0; 禁止A/D中断ADIE=1; 允许A/D中断RCIE:USART接收中断允许位RCIE=0; 禁止USART接收中断RCIE=1; 允许USART接收中断TXIE:USART发送中断允许位TXIE=0; 禁止USART发送中断TXIE=1; 允许USART发送中断SSPIE:同步串行口中断允许位SSPIE=0; 禁止SSP中断SSPIE=1; 允许SSP中断CCP1IE:CCP1中断允许位CCP1IE=0; 禁止CCP1中断CCP1IE=1; 允许CCP1中断TMR2IE:TMR2与PR2匹配中断允许位TMR2IE=0; 禁止TMR2与PR2匹配中断TMR2IE=1; 允许TMR2与PR2匹配中断TMR1IE:TMR1中断允许位TMR1IE=0; 禁止TMR1中断TMR1IE=1; 允许TMR1中断4、PIE2:外设中断独立使能寄存器2————————————————————————————- | U-0 | R/W-0 | U-0 | R/W-0 | R/W-0 | U-0 | U-0 | R/W-0 | ————————————————————————————- |-------| CMIE |--------| EEIE | BCLIE |-----|-------| TRISE0| ————————————————————————————-CMIE:比较强中断允许位CMIE=0; 禁止比较器中断CMIE=1; 允许比较器中断EEIE:比较强中断允许位EEIE=0; 禁止EEPROM写操作完成中断EEIE=1; 允许EEPROM写操作完成中断BCLIE:比较强中断允许位BCLIE=0; 禁止总线冲突中断BCLIE=1; 允许总线冲突中断CCP2IE:CCP2中断允许位CCP2IE=0; 禁止CCP2中断CCP2IE=1; 允许CCP2中断5、PIR1:外设中断独立标志位寄存器1————————————————————————————----- | R/W-0 | R/W-0 | R-0 | R-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | ————————————————————————————- | PSPIF | ADIF | RCIF | TXIF| SSPIF | CCP1IF| TMR2IF| TMR1IF| ————————————————————————————----- PSPIF:并行从动端口读/写中断标志位PSPIF=0; 未发生读/写操作PSPIF=1; 发生了读/写操作ADIF:A/D转换器中断标志位ADIF=0; 未完成A/D转换ADIF=1; 完成A/D转换(必须用软件清零)RCIF:USART接收中断标志位RCIF=0; 接收缓冲器为空RCIF=1; 接收缓冲器RCREG满(当读取RCREG时清零)TXIF:USART发生中断标志位TXIF=0; 接收缓冲器满TXIF=1; 接收缓冲器RCREG为空(当写入TXREG时清零)SSPIF:同步串行中断标志位SSPIF=0; 等待发送/接收完成SSPIF=1; 完成发送/接收CCP1IF:CCP1中断标志位*输入捕捉模式CCP1IF=0; 未发生TMR1寄存器捕捉CCP1IF=1; 发生TMR1寄存器捕捉(必须用软件清零)*输出比较模式CCP1IF=0; 未发生TMR1寄存器的比较匹配CCP1IF=1; 发生了TMR1寄存器的比较匹配(必须用软件清零)*脉宽调制模式(PWM)下未定义TMR2IF:TMR2对PR2匹配中断标志位TMR2IF=0; TMR2对PR2不匹配TMR2IF=1; TMR2对PR2匹配(必须用软件清零)TMR1IF:TMR1溢出中断标志位TMR1IF=0; TMR1寄存器未发生溢出TMR1IF=1; TMR1寄存器发生溢出(必须用软件清零)6、PIR2:外设中断独立标志位寄存器2 ————————————————————————————- | U-0 | R/W-0 | U-0 | R/W-0 | R/W-0 | U-0 | U-0 | R/W-0 | ————————————————————————————- | --- | CMIF | --- | EEIF | BCLIF | --- | --- | CCP2IF| ————————————————————————————- CMIF:比较器中断标志位CMIF=0; 比较器输入未发生变化CMIF=1; 比较器输入发生变化(必须用软件清零)EEIF:EEPROM写操作完成中断标志位EEIF=0; EEPROM写操作未完成EEIF=1; EEPROM写操作已经完成(必须用软件清零)BCLIF:总线冲突中断标志位BCLIF=0; 未出现总线冲突BCLIF=1; 配置SSP模块I2C主控模式时出现总线冲突CCP2IF:CCP2中断标志位*输入捕捉模式CCP2IF=0; 未发生TMR1寄存器捕捉CCP2IF=1; 发生了TMR1寄存器捕捉(必须用软件清零)*输出比较模式CCP2IF=0; 未发生TMR1寄存器的比较匹配CCP2IF=1; 发生了TMR1寄存器的比较匹配(必须用软件清零)*脉宽调制模式(PWM)下未定义7、TRISE:并行从动端口状态/控制寄存器————————————————————————————----| R-0 | R-0 | R/W-0 | R/W-0 | U-0 | R/W-1 | R/W-1 | R/W-1 | ————————————————————————————----| IBF | OBF | IBOV | PSPMODE| --- | TRISE2| TRISE1| TRISE0| ————————————————————————————----8、OPTION_REG:选项寄存器————————————————————————————--------- | R/W-1 | R/W-1 | R/W-1 | R/W-1 | R/W-1 | R/W-1 | R/W-1 | R/W-1 | ————————————————————————————--------- | RBPU | INTEDG | T0CS | T0SE | PSA | PS2 | PS1 | PS0 | ————————————————————————————--------- RBPU:弱上拉使能位RBPU=0; 使能弱上拉RBPU=1; 禁止弱上拉INTEDG:中断信号边沿选择位INTEDG=0; INT引脚下降沿中断INTEDG=1; INT引脚上升沿中断T0CS:TMR0时钟源选择位T0CS=0; 内部指令周期时钟(CLKOUT)T0CS=1; T0CKI引脚输入时钟PSA:预分频器分配位PSA=0; 预分频器分配给TIMER0PSA=1; 预分频器分配给WDTPS2-PS0:预分频比选择位PS2 PS1 PS0 TMR0分频比WDT分频比000 1:2 1:1001 1:4 1:2010 1:8 1:4011 1:16 1:8100 1:32 1:116101 1:64 1:32110 1:128 1:64111 1:256 1:1289、T1CON:TIMER1控制寄存器————————————————————————————--------- | U-0 | U-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 | ————————————————————————————--------- | --- | --- |T1CKPS1|T1CKPS0|T1OSCEN| T1SYNC| TMR1CS| TMR1ON| ————————————————————————————--------- T1CKPS1-T1CKPS0: TIMER1输入时钟预分频比选择位11:1:8预分频比10:1:4预分频比01:1:2预分频比00:1:1预分频比T1OSCEN: TIMER1振荡器使能位T1OSCEN=0; 振荡器关闭T1OSCEN=1; 振荡器使能T1SYNC: TIMER1外部时钟输入同步控制位*当TMR1CS=1时:T1SYNC=0; 同步外部时钟T1SYNC=1; 不同步外部时钟*当TMR1CS=0时:此位被忽略,TIMER1使用内部时钟TMR1CS: TIMER1时钟源选择位TMR1CS=0; 选择内部时钟(FOSC/4)TMR1CS=1; 选择T1OSO/T1CKI引脚的外部时钟(上升沿计数)TMR1ON: TIMER1使能位TMR1ON=0; 关闭TIMER1TMR1ON=1; 开启TIMER1*与TIMER1相关的寄存器有:1.TMR1L保存16位TMR1寄存器低字节的寄存器2.TMR1H保存16位TMR1寄存器高字节的寄存器。

PIC单片机基础教程

PIC单片机基础教程

PIC单片机基础教程PIC 单片机基础教程第一章PIC 系列单片机结构原理目前在全世界,利用单片机设计的嵌入式系统带来的工业年产值已超过几万亿美元。

在美国,但是使用嵌入式电脑的全数字电视产品预计每年将产生超过1500亿美元的于世界市场,我国的占有率好不到1 % 。

这说明单片机应用早我国才刚刚起步,有着广阔的前景。

因此,培养单片机应用人才,特别是在大学和中等专业学校相关专业中普及单片机知识,有着重要现实意义。

1.1单片机概述微型计算机是一种以电子器件为基础,可以介入输入信息,并能够对各种输入的数字化信息进行算术和逻辑运算,最后产生输出的电子设备。

微型计算机机油快速运算能力,又有极强的逻辑判断能力和的容量存储功能,是20世纪人类最卓越的发明之一,而单片微型计算机就是将CPU 、RAM、ROM、定时器/计数器和多种接口都集成到一块集成电路芯片上的尖端武器和日常生活中最广泛使用的计算机。

近年来,单片机得到突飞猛进的发展,已经完全深入到了人们的生活和工作的各个方面。

单片机的发展过程和性能的日益完善,实际上是对传统控制技术的一场革命,开创了为控制技术的新天地,现代控制系统的核心内涵就是嵌入式计算机应用系统(MCU),而单片机就是最典型、最广泛和最普及的嵌入式计算机应用系统。

可以毫不夸张地说,在现代化的设备中,单片机无处不在,如电信、家用电器、工业控制、仪器仪表、汽车和玩具等;单片机也比比皆是,如自动调台收音机、VCD、遥控空调、微波炉、智能玩具、人体秤和心电监护仪等。

随着科技的发展,单片机必将在更多的方面发挥作用。

目前,全世界各大公司的单片机品种已经形成多个系列,同一系列的单片机在软件和硬件方面有很大的相同之处。

例如,PIC16F87X 系列单片机有着相同的内核、相同和兼容的指令系统。

各种单片机在其内部所处理的对象都是用二进制数表示的信息,因此在学习单片机原理之前,首先要了解二进制数和二进制编码。

1、1、1 二进制数和编码1 计算机中的二进制数字的表示,有二进制、十进制和十六进制等。

PIC单片机总结

PIC单片机总结

一、引言据统计,我国的单片机年容量已达1-3亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。

这说明单片机应用在我国才刚刚起步,有着广阔的前景。

培养单片机应用人才,特别是在工程技术人员中普及单片机知识有着重要的现实意义。

当今单片机厂商琳琅满目,产品性能各异。

针对具体情况,我们应选何种型号呢?首先,我们来弄清两个概念:集中指令集(CISC)和精简指令集(RISC)。

采用CISC结构的单片机数据线和指令线分时复用,即所谓冯.诺伊曼结构。

它的指令丰富,功能较强,但取指令和取数据不能同时进行,速度受限,价格亦高。

采用RISC结构的单片机数据线和指令线分离,即所谓哈佛结构。

这使得取指令和取数据可同时进行,且由于一般指令线宽于数据线,使其指令较同类CISC单片机指令包含更多的处理信息,执行效率更高,速度亦更快。

同时,这种单片机指令多为单字节,程序存储器的空间利用率大大提高,有利于实现超小型化。

属于CISC结构的单片机有Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、台湾Winbond(华邦)W78系列、荷兰Pilips的PCF80C51系列等;属于RISC结构的有Microchip公司的PIC系列、Zilog的Z86系列、Atmel的AT90S系列、韩国三星公司的KS57C系列4位单片机、台湾义隆的EM-78系列等。

一般来说,控制关系较简单的小家电,可以采用RISC型单片机;控制关系较复杂的场合,如通讯产品、工业控制系统应采用CISC单片机。

不过,RISC单片机的迅速完善,使其佼佼者在控制关系复杂的场合也毫不逊色。

根据程序存储方式的不同,单片机可分为EPROM、OTP(一次可编程)、QTP(掩膜)三种。

我国一开始都采用ROMless型单片机(片内无ROM,需片外配EPROM),对单片机的普及起了很大作用,但这种强调接口的单片机无法广泛应用,甚至走入了误区。

PIC单片机16F84的内部硬件资源

PIC单片机16F84的内部硬件资源

PIC单片机16F84的内部硬件资源成都卫东现在我们已经知道要单片机工作,就需用汇编语言编制程序。

而对某个PIC单片机编程时,还需对选用的PIC单片机内部硬件资源有所了解。

这里介绍PIC16F84单片机的内部结构,如图1所示的框图。

由图1看出,其基本组成可分为四个主要部分,即运算器ALU和工作寄存器W;程序存储器;数据存储器和输入/输出(I/O)口;堆栈存储器和定时器等。

现分别介绍如下。

1 运算器ALU及工作寄存器W运算器ALU是一个通用算术、逻辑运算单元,用它可以对工作寄存器W和任何通用寄存器中的两个数进行算术(如加、减、乘、除等)和逻辑运算(如与、或、异或等)。

16F84是八位单片机,ALU的字长是八位。

在有两个操作数的指令中,典型的情况是一个操作数在工作寄存器W中,而另一个操作数是在通用寄存器中,或者是一个立即数。

在只有一个操作数的情况下,该数要么是在工作寄存器W中,要么是在通用寄存器中。

W寄存器是一个专用于ALU操作的寄存器,它是不可寻址的。

根据所执行的指令,ALU还可能会影响框图中状态寄存器STATUS的进位标志C、全零标志Z等。

2 程序存储器单片机内存放程序指令的存储器称为程序存储器。

PIC16F84的所有指令字长为14位。

所以程序存储器的各存储单元是14位宽。

一个存储单元存放一条指令。

16F84的程序存贮器有1024(28)个存储单元(存储容量为1k)。

这些程序存储器都是由FPEROM构成的。

程序存储器是由程序计数器PC寻址的。

16F84的程序计数器为13位宽,可寻址8K(8×1024)的程序存储器空间,但16F84实际上只使用了1k的空间(单元地址为0~3FFH)。

当访问超过这些地址空间的存储单元时,将导致循环回到有效的存储空间。

对于用过其它单片机的用户,可能会感到16F84的片内存储器容量太少了。

实际上并非如此,因为16F84的指令系统都是由单字指令构成的,相应于其它由二字节、三字节甚至四字节指令的单片机而言,PIC单片机的程序存储器有效容量要比标称值扩大2 5倍到3倍。

PIC单片机各寄存器汇总

PIC单片机各寄存器汇总

1) 芯片的振荡模式选择。

2) 片内看门狗的启动。

3) 上电复位延时定时器PWRT的启用。

4) 低电压检测复位BOR模块的启用。

5) 代码保护。

__CONFIG_CP_OFF &_WDT_OFF &_BODEN_OFF &_PWRTE_ON &_XT_OSC &_WRT_OFF &_LVP_OFF &_CPD_OFF ;_CP_OFF 代码保护关闭_WDT_OFF 看门狗关闭_BODEN_OFF_PWRTE_ON 上电延时定时器打开_XT_OSC XT振荡模式_WRT_OFF 禁止Flash程序空间写操作_LVP_OFF 禁止低电压编程_CPD_OFF EEPROM数据读保护关闭LVP Low Voltage Program 低电压编程CP Code Protect 代码保护Date EE Read Protect EEPROM数据读保护Brown Out DetectPower Up TimerWatchdog TimerFlash Program Write外部时钟输入(HS,XT或LP OSC配置)如下图:陶瓷(ceramic)谐振器电容的选择如下表:一般情况为:11 1111 0011 0001 0x3F31 或0x3F71位13 CP:闪存程序存储器代码保护位11=代码保护关闭0=所有程序存储器代码保护位12 未定义:读此位为1 1位11 DEBUG:在线调试器模式位11=禁止在线调试器,RB6和RB7是通用I / O引脚0=在线调试功能开启,RB6和RB7专用于调试位10:9 WRT1:WRT0:闪存程序存储器的写使能位11PIC16F876A / 877A11=写保护关闭,所有的程序存储器可能被写入由EECON控制10=0000h-00FFh写保护,0100h-1FFFh写入由EECON控制01=0000h-07FFh写保护,0800h-1FFFh写入由EECON控制00=0000h-0FFFh写保护,1000h-1FFFh写入由EECON控制位8 CPD:数据EEPROM存储器代码保护位(Code Protection bit) 1 1=数据EEPROM存储器代码保护关闭0=数据EEPROM存储器代码保护功能开启位7 LVP:低电压(单电源)在线串行编程使能位(Low V oltage Program) 0 1=RB3/PGM引脚有PGM功能,低电压编程启用0=RB3是数字I / O 引脚,HV(高电压13V左右) 加到MCLR必须用于编程位6 BOREN:欠压复位使能位(低电压检测复位)(Brown-out Reset(Detect)) 0 1=低电压检测复位BOR(BOD)模块启用0=低电压检测复位BOR(BOD)模块关闭位5:4 未定义:读此两位均为1 11位3 PWRTEN:上电定时器使能位(上电复位延时定时器)(Power-up Timer) 0 1=上电定时器关闭0=上电定时器开启位2 WDT:看门狗定时器使能位0晶体振荡器电容的选择1=看门狗开启如右图:0=看门狗关闭位1:0 Fosc1:Fosc0:振荡器选择位0111=RC振荡器10=晶体振荡器HS模式。

PIC单片机资源

PIC单片机资源

PIC单片机资源
九银发表于2009年04月04日 20:55 阅读(56) 评论(3) 分类:个人日记举报
PIC单片机的文件寄存器、指令、状态寄存器、引脚等是单片机学习和编程练习重要资源。

希望对大家有帮助。

如果你觉得有用,就顶一下。

、文件寄存器:
、指令表
、STATUS寄存器
t7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
P RP1 RP0 T0 PD Z DC C
.选项寄存器OPTION_REG
t7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PU INTEDG T0CS T0SE PSA PS2 PS1 PS0
3/PSA:前后分频器分配位,主动参数。

0:分配给TMR0,作为TMR0的前分器;
:分配给WDT,作为WDT的后分频器。

4/T0SE:TMR0用于计数器,计数脉冲信号边沿选择位,主动参数。

:RA4/T0CKI引脚上的上升沿增量;
:RA4/T0CKI引脚上的下降沿增量。

5/T0CS:定时/计数器TMR0时钟源选择位,主动参数。

:用内部指令周期时钟(CLKOUT)作为TMR0的触发脉冲;
:用T0CKI引脚上的外部时钟作为TMR0的触发脉冲。

6/INTEDG:INT中断信号触发边沿选择位,主动参数。

:BR0/INT引脚上的上升沿触发;
:BR0/INT引脚上的下降沿触发。

7/RBPU:B端口弱上拉使能位,主动参数。

:RB0-RB7引脚弱上拉使能;
:RB0-RB7引脚弱上拉不使能。

、PIC单片机引脚。

第三章PIC存储器

第三章PIC存储器

ADDWF INDF,W ;(W)=5AH,Z=0,C=0 ,DC=0
SUBWF 30H ,F ;(30H)-(W) =06H,Z=0,C= ? ,DC=?
PIC单片机原理
3、逻辑运算类指令
1) CLRF f 操作: 00h (f)
有14条
f 清零 ;1 Z
操作数: 0 ≤ f ≤ 127
RP1 RP0
存储体
PIC单片机原理
IRP
: RAM数据存储器体选择位
只用于间接寻址
=0 :选择存储体ห้องสมุดไป่ตู้,1
=1 :选择存储体2,3
2、间接寻址的寄存器 INDF(00H,80H,100H,180H) 和 FSR(04H,84H,104H,184H) INDF是一个非常特殊的寄存器,地址为00H、80H、100H、 180H,它们互相映射,是一个物理上不存在地虚拟存储
PIC单片机原理
§3.3 数据存储器组织 PIC16F877A有512字节RAM,地址000H~1FFH,所有单 元都可以位寻址。
分为四个体如下:
每体128B,具体如下: 000H~07FH:体0 (Bank0) 080H~0FFH:体1(Bank1) 100H~17FH:体2 (Bank2)
180H~1FFH:体3 (Bank3)
说明: 8 位立即数“k”减去W 寄存器的内容
(使用2 进制补码的方法)。结果存入W 寄存器。
PIC单片机原理
INCF f,d
f 加1
操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作: (f) +1 目标寄存器) ( 受影响的状态位:Z 说明: 寄存器“f”的内容递增。如果“d”为0,
d ∈ [0,1]

PIC存储结构

PIC存储结构

• PIC16F877内部配置8K*14位的Flash程序 存储器
• 地址空间分成4页:0、1、2、3页,每页 2K*14位宽的存储单元
• 程序计数器PC高位寄存器PCLATH决定 程序存储器跨页选择。
分页的程序存储器
(14位内核)
CALL or GOTO instruction
OP CODE k k k k k k k k k k k
3 bits for instruction
11 bits for destination
• 在14-位内核的器件中:
– 11 位访问 211 或 2048 (2k) 空间 – 访问更多的空间,需要更多的位
• 数据存储器体选方式
512字节存储器,9根地址线,分成4个“体” 间接寻址
直接寻址
直接寻址访问数据存储器
2
来自指令码
11 11
PCH <5>
PCL <8>
13-Bit Program Counter
PIC单片机架构 间接寻址
• FSR 和 INDF 用于间接寻址 • FSR 是地址指针 • INDF 保存移动的值
Writing
Reading
22
FSR
5
INDF
21
22 23
5
24
mHale Waihona Puke vlw movwf movlw movwf
PIC存储器
PIC单片机架构
存储器
• 两种类型
–程序 –数据(RAM 和EEPROM)
Microchip PIC MCU 金字塔
16 bit MCU
24 bits dsPIC
数据存储器 宽度

PIC内部特殊功能寄存器中文说明

PIC内部特殊功能寄存器中文说明

定时器,计数器TMR2的计数寄存器
RX9
串行端口使能位9位接收使能位
USART发送数据寄存器
CCP2M0
INDF
IBOV
PSPMODE RB端口方向寄存器用FSR内容实现间接寻址文件寄存器(是一个非物理寄存器)间接文件寄存器地址指针,叫文件选择寄存器
TX9
同步時時鍾源選擇位1為主模式第9位選擇位,1為9位0為8位
BANK2
RB端口数据寄存器
程序计数器高5位间接写入缓冲区
RBIF
间接文件寄存器地址指针,叫文件选择寄存器
184H FSR
PEIE
EEPROM錯誤標志位EEPROM讀控制位
OBF
ADIF
TMR0相关寄存器
ADIE
CKE
MSSP接收/发送数据移位寄存器
RCIE TXIE SSPIE TMR1IE
CCP2IF
16位的CCP1寄存器的低8位
16位的CCP1寄存器的高8位
CCP2M0
为0没有收到数据
BOV为1表示输出缓冲器仍保持着上次写入的数据;IBF为1表示接收一个数据,等待CPU读取;。

第三章 PIC单片机的存储器

第三章 PIC单片机的存储器

Return
主动参数和被动参数 ◆为了更好地说明各位参数,把需要设 置定义后才起作用的位参数称为主动 参数;
◆而需要根据指令执行结果系统自动返 回状态信息的位参数称为被动参数。
◄ Up
► Down

Main
Return
几个专业术语 ●对某寄存器单元或某位赋值“ 0” 称为 “清0” ●对某寄存器单元或某位赋值“ 1” 称为 “置位”或“置1” ●对于模块中断功能的设定,以“使能” 表示
●存储器是单片机的一个非常重要的部 件,专门用于存放指令、数据和运算 结果。PIC16F877单片机配置了三大存 储器模块。 ◆ 8K×14位Flash型程序存储器 ◆ 512×8位RAM型数据存储器 ◆ 256×8位E2PROM型数据存储器
◄ Up
► Down

Main
Return
3.1 存储器分类 ◆从使用功能上,存储器可为:随机存储 器RAM (Random Access Memory)和只读 存储器ROM (Read Only Memory)两类。
Bit2(Z):零标志,被动参数 ◆0:算术运算或逻辑运算结果不为0; ◆1:算术运算或逻辑运算结果为0。 Bit3(PD):降耗标志,被动参数 ◆0:执行休眠指令后; ◆ 1 :上电或执行看门狗定时器清 0 指令后。
◄ Up ► Down ◙ Main Return
Bit4( TO ):超时标志,被动参数 ◆0:看门狗定时器发生超时; ◆1:上电或执行看门狗清0指令或执行休 眠指令后。
7位地址来自指令的操作数
f f f f f f
9位数据存储器地址
◄ Up ► Down ◙ Main Return
Bit7 ( IRP): RAM 数据存储器体选位, 主动参数,仅用于间接寻址。 ◆0:选择数据存储器的低位体,体0或体1, 地址是000H~0FFH; ◆1:选择数据存储器的高位体,体2或体3, 地址是100H~1FFH。

PIC02PIC单片机结构

PIC02PIC单片机结构

§1.4 数据存储器RAM 数据存储器RAM 数据存储器又称为文件寄存器, 数据存储器又称为文件寄存器,为了与片 文件寄存器 内的另一种数据存储器E PROM区分 区分, 内的另一种数据存储器E2PROM区分,又称它 RAM数据存储器 简称RAM。 RAM有以下 数据存储器, 为RAM数据存储器,简称RAM。 RAM有以下 的特点: 的特点: ㈠从PIC16F877的内部组织可以看出RAM的地址 PIC16F877的内部组织可以看出 的内部组织可以看出RAM的地址 宽度是9 (bit)的 因此RAM的最大寻址空间 宽度是9位(bit)的,因此RAM的最大寻址空间 512个字节 个字节(byte)。 是512个字节(byte)。 ㈡RAM是按照“体(Bank)”进行管理的,每个体 RAM是按照 是按照“ (Bank)”进行管理的 进行管理的, 128个字节。 512个字节可分为 个体, 个字节可分为4 为128个字节。 512个字节可分为4个体,从左 到右排列,分别记为体0 和体3 到右排列,分别记为体0、体1、体2和体3。
PIC16F87X 把程序存储器Falsh ROM 的每 PIC16F87X 把程序存储器 Falsh ROM的每 2K 的每2 个存储单元称为一页(page) 所以PIC16F874/ 个存储单元称为一页 (page) , 所以 PIC16F874 / 877 的 8K×14 位的 Falsh ROM分为 4 页 ( 记为页 0 、 877的 14位的 位的Falsh ROM 分为 分为4 记为页0 和页3 PIC16F873/ 876的 14位 页 1 、 页 2 和页 3) ; 而 PIC16F873 / 876 的 4K×14 位 ROM , 即页0 和页1 对于PIC16F870/ 的 Falsh ROM, 即页 0 和页 1 ; 对于 PIC16F870 / 871/872,2K×14位的Falsh ROM只有1页,即页0。 871/872, 14位的 位的Falsh ROM只有 只有1 即页0 如图所示(见书p27) 如图所示(见书p27)。 至于程序存储器为何需要分页? 至于程序存储器为何需要分页?分页到底有 何意义?此问题以后再讨论。 何意义?此问题以后再讨论。 PIC16F87X PIC16F87X 的程序存储器中有两个单元地址 比较特殊: 比较特殊:

PIC单片机寄存器大全

PIC单片机寄存器大全

2.状态寄存器。

3.程序计数器程序计数器(Program Counter,PC)用于记录下一条所要执行的指令在程序存储器中的地址,PC中的内容决定了程序的执行流程。

4.程序存储器PIC16F87X采用FLASH程序存储器,用于存放用户编写的程序和一些固定不变的数据(如数据表),存储容量为4kB或8kB(14位)。

5.数据存储器数据存储器(RAM)用于存放CPU在运算过程中产生的中间数据,分为通用寄存器(General Purpose Register,GPR)和特殊功能寄存器(Special Function Register,SFR)。

传统RAM 存储器一般只能实现数据的读写操作,而PIC单片机的RAM还可以实现移位、置位、清零等位操作,所以其RAM又称为文件寄存器(File Register)。

6.间接寻址寄存器和文件选择寄存器间接寻址寄存器(INDF)和文件选择寄存器(FSR)配合实现间接寻址。

INDF并不是一个物理上真正存在的寄存器,访问时,将欲访问的数据存储器的地址存入FSR,而需要存入或读取的数据则在INDF中,如此实现间接寻址。

具体在7.2.3节讲解。

7.复用器复用器包括数据复用器(MUX)和地址复用器(Address MUX)。

数据复用器主要对来自指令码和数据存储器的数据进行选择,然后进入ALU参加运算:地址复用器主要对来自指令码(直接寻址时)和间接寻址时的地址进行选择(FSR),然后用作数据存储器RAM的地址。

8.堆栈堆栈(Stack)用于保护程序的断点地址。

程序执行过程中产生中断或调用子程序时,在进入中断服务程序或子程序之前,要保存主程序断点处的地址,在中断服务程序或子程序执行完后,再将断点地址恢复到PC中,使原程序流程能得以继续执行。

FSR文件选择寄存器INDF间接寻址寄存器位于RAM最顶端、地址码为00H,是一个空寄存器,它只有地址编码,不存在一个真正的(物理上)的寄存器,它用来与FSR(通用寄存器选择寄存器)配合,实现间接寻址。

PIC单片机原理及应用(第三章)

PIC单片机原理及应用(第三章)

3.3.1 通用寄存器
F877 单 片 机 的 通 用 寄 存 器 GPR ( General Purpose Registers),可由用户自行支配存放 随机数据。 通用寄存器区域: 通用寄存器数量: 地 址 区 域 : F0H~FFH 、 170H~l7FH 和 1F0H~1FFH,都可以索引(或映射)到体0的16 个RAM单元。 这样安排是为了便于中断服务程序的设计和 数据处理,就可以在程序设计中能够有效突破 体的限制而定义通用的变量函数。
RP1、RP0 = 0
RP1、RP0 = 0
0
1
选中体0
选中体1
RP1、RP0 = 1
RP1、RP0 = 1
0
1
选中体2
选中体3
Bit7/IRP:RAM数据存储器体选位,仅用于间 接寻址。 0:选择数据存储器低位体: 即 体 0 ( FSR 的 Bit7=0 ) 或 体 1 ( FSR 的 Bit7=1); 1: 选择数据存储器高位体: 即 体 2 ( FSR 的 Bit7=0 ) 或 体 3 ( FSR 的 Bit7=1)。
1.状态寄存器STATUS
状态寄存器的内容用来记录算术逻辑单元 ALU的运算结果状态、CPU的特殊运行状态以及 RAM数据存储器体间选择等信息。
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit 0
IRP
RP1
RP0
T0
PD
Z
DC
C
状态标志位
Bit0/C:进位/借位标志,被动参数。
0:执行加法(或减法)指令时,如果最高 位无进位(或有借位);
一般将整个程序存储器以2KB为单位进行分 页(PAGE),如图3-1所示F877单片机,8KB程 序存储器共分作4页,分别称为“页0”、“页 l” 、 “ 页 2” 和 “ 页 3” 。 程 序 计 数 器 高 8 位 PCLATH的Bit4~Bit3位构成程序存储器分页的 选择位,对应的地址空间如下:

第二章 PIC单片机存储器PPTA

第二章  PIC单片机存储器PPTA

第二章PIC 单片机存储器PIC16F877 存储器分为:程序存储器(1FFFH ~0H )数据存储器(512B )堆栈(8*13b )EEPROM (252B )四个存储器物理地址空间相互间是独立的FLASH 程序存储器8Kx14b 控制单元ALUWPC堆栈8x13位数据存储器512BEEPROM256BI/O单元程序存储器数据总线14位数据存储器地址总线9位数据存储器数据总线8位程序存储器地址13位CPU四个存储器物理地址空间相互独立EEPROM 地址同SRAM地址不相连12341.PIC程序存储器PIC16F877程序存储器采用FLASH,其容量为8K*14bit,因为CALL和GOTO指令仅提供11位有效地址,所以采用页结构将8K*14bit分为4页,每页为2K*14bit (“0页”= 07FFH~0000H、“1页”= 0FFFH~0800H、“2页”= 17FFH~1000H、“3页”= 1FFFH~1800H),采用直接或间接两种方式对存储器进行访问。

直接寻址在PIC 16F877的35条指令中,CALL和GOTO为直接跳转指令,这两条指令的共同特点是指令中有11位表示跳转的目地址,可访问的范围为一页,即在2K*14b范围内。

由于访问8K * 14bit存储空间需13位地址,而CALL和GOTO指令仅提供了11位,因此13位地址中的高两位由PCLATH寄存器中的D4和D3位提供,即PCLATH寄存器中的D4和D3位的状态确定了当前所访问程序存储器中的“页基址”,它类似8086 CPU中的“段基址”。

执行CALL和GOTO指令前必须对PCLATH寄存器中的D4和D3位进行设置-----即执行“页基址”设置。

A10 A0PCLATH D4 D3;KKK KKKK KKKK 0 0页0:0000H ~07FFH0 1页l :0800H ~0FFFH 1 0页2:1000H ~17FFH1 1页3:1800H ~1FFFH CALL 100 KKK KKKK KKKK GOTO 101 KKK KKKK KKKK当执行跳转指令GOTO 或调用子程序指令CALL 时,由于指令直接提供PC 的低11位地址,因此在执行GOTO 或CALL 指令前,必须首先对PCLATH 中的D3和D4位进行设置。

pic 单片机中寄存器用法

pic 单片机中寄存器用法

pic 单片机中寄存器用法单片机中寄存器的用法是非常重要的,它们在控制和管理硬件设备方面起着关键作用。

在单片机中,寄存器可以用来存储和操作数据,以及控制各个外设。

下面将介绍一些常见的单片机寄存器的用法。

通用寄存器(General-Purpose Register)是单片机中最基本的寄存器之一。

它们用于存储临时数据和运算结果。

通常情况下,单片机都会提供多个通用寄存器,可以通过一个特殊的寄存器选择器来访问它们。

状态寄存器(Status Register)用于存储一些标志位,反映单片机的运行状态。

比如,它可以记录运算结果是否为零、运算是否溢出等等。

通过读取状态寄存器的值,可以判断程序的执行情况,从而进行相应的处理。

输入输出寄存器(Input/Output Registers)用于控制单片机与外设之间的数据传输。

它们可以使单片机与外设进行输入和输出操作,实现与外界的数据交互。

通过编程设置或读取输入输出寄存器的值,可以实现对外设的控制和通信。

特殊功能寄存器(Special Function Registers)是单片机中一类特殊用途的寄存器,用于控制和配置单片机的各个功能模块。

比如,时钟控制寄存器用于设置单片机的工作频率;中断控制寄存器用于配置中断优先级和中断使能开关等等。

这些寄存器的具体功能和设置方式可能会因单片机的型号和制造商而有所不同。

在使用单片机时,了解和熟悉寄存器的用法非常重要。

通过合理地配置和操作寄存器,可以实现对硬件设备的精确控制,提高系统的性能和稳定性。

同时,编程时也要注意避免寄存器的冲突和重复使用,以免出现错误和不可预料的结果。

总而言之,单片机中寄存器的用法包括通用寄存器、状态寄存器、输入输出寄存器和特殊功能寄存器。

它们扮演着连接单片机与外设、存储临时数据以及控制和管理硬件功能的重要角色。

合理理解和运用寄存器,能够提高单片机程序的效率和可靠性。

PIC单片机原理及应用(第三章)

PIC单片机原理及应用(第三章)

Interrupt 0004h
Page 2
➢ 程序空间按页面划分, 每页2K字 (11 位);最
Page 0
07FFh
多四页。
17FFh
PCLATH<4:3> = 01
PCLATH<4:3> = 11
➢ 页面选择 PCLATH<4:3>。
0800h
1800h
➢ 复位向量地址 0000h。
Page 1
PCLATH Bit4:Bit3:
00
页0:0000H ~ 07FFH
01
页l:0800H ~ 0FFFH
10
页2:1000H ~ 17FFH
11
页3:1800H ~ 1FFFH
PIC16F877 单片机架构程序存储器
PCLATH<4:3> = 00
Reset 0000h
➢ 最大8K字(13 位) 程序 PCLATH<4:3> = 10 1000h 存储空间。
存储器扩展:SRAM6264,EPROM2764。
3.2 程序存储器构架
PIC16F877 程 序 存 储 器 具 有 13 位 宽 的 程 序 计数器PC。PC指针所产生的13位地址最大可寻 址的程序存储器空间为8K,相应的地址编码范 围为0000H~lFFFH。
PIC16F877 归 属 于 中 档 单 片 机 , 其 指 令 字 节宽度为14位,内部构架配置了8K ╳ l4位的 闪烁FLASH程序存储器。
这样安排是为了便于中断服务程序的设计和 数据处理,就可以在程序设计中能够有效突破 体的限制而定义通用的变量函数。
3.3.2 特殊功能寄存器
特殊功能寄存器 SFR(Special Function Registers)是用于专用目的的寄存器,每个寄 存器单元,甚至其中的每一位,都有它自己特 定的名称和用途。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1) 芯片的振荡模式选择。

2) 片内看门狗的启动。

3) 上电复位延时定时器PWRT的启用。

4) 低电压检测复位BOR模块的启用。

5) 代码保护。

__CONFIG_CP_OFF &_WDT_OFF &_BODEN_OFF &_PWRTE_ON &_XT_OSC &_WRT_OFF &_LVP_OFF &_CPD_OFF ;_CP_OFF 代码保护关闭_WDT_OFF 看门狗关闭_BODEN_OFF_PWRTE_ON 上电延时定时器打开_XT_OSC XT振荡模式_WRT_OFF 禁止Flash程序空间写操作_LVP_OFF 禁止低电压编程_CPD_OFF EEPROM数据读保护关闭LVP Low Voltage Program 低电压编程CP Code Protect 代码保护Date EE Read Protect EEPROM数据读保护Brown Out DetectPower Up TimerWatchdog TimerFlash Program Write外部时钟输入(HS,XT或LP OSC配置)如下图:陶瓷(ceramic)谐振器电容的选择如下表:一般情况为:11 1111 0011 0001 0x3F31 或0x3F71位13 CP:闪存程序存储器代码保护位11=代码保护关闭0=所有程序存储器代码保护位12 未定义:读此位为1 1位11 DEBUG:在线调试器模式位11=禁止在线调试器,RB6和RB7是通用I / O引脚0=在线调试功能开启,RB6和RB7专用于调试位10:9 WRT1:WRT0:闪存程序存储器的写使能位11PIC16F876A / 877A11=写保护关闭,所有的程序存储器可能被写入由EECON控制10=0000h-00FFh写保护,0100h-1FFFh写入由EECON控制01=0000h-07FFh写保护,0800h-1FFFh写入由EECON控制00=0000h-0FFFh写保护,1000h-1FFFh写入由EECON控制位8 CPD:数据EEPROM存储器代码保护位(Code Protection bit) 1 1=数据EEPROM存储器代码保护关闭0=数据EEPROM存储器代码保护功能开启位7 LVP:低电压(单电源)在线串行编程使能位(Low V oltage Program) 0 1=RB3/PGM引脚有PGM功能,低电压编程启用0=RB3是数字I / O 引脚,HV(高电压13V左右) 加到MCLR必须用于编程位6 BOREN:欠压复位使能位(低电压检测复位)(Brown-out Reset(Detect)) 0 1=低电压检测复位BOR(BOD)模块启用0=低电压检测复位BOR(BOD)模块关闭位5:4 未定义:读此两位均为1 11位3 PWRTEN:上电定时器使能位(上电复位延时定时器)(Power-up Timer) 0 1=上电定时器关闭0=上电定时器开启位2 WDT:看门狗定时器使能位0晶体振荡器电容的选择1=看门狗开启如右图:0=看门狗关闭位1:0 Fosc1:Fosc0:振荡器选择位0111=RC振荡器10=晶体振荡器HS模式。

参考振荡频率范围:>2 MHz01=晶体振荡器XT模式。

参考振荡频率范围:100 kHz ~ 4 MHz00=晶体振荡器LP模式。

参考振荡频率范围:<200 kHzOPTION_REG寄存器:位7 RBPU:PORTB输入引脚内部弱上拉使能控制位1=所有PORTB的内部弱上拉被禁止0=设定为输入状态的引脚内部弱上拉被使能位6 INTEDG:选择RB0/INT引脚的中断沿1=RB0/INT 上升沿中断0=RB0/INT 下降沿中断位5 T0CS:选择TMR0的计数时钟源1=外部脉冲沿跳变计数0=内部指令周期计数位4 T0SE:选择计数的外部脉冲沿1=T0CKI脉冲上升沿计数0=T0CKI脉冲下降沿计数位3 PSA:预分频器指派1=预分频器分配给看门狗定时器WDT,此时TMR0的计数预分频为1:10=预分频器分配给TMR0位2:0 PS2:PS0:设定预分频器的分频系数如下表所示分频设定TMR0分频比WDT分频比000 1:2 1:1001 1:4 1:2010 1:8 1:4011 1:16 1:8100 1:32 1:16101 1:64 1:32110 1:128 1:64111 1:256 1:128T1CON寄存器:位7:6 没有定义,读此两位的结果为0位5:4 T1CKPS1:T1CKPS0:TMR1预分频设置11=预分频系数1:810=预分频系数1:401=预分频系数1:200=预分频系数1:1位3 T1OSCEN:TMR1内部振荡器控制位1=打开内部振荡器,反相放大器工作,需外接晶体产生振荡时钟0=关闭内部振荡电路位2 T1SYNC:TMR1同步/异步计数控制位1=异步计数模式0=同步计数模式位1 TMR1CS:选择TMR1的计数时钟源1=T1CKI引脚上的上升沿计数0=内部指令周期计数(Fosc/4)位0 TMR1ON:TMR1计数允许/禁止控制位1=TMR1可以计数0=TMR1计数暂停T2CON寄存器:位7 没有定义,读此位的结果为0位6:3 TOUTPS3:TOUTPS0:TMR2计数溢出后分频设置0000=后分频系数1:10001=后分频系数1:2……1111=后分频系数1:16位2 TMR2ON:TMR2计数允许/禁止控制位1=TMR2可以计数0=TMR2计数暂停位1:0 T2CKPS1:T2CKPS0:TMR2预分频设置00= 1:1预分频01= 1:4预分频1x= 1:16预分频CCPxCON寄存器:位7:6 没有定义,读此两位的结果为0位5:4 CCPxX:CCPxY:TMR1预分频设置捕捉模式:未用比较模式:未用PWM模式:PWM模式占空比控制字为10位,最低2位即放在CCPxX:CCPxY中,高8位数据放入专门的一个寄存器CCPRxL位3:0 CCPxM2:CCPxM0:CCP模块工作模式选择位0000 =关闭所有模式,CCPx模块处于复位状态0100 =捕捉模式,每一个上升沿捕捉一次0101 =捕捉模式,每一个下降沿捕捉一次0110 =捕捉模式,每4个上升沿捕捉一次0111 =捕捉模式,每16个上升沿捕捉一次1000 =比较模式,预置CCPx引脚输出为0,比较一致时CCPx引脚输出为11001 =比较模式,预置CCPx引脚输出为1,比较一致时CCPx引脚输出为01010 =比较模式,当比较一致时CCPxIF=1产生软中断,CCPx引脚没有变化1011 =比较模式,当比较一致时CCPxIF=1且触发特殊事件11xx =PWM模式INTCON寄存器:位7 GIE:全局中断使能控制位1=允许中断,但各中断还有独立的使能控制位0=禁止所有的中断,不管各自的中断是否允许位6 PEIE:外围功能模块中断允许控制位1=允许外围功能模块中断0=禁止所有外围功能模块中断位5 TMR0IE(T0IE):TMR0中断使能控制位1=允许TMR0中断0=禁止TMR0中断位4 INTE:RB0/INT引脚沿跳变中断允许控制位1=允许RB0/INT引脚中断0=禁止RB0/INT引脚中断位3 RBIE:PORTB引脚状态变化中断使能控制位1=允许PORTB状态变化中断0=禁止PORTB状态变化中断位2 TMR0IF(T0IF):TMR0中断标志位1=TMR0计数溢出发生中断,必须用软件将其清除0=TMR0没有溢出中断位1 INTF:RB0/INT引脚沿跳变中断标志1=RB0/INT引脚发生中断,必须用软件将其清除0=没有发生RB0/INT引脚中断位0 RBIF:PROTB引脚状态变化中断标志位1=PORTB引脚出现状态变化中断,必须用软件将其清除0=PORTB引脚没有发生状态变化中断STATUS寄存器:PIE1寄存器:PIR1寄存器:PIE2寄存器:PIR2寄存器:SSPSTAT寄存器:位7 SMP:SPI模式下数据输入采样点控制(sample采样)SPI主模式(Serial Peripheral interface 串行外围设备接口)1=输出时间的中点对输入数据采样0=输出时间结束时对输入数据采样SPI从模式此位必须保持为0位6 CKE:SPI模式下时钟沿选择,与CKE位一起实现SPI时钟极性的4中模式CKP=0 (clock edge 时钟沿)0=数据在时钟的上升沿时发送1=数据在时钟的下降沿时发送CKP=10=数据在时钟的下降沿时发送1=数据在时钟的上升沿时发送位5 D/A:数据/地址控制位,只适用于I2C模式0=表明接收或发送的是地址码1=表明接收或发送的是普通数据位4 P:停止位指示,只适用于I2C模式。

当SSP模块没有启用时,此位为0 1=表明刚才检测到一个停止位(芯片复位后此位为0)0=没有检测到停止位位3 S:起始位指示,只适用于I2C模式。

当SSP模块没有启用时,此位为0 1=表明刚才检测到一个起始位(芯片复位后此位为0)0=没有检测到起始位位2 R/W:读/写命令指令,只适用于I2C模式。

在I2C通信时如果寻址地址匹配,该位就留有读或写的标志。

其有效期限到出现下一个起始位/停止位/无应答信号为止0=此次I2C通信为写操作1=此次I2C通信为读操作,与BF位配合可以判断主器件有/无应答位输出位1 UA:地址更新标志,只适用于I2C通信时的10位寻址模式0=无需地址更新1=表明SSPADD寄存器需要更新地址位0 BF:数据缓冲器满标志接收时(SPI和I2C)0=接收没有完成,SSPBUF寄存器为空1=接收已经完成,SSPBUF寄存器满发送时(只适用于I2C)0=发送完成,SSPBUF寄存器为空1=正在发送过程中,SSPBUF寄存器满SSPCON(SSPCON1)寄存器:位7 WCOL:发送数据写入时的冲突标志0=写入时没有冲突发生1=当SSPBUF正在发送数据时程序又对其进行数据写入而发送冲突,此位被置位后必须有软件将其清0位6 SSPOV:接收数据溢出标志位SPI模式0=数据接收没有溢出1=当SSPBUF寄存器中所接收的数据还没有被读走时,内部的移位寄存器SSPSR内又有新的数据就绪,此时SSPSR内的数据将被丢弃,SSPBUF不会被更新。

SPI模式下接收数据溢出只可能发生在从模式下。

如果在从模式下只发送数据,发送完毕后应用程序也必须读一次SSPBUF以免发生溢出标志。

在主模式下得一次接收(或发送)过程都必须通过写SSPBUF才能启动,故一般不会出现接收溢出,除非你在接收数据到来后故意不去读SSPBUF寄存器。

相关文档
最新文档