第4章 外部接口功能及应用
TMR1的特性
4)用于累加计数的信号源可选择内部系统时钟、 外部触发信号或自带时基振荡器信号。 5)既可工作于定时模式,又可工作于计数模式, 还可以用作实时时钟RTC。 6)具有溢出中断功能
TMR1的控制寄存器T1CON
位
功能
7
RD16
6
-
5
T1CKPS1
4
T1CKPS1
3
T1OSCEN
2
T1SYNC
1、CCP模块基本功能
(2)输出比较:
主要是依据标准时序信号的计数比较 从引脚上输出不同宽度的矩形正脉冲、 负脉冲和延时启动信号等。
1、CCP模块基本功能
(3)PWM功能: 能够从引脚上输出脉冲宽度随时可调 的PWM信号,来实现直流电机的变频 调速、D/A转换和步进电机的步进控 制等。
2、CCP模块寄存器介绍
利用定时器TMER1产生50HZ的方波,晶振4MHZ
思路: 方波周期T=1/50=20ms; 定时10ms取反一次; 1:8前分频; 指令周期=1us; 计数初值=65536-t/(1us x p)=FB1E;
TMR1使用实例:
# include <pic18.h> Main() { TRISC=0; 设置输出 PORTC=0; TICON=0X30; 前分频1:8 ,2次8为读写 TMR1H=0XFB; TMR1L=0X1E; TMR1IE=0; TMR1ON=1; 启动
TMR1的控制寄存器T1CON
位
功能
7
RD16
6
-
5
T1CKPS1
4
T1CKPS1
3
T1OSCEN
2
T1SYNC
1
TMR1CS
0
TMR1ON
T1CKPS1-T1CKPS1:前分频选择位 11: 1:8 10: 1:4 01: 1:2 00: 1:1 TMR1ON:TMR1使能控制位
TMR1使用实例:
TMR1使用实例:
while(1) { if(TMR1IF==1) { TMR1IF=0; if(PORTC==0) PORTC=1; else PORTC=0; 取反 TMR1H=0XFB; TMR1L=0X1E;
}
} }
TMR1使用实例:
利用TMER1对外部脉冲计数,晶振4MHZ
思路: 采用中断方式; 初始值设置为: TMR1H=0XFF TMR1L=0XFF
RB应用实例
Main() { PORTB=0; 清空输出锁存器并初始化 LATB=0; 清空输出锁存器 TRISB=0XCF; 设置输出和输入 PORTB=0X55; 输出数据 while(1) { } ; 其他代码 }
3、RC端口
也是一个8位双向I/O端口,除了具有普 通数字I/O功能外,绝大部分的片内外围 模块都复用到该端口上来。
1
TMR1CS
0
TMR1ON
TMR1CS:时钟源选择位 1 选择外部时钟源,计数 0 选择内部时钟源,定时 TMR1ON:TMR1使能控制位
TMR1的控制寄存器T1CON
位
功能
7
RD16
6
-
5
T1CKPS1
4
T1CKPS1
3
T1OSCEN
2
T1SYNC
1
TMR1CS
0
TMR1ON
RD16:16位读写使能位 (TMR1H :TMR1L) 1 :16读写 0 :2个8位读写 T1SYNC:外部输入时钟同步控制 1:不同步 0: 同步
5、RE端口
仅PIC18F448/458芯片有
只有3条引脚的双向I/O端口,除了基本 的数字I/O口应用外,RE端口可以被复用 为并行从动端口的控制线和模数转换器的 模拟信号输入端
4.2 定时器/计数器
微芯公司生产的PIC系列各款产品片内全 部配备有定时/计数器模块。
PIC18CXXX、PIC18FXXX都配置了4个 定时/计数器模块。
CCP1CON寄存器
CCP1M3:CCP1M0
1000 1001 1001 1001
模式选择位
比较模式,CCP1置高 比较模式,CCP1置低 比较模式,CCP1电平不变 比较模式,CCPIF置1 ,计数器复位到0, 并启动一次A/D转换。 11XX PWM模式
2、RB端口
8位双向I/O 除用作基本I/O之外,每个引脚内部 都有一个可编程弱上拉电路。
若想让弱上拉电路发挥作用,则必须在 端口引脚方向设定为输入的情况下,将 /RBPU设置为0
2、RB端口
高4位RB7-4引脚具有电平变化中断 功能,RB2-0具有外部中断输入功能
RB5-7可用作串行编程的控制时钟和 数据引脚,RB2和RB3可用作CAN发 送/接收引脚
它在性能上有效突破了TMR0的局限。通过 TMR1模块,可以很容易构成实时时钟、变频 输出,以及实现信号捕捉、比较和频率检测等 功能。
TMR1的功能
1)作为通用的定时/计数器
2)利用内置的低频时基振荡器,可实现实时时 钟RTC(Real Time Clock)输出等功能, 并可在系统休眠模式下照常实现计数工作。
3)能够与CCP模块配合使用,实现输入信号 边沿的捕捉和输出信号的比较功能,在频 率检测和脉冲宽度测量中得到广泛应用。
PIC单片机原理及应用
TMR1的特性
1)核心是一个16位宽的循环累加寄存器对 TMR1H:TMR1L,采用时钟信号上升沿触发 的计数方式。
2)可用软件方式直接读出或写入TMR1寄存器对 的内容。 3)带有一个可编程预分频器,可形成4种分频比 (1:1,1:2,1:4,1:8),可达到定时/计数的扩 展效果。
RA对应3个寄存器
PORTA 端口A数据寄存器
LATA 端口A输出数据锁存器 TRISA 端口A方向控制寄存器
1 输入 0 输出
RA应用实例
Main() { PORTA=0; 清空输出锁存器并初始化 LATA=0; 清空输出锁存器 TRISA=0XCF; 设置输出和输入 PORTA=0X55; 输出数据 while(1) { } ; 其他代码 }
PIC单片机原理及应用
TMR0具有以下特性:
是一个8/16位宽的定时/计数器 定时寄存器的当前计数值可读/写 附带一个8位可编程的预分频器 可以选择内部或外部时钟源 具有溢出中断功能 可选择外部时钟信号的触发方式
PIC单片机原理及应用
2、定时/计数器TMR1
在中、高档PIC系列单片机中,还专门设计了 一个具有较高性能的16位定时/计数器TMR1模 块。
不管CCP模块工作于哪一种模式,都需要用到 CCPR1H:CCPR1L寄存器对。因此,任何时 候只能有一种模式。
CCP1CON寄存器
DC1B1:DC1B0 PWM占空因数寄存器 的低2位,高8位通过CCPR1L设置。
引入低2位补充数据,其目的是为了提高PWM 脉宽调制的精度。 该2位定义仅适用于PWM方式,在捕捉和比较 方式中未使用。
一个是CCP模块16位可读/写寄存器 CCPR1H:CCPR1L主要用于存放数据参 考信息或计数比较信息;
另一个是CCP模块控制寄存器CCP1CON, 用于设置CCP模块的工作方式。
PIC单片机原理及应用
2、CCP模块寄存器介绍
寄存器CCPR1H:CCPR1L,它在3种工作方 式下承担的功能:16位捕捉寄存器/16位比较 寄存器,也能通过主/从寄存器的设置定义占 空比可变的脉宽调制信号输出。
4.2 定时器/计数器
如果计数脉冲源自于单片机的内部指 令周期,就称之为定时器; 若计数脉冲来自于外部引脚的输入信 号,则被称之为计数器。
各定时/计数器模块功能及配置情况
定时/计数 器模块
TMR0 TMR1 TMR2 TMR3
位宽
8或16 16 8 16
分频器
预分频器 预分频器
预/后分频
CCP1CON寄存器
CCP1M3:CCP1M0
0000 0001 0010 0011 0100 0101 0110 0111
模式选择位
关闭功能 保留 比较模式 ,若匹配输出翻转 捕获模式,CAN总线数据接收触发 捕获模式,下降沿触发 捕获模式,上升沿触发 捕获模式,四个上升沿触发 捕获模式,十六个上升沿触发
PIC单片机原理及应用
第4章 外部接口功能及应用
4.1 4.2 4.3 4.4 4.5 I/O端口 定时器/计数器 输入捕捉/输出比较 / PWM模块 A/D转换器模块 串行端口模块2Βιβλιοθήκη 13-8-74.1 I/O端口
单片机的性能优劣在很大程度上取决于I/O端 口功能的强弱。任何单片机都带有用于信号 输入和输出的引脚,差别只是多少而已。
TMR1使用实例:
# include <pic18.h> Unsigned char count=0;
Display( unsigned char count);
Viod initial(); Interrupt HI_ISR();
TMR1使用实例:
Void initial() { TRISC=1; PORTC=0; TICON=0X0A; TMR1H=0XFF; TMR1L=0XFF; TMR1IE=1; TMR1IF=0; 设置输入,对外部引脚计数 前分频1:1 ,2次8位读写, 计数方式。
对端口进行读写操作的含义
端口寄存器读出的是相应I/O引脚的电平状态 写端口寄存器则是写入其输出数据锁存器 所有写I/O端口的操作都是“读入-修改-写入” 操作
1、RA端口
是一个6位宽双向I/O端口
在基本I/O功能的基础上,复合了A/D转换 器的模拟量输入功能、 A/D转换器所需的外 接参考电压输入功能、TMR0的外部时钟输 入功能、MSSP的从动选择信号输入功能等