单片机交通灯综合实验报告.docx

上传人:b****7 文档编号:10377281 上传时间:2023-02-10 格式:DOCX 页数:17 大小:18.94KB
下载 相关 举报
单片机交通灯综合实验报告.docx_第1页
第1页 / 共17页
单片机交通灯综合实验报告.docx_第2页
第2页 / 共17页
单片机交通灯综合实验报告.docx_第3页
第3页 / 共17页
单片机交通灯综合实验报告.docx_第4页
第4页 / 共17页
单片机交通灯综合实验报告.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

单片机交通灯综合实验报告.docx

《单片机交通灯综合实验报告.docx》由会员分享,可在线阅读,更多相关《单片机交通灯综合实验报告.docx(17页珍藏版)》请在冰豆网上搜索。

单片机交通灯综合实验报告.docx

单片机交通灯综合实验报告

单片机交通灯综合实验报告

河北工业大学

院:

业:

级:

名:

号:

实验课程:

单片机应用系统设计开发入门指导教师:

实验名称:

交通信号灯控制实验

实验时间:

2021年

5

月23日

2021年5月23日

实验要求

1

实验目的及实验内容要求实验目的:

1.熟悉外部中断源的扩展方法。

2.初步掌握单片机综合应用系统设计。

3.掌握用Proteus调试汇编源程序的方法。

实验内容要求:

用发光二极管模拟交通信号灯,用逻辑电平开关模拟控制开关,设计一个交通信号灯控制系统。

设计要求如下:

(1)A车道与B车道交叉组成十字路口,A是主道,B是支道;正常情况下,A、B两车道轮流放行。

具体放行时间和要求如下:

(2)A车道放行50s,其中绿灯常亮44s,绿灯闪烁3s(用于警告),黄灯常亮3s(用于警告)。

(3)B车道放行30s,其中绿灯常亮24s,绿灯闪烁3s(用于警告),黄灯常亮3s(用于警告)。

在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。

控制要求如下:

(1)在B车道放行期间,若A车道有车而B车道无车,按下开关使A车道放行15s。

(2)在A车道放行期间,若B车道有车而A车道无车,按下开关使B车道放行15s。

(3)有紧急车辆通过时,按下开关使A、B车道均为红灯,禁行15s。

2

实验设备或运行软件平台完成本实验需要使用到单片机仿真软件Proteus8,该软件是英国LabCenterElectronics公司出版的EDA工具软件,是目前比较好的仿真单片机及外围器件的工具。

从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。

在编译方面,它也支持IAR、Keil、MATLAB等多种编译器。

其具有的基本功能特点为:

1.原理布图。

2.PCB自动或人工布线。

3.SPICE电路仿真。

革命性的特点是1.互动的电路仿真。

2.仿真处理器及其外围电路。

实验内容及过程

1

实验设计及分析(或者实验程序)

实验原理图如下所示:

交通信号灯模拟控制系统程序流程图如下图所示:

主程序

一道有车另一道无车时

紧急车辆通过时的中断服务程序

的中断服务程序

A

绿灯闪、

B

红灯延时

s

3

A

红灯、

B

绿灯闪动延

s

3

A

红灯、

B

绿灯延时

25

s

A

绿灯、

B

红灯延时

55

s

A

红灯、

B

黄灯延时

s

2

A

黄灯、

B

红灯延时

s

2

初始化

开中断

保护现场

关中断

A

道有车

B

道有车

A

红灯、

B

绿灯延时

s

5

A

绿灯、

B

红灯延时

5

s

关中断

恢复现场

开中断

返回

中断响应

保护现场

A

红灯、

B

红灯延时

s

20

恢复现场

返回

N

N

Y

Y

中断响应

开始

实验程序及程序分析如下:

ORG

0000HLJMP

MAIN;LJMP,转向主程序ORG

0003HLJMP

INT00;转向紧急车辆中断服务程序ORG

0013HLJMP

INT11;转向有车车道放行中断服务ORG

0030HMAIN:

SETB

PX0

;置外部中断0为高优先级中断MOV

TCON,#00H;置外部中断0、1为电平触发MOV

IE,#85H;开CPU中断、外部中断0、1中断LOOP:

;A道绿灯亮;B红灯亮MOV

P1,#0F3HMOV

R1,#88;44s延时循环次数AP1:

;调用0.5s延时子程序DELAYLCALL

