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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4874|回復: 1
收起左側

基于51單片機和8155的交通燈(仿真和源代碼)

[復制鏈接]
ID:258375 發表于 2017-12-7 00:30 | 顯示全部樓層 |閱讀模式
基于51單片機和8155擴展的交通燈  紅綠黃燈切換及手動切換南北的燈及東西方向的燈
proteus8.6鏈接:
游客,本帖隱藏的內容需要積分高于 10 才可瀏覽,您當前積分為 0

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.jpg 0.jpg 0.jpg

單片機代碼:

  1. #include<REG52.H>
  2. #include<absacc.h>
  3. #define COMMAND XBYTE[0X1F00]
  4. #define PA XBYTE[0X1F01]
  5. #define PB XBYTE[0x1f02]
  6. #define uchar unsigned char
  7. #define uint unsigned int
  8. sbit cs=P2^5;
  9. sbit om=P2^4;
  10. sbit state=P2^6;
  11. sbit int0=P3^2;
  12. sbit int1=P3^3;
  13. uchar k1=1,k2=1;
  14. uchar a,shi,ge,shi1,ge1,num1,num2,num3;
  15. uchar t;
  16. uchar t1;
  17. uchar dx_hong,dx_huang,dx_lv,nb_hong,nb_huang,nb_lv;
  18. uchar run_state=1;

  19. uchar ledflag1=1,ledflag2=3;//r y g y
  20. uchar code table[]={
  21. 0x3f,0x06,0x5b,0x4f,
  22. 0x66,0x6d,0x7d,0x07,
  23. 0x7f,0x6f,0x77,0x7c,
  24. 0x39,0x5e,0x79,0x71};
  25. void delayms(uint xms);
  26. void display1(uchar shi,uchar ge,uchar shi1,uchar ge1);
  27. void djs(uchar xs,uchar xs1);
  28. void init(void);
  29. void keyscan(void);
  30. void main()
  31. {init();
  32.         cs=0;
  33.         om=1;
  34.         COMMAND=0X0F;
  35.         PB=0XFF;
  36.         IT0=1;
  37.         IT1=1;
  38.         EX0=EX1=1;
  39.         while(1)
  40.         {
  41.                         
  42.       keyscan();
  43.                  
  44.                         if(run_state)
  45.                         {     TR0=1;
  46.                             if(ledflag1==1){t=10;/*dx_hong=0; dx_huang=1; dx_lv=1;*/PB&=~(0X07);PB|=0X06;}
  47.                         else if((ledflag1==2)||(ledflag1==4)){t=2;/*dx_hong=1; dx_huang=0; dx_lv=1;*/PB&=~(0X07);PB|=0X05;}
  48.                         else if(ledflag1==3){t=7;/*dx_hong=1; dx_huang=1; dx_lv=0;*/PB&=~(0X07);PB|=0X03;}
  49.                                 
  50.                         if(ledflag2==1){t1=10;/*nb_hong=0;nb_huang=1;nb_lv=1;*/PB&=~(0X07<<3);PB|=0X06<<3;}
  51.                         else if((ledflag2==2)||(ledflag2==4)){t1=2;/*nb_hong=1;nb_huang=0;nb_lv=1;*/PB&=~(0X07<<3);PB|=0X05<<3;}
  52.                         else if(ledflag2==3){t1=7;/*nb_hong=1;nb_huang=1;nb_lv=0;*/PB&=~(0X07<<3);PB|=0X03<<3;}
  53.                         djs(t,t1);
  54.                         }else
  55.                         {
  56.                                     TR0=0;
  57.                                                 PA=0X00;
  58.                                     
  59.                         }
  60.         }
  61. }
  62. void keyscan(void)//p2^6
  63. {
  64.          static key_state=1;
  65.    if(key_state&&(state==0))
  66.          {
  67.                   delayms(10);
  68.                   if(state==0)
  69.                         {
  70.                         key_state=0;
  71.                   run_state=!run_state;
  72.                         
  73.                         }
  74.    }else if(state)
  75.          {
  76.                         key_state=1;
  77.         }
  78. }
  79. void delayms(uint xms)
  80. {
  81. uint i,j;
  82. for(i=xms;i>0;i--)
  83. for(j=110;j>0;j--);
  84. }
  85. void display1(uchar shi,uchar ge,uchar shi1,uchar ge1)
  86. {

  87. P2=0xfe;
  88. PA=0x00;
  89. PA=table[shi];
  90. delayms(5);        
  91. P2=0xfd;
  92. PA=0x00;
  93. PA=table[ge];
  94. delayms(5);
  95.         
  96. P2=0xfb;
  97. PA=0x00;
  98. PA=table[shi1];
  99. delayms(5);        
  100. P2=0xf7;
  101. PA=0x00;
  102. PA=table[ge1];
  103. delayms(5);
  104. }
  105. void djs(uchar xs,uchar xs1)
  106. {
  107.         
  108.                 shi=(xs-num2)/10;
  109.                 ge=(xs-num2)%10;
  110.           shi1=(xs1-num3)/10;
  111.                 ge1=(xs1-num3)%10;
  112.           display1(shi,ge,shi1,ge1);
  113.           if((xs-(num2-1))==0)
  114.                 {
  115.                         num2=0;
  116.                         if(ledflag1<4)ledflag1++;
  117.                         else ledflag1=1;
  118.                 }
  119.                
  120.                  if((xs1-(num3-1))==0)
  121.                 {
  122.                         num3=0;
  123.                         if(ledflag2<4)ledflag2++;
  124.                         else ledflag2=1;
  125.                 }
  126.                
  127.         //        }
  128. }
  129. void init(void)
  130. {
  131. TMOD=0x11;
  132. TH0=(65536-50000)/256;
  133. TL0=(65536-50000)%256;
  134. EA=1;
  135. ET0=1;
  136. TR0=1;
  137. }
  138. void T0_time()interrupt 1
  139. {
  140. TH0=(65536-50000)/256;
  141. TL0=(65536-50000)%256;
  142. num1++;
  143. if(num1==20)
  144. {
  145. num1=0;
  146. num2++;
  147. num3++;
  148. }
  149. }
  150. void INT0_HANDER(void) interrupt 0
  151. {
  152.    delayms(10);
  153.          if(int0==0)
  154.          {
  155.          if(run_state==0)
  156.          {
  157.      if(k1<3)k1++;
  158.                  else k1=1;
  159.                  if(k1==1){PB&=~(0X07);PB|=0X06;}
  160.                  else if(k1==2){PB&=~(0X07);PB|=0X05;}
  161.                  else if(k1==3){PB&=~(0X07);PB|=0X03;}
  162.                  
  163.    }
  164.          
  165. }   

  166.         
  167. }
  168. void INT1_HANDER(void) interrupt 2
  169. {
  170.    delayms(10);
  171.          
  172.          if(int1==0)
  173.          {
  174.          if(run_state==0)
  175.          {
  176.      if(k2<3)k2++;
  177.                  else k2=1;
  178.                  if(k2==1){PB&=~(0X07<<3);PB|=(0X06<<3);}
  179.                  else if(k2==2){PB&=~(0X07<<3);PB|=(0X05<<3);}
  180.                  else if(k2==3){PB&=~(0X07<<3);PB|=(0X03<<3);}
  181.                  
  182.    }
  183.   }
  184.          
  185. }
