导航:首页 > 操作系统 > 单片机定时器如何使用

单片机定时器如何使用

发布时间:2025-06-06 15:58:02

A. 怎样使用51单片机的定时器

51单片机定时器的使用

51单片机定时器/计时器的使用
步骤:
1、 打开中断允许位:
对IE寄存器进行控制,IE寄存器各位的信息如下图所示:
EA: 为0时关所有中断;为1时开所有中断
ET2:为0时关T2中断;为1时开T2中断,只有8032、8052、8752才有此中断 ES: 为0时关串口中断;为1时开串口中断 ET1:为0时关T1中断;为1时开T1中断 EX1:为0时关1时开 ET0:为0时关T0中断;为1时开T0中断 EX0:为0时关1时开
2、 选择定时器/计时器的工作方式:
定时器TMOD格式

CPU在每个机器周期内对T0/T1检测一次,但只有在前一次检测为

1和后一次检测为0时才会使计数器加1。因此,计数器不是由外部时钟负边沿触发,而是在两次检测到负跳变存在时才进行计数的。由于两次检测需要24个时钟脉冲,故T0/T1线上输入的0或1的持续时间不能少于一个机器周期。通常,T0或T1输入线上的计数脉冲频率总小于100kHz。
方式0:定时器/计时器按13位加1计数,这13位由TH中的高8位和TL中的低5位组成,其中TL中的高3位弃之不用(与MCS-48兼容)。

13位计数器按加1计数器计数,计满为0时能自动向CPU发出溢出中断请求,但要它再次计数,CPU必须在其中断服务程序中为它重装初值。
方式1:16位加1计数器,由TH和TL组成,在方式1的工作情况和方式0的相同,只是计数器值是方式0的8倍。

1
1/3
方式2:计数器被拆成一个8位寄存器TH和一个8位计数器TL,CPU对它们初始化时必须送相同的定时初值。当计数器启动后,TL按8位加1计数,当它计满回零时,一方面向CPU发送溢出中断请求,另一方面从TH中重新获得初值并启动计数。

方式3:T0和T1工作方式不同,TH0和TL0按两个独立的8位计数器工作,T1只能按不需要中断的方式2工作。 在方式3下的TH0和TL0是有区别的:TL0可以设定为定时器/计时器或计数器模式工作,仍由TR0控制,并采用TF0作为溢出中断标志;TH0只能按定时器/计时器模式工作,它借用TR1和TF1来控制并存放溢出中断标志。因此,T1就没有控制位可以用了,故TL1在计满回零时不会产生溢出中断请求的。 显然,T0和T1设定为方式3实际上就相当于设定了3个8位计数器同时工作,其中TH0和TL0为两个由软件重装的8位计数器,TH1和TL1为自动重装的8位计数器,但无溢出中断请求产生。由于TL1工作于无中断请求状态,故用它来作为串口可变波特

3、 为计数器赋值
计数器初值计算
TC=M−C
TC:计数器初值,M:计数器模值(2k),C:把计数器计满的计数值 定时器初值计算
T=(M−TC)T计数


TC=M−T/𝑇计数
M:模值,T计数:单片机时钟周期TCLK(ΦCLK的倒数)的12倍;TC为定时器的定时初值,T为欲定时的时间。
TC=M−T×𝛷𝐶𝐿𝐾/12
M:模值,ΦCLK:单片机时钟周期ΦCLK;TC为定时器的定时初值,T为欲定时的时间。 例如:单片机主脉冲频率ΦCLK为12MHz,最大定时时间为: 方式0时 TMAX = 213×1us = 8.192ms 方式1时 TMAX = 216×1us = 65.536ms 方式2和方式3 TMAX = 28×1us = 0.256ms
4TR0:为0时,停T0计数;为1时,启T0计数

2
2/3

TF0:为0时,无T0中断(硬件复位);为1时,有T0溢出中断 TR1:为0时,停T1计数;为1时,启T1计数 TF1:为0时,无T1中断(硬件复位);为1时,有T1溢出中断 IE1:为0时,硬件复位;为1时 IT1:为0时,INT1电平触发(软件复位);为1时,INT1负边沿触发 IE0:为0时,硬件复位;为1时 IT0:为0时,INT0电平触发(软件复位);INT0负边沿触发
5

在C51的C语言中使用interrupt x来指定中断入口地址,x为中断号,例T0中断: void Time0_Int() interrupt 1 //定时器T0的中断入口程序

B. 51单片机如何用一个定时器当多个延时电路用, 就是按下开关一,灯泡亮三秒。 按下开关二,灯泡亮五秒。

使用单片机的定时器来实现不同的延时效果,是一个常见的技术应用。具体来说,可以通过配置定时器产生一个秒周期的时间基准,然后利用计数器来累计时间。这个计数器可以设置为从1开始计数到任意数值,比如10000或者1000000,也可以实现循环计数,即计数到100后重新从1开始。在按下开关一的时候,我们记录下当前的计数器值作为K1,同时点亮灯泡;当计数器值达到K1+3时,灯泡会熄灭。

同样的方法可以应用于开关二的延时控制。按下开关二时,同样记录下当前的计数器值作为K2,然后点亮灯泡;当计数器值达到K2+5时,灯泡会熄灭。这样,通过调整K1和K2的值,可以实现不同延时时间的需求。

值得注意的是,这种方法的关键在于定时器的配置和计数器的使用。首先,需要设置定时器的定时周期,使其能够产生秒级别的基准时间。然后,通过软件编程的方式,实现对计数器的初始化和计数操作。当计数器达到预设值时,触发相应的输出控制逻辑,实现灯泡的点亮和熄灭。

这种实现方式不仅灵活,而且能够有效地利用单片机的资源。通过调整定时器的配置和计数器的数值,可以轻松实现多种延时效果,满足不同的应用需求。这对于开发需要多种延时控制功能的项目来说,是一种非常实用的技术手段。

总之,利用单片机的定时器来实现延时控制是一种高效且灵活的方法。通过合理配置定时器和计数器,可以方便地实现不同延时时间的需求,满足各种应用场景的要求。

C. C51单片机定时器1以方式1定时1秒如何设置

1、先打开我们熟悉的单片机c51编程软件——keil,先把主方法写好。

阅读全文

与单片机定时器如何使用相关的资料

热点内容
优信二手车解压后过户 浏览:55
Windows常用c编译器 浏览:774
关于改善国家网络安全的行政命令 浏览:827
安卓如何下载网易荒野pc服 浏览:648
javainetaddress 浏览:97
苹果4s固件下载完了怎么解压 浏览:996
命令zpa 浏览:279
python编译器小程序 浏览:938
在app上看视频怎么光线调暗 浏览:534
可以中文解压的解压软件 浏览:586
安卓卸载组件应用怎么安装 浏览:906
使用面向对象编程的方式 浏览:333
程序员项目经理的年终总结范文 浏览:922
内衣的加密设计用来干嘛的 浏览:426
淮安数据加密 浏览:289
魔高一丈指标源码 浏览:976
松下php研究所 浏览:164
c回调java 浏览:394
梦幻端游长安地图互通源码 浏览:740
电脑本地文件如何上传服务器 浏览:307