博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51单片机基于定时器0的硬件延时代码
阅读量:5054 次
发布时间:2019-06-12

本文共 1049 字,大约阅读时间需要 3 分钟。

1 //晶振的频率 2 #define OSC_FREQ (11059200UL) 3  4 //每个指令的振荡周期数(4,6,12),注意,这里一定要仔细查看芯片手册 5 //*12 - 早期的8051、8052及当前的绝大部分51单片机 6 //*6 - Philips 的芯片 7 //*4 - Dallas 8 #define OSC_PER_INST (12) 9 10 //TIME 为定时时间 单位MS11 #define PRELOAD1MS (65536 - 1*(UINT16)(OSC_FREQ/(OSC_PER_INST*1000)))12 #define PRELOAD5MS (65536 - 5*(UINT16)(OSC_FREQ/(OSC_PER_INST*1000)))13 14 void start_Timeout1ms(){15     TH0 = PRELOAD1MS / 256;16     TL0 = PRELOAD1MS % 256;17     TF0 = 0 ;//清溢出标志位18 19     ET0 = 0;    //关定时器0的中断20 21     TR0 = 1;    //启动定时器22 23 }24 25 void start_Timeout5ms(){26     //TMOD = ;27 28     TH0 = PRELOAD5MS / 256;29     TL0 = PRELOAD5MS % 256;30     TF0 = 0 ;//清溢出标志位31 32     ET0 = 0;    //关定时器0的中断33 34     TR0 = 1;    //启动定时器35 36 }37 38 void stop_Timeout(){39     TR0 = 0;40 }41 42 void Delay5ms(){43     start_Timeout5ms();44     while(!_testbit_(TF0));45     stop_Timeout();46 }47 48 /* 用法 49 start_Timeout1ms();50 while(!TF0);    //等待T0超时51 stop_Timeout();52 */

以上为转载,没经过验证

转载于:https://www.cnblogs.com/scdyxcc/archive/2013/01/25/2876107.html

你可能感兴趣的文章
【AS3代码】播放FLV视频流的三步骤!
查看>>
C++标准库vector使用(更新中...)
查看>>
cocos2d-x 2.2.6 之 .xml文件数据读取
查看>>
枚举的使用
查看>>
BZOJ 1531 二进制优化多重背包
查看>>
BZOJ 2324 (有上下界的)费用流
查看>>
python3基础06(随机数的使用)
查看>>
Zookeeper系列(二)特征及应用场景
查看>>
【HTTP】Fiddler(三)- Fiddler命令行和HTTP断点调试
查看>>
Spring Boot使用Druid和监控配置
查看>>
poi 处理空单元格
查看>>
Android 内存泄漏优化总结
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>
Spring Cloud微服务笔记(五)Feign
查看>>
C语言键盘按键列表
查看>>
Codeforces Round #374 (Div. 2)
查看>>
oracle数据类型
查看>>
socket
查看>>
Vue中使用key的作用
查看>>
二叉索引树 树状数组
查看>>