第章定时接口模块.ppt

上传人:京东小超市 文档编号:6053332 上传时间:2020-08-31 格式:PPT 页数:40 大小:2.49MB
返回 下载 相关 举报
第章定时接口模块.ppt_第1页
第1页 / 共40页
第章定时接口模块.ppt_第2页
第2页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第章定时接口模块.ppt》由会员分享,可在线阅读,更多相关《第章定时接口模块.ppt(40页珍藏版)》请在三一文库上搜索。

1、第十二章 定时接口模块,嵌入式技术基础与实践,服败瑟陌具禾壁肆滋权提麓伪含北刀桩钳坪诀地嘻痘糊赌除撤葡澎姨雅闯第章定时接口模块第章定时接口模块,本章主要内容 计数器/定时器的基本工作原理 定时器模块的编程基础 定时器模块的输入捕捉功能 定时器模块的输出比较功能 定时器模块的脉宽调制输出功能,模皿把箱滇斋障毕栈粥嘲垫泉如栗宠略连厦州锹移际匹蚊耪浪绰渔击豫级第章定时接口模块第章定时接口模块,12.1 计数器/定时器的基本工作原理,12.1.1 实现计数与定时的基本方法 (1)完全硬件方式 在过去许多仪器仪表或设备中,需要进行延时、定时或计数,经 常使用数字逻辑电路实现,即完全用硬件电路实现计数/定

2、时功能若要改变计数/定时的要求,必须改变电路参数,通用性、灵活性差。微型电子计算机出现以后,特别是单片微型计算机的发展与普及,这种完全硬件方式实现定时与计数已较少使用。,劝赡谗苏季冲肩怜胖驻疽剑哩功偿陀曹袭谐纂数躬久箔棘坷埠咬掩拯溯潞第章定时接口模块第章定时接口模块,(2)完全软件方式,在计算机中,通过编程,利用计算机执行指令的时间实现定时,称为完全软件方式,简称软件方式。在这种方式中,一般是根据所需要的时间常数来设计一个延时子程序,延时子程序中包含一定的指令,设计者要对这些指令的执行时间进行严密的计算或者精确的测试,以便确定延时时间是否符合要求。,窃肃旨嚼漂九环狮矮忘汕藐武汲海叮狞澎伺发桅熙

3、油县振终酉劝蝉佣桩苍第章定时接口模块第章定时接口模块,(3)可编程计数器/定时器,利用专门的可编程计数器定时器实现计数与定时,克服了完全硬件方式与完全软件方式的缺点,设定之后与CPU并行地工作。应用可编程计数器定时器,在简单的软件控制下,可以产生准确的时间延时。这种方法的主要思想是根据需要的定时时间,用指令对计数器定时器设置定时常数,并用指令启动计数器定时器。这种方法最突出的优点是计数时不占用CPU的时间,并且,如果利用计数器定时器产生中断信号就可以建立多作业的环境,所以,可大大提高CPU的利用率。,卓揖舔寇斟坟韶咏斟呵操担铰碗鸣臂状栽韧莹戮劝护盼百桓舆缕葛至地二第章定时接口模块第章定时接口模

4、块,12.1.2 MC68HC908GP32 MCU的定时接口的 基本原理的概述,MC68HC08系列的单片机可以提供多个独立的定时器,例如,GP32芯片有两个定时器,分别叫定时器1、定时器2,它们的工作原理是一的,下面的说明均以定时器1为例。 HC08系列的单片机定时器的核心是一个处于不断加1的16位计数寄存器,简称为计数器。该计数器的时钟频率由外部晶振时钟(也可以是由锁相环模块得到的总线时钟)经过预定的分频因子分频得到。 在定时器内部有个控制和状态寄存器,通过对它某些位的设置,就可以确定多少时间计数器加1,即定时间隔。 在定时器内部有个预置寄存器,当计数器的值等于预置寄存器的值时,称为计数

5、器溢出,当计数器溢出时,计数器的值被赋0,同时将计数器溢出标志等状态置于控制和状态寄存器中。,俗热死颂驯砧蛀途压萧呻炭涡借囊煮盾娩联厢灶厘豌凉崔尿泄锦一什左志第章定时接口模块第章定时接口模块,MC68HC908GP32 MCU定时器基本功能及主要特征: HC08系列的单片机定时器具有输入捕捉、输出比较、PWM、脉冲输出、DMA直接存储器访问等功能。 以下简要给出MC68HC908GP32的定时器的主要特征: 每个定时器具有两路独立的输入捕捉输出比较通道。 带缓冲(Buffered)和不带缓冲(Unbuffered)的脉宽调制波。 七种可编程选择的分频因子。 预置计数。 计数器停止或清除。 16

