delay.c

来自「一个充电控制器的完整单片机程序」· C语言 代码 · 共 32 行

C
32
字号
#include <AT89X52.H>
#include <INTRINS.h>

/* Configure Timer 1
   - Mode                        = 2
   - Interuppt                   = DISABLED
   - Clock Source                = INTERNAL
   - Enable Gating Control    = DISABLED
*/

//delay function
void delay(unsigned int i){//i per 512us 6M crystalloid
      TMOD  &= 0x0F;      // clear Timer 1 control    
      TMOD |= 0x20 ;   //mode 2

      if(i)//7.3728M
		  {
		   TL1 = 0x0 ;       // 500us set by user  
	     TH1 = 0x0 ;        
		  }
      else
      {
        TL1 = 0xC2 ;  //100us
	      TH1 = 0xC2 ;
		    i=1; 
	    }
      TR1 = 1;           // TCON.6  start timer   
      for(;i;i--){while(!_testbit_(TF1));P1_6=!P1_6;}
      TR1=0; //stop timer
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?