DELAYDJNZ

R1,AP1;44s不到,继续循环(DJNZRN,REL是一条件转移指令,先将工作寄存器Rn中的数减”1”,判断结果是否为“0”,不为“0”程序就跳转到行标为REL的地方执行,否则,为“0”就不转移,继续执行下一条指令。

MOV

R1,#6;3s延时的循环次数(循环一次延时0.5秒。

AP2:

;A道绿灯闪烁CPL

P1.2LCALL

DELAY;参考程序中缺少此句,若缺失会导致无法延时。

DJNZ

R1,AP2;3s未到,继续循环MOV

P1,#0F5H;A道黄灯亮,B道红灯亮MOV

R1,#6

AP3:

LCALL

DELAYDJNZ

R1,AP3

;3s未到,继续循环MOV

P1,#0DEH;A道红灯亮,B道绿灯亮MOV

R1,#48

;延时循环48次

BP1:

LCALL

DELAY

DJNZ

R1,BP1;24s未到继续循环MOV

R1,#6BP2:

CPL

P1.5;B道绿灯闪烁LCALL

DELAYDJNZ

R1,BP2;3s未到,继续循环MOV

P1,#0EEH;A道红灯亮,B道黄灯亮MOV

R1,#6BP3:

LCALL

DELAYDJNZ

R1,BP3;3s未到,继续循环SJMP

LOOPORG

0200HINT00:

保护P1口数据PUSH

P1

;PUSH入栈指令MOV

P1,#0F6H

;A道红灯亮;B道红灯亮MOV

R2,#30

;15秒延时的循环次数DELAY0:

LCALL

DELAYDJNZ

R2,DELAY0

POP

P1

;恢复P1口数据POP是出栈指令RETI

;返回主程序ORG

0300HINT11:

CLR

EA

;关中断EA为总中断PUSH

P1

;保护现场PUSH

04HPUSH

05HPUSH

06HSETB

EA

;开中断JNB

P3.0,AP0;A道无车,转向判断B道(JNB比较转移指令。

当P3.0是0时就转移执行AP0,否则就顺序执行。

MOV

P1,#0F3H;A道绿灯亮,B道红灯亮SJMP

DEL1

;转向15秒延时程序AP0:

JNB

P3.1,EXIT;B道无车,退出中断

MOV

P1,#0DEH;A道红灯亮,B道绿灯亮DEL1:

MOV

R3,#30;15s延时的循环次数NEXT:

LCALL

DELAYDJNZ

R3,NEXT;15秒未到循环继续EXIT:

CLR

EAPOP

06H

;恢复现场POP

05HPOP

04HPOP

P1SETB

EARETI

;返回原程序ORG

0350HDELAY:

MOV

R4,#20;0.5秒延时子程序参考程序中为#10,经实验发现只能延时0.25s故改为#20,以达到实验目的。

LP1:

MOV

R5,#50LP2:

MOV

R6,#248NOPLP3:

DJNZ

R6,LP3DJNZ

R5,LP2DJNZ

R4,LP1RETEND

交通信号灯与控制管脚的对应关系如下:

控制状态

P1口控制码

P1.7

P1.6

P1.5

P1.4

P1.3

P1.2

P1.1

P1.0

未用

未用

B道

绿灯

B道

黄灯

B道

红灯

A道

绿灯

A道

黄灯

A道

红灯

A绿灯亮、B红灯亮

F3H

1

1

1

1

0

0

1

1

A黄灯亮、B红灯亮

F5H

1

1

1

1

0

1

0

1

A红灯亮、B绿灯亮

DEH

1

1

0

1

1

1

1

0

A红灯亮、B黄灯亮

EEH

1

1

1

0

1

1

1

0

A红灯亮、B红灯亮

F6H

1

1

1

1

0

1

1

0

2

实验步骤及实验数据记录1.先接线按下表所示的管脚与LED或逻辑开关的对应关系接线。

在Proteus8中原理图绘制界面中将接线接好。

管脚

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P3.0

P3.1

P3.3

P3.2

LED或逻辑开关

L3

L1

L2

L7

L5

L6

K1

K2

K3

K8

控制对象

A红灯

A黄灯

A绿灯

B红灯

B黄灯

B绿灯

A道

B道

使有车车道放行低电平有效

紧急车辆放行低电平有效

高电平表示有车低电平表示无车

接线完成后如图所示:

2.输入程序,在Proteus8中SourceCode界面将程序输入完成后试运行保证程序正确。

出现编译成功后进行下一步。

3运行程序。

4.观察六只发光二极管的亮灭规律。

实验中六只发光二极管亮灭规律:

(0代表灭,1代表亮,2代表闪)

运行时间(s)

A绿A黄A红B绿B黄B红0100001442000014701000150001100740012007700101080100001八十秒后开始重复0-80秒内的亮灭规律。

5.

部分连接图如图所示。

1)

在A红灯、B绿灯亮时,先将K1拨至高电平(表示A道有车)、K2拨至低电平(表示B道无车),再将K3拨至低电平使有车车道(A道)放行,A绿灯、B红灯同时亮5s后返回原先状态。

对逻辑开关K1、K2、K3的操作对应于SW2开关,闭合SW2后,A红灯灭,绿灯亮,B绿灯灭,红灯亮。

15s后恢复回闭合开关前的的亮灯状态。

2)

