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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2189|回復(fù): 1
收起左側(cè)

51單片機(jī)紅綠黃智能交通燈Proteus仿真程序

[復(fù)制鏈接]
ID:1054434 發(fā)表于 2022-12-1 16:15 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. //unsigned char digtub[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  3. unsigned char digtub[]={0xC0,0xf9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,
  4.                                         0x90};

  5. sbit LSA=P2^2;
  6. sbit LSB=P2^3;
  7. sbit LSC=P2^4;
  8. sbit lred=P2^0;//東西方紅燈
  9. sbit lgreen=P2^1;//東西方綠燈
  10. sbit lyellow=P2^7;//東西方黃燈
  11. sbit rred=P2^5;        //南北方紅燈
  12. sbit rgreen=P3^0;//南北方綠燈
  13. sbit ryellow=P2^6;


  14. sbit L1=P3^4;
  15. sbit L2=P3^5;
  16. typedef unsigned int u16;
  17. typedef unsigned char u8;
  18. u8  dat[4];
  19. void show();
  20. void delay(u16 ms)
  21. {
  22. u16 j;
  23. for(ms;ms>0;ms--)
  24. for(j=0;j<120;j++);
  25. }

  26. void timer_init()
  27. {
  28. TMOD|=0X01;
  29. TH0=(65536-50000)/256;
  30. TL0=(65536-50000)%256;
  31. TR0=1;
  32. ET0=1;
  33. EA=1;
  34. }
  35. void interr() interrupt 1
  36. {
  37. static u16 num=0;
  38. static u16 i=31,a;
  39. static u16 k=56,j;
  40. static u16 q=26,b,l;
  41. static u16 p=0;
  42. TH0=(65536-50000)/256;
  43. TL0=(65536-50000)%256;
  44. num++;

  45. if(num==20)
  46.     {
  47.         num=0;
  48.         i--;
  49.         k--;
  50.         q--;
  51.         if(j==2&&i==0){i=5;j=3;}
  52.         if(j==3&&i==0){i=30;k=55;a=0;b=0;j=0;}
  53.         if(i>=5&&!a)lred=0;
  54.         else{lred=1;}
  55.         if(i<5&&i>=0&&j==3){a=1;lyellow=~lyellow;lgreen=1;}
  56.           if(i<5&&i>=0&&!b){a=1;lyellow=~lyellow;lgreen=1;}
  57.         if(i<=0){i=k;lyellow=1;b=1;lgreen=0;a=1;j=2;}                                                                                    
  58.         
  59.         if(q==0&&!l){q=5;l=1;}
  60.         if(q<=0&&l==3){q=25;l=0;}
  61.         if(q==0&&l==1){q=30;l=3;}
  62.    
  63.         if(q>0&&!l){rgreen=0; rred=1;ryellow=1;}
  64.         if(q<=5&&q>0&&l==1){ryellow=~ryellow;rgreen=1;}
  65.         if(q>5&&l==3){rred=0;ryellow=1;}
  66.         if(q<=5&&q>0&&l==3){ryellow=~ryellow;rred=1;}
  67.                
  68.         dat[0]=digtub[i/10];        
  69.         dat[1]=digtub[i%10];        
  70.         dat[2]=digtub[q/10];
  71.     dat[3]=digtub[q% 10];                                                                             
  72.         

  73.         }
  74. }
  75. void main()
  76. { u8 g;
  77. timer_init();
  78. while(1)
  79. {
  80. show();
  81. delay(20);

  82.   for(g=0;g<2;g++)
  83.   {
  84.   P1=0XFF;
  85.   switch(g)
  86.   {
  87.   case 0:L1=1;L2=0;
  88.   P1=dat[2];delay(10); break;
  89.   case 1: L1=0;L2=1;
  90.    P1=dat[3];
  91.    delay(10);        break;
  92.    default:break;
  93.   }
  94.   }  
  95. }
  96. }

  97. void show()
  98. {
  99. u16 i;

  100. for(i=0;i<2;i++)
  101.   {
  102.                                              /*1278為東西方向數(shù)碼管,3456為南北方向數(shù)碼管*/
  103.   switch(i)
  104.        { P0=0XFF;
  105.            case 1:LSA=0;LSB=0;LSC=0;P0=dat[0];delay(10);break;         //1        
  106.           case 0:LSA=1;LSB=0;LSC=0;P0=dat[1];delay(10);P1=0XFF;break;          //2
  107.                                                                                                                            
  108.            //case 2:LSA=1;LSB=1;LSC=1;P1=dat[1];delay(10); break;        //8
  109.            //case 3:LSA=0;LSB=1;LSC=1;P1=dat[0];delay(10);break;  //7
  110.          //  case 0:LSA=0;LSB=0;LSC=1;P1=dat[0];delay(10);break; //5
  111.           //case 1:LSA=1;LSB=0;LSC=1;P1=dat[1];delay(10); break; //6
  112.           // case 7:LSA=1;LSB=1;LSC=0;P1=dat[0];delay(10); break; //4
  113.            //case 8:LSA=0;LSB=1;LSC=0;P1=dat[1];delay(10);break;//3                                                                                                                                          
  114.            default:break;
  115.            }
  116.   }



  117. }
復(fù)制代碼

Keil代碼與Proteus仿真下載:
紅綠黃智能交通燈.7z (78.19 KB, 下載次數(shù): 90)
回復(fù)

使用道具 舉報(bào)

ID:1025912 發(fā)表于 2022-12-5 15:07 | 顯示全部樓層
頂一下,學(xué)習(xí)中!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久成人一区二区三区 | av免费网站在线观看 | 中文字幕国产 | 久久久久国产一区二区三区四区 | 操操日| av电影一区 | 亚洲综合无码一区二区 | 男人的天堂在线视频 | 久久国产精品视频 | 亚洲欧美视频一区 | 韩日精品一区 | 成人欧美一区二区三区色青冈 | 欧美激情在线播放 | 九九免费视频 | 亚洲国产成人av好男人在线观看 | 日韩欧美1区2区 | 超碰人人91 | 天天天天操 | 欧美日韩成人网 | 香蕉久久网 | 日本高清视频在线播放 | 中文字幕乱码视频32 | 国产精品亚洲成在人线 | 精品国产乱码久久久久久a丨 | 成人在线中文字幕 | 好婷婷网| 亚洲一区精品在线 | 亚洲成av片人久久久 | 国产精品18毛片一区二区 | 免费a网| av网站在线免费观看 | 国产精品乱码一区二三区小蝌蚪 | 一级毛片免费视频 | 成人在线视频网 | 久久亚洲一区 | 精品久久ai电影 | 久久av综合| 国产精久久久久久 | 欧美.com| 九九热精品在线 | 国产一区二区在线免费 |