课程设计实验报告 交通灯控制功能设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《微机原理与接口技术》课程设计实验报告
题目:交通灯控制功能设计
指导老师:
专业:信息科学与工程学院
班级:自动化0807班
日期:2011-1-5
微机课程设计——交通灯控制系统
目录
一、设计思想和实施方案论述,硬件原理图及分析
1.1、课程设计名称
1.2、课程设计要求
1.3、课程设计目的
二、设计思想和实施方案论述,硬件原理图及分析
2.1、设计思想和实施方案
2.2、硬件原理图
三、典型模块以及典型编程技巧分析
3.1、8086典型模块分析
3.2、编程技巧分析
四、设计中遇到的问题及解决方法
五、程序清单和程序注释,相关流程图
5.1程序清单和注释
5.2、实验室及流程图
六、收获与体会
七、参考文献
2
微机课程设计——交通灯控制系统
一、设计课程名称及要求
1.1、课程设计名称:交通灯控制功能设计。
1.2、课程设计要求:
(1)、分别用C语言和汇编语言编程完成硬件接口功能设计;
(2)、硬件电路基于80x86微机接口;
(3)、程序功能要求:小键盘给定、数码管(屏幕)显示;
(4)、同时具备急救车应急响应功能和时间倒计时显示功能。
、课程设计目的: 1.3《微机应用系统设计与综合实验(实践)》课程设计是自动化专业本科生必修的一门技术基础课。通过本课程设计,让学生对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。要求同学独立完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,画出电路印制板图,编写设计程序及程序流程图。
二、设计思想和实施方案论述,硬件原理图及分析
2.1、设计思想和实施方案:
本设计使用了两种方案,一种是采用8086和8255A可编程并行接口实现了交通灯的设计,分别对主干道和支干道显示红灯和绿灯并且计时,采用8254定时器/计数器产生1HZ的脉冲,来控制8259产生中断,从而实现整个电路的设计。交通灯采用红绿两种发光二极管,主干道亮45s,支干道亮30s,计数的最后5s 中绿灯闪烁,用数码管倒计时显示时间,在发生紧急情况时,可以认为用开关控制主干道和支干道红灯均亮,禁止任何车通行。另一种方案是采用单片机来实现的,达到的效果和上述方案相同。单片机采用定时器T0和T1来触发中断,根据中断优先级的不同,从而可以处理不同的情况,交通灯也是采用红绿两种发光二极管,主干道亮45s,支干道亮30s,计数的最后5s中绿灯闪烁,用数码管倒计时显示时间,在发生紧急情况时,可以认为用开关控制主干道和支干道红灯均亮,禁止任何车通行,在故障清除后,断开开关可以使红绿灯和数码管回到原来的状态继续正常工作。
2.2、硬件原理图:
(a)图是基于8086的设计,(b)图是基于单片机的设计。在(a)图中,可编程并行接口芯片8255A用作输出口,控制红绿灯的亮暗和数码管的计时,定时器/计数器8254采用级联的方式产生1HZ的脉冲,并将此方波接到中断器8259的IR1上,即每秒钟让中断控制器产生依次中断,从而可以执行中断子程序。在(b)图中,P0口用于接数码管,P1口用于控制红绿灯的亮暗,P2口用于选通数码管,P32为定时器T0的控制端,当P32口为高电平时,定时器T0才会工作,并且T0的中断优先级高于T1,所以可以用于控制紧急情况。P37口接扬声器,3
微机课程设计——交通灯控制系统
在计数器T0工作时扬声器就会响。
4
微机课程设计——交通灯控制系统
5
微机课程设计——交通灯控制系统
三、典型模块以及典型编程技巧分析
3.1、8086典型模块分析:基于8086的设计主要由3个模块构成,其中8255是
作为与外部显示电路的接口单元,8254和8259协同工作产生中断作为控制电路。可编程并行接口芯片8255A通过方式控制字设置成方式0工作模式,A、B、C口均为输出,可编程计数器/定时器8254通过控制字寄存器设置OU0和OU1均为方式3工作模式,通过级联产生1HZ的方波,中断控制器通过初始化命令字设置成边缘触发,8254的OU1口接到8259的IR1端,每秒钟就可以产生一次中断,每次执行中断子程序时使计数减1,从而可以实现倒计时功能,当计数到0时,重新给计数初值赋给,改变灯的状态。外部开关接8259的IR0端,它的中断优先级别高,设置成边缘触发,当按下开关,产生一个高电平的脉冲,就可以停止原来的状态来执行更高级别的中断子程序,这就可以处理紧急情况,让主干道和支干道都变成红灯。
单片机典型模块分析:基于单片机的设计主要是以51单片机为核心,通过变成开放T0和T1的中断,但T0要在INT0为高电平时计数器T0才会工作。计数器T1每50ms产生一次中断,每产生20次中断就令数码管的计数减1,当计数减到0时,重新设置数码管的计数初值,这样就可以依次循环工作了。当P32接高电平时,计数器T0开始工作,此时红灯都亮,扬声器发音,中断结束后还原原来的状态。
3.2、编程技巧分析:基于8086的设计编程语言是汇编语言,这里的几个编程模块就是方波产生模块,数码管显示模块和中断子程序模块。方波是通过8254级联产生的,设置8254的计时器0和计数器1工作在方式3,设置适当计数初值n 即可,这个模块的程序如下所示:
LOOP2: MOV DX,MY8254_MODE
MOV AL,0
OUT DX,AL ;计数器0,读写16位低高字节,工作方式3,BCD 计数
MOV AL,00H
MOV DX,MY8254_0
OUT DX,AL
MOV AL,50
OUT DX,AL
MOV DX,MY8254_MODE
MOV AL,77H
OUT DX,AL ;计数器1,读写16位低高字节,工作方式3,BCD 计数
MOV AL,8
MOV DX,MY8254_1
OUT DX,AL
6
微机课程设计——交通灯控制系统
MOV AL,2
OUT DX,AL ;1.041667MHZ/2000/1000=1HZ,即计数器输出1HZ的