PIC16C64单片机外部功能特点
一、捕抓/比较/脉宽调制模块 PICI6C64 的 RC2/C CPI 脚具有捕抓/比较/PWM 输出的功能,对应于内部的捕抓/比较/PWM 模块,简称 CCPI 模块。该模块内有一 16 位寄存器。(CCPR1)可由软件设置而作为捕抓寄存器,比较寄存器或 PWM 输出寄存器。由图工中的 CCP1 控制寄存器(CCP1CON)来选择模式。 (一)捕抓功能 RC2/CCP 1 脚作为捕抓功能时,应置为输入态。
当有脉冲事件在 CCP1 脚上发生时,CCPR1 即捕抓记录下此时 TMR1(计数器 1)的值,井产生捕抓发生中断请求。例程 1. BSF TRISC,2 ;CCP1 脚置为输入 MOVLW,XXXX0101;选 CCP1 为捕抓模式, ?每个上升沿有效 MOVWF CCP1CON;设置 CCPP1 控制寄存器捕抓功能可用以计算外部脉冲宽度(频率)等。 0000:CCP1 模式功能关闭(复位).0100:捕抓模式,CCP1 脚每个下降沿捕抓.0101:捕抓模式,CCP1 脚每个上升沿捕抓。
0110:捕抓模式,CCP1 脚每 4 个上升沿捕抓。0111:捕抓模式,CCP1 脚每 16 个上升沿捕抓。1000:比较模式,符合时 CCP1 脚置 1。1001:比较模式,符合时 CCP1 脚清 0。1010:比较模式,符合时 CCCP1 脚不变, 产生中断请求。1011:比较模式:触发特殊事件发生。11XX:PWM 输出模式(二)比较功能 RC2/CCP1 脚此时应置为输出态。在比较模式下,CCPR1 寄存器不停地和 TMR1 寄存器比较,当两者的值相等(匹配)时,可使 RC2/CCP1 脚出现下列情况。
(1)拉为高电平(2)拉为低电平(3)保持不变。同时还会产生比较中断请求。例程 2. BCF TRISC,2 ;CCP1 脚置为输出 MOVLW XXXX1000;选 CCP1 为比较模式 ?匹配时 CCP1 脚置高电平 MOVWF CCP1CON ;设置 OCPI 控制寄存器比较功能常用来定时驱动某种部件。
(三)PWM 功能此时 RC2/CCP1 脚应置为输出态,在 PWM 模式下,用户将 8 位频宽比(Duty Cycle)置人 CCPR1 的低 8 位字节 CCPR1L,而高 8 位 CCPR1H 作为 PWM 寄存器。PWM 产生的过程如图之所示: PWM 周期=[(PR2)十 1」×4Tosc ×(TMR2 预分频值) PWM Dwty Cycle=DC1×Tosc×(TMR2 预分频值) 其中 DC1=CCPR1L 和 CCPR1CON(5:4)组成的 10 位值,所以 PWM 输出分辨率最高可达 10 位。
PWM 频率和分辨率的关系(20 MHz 振荡下、见表 1. 表 1 PWM 频率和分辨率关系表二、同步串行口(SSP) PICI6C64 具有同步串行口简称 SSP,可用于与其他外围装置或微控制器通讯。外围装置可以是 EEPROM、移位寄存器、显示驱动器,A/D 转换器等。SSP 模块可以由用户选择两种工作方式(1)串行外部接口(SPI)(2)I2C 接口
(一)串行外部按口(SPI)方式 SPI 方式可让 8 位数据同步传输和接收,用 3 个脚完成其通讯功能:(1)串行数据出(SDO)(2)串行数据人(SDI)
(3)串行时钟(SCK) PICI6C64 有一个 SSP 拉制寄存器 SSP CON,用户可用软件对其进行设置,选择自己需要的工作方式。另一个 SSP 状态寄存器 SSPSTAT 则记录了 SSP 的各种工作状态。 通过设置 SSPCON(5:0)位,就可使 SPI 工作在下列方式。
(1)主控方式(SCK 作时钟输出)(2)从属方式(SCK 作时钟输入)
(3)时钟极性(SCK 上升/下降沿传输数据) 图 3 给出两个微处理器相连的典型例子. 主控器(微处理器 1)通过 SCK 信号来开始传输数据。数据通过移位寄存器在各自的时钟边沿传送,并在下个边沿被锁存。两个处理器以相同的时钟极性进行串行通讯,两个处理器即可同时发送与接收数据。
(二)I2C 方式 SSP 在 I2C 模式下可完成所有从控器(Slave)的功能,并提供硬件支持主控制(Master)的软件实现。两个脚用于数据传输:RC3/SCK/SCL(时钟)和 RC4/ SD1/SDA(数据),PICI6C64 的 I2C 串行通讯支持 7 位和 10 位寻址,可完成标准和快速方式的数据传输。用户通过设置 SSPCON(3:O)可使 I2C 操作工作在如下几种方式:(1)I2C 从控器模式(7 位地址)。(2)I2C 从控器模式(10 位地址)。
(3)I2C 从控器模式(7 位地址)并支持主控模式,
(4)I2C 从控器模式(10 位地址)并支持主控模式。
(5)I2C 主控器模式,从控方式不用。 SSPSTAT 寄存器指出数据传输的状态,包括 STABT 和 STOP 位的检测,区别地址和数据,判别下一字节是否 10 位的地址及数据传送的方向。 关于 I2C 技术详述,读者可参阅 PHILIPS 公司的有关资料。