交通信号灯控制实验——单片机实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称:交通灯信号控制实验

一、实验目的:

1.学习P1口的使用方法;

2.学习延时子程序的编写;

3. 学习单片机的开发环境及流程。

二、实验内容及步骤:

以P1口作为输出口,控制6个发光二极管,模拟交通信号灯的管理。在实验仪上选择两组红、黄、绿指示灯,代表交通信号灯。

要求:设有一个十字路口为东西南北方向,其中东西方向为支路,南北方向为主路。初始状态为4个路口的红灯全亮。之后,南北路口的绿灯亮,东西路口的红灯亮。南北路口方向通车,延时20秒后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁5次后红灯亮。而同时东西方向路口的绿灯亮,东西方向开始通车,延时10秒后,东西路口的绿灯熄灭,而黄灯开始闪烁。闪烁5次后,再切换到南北路口的绿灯亮,东西路口的红灯亮。之后重复上述过程。

三、实验电路

四、程序流程图

五、单片机程序(*.lst文件)

A51 MACRO ASSEMBLER JIAOTONGDENG 04/17/2010 11:17:58 PAGE 1

MACRO ASSEMBLER A51 V7.01

OBJECT MODULE PLACED IN jiaotongdeng.OBJ

ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE jiaotongdeng.asm SET(SMALL) DEBUG EP

LOC OBJ LINE SOURCE

0000 1 ORG 0000H

2

3

0000 759018 4 START: MOV P1,#00011000B

0003 1155 5 CALL DALY1 ;调用0.5s延时子程序

0005 7590DB 6 MOV P1,#11011011B

0008 1133 7 CALL DALY;调用20s子程序

000A 7805 8 MOV R0,#5H

000C 74DD 9 LOOP1: MOV A,#11011101B ;P1口状态

000E F590 10 MOV P1,A

0010 1155 11 CALL DALY1 ; 调用0.5s延时子程序

0012 74DF 12 MOV A,#11011111B

0014 F590 13 MOV P1,A

0016 1155 14 CALL DALY1 ;调用0.5s延时子程序

0018 D8F2 15 DJNZ R0,LOOP1

001A 747E 16 MOV A,#01111110B

001C F590 17 MOV P1,A

001E 1144 18 CALL DALY2 ;调用10s延时子程序0020 7805 19 MOV R0,#5H

0022 74BE 20 LOOP2: MOV A,#10111110B

0024 F590 21 MOV P1,A

0026 1155 22 CALL DALY1 ;调用0.5s延时子程序0028 74FE 23 MOV A,#11111110B

002A F590 24 MOV P1,A

002C 1155 25 CALL DALY1 ;调用0.5s延时子程序002E D8F2 26 DJNZ R0,LOOP2

0030 020000 27 LJMP START

28

29 ;20s延时子程序

0033 7C64 30 DALY:MOV R4,#100

0035 7B64 31 DELAY1:MOV R3,#100

0037 7A14 32 DELAY2:MOV R2,#20

0039 792D 33 DELAY3:MOV R1,#45

003B D9FE 34 DELAY4:DJNZ R1,DELAY4

003D DAFA35 DJNZ R2,DELAY3

003F DBF6 36 DJNZ R3,DELAY2

0041 DCF2 37 DJNZ R4,DELAY1

0043 22 38 RET

39

40 ;10s延时子程序

0044 7C64 41 DALY2:MOV R4,#100

0046 7B64 42 DEAY1:MOV R3,#100

0048 7A0A43 DEAY2:MOV R2,#10

004A 792D 44 DEAY3:MOV R1,#45

004C D9FE 45 DEAY4:DJNZ R1,DEAY4

004E DAFA46 DJNZ R2,DEAY3

0050 DBF6 47 DJNZ R3,DEAY2

0052 DCF2 48 DJNZ R4,DEAY1

0054 22 49 RET

50

51 ;0.5s延时子程序

0055 7C64 52 DALY1: MOV R4,#100

0057 7B64 53 DEY1: MOV R3,#100

0059 7A19 54 DEY2: MOV R2,#25

005B DAFE 55 DEY3: DJNZ R2,DEY3

005D DBFA56 DJNZ R3,DEY2

005F DCF6 57 DJNZ R4,DEY1

0061 22 58 RET

04/17/2010 11:17:58 PAGE 2

59

60 END

04/17/2010 11:17:58 PAGE 3

SYMBOL TABLE LISTING

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

六、实验总结及感想

本次实验主要学习了单片机的开发环境和程序调试及运行两种模式,并通过交通灯信号控制实验进行了实例演练。在实验过程中,我按照老师的要求,分别用调试和全速运行两种模式对该程序进行了操作。

实验过程中,我遇到的一个问题是在进行调试和运行两种模式的转换时,操作步骤存在不清楚、混乱的情况。Keil软件相关参数设置一旦出问题,就导致了程序的调试无法正常进行。在请教了老师以后我解决了这一问题。另外,在改变程序重新进行调试时,按RESET键也容易遗漏。今后的实验中我将特别注意以上几点。

交通灯信号控制实验程序较为简单,需要注意的问题是延时程序中计数值的设置。

相关文档
最新文档