在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)用C語(yǔ)言實(shí)現(xiàn)交通燈

            51單片機(jī)用C語(yǔ)言實(shí)現(xiàn)交通燈

            作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
            51單片機(jī)C語(yǔ)言實(shí)現(xiàn)交通燈(紅綠燈)源程序
            交通燈,紅黃綠燈交替亮,怎樣實(shí)現(xiàn)呢?其實(shí)就是根據(jù)單片機(jī)定時(shí)器及倒計(jì)時(shí)的程序修改。

            源程序如下:



            #include

            bit red,green,yellow,turnred; //定義紅、黃、綠及轉(zhuǎn)紅標(biāo)志

            code unsigned char tab[]=
            {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
            //共陰數(shù)碼管 0-9

            unsigned char Dis_Shiwei;//定義十位
            unsigned char Dis_Gewei; //定義個(gè)位
            void delay(unsigned int cnt) //用于動(dòng)態(tài)掃描數(shù)碼管的延時(shí)程序
            {
            while(--cnt);
            }

            main()
            {

            TMOD |=0x01;//定時(shí)器設(shè)置 10ms in 12M crystal定時(shí)器0,工作方式1,16位定時(shí)器
            TH0=0xd8; //65535-10000=55535=D8F0(十六進(jìn)制)
            TL0=0xf0;
            IE= 0x82; //中斷控制,EA=1開總中斷,ET0=1:定時(shí)器0中斷允許
            TR0=1; //開定時(shí)器0中斷

            P1=0xfc;//紅燈亮,根據(jù)紅黃綠接燈的順序。
            red =1;
            while(1)
            {
            P0=Dis_Shiwei;//顯示十位,這里實(shí)現(xiàn)用8位數(shù)碼管,即左1位
            P2=0;
            delay(300);//短暫延時(shí)
            P0=Dis_Gewei; //顯示個(gè)位,左數(shù),2位
            P2=1;
            delay(300);
            }

            }



            void tim(void) interrupt 1 using 1
            {
            static unsigned char second=60,count; //初值60

            TH0=0xd8;//重新賦值,10毫秒定時(shí)
            TL0=0xf0;
            count++;
            if (count==100)
            {
            count=0;
            second--;//秒減1
            if(second==0)
            { //這里添加定時(shí)到0的代碼 ,可以是燈電路,繼電器吸合等,或者執(zhí)行一個(gè)程序
            if(red) //紅滅,先轉(zhuǎn)黃
            {
            red=0;yellow=1;
            second=4;
            P1=0xF3;//黃燈亮4秒,黃燈為過(guò)渡燈,再根據(jù)情況轉(zhuǎn)綠或轉(zhuǎn)紅
            }
            else if(yellow && !turnred)
            {
            yellow=0;green=1;
            second=25;
            P1=0xCF;//綠燈亮25秒,
            }
            else if(green)
            {
            yellow=1;green=0;
            second=4;
            P1=0xF3;//黃燈亮4秒
            turnred=1;
            }
            else if(yellow && turnred) //綠燈滅,轉(zhuǎn)黃燈,后紅燈,turnred=1時(shí)
            {
            red=1;yellow=0;
            P1=0xFC;//紅燈亮60秒
            second=60;
            turnred=0; //接下來(lái)是轉(zhuǎn)黃,綠。
            }

            }
            Dis_Shiwei=tab[second/10];//十位顯示值處理
            Dis_Gewei=tab[second]; //個(gè)位顯示處理

            }
            }


            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