精华内容
下载资源
问答
  • 51单片机交通灯

    2012-06-10 15:41:03
    51单片机交通灯代码,确认调试通过了。大家可以参考
  • 51单片机 交通灯

    2018-04-11 20:04:56
    学校实训项目,51单片控制交通灯,有需要的可以下载下来参考。
  • 51单片机交通灯设计.rar
  • 交通灯程序设计 交通灯protues仿真程序基于51单片机交通灯仿真
  • 交通灯程序设计+交通灯protues仿真程序基于51单片机交通灯仿真
  • 51单片机交通灯程序

    2015-03-22 23:09:52
    51单片机交通灯程序,控制数码管、定时器的使用。
  • 51单片机交通灯课程设计,含源码程序,视频讲解,元件清单,操作说明,原理图,毕业论文等超全,是毕业设计非常有用的参考资料
  • 51单片机交通灯全套资料,内容都有,含原理图,程序
  • 51单片机交通灯设计

    2011-01-10 20:34:34
    基于51单片机交通灯设计,数码管显示时间,LED显示红绿灯
  • 51单片机交通灯设计程序,为初学者提供最初的入门指导,简洁的程序和良好的仿真效果
  • 51单片机交通灯控制程序 模拟交通灯红灯先亮10秒,接着黄灯再亮3灯,随后绿灯再亮10秒.本实验是采用调用延时子程序的方式
  • 51单片机交通灯(十字路口演示)

    千次阅读 多人点赞 2020-06-28 18:20:31
    51单片机交通灯(十字路口演示),包括紧急情况 本项目中采用单片机 AT89C52为中心器件来设计交通信号灯控制器, 系统实用性强、操作简单、扩展性强。本设计系统就是由单片机最小系统、交通灯状态显示系统、 LED...

    51单片机交通灯(十字路口演示),包括紧急情况

    系统仿真图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    本项目中采用单片机 AT89C52为中心器件来设计交通信号灯控制器, 系统实用性强、操作简单、扩展性强。本设计系统就是由单片机最小系统、交通灯状态显示系统、 LED数码显示系统、复位电路和按键操作电路等几大部分组成。系统除具有基本的交通信号灯功能外,还具有倒计时和紧急情况处理功能,较好的模拟实现了十字路口可能出现的状况。软件上采用 KEIL C 编程,主要编写了主程序, LED数码管显示程序,中断程序,延时程序等。经过整机调试,实现了对十字路口交通灯的模拟。
    组合完成效果图:
    在这里插入图片描述
    系统硬件框图:
    在这里插入图片描述
    在这里插入图片描述
    主程序框图:
    在这里插入图片描述
    程序代码:

    #include<reg52.h> 
    #define uchar unsigned char 
    #define uint unsigned int 
    #define ON 0 
    #define OFF 1 
    sbit NS_G=P2^5; // 南北绿灯 
    sbit NS_Y=P2^4; // 南北黄灯 
    sbit NS_R=P2^3; // 南北红灯
    
    sbit EW_G=P2^2; // 东西绿灯 
    sbit EW_Y=P2^1; // 东西黄灯 
    sbit EW_R=P2^0; // 东西红灯
    
    sbit LED_D1=P3^7; // 南北方向数码管位控制 
    sbit LED_C1=P3^6; // 南北方向数码管位控制
    
    sbit LED_B1=P3^1; // 东西方向数码管为控制 
    sbit LED_A1=P3^0; // 东西方向数码管位控制
    
    sbit key1=P3^2;				//开关位定义
    sbit key2=P3^3;
    
    /********* 倒计时赋初值 *************/ 
    uchar EWF=30,NSF=25,X=30,Y=25,Z=30,SHU=30;
    uchar count; 
    void keyscan1()		//南北紧急制动按键函数
    {
    	if(!key1)
    	{
    		while(!key1);		//松手检测
    	}
    }
    void keyscan2()		//东西紧急制动按键函数
    {
    	if(!key2)
    	{
    		while(!key2);		//松手检测
    	}
    }
    void init(void) 
    	{ 
    	TMOD=0x01; 
    	TH0=(65536-40000)/256; 
    	TL0=(65536-40000)%256; 
    	EA=1; 
    	ET0=1; 
    	TR0=1;	
    	} 
    void timer1(void) interrupt 1 
    	{ 
    	TMOD=0x01; 
    	TH0=(65536-40000)/256; 
    	TL0=(65536-40000)%256; 
    	EA=1; 
    	ET0=1; 
    	TR0=1; 
    	count++; 
    	if(count>29) 
    			{ 
    			EWF--; 
    			NSF--; 
    			X--; 
    			Y--; 
    			Z--; 
    			SHU--; 
    			count=0; 
    			} 
    
    	}
     
    /****************** 延时 **********************/ 
    void delay(uchar z) 
    		{ 
    		uchar x,y; 
    		for(x=z;x>0;x--) 
    		for(y=110;y>0;y--); 
    		}
    
    /******************led 控制 *******************/ 
    unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 共阴极数码管赋值
    void display1(uchar num1,uchar num2) //控制东西方向 led 显示 
    { 
    	P0=table[num1]; 
    	LED_A1=ON; 
    	delay(1); 
    	LED_A1=OFF; 
    
    	P0=table[num2]; 
    	LED_B1=ON; 
    	delay(1); 
    	LED_B1=OFF;
    
    	if(!key1)//南北紧急制动
    	{
    	   while(1)
    		{
    			P0=0x00;
    			EW_G=EW_Y=OFF;
    			NS_G=NS_Y=OFF;
    			EW_R=NS_R=ON;			
    			keyscan1();
    				EW_R=NS_R=OFF;
    				EW_Y=NS_Y=OFF;
     				NS_G=ON;
    				EW_R=ON;
    			break;
    		}
    	} 
    } 
    void display2(uchar num3,uchar num4) // 控制南北方向 led 显示
    { 
    	P0=table[num3]; 
    	LED_C1=ON; 
    	delay(1); 
    	LED_C1=OFF; 
    
    	P0=table[num4]; 
    	LED_D1=ON; 
    	delay(1); 
    	LED_D1=OFF;
    if(!key2)//东西紧急制动
    	{
    	   while(1)
    		{
    			P0=0x00;
    			EW_G=EW_Y=OFF;
    			NS_G=NS_Y=OFF;
    			EW_R=NS_R=ON;			
    			keyscan2();
    				EW_R=NS_R=OFF;
    				EW_Y=NS_Y=OFF;
     				EW_G=ON;
    				NS_R=ON;
    			break;
    		}
    	} 
    } 
    
    void main() 
    { 
    	int i;
    /************ 初始状态东西南北禁止通行 ************/ 
    	NS_R=ON; //南北方向红灯打开 
    	EW_R=ON; //东西方向红灯打开
    	for(i=0;i<210;i++) 
    		{ 
    		delay(10); 
    		} 
    	NS_R=OFF;// 南北方向红灯关闭 
    	EW_R=OFF;// 东西方向红灯关闭	
    	
    while(1)
    {
    		/************** 状态 1:东西红灯 (30s), 南北绿灯 (25s)************/ 
    		/**************** 状态 2:东西红灯 (30s), 南北黄灯 (5s)***************/
    			while(1) 
    			{ 
    				init(); // 初始化计时器 
    		
    				NS_G=ON; // 南北方向的绿灯打开 
    				EW_R=ON; // 东西方向的红灯打开
    				while(EWF!=0) 
    				{ 
    					display1(EWF/10,EWF%10);// 东西方向红灯 (25s) 
    					display2(NSF/10,NSF%10);// 南北方向绿灯 (30s) 
    					while(EWF==5) 
    					{ 
    						while(X!=0) 
    						{ 
    						display1(EWF/10,EWF%10);// 东西方向红灯 (5s) 
    						display2(X/10,X%10);// 南北方向黄灯 (5s) 
    						NS_G=OFF; // 南北方向的绿灯关闭 
    						NS_Y=ON; // 南北方向的黄灯打开 
    						} 
    					} 
    				 }	 
    			EW_R=OFF; // 东西方向的红灯关闭 
    			NS_G=OFF; // 南北方向的绿灯关闭 
    			NS_Y=OFF; // 南北方向的黄灯打开 		
    		   EWF=30,NSF=25,X=30,Y=25,Z=30,SHU=30;// 重新赋值
    /**************** 状态 3:东西绿灯 (25s), 南北红灯 (30s)**************/ 
    /*************** 状态 4:东西黄灯 (5s) , 南北红灯 (30s)****************/ 
    			while(1)
    			{
    				init(); // 初始化计时器 
    		
    			   NS_R=ON;// 南北方向的红灯打开 
    				EW_G=ON;// 东西方向的绿灯打开
    				while(Z!=0) 
    				{ 
    					display2(Z/10,Z%10);// 南北方向红灯 (25s) 
    					display1(Y/10,Y%10);// 东西方向绿灯 (30s) 
    					while(Z==5) 
    					{ 
    						while(SHU!=0) 
    						{ 
    						display1(Z/10,Z%10);// 东西红灯 (5s) 
    						display2(SHU/10,SHU%10);// 南北绿灯 (5s) 
    						EW_G=OFF; // 东西方向的绿灯关闭 
    						EW_Y=ON; // 东西方向的黄灯打开
    						} 
    					} 
    				 }
    			NS_R=OFF; // 南北方向的红灯关闭 
    			EW_G=OFF; // 东西方向的绿灯关闭 
    			EW_Y=OFF; // 东西方向的黄灯关闭
    			EWF=30,NSF=25,X=30,Y=25,Z=30,SHU=30;// 重新赋值
    			break;
    			}
    		}	
    	 }
    }
    

    个人小结:
    这次是我认为最有意义的一次课程设计,从原理图设计到软件仿真,我从中收获
    了许多。刚开始设计时,我就在校门口仔细观察交通灯的转换,经过研究思考最终得
    到了上述的交通灯状态转换表。
    对于交通灯这个题目,由于刚学了 PLC实现交通信号灯的控制实验,所以就想通
    过不同的核心器件来实现同样的功能,来加深自己在这个题目上的深入研究,在确定
    题目之后,查阅了大量的资料,初步完成了电路设计方案。
    在程序编写上,我选择了用 KEIL C 语言进行编程,。在整个程序的编写过程中,采用模块化,编一个子程序仿真一个, 通过 Keil 和 proteus 两个软件来实现的。Keil帮助检查程序是否存在语法错误之类的问题,同时可以生成 hex 文件,供 proteus 软件仿真使用。通过一周的课程设计,使我更深入的学习了 AT89C52单片机,尤其是在中断程序的编写上学到了好多。

    参考文献: [1] 张毅坤 . 单片微型计算机原理及应用,西安电子科技大学出版社 1998 [2] 夏继强 . 单片机实验与实践教程
    . 北京:北京航空航天大学出版社 , 2001 [3] 彭伟. 单片机 C语言程序设计 100 例. 北京:电子工业出版社 , 2009
    [5] 雷丽文 . 微机原理与接口技术 . 北京:电子工业出版社 , 2001 [6] 于永. 51单片机 C语言常用模块与综合系统设计
    . 北京:电子工业出版社 , 2007 14 [7] 谭浩强 . C 语言程序设计 . 北京:清华大学出版社 , 2005 [8]
    于永. 51单片机 C语言常用模块与综合系统设计 . 北京:电子工业出版社 , 2007

    展开全文
  • 51单片机交通灯.zip

    2019-12-04 19:25:01
    这是51单片机做的仿真交通灯,总共16个灯,每一个方向4个灯,分别为红灯绿灯黄灯和转向灯。代码简易逻辑清晰,供初学者参考。有什么问题评论区评论,共同进步,共同学习。
  • 基于Protues 的51单片机交通灯仿真
  • 基于51单片机交通灯,在基本的十字路口交通灯的基础下,加了一些功能
  • 基于51单片机交通灯(汇编语言) 设计要求:     设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向...

    基于51单片机交通灯(汇编语言)

    设计要求:

        设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。
    proteus仿真图:
    在这里插入图片描述
    单片机晶振为22.114MHz
    代码:

    		ORG 0000H
    		AJMP MAIN
    		ORG 0003H
    		AJMP INTV1
    		ORG 000BH
    		AJMP EXT0
    		
    		ORG 0100H
    MAIN:	
    		SETB P3.2		
    		MOV P1,#00H	
    		SETB TR0
    		SETB IT0
    		SETB EX0
    		SETB ET0
    		SETB PT0	;设置T0优先级最高
    		SETB EA
    		MOV TMOD,#01H	;定时器0工作方式1
    LOOP:	MOV TH0,#184
    		MOV R4,#100
    		MOV TL0 , #0		
    		SETB TR0
    		MOV SP,#60H		;栈
    		
    START:	MOV R7,#30		;交通灯正常运行开始
    LOOP1:					;南北绿灯,东西红灯,25s
    		LCALL WAIT_1S
    		MOV P1,#11H
    		DEC R7
    		CJNE R7,#5,LOOP1
    LOOP2:					;南北绿灯,东西红灯,东西南北黄灯5s
    		LCALL WAIT_1S
    		MOV P1,#35H
    		DEC R7
    		CJNE R7,#0,LOOP2
    		
    		MOV R7,#30
    		
    LOOP3:					;南北红灯,东西绿灯,25s
    		LCALL WAIT_1S
    		MOV P1,#0AH
    		DEC R7
    		CJNE R7,#5,LOOP3
    
    LOOP4:					;南北红灯,东西绿灯,东西南北黄灯5s
    		LCALL WAIT_1S
    		MOV P1,#2EH
    		DEC R7
    		CJNE R7,#0,LOOP4
    		SJMP START
    	
    WAIT_1S:				;等待1s
    		JNB 20H.0,$
    		CLR 20H.0
    		LCALL DISPLAY
    		RET
    		
    EXT0: 					;1s中断拉高20H.0	
    		MOV TH0 , #184
    		MOV TL0 , #0	
    		DJNZ R4,T0END;1S
    		MOV R4,#100		
    		SETB 20H.0	
    T0END:	RETI
    
    TAB:DB 3FH,06H,5BH,4FH,66H
    	DB 6DH,7DH,07H,7FH,6FH//00
    		
    
    DISPLAY:				;数码管显示
    		MOV A,R7
    		DEC A
    		MOV B,#10
    		DIV AB
    		MOV DPTR,#TAB
    		MOVC A,@A+DPTR
    		MOV P2,A
    		XCH A,B
    		MOVC A,@A+DPTR
    		MOV P0,A
    		RET
    		
    INTV1:					;外部中断0
    		MOV P1,#09H
    		PUSH ACC		;入栈保存工作状态
    		PUSH B
    		PUSH PSW
    		SETB RS0		;更换工作区
    		MOV R7,#10		;10s倒计时
    ;		LCALL DISPLAY
    L1:		
    		LCALL WAIT_1S
    		DEC R7
    		CJNE R7,#0,L1		
    		POP PSW			;恢复工作状态
    		LCALL DISPLAY
    		POP B
    		POP ACC
    		RETI
    		
    END		
    
    

    参考代码:: https://wenku.baidu.com/view/90866b22ee06eff9aef80750.html.

    展开全文
  • 51单片机交通灯实训

    2020-10-19 14:48:40
    基于51单片机的实训代码,已经经过测试可以直接使用,如果有需要硬件电路以及对代码有疑问可留言或联系博主
  • 基于51单片机交通灯的系统设计,包括论文,原理图,源代码都有。
  • 51单片机 交通灯的设计报告 当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界...
  • 适用于初学嵌入式单片机,设计交通灯的代码及仿真
  • 51单片机交通灯仿真

    2014-05-18 23:11:04
    基于五一单片机交通灯仿真实验代码,可以通过跳转延时中断循环来实现的汇编语言 欢迎大家来下载
  • 基于51单片机交通灯控制系统设计 摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。交通灯控制系统由80C51单片机、键盘、LED显示、交通...
  • 51单片机交通灯(经典之作),源代码(附件 关系图)
  • 基于C51单片机交通灯课设打包,内含源代码、professional画图等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 769
精华内容 307
关键字:

51单片机交通灯