输入捕捉

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MC68HC08系列的单片机可以提供多个独立的定时器,例如, MC68HC908GP32芯片有两个定时器,分别叫定时器1、定时器2,它们的 工作原理是一致的,下面的说明均以定时器1为例。 HC08系列的单片机定时器的核心是一个处于不断加1的16位计数寄 存器,简称为计数器。该计数器的时钟频率由外部晶振时钟(也可以是 由锁相环模块得到的总线时钟)经过预定的分频因子分频得到。 在定时器内部有个控制和状态寄存器,通过对它某些位的设置,就 可以确定多少时间计数器加1,即定时间隔。 在定时器内部有个预置寄存器,当计数器的值等于预置寄存器的值 时,称为计数器溢出,当计数器溢出时,计数器的值被赋0,同时将计 数器溢出标志等状态置于控制和状态寄存器中。
第十章 定时接口模块
主要内容


计数器/定时器的基本工作原理
定时器模块的编程基础
定时器模块的输入捕捉功能
定时器模块的输出比较功能 定时器模块的脉宽调制功能
10.1 计数器/定时器的基本工作原理
10.1.1 实现计数与定时的基本方法
(1)完全硬件方式
在过去许多仪器仪表或设备中,需要进行延时、定时或计数,经 常使用数字逻辑电路实现,即完全用硬件电路实现计数/定时功能,若 要改变计数/定时的要求,必须改变电路参数,通用性、灵活性差。微
所以,若要读取整个通道寄存器,必须先读高字节,再读低字节。
10.3 定时器模块的输入捕捉功能
(2)T1通道0状态和控制寄存器(T1 Channel0 Status and Control Register,T1SC0)
数据位
定义 复位
D7
1
D6
1
D5
1
D4
1
D3
1
D2
1
D1
1
D0
1
Biblioteka Baidu
CH0F CH0IE MS0B MS0A ELS0B ELS0A TOV0 CH0MAX
是$FFF6。 (1)输入捕捉中断编程实例汇编语言程序
(2)输入捕捉中断编程实例C语言主程序
(3)输入捕捉中断编程实例C语言矢量表文件
10.3 定时器模块的输入捕捉功能
返回
10.4 定时器模块的输出比较功能
10.4.1 输出比较的基本含义
(1)与输出比较功能相关的引脚
在MC68HC908GP32的DIP-40封装形式中,第21、22脚标记是 “PTD4/T1CH0、PTD5/T1CH1”,它们是普通I/O与定时器输入捕捉的 复用引脚。作为定时器输入捕捉功能使用时,它们是定时器1的两个通 道输入捕捉引脚,同时也可定义它们为输出比较引脚。
D7 :通道标志位,用来标志定时器1通道0发生了输入捕捉。 D6 :通道中断允许位,用来设置是否允许发生输入捕捉中断。 D5~ D4:模式选择位。每一个定时器都可以工作在输入捕捉,输出比较和 PWM输出模式,这两位用来选择这些工作模式。 D3~D2 :跳变沿/ 输出电平选择位。 D1 :溢出翻转控制标志位,定时器通道用做输入 捕捉时,此位无用。 D0 :通道最大占空比设置位 ,定时器通道用作
10.2 定时器模块的编程基础
(2)T1计数寄存器(T1 Counter Register,T1CNTH、 T1CNTL)
它是一个16位寄存器,分为高8位、低8位,地址分别为$0021、 $0022,它的作用是:当定时器的状态和控制寄存器的TSTOP位=0时, 即允许计数时,每一计数周期,其值自动加1,当它达到设定值(在16位 预置寄存器中)时,TOF=1,同时计数寄存器自动清0。
为了理解定时器的基本功能,这里给出利用定时器溢出编写定时 的例子,并把“时分秒”发送到PC机,以便比较。同时,在PC机方, 用一个十分简明的程序,接收MCU发送来“时分秒”并显示,同时还
可以将PC机的当前时间发送到MCU,作为时间基准值。通过这个例
子,理解定时器溢出中断的编程方法和系统时间的产生方法。
10.2 定时器模块的编程基础
(1)T1状态和控制寄存器(Timer 1 Status and Control Register,T1SC)
D5 — TSTOP位:定时器计数停止位(Timer Count Stop Bit)。 该位用来控制计数器的计数停止和恢复。对该位写入1,定时器的计数 寄存器将保持当前的值,停止计数。 D4 — TRST位:定时器复位位(Timer Reset Bit )。向该位写入1将 清除定时器的计数寄存器和设定的分频因子,该位通常为0。 D3 — 未定义。 D2~D0 — PS2~PS0位:定时器分频因子选择位(Timer Prescaler Select Bits)。这三位定义定时器的分频因子,记为:p,定 义如下: PS2、PS1、PS0=000 001 010 011 100 101 110 111 p =1 2 4 8 16 32 64 未定义 其中设fBUS为总线频率,则定时器的计数寄存器的计数频率为: 计数频率=fBUS/p。复位时,PS2、PS1、PS0=000,即p=1,此时, 计数频率=fBUS。分频因子的选取应根据总线频率fBUS、预置寄存器 的设定值、希望的溢出时间的综合考虑确定。
10.1 计数器/定时器的基本工作原理
MC68HC908GP32 MCU定时器基本功能及主要特征:
HC08系列的单片机定时器具有输入捕捉、输出比较、PWM、脉冲输 出、DMA直接存储器访问等功能。
以下简要给出MC68HC908GP32的定时器的主要特征:
① 每个定时器具有两路独立的输入捕捉/输出比较通道。
在 MC68HC908GP32 的 DIP-40 封 装 形 式 中 , 第 21 、 22 脚 标 记 是 “PTD4/T1CH0、PTD5/T1CH1”,它们是普通I/O与定时器输入捕捉的复 用引脚。作为定时器输入捕捉功能使用时,它们是定时器1的两个通道 输入捕捉引脚。
(2)输入捕捉的基本含义
输入捕捉功能是用来监测外部的事件和输入信号。当外部事件发 生或信号发生变化时,在指定的输入捕捉引脚上发生一个指定的沿跳 变(可以指定该跳变是上升沿还是下降沿)。定时器捕捉到特定的沿 跳变后,把计数寄存器当前的值锁存到通道寄存器。
预设输出电平
10.4 定时器模块的输出比较功能
(3)T1通道1状态和控制寄存器(Timer1 Channel 1 Status and Control Register,T1SC1)
数据位 定义 复位 D7 D6 D5 1 D4 MS1A 1 D3 D2 D1 D0 CH1F CH1IE 1 1 ELS1B ELS1A TOV1 CH1MAX 1 1 1 1
② 带缓冲(Buffered)和不带缓冲(Unbuffered)的脉宽调制波。 ③ 七种可编程选择的分频因子。 ④ 预置计数。 ⑤ 计数器停止或清除。 ⑥ 16位输入捕捉和通道寄存器。 ⑦ 定时器溢出中断、每路通道的输入捕捉/输出比较中断。
10.1 计数器/定时器的基本工作原理
定时器功能框图
10.3 定时器模块的输入捕捉功能
返回
10.2 定时器模块的编程基础
10.2.1 定时器模块的3个基本寄存器
(1)T1状态和控制寄存器(Timer 1 Status and Control Register,T1SC)
T1SC的地址:$0020,定义为:
数据位 定义 复位 D7 0 D6 0 D5 1 D4 0 D3 0 D2 PS2 0 D1 PS1 0 D0 PS0 0 TOF TOIE TSTOP TRST -
10.3 定时器模块的输入捕捉功能
10.3.2 输入捕捉的寄存器
(1)T1通道寄存器 (T1 Channel Register)
定时器1有两个通道,相对应的通道寄存器有:①定时器1通道0寄存 器T1CH0(16位寄存器),地址是:$0026、$0027;②定时器1通道1寄存器 T1CH1 (16位寄存器) ,地址是:$0029、$002A。 通道寄存器在该通道用作输入捕捉时的作用是:当指定的沿跳变发 生 (即定时系统捕捉到沿跳变) 时,锁存计数寄存器的值。 通道寄存器是一个16位的寄存器,分为高字节和低字节,在读取的 时候要分别读取。为了防止两次读取之间该寄存器的内容发生变化而产 生虚假的输入捕捉计数值,系统会在读取高字节时锁存低字节的内容, 这时即使又发生特定的沿跳变,通道寄存器的内容也不会改变。
(3)T1预置寄存器(T1 Counter Modulo Register, T1MODH、T1MODL)
它是一个16位寄存器,分为高8位、低8位,地址分别为$0023、 $0024,它的作用是:设定计数寄存器的计数溢出值。复位时,预置寄存 器的初值为$FFFF。
10.2 定时器模块的编程基础
10.2.2 定时溢出中断编程汇编程序例
含义同T1通道0状态和控制寄存器 ,只是没有D5(MS1B)位,因 为MS0B是选择CH0缓冲方式的,CH1没有缓冲方式,所以没有 MS1B位。
10.4 定时器模块的输出比较功能
10.3.3 输入捕捉中断编程实例
下面程序验证定时器1通道0(引脚21)输入捕捉中断的产生,当中
断发生时取反指示灯PTA1。定时器1通道0的输入捕捉中断向量的地址
1) MCU方程序
2) PC方VB程序
10.2 定时器模块的编程基础
10.2.3
定时溢出中断编程C语言程序例
1)定时溢出中断编程C语言程序例主程序
2)定时溢出中断编程C语言程序例矢量表文件
10.3 定时器模块的输入捕捉功能
返回
10.3 定时器模块的输入捕捉功能
10.3.1 输入捕捉的基本含义
(1)与输入捕捉功能相关的引脚
(2)输出比较的含义
输出比较的功能是用程序的方法在规定的时刻输出需要的电平, 实现对外部电路的控制。
10.4 定时器模块的输出比较功能
10.4.2 输出比较的寄存器
(1)T1通道寄存器 (T1 Channel Register)
通道寄存器在该通道用作输出比较时的作用是:存放要与计数寄存 器进行比较的数值。 完整的设置输出比较功能应该包括对寄存器两个字节的写入。通道 寄存器和标志位在复位时被清零,在初始化输出比较功能时应该小心谨 慎,一般采用以下的步骤: ①写入通道寄存器的高位字节,禁止输出比较功能; ②取状态寄存器,清除OCF位; ③写入通道寄存器低位字节,使输出比较功能工作。
D7 — TOF位:定时器溢出标志位 。当16位计数寄存器T1CNT中 的值达到设定值(在16位预置寄存器T1MOD中)时,TOF=1,同时 T1CNT=$0000。 D6 — TOIE位:定时器溢出中断允许位(Timer Overflow Interrupt Enable Bit)。该位用来设置是否允许定时器溢出中断。 TOIE=1,允许定时器溢出中断,TOIE=0,不允许定时器溢出中断。
型电子计算机出现以后,特别是单片微型计算机的发展与普及,这种
完全硬件方式实现定时与计数已较少使用。
10.1 计数器/定时器的基本工作原理
(2)完全软件方式
在计算机中,通过编程,利用计算机执行指令的时间实现定时,
称为完全软件方式,简称软件方式。在这种方式中,一般是根据所需
要的时间常数来设计一个延时子程序,延时子程序中包含一定的指令, 设计者要对这些指令的执行时间进行严密的计算或者精确的测试,以 便确定延时时间是否符合要求。
10.1 计数器/定时器的基本工作原理
(3)可编程计数器/定时器
利用专门的可编程计数器/定时器实现计数与定时,克服了完全硬 件方式与完全软件方式的缺点,设定之后与CPU并行地工作。应用可编 程计数器/定时器,在简单的软件控制下,可以产生准确的时间延时。
这种方法的主要思想是根据需要的定时时间,用指令对计数器/定时器
输入捕捉时,此位无用。
10.4 定时器模块的输出比较功能
通道控制寄存器控制位
MS0B:MS0A X0 X1 00 00 00 01 01 01 1X 1X 1X ELS0B:ELS0A 00 00 01 10 11 01 10 11 01 10 11 工作模式 跳变沿/输出电平 初始输出高电平 初始输出低电平 上升沿捕捉 输入捕捉 下降沿捕捉 跳变沿捕捉 输出电平翻转 输出比较 输出高电平 输出低电平 带缓冲的输出比较 或带缓冲的PWM输 出 输出电平翻转 输出高电平 输出低电平
设置定时常数,并用指令启动计数器/定时器。这种方法最突出的优点 是计数时不占用CPU的时间,并且,如果利用计数器/定时器产生中断 信号就可以建立多作业的环境,所以,可大大提高CPU的利用率。
10.1 计数器/定时器的基本工作原理
10.1.2 MC68HC908GP32 MCU的定时接口的基本 原理的概述
相关文档
最新文档