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

上传人:Wo****W 文档编号:80351481 上传时间:2023-03-22 格式:DOC 页数:17 大小:28.50KB
返回 下载 相关 举报
单片机交通灯综合实验报告.doc_第1页
第1页 / 共17页
单片机交通灯综合实验报告.doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《单片机交通灯综合实验报告.doc》由会员分享,可在线阅读,更多相关《单片机交通灯综合实验报告.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机交通灯综合实验报告河 北 工 业 大 学实验报告学院:专业:班级:姓名:学号:实验课程:单片机应用系统设计开发入门 指导教师:实验名称:交通信号灯控制实验实验时间:20_ 年5月 23 日20_ 年 5 月 23 日 一实验要求1实验目的及实验内容要求 实验目的:1.熟悉外部中断的扩展方法。2.初步掌握单片机综合应用系统设计。3.掌握用 Proteus 调试汇编程序的方法。实验内容要求:用发光二极管模拟交通信号灯,用逻辑电平开关模拟控制开关,设计一个交通信号灯控制系统。设计要求如下:(1) A 车道与 B 车道交叉组成十字路口,A 是主道,B 是支道;正常情况下,A、B 两车道轮流放行。

2、具体放行时间和要求如下:(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 车道均为红灯

3、,禁行 15s。2实验设备或运行软件平台 完成本实验需要使用到单片机仿真软件 Proteus8,该软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件,是目前比较好的仿真单片机及外围器件的工具。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台。在编译方面,它也支持 IAR、Keil、MATLAB 等多种编译器。其具有的基本功能特点为:1.原理布图。2.PCB 自动或人工布线。3.SPICE 电路仿真。革命性的特点是 1

4、.互动的电路仿真。2.仿真处理器及其外围电路。二实验内容及过程1实验设计及分析p (或者实验程序)实验原理图如下所示:交通信号灯模拟控制系统程序流程图如下图所示:主程序一道有车另一道无车时紧急车辆通过时 的中断服务程序的中断服务程序A绿灯闪、B红灯延时s3A红灯、B绿灯闪动延s3A红灯、B绿灯延时25sA绿灯、B红灯延时55sA红灯、B黄灯延时s2A黄灯、B红灯延时s2初始化开中断保护现场关中断A道有车B道有车A红灯、B绿灯延时s5A绿灯、B红灯延时5s关中断恢复现场开中断返回中断响应保护现场A红灯、B红灯延时s20恢复现场返回NNYY中断响应开始实验程序及程序分析p 如下:ORG0000H

5、LJMPMAIN ;LJMP,转向主程序 ORG0003H LJMPINT00 ;转向紧急车辆中断服务程序 ORG0013H LJMPINT11 ;转向有车车道放行中断服务 ORG0030H MAIN : SETBP;置外部中断 0 为高优先级中断 MOVTCON,#00H ;置外部中断 0、1 为电平触发 MOVIE,#85H ;开 中断、外部中断 0、1 中断 LOOP:;A 道绿灯亮;B 红灯亮 MOVP1,#0F3H MOVR1,#88 ;44s 延时循环次数 AP1:;调用 0.5s 延时子程序 DELAY LCALLDELAY DJNZR1,AP1 ;44s 不到,继续循环(DJN

6、Z RN,REL 是一条件转移指令,先将工作寄存器Rn 中的数减“1”,判断结果是否为“0”,不为“0”程序就跳转到行标为REL 的地方执行,否则,为“0”就不转移,继续执行下一条指令。)MOVR1,#6 ;3s 延时的循环次数(循环一次延时 0.5 秒。)AP2:;A 道绿灯闪烁 CPLP1.2 LCALLDELAY ;参考程序中缺少此句,若缺失会导致无法延时。DJNZR1,AP2 ;3s 未到,继续循环 MOVP1,#0F5H ;A 道黄灯亮,B 道红灯亮 MOVR1,#6AP3: LCALLDELAY DJNZR1,AP3;3s 未到,继续循环 MOVP1,#0DEH ;A 道红灯亮,B

7、 道绿灯亮 MOVR1,#48;延时循环 48 次BP1: LCALLDELAY DJNZR1,BP1 ;24s 未到继续循环 MOVR1,#6 BP2: CPLP1.5 ;B 道绿灯闪烁 LCALLDELAY DJNZR1,BP2 ;3s 未到,继续循环 MOVP1,#0EEH;A 道红灯亮,B 道黄灯亮 MOVR1,#6 BP3: LCALLDELAY DJNZR1,BP3 ;3s 未到,继续循环 SJMPLOOP ORG020_H INT00:保护 P1 口数据 PUSHP1;PUSH 入栈指令 MOVP1,#0F6H;A 道红灯亮;B 道红灯亮 MOVR2,#30;15 秒延时的循环次

8、数 DELAY0: LCALLDELAY DJNZR2,DELAY0POPP1;恢复 P1 口数据 POP 是出栈指令 RETI;返回主程序 ORG0300H INT11: CLREA;关中断 EA 为总中断 PUSHP1;保护现场 PUSH04H PUSH05H PUSH06H SETBEA;开中断 JNBP3.0,AP0 ;A 道无车,转向判断 B 道(JNB 比较转移指令。当 P3.0 是 0 时就转移执行 AP0,否则就顺序执行。)MOVP1,#0F3H;A 道绿灯亮,B 道红灯亮 SJMPDEL1;转向 15 秒延时程序 AP0: JNBP3.1,E_IT ;B 道无车,退出中断 M

