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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)智能交通燈仿真設(shè)計(jì)(帶鍵盤手動(dòng)調(diào)節(jié)功能)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
智能交通燈的proteus仿真圖分享給大伙
1.倒計(jì)時(shí)到10秒后,黃燈警告,準(zhǔn)備交換亮紅燈。
2..數(shù)碼管32和28秒倒計(jì)時(shí)功能.
3.增加鍵盤手動(dòng)調(diào)節(jié)功能
A:設(shè)置鍵:按一次后,數(shù)碼管停止倒計(jì)數(shù)。按三次設(shè)置鍵恢復(fù)正常。
B:向上鍵:每按一次實(shí)現(xiàn)加一秒,沒有限制秒。
C:向下鍵:每接一次向下鍵,實(shí)現(xiàn)數(shù)碼管減一,減到0時(shí)恢復(fù)到32秒。

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



單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #include <stdio.h>
  3. #define uchar     unsigned char
  4. #define uint      unsigned int
  5. sbit key1=P3^2;
  6. sbit key2=P3^3;
  7. sbit key3=P3^4;
  8. sbit key4=P3^5;

  9. uchar h,count,num,dat,flag,dat1,num1,key1num,temp;
  10. uint r=0;
  11. uint s;
  12. uchar code  dis[]={
  13.                                                        
  14.         0Xc0,/*0*/
  15.         0Xf9,/*1*/
  16.         0Xa4,/*2*/
  17.         0Xb0,/*3*/
  18.         0X99,/*4*/
  19.         0X92,/*5*/
  20.         0X82,/*6*/
  21.         0Xf8,/*7*/
  22.         0X80,/*8*/
  23.         0X90,/*9*/
  24.         0Xff,/*NULL*/
  25. };


  26. void delay(uint c)
  27. {
  28.    uint i,j;
  29.     for(i=0;i<c;i++)
  30.           for(j=0;j<100;j++);
  31.        
  32. }

  33. void init()
  34. {
  35.         TMOD=0x11;//設(shè)置定時(shí)器0為工作方式1
  36.         TH0=(65536-10000)/256;
  37.         TL0=(65536-10000)%256;
  38.         TH1=(65536-20000)/256;
  39.         TL1=(65536-20000)%256;
  40.         EA=1;//開總中斷
  41.         ET0=1;//開定時(shí)器0中斷
  42.         ET1=1;
  43.         TR0=1;//啟動(dòng)定時(shí)器0
  44.         TR1=1;
  45.         num=66;
  46. //        P0=0xeb;
  47. }
  48. void display(dat)   //送顯示
  49. {                       
  50.                        
  51.                    if(dat<=33)
  52.                    {
  53.                            if(dat>3&&dat<33)
  54.                         {
  55.                                    P0=0xdd;//紅燈
  56.                                 P1=0x00;
  57.                         P2=0xff;
  58.                         P1=0x01;
  59.                         P2=dis[dat/10];
  60.                          delay(1);
  61.                                 P1=0x00;
  62.                         P2=0xff;
  63.                         P1=0x02;
  64.                         P2=dis[dat%10];
  65.                                  delay(1);
  66.                                 P1=0x00;
  67.                         P2=0xff;
  68.                                 P1=0x04;
  69.                         P2=dis[(dat-3)/10];
  70.                                  delay(1);
  71.                                 P1=0x00;
  72.                         P2=0xff;
  73.                                 P1=0x08;
  74.                         P2=dis[(dat-3)%10];
  75.                          delay(1);
  76.                           }
  77.                          if(dat<=3)
  78.                          {
  79.                                          P0=0xd4;//黃燈
  80.                                          P1=0x00;
  81.                                 P2=0xff;
  82.                                 P1=0x02;
  83.                                 P2=dis[dat%10];
  84.                                          delay(1);

  85.                                         P1=0x00;
  86.                                     P2=0xff;
  87.                                     P1=0x08;
  88.                                     P2=dis[(dat-3)%10];
  89.                                     delay(1);
  90.                                        
  91.                                                
  92.                          }
  93. //                         break;
  94.                         }

  95.                         if(dat>=33&&dat<=66)
  96.                         {
  97.                         if(dat>36&&dat<=66)
  98.                         {
  99.                                 P0=0xeb;
  100.                                                 P1=0x00;
  101.                         P2=0xff;
  102.                         P1=0x01;
  103.                         P2=dis[(dat-33)/10];
  104.                          delay(1);
  105.                                 P1=0x00;
  106.                         P2=0xff;
  107.                         P1=0x02;
  108.                         P2=dis[(dat-33)%10];
  109.                                  delay(1);
  110.                                 P1=0x00;
  111.                         P2=0xff;
  112.                                 P1=0x04;
  113.                         P2=dis[(dat-36)/10];
  114.                                  delay(1);
  115.                                 P1=0x00;
  116.                         P2=0xff;
  117.                                 P1=0x08;
  118.                         P2=dis[(dat-36)%10];
  119.                          delay(1);       
  120.                          }
  121.                          if(dat>=33&&dat<=36)
  122.                          {
  123.                                          P0=0xe2;//黃燈
  124.                                          P1=0x00;
  125.                                 P2=0xff;
  126.                                 P1=0x02;
  127.                                 P2=dis[(dat-33)%10];
  128.                                          delay(1);          

  129.                                         P1=0x00;
  130.                                     P2=0xff;
  131.                                     P1=0x08;
  132.                                     P2=dis[(dat-33)%10];
  133.                                     delay(1);          
  134.                          }
  135. //                         break;
  136.                         }
  137.                          
  138. }
  139. void keyscan() //鍵盤檢測(cè)
  140. {
  141.         if(key1==0)
  142.         {
  143.                 delay(5);
  144.                 if(key1==0)
  145.                 {
  146.                         key1num++;
  147.                         while(!key1)
  148.                         {
  149.                                 display(num);
  150.                         }
  151.                         if(key1num==1)
  152.                         {
  153.                                 TR0=0;
  154.                                 TR1=0;
  155.                         }
  156.                         if(key1num==2)
  157.                         {
  158.                                 TR0=1;
  159.                                 TR1=1;
  160.                                 P1=temp;
  161.                                 key1num=0;

  162.                         }
  163.                 }
  164.        
  165.         }
  166.                 if(key1num!=0)
  167.                 {       
  168.                         if(key2==0)
  169.                         {
  170.                                 delay(5);
  171.                                 if(key2==0)
  172.                                 {
  173.                                         while(!key2)
  174.                                         {
  175.                                                 display(num);
  176.                                         }
  177.                                         if(key1num==1)
  178.                                         {
  179.                                                 num++;
  180.                                                 display(num);
  181.                                                
  182.                                         }
  183.                                         if(key1num==2)
  184.                                         {
  185.                                                 num++;
  186.                                                 display(num);
  187.                                         }
  188.                                 }
  189.                         }
  190.                       if(key3==0)
  191.                         {
  192.                                 delay(5);
  193.                                 if(key3==0)
  194.                                 {
  195.                                         while(!key3)
  196.                                         {
  197.                                                 display(num);
  198.                                         }
  199.                                        
  200.                                                 if(key1num==1)
  201.                                                 {
  202.                                                         if(num==0)
  203.                                                         num=32;
  204.                                                         num--;
  205.                                                 }
  206.                                                 if(key1num==2)
  207.                                                 {
  208.                                                         if(num1==0)
  209.                                                         num1=56;
  210.                                                         num1--;
  211.                                                 }
  212.                                        

  213.                                 }
  214.                         }
  215.                 }
  216. }
  217. void main()  //主函數(shù)
  218. {
  219.         init();
  220.         while(1)
  221.         {       
  222.                 keyscan();
  223. ……………………

  224. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
c40b0a76b361af601ed40d66db712331.rar (144.53 KB, 下載次數(shù): 38)



評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2017-6-20 00:10 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 九九久久国产 | 国产一级久久久久 | 久久久99国产精品免费 | 免费国产一区二区 | 久久综合久久久 | 国产婷婷色综合av蜜臀av | 国产黄色大片在线观看 | 日韩一区二区三区视频在线播放 | 国产超碰人人爽人人做人人爱 | а_天堂中文最新版地址 | 在线观看av网站永久 | 欧美精品国产一区二区 | 在线国产一区二区三区 | 亚洲人成人一区二区在线观看 | 久久久久久久亚洲精品 | 久久久久久久久国产成人免费 | 国产精品99久久久久久久vr | 欧美久久久久久 | 黄色永久免费 | 青青草中文字幕 | 成人在线视频网址 | 国产视频一区二区三区四区五区 | 狠狠亚洲| 久久国产精品久久久久久久久久 | 国产区在线观看 | 在线播放中文字幕 | 久久久无码精品亚洲日韩按摩 | 国产精品久久久久久久久久妇女 | 99久久国产精| 成人在线免费视频观看 | 久久久久久久久蜜桃 | 欧美精品中文字幕久久二区 | 午夜看电影在线观看 | 欧美韩一区二区 | 日韩在线视频免费观看 | 国产亚洲网站 | 久久精品国产一区二区三区不卡 | 日韩精品成人一区二区三区视频 | 在线成人免费观看 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 亚洲国产免费 |