- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 定时器/计数器;由单片机内部时序脉冲触发
----定时
从单片机I/O(RA4—T0CKI)引脚上,检测外部输入的触发脉冲信号(规则或不规则)
----计数;PIC16F877单片机配置3个定时器/计数器模块:;三者的共同点:;8.1 定时器/计数器TMR0 ;8.1 定时器/计数器TMR0 ;8.1 定时器/计数器TMR0 ;8.1 定时器/计数器TMR0 ;8.1 定时器/计数器TMR0 ;8.1 定时器/计数器TMR0 ;1、一个8位宽由时钟信号边沿触发(上升沿或下降沿)的循环累加计数寄存器;
2、TMR0本身也是一个在文件寄存器区(特殊功能寄存器),有特定的地址;寄存器的当前读数值可读、写;
3、具有一个软件可编程的8位预分频器;
4、既可工作于定时器模式,又可工作于计数器模式;
用内部触发信号,指令周期作为时钟信号源时(定时)
用外部触发信号,可定义触发上下沿(计数)
5、递增方式读数,读数器从0XFF跳变到0X00时,读数器溢出,在计数器溢出时,相应的溢出中断标志(T0IF)自动置
位,并可产生溢出中断。
6、8位定时/计数器:定时时间 预分频器;8.1.2 TMR0模块相关的寄存器 ; 主要用于设置定时/计数器TMR0、前后分频器、外INT中断以及RB端口的弱上拉功能等各种控制位。(复位时所有位的状态为 1);Bit2-Bit0/PS2-PS0:分频器分频比选择位 ;Bit3/PSA:分频器分配位,主动参数。
0: 分配给TMR0,作为TMR0的分频器;
1: 分配给WDT,作为WDT的分频器。
Bit4/T0SE:TMR0用于计数器,计数脉冲信号边沿选择位,主动参数。
0: RA4/T0CKI引脚上的下降沿触发;
1: RA4/T0CKI引脚上的上升沿触发。
Bit5/T0CS:定时/计数器TMR0时钟源选择位,主动参数。可确定TMR0工作于定时方式还是计数方式。
0: 由内部指令周期作为TMR0的触发信号,定时使用;
1: 由外部引脚T0CKI上的时钟作为TMR0的触发信号,作计数使用 。
;Bit6/INTEDG:INT中断信号触发边沿选择位,主动参数。
0: RB0/INT引脚上的下降沿触发;
1: RB0/INT引脚上的上升沿触发。
Bit7/RBPU:B端口弱上拉使能位,主动参数。
0: RB0-RB7引脚弱上拉使能;
1: RB0-RB7引脚弱上拉禁止。 ;主要用于中断控制方式的设置。;PEIE:外围功能模块中断使能控制位。
0: 禁止所有外围功能模块中断;
1: 使能外围功能模块中断。
T0IE:TMR0中断使能控制位。
0: 禁止TMR0中断;
1: 使能TMR0中断。
RBIE:PORTB引脚状态变化中断使能控制位。
0: 禁止PORTB状态变化中断;
1: 使能PORTB状态变化中断 。
;T0IF:TMR0中断标志位。
0: TMR0没有溢出中断;
1: TMR0读数溢出发生中断,必须用软件将其清除。
INTF:RB0/INT引脚沿跳变中断标志位。
0: 没有发生RB0/INT引脚中断;
1: RB0/INT引脚发生中断,必须用软件将其清除。
RBIF:PORTB引脚状态变化中断标志位。
0: PORTB没有发生状态变化中断;
1: PORTB引脚出现状态变化中断,必须用软件将其清除 。
;4、RA方向寄存器
(TRISA)4=1,T0CKI为输入方式。
;8.1.3 TMR0模块电路结构和工作原理;1. 8位计数寄存器TMR0
1)设置定时模式
T0CS=0 定时时间:初值,频率,预分频器。
2)设置计数模式
T0CS=1 计数 T0SE=0,T0SE=1。
分频器
PS2、PS1、PS0 分频比;
PSA=0,TMR0分频器;PSA=1,WDT分频器。
; [例题8-1]计数灯程序设计。自动计数,RC与8位LED相联,间隔时间为一个固定时间0.5s.
这个例子曾用软件延时做过,本例将采用TMR0定时实现。
定时可以通过两种方式实现
不采用中断(查询方式)
采用定时中断
;TMR0 定时时间的计算公式:
t= P ×(28 – X) × T X= 28 – t/(TxP)
t:设定的定时时间—uS
P:分频器的分频比--2~256
取值为2、4、8、16、32、64、128、256。
X:TMR0的计数初值--0~255
T:指令周期—uS
定时器最短的定时时间:t=2x(256-255)x1uS=2uS
定时器最长的
文档评论(0)