找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2256|回复: 4
打印 上一主题 下一主题
收起左侧

求解单片机延时函数的计算

[复制链接]
跳转到指定楼层
楼主
void delay_16us(u16 us)        
{
        while(--us);
}


如上所示的延时函数,在89c52中运行,晶振用的是12兆赫兹,那这个该如何计算延时的时间长度,网上的看不懂希望能说说

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:76227 发表于 2018-1-16 23:04 | 只看该作者
需要转换成汇编指令  再去计算时钟周期  计算出延时时间
回复

使用道具 举报

板凳
ID:272269 发表于 2018-1-17 07:38 | 只看该作者
12MHZ的晶振在89c52中,一个机械时间是12MHZ/12=1us
一个机械时间就是单片机运行一个指令的时候例如(;)
也是一个机械时间,所以上面的程序是  输入的数  慢慢地减
一个一个的运行这个指令( ;)
计算公式:晶振数/12=机械时间
回复

使用道具 举报

地板
ID:258566 发表于 2018-1-17 09:26 | 只看该作者

回复

使用道具 举报

5#
ID:111634 发表于 2018-1-17 11:13 | 只看该作者
本帖最后由 zl2168 于 2018-1-17 11:15 编辑

c程序中的延时函数,不能准确计算延时时间。汇编程序可以。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表