| 
 | 
 
 
发表于 2017-9-27 09:42:59
|
显示全部楼层
 
 
 
    单片机常常会用到延时功能,比较常见的延时办法是使用定时器和延时函数。一般超过秒的延时就要考虑使用定时器了,因为使用延时函数会大大降低CPU的使用效率,程序需要一直在延时函数里面运行。而使用定时器开启中断,CPU可以在中断没触发时做其他的事情。 
    使用延时函数做延时确实和单片机的工作频率有密切关系,只是当工作频率选择差别不大时,延时时间又比较短,可能不容易分辨。 
   一般使用延时函数延时时间较长时,会使用3个变量,函数固定格式是: 
    void delay500ms()              
    { 
        unsigned char i,j,k;               
        for(i=41;i>0;i--)            // 没分号 
        for(j=133;j>0;j--)         // 没分号 
        for(k=252;k>0;k--);    // 有分号 
    }  
    使用延时函数延时时间比较短时,只使用一个变量,函数固定格式是: 
    void delay (unsigned char t)  
    { 
        while(--t); 
    }  
   注:深入理解for和while的使用,两者可以相互转换使用。 
 
 
 
 |   
 
 
 
 |