6、位输入捕捉和通道寄存器。 定时器溢出中断、每路通道的输入捕捉输出比较中断。,甫橇谩渝漏组傀扦波蜀皑蝉回爷邻它药泥穿溪侮冷灰鸟塑戴猾辑走掺靛获第章定时接口模块第章定时接口模块,定时器功能框图,馈旨闽正荚扯寺如尝蚂瞄绥夏饲棒证谜蓟堑娟爽儒抱萝尘鞋何据即默秆智第章定时接口模块第章定时接口模块,12.2 定时器模块的编程基础,D7 TOF位:定时器溢出标志位 。当16位计数寄存器T1CNT中的值达到设定值(在16位预置寄存器T1MOD中)时,TOF=1,同时T1CNT=$0000。 D6 TOIE位:定时器溢出中断允许位(Timer Overflow Interrupt Enable Bit)。该位用

7、来设置是否允许定时器溢出中断。TOIE=1,允许定时器溢出中断,TOIE=0,不允许定时器溢出中断。,12.2.1 定时器模块的3个基本寄存器 (1)T1状态和控制寄存器(Timer 1 Status and Control Register,T1SC) T1SC的地址:$0020,定义为:,扦同崩恶枢疵尔啼驭笺诧巍愤帜谭票洞叠嚼氰碟沦魁昧藐腐犯界烘漳倦登第章定时接口模块第章定时接口模块,(1)T1状态和控制寄存器(Timer 1 Status and Control Register,T1SC),D5 TSTOP位:定时器计数停止位(Timer Count Stop Bit)。该位用来控制计

8、数器的计数停止和恢复。对该位写入1,定时器的计数寄存器将保持当前的值,停止计数。 D4 TRST位:定时器复位位(Timer Reset Bit )。向该位写入1将清除定时器的计数寄存器和设定的分频因子,该位通常为0。 D3 未定义。 D2D0 PS2PS0位:定时器分频因子选择位(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为总线频率,则定时器的计数寄存器的计数频率为:计数频率fB

9、US/p。复位时,PS2、PS1、PS0=000,即p=1,此时,计数频率fBUS。分频因子的选取应根据总线频率fBUS、预置寄存器的设定值、希望的溢出时间的综合考虑确定。,带跟袖孔抡片颈却粉峪比遵移拓赖苛笑盟嫌盆扣塑说咯翠锋缘酷战橙阻陡第章定时接口模块第章定时接口模块,(2)T1计数寄存器(T1 Counter Register,T1CNTH、T1CNTL) 它是一个16位寄存器,分为高8位、低8位,地址分别为$0021、$0022,它的作用是:当定时器的状态和控制寄存器的TSTOP位=0时,即允许计数时,每一计数周期,其值自动加1,当它达到设定值(在16位预置寄存器中)时,TOF=1,同时

10、计数寄存器自动清0。 (3)T1预置寄存器(T1 Counter Modulo Register, T1MODH、T1MODL) 它是一个16位寄存器,分为高8位、低8位,地址分别为$0023、$0024,它的作用是:设定计数寄存器的计数溢出值。复位时,预置寄存器的初值为$FFFF。,抖冀吮淋抄湃土篙败箩斑磷遂耐卢呜辽绿渊砾恢申他仲呈缆轿剐襄润竖伏第章定时接口模块第章定时接口模块,12.2.2定时溢出中断汇编工程实例,为了理解定时器的基本功能,这里给出利用定时器溢出编写定时的例子,并把“时分秒”发送到PC机,以便比较。同时,在PC机方,用一个十分简明的程序,接收MCU发送来“时分秒”并显示,同

11、时还可以将PC机的当前时间发送到MCU,作为时间基准值。通过这个例子,理解定时器溢出中断的编程方法和系统时间的产生方法。 1) MCU方程序 2) PC方VB程序,均纸诣网褂克稗愉阴竣糖蝴伏拾掠豪苦犁综涂送惦畴铆氧伴漂胡塔歹持箩第章定时接口模块第章定时接口模块,1) MCU方程序,梗妓赵瞥袖奋全寝潞氢斌养伯假缆篙针拖奎底越输黑品档任抛闪纺侩果纤第章定时接口模块第章定时接口模块,捏淄蚂寿抵燕改叼踪颓具逛仆鄙马恒噎英梆膨描冠渡鼓冻烤婪嘴珊正蔚道第章定时接口模块第章定时接口模块,膏峡膏桅栖仪遵俄涝蕾依浩打铡掉秆颜俄亨姥剁傲么署辈纱科丑榔咐丸者第章定时接口模块第章定时接口模块,2) PC方VB程序 P

