推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

单片机C 程序延时精度研究

更新时间:2018-12-17 21:07:16 大小:1M 上传用户:z00查看TA发布的资源 标签:单片机程序C语言 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

在单片机应用中,经常会遇到需要短时间延时的情况,一般都是几十到几百μs ,并且需要很高的精度(比如用单片机驱动DS18B20 时,误差容许的范围在十几μs 以内,不然很容易出错) ;而某些情况下延时时间较长,用计时器往往有点小题大做。另外在特殊情况下,计时器甚至已经全部用于其他方面的定时处理,此时就只能使用软件定时了[。

1  C 语言程序延时

Keil C51 的编程语言常用的有2 种: 一种是汇编语言;另一种是C 语言。用汇编语言写单片机程序时,精确时间延时是相对容易解决的。比如,用的是晶振频率为12 MHz 的AT89C51 ,打算延时20μs ,51 单片机的指令周期是晶振频率的1/ 12 ,即一个机器周期为1 μs ;“MOVR0 , # X”需要2 个机器周期,DJNZ 也需要2 个机器周期,单循环延时时间t = 2 X + 3 ( X 为装入寄存器R0 的时间常数) [2 ] 。这样,存入R0 里的数初始化为8 即可,其精度可以达到1 μs。用这种方法,可以非常方便地实现512 μs以下时间的延时。如果需要更长时间,可以使用两层或更多层的嵌套,当然其精度误差会随着嵌套层的增加而成倍增加。


部分文件列表

文件名 大小
1250677518_da3788e4.pdf 1M

【关注B站账户领20积分】

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载