找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1321|回復(fù): 0
收起左側(cè)

單片機定時器中斷

[復(fù)制鏈接]
ID:730131 發(fā)表于 2020-4-29 11:20 | 顯示全部樓層 |閱讀模式
#include <reg51.h>
#define  unit   unsigned  int
#define  uchar  unsigned  char
bit      BT0;
void  delay(unit n);
main()
{
  unit b[10]={0x0C0,0x0F9,0x0A4,0x0B0,0x99,0x92,0x82,0x0F8,0x80,0x90};
  unit a,d,timecount;
  uchar  x;
  TMOD=0X01;//T0工作方式1
  TH0=0X0B1;
  TL0=0X0E0;
  TR0=1;//開啟T0
  EA=1;//開啟總中斷
  ET0=1;//開啟T0中斷
  timecount=25;

  d=10;
  a=0;
  while (1)
   {

   x=a/d;//把A的十位分離
      P2=b[x];//查數(shù)組表
   P3=0X01;//開十位片選
      delay(1);//動態(tài)掃描
   P3=0X00;//關(guān)十位片選
   x=a%d;//把A的個位分離
   P2=b[x];//查數(shù)組表
   P3=0X02;//開個位片選
   delay(1);//動態(tài)掃描
   P3=0X00;//關(guān)十位片選

  if (BT0==1)//等待中斷的到來
        BT0=1;
    if (timecount==0)//如果到了0.5S,A加1
       {a=a+1;
              timecount=25;
    }
    else
    timecount--;
}

}
void  delay(unit n)//延時程序
{ unit  y;
   unit  j;
   for (y=n;y>0;y--)
      for(j=5000;j>0;j--)
   {;}
  }void T0SER (void) interrupt 1 using 1//T0重新賦初植
{
  TH0=0X0B1;
  TL0=0X0E0;
  BT0=1;

}
類似這樣的定時器中斷設(shè)計00-99的啟動停止及清除

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表