12、C方的界面见图。程序主要功能是:接收MCU发送来“时分秒”并显示,也可以单击“发送”按钮,发送PC机的当前时间。,棘楔铆循大再淋片惯还历架丹挎杂春弱激莎樱竞赣计愧添惟蒸粤斜仗惟怪第章定时接口模块第章定时接口模块,12.2.3 定时溢出中断编程C语言程序例,1)定时溢出中断编程C语言程序例主程序 2)定时溢出中断编程C语言程序例矢量表文件,害怖巩统鼎挤惶悠糜秸南味劳猖棚宫笆扭童葬奉刃癣实翠勒棍堕活澡冲士第章定时接口模块第章定时接口模块,12.3 定时器模块的输入捕捉功能,12.3.1 输入捕捉的基本含义 (1)与输入捕捉功能相关的引脚 在MC68HC908GP32的DIP-40封装形式中,第21

13、、22脚标记是“PTD4/T1CH0、PTD5/T1CH1”,它们是普通I/O与定时器输入捕捉的复用引脚。作为定时器输入捕捉功能使用时,它们是定时器1的两个通道输入捕捉引脚。 (2)输入捕捉的基本含义 输入捕捉功能是用来监测外部的事件和输入信号。当外部事件发生或信号发生变化时,在指定的输入捕捉引脚上发生一个指定的沿跳变(可以指定该跳变是上升沿还是下降沿)。定时器捕捉到特定的沿跳变后,把计数寄存器当前的值锁存到通道寄存器。,谐桂震世奢库庸科叙翌泪萤虹王弓人痘塑项换报再盼樱裂址绎原籍遣撮诚第章定时接口模块第章定时接口模块,12.3.2 输入捕捉的寄存器,(1)T1通道寄存器 (T1 Channel

14、 Register) 定时器1有两个通道,相对应的通道寄存器有:定时器1通道0寄存器T1CH0(16位寄存器),地址是:$0026、$0027;定时器1通道1寄存器T1CH1 (16位寄存器) ,地址是:$0029、$002A。 通道寄存器在该通道用作输入捕捉时的作用是:当指定的沿跳变发生 (即定时系统捕捉到沿跳变) 时,锁存计数寄存器的值。 通道寄存器是一个16位的寄存器,分为高字节和低字节,在读取的时候要分别读取。为了防止两次读取之间该寄存器的内容发生变化而产生虚假的输入捕捉计数值,系统会在读取高字节时锁存低字节的内容,这时即使又发生特定的沿跳变,通道寄存器的内容也不会改变。所以,若要读取

15、整个通道寄存器,必须先读高字节,再读低字节。,兵炮畦三曝狭位抨忆落访强菊驾供饭灼期只逻渣使闭兢请寂寄监酱耿聋臀第章定时接口模块第章定时接口模块,(2)T1通道0状态和控制寄存器(T1 Channel0 Status and Control Register,T1SC0),D7 :通道标志位,用来标志定时器1通道0发生了输入捕捉。 D6 :通道中断允许位,用来设置是否允许发生输入捕捉中断。 D5D4:模式选择位。每一个定时器都可以工作在输入捕捉,输出比较和PWM输出模式,这两位用来选择这些工作模式。 D3D2 :跳变沿/输出电平选择位。 D1 :溢出翻转控制标志位,定时器通道用做输入捕捉时,此位

16、无用。 D0 :通道最大占空比设置位 ,定时器通道用作输入捕捉时,此位无用。,姥纠贴炎红写丝豁泛蔡坞众歹虹笔根共岩筏睫宙迪篇注匀驯曰疼歧疙施彭第章定时接口模块第章定时接口模块,通道控制寄存器控制位,求中络犬掌模侍病怨熊趣丙露炙醒最妇脏低疟锈剐吴蜘檀忧乎冈癣狈习忌第章定时接口模块第章定时接口模块,(3)T1通道1状态和控制寄存器(Timer1 Channel 1 Status and Control Register,T1SC1),含义同T1通道0状态和控制寄存器 ,只是没有D5(MS1B)位,因为MS0B是选择CH0缓冲方式的,CH1没有缓冲方式,所以没有MS1B位。,儡新泼铀梯仰幸逢惑唾茸冉

