下载此文档

延时程序.doc


文档分类:通信/电子 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
bit LED  =  P1^0;      // 定义一个管脚(延时测试用)
unsigned int i = 3;     // 注意i,j的数据类型,
unsigned char j = 3;    // 不同的数据类型延时有很大不同
//-----------------各种精确延时语句-----------------------------------
while( (i--)!=1 );      // 延时10*i个机器周期
i = 10; while( --i );   // 延时8*i+2个机器周期
i = 10; while( i-- );   // 延时(i+1)*9+2个机器周期
j = 5;  while( --j );   // 延时2*j+1个机器周期
j = 5;  while( j-- );   // 延时(j+1)*6+1个机器周期
i = 5;  
while( --i )            // 延时i*10+2个机器周期,在i*10+2个机器周期
if( LED==0 )  break; // 内检测到LED管脚为低电平时跳出延时
i = 5;
while( LED )            // 每隔10个机器周期检测一次LED管脚状态,当LED
if( (--i)==0 ) break;// 为低时或者到了10*i+2个机器周期时跳出延时
//--------------------------------------------------------------------
例如18b20的复位函数(12M晶振):
//***********************************************************************
// 函数功能:18B20复位
// 入口参数:无
// 出口参数:unsigned char x: 0:成功 1:失败
//***********************************************************************
unsigned char ow_reset(void)
{
unsigned char x=0;  // 12M晶振 1个机器周期为1us
DQ = 1;   // DQ复位
j = 10;  while(--j);// 稍做延时(延时10*2+1=21个机器周期,21us)
DQ = 0;   // 单片机将DQ拉低
j = 85;  while(j--);// 精确延时(大于480us) 85*6+1=511us
DQ = 1;   // 拉高总线
j = 10;  while(j--);// 精确延时10*6+1=61us
x = DQ;   // 稍做延时后,
return x;   // 如果x=0则初始化成功 x=1则初始化失败
j = 25;  while(j--);// 精确延时25*6+1=151us
}
//***************************************************

延时程序 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1314042****
  • 文件大小22 KB
  • 时间2021-02-23
最近更新