资源简介

基于51单片机设计十字路口交通灯,含Proteus仿真 功能: 1.实现主次干道的顺序通行 2.在按下紧急状态按钮后,所有路口禁止通行,红灯亮起 3.可以对路口通行时间进行调整,(增加或者减少)

资源截图

代码片段和文件信息

#include
#define D P1
#define uchar unsigned char
#define uint unsigned int
/*******************************************函数声明*****************************************/
void z1(void);//南北通行
void z2(void);//南北注意
void z3(void);//东西通行
void z4(void);//东西注意
void gb(void);  //关闭所有
void jinji(void);//紧急状态,红灯全亮
void sm(void);   //扫描键盘
void plus();  //通行时间加1扫描
void minus();  //通行时间减1扫描
void plus2();
void minus2();
void timer(void);//定时器T1初始化
void time1(void);//定时器T1中断服务程序
void display(void);//显示函数
void delay(uint a);//10ms延时
/*************************************数组及全局变量的定义***************************************/
uint duan[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};//0~9的段码
uint ygwswgw2sw2;   //全局变量
int timestimestime2times2time3;
/*********************************定义交通灯、数码管的位选、按键对应的引脚*********************************/
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;


/*********************************************主函数***********************************************/
void main(void)
{  
times=18;
time=15;
time2=10;
times2=12;
y=0s=0;   //定时器溢出计数初始化
P1M1=0X00; //设置推挽输出,增加数码管亮度
P1M0=0XFF;
timer();   //启动定时器T1
while(1) 
{
z1();  //主干道通行,绿灯15秒
z2();  //主干道注意,黄灯3秒
z3();  //次干道通行,绿灯10秒
z4();  //次干道注意。黄灯2秒
    }   
}
/******************不同状态函数、定时器初始化、定时器中断服务函数************************/
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;  //数码管十位(南北主干道)
gw2=(time-s)%10;  //数码管个位
sw=(times-s)/10;
gw=(times-s)%10;   
display();   //数码管显示
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  2019-03-02 19:29  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\
     目录           0  2019-03-02 20:09  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\PROTEUS for course design\
     文件      141234  2019-03-02 19:43  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\PROTEUS for course design\Last Loaded jtd.DBK
     文件      141161  2019-03-02 19:46  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\PROTEUS for course design\jtd.DSN
     文件         768  2019-03-02 20:09  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\PROTEUS for course design\jtd.PWI
     文件      153896  2019-03-02 19:29  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\jtd全部资料.md
     目录           0  2019-03-02 19:29  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\
     目录           0  2019-03-02 19:29  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\Listings\
     文件       11250  2018-06-28 17:25  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\Listings\jtd.lst
     文件       18233  2018-06-28 17:25  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\Listings\jtd.m51
     目录           0  2019-03-02 19:29  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\objects\
     文件       13209  2018-06-28 17:25  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\objects\jtd
     文件        1112  2018-06-28 17:25  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\objects\jtd.build_log.htm
     文件        3774  2018-06-28 17:25  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\objects\jtd.hex
     文件          70  2018-06-28 17:25  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\objects\jtd.lnp
     文件       15531  2018-06-28 17:25  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\objects\jtd.obj
     文件        5593  2018-06-25 20:44  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\jtd.c
     文件       70828  2018-06-24 23:20  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\jtd.uvgui.11712
     文件        5379  2018-06-22 12:00  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\jtd.uvopt
     文件       14017  2018-06-22 12:00  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\jtd.uvproj
     文件       17735  2016-12-30 12:53  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\program-jtd\stc10.h
     文件       74426  2015-07-17 16:48  基于51单片机的交通灯设计(含原理图,程序源码和Proteus仿真)\电路板原理图.pdf

评论

共有 条评论