久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1890|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)交通信號(hào)燈程序如何加入黃燈等待時(shí)間內(nèi)流水燈閃爍?求指導(dǎo)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
下列程序?qū)崿F(xiàn)了紅綠燈的數(shù)碼顯示及對(duì)應(yīng)的流水燈顯示,但是沒(méi)有實(shí)現(xiàn)在黃燈等待時(shí)間內(nèi)流水燈閃爍,求解答一下,嘗試過(guò)直接在流水燈下邊直接加入延時(shí)函數(shù),但是數(shù)碼管進(jìn)行了閃爍而流水燈沒(méi)有閃爍求指點(diǎn)一下。圖片為使用開(kāi)發(fā)板,附錄為單片機(jī)原理圖。

單片機(jī)源程序如下:
#include <REGX52.H>
#define uint unsigned int
#define uchar unsigned char
sbit nsred=P1^0;
sbit nsgreen=P1^1;
sbit nsyellow=P1^2;
sbit ewred=P1^4;
sbit ewgreen=P1^5;
sbit ewyellow=P1^6;
sbit wela=P2^6;
sbit dula=P2^7;
#define nsred() do{nsred=0;nsgreen=1;nsyellow=1;} while(0);
#define nsgreen() do{nsred=1;nsgreen=0;nsyellow=1;} while(0);
#define nsyellow() do{nsred=1;nsgreen=1;nsyellow=0;} while(0);
#define ewred() do{ewred=0;ewgreen=1;ewyellow=1;} while(0);
#define ewgreen() do{ewred=1;ewgreen=0;ewyellow=1;} while(0);
#define ewyellow() do{ewred=1;ewgreen=1;ewyellow=0;} while(0);
#define yeltime 4
#define ewtime 28+yeltime
#define nstime 16+yeltime
uchar t=ewtime;
uchar flag=1;
uchar tt=0;
uchar keyflag=0;
uchar table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar table2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
sbit key2=P3^4;
sbit key3=P3^5;
void delayms(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)
        for(j=110;j>0;j--);
}
void display1(uint num1,uint num2)
{
        P0=0xff;
        wela=1;
        P0=table1[num1];
        wela=0;
        
        dula=1;
        P0=table2[0];
        dula=0;
        delayms(3);
        
        P0=0xff;
        wela=1;
        P0=table1[num2];
        wela=0;
        
        dula=1;
        P0=table2[1];
        dula=0;
        delayms(3);
        
}
void display2(uint num3,uint num4)
{
        P0=0xff;
        wela=1;
        P0=table1[num3];
        wela=0;
        
        dula=1;
        P0=table2[4];
        dula=0;
        delayms(3);
        
        P0=0xff;
        wela=1;
        P0=table1[num4];
        wela=0;
        
        dula=1;
        P0=table2[5];
        dula=0;
        delayms(3);
}
void INIT()
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        ET0=1;
        TR0=1;
}
void keyscan()
{
        if(key2==0)
        {
                delayms(10);
                if(key2==0)
                {
                        keyflag=1;
                }
        }
        if(key3==0)
        {
                delayms(10);
                if(key3==0);
                {
                        flag=1;
                        keyflag=0;
                        t=ewtime;
                }
        }
}
void main()
{        
        INIT();
        EA=1;
        nsgreen=1;
        nsred=1;
        nsyellow=1;
        ewred=1;
        ewgreen=1;
        ewyellow=1;
        while(1)
        {
                keyscan();
                if(flag==1)
                {
                        display1(t/10,t%10);
                        display2(t/10,t%10);
                        nsred();
                        ewgreen();
                        //nsred=0;
                        //ewgreen=0;
                                if(t>4)
                        {
                                ewgreen();
                        }
                        if(t>=0&&t<5) ewyellow();
                        if(t==0)
                        {
                                flag=0;
                                t=nstime;
                        }
                }
               
                if(flag==0)
                {
                        display1(t/10,t%10);
                        display2(t/10,t%10);
                        nsgreen();
                        ewred();
                                if(t>4)
                        {
                                nsgreen();
                        }
                        if(t>=0&&t<5)
                        {
                                nsyellow();
                                ewred();
                        }
                        if(t==0)
                        {
                                flag=1;
                                t=ewtime;
                        }        
                }
               
                if(keyflag==1)
                {
                        dula=1;
                        P0=0xff;
                        dula=0;
                        nsred();
                        ewred();
                        flag=2;
                        
                }
        }
}
void t0()interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        tt++;
        if(tt==9)
        {
                tt=0;
                t--;
        }
}


IMG_20210909_145254.jpg (195.13 KB, 下載次數(shù): 65)

IMG_20210909_145254.jpg

TX-1C增強(qiáng)版原理圖.pdf

943.37 KB, 下載次數(shù): 1

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黄a大片 | 欧美视频一级 | 中文字幕一区在线观看视频 | 欧美一区在线视频 | 2021狠狠天天天 | 艹逼网| 精品国产一区二区在线 | 欧美日日 | 国产亚洲精品综合一区 | av在线影院 | 日本一区二区在线视频 | 日韩激情视频一区 | 日本精品一区二区三区视频 | 射欧美 | 999久久| 国产成人精品免高潮在线观看 | 国产ts一区 | 成人精品一区二区三区四区 | 中文字幕在线免费视频 | 久久久久亚洲精品 | 成人一区精品 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 国产免费观看一级国产 | 国产精品资源在线观看 | av天天看| 欧美日韩亚洲视频 | 亚洲高清网| 91精品国产日韩91久久久久久 | 亚洲国产精品一区二区第一页 | 久久大 | 精品福利一区二区三区 | 嫩草视频网站 | 国产免费一区二区三区 | 国产精品区二区三区日本 | 精品视频久久久 | 久久久久久91 | 久久99这里只有精品 | 欧美淫片 | 欧美一级免费看 | 99reav| 久草免费在线视频 |