⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 27.c

📁 利用定时计数器功能
💻 C
字号:
#include<AT89X51.H>
unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x00,0x40};
unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};
unsigned char temp[8];
unsigned char dispcount;
unsigned char T0count;
unsigned char timecount;
bit flag;
unsigned long x;

void main(void)
{
   unsigned char i;
   
   TMOD=0x15;
   TH0=0;
   TL0=0;
   TH1=(65535-4000)/256;
   TL1=(65536-4000)%256;
   TR1=1;
   TR0=1;
   ET0=1;
   ET1=1;
   EA=1;

   while(1)
     {
	   if(flag==1)
	     {
		   flag=0;
		   x=T0count*65536+TH0*256+TL0;
		   for(i=0;i<8;i++)
		     {
			   temp[i]=0;
			 }
		   i=0;
		   while(x/10)
		     {
			   temp[i]=x%10;
			   x=x/10;
			   i++;
			 }
		   temp[i]=x;
		   for(i=0;i<6;i++)
		     {
			   dispbuf[i]=temp[i];
			 }
		   timecount=0;
		   T0count=0;
		   TH0=0;
		   TL0=0;
		   TR0=1;
		 }
	 }

}

void t0(void) interrupt1 using 0
{
  T0count++;
}

void t1(void) interrupt 3 using 0
{
  TH1=(65536-4000)/256;
  TL1=(65536-4000)%256;
  timecount++;
  if(timecount==250)
    {
	  TR0=0;
	  timecount=0;
	  flag=1;
	}
  P0=dispcode[dispbuf[dispcount]];
  P2=dispbit[dispcount];
  dispcount++;
  if(dispcount==8)
    {
	  dispcount=0;
	}
}

⌨️ 快捷键说明

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