配色: 字号:
项目五 定时-计数器综合应用
2013-01-08 | 阅:  转:  |  分享 
  
陳慶逸、林柏辰編著---文魁資訊ARM嵌入式系统项目五定时-计数器综合应用工作模块12生产线自动打包系统如图所示,在一个工业
生产线上,零件通过一个装有光电传感器的传输带传送,每当零件通过传感器时,传感器向单片机发出一个脉冲信号,每通过
100个零件,单片机发出控制信号,生产线自动将100个零件打包。生产线自动打包
控制电路用LED模拟打包机;用按钮模拟零件通过一个装有光电传感器的传输带传送,产生一个脉冲信号,向单片机发出一个计数脉冲信号。
生产线自动打包控制程序利用T0的方式2、计数功能,每计满100个外部脉冲,从P1.0输出一个低电平脉冲信号(宽度约为0.1ms
)。生产线自动打包系统程序定时/计数器结构内设2个16位可编程定时/计数器T0,T1具有计数方式和定时方式4种工作模式
定时器/计数器的原理16位的定时器/计数器实质上是一个加1计数器,可实现定时和计数两种功能,其功能由软件控制和切换。在定时器
/计数器开始工作之前,CPU必须将一些命令(称为控制字)写入定时器/计数器(即初始化)。初始化工作方式控制字写入定时器方式寄存
器(TMOD);工作状态控制字(或相关位)写入定时器控制寄存器(TCON);赋定时/计数初值给TH0(TH1)和TL0(TL1
)。定时功能每过一个机器周期,计数器加1,直至计满溢出,即对机器周期进行计数。定时器的定时时间与系统的时钟频率有关。因一
个机器周期等于12个时钟周期,所以计数频率应为系统时钟频率的十二分之一(即机器周期)。如晶振频率为12MHz,则机器周期为1?s
。通过改变定时器的定时初值,并适当选择定时器的长度(8位、13位或16位),可以调整定时时间。计数功能通过外部计数输入引脚
T0(P3.4)和T1(P3.5)对外部脉冲信号计数,外部脉冲信号的下降沿触发计数。计数器在每个机器周期的S5P2期间采样引脚输
入电平,若一个机器周期S5P2期间采样值为1,下一个机器周期S5P2期间采样值为0,则计数器加1,再下一个机器周期S3P1期间,新
的计数值装入计数器。检测一个由1至0的跳变需要两个机器周期,外部信号的最高计数频率为时钟频率的二十四分之一。若晶振频率为12MH
z,则最高计数频率为0.5MHz。为了确保给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期
以上。定时器/计数器的应用定时与延时控制方面产生定时中断信号,以设计出各种不同频率的信号源;产生定时扫描信号,对键盘进行
扫描以获得控制信号,对显示器进行扫描以不间断地显示数据。测量外部脉冲方面对外部脉冲信号进行计数可测量脉冲信号的宽度、周期,也可
实现自动计数。监控系统工作方面对系统进行定时扫描,当系统工作异常时,使系统自动复位,重新启动以恢复正常工作。定时器方式寄存器
TMODTMOD的作用是设置T0、T1的工作方式。TMOD的格式:GATE:门控位。GATE=0:软件启动定时器
用指令使TCON中的TR1(TR0)置1即可启动定时器1(定时器0)。GATE=1:软件和硬件共同启动定时器用
指令使TCON中的TR1(TR0)置1时,只有外部中断INT0(INT1)引脚输入高电平时,才能启动定时器1(定时器0)。定时
器方式寄存器TMODC/T:功能选择位。C/T=0时,以定时器方式工作。C/T=1时,以计数器方式工作。M1、M0:方式选
择位。定时器工作方
式选择位定义定时器控制寄存器TCONTCON的作用是控制定时器的启动与停止,并保存T0、T1的溢出和中断标志。TCON
的格式:TF1(TCON.7):定时器1溢出标志位。当定时器1计满溢出时,由硬件自动使TF1置1,并申请中断
。对该标志位有两种处理方法:以中断方式工作,即TF1置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1清0;以
查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1置1后必须用软件使TF1清0。定时器控制寄存器TCONTR1(T
CON.6):定时器1启停控制位。GATE=0时,用软件使TR1置1即启动定时器1,若用软件使TR1清0则停止定时器1。GAT
E=1时,用软件使TR1置1的同时外部中断INT1的引脚输入高电平才能启动定时器1。TF0(TCON.5):定时器0溢出标志位。
其功能同TF1。TR0(TCON.4):定时器0启停控制位。
其功能同TR1。定时器/计数器0方式0逻辑结构方式0构成一个13位
定时/计数器,定时器1的结构和操作与定时器0完全相同。当门控位GATE=0时,或门输出始终为1,与门被打开,由TR0控制定时器/
计数器的启动和停止。定时器/计数器0方式0工作过程软件使TR0置1,接通控制开关,启动定时器0,13位加1计数器在定时初值或计
数初值的基础上进行加1计数;软件使TR0清0,关断控制开关,停止定时器0,加1计数器停止计数;计数溢出时,13位加1计数器为0
,TF0由硬件自动置1,并申请中断,同时13位加1计数器继续从0开始计数。方式0应用示例在P1.0输出周期为1ms(频率1k
Hz)的方波,采用定时器1方式0设计程序,晶振频率为12MHz。使P1.0每隔500?s取反一次即可得到周期1ms的方波,T1
的定时时间为T=500?s;用定时器1方式0,TMOD高4位中的M1M0应取00;设定为软件启动定时器,GATE取0;用定时
功能,C/T取0。TMOD为00H。晶振频率为12MHz,T机=12/fosc=12/(12?106)=1?s
定时初值X=213-T/T机=213-500/1=8192-500=7692
=1E0CH=1111000001100B因TL1的高3位未用,对计算出的定时初值X要进行修正,即在低5位前
插入3个0,修正后的定时初值为:X=1111000000001100B=F00CH工作模块13霓虹灯模
拟控制系统由P1口输出控制8个LED(模拟霓虹灯)的亮灭。要求实现:首先从灯D1开始,8个灯循环点亮一次,即D1点亮1s后熄
灭,D2点亮1s后熄灭,……,D8点亮1s后熄灭;然后间隔闪烁3次,即D1、D3、D5、D7点亮1s后熄灭,D2、D
4、D6、D8点亮1s后熄灭,重复3次;循环上述过程(晶振频率为6MHz)。霓虹灯模拟控制电路电路同项目二LED循环点
亮一样霓虹灯模拟控制程序编程分析(整个控制过程分2个阶段):循环点亮阶段输出控制码8次,初始控制码为7FH(D1点亮),下
一个控制码可由上一个控制码循环右移得到(即8个控制码分别为:7FH、0BFH、0DFH、0EFH、0F7H、0FBH、0FDH、0
FEH);间隔闪烁阶段输出控制码6次,初始控制码为0AAH,下一个控制码可由上一个控制码取反得到(即分别为:0AAH、55H交
替3次);任意2个控制码输出间隔为1s,因此可以利用T0(或T1)定时功能,每1s后,根据阶段标志判断输出下一个控制码。霓虹灯
模拟控制程序采用T1定时器在方式1(晶振频率为6MHz)下,T1定时最大为131.072ms,为了定时1s,采用硬件定时加软件
计数方式,即设置T1定时100ms,软件计数10次。分配如下:i10:定时的软件计数器,初值为10;F0:控制阶段标志位,
F0=0表示循环点亮阶段,F0=1表示间隔闪烁阶段;i8、i6:分别为2个控制阶段输出控制码的计数器,初值为8和6;m
od1、mod2:分别为2个阶段的控制码寄存器初值为0x01和0xAA。霓虹灯模拟控制程序定时器/计数器方式1定时器/计数
器是一个由TH0中的8位和TL0中的8位组成的16位加1计数器。方式1与方式0基本相似,最大的区别是方式1的加1计数器位数是16
位。定时器/计数器0方式1逻辑结构如图所示定时器/计数器方式2定时器/计数器是一个能自动装入初值的8位加1计数器,TH0中的
8位用于存放定时初值或计数初值,TL0中的8位用于加1计数器。加1计数器溢出后,硬件使TF0自动置1,同时自动将TH0中存放的
定时初值或计数初值再装入TL0,继续计数。定时器/计数器0方式2逻辑结构如图所示T0方式3逻辑结构T0分为两个独立的8位加1
计数器TH0和TL0。TL0既可用于定时,也能用于计数;TH0只能用于定时。T0方式3的结构特点加1计数器TL0占用了T0
除TH0外的全部资源,原T0的控制位和信号引脚的控制功能与方式0、方式1相同;与方式2相比,只是不能自动将定时初值或计数初值再装
入TL0,而必须用程序来完成;加1计数器TH0只能用于简单的内部定时功能,它占用了原T1的控制位TR1和TF1,同时占用了T1中
断源。T0方式3下T1的逻辑结构T0方式3下T1的结构特点T1不能工作在方式3下,因为在T0工作在方式3下时,T1的控制
位TR1、TF1和中断源被T0占用;T1可工作在方式0、方式1、方式2下,但其输出直接送入串行口;设置好T1的工作方式,T1就
自动开始计数;若要停止计数,可将T1设为方式3;T1通常用作串行口波特率发生器,以方式2工作会使程序简单一些。技能训练5-
10-59秒数码显示利用LED动态扫描显示和定时器的定时功能,完成0-59秒数码显示(定时器)设计与实现。0-59秒数码
显示电路设计0-59秒数码显示程序设计0-59秒数码显示电路设计LED动态扫描显示电路的2个共阴极数码管的a~g七个位
段控制引脚经过74LS245芯片,分别接在单片机的P0口的P1.0~P1.6七个引脚,数码管的公共端分别接在P1口的P1.0和P1
.1引脚上。工作模块14电子钟设计与实现进一步掌握定时器的使用和编程方法进一步掌握中断处理程序的编程方法利用CPU
的定时器和6LED动态扫描显示电路,设计一个电子时钟。格式如下:XXXXXX由左向右分别为:时、分、秒电子钟电路设
计电子钟程序设计工作方式选择位,设置为方式2;计数/定时方式选择位,设置为定时器工作方式。定时器每50ms中断一次,在中断服
务程序中,对中断次数进行计数,50ms计数20次就是1秒。然后再对秒计数得到分和小时值,并送入显示缓冲区。单片机P0口输出字段
码,P1口输出位码。电子钟控制C语言程序单片机应用技术项目教程(C语言版)计算机科学系项目五定时-计数器综合应用
教学目的了解定时器/计数器的结构与工作原理。掌握定时器/计数器的四种工作方式的特点及应用。掌握定时器/计数器的初始化。掌
握定时器/计数器与中断综合应用的设计方法。自动重装初值8位计数器方式210定时器0:分为两个独立的8位计数器定时
器1:无中断的计数器方式31116位计数器方式10113位计数器方式000功能描述工作方式
M1M0振荡器12分频TL1(8位)TH1(8位)C/T=0C/T=1T1(P3.5)(c)T1方式2串行口重新装入振荡器12分频TH1(8位)TL1(8位)C/T=0C/T=1T1(P3.5)(b)T1方式1串行口振荡器12分频TH1(8位)TL1(5位)C/T=0C/T=1T1(P3.5)(a)T1方式0串行口
献花(0)
+1
(本文系草戒指工作...首藏)