




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上河 北 工 业 大 学实 验 报 告学 院: 专 业: 班 级: 姓 名: 学 号: 实验课程:单片机应用系统设计开发入门指导教师: 实验名称: 交通信号灯控制实验 实验时间: 2019 年 5 月 23日 2019 年 5月 23 日一 实验要求1 实验目的及实验内容要求实验目的:1.熟悉外部中断源的扩展方法。 2.初步掌握单片机综合应用系统设计。 3.掌握用Proteus调试汇编源程序的方法。实验内容要求:用发光二极管模拟交通信号灯,用逻辑电平开关模拟控制开关,设计一个交通信号灯控制系统。设计要求如下: (1) A 车道与 B 车道交叉组成十字路口,A 是主道,B
2、 是支道;正常情况下,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、(3) 有紧急车辆通过时,按下开关使 A、B 车道均为红灯,禁行 15s。 2 实验设备或运行软件平台完成本实验需要使用到单片机仿真软件Proteus8,该软件是英国Lab Center Electronics公司出版的EDA工具软件,是目前比较好的仿真单片机及外围器件的工具。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。在编译方面,它也支持IAR、Keil、MATLAB等多种编译器。其具有的基本功能特点为:1.原理布图。2.PCB自动或人工布线。3.S
4、PICE电路仿真。革命性的特点是1.互动的电路仿真。2.仿真处理器及其外围电路。二 实验内容及过程1 实验设计及分析(或者实验程序)实验原理图如下所示:交通信号灯模拟控制系统程序流程图如下图所示:主程序一道有车另一道无车时 紧急车辆通过时的中断服务程序 的中断服务程序A绿灯闪、B红灯延时s 3A红灯、B绿灯闪动延s 3A红灯、B绿灯延时25s A绿灯、B红灯延时55s A红灯、B黄灯延时s 2A黄灯、B红灯延时s 2初始化 开中断 保护现场 关中断 A道有车 B道有车 A红灯、B绿灯延时s 5A绿灯、B红灯延时5s 关中断 恢复现场 开中断 返回 中断响应 保护现场 A红灯、B红灯延时s 20
5、恢复现场 返回 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 DEL
6、AYDJNZ R1,AP1;44s不到,继续循环(DJNZ RN,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,#6AP3:LCALL DELAYDJNZ R1,AP3;3s未到,继续循环MOV P
7、1,#0DEH;A道红灯亮,B道绿灯亮MOV R1,#48;延时循环48次BP1:LCALL DELAYDJNZ 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秒延时的循环次数DELAY
8、0:LCALL DELAYDJNZ R2,DELAY0POP 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 :
9、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交通信号灯与控制管脚的对应关系如下:控制状态
10、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中原理图绘制界面
11、中将接线接好。管脚 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代表闪)运行
12、时间(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
13、拨至高电平(表示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
14、也只有红灯亮。20s后恢复回闭合开关前的的亮灯状态。3 实验数据分析1.一道有车而另一道无车时,K3拨至低电平即向单片机发出中断请求(低优先级别);若此时单片机正在执行主程序,会响应中断转入到相应的中断服务程序,先依次查询 A、B 车道的空闲状态,再去控制A、B车道的信号灯;若此时单片机正在执行紧急车辆通过时中断服务程序,单片机不会响应中断。 2.紧急车辆通过时,K8拨至低电平即向单片机发出中断请求(高优先级别),不论单片机正在执行主程序还是一道有车而另一道无车时的中断服务程序,会响应中断转入到相应的中断服务程序。3.在进行步骤5 1)或2)操作时,若在闭合开关后没有在5s内断开开关,则在15
15、秒时无法按时恢复回闭合开关时的亮灯状态。4.操作过程中发现,若操作SW1开关后亮灯状态已经发生改变,则在15秒内再操作SW2开关则无法继续使亮灯状态改变。三 总结与体会1 实验任务完成情况本实验完成情况良好。通过老师的精心指导、本人的不懈努力和同学的热心帮助,能够基本上完成所有实验内容,且在实验过程中对单片机的了解更加深入了。但也无法避免地遇到一些问题,比如对实验程序代码的理解不够深入,只停留在表面,且对51单片机的111条指令仍比较陌生,只能记住一些特别常用的。对于此我的做法是,在分析实验程序的过程中,一遇到不熟悉的指令就百度搜索一下加深印象。在反复的搜索过程中我也记住了不少指令。通过课程的学习,目前达到的水平是能够基本看懂实验程序,能够绘制简单原理图,但仍无法做到独立编写实验程序。2 实验体会、收获、建议回答问题通过对该实验的学习,本人也有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论