• 方案介紹
    • 1.? 簡介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計報告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的智能交通燈設(shè)計(一)

04/16 09:43
886
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

單片機仿真設(shè)計合集資料獲取.pdf

共1個文件

資料清單:C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻

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

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計編號:【M01】

1.? 簡介

? 本文提出了一種基于51單片機的智能交通燈設(shè)計。該設(shè)計在硬件方面主要采用AT89C51單片機作為主控核心,結(jié)合獨立按鍵、數(shù)碼管、LED燈,實現(xiàn)不同的紅綠燈切換時間,并且具有倒計時的功能。

2.? 主要功能

a.當(dāng)主干道通行亮綠燈時,支干道亮紅燈,而支干道亮綠燈時,主干道亮紅燈。

b.主支干道交替通行,主干道每次放行30s、支干道25s,設(shè)計30s和25s計時顯示電路。

c.在過程中間,要亮3s的黃燈作為過渡,設(shè)置3s計時顯示電路。

d.有緊急車輛要求通過時,系統(tǒng)要能禁止東西或南北兩條路上所有的車輛通行。

3.? 源程序(Keil5)

本設(shè)計采用keil5 C51軟件(內(nèi)附安裝包)實現(xiàn)程序設(shè)計。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。

#include "reg52.h"			 //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16;	  //對數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;
 //數(shù)碼管控制端口
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;//計數(shù)變量
u8 aa,bb;     //中間變量
u8 table=0;   //切換標(biāo)志位
u8 nbshi,dxshi,moshi; //時間中間標(biāo)記
u8 nbshi1,dxshi1,moshi1; //時間中間標(biāo)記1
u8 huangshi=3;//黃燈時間
u8 nbzlshi=25;    //南北各燈時間 直行    綠燈				
u8 nbzhshi=30;  //南北各燈時間 直行   紅燈					
u8 dxzlshi=25;   //東西各燈時間	直行  綠燈			
u8 dxzhshi=30;  //東西各燈時間	直行  紅燈
u8 dxhshi,nbhshi;  //南北 東西紅燈時間	中間變量
u8 INT1_1,INT1_0;	//中斷標(biāo)志								
/*******************************************************************************
* 函 數(shù) 名         : delay
* 函數(shù)功能		   : 延時函數(shù),i=1時,大約延時10us
*******************************************************************************/
void delay(u16 i)
{
	while(i--);	
}
/*******************************************************************************
* 函 數(shù) 名         : Timer0Init
* 函數(shù)功能		   : 定時器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

? 本設(shè)計采用proteus8.6軟件(內(nèi)附安裝包)實現(xiàn)仿真設(shè)計,如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

初始界面:

東西通行:

南北通行:

5.? 設(shè)計報告

設(shè)計報告主要包括硬件電路、軟件設(shè)計、仿真調(diào)試等等,僅供參考。

6.? 資料清單

設(shè)計資料主要包括C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤下載鏈接:【M01】百度網(wǎng)盤下載鏈接

更多單片機仿真設(shè)計合集:單片機仿真設(shè)計合集

  • 單片機仿真設(shè)計合集資料獲取.pdf
    下載

相關(guān)推薦