復制代碼
0.png

全部資料51hei下載地址:
交通燈.rar (122.91 KB, 下載次數: 107)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:482980 發表于 2020-4-17 09:37 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人深夜小视频 | 久久人人国产 | 国产激情一区二区三区 | 国产亚洲精品一区二区三区 | 青青草免费在线视频 | 亚洲三区视频 | 网页av| 2022精品国偷自产免费观看 | www.jizzjizz| 人人人人爽 | 欧日韩不卡在线视频 | 国产欧美日韩综合精品一区二区 | 香蕉一区二区 | 91精品国产99久久 | 亚洲一区| 成人伊人 | 亚洲高清在线观看 | 尤物在线精品视频 | 国产精品久久久亚洲 | 亚洲色图图片 | 亚洲欧美一区二区三区1000 | 成人国产精品色哟哟 | 91福利网| 中文字幕在线中文 | 日韩福利一区 | 中文字幕日韩欧美一区二区三区 | 精品国产伦一区二区三区观看体验 | 国产成人午夜精品影院游乐网 | www国产亚洲精品 | 午夜影院在线观看免费 | 麻豆精品一区二区三区在线观看 | 久久亚洲一区二区 | 日本三级电影在线免费观看 | 操久久 | 网站黄色在线 | av免费网站在线 | 亚洲国产成人精品女人 | 亚洲最大av | 日韩在线视频一区二区三区 | 丁香婷婷在线视频 | 精品av |