打印
[经验分享]

在keil_C51设计中几种精确延时的方法

[复制链接]
楼主: i1mcu
手机看帖
扫描二维码
随时随地手机跟帖
21
lzmm| | 2024-1-8 17:27 | 只看该作者 回帖奖励 |倒序浏览
在Keil C51中,可以使用定时器实现延时。通过设置定时器的计数值和启动定时器,可以实现精确的延时。

使用特权

评论回复
22
geraldbetty| | 2024-1-9 19:19 | 只看该作者
可以使用标准C库中的延时函数              

使用特权

评论回复
23
saservice| | 2024-1-9 20:06 | 只看该作者
通常需要更多的硬件资源,但是可以提供更高的精度和灵活性。

使用特权

评论回复
24
10299823| | 2024-1-9 21:03 | 只看该作者
通过设置软件计数器的值和检查计数器的值,可以实现精确的延时。

使用特权

评论回复
25
uptown| | 2024-1-9 22:23 | 只看该作者
可以设置定时器的溢出时间,然后在定时器溢出时中断,执行你需要的操作。

使用特权

评论回复
26
febgxu| | 2024-1-10 10:46 | 只看该作者
单片机内部通常有多个定时器,这些定时器可以用于产生精确的延时。

使用特权

评论回复
27
sanfuzi| | 2024-1-10 11:58 | 只看该作者
使用单片机内部的定时器资源,设置好初值并启动定时器,当定时器溢出时产生中断,在中断服务程序中递减一个全局变量,直到达到预设的延时时间。

使用特权

评论回复
28
zerorobert| | 2024-1-10 15:15 | 只看该作者
在软件中通过循环来实现延时。              

使用特权

评论回复
29
macpherson| | 2024-1-10 15:28 | 只看该作者
定时器中断服务程序(ISR)可以在每次定时器溢出时执行,以此来计算延时的总时间。

使用特权

评论回复
30
fengm| | 2024-1-10 16:18 | 只看该作者
可以通过设置定时器/计数器的初始值和中断方式来实现精确的延时。

使用特权

评论回复
31
timfordlare| | 2024-1-10 17:06 | 只看该作者
使用8051内置的T0或T1定时器,预先计算好计数初值,并在中断处理函数中做相应的计数递减操作。

使用特权

评论回复
32
mmbs| | 2024-1-10 19:35 | 只看该作者
void delay_ms(unsigned int ms) {
    unsigned int i;
    for (i = 0; i < ms * (系统晶振频率 / 12 / 每毫秒需要的循环次数); i++) { // 这里的"系统晶振频率 / 12"是对于标准8051而言的一个估算值,实际需根据具体单片机进行调整
        // 空循环或NOP指令,取决于编译器优化后的效果
    }
}

使用特权

评论回复
33
LinkMe| | 2024-1-11 10:45 | 只看该作者
可以通过计算确定周期数来估计延迟时间。

使用特权

评论回复
34
mollylawrence| | 2024-1-11 14:17 | 只看该作者
软件延时               

使用特权

评论回复
35
芯路例程| | 2024-1-11 14:53 | 只看该作者
经由过程双缓冲技能来处置数据传输,可以实现切确的延时节制。

使用特权

评论回复
36
V853| | 2024-2-2 01:21 | 只看该作者
编写一个轮回布局,经由过程计较轮回次数来实现切确延时。

使用特权

评论回复
37
鹿鼎计| | 2024-2-2 02:53 | 只看该作者
Delay programs can be written using assembly language

使用特权

评论回复
38
天天向善| | 2024-2-2 20:03 | 只看该作者
在Keil和C51中,可以用C语言编写延迟函数

使用特权

评论回复
39
digit0| | 2024-2-4 00:08 | 只看该作者
利用循环计数,但增加采样到当前系统时钟,以提高延迟精度。

使用特权

评论回复
40
Pretext| | 2024-2-4 10:54 | 只看该作者
可以经由过程软件方法摹拟定时器功效。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则