回覆列表
  • 1 # 使用者5754426002080

    程式碼如下:

    #include

    #define uchar unsigned char

    sbit led=P1^0;

    uchar code duan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

    uchar code wei[3]={0x06,0x05,0x03};

    void delay(uchar c);

    void ini_() //初始化函式,設定中斷觸發方式,開中斷

    {

    EA=1;

    IT0=0;

    EX0=1;

    }

    void main()

    {

    uchar i;

    ini_();

    led=0; //由於微控制器上電之後,所有的IO口預設是高電平,而要求是開始不亮,所以要將P1.0口開始設定為低電平。

    while(1)

    {

    for(i=0;i

    {

    P2=wei[i];

    P0=duan[i];

    delay(35);

    }

    }

    }

    void led_() interrupt 0 //外部中斷0函式,中斷函式不需要申明

    {

    uchar i;

    led=1; //在中斷中讓燈亮起來

    while(1)

    {

    for(i=0;i

    {

    P2=wei[i];

    P0=duan[i];

    delay(1);

    }

    }

    }

    void delay(uchar c)

    {

    uchar a,b;

    for(c;c>0;c--)

    for(a=38;a>0;a--)

    for(b=80;b>0;b--);

    }

    接線方法:

    微控制器的P2.5,P2.6,P2.7口分別接三位動態數碼管的位選端,P0口接動態數碼管的段選端。然後,P1.0口接一個電阻串聯一個LED燈然後接地,電阻取200~470歐之間就行,是一個限流電阻。中斷用的是外部中斷0,要觸發中斷的時候,就用一根杜邦線一端接地,一端接到微控制器的P3.2口就行,這樣,就滿足了你的要求了。

    外部中斷的觸發方式有低電平觸發和下降沿觸發。到底是那種觸發方式,要設定中斷允許暫存器中IT0的值,如果IT0=0,像我寫的程式,就是低電平觸發,如果為1,就是下降沿觸發。

    燈不是一定要接到P3.2口上的。中斷要執行的任務是在中斷函式中寫程式碼控制的,就像我寫的程式碼中,你只需要控制LED燈接的那個IO口就行了。

  • 中秋節和大豐收的關聯?
  • 建設銀行簡訊銀行怎麼發簡訊查詢卡里面餘額?