您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 单片机交通灯综合实验报告
河北工业大学实验报告学院:专业:班级:姓名:学号:实验课程:单片机应用系统设计开发入门指导教师:实验名称:交通信号灯控制实验实验时间:2019年5月23日2019年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红灯延时s3A红灯、B绿灯闪动延s3A红灯、B绿灯延时25sA绿灯、B红灯延时55sA红灯、B黄灯延时s2A黄灯、B红灯延时s2初始化开中断保护现场关中断A道有车B道有车A红灯、B绿灯延时s5A绿灯、B红灯延时5s关中断恢复现场开中断返回中断响应保护现场A红灯、B红灯延时s20恢复现场返回NNYY中断响应开始实验程序及程序分析如下:ORG0000HLJMPMAIN;LJMP,转向主程序ORG0003HLJMPINT00;转向紧急车辆中断服务程序ORG0013HLJMPINT11;转向有车车道放行中断服务ORG0030HMAIN:SETBPX0;置外部中断0为高优先级中断MOVTCON,#00H;置外部中断0、1为电平触发MOVIE,#85H;开CPU中断、外部中断0、1中断LOOP:;A道绿灯亮;B红灯亮MOVP1,#0F3HMOVR1,#88;44s延时循环次数AP1:;调用0.5s延时子程序DELAYLCALLDELAYDJNZR1,AP1;44s不到,继续循环(DJNZRN,REL是一条件转移指令,先将工作寄存器Rn中的数减“1”,判断结果是否为“0”,不为“0”程序就跳转到行标为REL的地方执行,否则,为“0”就不转移,继续执行下一条指令。)MOVR1,#6;3s延时的循环次数(循环一次延时0.5秒。)AP2:;A道绿灯闪烁CPLP1.2LCALLDELAY;参考程序中缺少此句,若缺失会导致无法延时。DJNZR1,AP2;3s未到,继续循环MOVP1,#0F5H;A道黄灯亮,B道红灯亮MOVR1,#6AP3:LCALLDELAYDJNZR1,AP3;3s未到,继续循环MOVP1,#0DEH;A道红灯亮,B道绿灯亮MOVR1,#48;延时循环48次BP1:LCALLDELAYDJNZR1,BP1;24s未到继续循环MOVR1,#6BP2:CPLP1.5;B道绿灯闪烁LCALLDELAYDJNZR1,BP2;3s未到,继续循环MOVP1,#0EEH;A道红灯亮,B道黄灯亮MOVR1,#6BP3:LCALLDELAYDJNZR1,BP3;3s未到,继续循环SJMPLOOPORG0200HINT00:保护P1口数据PUSHP1;PUSH入栈指令MOVP1,#0F6H;A道红灯亮;B道红灯亮MOVR2,#30;15秒延时的循环次数DELAY0:LCALLDELAYDJNZR2,DELAY0POPP1;恢复P1口数据POP是出栈指令RETI;返回主程序ORG0300HINT11:CLREA;关中断EA为总中断PUSHP1;保护现场PUSH04HPUSH05HPUSH06HSETBEA;开中断JNBP3.0,AP0;A道无车,转向判断B道(JNB比较转移指令。当P3.0是0时就转移执行AP0,否则就顺序执行。)MOVP1,#0F3H;A道绿灯亮,B道红灯亮SJMPDEL1;转向15秒延时程序AP0:JNBP3.1,EXIT;B道无车,退出中断MOVP1,#0DEH;A道红灯亮,B道绿灯亮DEL1:MOVR3,#30;15s延时的循环次数NEXT:LCALLDELAYDJNZR3,NEXT;15秒未到循环继续EXIT:CLREAPOP06H;恢复现场POP05HPOP04HPOPP1SETBEARETI;返回原程序ORG0350HDELAY:MOVR4,#20;0.5秒延时子程序参考程序中为#10,经实验发现只能延时0.25s故改为#20,以达到实验目的。LP1:MOVR5,#50LP2:MOVR6,#248NOPLP3:DJNZR6,LP3DJNZR5,LP2DJNZR4,LP1RETEND交通信号灯与控制管脚的对应关系如下:控制状态P1口控制码P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0未用未用B道绿灯B道黄灯B道红灯A道绿灯A道黄灯A道红灯A绿灯亮、B红灯亮F3H11110011A黄灯亮、B红灯亮F5H11110101A红灯亮、B绿灯亮DEH11011110A红灯亮、B黄灯亮EEH11101110A红灯亮、B红灯亮F6H111101102实验步骤及实验数据记录1.先接线按下表所示的管脚与LED或逻辑开关的对应关系接线。在Proteus8中原理图绘制界面中将接线接好。管脚P1.0P1.1P1.2P1.3P1.4P1.5P3.0P3.1P3.3P3.2LED或逻辑开关L3L1L2L7L5L6K1K2K3K8控制对象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条指令仍比较陌生,只能记住一些特别常用的。对于此我的做法是,在分析实验程序的过程中,一遇到不熟悉的指令就百度搜索一下加深印象。在反复的搜索过程中我也记住了不少指令。通过课程的学习,目前达到的水平是能够基本看懂实验程序,能够绘制简单原理图,但仍无法做到独立编写实验程序。2实验体会、收获、建议回答问题通过对该实验的学习,本人也有了许多不小的收获。对于一位非电技专业的学生来说,我在学习单片机的过程中确实存在许多问题。老师讲的东西很多在课堂上都无法及时弄明白,必须要靠课余时间的学习。所以起初在做该实验的时候也是感觉苦难重重,觉得自己肯定是无法完成的,但我不想轻易放弃,将老师上用的课件反复查看,发现很多上课没有注意到的重要知识点,这让我的实验变得更加容易完成了许多。我觉得通过本次实验我的最大收获是学会了如何解决难题。首先要做的就是对自己有信心,相信自己一定能够完成。其次才是去认真解决问题。
本文标题:单片机交通灯综合实验报告
链接地址:https://www.777doc.com/doc-5333127 .html