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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1069|回復: 0
打印 上一主題 下一主題
收起左側

智能PC控制交通燈 仿真帶程序

[復制鏈接]
跳轉到指定樓層
樓主

#include <reg51.h>                                //???#include <uart.h>
#define uchar unsigned char
#define uint  unsigned int                //???
uchar flag=0;
uchar Sendnum=0;
uchar num=0;
uchar Receivedata[6];





uchar data buf[4];                                        //??????
uchar data sec_dx=20;                          //?????
uchar data sec_nb=30;                        //?????
uchar data set_timedx=20;                //?????????
uchar data set_timenb=30;                //?????????
int n;
uchar data countt0,countt1;//???0????
//??6???
sbit  k4=P3^7;      //????
sbit  k1=P3^5;                //???
sbit  k2=P3^6;                //???
sbit  k3=P3^4;                //??
sbit  k5=P3^1;                //??
sbit  k6=P1^5;                //????


sbit Red_nb=P2^6;                //??????
sbit Yellow_nb=P2^5;        //??????
sbit Green_nb=P2^4;     //??????

sbit Red_dx=P2^3;                //??????
sbit Yellow_dx=P2^2;        //??????
sbit Green_dx=P2^1;                //??????

sbit Buzz=P3^0;               
bit set=0;                                //????????? =1?,??,=0?,??
bit dx_nb=0;                        //???????
bit shanruo=0;                        //?????
bit yejian=0;                        //?????????

uchar code table[11]={        //??????
        0x3f,  //--0
        0x06,  //--1
        0x5b,  //--2
        0x4f,  //--3
        0x66,  //--4
        0x6d,  //--5
        0x7d,  //--6
        0x07,  //--7
        0x7f,  //--8
        0x6f,  //--9
        0x00   //--NULL
};