在A绿灯、B红灯亮时,先将K1拨至低电平(表示A道无车)、K2拨至高电平(表示B道有车),再将K3拨至低电平使有车车道(B道)放行,A红灯、B绿灯同时亮5s后返

回原先状态。

对逻辑开关K1、K2、K3的操作对应于SW1开关,闭合SW1后,A绿灯灭,红灯亮,B红灯灭,绿灯亮。

15s后恢复回闭合开关前的的亮灯状态。

(提示:

K3拨至低电平后,应在5s内改为高电平,否则,单片机可能将再一次响应中断。

6.不论A道、B道的信号灯处于什么状态,将K8拨至低电平后,A红灯、B红灯同时亮20s后返回原先状态。

(提示:

K8拨至低电平后,应在20s内改为高电平,否则,单片机可能将再一次响应中断。

对逻辑开关K8的操作对应于JINJI开关,闭合JINJI后,A只有红灯亮,B也只有红灯亮。

20s后恢复回闭合开关前的的亮灯状态。

3

实验数据分析1.一道有车而另一道无车时,K3拨至低电平即向单片机发出中断请求(低优先级别);若此时单片机正在执行主程序,会响应中断转入到相应的中断服务程序,先依次查询A、B车道的空闲状态,再去控制A、B车道的信号灯;若此时单片机正在执行紧急车辆通过时中断服务程序,单片机不会响应中断。

2.紧急车辆通过时,K8拨至低电平即向单片机发出中断请求(高优先级别),不论单片机正在执行主程序还是一道有车而另一道无车时的中断服务程序,会响应中断转入到相应的中断服务程序。

3.在进行步骤51)或2)操作时,若在闭合开关后没有在5s内断开开关,则在15秒时无法按时恢复回闭合开关时的亮灯状态。

4.操作过程中发现,若操作SW1开关后亮灯状态已经发生改变,则在15秒内再操作SW2开关则无法继续使亮灯状态改变。

总结与体会

1

实验任务完成情况本实验完成情况良好。

通过老师的精心指导、本人的不懈努力和同学的热心帮助,能够基本上完成所有实验内容,且在实验过程中对单片机的了解更加深入了。

但也无法避免地遇到一些问题,比如对实验程序代码的理解不够深入,只停留在表面,且对51单片机的111条指令仍比较陌生,只能记住一些特别常用的。

对于此我的做法是,在分析实验程序的过程中,一遇到不熟悉的指令就XX搜索一下加深印象。

在反复的搜索过程中我也记住了不少指令。

通过课程的学习,目前达到的水平是能够基本看懂实验程序,能够绘制简单原理图,但仍无法做到独立编写实验程序。

2

实验体会、收获、建议回答问题

通过对该实验的学习,本人也有了许多不小的收获。

对于一位非电技专业的学生来说,我在学习单片机的过程中确实存在许多问题。

老师讲的东西很多在课堂上都无法及时弄明白,必须要靠课余时间的学习。

所以起初在做该实验的时候也是感觉苦难重重,觉得自己肯定是无法完成的,但我不想轻易放弃,将老师上用的课件反复查看,发现很多上课没有注意到的重要知识点,这让我的实验变得更加容易完成了许多。

我觉得通过本次实验我的最大收获是学会了如何解决难题。

首先要做的就是对自己有信心,相信自己一定能够完成。

其次才是去认真解决问题。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1