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

基于51單片機(jī)的智能控制交通燈設(shè)計(jì)(一)

04/17 08:42
834
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

共1個(gè)文件

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

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

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計(jì)編號(hào):【M04】

1.? 簡(jiǎn)介

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

2.? 主要功能

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

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

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

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

e.夜間模式:東西南北方向黃燈閃爍。

f.禁止模式:東西南北方向紅燈亮起,禁止通行。

g.支持對(duì)東西、南北方向的倒計(jì)時(shí)時(shí)間調(diào)整。

3.? 源程序(Keil5)

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

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int

uchar data buf[4];             //秒顯示的變量
uchar data sec_dx=25;          //東西數(shù)默認(rèn)
uchar data sec_nb=25;          //南北默認(rèn)值
uchar data set_timedx=25;      //設(shè)真東西方向的時(shí)間
uchar data set_timenb=25;     //設(shè)置南北方向的時(shí)間
int n;
uchar data countt0,countt1;   //定時(shí)器中斷次數(shù)
//定義6組開關(guān)
sbit k4=P3^7;                   //切換方向
sbit k1=P3^5;                   //時(shí)間加
sbit k2=P3^6;                  //時(shí)間減
sbit k3=P3^4;                  //確認(rèn)
sbit k5=P3^1;                  //禁止
sbit k6=P3^0;                  //夜間模式
sbit Red_nb=P2^6;             //南北紅燈標(biāo)志
sbit Yellow_nb=P2^5;          //南北黃燈標(biāo)志
sbit Green_nb=P2^4;           //南北綠燈標(biāo)志.

sbit Red_dx=P2^3;             //東西紅燈標(biāo)志
sbit Yellow_dx=P2^2;         //東西黃燈標(biāo)志
sbit Green_dx=P2^1;          //東西綠燈標(biāo)志

bit set=0;           //調(diào)時(shí)方向切換鍵標(biāo)志=1時(shí),南北;=0時(shí),東西
bit dx_nb=0;         //東西南北控制位
bit shanruo=0;       //閃爍標(biāo)志位,
bit yejian=0;        //夜間黃燈閃爍標(biāo)志位

uchar code table[11]={                       //共陰極字型碼

	0x3f,        //--0
	0x06,        //--1
	0x5b,        //--2
	0x4f,        //--3
	0x66,        //--4
	0x6d,        //--5
	0x7d,        //--6
	0x07,        //--7
	0x7f,        //--8
	0x6f,        //--9
	0x00         //--NULL
};

//函數(shù)的聲明部分
void delay(int ms);
void key_to2();
void key_to3();
void display();
void key();
void logo();
//主程序
void main()
{
	TMOD=0X11;
	TH1=0X3C;
	TL1=0XB0;
	TH0=0X3C;
	TL0=0XB0;
	EA=1;
	ET0=1;
	ET1=1;
	TR0=1;
	TR1=0;
	EX0=1;
	EX1=1;
	logo();
	P2=0Xc3;
	sec_nb=sec_dx+5;
	while(1)
	{
		key(); 
		display();
	}
}
void key(void)                     //按鍵掃描子程序
{
	if(k1!=1)    //時(shí)間加
	{
		display();
		if(k1!=1)
		{
		TR0=0;
		shanruo=0;
		P2=0x00;
		TR1=0;
		if(set==0)
			set_timedx++;
		else
			set_timenb++;
		if(set_timenb==100)
			set_timenb=1;
		if(set_timedx==100)
			set_timedx=1;
		sec_nb=set_timenb;
		sec_dx=set_timedx;
		do
		{
			display();
		}
		while(k1!=1);
	}
}

4.? 仿真proteus8.6

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

初始界面:

東西通行:

南北通行:

夜間模式:

禁止模式:

5.? 設(shè)計(jì)報(bào)告

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

6.? 資料清單

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

7.? 資料獲取鏈接

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

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

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

相關(guān)推薦