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

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

QQ登錄

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

搜索
查看: 1851|回復(fù): 4
收起左側(cè)

51單片機(jī)交通信號(hào)燈程序

[復(fù)制鏈接]
ID:1078516 發(fā)表于 2023-5-19 13:54 | 顯示全部樓層 |閱讀模式
  1. #define        uchar        unsigned char
  2. #define        uint        unsigned int
  3. #include        <reg52.h>
  4. /*****定義控制位**********************/
  5. sbit        EW_LED2=P2^3;        //EW_LED2控制位
  6. sbit        EW_LED1=P2^2;        //EW_LED1控制位
  7. sbit        SN_LED2=P2^1;        //SN_LED2控制位
  8. sbit        SN_LED1=P2^0;        //SN_LED1控制位
  9. sbit    SN_Yellow=P1^6; //SN黃燈
  10. sbit    SN_Red=P1^7;    //SN紅燈
  11. sbit    EW_Yellow=P1^2; //EW黃燈
  12. sbit    EW_Red=P1^3;    //EW紅燈
  13. bit     Flag_SN_Yellow;     //SN黃燈標(biāo)志位
  14. bit     Flag_EW_Yellow;     //EW黃燈標(biāo)志位
  15. char        Time_EW;  //東西方向倒計(jì)時(shí)單元
  16. char        Time_SN;  //南北方向倒計(jì)時(shí)單元
  17. uchar EW=10,SN=10,EWL=3,SNL=3;     //程序初始化賦值,正常模式
  18. uchar EW1=10,SN1=10,EWL1=3,SNL1=3; //用于存放修改值的變量
  19. uchar code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~~~~9段選碼
  20. uchar code S[9]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84,0x88};//交通信號(hào)燈控制代碼

  21. /**********************延時(shí)子程序************************/
  22. void delay_ms(unsigned int x) //延時(shí)ms
  23. {
  24.         unsigned int i,j;
  25.         for(i=x;i>0;i--)
  26.         for(j=110;j>0;j--);
  27. }

  28. /*****************顯示子函數(shù)**************************/
  29. void Display(void)
  30. {
  31.         char h,l;
  32.         h=Time_EW/10;
  33.         l=Time_EW%10;
  34.     P0=table[l];
  35.         EW_LED2=1;
  36.         delay_ms(1);
  37.         EW_LED2=0;
  38.     P0=table[h];
  39.         EW_LED1=1;
  40.         delay_ms(1);
  41.         EW_LED1=0;

  42.         h=Time_SN/10;
  43.         l=Time_SN%10;
  44.         P0=table[l];
  45.         SN_LED2=1;
  46.         delay_ms(1);
  47.         SN_LED2=0;
  48.     P0=table[h];
  49.         SN_LED1=1;
  50.         delay_ms(1);
  51.         SN_LED1=0;
  52.                
  53. }

  54. /**********************T0中斷服務(wù)程序*******************/
  55. void timer0(void)interrupt 1 using 1
  56. {
  57.         static uchar count;
  58.         TH0=(65536-50000)/256;
  59.         TL0=(65536-50000)%256;
  60.         count++;
  61.        
  62.         if(count==10)
  63.         {
  64.           if(Flag_SN_Yellow==1) //測(cè)試南北黃燈標(biāo)志位
  65.           {SN_Yellow=~SN_Yellow;}
  66.           if(Flag_EW_Yellow==1)  //測(cè)試東西黃燈標(biāo)志位
  67.           {EW_Yellow=~EW_Yellow;}
  68.         }
  69.         if(count==20)        {
  70.                 Time_EW--;
  71.                 Time_SN--;
  72.         if(Flag_SN_Yellow==1)//測(cè)試南北黃燈標(biāo)志位
  73.             {SN_Yellow=~SN_Yellow;}
  74.         if(Flag_EW_Yellow==1)//測(cè)試東西黃燈標(biāo)志位
  75.             {EW_Yellow=~EW_Yellow;}
  76.         count=0;
  77.         }
  78.        
  79. }

  80. /*********************主程序開(kāi)始**********************/
  81. void main(void)
  82. {

  83.     TMOD=0x01;//定時(shí)器工作于方式1
  84.         TH0=(65536-50000)/256;//定時(shí)器賦初值
  85.         TL0=(65536-50000)%256;
  86.         EA=1; //CPU開(kāi)中斷總允許
  87.         ET0=1;//開(kāi)定時(shí)中斷
  88.     TR0=1;//啟動(dòng)定時(shí)

  89.         /*******S0狀態(tài)(初始狀態(tài))**********/
  90.         Time_EW=3;       
  91.         Time_SN=3;               
  92.         while(Time_SN>=0||Time_EW>=0)
  93.         {
  94.           Flag_EW_Yellow=0;           //EW關(guān)黃燈顯示信號(hào)
  95.           P1=S[8];         //所有路口紅燈
  96.           Display();
  97.         }
  98.        
  99.         while(1)                         
  100.         {
  101.                 /*******S1狀態(tài)(主干道直行狀態(tài))**********/
  102.                 Time_EW=EW;       
  103.                 Time_SN=SN;               
  104.                 while(Time_SN>=4)
  105.             {
  106.               Flag_EW_Yellow=0;           //EW關(guān)黃燈顯示信號(hào)
  107.                   P1=S[0];         //SN通行,EW紅燈
  108.               Display();
  109.                 }
  110.        
  111.                 /*******S2狀態(tài)(主干道直行黃燈閃爍狀態(tài))**********/
  112.             P1=0x00;
  113.                 while(Time_SN>=0)
  114.            {
  115.              Flag_SN_Yellow=1;         //SN開(kāi)黃燈信號(hào)位
  116.                  EW_Red=1;      //SN黃燈亮,等待左轉(zhuǎn)信號(hào),EW紅燈
  117.              Display();
  118.            }
  119.        
  120.                
  121.        
  122.            /***********賦值(主干道通行變次干道通行)**********/
  123.                 EW=EW1;
  124.                 SN=SN1;
  125.                 EWL=EWL1;
  126.                 SNL=SNL1;
  127.        
  128.                 /*******S3狀態(tài)(次干道直行狀態(tài))**********/                       
  129.                 Time_EW=SN;
  130.                 Time_SN=EW;
  131.             while(Time_EW>=4)
  132.             {
  133.                   Flag_SN_Yellow=0;  //SN關(guān)黃燈顯示信號(hào)                          
  134.                   P1=S[4];         //EW通行,SN紅燈
  135.                   Display();
  136.                 }
  137.        
  138.                 /*******S4狀態(tài)(次干道直行黃燈閃爍狀態(tài))**********/
  139.                 P1=0X00;
  140.                 while(Time_EW>=0)
  141.            {
  142.              Flag_EW_Yellow=1;//EW開(kāi)黃燈信號(hào)位
  143.              SN_Red=1;//EW黃燈亮,等待左拐信號(hào),SN紅燈       
  144.              Display();
  145.            }
  146.        
  147.                
  148.        
  149.                     /***********賦值(次干道通行變主干道通行)**********/
  150.             EW=EW1;
  151.                 SN=SN1;
  152.                 EWL=EWL1;
  153.                 SNL=SNL1;
  154.         }
  155. }


  156. //注意:需要在proteus仿真軟件進(jìn)行仿真必須將上述C語(yǔ)言代碼生成為后綴名為.hex的文件