9、OVP1,#0DEH;A 道红灯亮,B 道绿灯亮 DEL1 : MOVR3,#30 ;15s 延时的循环次数 NE_T : LCALLDELAY DJNZR3,NE_T ;15 秒未到循环继续 E_IT : CLREA POP06H;恢复现场 POP05H POP04H POPP1 SETBEA RETI;返回原程序 ORG0350H DELAY : MOVR4,#20;0.5 秒延时子程序参考程序中为#10,经实验发现只能延时 0.25s 故改为#20,以达到实验目的。LP1 : MOVR5,#50 LP2 : MOVR6,#248 NOP LP3: DJNZR6,LP3 DJNZR5,LP

10、2 DJNZR4,LP1 RET END交通信号灯与控制管脚的对应关系如下:控制状态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 中原理图绘制界面中将接线接好。管脚P

11、1.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

12、 红 0 1 0 0 0 0 1 44 2 0 0 0 0 1 47 0 1 0 0 0 1 50 0 0 1 1 0 0 74 0 0 1 2 0 0 77 0 0 1 0 1 0 80 1 0 0 0 0 1 八十秒后开始重复 0-80 秒内的亮灭规律。5.部分连接图如图所示。1)在 A 红灯、B 绿灯亮时,先将 K1 拨至高电平(表示 A 道有车)、K2 拨至低电平(表示 B 道无车),再将 K3 拨至低电平使有车车道(A 道)放行,A 绿灯、B 红灯同时亮 5s 后返回原先状态。对逻辑开关 K1、K2、K3 的操作对应于 SW2 开关,闭合 SW2 后,A 红灯灭,绿灯亮,B 绿灯灭,

13、红灯亮。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 红灯同时亮

14、20s后返回原先状态。(提示:K8 拨至低电平后,应在 20s 内改为高电平,否则,单片机可能将再一次响应中断。)对逻辑开关 K8 的操作对应于 JINJI 开关,闭合 JINJI 后,A 只有红灯亮,B也只有红灯亮。20s 后恢复回闭合开关前的的亮灯状态。3实验数据分析p 1.一道有车而另一道无车时,K3 拨至低电平即向单片机发出中断请求(低优先级别);若此时单片机正在执行主程序,会响应中断转入到相应的中断服务程序,先依次查询 A、B 车道的空闲状态,再去控制 A、B 车道的信号灯;若此时单片机正在执行紧急车辆通过时中断服务程序,单片机不会响应中断。2.紧急车辆通过时,K8 拨至低电平即向单

15、片机发出中断请求(高优先级别),不论单片机正在执行主程序还是一道有车而另一道无车时的中断服务程序,会响应中断转入到相应的中断服务程序。3.在进行步骤 5 1)或 2)操作时,若在闭合开关后没有在 5s 内断开开关,则在 15 秒时无法按时恢复回闭合开关时的亮灯状态。4.操作过程中发现,若操作 SW1 开关后亮灯状态已经发生改变,则在 15 秒内再操作 SW2开关则无法继续使亮灯状态改变。三总结与体会1实验任务完成情况 本实验完成情况良好。通过老师的精心指导、本人的不懈努力和同学的热心帮助,能够基本上完成所有实验内容,且在实验过程中对单片机的了解更加深入了。但也无法避免地遇到一些问题,比如对实验

16、程序代码的理解不够深入,只停留在表面,且对 51 单片机的 111 条指令仍比较陌生,只能记住一些特别常用的。对于此我的做法是,在分析p 实验程序的过程中,一遇到不熟悉的指令就百度搜索一下加深印象。在反复的搜索过程中我也记住了不少指令。通过课程的学习,目前达到的水平是能够基本看懂实验程序,能够绘制简单原理图,但仍无法做到独立编写实验程序。2实验体会、收获、建议回答问题 通过对该实验的学习,本人也有了许多不小的收获。对于一位非电技专业的学生来说,我在学习单片机的过程中确实存在许多问题。老师讲的东西很多在课堂上都无法及时弄明白,必须要靠课余时间的学习。所以起初在做该实验的时候也是感觉苦难重重,觉得

17、自己肯定是无法完成的,但我不想轻易放弃,将老师上用的课件反复查看,发现很多上课没有注意到的重要知识点,这让我的实验变得更加容易完成了许多。我觉得通过本次实验我的最大收获是学会了如何解决难题。首先要做的就是对自己有信心,相信自己一定能够完成。其次才是去认真解决问题。杭州电子科技大学单片机技术与应用实验报告单片机技术与应用实验报告实验名称:外部中断实验(急救车与交通灯) 班级:11062811学号:11061118姓名:吕琳涛指导老师:谷雨20_年 5月 20日杭州电子科技大学单片机技术与应用实验报告 _BYTE0_f20_=0_6f; delay(1000); _BYTE0_f20_=09; delay(5000);void e_ter0 interrupt 0_BYTE0_f20_=0f;delay(10000); /中断服务程序,中断为外部中断0/全红10s,急救车通过4.心得体会本次实验中我们做的是一个交通灯的控制与救护车通过时的一个中断问题。我想这次实验是上两次实验的结合。然后我想对于一些看似很复杂的问题,如果我们可以将其分解为一些我们学过的会做的问题的话,问题就会迎刃而解。 结构完整!作者太棒了。第 17 页 共 17 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