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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機十字路口紅綠燈控制設計

  [復制鏈接]
跳轉到指定樓層
樓主
學習51單片機時做的交通燈課程設計,分享給大家,附件含Protues仿真,源程序和設計文檔


單片機源程序如下:
  1. #include<stdio.h>
  2. #include<reg52.h>
  3. sbit ST=P3^0;
  4. sbit Ho1=P1^7;
  5. sbit Ho2=P1^4;
  6. sbit L1=P1^5;
  7. sbit L2=P1^2;
  8. sbit Hu1=P1^6;
  9. sbit Hu2=P1^3;
  10. sbit Q0=P3^2;
  11. sbit Q1=P3^3;
  12. int second=65,p=1,count_t0=0,
  13.         count_t1=0,below_second=60,scan=0;
  14. void debouncer(void);
  15. char Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};                        //數碼管顯示數組,共陽
  16. char Ma[]={0x01,0x02,0x04,0x08};                                                                                //掃描數組
  17. char disp[]={0xc0,0xc0,0xc0,0xc0};                                                                                //數碼管輸出數組
  18. char Count[]={0xc0,0xc0,0xc0,0xc0,0xc0,0xc0};                                                        //數據存儲數組
  19. void main()                                                                                                                                //主函數
  20. {
  21.         IE=0x8f;                                                                                                                        //中斷初值定義
  22.         TCON=0x55;
  23.         TMOD=0x21;
  24.         TH0=(65536-50000)/256;
  25.         TL0=(65536-50000)%256;
  26.         TH1=256-250;
  27.         TH2=256-250;
  28.         while(1)                                                 //數碼管與交通燈顯示
  29.                 {
  30.                 if(p==1)
  31.                 {
  32.                 if(second>5)                                                         //南北通行60秒
  33.                 {
  34.                 disp[1]=Tab[below_second%10];
  35.                 disp[0]=Tab[below_second/10];
  36.                 disp[3]=Tab[second%10];
  37.                 disp[2]=Tab[second/10];
  38.                 L1=0;
  39.                 L2=1;
  40.                 Ho1=1;
  41.                 Ho2=0;
  42.                 Hu1=0;
  43.                 Hu2=0;
  44.                 }
  45.                 else                                                                         //黃燈5秒
  46.                 {
  47.                 disp[1]=Tab[second%10];
  48.                                                         disp[0]=Tab[second/10];
  49.                                                         disp[3]=Tab[second%10];
  50.                                                         disp[2]=Tab[second/10];
  51.                                                         L1=0;
  52.                                                         L2=0;
  53.                                                         Hu1=0;
  54.                                                         Hu2=1;
  55.                                                         Ho1=1;
  56.                                                         Ho2=0;
  57.                                                 }
  58.                                 }
  59.                         else
  60.                                 {
  61.                                         if(second>5)                                                          //東西通行60秒
  62.                                                 {
  63.                                                         disp[1]=Tab[second%10];
  64.                                                         disp[0]=Tab[second/10];
  65.                                                         disp[3]=Tab[below_second%10];
  66.                                                         disp[2]=Tab[below_second/10];
  67.                                                         L1=1;
  68.                                                         L2=0;
  69.                                                         Ho1=0;
  70.                                                         Ho2=1;
  71.                                                         Hu1=0;
  72.                                                         Hu2=0;
  73.                                                 }
  74.                                         else                                                                          //黃燈5秒
  75.                                                 {
  76.                                                         disp[1]=Tab[second%10];
  77.                                                         disp[0]=Tab[second/10];
  78.                                                         disp[3]=Tab[second%10];
  79.                                                         disp[2]=Tab[second/10];
  80.                                                         L2=0;
  81.                                                         L1=0;
  82.                                                         Hu1=1;
  83.                                                         Hu2=0;
  84.                                                         Ho1=0;
  85.                                                         Ho2=1;
  86.                                                 }
  87.                                 }
  88.                 }
  89. }
  90. void int0(void) interrupt 0           //中斷int0,全為紅燈。
  91. {        
  92.         Count[0]=Ho1;
  93.         Count[1]=Ho2;
  94.         Count[2]=Hu1;
  95.         Count[3]=Hu2;
  96.         Count[4]=L1;
  97.         Count[5]=L2;
  98.         Count[6]=p;
  99.         P0=0x00;
  100.         L1=0;
  101.         L2=0;
  102.         Ho1=1;
  103.         Ho2=1;
  104.         Hu1=0;
  105.         Hu2=0;
  106.         debouncer();
  107.         while(Q0==0);
  108.         Ho1=Count[0];
  109.         Ho2=Count[1];
  110.         Hu1=Count[2];
  111.         Hu2=Count[3];
  112.         L1=Count[4];
  113.         L2=Count[5];
  114.         p=Count[6];
  115.         second=65;
  116.         below_second=60;
  117.         count_t0=0;
  118.         Tab[0]=0xc0;
  119. }
  120. void int1(void) interrupt 2           //中斷int1,單方向綠燈。
  121. {
  122.         Count[0]=Ho1;
  123.         Count[1]=Ho2;
  124.         Count[2]=Hu1;
  125.         Count[3]=Hu2;
  126.         Count[4]=L1;
  127.         Count[5]=L2;
  128.         Count[6]=p;
  129.         P0=0x00;
  130.         if(ST==0)
  131.                  {
  132.                          L1=1;
  133.                         L2=0;
  134.                         Ho1=0;
  135.                         Ho2=1;               
  136.                  }
  137.          else
  138.                  {
  139.                          L1=0;
  140.                         L2=1;
  141.                         Ho1=1;
  142.                         Ho2=0;
  143.                  }
  144.         Hu1=0;
  145.         Hu2=0;
  146.         debouncer();
  147.         while(Q1==0);
  148.         Ho1=Count[0];
  149.         Ho2=Count[1];
  150.         Hu1=Count[2];
  151.         Hu2=Count[3];
  152.         L1=Count[4];
  153.         L2=Count[5];
  154.         p=Count[6];
  155.         second=65;
  156.         below_second=60;
  157.         count_t0=0;
  158.         Tab[0]=0xc0;
  159. }
