基于单片机的交通信号灯模拟控制系统设计

题目:基于单片机的交通信号灯模拟控制系统设计
设计内容及要求:
1、硬件设计
单片机主电路、交通灯接口电路、LED数码管显示电路,键盘控制电路。
2、软件设计
系统流程图、各功能程序
设计环境:
Protel99SE 、WAVE仿真环境、H51/L仿真器、单片机多功能实验箱
实现目标:
(1)正常情况下交叉路口的轮流通行(主道3个LED红、黄、绿控制直行,支道3个LED红、黄、绿,切换时间自行设定);
(2)特殊情况控制通行方式控制,用按键开关K1控制主道通行,支道禁行,K2控制支道通行,主道禁行,特殊情况控制通行放行。
(3)有紧急情况时用按键开关K0控制两道均为红灯;
(4)4位LED数码管能够显示双直行方向绿灯和红灯的等待时间。
这是我们课程设计题目,大家帮忙看看吧...最好能写出程序和流程图...谢谢拉....

第1个回答  2008-07-13
;2位LED数码管显示程序:P0口接数码管段,P2口接数码管位。 P3口接键盘,P1口接发光二极管
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0P
ORG 000BH
LJMP T0INT
ORG 0013H
LJMP INT1P
ORG 001BH
LJMP CTC1
ORG 0100H
MAIN: LCALL CSHIH ;初始化
LOOP: LCALL TONGX ;通行路口
LCALL H_BCD2 ;计算(1位HEX转换为2位BCD码)
LCALL YIMA ;译码
LCALL LED4W ;显示
CLR 00H
JNB 00H,$
DJNZ R6,LOOP
MOV R6,#100
JNB 10H,LOOP1 ;启动特殊功能K0
JB 10H,$
LOOP1: JNB 11H,LOOP2 ;启动特殊功能K1
JB 11H,$
NOP
LOOP2: JNB 12H,LOOP3 ;启动特殊功能K2
JB 12H,$
NOP
LOOP3: DJNZ TIME,LOOP
SETB 02H
SJMP LOOP

TONGX: JB 01H,DONGX
JB 02H,HUANG1
MOV P1,#21H
SJMP TX_OUT
HUANG1: MOV P1,#22H
MOV TIME,#1
DJNZ R5,TX_OUT
MOV R5,200
CLR 02H
CPL 01H
MOV TIME,#15
SJMP TX_OUT
DONGX: JB 02H,HUANG2
MOV P1,#0CH
SJMP TX_OUT
HUANG2: MOV P1,#14H
MOV TIME,#1
DJNZ R5,TX_OUT
MOV R5,200
CLR 02H
CPL 01H
MOV TIME,#15
TX_OUT: RET

LED4W: MOV A,XWEI
MOV B,#3
MUL AB
MOV DPTR,#LED4T
JMP @A+DPTR
LED4T: LJMP LD4W1
LJMP LD4W2
LJMP LD4W3
LJMP LD4W4
LD4W1: MOV LEDD,MLED1
MOV LEDW,#1
INC XWEI
SJMP LED4WE
LD4W2: MOV LEDD,MLED2
MOV LEDW,#2
INC XWEI
SJMP LED4WE
LD4W3: MOV LEDD,MLED3
MOV LEDW,#4
INC XWEI
SJMP LED4WE
LD4W4: MOV LEDD,MLED4
MOV LEDW,#8
MOV XWEI,#0
LED4WE: RET

YIMA: MOV R0,#BLED1 ;四位LED
MOV R1,#MLED1
MOV R7,#2
MOV DPTR,#YIMTAB
YIMA1: MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R7,YIMA1
RET
YIMTAB: DB 3FH,06H,5BH,4FH,66H ;0,1,2,3,4
DB 6DH,7DH,07H,7FH,6FH ;5,6,7,8,9

CSHIH: MOV TIME,#15
MOV XWEI,#0
MOV LEDD,#0
MOV LEDW,#0
MOV R6,#100 ;1秒延时
MOV R5,#200 ;2秒延时
MOV P1,#21H
MOV 20H,#0
MOV 22H,#0
MOV TMOD,#61H ;T0方式1
MOV TTH0,#0D8H ;10ms
MOV TTL0,#0F0H
MOV TL0,TTL0
MOV TH0,TTH0
MOV TL1,#0FFH
MOV TH1,#0FFH
MOV IE,#8FH
SETB TR0
SETB TR1
MOV BLED1,#0
MOV BLED2,#0
MOV MLED3,#0
MOV MLED4,#0
RET