//???????
void delay(int ms);                        //?????
void key();                                        //???????
void key_to1();                                //??????
void key_to2();
void key_to3();
void display();                                //?????
void logo();                                   //??LOGO
void Buzzer();
//???
void main()
{
        TMOD=0X11;                                           //?????
        TH1=0X3C;               
        TL1=0XB0;
        TH0=0X3C;                                        //???0??? 0.05S
        TL0=0XB0;
        EA=1;                                                //????
        ET0=1;                                                //???0????
        ET1=1;                                           //???1????
        TR0=1;                                                //????0
        TR1=0;                                                         //????1
        EX0=1;                                                //?????0
        EX1=1;                                                //?????1
    logo();                                                //?????
        P2=0Xc3;                                        // ??????,????,????   
    sec_nb=sec_dx+5;                         //????????????5?
        while(1)                                          //???
        {         
                key();                                         //????????
                display();                                 //??????
        }        
}
//???????
void key(void)        //???????
{         
        if(k1!=1)                                                        //?K1(???)???
        {
                display();                                       //????,??????
                if(k1!=1)                                                        //??????
                {
                          TR0=0;                                               //????        
                        shanruo=0;                                        //??????
                        P2=0x00;                                        //???
                        TR1=0;                                                        //????1
                        if(set==0)                                        //?????
                                set_timedx++;                   //???1S
                        else
                                set_timenb++;                    //???1S
                        if(set_timenb==100)
                                set_timenb=1;
                        if(        set_timedx==100)
                                set_timedx=1;                   //??100?1
                        sec_nb=set_timenb ;                 //???????????
                        sec_dx=set_timedx;                        
                          do
                         {
                                display();                                 //????,????
                        }
                        while(k1!=1);                         //??????
                }
        }

        if(k2!=1)                                                        //?K2(???)?????
        {               
                display();                                       //????,??????  
                if(k2!=1)                                                //??????
                {        
                         TR0=0;                                         //????0        
                        shanruo=0;                                        //??????
                        P2=0x00;                                        //???
                        TR1=0;                                                //????1        
                        if(set==0)
                                set_timedx--;                          //???1S
                        else
                                set_timenb--;                          //???1S
                        if(set_timenb==0)
                                set_timenb=99;        
                        if(        set_timedx==0 )
                                set_timedx=99;                   //??1??99
                        sec_nb=set_timenb ;                         //???????????
                        sec_dx=set_timedx;
                          do        
                    {
                                display();                       //????,????
                        }
                        while(k2!=1);                           //??????
                }
        }

        if(k3!=1)                                                        //?K3(??)????
        {        
                display();                                       //????,??????
                if(k3!=1)                                                //??????
                {
                        TR0=1;                                                  //?????0
                        sec_nb=set_timenb;                                //?????,?????????
                        sec_dx=set_timedx;                                //????????
                        TR1=0;                                                        //????1        
                        if(set==0)                                                //?????0?
                        {
                                P2=0X00;                                         //???
                                Green_dx=1;                                                //?????
                                Red_nb=1;                                        //?????
                                sec_nb=sec_dx+5;                         //????
                        }
                        else
                        {
                                P2=0x00;                                        //????,????
                                Green_nb=1;
                                Red_dx=1;
                                sec_dx=sec_nb+5;
                        }
                }
        }

        if(k4!=1)                                                        //?K4(??)???
    {
                display();                                       //????,??????
                if(k4!=1)                                                //??????
                {  
                         TR0=0;                                                //????0        
                        set=!set;                                        //??set???,???????
                        TR1=0;                                                //????1
                        dx_nb=set;
                        do
                        {
                                display();                            //????,????
                        }                                
                        while(k4!=1);                          //??????
                }
        }        

        if(k5!=1)                                                        //?K5(??)????
        {
                   display();                                       //????,??????
                   if(k5!=1)                                                //??????
                   {         
                    TR0=0;                                                //????
                        P2=0x00;                                        //???
                        Red_dx=1;
                        Red_nb=1;                                        //?????
                        TR1=0;
                        sec_dx=00;                                        //?????????00
                        sec_nb=00;
                        do
                        {
                                display();                                 //????,????
                        }        
                        while(k5!=1);                        //??????        
                   }
        }
        if(k6!=1)                                                        //?K6(????)??
        {
                   display();                                       //????,??????
                   if(k6!=1)                                                //??????
                   {         
                    TR0=0;                                                //????
                        P2=0x00;
                        TR1=1;
                        sec_dx=00;                                        //?????????00
                        sec_nb=00;
                        do
                        {
                                display();                           //????,????
                        }        
                        while(k6!=1);                        //??????        
                   }
        }
}
void display(void) //?????
{               
        buf[1]=sec_nb/10;                 //?1? ?????
        buf[2]=sec_nb%10;                 //?2? ?????
        buf[3]=sec_dx/10;                 //?3? ?????
        buf[0]=sec_dx%10;                 //?4? ?????               
        P1=0xff;                          // ??????
        P0=0x00;                                 ////???
        P1=0xfe;                           //??LED1
        P0=table[buf[1]];                //?????????????                        
        delay(1);                                //??
        P1=0xff;                                //???
        P0=0x00;                                //???

        P1=0xfd;                     //??LED2
        P0=table[buf[2]];                 //?????????????
        delay(1);                                 //??
        P1=0xff;                                //???
        P0=0x00;                                //???
        P1=0Xfb;                                  //??LED3
        P0=table[buf[3]];                //?????????????
        delay(1);                                //??
        P1=0xff;                                 //???
        P0=0x00;                                 //???
        P1=0Xf7;                                 //??LED4        
        P0=table[buf[0]];                //?????????????
        delay(1);                                //??
}

