找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī)交通燈仿真圖與源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
51單片機(jī)交通燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit RED_A=P0^0; //東西向燈
  5. sbit YELLOW_A=P0^1;
  6. sbit GREEN_A=P0^2;
  7. sbit RED_B=P0^3; //南北向燈
  8. sbit YELLOW_B=P0^4;
  9. sbit GREEN_B=P0^5;
  10. uchar  Flash_Count=0,Operation_Type=1;
  11.          //閃爍次數(shù),操作類型變量
  12. //延時(shí)
  13. void DelayMS(uint x)
  14. {
  15. uchar i;
  16. while(x--) for(i=0;i<120;i++);
  17. }
  18. //交通燈切換
  19. void Traffic_Light()
  20. {
  21. switch(Operation_Type)
  22. {
  23. case 1: //東西向綠燈與南北向紅燈亮
  24. RED_A=1;YELLOW_A=1;GREEN_A=0;
  25. RED_B=0;YELLOW_B=1;GREEN_B=1;
  26. DelayMS(2000);
  27. Operation_Type=2;
  28. break;
  29. case 2: //東西向黃燈閃爍,綠燈關(guān)閉
  30. DelayMS(300);
  31. YELLOW_A=~YELLOW_A;GREEN_A=1;
  32. if(++Flash_Count!=10) return; //閃爍5次
  33. Flash_Count=0;
  34. Operation_Type=3;
  35. break;
  36. case 3: //東西向紅燈,南北向綠燈亮
  37. RED_A=0;YELLOW_A=1;GREEN_A=1;
  38. RED_B=1;YELLOW_B=1;GREEN_B=0;
  39. DelayMS(2000);
  40. Operation_Type=4;
  41. break;
  42. case 4: //南北向黃燈閃爍5 次
  43. DelayMS(300);
  44. YELLOW_B=~YELLOW_B;GREEN_B=1;
  45. if(++Flash_Count!=10) return;
  46. Flash_Count=0;
  47. Operation_Type=1;
  48.        }
  49.        }
復(fù)制代碼

所有資料51hei提供下載:
51單片機(jī)交通燈.zip (72.62 KB, 下載次數(shù): 98)


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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