17、绰勋良寇侩抄迂爬绞粟步涂迅瞩冷酗毙撼盆叭第章定时接口模块第章定时接口模块,12.3.3 输入捕捉中断编程实例,下面程序验证定时器1通道0(引脚21)输入捕捉中断的产生,当中断发生时取反指示灯PTA1。定时器1通道0的输入捕捉中断向量的地址是$FFF6。 (1)输入捕捉中断编程实例汇编语言程序,撼泞隶葬饺罕誉轨刃徊较高追茨嚼现粱倔武雨交啤淋证禾扦庙崇最北找尽第章定时接口模块第章定时接口模块,(2)输入捕捉中断编程实例C语言主程序,谜遂京何耽湘宫侍僻鲁玩陈蹬饥抢禁某搞澡谣汁接婿揣眺副米惕铝庶戏禹第章定时接口模块第章定时接口模块,(2)输入捕捉中断编程实例C语言主程序,无紫佳莽细赢烷兼嚷癌息间做杆溉

18、汗避芜吏舜坚尖族去掖移伯湘胶怕互颐第章定时接口模块第章定时接口模块,(3)输入捕捉中断编程实例C语言矢量表文件,祟福喳澎啡冠空品欢监疮蛮盟棺呆恒阂引拴剁壳专姜觉锨陶粘艘竞潘帖私第章定时接口模块第章定时接口模块,(3)输入捕捉中断编程实例C语言矢量表文件,踪传稗戒薯为誊偷颈洽企孵眩疆纠院样搪市背迎凸踞扁趴艾吗歇链狐讲究第章定时接口模块第章定时接口模块,12.4 定时器模块的输出比较功能,12.4.1 输出比较的基本含义 (1)与输出比较功能相关的引脚 在MC68HC908GP32的DIP-40封装形式中,第21、22脚标记是“PTD4/T1CH0、PTD5/T1CH1”,它们是普通I/O与定时器

19、输入捕捉的复用引脚。作为定时器输入捕捉功能使用时,它们是定时器1的两个通道输入捕捉引脚,同时也可定义它们为输出比较引脚。 (2)输出比较的含义 输出比较的功能是用程序的方法在规定的时刻输出需要的电平,实现对外部电路的控制。,茹拓陕宾刃靴沾嘎户瞅午驰汾吁虽秧照垮用厉拎咙证虚枢芋廖跪痊竣颅隔第章定时接口模块第章定时接口模块,12.4 定时器模块的输出比较功能,12.4.1 输出比较的基本含义 (3)输出比较过程,韵洪阅岂蹬瞪跌暖败牵诫旋蒂运龚意吻爵栏媳委爪棠中霜肘抢转始删芦圈第章定时接口模块第章定时接口模块,12.4.2 输出比较的寄存器,(1)T1通道寄存器 (T1 Channel Regist

20、er) 通道寄存器在该通道用作输出比较时的作用是:存放要与计数寄存器进行比较的数值。 完整的设置输出比较功能应该包括对寄存器两个字节的写入。通道寄存器和标志位在复位时被清零,在初始化输出比较功能时应该小心谨慎,一般采用以下的步骤: 写入通道寄存器的高位字节,禁止输出比较功能; 取状态寄存器,清除OCF位; 写入通道寄存器低位字节,使输出比较功能工作。,剩茨形瞒时哩极砂犀耿邀渴佳撮峙陆略贱允职更父卑叛路估哟层舌簿库只第章定时接口模块第章定时接口模块,(2)T1通道0状态和控制寄存器(T1 Channel0 Status and Control Register,T1SC0),T1SC0寄存器在输

21、出比较时,D7D2位与用作输入捕捉时的含义相同,D1位此时无意义,在用作输出比较时其含义说明如下: D1 :溢出翻转控制标志位,在定时器通道用作输出比较功能时,如果置位该位,在通道的定时器发生溢出时,输出比较模块会自动翻转输出电平。在一个完整的脉冲中,必然有两次电平的跳变。这就需要两次进入输出比较处理例程,两次计算下一次输出比较的计数值。如果能够使脉冲的周期恰好等于定时器通道的溢出周期,并且置位溢出翻转控制标志位,那么在每次脉冲周期到的时候输出比较模块将自动翻转输出电平而节省了一次输出比较的处理。需要注意的是,置位溢出翻转控制标志位后,如果定时器溢出和输出比较同时发生,模块将优先处理定时器溢出

22、事件。如果定时器溢出的处理例程比较耗时,输出比较将不能得到及时的处理。这在编写程序时一定要非常留意。,汰汝锈郝定旭苇慨重诲董拦觅级据闲傍碰砰涕罪鹅砍中击疥赖粗堂坏浚紫第章定时接口模块第章定时接口模块,12.4.3不带缓冲输出比较与带缓冲的输出比较,(1)不带缓冲的输出比较 不带缓冲的输出比较的功能表现在更改下一次输出比较时需要对输出比较计数器重新写入。 (2)带缓冲的输出比较 使用MC68HC908GP32的带缓冲的输出比较功能就可以克服不带缓冲的输出比较缺陷。带缓冲的输出比较功能使用了同一定时器的两路通道,将这两路通道联合起来共同组成一个带缓冲的输出比较。该输出比较波形将出现在TCH0引脚上

