找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请问用C编程,根据延时子程序和晶振频率怎么计算延时时间

[复制链接]
跳转到指定楼层
楼主
ID:249590 发表于 2019-6-20 21:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,关于51单片机C语言编程
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2019-6-21 06:36 | 只看该作者
比如
for(i=0;i<125;i++)
{
;
}
这样一个延时了多长时间呢?

如果晶振是24Mhz,延时大约是125*2=250us.(用仿真器仿真是251us).
如果晶振是12Mhz,延时大约是125*4=500us(用仿真器仿真是502us).

这只能是大概的算。不过应该能满足你的延时要求了。精准的话建议用汇编


使用STC最新的程序下载软件,右边有个软件延时计算,用那个生成要的延时函数,就挺不错的
回复

使用道具 举报

板凳
ID:552614 发表于 2019-6-21 06:58 | 只看该作者
比如你的晶振是12MHZ,一个机器周期就是1us,z比如while(i--);i=1000;就是自减1000次,相当于1000个机器周期,也就是1ms.有的也有用其他语句自减的,但基本都是一样的道理。不过要精确延时还得用定时器
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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