找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1857|回复: 1
打印 上一主题 下一主题
收起左侧

基于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

工程文件以及连线截图

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:548675 发表于 2019-6-14 09:24 来自手机 | 只看该作者
怎么加按键呢?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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