- 7
- 0
- 约1万字
- 约 3页
- 2017-09-17 发布于重庆
- 举报
电子发烧友 电子技术论坛
EXPERIENCEEXCHANGE 经验交流
单片机 语言的精确延时程序设计※
C
■ 东北电力学院 盛文利
现在单片机的开发中,C 语言以其方便、灵活、逻 法,在生成目标代码时,会有所不同。开发人员必须研
辑性强、易于维护和可移植性好等强大优势,占据了单 究它生成的汇编语言代码,来保证时间的准确性。这也
片机开发的主要地位。过去,由于单片机C语言本身存 许是除了使用嵌入汇编或直接编写汇编函数的唯一方
在的缺陷,加之单片机工程项目本身都不大,C 语言在 法。其实在单片机的C 编译器中,已经有足够底层操作
单片机中的应用没有被重视。在C 语言环境下,只需关 方面的扩展,所以这里只考虑纯C 语言的方法。
心程序的逻辑关系,实现细节则由编译器完成,这为快 3 延时程序设计
速开发提供了条件,也大大减小了开发工作量。但同
时,实现细节就不被控制了,这个问题对于经常重视实 以德国Keil 公司的C51 编译器为例,目前它已被公
现细节的单片机,就必须要得到解决。好在一般的C语 认为业界的标准。以下讨论均假设51 单片机时钟晶振
言编译器都提供嵌入汇编、与汇编互调用和汇编级的代 为6MHz,以小模式下编译,这时程序指令执行的最小
码察看等功能。现以Keil C51(见参考文献[1])下的单总线 单位是2 μs 。如果使用非英特尔且内核优化过的单片
器件程序开发为例,说明解决方法。 机,应切换回普通模式,或仔细研究它的时序。以
DS18B20 为例,临时在程序中需要延时2 μs ,那么可以
1 单总线协议器件
用下述程序。
单总线协议(1 wire bu s protocol)是单总线器件数据传 #incl ude intri ns.h
输协议。因为数据( 也可以包括电源) 都由一条线来传 void somefunc(void)
输,没有辅助的数据同步信号,这时就只能由时序来解 { ……;
析协议内容。这样就只有依靠对时序的严格要求,来保 _nop _();
障数据传输的准确性。 ……;
}
单总线协议的信号主要有:初始化时序(包括复位
如果要延时64 μs 甚至640 μs ,那么不可能在程序
脉冲和在线脉冲,是主机与器件的联络信号)和读、写
中重复上述_n op_(),虽然这并不会出错。可以利用它
时序。单总线器件完全依靠对线上的时序来做出响应,
来构建延时程序,精确定时的问题就变为延时程序的精
这些有效的时序称作时隙,也有称作时间片的,是同一
度问题。首先讨论空操作延时。
词汇的不同翻译(见参考文献[2]) 。
初始化时序时间裕度大,容易实现。读写脉冲对时 3.1空操作延时及延时函数
序要求相对严格,尤其在慢速的M CS-51 下,指令的运 注意到DS 18B20 最小时隙除大于 1 μs 的外,最小
行在μs 级,读写时序在15 μs 的后一小部分,大约4 μ 的就是15 μs ,而数据的读或写也包含在这15 μs 中。
s ,不同批次的芯片会有少许差距。有的会允许你的时 由于定时器的延时要对定时器进行初始化,不易得到小
序有少许误差,有的则非常严格。 的延时。只能用于复位脉冲,即在480~960 μs 之间的
2 C语言编
您可能关注的文档
最近下载
- 2026年高考全国II卷文科综合真题试卷(新课标卷)(+答案).docx VIP
- 安路科技(688107)补国产短板,突高端应用,拓新应用与技术大市场-240717-东北证券-38页.pdf VIP
- [搞笑小品剧本]上当了小品剧本.docx VIP
- 全国初中数学联合竞赛真题及答案(初二组)2015-年.pdf VIP
- 数据中心800V直流供电技术白皮书2.0.pdf
- 上海大学2022-2023学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 上海大学2022-2023学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 中国教育行业人才流动与薪酬水平_2025年12月.docx
- 2024全国初中数学联赛初二卷 .pdf VIP
- AIAG-VDA-SPC手册-Yellow-Volume2026年2月第一版 中文.pdf VIP
原创力文档

文档评论(0)