[经验分享] 在keil_C51设计中几种精确延时的方法

[复制链接]
4344|51
理想阳 发表于 2024-2-5 23:42 | 显示全部楼层
为了进步精度,可以在轮回体内添加一些无用的指令,以增长轮回的时候。
软核硬核 发表于 2024-2-6 01:53 | 显示全部楼层
Can achieve precise delay。
modesty3jonah 发表于 2024-2-6 15:59 | 显示全部楼层
定时器中断服务程序(ISR)可以在每次定时器溢出时执行,以此来计算延时的总时间。
AIsignel 发表于 2024-2-6 22:00 | 显示全部楼层
可以利用软件计数器实现延时。
pl202 发表于 2024-2-6 22:38 | 显示全部楼层
单片机内部通常有多个定时器,这些定时器可以用于产生精确的延时。
uptown 发表于 2024-2-7 02:55 | 显示全部楼层
可以通过设置定时器/计数器的初始值和中断方式来实现精确的延时。
朝生 发表于 2024-2-7 09:49 | 显示全部楼层
使用计时器/计数器来实现精确的延迟是一种常用的方法。
youtome 发表于 2024-2-7 16:25 | 显示全部楼层
使用单片机内部的定时器资源,设置好初值并启动定时器,当定时器溢出时产生中断,在中断服务程序中递减一个全局变量,直到达到预设的延时时间。
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指令,取决于编译器优化后的效果
    }
}
ulystronglll 发表于 2024-2-9 15:05 | 显示全部楼层
软件延时               
hilahope 发表于 2024-2-16 10:20 | 显示全部楼层
在软件中通过循环来实现延时。              
LLGTR 发表于 2024-3-6 16:36 | 显示全部楼层
微控制器内部通常有多个计时器,可以用来产生精确的延迟。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部