首頁>Club>
4
回覆列表
  • 1 # 薩利文

    flag是程式設計師自己起的變數名,一般情況下將其看作為標誌位。我們通常將它視為uchar型變數,將flag賦值時,有flag=!1(flag不等於1)和flag=1;它的作用主要是讓微控制器的一項功能實現不同的操作,不同的操作通常時間先後順序不等,不同的操作即透過設定flag=!1(flag不等於1)和flag=1予以區別開來。舉個例子:我們要在定時器T0中先後實現1秒和2秒的不同定時,在C語言中,我們定義好的flag變數預設為是0,我們假設先實現1秒的定時,在中斷程式中,我們先寫if(flag!=1){。。。} 後面再寫else { .........}。在不同的語句中就可以實現一個定時器T0為兩個不同的中斷服務。

    具體程式如下:

    void dt0() interrupt 1

    {

    TH0=(65536-50000)/256;

    TL0=(65536-50000)%256;

    t0++;

    if(flag!=1)

    {

    if(t0==10) //流水燈程式

    {

    t0=0;

    temp=_crol_(temp,1);

    P1=temp;

    }

    }

    else //當flag等於1時執行下面的語句

    {

    if(t0%4==0)

    P1=~P1;//對流水燈的電位取反

    if(t0==60)//如果三秒鐘時間到

    {

    TR0=0;

    P1=0;

    flag1=1;

    }

    }

    }

  • 中秋節和大豐收的關聯?
  • 基德是啥動畫片?