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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機人行道交通燈仿真+源碼設(shè)計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:426376 發(fā)表于 2018-11-25 12:29 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
任務(wù)目的

設(shè)計一路口的簡單人行道交通燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。紅燈的設(shè)計時間為45秒,綠燈為30秒。傍邊還有一個警示牌寫著“ sidewalk  caution”,譯為 人行道,注意安全。來提醒往來的車輛。


單片機源程序如下:
  1. #include   <reg51.h>
  2. #define  uchar unsigned  char
  3. #define   DATAPORT  P3
  4. sbit   RS=P1^7;
  5. sbit   RW=P1^6;
  6. sbit   E=P1^5;
  7. sbit key0=P1^0;
  8. sbit key1=P1^1;
  9. sbit key2=P1^2;
  10. sbit RED=P1^3;
  11. sbit GREEN=P1^4;
  12. unsigned char num;
  13. unsigned char s=45;
  14. unsigned char flag=0;
  15. void  init(void);     
  16. void    writeCOM(uchar   i);   
  17. void    writeData(uchar  i);   
  18. void    fbusy();      
  19. void DelayMs(unsigned char y)
  20. {
  21. while(y--);
  22. }
  23. unsigned code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  24. unsigned char code WeiMa[]={0x01,0x02};


  25. void seg(unsigned char c )
  26.   {
  27.   
  28.    P2=WeiMa[0];
  29.    P0=DuanMa[c%10];
  30.    DelayMs(10);
  31.    P0=0x00;

  32.    P2=WeiMa[1];
  33.    P0=DuanMa[c/10];
  34.    DelayMs(10);
  35.    P0=0x00;
  36.   }
  37. void time_djs()
  38. {
  39.   if(num==0)
  40.   {
  41.           s--;
  42.         if(s==0)
  43.         {
  44.          flag++;
  45.          s=30;
  46.          s--;
  47.          if(flag==2)
  48.          {
  49.            s=45;
  50.            flag=0;
  51.          }
  52.         }

  53.   }
  54. }

  55. void LED_RED_GREEN()
  56. {
  57.    if(flag==0)
  58.    {
  59.              RED=1;
  60.    }
  61.    else if(flag==1)
  62.    {
  63.       RED=0;
  64.              GREEN=1;
  65.           if(s==1)
  66.           {
  67.            GREEN=0;
  68.           }
  69.           if(s==1)
  70.           {
  71.            GREEN=0;
  72.           }

  73.    }
  74. }
  75. void T0_time() interrupt 1
  76.   {
  77.   TH0=(65536-45872)/256;       
  78.   TL0=(65536-45872)%256;
  79.   num++;
  80.   if(num==20)
  81.   {
  82.         num=0;
  83.         time_djs();
  84.        
  85.   }       
  86.    }
  87. void Init_Timer0()       
  88.   {
  89.     TMOD = 0x01;
  90.         TH0=(65536-45872)/256;
  91.     TL0=(65536-45872)%256;
  92.     EA = 1;
  93.     ET0 = 1;       
  94.     TR0 = 1;       
  95.   }
  96. void keycan()
  97. {
  98. if (key0==0)
  99.         {
  100.           DelayMs(20);
  101.           if (key0==0)
  102.           {
  103.           EA=~EA;
  104.           }
  105.           while(!key0);
  106.         }
  107. if(key1==0)
  108.         {
  109.     DelayMs(20);
  110.         if(key1==0)
  111.           {
  112.           s++;
  113.           }
  114.         if(s==45)
  115.           {
  116.           s=0;
  117.       }
  118.           while(!key1);
  119.         }
  120.   if(key2==0)
  121.         {
  122.     DelayMs(20);
  123.         if(key2==0)
  124.           {
  125.           s--;
  126.           }
  127.         if(s==0)          
  128.           {
  129.           s=45;
  130.           }                    
  131.           while(!key2);
  132.         }

  133. }
  134. void   init()
  135. {
  136.   writeCOM(0x01);       
  137.   writeCOM(0x38);       
  138.   writeCOM(0x0f);       
  139.   writeCOM(0x06);       
  140. }
  141. void   fbusy()
  142. {
  143.   DATAPORT=0Xff;          
  144.   RS=0;RW=1;
  145.         E=0;E=1;                         
  146.         while  (DATAPORT&0x80)
  147.         {E=0;E=1;}                               
  148. }
  149. void   writeCOM(uchar  j)
  150. {
  151.         fbusy();
  152.         RS=0;RW=0;
  153.         E=1;
  154.         DATAPORT=j;
  155.         E=0;            
  156. }                                       
  157. void   writeData(uchar   j)
  158. {
  159.    fbusy();
  160.         RS=1;RW=0;
  161.         E=1;
  162.         DATAPORT=j;
  163.         E=0;                                       
  164. }                                          
  165.                                                         
  166. void lcd_xianshi()
  167. {
  168.        
  169.        
  170. writeCOM(0x80);               
  171. writeData('s');               
  172. writeData('i');               
  173. writeData('d');
  174. writeData('e');
  175. writeData('W');
  176. writeData('a');
  177. writeData('l');
  178. writeData('k');               
  179. writeCOM(0xc4);               
  180. writeData('C');               
  181. writeData('a');               
  182. writeData('u');               
  183. writeData('t');                  
  184. writeData('i');          
  185. writeData('O');          
  186. writeData('n');          
  187. writeData('!');          


  188. }
  189. void  main()
  190. {
  191. RED=0;
  192. GREEN=0;
  193. init();
  194. lcd_xianshi();
  195. Init_Timer0();
  196.    while(1)
  197.   {
  198.    seg(s);
  199.    keycan();
  200.    LED_RED_GREEN();
  201.   }

  202. }
復(fù)制代碼

所有資料51hei提供下載:
renxingdeng.zip (71.74 KB, 下載次數(shù): 26)

評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:454562 發(fā)表于 2018-12-26 15:01 | 只看該作者
沒仿真文件呀
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级大片免费 | 久久久久久久久国产 | 久久久123| 国产精品福利在线观看 | 中文字幕黄色大片 | 国内精品一区二区三区 | 天天射影院 | 欧美一区二区另类 | www.夜夜草 | 亚洲精品久久久久久久久久久久久 | 亚洲91 | 国产精品色 | 激情久久网 | 国产免费一区二区三区最新6 | 中文字幕视频在线观看 | 亚洲日产精品 | 国产一区二区久久久 | 欧美一级全黄 | 伊人精品在线 | 免费看片在线播放 | 欧美精品在欧美一区二区 | 久久久99国产精品免费 | 亚洲一区二区三区免费在线观看 | 激情在线视频 | 超碰97免费在线 | 国产一级成人 | 日韩在线视频免费观看 | 国产伦一区二区三区视频 | 免费看一区二区三区 | 欧美一区二区在线观看 | 日韩中文字幕一区 | 中文字幕日韩欧美一区二区三区 | 在线观看成人 | www.47久久青青| 天天操天天插天天干 | 最近最新中文字幕 | 欧美区在线 | 亚洲三区在线观看 | 91一区| 亚洲高清av | 久久青青 |