找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1940|回復: 0
打印 上一主題 下一主題
收起左側(cè)

51單片機制作的迷你交通燈程序(一套資料)

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:443301 發(fā)表于 2019-5-12 15:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


單片機源程序如下:

  1. #include <reg51.h>#define uchar unsigned char#define uint unsigned int


  2. sbit    Time_Show_LED2=P2^5;sbit    Time_Show_LED1=P2^4;sbit EW_LED2=P2^3; sbit EW_LED1=P2^2; sbit SN_LED2=P2^1;sbit SN_LED1=P2^0; sbit    SN_Yellow=P1^6;sbit    EW_Yellow=P1^2;sbit    EW_Red=P1^3;sbit    SN_Red=P1^7;sbit    EW_ManGreen=P3^4;sbit    EW_ManRed=P3^5;sbit    SN_ManGreen=P3^2;sbit    SN_ManRed=P3^3;  bit     Flag_SN_Yellow; bit     Flag_EW_Yellow;uchar Time_EW;uchar Time_SN;uchar EW=60,SN=40,EWL=19,SNL=19; uchar EW1=60,SN1=40,EWL1=19,SNL1=19;uchar  table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};uchar  S[8]={0x28,0x48,0x18,0x48,0x82,0x84,0x81,0x84};

  3. void Delay(uchar  a) {  uchar i;  i=a;  while(i--); }

  4. void Display(void) {  char h,l;  h=Time_EW/10;  l=Time_EW%10;       P0=table[l];  EW_LED2=1;  Delay(2);  EW_LED2=0;     P0=table[h];  EW_LED1=1;  Delay(2);  EW_LED1=0;

  5.   h=Time_SN/10;  l=Time_SN%10;  P0=table[l];  SN_LED2=1;  Delay(2);  SN_LED2=0;     P0=table[h];  SN_LED1=1;  Delay(2);  SN_LED1=0;  

  6.   h= EW1/10;  l= EW1%10;  P0=table[l];  Time_Show_LED1=1;  Delay(2);        Time_Show_LED1=0;  P0=table[h];  Time_Show_LED2=1;  Delay(2);     Time_Show_LED2=0;}

  7. void timer0(void)interrupt 1 using 1{ static uchar count; TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++; if(count==10) {   if(Flag_SN_Yellow==1)    {SN_Yellow=~SN_Yellow;}   if(Flag_EW_Yellow==1)    {EW_Yellow=~EW_Yellow;} } if(count==20) { Time_EW--; Time_SN--; if(Flag_SN_Yellow==1)     {SN_Yellow=~SN_Yellow;} if(Flag_EW_Yellow==1)     {EW_Yellow=~EW_Yellow;} count=0; } }

  8. void main(void)

  9. { IT0=1;      TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; EX0=1;    TR0=1;     while(1)

  10. {               Time_EW=EW;     Time_SN=SN;      while(Time_SN>=5)       {P1=S[0];    EW_ManGreen=0;              EW_ManRed=1;             SN_ManGreen=1;       SN_ManRed=0;                Flag_EW_Yellow=0;    Flag_SN_Yellow=0;            EW_Red=1;     Display();}              P1=0x00;    while(Time_SN<5)      {P1=S[1];       Flag_SN_Yellow=1;                EW_ManGreen=0;              EW_ManRed=1;             SN_ManGreen=1;       SN_ManRed=0;                Flag_EW_Yellow=0;               EW_Red=1;              Display();    }                  Time_SN=SNL;    while(Time_SN>=5)    {P1=S[2];         SN_ManGreen=0;       SN_ManRed=1;     EW_ManGreen=0;              EW_ManRed=1;    Flag_SN_Yellow=0;    Flag_EW_Yellow=0;    EW_Red=1;     Display();}

  11.          P1=0x00;    while(Time_SN<5)      {P1=S[3];      Flag_SN_Yellow=1;       SN_ManGreen=0;       SN_ManRed=1;     EW_ManGreen=0;              EW_ManRed=1;    Flag_EW_Yellow=0;       EW_Red=1;                   Display();}


  12.           EW=EW1;    SN=SN1;    EWL=EWL1;    SNL=SNL1;


  13.              Time_EW=SN;    Time_SN=EW;       while(Time_EW>=5)       {P1=S[4];       SN_Red=1;     SN_ManGreen=0;        SN_ManRed=1;     EW_ManGreen=1;               EW_ManRed=0;     Flag_EW_Yellow=0;        Flag_SN_Yellow=0;     Display();}            P1=0X00;    while(Time_EW<5)      {P1=S[5];      Flag_EW_Yellow=1;       SN_ManGreen=0;        SN_ManRed=1;     EW_ManGreen=1;               EW_ManRed=0;             Flag_SN_Yellow=0;       SN_Red=1;       Display();}                       Time_EW=EWL;    while(Time_EW>=5)    {P1=S[6];     SN_Red=1;      SN_ManGreen=0;        SN_ManRed=1;     EW_ManGreen=0;               EW_ManRed=1;     Flag_EW_Yellow=0;        Flag_SN_Yellow=0;     Display();}

  14.         P1=0X00;    while(Time_EW<5)      {P1=S[7];      Flag_EW_Yellow=1;        SN_Red=1;     SN_ManGreen=0;        SN_ManRed=1;     EW_ManGreen=0;               EW_ManRed=1;           Flag_SN_Yellow=0;        Display();}                  EW=EW1;    SN=SN1;    EWL=EWL1;    SNL=SNL1;   }

  15. }
復制代碼

所有資料51hei提供下載:
51交通燈.zip (96.65 KB, 下載次數(shù): 15)


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表