烛火鬼:《交通信号灯控制》

来源:百度文库 编辑:高考问答 时间:2024/04/28 22:01:09
各位好 现在我们做课设 题目是《交通信号灯控制》 要求 1 用8051单片机做一只信号灯控制装置 A东西绿灯亮 5 秒后 闪2秒后熄灭,红灯亮12秒 B 南北绿灯亮8秒后闪熄灭 黄灯闪2秒熄灭 红灯亮9秒 c 循环 现在我一点思路也没有 请各位帮帮我

公司名: 佛山市国星光电科技有限公司

--------------------------------------------------------------------------------

联系人: 王垚浩

电话: 0757-82960551 82810387
传真: 0757-82960551

地址: 佛山市汾江北路24号

邮政编码: 528000

电子邮件: lnxh@21cn.com;company@nationstar.com

主页: http://www.nationstar.com

建议一个思路:首先使用c8051f020和一个11.0592的晶振搭建一个最小的系统,同时利用通用io输入输出接口来控制二极管,实现你的逻辑,编程上需要用keil c ,安装包在www.xhl.com.cn网站可以找到,另外别忘了安装jtag驱动。你用c语言编写,速度会快些。。

Flash equ 0 ; LED状态
STOP equ 1

SR equ p1.0 ; 南北红灯
SY equ p1.1 ; 南北黄灯
SG equ P1.2 ; 南北绿灯

ER equ P1.3 ; 东西红灯
EY equ P1.4 ; 东西黄灯
EG equ p1.5 ; 东西绿灯

ljmp Start

org 3

setb STOP ; 南北, 东西均红灯
reti

Start:
mov SP, #70
mov TCON, #01h ; down edge IT0
mov IE, #81h ; enable EA, EX0

setb SR ; 南北, 东西均红灯
clr SY
clr SG

setb ER
clr EY
clr EG

clr STOP
Loop:
jb STOP, AllRed

setb SR ; 南北红灯, 东西绿灯
clr SY
clr SG

clr ER
clr EY
setb EG

mov a, #20
call Delay

jb STOP, AllRed
setb SR ; 南北红灯, 东西黄灯闪
clr SY
clr SG

clr ER
clr EY
clr EG

clr Flash
mov r7, #9
Loop1:
mov c, Flash
mov EY, c
mov a, #1
call Delay
cpl Flash
djnz r7, Loop1

jb STOP, AllRed
clr SR ; 南北绿灯, 东西红灯
clr SY
setb SG

setb ER
clr EY
clr EG

mov a, #20
call Delay

jb STOP, AllRed
clr SR ; 东西红灯, 南北黄灯闪
clr SY
clr SG

setb ER
clr EY
clr EG

clr Flash
mov r7, #9
Loop2:
mov c, Flash
mov SY, c
mov a, #1
call Delay
cpl Flash
djnz r7, Loop2

ljmp Loop

AllRed:
setb SR
clr SY
clr SG

setb ER
clr EY
clr EG

clr STOP
mov a, #10
call Delay
ljmp Loop

Delay: ; 延时子程序
mov r1, #80H
mov r0, #0
DelayLoop:
jb STOP, ExitDelay
djnz r0, DelayLoop
djnz r1, DelayLoop
djnz ACC, Delay
ExitDelay:
ret

end