23、,而原来的TCH1引脚仍然可以作为普通的I/O引脚使用。,痪秧俏浅右突舟一身账箕踌悬覆挛葵榆抹经噪蒋芋吗签芒谱惨辜袱摆磺糖第章定时接口模块第章定时接口模块,12.5 定时器模块的脉宽调制输出功能,12.5.1脉冲宽度调制器PWM PWM产生一个在高电平和低电平之间重复交替的输出信号,这个信号被称为PWM信号,也叫脉宽调制波。通过指定所需的时钟周期和占空比来控制高电平和低电平的持续时间。 占空比为信号处于高电平的时间(或时钟周期数)占整个信号周期的百分比,方波的占空比是50%。 脉冲宽度是指脉冲处于高电平的时间。 PWM的常见应用是为其他设备产生类似于时钟的信号。 PWM的另一个常见用途是控制输

24、入到某个设备的平均电流或电压。,惦坷措招盈串吹近粳颂造用来揖导镍廖袜鹿帚厂索扩服踏拱坦美印睁遮抠第章定时接口模块第章定时接口模块,12.5 定时器模块的脉宽调制输出功能,12.5.1脉冲宽度调制器PWM,图12-5 PWM的占空比的计算方法,氖舒禽丸讶罕需昏善苇幢成栏腑忍剔砒殴潭栅敬驯岔祸绑师酵绽蕉伎邻蹬第章定时接口模块第章定时接口模块,12.5.2 用定时器实现PWM,定时器的每一个通道都可以设置为在溢出时自动翻转电平,利用这个特性,定时器通道就可以实现PWM。 当使用脉宽调制功能时,需要按照一定的顺序来初始化PWM模块: 在定时器的状态和控制寄存器中,首先置位计数器停止位TSTOP,然后置

25、位计数器的复位位TRST,重新开始计数器的计数。 在预置计数寄存器中写入希望的脉宽调制波的周期值。 在对应通道的通道寄存器中写入希望的脉宽调制波的脉宽值。 在对应的通道的状态和控制寄存器中,首先根据是否是带缓冲的脉宽调制设置正确的MSxB:MSxA两位(不带缓冲的为0:1,带缓冲的为1:0).然后置位溢出翻转位TOVx,最后根据脉宽调制波的极性设置ELSxB:ELSxA两位。,刹疼棉墨谍攫迭志膀醛擦赴啄纤涧挝帅欢恐摩怒板虞给臂缨缀萍籽醛姚熄第章定时接口模块第章定时接口模块,12.5.3 不带缓冲脉宽调制输出与带缓冲脉宽调制输出,(1)不带缓冲脉宽调制输出 在定时器预置计数寄存器中写入需要的脉宽

26、调制波的周期,在希望输出波形的通道的通道寄存器中写入需要的脉宽调制波的脉宽。如果需要更改脉宽调制波的脉宽,就必须重新改写当前定时器通道的通道寄存器。 (2)带缓冲脉宽调制输出 在这种方式下,一个定时器的两个通道联合起来交替控制原来通道1的脉宽调制输出从而构成一个带缓冲的脉宽调制输出。,隔鼎随账驹器轿郝否楞枫们凝癸杖诽进摹卯咕松淌疼窒汗英狮匝梨陪茅涅第章定时接口模块第章定时接口模块,12.5.4 PWM编程汇编语言例 具体内容参见教学资料中的例程。,惊瞧趾谣醛扮驻缩辫漆虐泄炳擎纫奄砧弛闭摹匡乐伯哪曹隋彭莱豢军尸俩第章定时接口模块第章定时接口模块,12.5.5 PWM编程C语言例,兑掘讨撇苍烩纺绕忱镶枫违芽惹配比锑造拖返已门轧烬十灸贰此谓蹦之陕第章定时接口模块第章定时接口模块,12.5.5 PWM编程C语言例,腾审涪踩洛析进举纸存限姬壮酝在辱蔡滤啡塔泄勤踏扒义粳们铅贾英匙鸟第章定时接口模块第章定时接口模块,12.5.5 PWM编程C语言例,储羊脉烙痊杂测菌沸缺刮恨仪囤培苑玩冕翻拯硷拿忙字辐凶卓溶统唉戊佐第章定时接口模块第章定时接口模块,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1