标题: 基于c51单片机的交通灯系统 [打印本页]

作者: xuan1124    时间: 2019-6-10 23:07
标题: 基于c51单片机的交通灯系统
可实现,基本的交通灯规则的实现。
下面是一部分代码:
/**********************************************************************************
*  标题:                  交通灯                                                                                                *
*                                                                                                                                                              *
*  连接方法:P0与J12 用8PIN排线连接         P1与JP16 用8PIN排线连接
*            P2与JP1 用8PIN排线相连  P30 P31连接J22                                                            *
*             P32 P33连接JP5                                                                                                            *
***********************************************************************************
*                                                                                                                                  *
* 请学员认真消化本例程,注意定时器中断的用法,以及编程的逻辑*
***********************************************************************************/


#include <reg51.h>
void delay(unsigned int i);       //函数声名
void display();                                          //函数声明
unsigned int num,time;                           //定义变量
//此表为 LED 的字模, 共阴数码管 0-9  -
unsigned char code   Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};  //段码控制

//此表为8个数码管位选控制, 共阴数码管 1-8个  -
unsigned char code   dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};    //位选控制   查表的方法控制

/************主函数**********************/
main()
{  
    TMOD= 0X10;                                                //定时器1的工作方式1
    EA= 1;                                                        //开启总中断
        ET1= 1;                                                        //开启定时器1
    TH1= 0x3c;                                                //高位赋初值
        TL1= 0xb0;                                                //低位赋初值         3cb0是15535,则计时为(65535-15535=50000)us,即50ms
        TR1= 1;                                                        //启动定时器        T1
        num= 0;
  while(1)
  {         
           if(num<31)                                                 //宝田路绿灯,前进路红灯,持续30s
         {
           P2= 0xcd;                 //11001101
           P3= 0xfe;         //11111110
           time= (30-num);
           display();
         }

         if(num>30&&num<34)                                // 宝田路黄灯,人行道禁止通行,前进路红灯,持续三秒
         {
                 P2= 0xd6;                         //11010110
                P3= 0xfe;                                //11111110
                time= (34-num);
                display();
         }

           if(num>33&&num<65)                                //前进路绿灯,宝田路红灯,持续30s
         {
                 P2= 0x7a;                                        //01111010
                P3= 0xfd;                                        //11111101
                time= (64-num);
                display();
         }

         if(num>64&&num<68)                                // 前进路黄灯,人行道禁止通行,宝田路红灯,持续三秒
         {
                 P2= 0xba;                         //10111010
                P3= 0xfe;                                //11111101
                time= (67-num);
                display();
         }
  }
}       



交通灯接线.JPG (173.88 KB, 下载次数: 72)

实物图

实物图

8 交通灯.rar

226.66 KB, 下载次数: 11, 下载积分: 黑币 -5

工程文件以及连线截图


作者: gdg666    时间: 2019-6-14 09:24
怎么加按键呢?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1