復制代碼

全部資料51hei下載地址:
交通燈控制.zip (149.51 KB, 下載次數: 239)
Proteus仿真.docx (1.09 MB, 下載次數: 156)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:559061 發表于 2019-6-11 11:48 | 只看該作者
真好!
回復

使用道具 舉報

板凳
ID:742062 發表于 2020-5-1 08:59 | 只看該作者
回復

使用道具 舉報

地板
ID:775870 發表于 2020-6-11 09:55 | 只看該作者
哎呀,這個標簽數字看不清楚
回復

使用道具 舉報

5#
ID:779562 發表于 2020-6-16 15:53 | 只看該作者
運行后  發現有三個 warning
回復

使用道具 舉報

6#
ID:840263 發表于 2020-11-7 16:34 | 只看該作者
3119577 發表于 2020-6-16 15:53
運行后  發現有三個 warning

你這個燈亮了嗎
回復

使用道具 舉報

7#
ID:840263 發表于 2020-11-7 16:40 | 只看該作者
回復

使用道具 舉報

8#
ID:856454 發表于 2020-12-8 00:10 | 只看該作者
看不清標號呀
回復

使用道具 舉報

9#
ID:685324 發表于 2021-4-13 21:06 | 只看該作者
可指定某一通道通行嗎
回復

使用道具 舉報

10#
ID:991407 發表于 2021-12-12 20:57 | 只看該作者
標簽看不清啊
回復

使用道具 舉報

11#
ID:1073043 發表于 2023-6-8 23:36 | 只看該作者
大佬可以發清晰點的仿真圖嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九热在线观看视频 | 久久精品一区二区 | 国产精品一二三区 | 97精品超碰一区二区三区 | 久久性色 | 亚洲在线一区 | 91免费入口 | 天天操夜夜骑 | 免费在线观看av片 | 精品九九| 国产精品亚洲成在人线 | 成年网站在线观看 | 91超碰在线观看 | 久久日韩精品一区二区三区 | 久久精品久久综合 | 黄色免费av | 每日在线更新av | 国产欧美日韩在线 | 91伊人| 国产男女猛烈无遮掩视频免费网站 | 91九色网站 | 超碰在线人人干 | 中文字幕免费观看 | 中文字幕精品视频 | 琪琪午夜伦伦电影福利片 | 黄色片在线观看网址 | 色一情一乱一伦一区二区三区 | 中文字幕综合在线 | 欧美另类日韩 | 亚洲视频www | 91精品国产一区二区三区 | 日本高清视频在线播放 | 密乳av| 一级在线观看 | 日韩av一区二区在线观看 | 国产成人精品一区 | 国产精品久久久久久久久久 | 98成人网 | 久久综合久久久 | 日日干天天操 | 美女在线视频一区二区三区 |