void time0(void) interrupt 1 using 1          //???????
{
        TH0=0X3C;                                                        //????
        TL0=0XB0;                                                        //12m??50ms//????
        TR0=1;                                                                //???????
        countt0++;                                                        //?????1
        if(countt0==10)                                                //??10?????
        {
                if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1))                  //?????               
        {
                        Green_dx=0;
                        Yellow_dx=0;
                        Buzz=0;                                                //????
                }                                                   
            if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1))                  //?????               
        {  
                        Green_nb=0;
                        Yellow_nb=0;
                        Buzz=0;                                           //????
                }        
        }

        if(countt0==20)                                  // ???????=20?(?1??)
        {        countt0=0;                                                //?????
                sec_dx--;                                                //?????1
                sec_nb--;                                                //?????1

                if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1))                  //?????               
        {
                        Green_dx=0;
                        Yellow_dx=1;
                        Buzz=1;                                                 //????
                }                                                   
            if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1))                  //?????               
        {  
                        Green_nb=0;
                        Yellow_nb=1;
                        Buzz=1;                                                 //????
                }                                                                 
                if(sec_dx==0&&sec_nb==5)                 //???????0?,??5?,????????   
                {
                        sec_dx=5;
                        shanruo=1;
                }
                if(sec_nb==0&&sec_dx==5)                //???????0?,??5?,????????   
                {
                        sec_nb=5;
                        shanruo=1;
                }
                if(dx_nb==0&&sec_nb==0)                        //???????????0?,
                {
                     Buzz=1;                                                //????
                        P2=0x00;                                        //????????????
                        Green_nb=1;
                        Red_dx=1;
                        dx_nb=!dx_nb;
                        shanruo=0;
                        sec_nb=set_timenb;                        //??????????
                        sec_dx=set_timenb+5;                //??????????
                }               
                if(dx_nb==1&&sec_dx==0)                        //????????
                {
                        P2=0X00;                                        //????????????
                        Green_dx=1;                                         //?????
                        Red_nb=1;                                         //?????
                        dx_nb=!dx_nb;                                 //??
                        shanruo=0;                                        //??
                        sec_dx=set_timedx;                        //??????????
                        sec_nb=set_timedx+5;                //??????????
                }
        }        
}
void time1(void) interrupt 3         //???????
{
        TH1=0X3C;                                                        //????
        TL1=0XB0;                                                        //12m??50ms//????
        countt1++;                                                        //?????1
        if(countt1==10)                                           // ???????=10?(?0.5?)
        {
                        Yellow_nb=0;                                //?????
                        Yellow_dx=0;                                //?????
                        revset();if(control>0)break;//2é¿′óDûóD½óêÕμÄêy¾Y2¢′|àí11111111111111111111111111111111111111111111111
        }
        if(countt1==20)                                  // ???????=20?(?1??)
        {        countt1=0;                                                //?????
                        Yellow_nb=1;                                        //?????
                        Yellow_dx=1;                                  //?????
                        revset();if(control>0)break;//2é¿′óDûóD½óêÕμÄêy¾Y2¢′|àí1221111111111111111111111111111111111111
        }        
}


//????0
void int0(void) interrupt 0 using 1           //???????
{
        TR0=0;                                                                //????0
        TR1=0;                                                                //????1
        P2=0x00;                                                        //???
        Green_dx=1;                                                        //???????
        Red_nb=1;                                                        //???????
        sec_dx=00;                                                        //?????????00
        sec_nb=00;        
}

//????1
void int1(void) interrupt 2 using 1                   //???????
{
        TR0=0;                                                                //????0
        TR1=0;                                                           //????1
        P2=0x00;                                                        //???
        Green_nb=1;                                                        //????????
        Red_dx=1;                                                        //???????
        sec_nb=00;                                                        //?????????00
        sec_dx=00;
}
void logo()//???Logo  "- - - -"
{
        for(n=0;n<50;n++)        //????----50?
           {
            P0=0x40;  //??“-”
            P1=0xfe;        //?????
                delay(1);        //??
            P1=0xfd;        //?????
                delay(1);        //??
                P1=0Xfb;        //?????
                delay(1);        //??
                P1=0Xf7;        //?????
                delay(1);        //??
            P1 = 0xff;        //???
        }
}

void delay(int ms)                //?????
{
        uint j,k;
        for(j=0;j<ms;j++)                        //??ms
           for(k=0;k<124;k++);                //??1?????
}



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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产午夜精品久久久久免费视高清 | 国产三区视频在线观看 | 国产69精品久久久久777 | 国产一区二区中文字幕 | 男女爱爱福利视频 | 北条麻妃一区二区三区在线观看 | 亚洲国产精品一区二区三区 | 精品一二三 | 国产真实精品久久二三区 | 欧美亚洲激情 | 龙珠z国语版在线观看 | 国产精品高清在线 | 久久av一区| 国产成人在线观看免费 | 中文字幕免费 | 一区二区三区欧美在线 | 欧美日韩在线播放 | 在线色网| 新超碰97 | 国产在线1区| 久久综合欧美 | 免费 视频 1级 | 综合二区| 国产精品久久久亚洲 | av免费入口| 久久精品亚洲精品国产欧美 | 2018国产精品| 91精品国产手机 | www.yw193.com| 91在线精品一区二区 | 欧美成人激情视频 | 黄a在线播放 | 国产偷录视频叫床高潮对白 | 亚洲国产成人在线视频 | 久久高清免费视频 | 久久国产成人午夜av影院武则天 | 亚洲人成一区二区三区性色 | 久草免费视 | 九九久久久| 国产婷婷精品av在线 | 蜜桃久久 |