資源簡介
十字路口交通燈的設計,可實現(xiàn)通行時間調整,緊急狀態(tài)切換的功能
包含源程序和仿真

代碼片段和文件信息
#include
#define?D?P1
#define?uchar?unsigned?char
#define?uint?unsigned?int
/*******************************************函數(shù)聲明*****************************************/
void?z1(void);//南北通行
void?z2(void);//南北注意
void?z3(void);//東西通行
void?z4(void);//東西注意
void?gb(void); ?//關閉所有
void?jinji(void);//緊急狀態(tài),紅燈全亮
void?sm(void);???//掃描鍵盤
void?plus(); ?//通行時間加1掃描
void?minus(); ?//通行時間減1掃描
void?plus2();
void?minus2();
void?timer(void);//定時器T1初始化
void?time1(void);//定時器T1中斷服務程序
void?display(void);//顯示函數(shù)
void?delay(uint?a);//10ms延時
/*************************************數(shù)組及全局變量的定義***************************************/
uint?duan[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};//0~9的段碼
uint?ygwswgw2sw2; ??//全局變量
int?timestimestime2times2time3;
/*********************************定義交通燈、數(shù)碼管的位選、按鍵對應的引腳*********************************/
sbit?d1?=P2^0;?sbit?d2?=P2^1;?sbit?d3=?P2^2;???sbit?w1=P0^0;???sbit?H1?=P3^6; sbit?H2=P3^7;
sbit?d4?=P2^3;?sbit?d5?=P2^4;?sbit?d6=?P2^5;???sbit?w2=P0^1;???sbit?key1?=P0^5;
sbit?d7?=P2^6;?sbit?d8?=P2^7;?sbit?d9=?P3^2;???sbit?w3=P0^2;???sbit?key2?=P0^6;
sbit?d10=P3^3;?sbit?d11=P3^4;?sbit?d12=P3^5;???sbit?w4=P0^3;???sbit?key3?=P0^7;
/*********************************************主函數(shù)***********************************************/
void?main(void)
{??
times=18;
time=15;
time2=10;
times2=12;
y=0s=0;???//定時器溢出計數(shù)初始化
P1M1=0X00;?//設置推挽輸出,增加數(shù)碼管亮度
P1M0=0XFF;
timer();???//啟動定時器T1
while(1)?
{
z1();??//主干道通行,綠燈15秒
z2();??//主干道注意,黃燈3秒
z3();??//次干道通行,綠燈10秒
z4();??//次干道注意。黃燈2秒
??? } ??
}
/******************不同狀態(tài)函數(shù)、定時器初始化、定時器中斷服務函數(shù)************************/
void?z1(void)//南北通,東西禁
{???
while(s {
sm();
plus();
minus();
if(TR1==1)
{
//綠???/黃???/紅
d4?=0;d5?=1;d6?=1;//北
d10=0;d11=1;d12=1;//南
d7?=1;d8?=1;d9?=0;//東
d1?=1;d2?=1;d3?=0;//西
}
sw2=(time-s)/10;??//數(shù)碼管十位(南北主干道)
gw2=(time-s)%10;??//數(shù)碼管個位
sw=(times-s)/10;
gw=(times-s)%10; ??
display(); ??//數(shù)碼管顯示
gb(); ??//全關
} s=0;//置零定時時間標志位 ???
}
void?z2(void)//南北黃燈注意,東西禁
{???
time3=3;
while(s {
sm();
if(TR1==1)
{
//綠???/黃???/紅
d4?=1;d5?=0;d6?=1;
d10=1;d11=0;d12=1;
d7?=1;d8?=1;d9?=0;
d1?=1;d2?=1;d3?=0;
}
sw2=(time3-s)/10;???
gw2=(time3-s)%10;
sw=sw2; ??
gw=gw2; ??
display(); ??
gb(); ?
} s=0;
}
void?z3(void)//東西通行,南北禁止
{???
while(s {
sm();
plus2();
minus2();
//綠???/黃???/紅 ?
d4?=1;d5?=1;d6?=0;
d10=1;d11=1;d12=0;
d7?=0;d8?=1;d9?=1;
d1?=0;d2?=1;d3?=1;
sw2=(times2-s)/10;; ??
gw2=(times2-s)%10;
sw=(time2-s)/10;???
gw=(time2-s)%10;?? ?? ?
display(); ??
gb(); ??
}? s=0;
}
void?z4(void)//東西注意,南北禁止
{???
time3=2;
while(s {
sm();
//綠???/黃???/紅
d4?=1;d5?=1;d6?=0;
d10=1;d11=1;d12=0;
d7?=1;d8?=0;d9?=1;
d1?=1;d2?=0;d3?=1;
sw=(time3-s)/10;???
gw=(time3-s)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-06-28?18:23??PROTEUS?for?course?design\
?????文件??????141464??2018-06-28?18:09??PROTEUS?for?course?design\Last?Loaded?jtd.DBK
?????文件??????141470??2018-06-28?18:23??PROTEUS?for?course?design\jtd.DSN
?????文件?????????768??2018-06-28?18:23??PROTEUS?for?course?design\jtd.PWI
?????目錄???????????0??2018-06-28?18:25??program-jtd\
?????目錄???????????0??2018-06-28?18:25??program-jtd\Listings\
?????文件???????11250??2018-06-28?17:25??program-jtd\Listings\jtd.lst
?????文件???????18233??2018-06-28?17:25??program-jtd\Listings\jtd.m51
?????目錄???????????0??2018-06-28?18:25??program-jtd\ob
?????文件???????13209??2018-06-28?17:25??program-jtd\ob
?????文件????????1112??2018-06-28?17:25??program-jtd\ob
?????文件????????3774??2018-06-28?17:25??program-jtd\ob
?????文件??????????70??2018-06-28?17:25??program-jtd\ob
?????文件???????15531??2018-06-28?17:25??program-jtd\ob
?????文件????????5593??2018-06-25?20:44??program-jtd\jtd.c
?????文件???????70828??2018-06-24?23:20??program-jtd\jtd.uvgui.11712
?????文件????????5379??2018-06-22?12:00??program-jtd\jtd.uvopt
?????文件???????14017??2018-06-22?12:00??program-jtd\jtd.uvproj
?????文件???????17735??2016-12-30?12:53??program-jtd\stc10.h
評論
共有 條評論