仿真版本:Proteus8.6及以上版本
程序編譯:Keil5 C51
編程語言:C語言
設計編號:【M04】
1.? 簡介
? 本文提出了一種基于51單片機的智能控制交通燈設計。該設計在硬件方面主要采用AT89C51單片機作為主控核心,結合獨立按鍵、數(shù)碼管、LED燈,實現(xiàn)不同的紅綠燈切換時間,并且具有倒計時的功能。
2.? 主要功能
a.當主干道通行亮綠燈時,支干道亮紅燈,而支干道亮綠燈時,主干道亮紅燈。
b.主支干道交替通行,主干道每次放行30s、支干道25s,設計30s和25s計時顯示電路。
c.在過程中間,要亮5s的黃燈作為過渡,設置5s計時顯示電路。
d.有緊急車輛要求通過時,系統(tǒng)要能禁止東西或南北兩條路上所有的車輛通行。
e.夜間模式:東西南北方向黃燈閃爍。
f.禁止模式:東西南北方向紅燈亮起,禁止通行。
g.支持對東西、南北方向的倒計時時間調(diào)整。
3.? 源程序(Keil5)
本設計采用keil5 C51軟件(內(nèi)附安裝包)實現(xiàn)程序設計。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar data buf[4]; //秒顯示的變量
uchar data sec_dx=25; //東西數(shù)默認
uchar data sec_nb=25; //南北默認值
uchar data set_timedx=25; //設真東西方向的時間
uchar data set_timenb=25; //設置南北方向的時間
int n;
uchar data countt0,countt1; //定時器中斷次數(shù)
//定義6組開關
sbit k4=P3^7; //切換方向
sbit k1=P3^5; //時間加
sbit k2=P3^6; //時間減
sbit k3=P3^4; //確認
sbit k5=P3^1; //禁止
sbit k6=P3^0; //夜間模式
sbit Red_nb=P2^6; //南北紅燈標志
sbit Yellow_nb=P2^5; //南北黃燈標志
sbit Green_nb=P2^4; //南北綠燈標志.
sbit Red_dx=P2^3; //東西紅燈標志
sbit Yellow_dx=P2^2; //東西黃燈標志
sbit Green_dx=P2^1; //東西綠燈標志
bit set=0; //調(diào)時方向切換鍵標志=1時,南北;=0時,東西
bit dx_nb=0; //東西南北控制位
bit shanruo=0; //閃爍標志位,
bit yejian=0; //夜間黃燈閃爍標志位
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) //時間加
{
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
? 本設計采用proteus8.6軟件(內(nèi)附安裝包)實現(xiàn)仿真設計,如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。
初始界面:
東西通行:
南北通行:
夜間模式:
禁止模式:
5.? 設計報告
設計報告主要包括硬件電路、軟件設計、仿真調(diào)試等等,僅供參考。
6.? 資料清單
設計資料主要包括C程序+仿真+設計報告+使用說明+元件清單+操作視頻等。
7.? 資料獲取鏈接
百度網(wǎng)盤下載鏈接:【M04】百度網(wǎng)盤下載鏈接
更多單片機仿真設計合集:單片機仿真設計合集