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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

智能交通燈代碼原理圖與PCB圖(AD制作)

[復制鏈接]
跳轉到指定樓層
樓主
基于單片機控制的[url=]智能[/url]交通燈

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. sbit  k1=P1^6;
  6. sbit  k2=P1^7;
  7. sbit  k3=P2^7;
  8. sbit  k4=P3^0;

  9. sbit yellowled_nb=P1^4;        //南北黃燈
  10. sbit yellowled_dx=P1^1;        //東西黃燈
  11. uchar code table[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//共陰
  12. uchar data dig;        //位選
  13. uchar data led;        //偏移量
  14. uchar data buf[4];
  15. uchar data sec_dx=20;//東西數碼指示值
  16. uchar data sec_nb=20;//南北數碼指示值
  17. uchar data set_timedx=20;
  18. uchar data set_timenb=20;//倒計時設置的鍵值保存

  19. uchar data b;//定時器中斷次數
  20. bit time;//燈狀態循環標志
  21. bit int0_time;//中斷強行標志
  22. bit   set;//調時方向切換鍵標志
  23. void delay(int ms);//延時子程序
  24. void key();//按鍵掃描子程序
  25. void key_to1();//鍵處理子程序
  26. void key_to2();
  27. void display();//顯示子程序
  28. void main()
  29. {
  30.         TMOD=0X01;        
  31.         TH0=0X3C;
  32.         TL0=0XB0;
  33.         EA=1;
  34.         ET0=1;
  35.         TR0=1;

  36.         EX0=1;
  37.         EX1=1;
  38.         P1=0Xf3;// 東西通行
  39.         while(1)
  40.         {
  41.                 key(); //調用按鍵掃描程序
  42.                 display(); //調用顯示程序

  43.         }        
  44. }



  45. void key()        //按鍵掃描子程序
  46. {
  47.         if(k1!=1)
  48.         {
  49.                 delay(10);
  50.                 if(k1!=1)
  51.                 {
  52.                         while(k1!=1);
  53.                         key_to1();
  54.                 }
  55.         }

  56.         if(k2!=1)
  57.         {
  58.                 delay(10);
  59.                 if(k2!=1)
  60.                 {
  61.                         while(k2!=1);
  62.                         key_to2();
  63.                 }
  64.         }
  65.          
  66.           if(k4!=1)
  67.          {
  68.                  delay(10);
  69.                  if(k4!=1)
  70.                  {
  71.                          while(k4!=1);
  72.                          set=!set;
  73.                  }
  74.          }

  75.         if(k3!=1&&int0_time==1)
  76.         {        
  77.                 TR0=1;   //啟動定時器
  78.                 sec_nb=20;
  79.                 sec_dx=20;
  80.                 int0_time=0;//清標志
  81.                
  82.          }         else if(k3!=1&&int0_time==0)
  83.                     {
  84.                         TR0=1;
  85.                         set_timenb=sec_nb;
  86.                         set_timedx=sec_dx; //設置的鍵值返回保存
  87.                         }
  88.          
  89. }

  90. void display()
  91. {
  92.                
  93.                 buf[1]=sec_dx/10; //第1位 東西秒十位
  94.                 buf[2]=sec_dx%10; //第2位 東西秒個位
  95.                 buf[3]=sec_nb/10; //第3位 南北秒十位
  96.                 buf[0]=sec_nb%10; //第4位 南北秒個位
  97.                
  98.                 P0=table[buf[led]];
  99.                 delay(2);        //先延時,提前顯示一位了
  100.                 P2=dig;
  101.                 dig=_crol_(dig,1);
  102.                 led++;
  103.                 if (led==4)
  104.                 {led=0;
  105.                 dig=0xfe;
  106.                 }
  107. }

  108. void time0(void) interrupt 1 using 1  //定時中斷子程序
  109. {
  110.         b++;
  111.         if(b==10)          // 定時器中斷次數。
  112.         {
  113.                 b=0;
  114.                 sec_dx--;
  115.                 sec_nb--;
  116. /******************南北黃燈閃爍判斷*************************/               
  117.                 if(sec_nb==3&&time==0)
  118.                
  119.                         {
  120.                          yellowled_nb=1;//南北黃燈亮
  121.                          delay(300);
  122.                          yellowled_nb=0;
  123.                          }
  124.                         
  125.                         if(sec_nb==2&&time==0)
  126.                         {
  127.                         yellowled_nb=1;//南北黃燈亮
  128.                          delay(300);
  129.                          yellowled_nb=0;
  130.                         }
  131.                         
  132.                         if(sec_nb==1&&time==0)
  133.                         {
  134.                         yellowled_nb=1;
  135.                          delay(300);
  136.                          yellowled_nb=0;
  137.                            }
  138.                  
  139. /*******************東西黃燈閃判斷************************/                    
  140.                 if(sec_dx==3&&time==1)
  141.                 {
  142.                          yellowled_dx=1;//南北黃燈亮
  143.                          delay(300);
  144.                          yellowled_dx=0;
  145.                 }
  146.                         
  147.                         if(sec_dx==2&&time==1)
  148.                         {
  149.                         yellowled_dx=1;//南北黃燈亮
  150.                          delay(300);
  151.                          yellowled_dx=0;
  152.                         }
  153.                         
  154.                         if(sec_dx==1&&time==1)
  155.                         {
  156.                         yellowled_dx=1;
  157.                          delay(300);
  158.                          yellowled_dx=0;
  159.                            }        
  160.                         
  161.                
  162. /*******************************************/


  163.                         if(sec_dx==0||sec_nb==0) //東西或南北先到達1S時即開始重新計時
  164.                         {
  165.                                 sec_dx=set_timedx;
  166.                                 sec_nb=set_timenb; //第一次循環結束重置

  167.                                  if(time==1)
  168.                                 {
  169.                                         P1=0XF3;  //東西通行
  170.                                 }
  171.                                 else
  172.                                 {
  173.                                         P1=0xde; //南北通行
  174.                                 }
  175.                                 time=!time;   //取反
  176.                                 
  177.                         }
  178.                
  179.         }
  180. }

  181. void key_to1()
  182. {
  183.         TR0=0;         //關定時器
  184.         
  185.         if(set==0)
  186.         sec_nb++; //南北加1S
  187.         else
  188.         sec_dx++;//東西加1S
  189.         
  190.         if(sec_nb==100)
  191.                 sec_nb=1;
  192.         if(        sec_dx==100)
  193.                 sec_dx=1;//加到100置1
  194.         
  195. }
  196. void key_to2()
  197. {
  198.         TR0=0;//關定時器
  199.         
  200.         if(set==0)
  201.         sec_nb--;  //南北減1S
  202.         else
  203.         sec_dx--;  //東西減1S
  204.         if(sec_nb==0)
  205.                 sec_nb=99;        
  206.         if(        sec_dx==0 )
  207. ……………………

  208. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
7e26631c4e26dbdaaa2dc0d451d0e189.rar (1.34 MB, 下載次數: 75)



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

使用道具 舉報

沙發
ID:72444 發表于 2017-6-20 16:20 | 只看該作者
不錯,支持下
回復

使用道具 舉報

板凳
ID:1035448 發表于 2022-6-20 09:43 | 只看該作者
有沒有運行結果圖啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品视频一区二区三区 | 中文字幕日韩欧美 | 欧美一级片在线观看 | 色播99| 色综合久久88色综合天天 | 久久精品亚洲一区 | 国产一区欧美 | 国产乱码精品一区二区三区五月婷 | 精品欧美一区二区三区久久久 | 欧美一区2区三区3区公司 | 谁有毛片 | 91视视频在线观看入口直接观看 | 一级黄色毛片免费 | 亚洲一区二区三区视频免费观看 | 色综合色综合色综合 | 成年免费大片黄在线观看一级 | 欧美精品在欧美一区二区少妇 | 亚洲精品免费观看 | 亚洲三区在线观看 | 国产一级电影在线观看 | 欧美日韩在线免费观看 | 夜夜骑首页 | 久久精品亚洲 | 精品国产伦一区二区三区观看体验 | 国产精品网址 | 久精品久久 | 在线免费观看色 | 国产精品色 | 新91视频网 | 一区二区久久 | 99热国产免费 | 337p日本欧洲亚洲大胆鲁鲁 | 国产欧美日韩视频 | 91视频在线看 | 精品久久久久香蕉网 | 成人做爰www免费看 午夜精品久久久久久久久久久久 | 99亚洲综合| 亚洲国产一区二区三区四区 | 国产精品日本一区二区在线播放 | 97偷拍视频 | 国产欧美精品一区二区三区 |