发新帖我要提问
123
返回列表
打印
[经验分享]

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

[复制链接]
楼主: i1mcu
手机看帖
扫描二维码
随时随地手机跟帖
41
理想阳| | 2024-2-5 23:42 | 只看该作者 回帖奖励 |倒序浏览
为了进步精度,可以在轮回体内添加一些无用的指令,以增长轮回的时候。

使用特权

评论回复
42
软核硬核| | 2024-2-6 01:53 | 只看该作者
Can achieve precise delay。

使用特权

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

使用特权

评论回复
44
AIsignel| | 2024-2-6 22:00 | 只看该作者
可以利用软件计数器实现延时。

使用特权

评论回复
45
pl202| | 2024-2-6 22:38 | 只看该作者
单片机内部通常有多个定时器,这些定时器可以用于产生精确的延时。

使用特权

评论回复
46
uptown| | 2024-2-7 02:55 | 只看该作者
可以通过设置定时器/计数器的初始值和中断方式来实现精确的延时。

使用特权

评论回复
47
朝生| | 2024-2-7 09:49 | 只看该作者
使用计时器/计数器来实现精确的延迟是一种常用的方法。

使用特权

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

使用特权

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

使用特权

评论回复
50
ulystronglll| | 2024-2-9 15:05 | 只看该作者
软件延时               

使用特权

评论回复
51
hilahope| | 2024-2-16 10:20 | 只看该作者
在软件中通过循环来实现延时。              

使用特权

评论回复
52
LLGTR| | 2024-3-6 16:36 | 只看该作者
微控制器内部通常有多个计时器,可以用来产生精确的延迟。

使用特权

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

本版积分规则