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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機紅綠燈設計

[復制鏈接]
跳轉到指定樓層
樓主
源代碼
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #include<absacc.h>
  4. #define COM8255 XBYTE[0x70ff]    //定義并設置控制口的地址
  5. #define PA8255 XBYTE[0x70fc]     //定義并設置PA口地址
  6. #define PB8255 XBYTE[0x70fd]     //定義并設置PB口地址
  7. #define PC8255 XBYTE[0x70fe]     //定義并設置PC口地址
  8. #define uchar unsigned char
  9. #define uint unsigned int
  10. uint shi,ge,num;
  11. int temp=10;
  12. uint arrow_j,arrow_j_1;
  13. uint i_inter;
  14. uint t=4,x=1,y=1,k,m;

  15. uchar code Tab_1[]={0x7f,0xbf,0xdf,0xe0}; //arrow
  16. uchar code Tab_2[]={0x18,0x3c,0x7e,0x18}; //arrow

  17. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極0-9字形代碼

  18. sbit led_1=P3^0;            //LED顯示(十位)
  19. sbit led_2=P3^1;           // LED顯示(個位)
  20. sbit led_3=P3^5;          //黃燈
  21. sbit led_5=P3^3;
  22. sbit led_4=P3^2;

  23. void delay(uint z)
  24. {
  25.    uint x,y;
  26.    for(x=z;x>0;x--)
  27.    for(y=10;y>0;y--);
  28. }

  29. void arrow()                       //點陣箭頭顯示函數
  30. {       
  31.    for(arrow_j=0;arrow_j<4;arrow_j++)
  32.    {  
  33.             PA8255=Tab_1[arrow_j];          
  34.          PB8255=Tab_2[arrow_j];
  35.          delay(1);
  36.    }   
  37.        
  38. }

  39. main()
  40. {  
  41.    P2=0x00;
  42.    COM8255=0x80;
  43.    led_3=0;        //黃燈滅
  44.    num=0;
  45.    PC8255=0x00;

  46.    IT1=1;                                                  //外部中斷1的中斷請求觸發方式為脈沖觸發
  47.    EX1=1;                                                  //開放外部中斷1
  48.    IT0=1;                                                  //外部中斷0的中斷請求觸發方式為電平方式
  49.    EX0=1;                                                  
  50.    PX1=1;                         //設置中斷優先級,外部中斷1優先
  51.    PX0=1;

  52.    TMOD=0x01;                                         //定時器方式,模式1,16位
  53.    TH0=15536/256;                 //設置定時起點
  54.    TL0=15536%256;
  55.    EA=1;                                                  //開放所有中斷
  56.    ET0=1;                                                  //開放定時器/計數器0中斷
  57.    TR0=1;
  58.                                                      //啟動定時器/計數器0
  59.    while(1)                             //等待中斷
  60.    {
  61.              x=1;
  62.           y=1;
  63.           shi=temp/10;
  64.           ge=temp%10;
  65.           P1=0xff;
  66.           led_1=1;
  67.           led_2=0;
  68.           P1=table[shi];
  69.           delay(15);

  70.           P1=0xff;
  71.           led_1=0;
  72.           led_2=1;
  73.           P1=table[ge];
  74.           delay(15);
  75.           arrow();
  76.    }
  77. }
  78. void T0_time() interrupt 1       //定時中斷
  79. {
  80.     TH0=15536/256;               //重新設置定時起點
  81.         TL0=15536%256;
  82.         num++;
  83.         if(num==10)                                         //十秒結束,重設,可以修改倒計時
  84.         {
  85.            num=0;
  86.            temp--;
  87.            if(temp+1==0)
  88.            {
  89.                      if(PC8255<2)
  90.                   {
  91.                      PC8255=PC8255+1;
  92.                   }
  93.                   else
  94.                   {
  95.                     PC8255=0x00;
  96.                   }       
  97.                   temp=10;
  98.            }
  99.         }
  100. }  
  101. void inter() interrupt 2         //夜間行駛中斷函數(外部1中斷)
  102. {
  103.    delay(2000);
  104.    while(y==1)                                        //為了第二次按下按鈕跳出中斷
  105.    {
  106.             led_3=1;         //黃燈亮
  107.          for(i_inter=0;i_inter<150;i_inter++)    //延時顯示倒計時,同時點陣掃描顯示
  108.             {
  109.          P1=0xff;
  110.          led_1=1;
  111.          led_2=0;
  112.          P1=table[shi];
  113.          delay(15);
  114.          if(i_inter==75)
  115.          led_3=0;
  116.          P1=0xff;
  117.          led_1=0;
  118.          led_2=1;
  119.          P1=table[ge];
  120.          delay(15);
  121.          arrow();                        //箭頭函數
  122.    }

  123.    PA8255=0xff;
  124.    PB8255=0xff;
  125.    temp--;
  126.    if(temp+1==0)
  127.    {
  128.             if(PC8255<2)
  129.          {
  130.            PC8255=PC8255+1;
  131.          }
  132.          else
  133.          {
  134.             PC8255=0x00;
  135.          }
  136.          temp=10;
  137.    }
  138.    shi=temp/10;
  139.    ge=temp%10;
  140.    if(led_5==0)                                                             //等待第二次按下按鈕
  141.    {
  142.              y=0;
  143.           while(led_5==0);                            
  144.    }
  145. }
  146. }

  147. void inter1() interrupt 0                                         //緊急情況中斷函數設計
  148. {
  149.    delay(1000);
  150.    k=PA8255;
  151.    m=PC8255;
  152.   while(x==1)
  153.    {
  154.              PC8255=0xff;
  155.           PA8255=0x00;
  156.           P1=0xff;
  157.           if(led_4==0)                  
  158.           {         
  159.              delay(10000);
  160.                  if(led_4==0)                                                  //等待第二次按下按鈕
  161.                  {
  162.                    x=0;
  163.                    while(led_4==0);
  164.                  }
  165.           }
  166.    }

  167.    PA8255=k;
  168.    PC8255=m;
  169. }





















復制代碼



360反饋意見截圖1619082378116104.png (40.98 KB, 下載次數: 72)

電路圖

電路圖

單片機實訓.rar

338.32 KB, 下載次數: 4, 下載積分: 黑幣 -5

實訓源碼

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 蜜桃视频在线观看免费视频网站www | 成人欧美一区二区 | 日本网站免费在线观看 | 色爱区综合 | 欧美一级毛片免费观看 | 精品一区二区不卡 | 不卡视频一区二区三区 | 亚洲国产成人精品久久久国产成人一区 | 亚洲午夜av久久乱码 | 国产精品久久久久久久久久久久 | 国产重口老太伦 | 欧美黄在线观看 | jav成人av免费播放 | 欧美 日韩 视频 | 精品久久久久久亚洲精品 | 欧美国产日韩在线 | 国产一区中文字幕 | 国产精品一区一区三区 | 91av在线免费 | 午夜精品视频在线观看 | 日日做夜夜爽毛片麻豆 | 国产传媒 | 婷婷五月色综合香五月 | www.干| a级免费视频| 亚洲精品一区久久久久久 | 99免费精品 | 日韩在线视频免费观看 | 男插女下体视频 | 黑人精品xxx一区一二区 | 亚洲色综合 | 午夜久久| 99精品一级欧美片免费播放 | 精品久久久久久久久久 | 91精品久久久久久久久久 | 精品久久久久国产免费第一页 | 一区二区三区在线免费观看 | 亚洲国产成人av好男人在线观看 | 久久99视频精品 | 欧美性生活一区二区三区 | 91丨九色丨国产在线 |