计数程序(可作电机测速用)

#include
#define uint unsigned int
#define uchar unsigned char

uchar flag=0,tmp;

/*#################串口传输################*/
void chuanko()
{
 TMOD=0x21;   //T1为定时模式
//串口设置
 TH1=0xfd;
 TL1=0xfd;
 TR1=1;  //启动定时器1
 SM0=0;
 SM1=1;
 REN=1;
 ES=1;  //开串行口中断
 SBUF=tmp;
 while(!TI);
 TI=0;
 
}

/*####################主程序部分####################*/
void main()
{
 EA=1;  //开所有中断
 ET0=1;      //开T0
 ET1=1;      //开T1
 TMOD=0x51;  //T0方式1,T1方式1且作计数器
 TH0=(65536-25000)/256;
 TL0=(65536-25000)%256;
 TH1=0;
 TL1=0;
 TR1=1;  //启动T1
 TR0=1;  //启动T0
 while(1)
 {
  if(flag==1)
  {
   TR0=0;
   flag=0;
   tmp=TL1|(TH1<<8);   //取T1中的数值
   chuanko();
   TMOD=0x51;  //T0方式1,T1方式1且作计数器
   TH1=0;
   TL1=0;
   TR0=1;
  }
 }
}

/*************************************/
void time0() interrupt 1
{
 TH0=(65536-25000)/256;
 TL0=(65536-25000)%256;
 flag=1;
}

void serial() interrupt 4
{

}

你可能感兴趣的:(计数程序(可作电机测速用))