找回密码
 立即注册

QQ登录

只需一步,快速开始

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

谁能给个1US延时程序啊(要求晶振是12M的51单片机)

[复制链接]
跳转到指定楼层
楼主
ID:40490 发表于 2012-7-4 15:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

 

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

使用道具 举报

沙发
ID:1 发表于 2012-7-4 16:24 | 只看该作者

这个简单  一个 nop 就是1us

 

回复

使用道具 举报

板凳
ID:40490 发表于 2012-7-4 16:47 | 只看该作者

我要的是一个延时程序是转一个参数进去 就得到想要的

 

回复

使用道具 举报

地板
ID:7485 发表于 2012-7-4 23:53 | 只看该作者

你的问题很搞笑。

 

12兆晶体标准51片子,一个机器周期就是1us,无法再小了,没有其他办法。只能是nop,一周期指令。

回复

使用道具 举报

5#
ID:7485 发表于 2012-7-4 23:54 | 只看该作者
估计你是需要1ms的吧?
回复

使用道具 举报

6#
ID:7485 发表于 2012-7-5 08:43 | 只看该作者

如果已知屋里只有1个人,让你给出一个计算公式,计算屋里有几个人,你会怎么写?

 

回复

使用道具 举报

7#
ID:40490 发表于 2012-7-5 18:50 | 只看该作者
版主你别想的那么理所当然 你试试就知道多难了 我目前最多控制在误差6个US以内 它是这样子的 12M里面有个累计误差 而且由于他的运算比较慢有个累计误差 所以我觉得是不可能的 但是呢就是有这么一个做到了
回复

使用道具 举报

8#
ID:40490 发表于 2012-7-5 18:54 | 只看该作者
版主你别想的那么理所当然 你试试就知道多难了 我目前最多控制在误差6个US以内 它是这样子的 12M里面有个累计误差 而且由于他的运算比较慢有增大 时间相差就越大
回复

使用道具 举报

9#
ID:7485 发表于 2012-7-5 22:05 | 只看该作者

听不懂你说的是啥!你最后说的和你开始说的就不是一回事!

 

“我目前最多控制在误差6个US以内 ”,你多长时间允许误差6个US??

 

对使用12M晶振的51单片机来说,最小的时间单位就是1US,只要是个程序,最少要一个指令吧?对标准的89c51来说任何一个指令都等于或大于1US。

如果说在一定时间内积累了一个或几个微秒的+误差,你想延迟几个微秒,那是另外一回事。

你想延迟几个微秒就加进去几个NOP,这也可以认为就是1US的延时程序。

如果你是数小时积累了1个微秒的误差,用程序在一定的小时后(计算出来的)或者是每天00:00:00时,一次性的在定时器的初装值加上几个数值即可。

积累误差不超过1微秒是没法调整的。

到现在我没有弄明你的真正的意图,不知道我揣摩的对与否?

回复

使用道具 举报

10#
ID:40490 发表于 2012-7-6 09:26 | 只看该作者
就是你说这样我要一断长时间的累计 但是了又总是有点点岔开 这几天来一个总结晶振稍微大点误差就会少点 这几天来一个总结
回复

使用道具 举报

11#
ID:43499 发表于 2012-8-1 01:16 | 只看该作者
 现在晶振质量普遍不行,
不过如果是 12T,延1uS,12M,NOP解决一切
回复

使用道具 举报

12#
ID:43173 发表于 2012-8-1 09:05 | 只看该作者
以下是引用admin在2012-7-4 16:24:58的发言:

这个简单  一个 nop 就是1us

 

正解。

不清楚LZ到底想要什么!

回复

使用道具 举报

13#
ID:425175 发表于 2019-2-2 21:38 | 只看该作者
/*分享一下常用的延时函数*/
/*延时10us*/
void delay_10us()  //延时10us@12M晶振
{      
        _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}

/****延时n个10us****/
void delay_n10us(uint n)  //延时n个10us@12M晶振
{      
        uint i;         
        for(i=n;i>0;i--)   
        {
              _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
        }
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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