新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一款簡潔的單片機交通燈程序

        一款簡潔的單片機交通燈程序

        作者: 時間:2016-11-25 來源:網絡 收藏
        這是一款簡潔的,用了兩只數碼管進行倒計時顯示,實現的:首先東西方向紅燈50秒,此時南北綠燈50秒,并且數碼管顯示倒計時從49到00;然后所有方向的黃燈閃爍5秒,并且數碼管顯示5秒倒計時;接著東西綠燈35秒,此時南北紅燈35秒,數碼管顯示35秒倒計時;再接著所有黃燈在閃爍5秒,數碼管5秒倒計時;循環第1到第4步。程序源碼:

        #include
        #define uint unsigned int
        #define uchar unsigned char
        sbit shiw=P3^0;//顯示十位引腳聲明
        sbit gew=P3^1; //顯示個位引腳聲明
        uchar code table[]={
        0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71};//數碼管顯示編碼
        uint t0,shu,shi,ge,aa;
        void display(uint shi,uint ge);//顯示程序聲明
        void delay(uint z)//延時子程序http://www.5imcu.net/
        {
        uint x,y;
        for(x=110;x>0;x--)
        for(y=z;y>0;y--);
        }
        void flicker()//黃燈閃爍子程序
        {
        P0=0x1b;
        delay(10);
        P0=0xff;
        delay(10);
        }
        void init()//定時器初始化程序
        {

        本文引用地址:http://www.104case.com/article/201611/321454.htm

        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)MOD256;
        EA=1;
        ET0=1;
        EX0=1;
        TR0=1;
        }
        void main()
        {
        init();
        while(1)
        {
        P0=0x2e;
        shu=50;
        do display(shi,ge);
        while(aa<20*50);//東西紅燈50S
        aa=0;TR0=1;

        shu=5;
        do {flicker();
        display(shi,ge);}
        while(aa<100);//黃燈閃爍5S
        aa=0;TR0=1;

        P0=0x35;
        shu=35;
        do display(shi,ge);
        while(aa<20*35);//南北紅燈35S
        aa=0;TR0=1;
        shu=5;
        do {flicker();
        display(shi,ge);}
        while(aa<100);
        aa=0;TR0=1;//黃燈閃爍5S
        }
        }
        void timer0()interrupt 1 //定時器0中斷子程序http://www.5imcu.net/
        {
        TH0=(65536-50000)/256;
        TL0=(65536-50000)R56;
        t0++;
        aa++;
        if(t0==20)
        {
        t0=0;
        shu--;
        shi=shu/10;
        ge=shu;
        if(shu==0)
        {
        TR0=0;
        }
        }
        }
        void display(uint shi,uint ge)//顯示子程序http://www.duankudp.com/
        {
        P2=0x00;
        shiw=0;
        P2=table[shi];
        delay(1);
        shiw=1;

        P2=0x00;
        gew=0;
        P2=table[ge];
        delay(1);
        gew=1;

        }



        關鍵詞: 單片機交通燈程

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 平湖市| 日喀则市| 闽清县| 普兰店市| 云浮市| 龙海市| 赤城县| 商南县| 霍山县| 桂平市| 眉山市| 陇南市| 大兴区| 洪湖市| 竹溪县| 潜山县| 安宁市| 黄陵县| 武隆县| 赤水市| 青岛市| 于都县| 鸡西市| 伊宁市| 泸水县| 广饶县| 台北县| 富顺县| 五常市| 琼中| 宝丰县| 历史| 乐平市| 克东县| 赤壁市| 施甸县| 阿克苏市| 芮城县| 广饶县| 崇阳县| 嵩明县|