51单片机基于定时器0的硬件延时代码
2013-01-25 10:23
204 查看
//晶振的频率 #define OSC_FREQ (11059200UL) //每个指令的振荡周期数(4,6,12),注意,这里一定要仔细查看芯片手册 //*12 - 早期的8051、8052及当前的绝大部分51单片机 //*6 - Philips 的芯片 //*4 - Dallas #define OSC_PER_INST (12) //TIME 为定时时间 单位MS #define PRELOAD1MS (65536 - 1*(UINT16)(OSC_FREQ/(OSC_PER_INST*1000))) #define PRELOAD5MS (65536 - 5*(UINT16)(OSC_FREQ/(OSC_PER_INST*1000))) void start_Timeout1ms(){ TH0 = PRELOAD1MS / 256; TL0 = PRELOAD1MS % 256; TF0 = 0 ;//清溢出标志位 ET0 = 0; //关定时器0的中断 TR0 = 1; //启动定时器 } void start_Timeout5ms(){ //TMOD = ; TH0 = PRELOAD5MS / 256; TL0 = PRELOAD5MS % 256; TF0 = 0 ;//清溢出标志位 ET0 = 0; //关定时器0的中断 TR0 = 1; //启动定时器 } void stop_Timeout(){ TR0 = 0; } void Delay5ms(){ start_Timeout5ms(); while(!_testbit_(TF0)); stop_Timeout(); } /* 用法 start_Timeout1ms(); while(!TF0); //等待T0超时 stop_Timeout(); */
以上为转载,没经过验证
相关文章推荐
- 51单片机基于定时器0的硬件延时代码
- 51单片机的延时及定时器
- 基于泛型的延时加载集合实现代码
- 基于PCI卡的FPGA硬件延时驱动
- 51单片机定时器量程的硬件扩展方式
- CCS7.2软/硬件断点设置,精确计算代码运行时间及定时器定时时间验证(适用于C28x芯片)
- 基于51单片机的计算器写代码遇到的问题及解决办法
- 基于51单片机的花样流水灯仿真(代码)
- IE 下VML动画的奇怪现象:GWTCanvas基于定时器的图形动画当鼠标移动时停止动画效果(直接用VML写代码效果也一样)
- 51单片机的定时器延时计算
- ISD4003驱动程序(基于51单片机,硬件调试通过)
- 基于JS实现无缝滚动思路及代码分享
- 最优化WPF 3D性能(基于“Tier-2”硬件)
- 基于jQuery下拉选择框插件支持单选多选功能代码
- 基于.Net平台应用程序唯一运行实例C#代码实现
- 如何基于FFMPEG和SDL写一个少于1000行代码的视频播放器
- 基于WDF的PCI/PCIe接口卡Windows驱动程序(3)- 驱动程序代码(头文件)
- 平台+插件软件设计思想基于COM原型实现的代码剖析
- Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类
- WIZnet基于全硬件TCP/IP的安防产品应用及方案