找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1755|回复: 0
收起左侧

51单片机制作的迷你交通灯程序(一套资料)

[复制链接]
ID:443301 发表于 2019-5-12 15:15 | 显示全部楼层 |阅读模式
Screenshot_2019-05-12-13-37-29-329_QQ_1.jpg

单片机源程序如下:

  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, 下载次数: 15)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表