发布网友 发布时间:2022-04-26 17:50
共4个回答
热心网友 时间:2023-10-19 00:03
给好评哦亲
程序
#include<reg51.h>
sbit P26=P2^6;
sbit P27=P2^7;
sbit EWR=P2^5;
sbit EWY=P2^4;
sbit EWG=P2^3;
sbit SNR=P2^2;
sbit SNY=P2^1;
sbit SNG=P2^0;
char count=0;
bit flag=0; //一秒标志位
bit direction=1; //方向标记位 东西方向=1 南北
方向为 =0
char Time1=30,Time2=28; //倒计时 起点
//char code table[10]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};char code table[10]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x880,0x90};
void delay(char); //软件延时
void display_1(); //东西方向数码管显示
void display_2(); //南北方向数码管显示
void main()
{
char T=30;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
P26=0;
while(1)
{
//*******LED部分 ************
// LED6 RED LED5 YELLOW LED4
GREEN // LED3 RED LED2 YELLOW LED1
GREEN
if(direction) //东西方向通行
{
if(Time1>2) //前28秒 东西 绿灯 南北 红
灯
{EWR=1;EWY=1; EWG=0; SNR=0;SNY=1;SNG=1;}
else //最后两秒东西黄灯南
北红灯
{EWR=1;EWY=0; EWG=1; SNR=0;SNY=1;SNG=1;}
}
else //南北方向通行
{
if(Time2>2)
{EWR=0;EWY=1; EWG=1; SNR=1;SNY=1;SNG=0;}
else //最后两秒 南北黄灯 东西 红
灯
{EWR=0;EWY=1; EWG=1; SNR=1;SNY=0;SNG=1;}
}
//****************数码管 部分 **************
if(direction) //东西方向通行
{
display_1(); //东西方向数码管显示
if(Time2<1) //当前28 秒 倒计时完
成后 南北方向数码管继续显示0
{
Time2=0;
delay(1); //延时让倒计时
闪烁
display_2();
}
else
display_2(); //前28秒南北方向显示
}
else //南北方向通行
{
display_2();
if(Time1<1)
{
Time1=0;
delay(1);
display_1();
}
else
display_1();
}
//**********每倒计时1秒后显示
**********************
if(flag)
{
flag=0; //清0
Time1--;Time2--;T--; //时间减去1 秒
if(!direction&&T==-1)
{Time1=30;Time2=28;T=30;direction=!
direction;} //南北方向 30秒倒计时结束 调换方向
if(direction&&T==-1)
{Time1=28;Time2=30;T=30;direction=!
direction;}//东西方向 倒计时 30秒结束 调换方向
}
}
}
void display_1()
{
char T_high,T_low;
T_high=Time1/10;
P3=255;
P1=table[T_high];
P27=1;
delay(2);
P27=0;
P3=0xdf;
delay(20);
T_low=Time1%10;
P3=255;
P1=table[T_low];
P27=1;
delay(2);
P27=0;
P3=0xef;
delay(20);
}
void display_2()
{
char T_high,T_low;
T_high=Time2/10;
P3=255;
P1=table[T_high];
P27=1;
delay(2);
P27=0;
P3=0xf7;
delay(20);
T_low=Time2%10;
P3=255;
P1=table[T_low];
P27=1;
delay(2);
P27=0;
P3=0xfb;
delay(20);
}
void delay(char n)
{
char i;
for(i=1;i<=n;i++);
}
void timer0()interrupt 1 using 0
{
count++;
if(count==20)
{
count=0;
flag=1;
}
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
热心网友 时间:2023-10-19 00:04
最基本的一定要有啊,比如万用表,烙铁,锡丝,万能板,杜邦线,电容,电阻,(电容和电阻的值基本上用1M,10K,4.7K,1K,200欧姆各几只即可,你也可以参考其它电路图,数值差不大的话,基本都可以)单片机的最小系统里要有,11.0592M晶振,22PF电容,(复位电路)按键,电容。信号灯的话用常见的发光二极管LED就行,颜色的话选择红色,绿色,*三种就行。热心网友 时间:2023-10-19 00:04
可到电子乐屋上去看看,哪里有单片机做的交通灯实物,还有仿真,电原理图,可以参考的下。热心网友 时间:2023-10-19 00:05
装路上的话需要交通局吧?