下载此文档

延时程序 免费下载.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
延时程序_免费下载bitLED  =  P1^0;    //定义一个管脚(延时测试用)unsignedinti=3;    //注意i,j的数据类型,unsignedcharj=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管脚状态,当LEDif((--i)==0)break;//为低时或者到了10*i+2个机器周期时跳出延时//--------------------------------------------------------------------例如18b20的复位函数(12M晶振)://***********************************************************************//函数功能:18B20复位//入口参数:无//出口参数:unsignedcharx:0:成功1:失败//***********************************************************************unsignedcharow_reset(void){unsignedcharx=0;  //12M晶振1个机器周期为1usDQ=1;  //DQ复位j=10;  while(--j);//稍做延时(延时10*2+1=21个机器周期,21us)DQ=0;  //单片机将DQ拉低j=85;  while(j--);//精确延时(大于480us)85*6+1=511usDQ=1;  //拉高总线j=10;  while(j--);//精确延时10*6+1=61usx=DQ;  //稍做延时后,returnx;  //如果x=0则初始化成功x=1则初始化失败j=25;  while(j--);//精确延时25*6+1=151us}//*********************************************************************************再如红外解码程序:(先说传统红外解码的弊端:程序中用了while(IR_IO);while(!IR_IO);这样的死循环,如果管脚一直处于一种状态,就会一直执行while,造成“死机”现象。当然这种情况很少,但我们也的考虑到。而用以下程序则不会,在规定的时间内没有正确的电平信号就会返回主程序,这样就不会出现“死机”了)//***************************外部中断0****

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

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