欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)做的十字路口交通燈控制仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int


uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0xc9,0x5FF,0x40     };


void delay(uint x);
void display(uchar,uchar,uchar,uchar);
void scankeys();
void traffic();  


uchar num,num1,num2,shi1,ge1,shi2,ge2,
value1,value2,value3,value4,count1,
count2,flag1,flag2;



void mian()
{

     TMOD=0x01;
     TH0=(65536-45872)/256;
     TL0=(65536-45872)%256;
     EA=1;
     ET0=1;
     TR0=1;
     value1=15;
     value2=5;
     value3=10;
     value4=5;
     num1=value1;
     num2=value2+value1;
    P1=0x41;
     while(1)
{

    if(num==20)
{
    num=0;
    num1--;
    num2--;
    traffic();
    shi1=num1/10;
    ge1=num1%10;
    shi2=num2/10;
    ge2=num2%10;
}


scankeys();
display(shi1,ge1,shi2,ge2);
}
}


void traffic()
  {
     if(num1==0)
    {
      count1++;
      if(count1==1)
     {
       P1=0x42;
       num1=value2;
      }
      if(count1==2)
      {
       P1=0x14;
       num1=value3+value4;
      }
       if(count1==3)
      {
       P1=0x41;
       num1=value1;
       count1=0;

      }
}

if(num==0)
{
count2++;
if(count2==1)
{
    P1=0x14;
    num2=value3;
}
if(count2==2)
{
    P1=0x24;
    num2=value4;
}
if(count2==3)
{
    P1=0x41;
    num2=value1+value2;
    count2=0;
}

}

}      

void display(uchar shi1,uchar ge1,uchar shi2,uchar ge2)
{
     uchar temp;
     temp=P2;
     P2=0xfe;
     P0=table[shi1];
     delay(5);
     P2=0xfd;
     P0=table[ge1];
     delay(5);
     P2=0xfd;
     P0=table[shi2];
     delay(5);
     P2=0xf7;
     P0=table[ge2];  
     delay(5);
}

void delay(uint x)
{

   uint i,j;
   for(i=x;i>0;i--)
   for(j=110;j>0;j--);
}


void scankeys()
{
    uchar temp,key;
    P3=0xfe;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
{
    delay(10);
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
{
    temp=P3;
    switch(temp)
{
    case 0xee:key=0;break;
    case 0xde:key=1;break;
    case 0xbe:key=2;break;
    case 0x7e:key=3;break;
}

while(temp!=0xf0)
{
     temp=P3;
     temp=temp&0xf0;
}

if(key==0)
{
    TR0=~TR0;
    flag1=~flag1;
    flag2=~flag2;
}


if(key==1&&flag1==0)
{

    TR0=0;
    P1=0x44;
    shi1=ge1=shi2=ge2=16;
}

if(key==2&&flag2==0)
{

   TR0=1;
   num=0;
   P1=0x41;
   num1=value1;
   num2=value2+value1;
   shi1=num/10;
   ge1=num1%10;
   shi2=num2/10;
   ge2=num2%10;
}

if(key==3&&P1==0x44)
{
   P1=0xff;
   delay(1000);
   P1=~P1;
   shi1=ge1=shi2=ge2=17;
   P1=0x44;
}

}
}
    P3=0xf7;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
{
    delay(10);
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
{
    temp=P3;
    switch(temp)
{
    case 0xe7:key=0;break;
    case 0xd7:key=1;break;
    case 0xb7:key=2;break;
    case 0x77:key=3;break;
}

while(temp!=0xf0)
{
     temp=P3;
     temp=temp&0xf0;
}

if(key==0&&P1==0x44)
{
    P1=0x41;
    shi1=ge1=shi2=ge2=18;
}
if(key==1&&P1==0x44)
{
    P1=0x41;
    shi1=ge1=shi2=ge2=18;
}
if(key==2&&P1==0x44)
{
    P1=0x41;
    shi1=ge1=shi2=ge2=18;
}
  if(key==3&&P1==0x44)
{
    P1=0x41;
    shi1=ge1=shi2=ge2=18;
}
}
}


P3=0xfd;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
{
    delay(10);
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
{
    temp=P3;
    switch(temp)
{
    case 0xeb:key=0;break;
    case 0xdb:key=1;break;
    case 0xbb:key=2;break;
    case 0x7b:key=3;break;
}

while(temp!=0xf0)
{
     temp=P3;
     temp=temp&0xf0;
}

if(key==0&&P1==0x44)
{
    num2=value3;
    if(num1!=159)
{
num2++;
value3=num2;
}

   shi2=num2/10;
   ge2=num2%10;
   num1=value3+value4;
   shi1=num1/10;
   ge1=num1%10;
}


if(key==1&&P1==0x44)
{  num2=value4;
    if(num1!=159)
{
num2++;
value4=num2;
}

   shi2=num2/10;
   ge2=num2%10;
   num1=value3+value4;
   shi1=num1/10;
   ge1=num1%10;
}


if(key==2&&P1==0x44&&value3>3)
{  num2=value3;
   num2--;
value3=num2;

   shi2=num2/10;
   ge2=num2%10;
   num2=value3+value4;
   shi1=num1/10;
   ge1=num1%10;
}



if(key==3&&P1==0x44&&value4>3)
{  num2=value4;
   num2--;
value4=num2;

   shi2=num2/10;
   ge2=num2%10;
   num1=value3+value4;
   shi1=num1/10;
   ge1=num1%10;
}

}
}


P3=0xf7;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
{
    delay(10);
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
{
    temp=P3;
    switch(temp)
{
    case 0xe7:key=0;break;
    case 0xd7:key=1;break;
    case 0xb7:key=2;break;
    case 0x77:key=3;break;
}
while(temp!=0xf0)
{
   temp=P3;
   temp=temp&0xf0;
}
if(key==0&&P1==0x44)
{
   P1=0x41;
   shi1=ge1=shi2=ge2=18;
}
if(key==1&&P1==0x44)
{
   P1=0x41;
   shi1=ge1=shi2=ge2=18;
}
if(key==2&&P1==0x44)
{
   P1=0x41;
   shi1=ge1=shi2=ge2=18;
}
if(key==3&&P1==0x44)
{
   P1=0x41;
   shi1=ge1=shi2=ge2=18;
}

}
}

}

void T0_time() interrupt 1
{
    TH0=(65536-45872)/256;
    TL0=(65536-45872)%256;
num++;
}

捕獲.PNG (19.3 KB, 下載次數(shù): 52)

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

使用道具 舉報(bào)

沙發(fā)
ID:527416 發(fā)表于 2019-6-14 16:37 | 只看該作者
請問信號燈是什么裝置
回復(fù)

使用道具 舉報(bào)

板凳
ID:194782 發(fā)表于 2019-6-17 21:21 | 只看該作者
好東西
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表