定时器计数器综合应用实例讲解
【例1】 编写定时器T0产生1秒的定时程序,通过P1.0口输出高、低电平均为1s的方波(假设单片机采用12MHz的晶振)。
分析如下:
12MHz的晶振,机器周期为1us,各种工作方式直接定时的最大定时时间分别为:
方式0: 2 13 =8192us=8.192ms
方式1: 2 16 =65536us=65.536ms
方式2、3: 2 8 =256us
编程思路:
任何一种方式都无法直接实现1s的定时,可以考虑采用方式1实现50ms定时中断,设置一变量对中断的次数进行计数,计数到20时即为1秒。
c语言源程序如下:
【例2】 脉冲宽度的检测:要求对外部输入的高电平脉冲持续的时间进行检测,即检测高电平脉冲宽度,将检测的脉宽以微秒为单位显示在数码管上(假设单片机的晶振频率为12MHz)。
脉宽检测系统电路如图5-8所示。
图5-8 脉冲宽度检测系统电路图
分析如下:
TMOD的GATE位为门控位,当GATE置1时,只有当对应的外部中断引脚
为1,且TRn置1时,定时器n才会启动定时(n=0或1)。利用该特点,可以检测
口脉冲高电平持续的时间,在信号的上升沿启动定时器,下降沿停止定时器。
在本实例中,采用T0的方式1定时功能对脉冲宽度进行测量,直接测量的最大值为65535,如果晶振为12MHz,则机器周期为1us,直接可检测的最大脉冲宽度为65.535ms。如果需要检测更宽的脉冲,可对定时器0溢出的次数进行计数,将溢出次数乘以65536,来计算。将外部中断设为下降沿触发,当检测到下降沿信号时,将进入外部中断处理程序,读取定时器的数值,此数值即为脉冲信号的宽度,通过数码管(关于数码管显示的知识参见8.3节)动态扫描显示检测的脉冲宽度值。
c源程序如下:
【例3】 单片机时钟:由6个数码管的动态扫描显示分别显示小时、分钟、秒,由四个按键对时间进行调节。数据调整采用移位的方式,根据移位键触发的次数去调节不同的时间对象,加1、减1键分别对时间进行加1和减1调整,清零键将时间清零。
单片机时钟系统电路如图5-9所示。
分析如下:
根据题目的功能要求,系统主要包括数码管动态扫描显示程序、按键检测调时程序、时间产生程序、系统初始化等程序模块。
➢ 时间产生的思路 :由定时器产生50毫秒定时中断,中断20次为1秒,当秒加到60时,秒清零,分钟加1,当分钟加到60分时,分钟清零,小时加1,当小时加到24时,小时清零。
➢ 按键检测调时思路 :设置时间变量setNum对移位按键的次数进行记录,默认为0,不进入调时状态,随着移位按键的触发,setNum值加1,程序根据setNum的值分别处于调节秒、分钟、小时状态,当setNum加到4时回到0。
➢ 数码管动态扫描显示思路 :将秒、分、时时间分别拆分出个位和十位数,通过查询数字显示的代码表,送至P0口,通过P2.0~P2.5动态扫描驱动对应的数码管显示。
图5-9 单片机时钟系统电路图
c源程序如下:
【例4】 单片机频率计:将外部脉冲从P3.5口输入,利用利用单片机的定时/计数器功能,计算脉冲频率并将频率值通过数码管进行显示。
频率计系统电路如图5-10所示。
分析如下:
频率是周期的倒数,即每秒钟产生的周期信号的个数。根据频率的定义,充分的利用单片机的定时/计数器资源,由定时器0实现1秒定时,定时器1则对外部脉冲个数进行计数,这样1秒钟内所计的脉冲个数即为输入信号的频率。
编程说明:
在8051单片机中有两个16位的定时/计数器,分别为T0和T1,在这里设置T0为工作方式1定时,T1为工作方式1计数,则TMOD=0x51。
计数脉冲由单片机的P3.5口输入,利用定时器0产生50毫秒定时,定时中断20次即为1秒钟,将单片机定时器1设为计数模式,由P3.5(T1)口输入外部计数脉冲,在1秒钟计数的脉冲信号数即为所测信号的频率,然后由数码管动态扫描显示对应的频率值。
图5-10 频率及系统电路图
c源程序如下:
电路识图29-定时及延时电路原理分析
一、定时及延时电路的结构特点
定时电路主要的目的是调节时间,在特定的时间点上执行工作;
延迟电路则是延缓执行时间,发出指令后的某一时间段,再执行工作。
在实际的设备中,这两个电路既可以单独使用,又可以结合使用,与不同功能的模块的电路组合,应用在不同领域当中。
1、定时电路的结构与电路分析
有些电子产品,输入执行命令后,需要在计数周期内执行若干次,此时可以通过定时电路实现这一功能,起到调节时间的目的,如定时开关,定时提醒等。
典型的定时电路如下图所示。
这是一个简易定时器,它主要由一片14位二进制串行计数/.分频集成电路IC1和供电电路等组成。IC1内部电路与外围元件R4,R5,RP1,C4组成RC振荡电路。
当振荡信号在IC1内部经14级二分频后,在IC1的3脚输出经8192次(2的13次方)分频信号,也就是说,若振荡周期为T,利用IC1的3脚输出做延时,则延时时间可达8192T,调节RP1可使T变化,从而起到了调节定时时间的目的。
开机时,电源供电经电容C3使IC1清零,随后IC1便开始计时,经过8192T时间后,IC1的3脚输出高电平脉冲信号,使VT1导通,VT2截止,此时继电器K1因失电而停止工作,其触点即起到了定时控制的作用。
电路中的S1为复位开关。若要中途停止定时,只要按动一下S1,则IC1便会复位,计数器便又重新开始计时,电阻R2为C3提供放电回路。
2、延时电路的结构与电路分析
延迟电路在电子产品中的目的是起到暂缓执行控制命令,如延迟启动,延迟关闭等。
典型延迟电路如下图所示。
这是一个延迟电路,该电路中SN74123为双单稳IC,将终端设备的键控输出信号或其它的按键或继电器的输出信号进行延迟,延迟约为5毫秒以上,它可以消除按键触电的抖动。
二、定时及延时电路的分析实例
在实际的电子产品中,定时及延时变换电路应用的十分广泛,根据不同产品的需求,其电路结构多种多样。
1、定时电路的分析实例
1)定时提示电路的实例分析
典型定时提示电路如下图所示。
这是一个定时提示电路,该电路的主题是IC1 CMOS向上计数器电路,内设振荡电路。电源启动后,即为IC1复位,计时器开始工作,经一定电源开关的计数周期(64周期)后,Q7~Q10端陆续输出高电平,当Q7~Q10都为高电平时,定时时间到,VT1导通,蜂鸣器发声,提示到时。
2)有显示功能的定时电路的实例分析
典型有显示功能的定时控制电路如下图所示。
该电路采用数码显示可使人们能直观地了解时间进程和时间余量,并可随意设定定时时间。
该电路中,IC1为555时基电路,它与外围元件组成一个振荡电路。IC2为可预置四位二进制可逆计数器74LS193,它与R2,C3构成预置数为9的减法计数器。IC3为BCD-7段锁存/译码/驱动器CD4511,它与数码管IC4组成数字显示部分。C1和R1,RP1用来决定振荡电路的翻转时间,为了使C1的充放电电路保持独立而互不影响,电路中加入了VD1,VD2。
电路中,在接通电源的瞬间,因电容C3两端的电压不能突变,故给IC2一个置数脉冲,IC2被置数为9.与此同时,C1两端的电压为零且也不能突变,故IC1的2、6脚为低电平,其3脚输出高电平,并为计数器提供驱动脉冲。IC2德尔13脚输出脉冲信号的同时输出四位BCD信号,经译码器和驱动电路IC3去驱动数码管IC4。
2、延迟电路的分析实例
1)长时间脉冲延迟电路的实例分析
典型长时间脉冲延迟电路如下图所示。
该电路采用三个晶体管,能延长D触发器的延迟时间,在电容C1上的电压到达单结晶体管T1的转移电平之前,T1仍处于截止状态。延迟时间由R1,C1的时间常数决定。当C1上的电压到达触发电平时T1导通,T2截止,CD4013B的1脚变为低电平。
2)延时熄灯电路的实例分析
典型延时熄灯电路如下如所示。
该电路中,接通按钮开关S瞬间,由于CD4541的Q,/QSEL端接高电平,使IC1德尔8脚输出高电平,VT晶体管饱和导通,继电器KS1吸合,照明供电电路处于自保持状态。经延时5分钟后,CD4541的8脚输出变为低电平,继电器KS1释放,照明灯断电熄灭。
相关问答
单片机 在使用 定时器 时是用到了哪些引脚?一定是这些吗? - 懂得单片机使用定时器时,不用到任何引脚,因为定时器就好比一个时钟,它被安装在单片机内部,在接收到信号之后,就开始运行,一般使用定时器,通过编程的方案...
单片机 在使用 定时器 时是用到了哪些引脚?一定是这些吗? - 小...单片机使用定时器时,不用到任何引脚,因为定时器就好比一个时钟,它被安装在单片机内部,在接收到信号之后,就开始运行,一般使用定时器,通过编程的方案...
单片机 定时的时间怎么改变?定时器实质是计数器。当计数脉冲周期一定时,就有定时功能。雅帆用水桶给你打个比方吧!一、向上计定时数器举例当一个255毫升的烧杯,提前放入155毫升水后,...
一个关于 单片机 的定时中断的问题.有这样一句话:假设时钟频率...[最佳回答]51单片机在内部要对晶振12MHZ,所以12M晶振除以12就是1M,即1秒钟有1M个时钟周期,每个时钟周期就是10^-6秒,即1us.TH0和TL0分别为定时器T0的高八位和...
谁给一个51 单片机 用一个 定时器 可以输出频率一定,占空比可调的PWM 脉冲 例子给我参考一下啊?一.51没有这样的功能,STC12单片机才有这样的功能,不过你可以用延时函数来产生PWM波形,但比较浪费CPU时间。二.还有一种方法可以用51来实现,但要消耗两个定时...
59ms 单片机定时器 工作原理?单片机定时器工作原理实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1。计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为...单片机...
t0定时方式1中断原理阐述?T0中断就是定时器中断,也就是Timer0,分内部外部,内部用单片机本身的晶振频率,外部给单片机P3.4一个脉冲信号作为T0的定时器的工作频率,单片机内部有两个定时...
单片机 用中断和定时怎么延时?以上函数被调用一次,就延时10ms,多次调用可以达到任意更大的时间要求。!但是,在延时时,就其它什么事也做不了了,就是干等啊!2.硬件延时利用定时器/...3.操...
利用51 单片机定时器 编写一个C语言程序,实现一个发光二极管定时亮、灭,要求亮一秒、灭一秒交替闪烁不?初始值为0,只只要启动定时器,定时器就开始工作,当计数溢出后,TF被置1,此时在程序中查询TF的状态,做相应的程序处理。一般建议用中断来做,查询方式会占用c...
mcs-51系列 单片机 的 定时器 T1用做定时方式时,采用工作方式1,则工作方式控制字为?让我来告诉你答案!答案应该是ATMOD=01100000GC/TM1M0T1T0让我来告诉你答案!答案应该是ATMOD=01100000GC/TM1M0T1T0