復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

ID:1095601 發(fā)表于 2023-10-10 16:38 | 顯示全部樓層
uchar code S[9]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84,0x88};//交通信號(hào)燈控制代碼
回復(fù)

使用道具 舉報(bào)

ID:1095601 發(fā)表于 2023-10-10 16:39 | 顯示全部樓層
uchar code S[9]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84,0x88};//這行代碼表示什么,沒(méi)看懂
回復(fù)

使用道具 舉報(bào)

ID:863362 發(fā)表于 2023-10-11 08:23 | 顯示全部樓層
lily_ 發(fā)表于 2023-10-10 16:39
uchar code S[9]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84,0x88};//這行代碼表示什么,沒(méi)看懂

四個(gè)方向LED交通燈的亮滅吧
回復(fù)

使用道具 舉報(bào)

ID:1095601 發(fā)表于 2023-10-12 09:58 | 顯示全部樓層
sonique0371 發(fā)表于 2023-10-11 08:23
四個(gè)方向LED交通燈的亮滅吧

好的,謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人国产精品免费观看视频 | 男女污网站 | 亚洲 欧美 精品 | 久久久久久av | 九九精品在线 | 久久久久久高清 | 欧美1页 | 美女爽到呻吟久久久久 | 丝袜久久 | 免费色网址| 日韩欧美在线视频一区 | 国产精品永久久久久久久www | 97色在线观看免费视频 | 国产精品视频观看 | 国产中文在线观看 | 日本一区视频在线观看 | 91精品国产综合久久国产大片 | 电影91久久久 | 一区二区三区四区不卡视频 | 国产在线观看一区二区 | 日韩视频一区二区在线 | 久久中文字幕一区 | 久久久精品一区二区三区 | www.99热这里只有精品 | 欧美日韩在线一区二区 | 色综合99| 欧美日韩一卡 | 亚洲一级黄色 | 最新黄色毛片 | 成人av一区二区亚洲精 | 中文字幕精品视频 | 伊人网在线播放 | 亚洲成色777777在线观看影院 | 久久看片| 97超碰成人| 国产视频久久 | 亚洲自拍偷拍av | 国产久视频 | 999国产视频 | 欧美成人免费在线 | 狠狠操在线 |