高科学院《微型计算机原理与接口技术》资料标签2014——2015 年第一学期专业:机械设计制造及其自动化班级:2012级5班学号:2012030537姓名:独永亮指导教师:雷佩课程设计时间:2014.12.18——2014.12.26成绩:批改时间:二○一四~二○一五学年第一学期高科学院课程设计报告书课程名称:微机原理课程设计班级:2012级5班学号:2012030537姓名:独永亮指导教师:雷佩二○一四年十二月二十六日前言 (1)1 交通灯设计的课题简介 (1)2 交通灯的设计方案 (1)3 交通灯具体设计 (2)3.1 电路原理 (2)3.2 系统原理 (3)3.2.1 8259A的工作原理 (3)3.2.2 8255A的工作原理 (3)4 程序原理图 (5)5 程序设计 (6)6 交通灯设计总结 (10)7 心得体会 (10)8 参考文献 (11)因为在繁华的路口没有安装交通灯,时有惨剧发生。
无规矩,不成方圆;红灯停,绿灯行是我们必须遵循的交通规则。
交通灯是采用计算机通过编写汇编语言程序控制的。
红绿灯广泛用于十字路口,车站等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的日益成熟与广泛应用,使得交通灯的功能多样化, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。
诸如闪烁警示、时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。
还可以根据主、次干道的交通状况的不同,设置各自的不同的通行时间。
或者给红绿色盲声音警示的人性化设计,现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。
当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。
这极大了保障了人民的生命安全。
1 交通灯设计的课题简介十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。
十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。
当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。
它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各60秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。
但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。
时逢节假日,不得不让警察同志,冒着酷暑,严寒指挥交通,采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。
它无法判断当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。
目前,有一种控制交通灯的方法,能够根据十字路口两个方向上车辆动态状况,显示前方拥堵状况警示司机,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。
但是却不能够像定时控制那样,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。
2 交通灯的设计方案设计中使用了8259中断控制器、8255可编程并行接口,实现了对南北、东西方向交通的分流控制,设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时。
城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,设计如下:1、东西方向车辆放行60秒钟。
即东西方向的绿灯和南北方向的红灯同时点亮1分钟;2、1分钟后,东西方向的黄灯闪烁5秒钟,以警示车辆将切换红绿灯。
此时南北方向仍维持红灯点亮。
在南北方向亮红灯期间,在2位数码管上显示计数值(每秒减1),从65减为0。
3、东西方向的黄灯闪烁5秒钟后,转为南北方向放行20秒钟。
即东西方向的红灯和南北方向的绿灯同时点亮20秒钟;4、南北方向放行20秒钟后,转为南北方向的黄灯闪烁5秒钟,以警示将切换红绿灯。
此时东西方向仍维持红灯点亮。
5、南北方向的黄灯闪烁5秒钟后,再转为东西方向车辆放行1分钟。
如此循环重复。
3 交通灯的具体设计3.1电路原理本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。
完整系统的硬件连接如图所示。
硬件电路由R-S触发器电路、发光二极管模块、8255可编程并行接口模块和紧急中断模块8259组成。
实验的对应接线关图系图如下所示:上电路图为红绿灯模拟设计总电路图,通过8086CPU系统总线来控制8255的A端口、B端口,而A、B端口分别接LED发光二极管来控制十字路口红绿灯。
红、黄、绿灯的表示情况如下:由于仪器上面只有8个发光二级管,且从高到低依次标注了颜色。
由8255控制8个LED发光二极管的亮与暗来表达十字路口的交通信号,A口表示东、南方向,B口表示西、北方向,绿灯和红灯共同表示黄灯。
可以通过发光二极管来判断具体是哪个方向、哪个灯亮。
3.2.系统原理3.2.1 8259A的工作原理1、数据总线缓冲器:8259A与系统数据总线的接口,是8位双向三态缓冲器。
CPU与8259A之间的控制命令信息、状态信息以及中断类型信息,都是通过缓冲器传送的。
2、读/写控制逻辑:CPU通过它实现对8259A的读/写操作。
3、级连缓冲器:用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至64级。
4、控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。
5、中断请求寄存器IRR:8位,用以分别保存8个中断请求信号,当响应的中断请求输入脚有中断请求时,该寄存器的相应位置1。
6、中断屏蔽寄存器IMR:8位,相应位用以对8个中断源的中断请求信号进行屏蔽控制。
当其中某位置“0“时,则相应的中断请求可以向CPU提出;否则,相应的中断请求被屏蔽,即不允许向CPU提出中断请求。
该寄存器的内容为8259A 的操作命令字OCW1,可以由程序设置或改变。
7、中断服务寄存器ISR:8位,当CPU正在处理某个中断源的中断请求时,ISR寄存器中的相应位置1。
8、用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定是否产生多重中断或中断嵌套。
3.2.2 8255的工作原理1、8255的内部结构:8255的内部结构及引脚8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如上图所示,8255工作方式控制字和C口按位置位/复位控制字格式如下图所示2、8255工作方式控制字和C口按位置位/复位控制字格式(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A 与微机系统数据总线的接口。
输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
(3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。
方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。
对C口按位复位命令字可对C 口的每一位实现置位或复位。
A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
(4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
3、引脚信号8255A的引脚如图所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。
4程序原理图交通灯控制系统程序流程图如下:5 程序设计IOY0 EQU 0DA00H ;片选IOY0对应的端口始地址MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTLA DB ? ;定义数据变量LB DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODE ;定义8255工作方式MOV AL,80H ;工作方式0,A口和B口为输出OUT DX,ALLOOP1: MOV DX,MY8255_A ;写A口发出的数据,东方向绿灯亮,南方向红灯亮 MOV AL,3CHOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,西方向绿灯亮,北方向红灯亮 MOV AL,3CHOUT DX,ALCALL DALLY1MOV CX,08HL1: MOV DX,MY8255_A ;写A口发出的数据,东方向黄灯亮,南方向红灯亮 MOV AL,0FCHOUT DX,ALMOV DX,MY8255_B ;写A口发出的数据,西方向黄灯亮, 北方向红灯亮MOV AL,0FCHOUT DX,ALCALL DALLY2MOV DX,MY8255_A ;写A口发出的数据,东方向黄灯灭,南北方向红灯亮MOV AL,30HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,西方向黄灯灭,南北方向红灯亮MOV AL,30HOUT DX,ALCALL DALLY2LOOP L1MOV DX,MY8255_A ;写A口发出的数据,东方向红灯亮,南方向绿灯亮MOV AL,0C3HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,西方向红灯亮,北方向绿灯亮 MOV AL,0C3HOUT DX,ALCALL DALLY1MOV CX,08HL2: MOV DX,MY8255_A ;写A口发出的数据,南方向黄灯亮,东方向红灯亮 MOV AL,0F3HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,北方向黄灯亮,西方向红灯亮 MOV AL,0F3HOUT DX,ALCALL DALLY2MOV DX,MY8255_A ;写A口发出的数据,南北方向黄灯灭,东方向红灯亮 MOV AL,0C0HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,南北方向黄灯灭,西方向红灯亮 MOV AL,0C0HOUT DX,ALCALL DALLY2LOOP L2MOV AH,1 ;判断是否有按键按下,调用功能号1INT 16H ;ROM BIOS 功能调用JZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出INT 21H ;DOS 系统功能调用DALLY PROC NEAR ;软件延时子程序PUSH CXPUSH AXMOV CX,0FFFHD1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALLY ENDPDALLY1 PROC NEAR ;软件延时子程序,东西方向红灯亮,南北方向绿灯亮 PUSH CXPUSH AXMOV CX,1EHD3: CALL DALLYLOOP D3POP AXPOP CXRETDALLY1 ENDPDALLY2 PROC NEAR ;软件延时子程序,黄灯闪烁(即亮与灭)的时间间隔, PUSH CXPUSH AXMOV CX,02HD4: CALL DALLYLOOP D4POP AXPOP CXRETDALLY2 ENDPCODE ENDSEND START6 交通灯设计总结通过这次课程设计,让我在课本理论知识的基础上,更深入的了解了各种芯片的用法和程序的完成过程,调试方法及技巧,更加深了对微机原理这门课程的认识和理解。