单片机项目总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长沙理工大学
单片机实训项目
学院:长沙理工大学城南学院
专业:工业电气自动化
班级:工电1102班
组员: 许亚波(201197250233)
梁锦文(201197250236)
刘占荣(201197250237)
时间:2014年6月16号—6月27日地点:金一电苑楼1B-902
指导老师:雷辉、刘铮、张辉、李红英
交通灯灯设计
一、任务设计要求
1、基本要求
交通信号灯的各种指示模式就
是用红,绿,黄3钟颜色按照特定的
时间和规律进行显示,在紧急情况下
还能进行应急处理,禁止所有方向的
车辆通行,四个路口的信号灯状态都
变成黄灯并闪烁,延时后全部变为红
灯,从而保证紧急车辆的即使通过。
十字路口交通灯以东西南北四个方向说明,当东西方向允许行车时,南北方向就会禁止车行,即此时的东西方向绿灯亮红灯灭,而南北方向的红灯亮绿灯灭;反则,当南北方向允许行车时,东西方向就会禁止车行,即此时的南北方向绿灯亮红灯灭,而东西方向的红灯亮绿灯灭。
2.系统控制要求如下:
正常情况下,首先东西方向绿灯亮,南北方向红灯亮60S;然后南北方向绿灯亮,东西方向红灯30S,东西方向和南北方向轮流放行。
有紧急情况时(用按键开关S0模拟),四个路口的信号灯都变成红灯,处理紧急情况.随后黄灯闪烁回复正常初始状态。
二、设计过程
1、设计方案确定
2、硬件电路设计
3、软件设计
(1)、绘制简易交通灯流程图
红黄绿灯发光二极管
并
行接口
AT89C51 单片机
电源
时钟保护
复位电路
按键开关
中断结束,退出中断,返回
(2)、编写源程序:
1.汇编程序
NB_R EQU P1.0
NB_Y EQU P1.1
NB_G EQU P1.2
DX_R EQU P1.3
DX_Y EQU P1.4
DX_G EQU P1.5
ORG 0000H
LJMP MAIN
ORG 0003H ;外部中断0的入口地址AJMP X0_INT
ORG 000BH ;T0中断的入口地址AJMP T0_INT
MAIN:
MOV TMOD, #01H
MOV TH0, #3CH ;定时50ms
MOV TL0, #0B0H
MOV R2, #20 ;定时1s
SETB TR0
SETB ET0
SETB PT0
SETB EX0
SETB IT0
SETB EA
MOV SP, #60H
D_X:
MOV P1, #0 ;关闭全部红绿灯SETB DX_G
SETB NB_R
MOV R3, #60
MOV R4, #55 ;东西通行时间DX_W1:
CJNE R4, #0, DX_DISP
MOV R4, #5 ;东西黄灯时间SJMP D_X_Y
DX_DISP:
CALL DISPLAY
SJMP DX_W1
D_X_Y:
CLR DX_G
DX_W2:
CJNE R3, #255, DX_DISP2
JMP N_B
DX_DISP2:
MOV A, R2
MOV C, ACC.3
MOV DX_Y, C
CALL DISPLAY
SJMP DX_W2
N_B: ;南北
MOV P1, #0 ;关闭全部红绿灯SETB NB_G
SETB DX_R
MOV R3, #25 ;南北通行时间MOV R4, #30
NB_W1:
CJNE R3, #0, NB_DISP
MOV R3, #5 ;南北黄灯时间SJMP N_B_Y
NB_DISP:
CALL DISPLAY
SJMP NB_W1
N_B_Y:
CLR NB_G
NB_W2:
CJNE R4, #0, NB_DISP2 SJMP D_X
NB_DISP2:
MOV A, R2
MOV C, ACC.3
MOV NB_Y, C
CALL DISPLAY
SJMP NB_W2 DISPLAY:
MOV DPTR, #TAB1 MOV A, R3
MOV B, #10
DIV AB
MOVC A, @A + DPTR MOV P0, A
MOV P2, #1
DJNZ R7, $
DJNZ R7, $
MOV P2, #0
MOV A, B
MOVC A, @A + DPTR MOV P0, A
MOV P2, #2
DJNZ R7, $
DJNZ R7, $
MOV P2, #0
MOV A, R4
MOV B, #10
DIV AB
MOVC A, @A + DPTR MOV P0, A
MOV P2, #4
DJNZ R7, $
DJNZ R7, $
MOV P2, #0
MOV A, B
MOVC A, @A + DPTR MOV P0, A
MOV P2, #8
DJNZ R7, $
DJNZ R7, $
MOV P2, #0
RET
INT0: