第六章PIC单片机定时读数.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章PIC单片机定时读数.ppt

第6章 定时器/计数器 定时器/计数器是大部分单片机都内置的一个重要功能模块,定时器/计数器的正常工作一般由时序脉冲来驱动(触发),表现为计数累计功能。 定时/计数器:工作方式;触发方式;累计方式。 PIC单片机的只有递增的累积方式。 二种不同的应用场合: 由单片机内部时序脉冲触发 ----定时 从单片机I/O(RA4—T0CKI)引脚上,检测外部输入的触发脉冲信号(规则或不规则) ----计数 PIC16F877单片机配置3个定时器/计数器模块: CCP:输入捕捉、输出比较和PWM脉冲宽度调制功能 低频时基振荡器 :32768Hz 三者的共同点: 8.1 定时器/计数器TMR0 8.1 定时器/计数器TMR0 8.1 定时器/计数器TMR0 8.1 定时器/计数器TMR0 8.1 定时器/计数器TMR0 8.1 定时器/计数器TMR0 主要用于设置定时/计数器TMR0、前后分频器、外INT中断以及RB端口的弱上拉功能等各种控制位。(复位时所有位的状态为 1) 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引脚弱上拉禁止。 主要用于中断控制方式的设置。 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 定时器最长的定时时间:t=256x(256-0)x1uS=65536uS 在使用TMR0做定时器时,可以用查询和中断的方法获得定时时间。 1、查询方法: 在将初值写入TMR0时,立即查询T0IF是否等于1,如果T0IF=1,表示时间已到,若T0IF=0,表示时间未到,继续等候。 2、中断方法: 设置中断服务子程序,每当TMR0溢出时,进入中断服务程序,得到一个准确的定时时间。 TMR0的定时程序举例: 用TMR0产生10毫秒的定时时间,在RC0输出一个10毫秒的方波。 一、用查询方法编写程序,步骤如下: (1) 求出10毫秒定时时间对应的TRM0的计数初值: X= 28 – t/(TxP) =256-10000/(1x64) =256-156 =100(64H) (2) 根据题目的要求,对OPTION_REG配置 T0CS=0; //时钟源为内部指令周期 PSA=0; //分频器分配给TMR0 PS2=1; //TMR0的分频比为1:64 PS1=

文档评论(0)

我的文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档