实验四交通灯实验
实验目的
1)按键、数码管、发光二极管综合应用编程技术
2)定时中断技术
3)按键中断技术
二、实验实现的功能
1)对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。
2)紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。
三、系统硬件设计
四、系统软件设计
说明:1、红绿灯规则:
绿变红时:绿灯亮→绿灯闪→绿灯灭黄灯亮→黄灯灭红灯亮;
红变绿时:红灯亮→红灯黄灯同时亮→红灯黄灯同时灭绿灯亮;
2、左边数1、2位数码管计左右灯时间,3、4位计上下灯时间;
3、1键按下时进入设置红灯时间模式,同时计时停止;再次按下进入绿灯设置模式;再次按下退出设置模式,同时继续计时。设置模式时2 键选中灯加,3键选中灯减。
4、按键4进入和退出紧急模式
P1M1 EQU 91H
P1M0 EQU 92H
DX1 DATA 30H ;数码管个位显示
DX2 DATA 31H ;数码管十位显示
NB1 DATA 32H ;数码管百位显示
NB2 DATA 33H ;数码管千位显示
RE DATA 34H ;红灯亮时间,单位为秒
GR DATA 35H ;绿灯亮时间,单位为秒
YE DATA 36H ;黄灯亮时间,单位为秒
NUM1 DATA 37H ;计算东西向亮灯时间参数
NUM2 DATA 38H ;计算南北向亮灯时间参数
DELAY_1 DATA 39H ;延时参数
DELAY_2 DATA 40H ;延时参数
KF1 DATA 41H ;按键标志位
KF2 DATA 42H ;按键标志位
KF3 DATA 43H ;按键标志位
KF4 DATA 44H ;按键标志位
ORG 0000H
LJMP 0030H
ORG 001BH ;定时器1定时中断,记秒
LJMP INTR0
ORG 0030H
MOV P1M1,#00000000B
MOV P1M0,#11111111B
MOV SP,#060H ;设置堆栈指针
MOV RE,#025 ;红灯亮时间默认值25S
MOV GR,#020 ;绿灯亮时间默认值20S
MOV YE,#005 ;黄灯亮时间默认值5S
MOV R1,#000 ;设置时间时暂停红绿灯
MOV R2,#000 ;保存键值
MOV R7,#000 ;记中断次数,R7=100为1秒
MOV KF1,#000 ;初始化相关参数
MOV KF2,#000
MOV KF3,#000
MOV KF4,#000
MOV TMOD,#10H ;定时器初始化
MOV TH1,#0D8H ;定时时间10ms
MOV TL1,#0F0H
SETB ET1
SETB TR1
SETB EA ;开启总中断
MAIN: LCALL LIGHT ;主程序
/*********************************************************按键逻辑********************************************************************/
KY: MOV R1,#001 ;暂停计时
CJNE R2,#000,KY0
LJMP KY15
KY0: CJNE R2,#004,KY1 ;紧急按键
MOV R2,#000
KY00: LCALL DP1 ;应急模式
LCALL DP2
LCALL LIGHT7
CJNE R2,#004,KY00
MOV R2,#000
LJMP KY15
AJMP KY00
KY1: CJNE R2,#001,KY15 ;进入设置模式
MOV R2,#000
KY10: MOV NUM2,RE
LCALL COUNT2
LCALL DP3
LCALL LIGHT7
CJNE R2,#001,KY11
MOV R2,#000
LJMP KY20
KY11: CJNE R2,#002,KY12 ;红灯加
MOV R2,#000
INC RE
MOV A,RE
CJNE A,#100,KY12
MOV RE,#000
KY12: CJNE R2,#003,KY14 ;红灯减
MOV R2,#000
MOV A,RE
CJNE A,#000,KY13
MOV RE,#099
LJMP KY14
KY13: DEC RE
KY14: AJMP K
单片机实验报告 交通灯 来自淘豆网www.taodocs.com转载请标明出处.