• 方案介绍
    • 1.  简介
    • 2.  主要功能
    • 3.  源程序(Keil5)
    • 4.  仿真proteus8.6
    • 5.  设计报告
    • 6.  资料清单
    • 7.  资料获取链接
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的智能交通灯设计(一)

04/16 09:43
820
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

单片机仿真设计合集资料获取.pdf

共1个文件

资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频

仿真版本:Proteus8.6及以上版本

程序编译:Keil5 C51

编程语言:C语言

设计编号:【M01】

1.  简介

  本文提出了一种基于51单片机的智能交通灯设计。该设计在硬件方面主要采用AT89C51单片机作为主控核心,结合独立按键、数码管、LED灯,实现不同的红绿灯切换时间,并且具有倒计时的功能。

2.  主要功能

a.当主干道通行亮绿灯时,支干道亮红灯,而支干道亮绿灯时,主干道亮红灯。

b.主支干道交替通行,主干道每次放行30s、支干道25s,设计30s和25s计时显示电路

c.在过程中间,要亮3s的黄灯作为过渡,设置3s计时显示电路。

d.有紧急车辆要求通过时,系统要能禁止东西或南北两条路上所有的车辆通行。

3.  源程序(Keil5)

本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。

#include "reg52.h"			 //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;
 //数码管控制端口
sbit LSA=P2^2;       
sbit LSB=P2^1;
sbit LSC=P2^3;
sbit LSD=P2^4;
sbit k2=P3^2;//按键控制
sbit k3=P3^3;
sbit led1=P1^0;//南北 绿 
sbit led2=P1^1;//南北 黄 
sbit led3=P1^2; //南北 红
sbit led4=P1^3;//东西  绿 
sbit led5=P1^4;//东西 黄
sbit led6=P1^5; //东西 红
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
					0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
u8 sum2,sum1=0;
u16 js;//计数变量
u8 aa,bb;     //中间变量
u8 table=0;   //切换标志位
u8 nbshi,dxshi,moshi; //时间中间标记
u8 nbshi1,dxshi1,moshi1; //时间中间标记1
u8 huangshi=3;//黄灯时间
u8 nbzlshi=25;    //南北各灯时间 直行    绿灯				
u8 nbzhshi=30;  //南北各灯时间 直行   红灯					
u8 dxzlshi=25;   //东西各灯时间	直行  绿灯			
u8 dxzhshi=30;  //东西各灯时间	直行  红灯
u8 dxhshi,nbhshi;  //南北 东西红灯时间	中间变量
u8 INT1_1,INT1_0;	//中断标志								
/*******************************************************************************
* 函 数 名         : delay
* 函数功能		   : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
	while(i--);	
}
/*******************************************************************************
* 函 数 名         : Timer0Init
* 函数功能		   : 定时器0初始化
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void Timer0Init()
{
	TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。

	TH0=0XFC;	//给定时器赋初值,定时1ms
	TL0=0X18;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器			
}
void hlhdeng(u8 deng)
{
  switch(deng)
			{
				case 0x00:         //东西直行 绿灯
					if(sum1==0)
          led1=1; // 绿     // 南北 灯         
					led2=1; //黄
					led3=0; //红	
	        if(sum1==0)
          led4=0; // 绿       //东西 灯   
					led5=1; // 黄 
					led6=1; //红	      
						
				break;
				case 0x01:            //东西直行 黄灯
						if(sum1==0)
					 led1=1; // 绿     // 南北 灯         
					led2=1; //黄
					led3=0; //红	
	        if(sum1==0)
          led4=1; // 绿       //东西 灯   
					led5=0; // 黄 
					led6=1; //红    	      
				break;
				case 0x02:            // 南北 直行 绿
					if(sum1==0)
					led1=0; // 绿     // 南北 灯         
					led2=1; //黄
					led3=1; //红	
	        if(sum1==0)
          led4=1; // 绿       //东西 灯   
					led5=1; // 黄 
					led6=0; //红
				break;
					case 0x03:            // 南北 直行 黄
						if(sum1==0)
					led1=1; // 绿     // 南北 灯         
					led2=0; //黄
					led3=1; //红	
	         if(sum1==0)
          led4=1; // 绿       //东西 灯   
					led5=1; // 黄 
					led6=0; //红
				break;
			
			}
}

4.  仿真proteus8.6

  本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。

初始界面:

东西通行:

南北通行:

5.  设计报告

设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。

6.  资料清单

设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。

7.  资料获取链接

百度网盘下载链接:【M01】百度网盘下载链接

更多单片机仿真设计合集:单片机仿真设计合集

  • 单片机仿真设计合集资料获取.pdf
    下载
点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!