H_BCD2: MOV A,TIME
MOV B,#10
DIV AB
MOV BLED2,A
MOV BLED1,B
MOV MLED3,#0
MOV MLED4,#0
RET

T0INT: MOV TL0,TTL0
MOV TH0,TTH0
SETB 00H
RETI

INT0P: CPL 10H
SETB P1.2
CLR P1.1
CLR P1.0
SETB P1.5
CLR P1.4
CLR P1.3
RETI

INT1P: CPL 11H
CLR P1.2
CLR P1.1
SETB P1.0
SETB P1.5
CLR P1.4
CLR P1.3
RETI

CTC1: CPL 12H
MOV P1,#0CH
RETI

BIAOZ DATA 20H ;标志:.0定时到。

XWEI DATA 60H ;显示位,4位:0~3
TTL0 DATA 61H
TTH0 DATA 62H
TIME DATA 66H ;倒计时时间

BLED1 DATA 74H ;显示数据BCD
BLED2 DATA 75H
BLED3 DATA 76H
BLED4 DATA 77H
MLED1 DATA 78H ;显示数据译码
MLED2 DATA 79H
MLED3 DATA 7AH
MLED4 DATA 7BH

LEDD EQU P0 ;数码管段
LEDW EQU P2 ;数码管位

END本回答被提问者采纳
第2个回答  2008-07-04
简单I/O实验(交通灯控制)

一.实验要求

以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。

二.实验目的

1.学习在单片机系统中扩展简单I/O接口的方法。

2.学习数据输出程序的设计方法。

3.学习模拟交通灯控制的方法。

4.学习双色灯的使用。

三.实验电路及连线

四.实验说明

1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。

2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

五.实验程序框图

程序框图:

源代码:
ORG 0000H
LJMP START
ORG 0040H
START:
MOV SP,#60H
LCALL STATUS0 ;初始状态(都是红灯)
CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯
LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯
LCALL STATUS3 ;南北红灯,东西绿灯
LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯
LJMP CIRCLE
STATUS0: ;南北红灯,东西红灯
MOV DPTR,#8300H
MOV A,#0FH
MOVX @DPTR,A
MOV R2,#10 ;延时1秒
LCALL DELAY
RET
STATUS1: ;南北绿灯,东西红灯
MOV DPTR,#08300H
MOV A,#5AH ;南北绿灯,东西红灯
MOVX @DPTR,A
MOV R2,#50 ;延时5秒
LCALL DELAY
RET
STATUS2: ;南北绿灯闪转黄灯,东西红灯
MOV DPTR,#8300H
MOV R3,#03H ;绿灯闪3次
FLASH: MOV A,#5FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#5AH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH
MOV A,#0AH ;南北黄灯,东西红灯
MOVX @DPTR,A
MOV R2,#10 ;延时1秒
LCALL DELAY
RET
STATUS3: ;南北红灯,东西绿灯
MOV DPTR,#8300H
MOV A,#0A5H
MOVX @DPTR,A
MOV R2,#50 ;延时5秒
LCALL DELAY
RET
STATUS4: ;南北红灯,东西绿灯闪转黄灯
MOV DPTR,#8300H
MOV R3,#03H ;绿灯闪3次
FLASH1: MOV A,#0AFH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#0A5H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH1
MOV A,#05H ;南北红灯,东西黄灯
MOVX @DPTR,A
MOV R2,#10 ;延时1秒
LCALL DELAY
NOP
RET
DELAY: ;延时子程序
PUSH 2
PUSH 1
PUSH 0
DELAY1: MOV 1,#00H
DELAY2: MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2 ;延时 100 mS
DJNZ 2,DELAY1
POP 0
POP 1
POP 2
RET
END
第3个回答  2008-07-01
51单片机的程序可以用C写的对么- -```..可以C的话等我考完试帮你做个...
相似回答