logo资料库

微机原理与接口技术课程设计——交通灯设计.doc

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
MOV DX,PORT2
MOV AL,64H
MOV AL,82H
1 任务及要求 1.1 设计任务 交通信号灯的控制: (1)通过 8255A 并口来控制 LED 发光二极管的亮灭。 (2)A 口控制红灯,B 口控制黄灯,C 口控制绿灯。 (3)输出为 0 则亮,输出为 1 则灭。 (4)用 8253 定时来控制变换时间 。 1.2 设计要求 设有一个十字路口,1、3 为南,北方向,2、4 为东西方向,初始态为 4 个 路口的红灯全亮。之后,1、3 路口的绿灯亮,2、4 路口的红灯亮,1、3 路口方 向通车。延迟 30 秒后,1、3 路口的绿灯熄灭,而 1,3 路口的黄灯开始闪烁(1HZ)。 闪烁 5 次后,1、3 路口的红灯亮,同时 2、4 路口的绿灯亮,2、4 路口方向开始 通车。延迟 30 秒时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁。闪烁 5 次后, 再切换到 1、3 路口方向。之后,重复上述过程。 2 设计思想 2.1 硬件设计思想 通过并行接口芯片 8255A 和 8086 计算机的硬件连接,以及通过 8253 延时 的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示,红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在 8255 的 A,B,C 口的低四位端口,PA0,PA1,PA2,PA3 分别接 1,2,3,4 路口的红 灯,B,C 口类推。8086 工作在最小模式,低八位端口 AD0~AD7 接到 8255 和 8253 的 D0~D7,AD8~AD15 通过地址锁存器 8282,接到三八译码器,译码后分别连到 8255 和 8253 的 CS 片选端。8253 的三个门控端接+5V,CLOCK0 接由分频器产生的 1MHZ 的时钟脉冲,OUT0 接到 CLOCK1 和 CLOCK2,OUT1 接到 8086 的 AD18,8086 通过检 测此端口是否有高电平来判断是否 30S 定时到。OUT2 产生 1MHZ 方波通过或门和 8255 的 B 口共同控制黄灯的闪烁。 2.2 软件思想设计 1
通过双重循环来实现交通灯的控制。开始让红灯全部亮,绿灯和黄灯全部 熄灭,让南北方向的绿灯亮,东西方向的红灯亮。第一层循环用来控制十字路口 的灯的循环切换。在第一层循环中嵌套一层循环来控制 8253 延时 30 秒时间是否 到,如果未到,继续让南北方向的绿灯亮,东西方向的红灯亮。如果已经延时 30 秒,则退出循环,让南北方向绿灯灭,东西方向红灯不变,南北方向黄灯开 始闪烁。接着又嵌套一层循环来控制黄灯的闪烁次数,如果黄灯未闪烁 5 次则继 续等待,如果黄灯闪烁已经达到 5 次则退出循环,让南北路口的红灯亮,同时 东西路口的绿灯亮,东西路口方向开始通车;再延时 30 秒,东西方向绿灯灭, 黄灯闪烁 5 次,返回到初始化后一条语句,又开始重复上述过程。 3 电路原理及电路图 3.1 电路原理 由于 8255A 与 8086CPU 是以低八位数据线相连接的,所以 8255A 的 1A 、 0A 线 分别与 8086CPU 的 2A 、 1A 线相连,而将 8086 的 0A 线作为选通信号。如果是按 8255A 内部地址来看,则在图中它的地址是 PA 口地址即(CS+000H),PB 口地址为 (CS+001H),PC 口地址为(CS+002H),命令控制口地址为(CS+003H),其中,CS 为 8255 片选信号 CS 的首地址;若是按 8086CPU 地址来看,则 8255A 的地址是 PA 口地址即(CS+000H),PB 口地址为(CS+002H),PC 口地址为(CS+004H),命令 控制口地址为(CS+006H)。当 CS=0288H,则 PA 口地址为 0288H,PB 口地址为 028AH,PC 口地址为 028CH,命令控制口地址为 028EH。 3.2 电路原理图 2
4 流程图 4.1 流程图 图 3-1 电路原理图 3
初始化; 延时 30 秒,让绿灯 红灯亮,南北路口方 向通车; 黄灯闪烁 5 次; 南北路口的红灯亮,同时 东西路口的绿灯亮,东西 路口方向开始通车; 东西路口的绿灯熄灭,而黄灯 开始闪烁。闪烁 5 次后,再切 换到南北路口方向; 初始化 8255,8253 红灯全亮 绿灯黄灯全灭 1,3 绿灯亮 2,4 红灯亮 等待 8253 延时 30s 时间 是否到? N Y 1,3 绿灯灭 2,4 红灯不变 1,3 黄灯闪烁 等待黄灯闪烁 5 次? N Y 1,3 红灯亮 2,4 绿灯亮 8253 延时 30s 2,4 绿灯灭 黄灯闪烁 5 次 图 4-1 流程图 4
5 程序清单 INIT: DATA SEGMENT; 设置数据段,以及端口地址分配 PORTA EQU 218H PORTB EQU 219H PORTC EQU 21AH PTCON8255 EQU 21BH PORT0 EQU 238H PORT1 EQU 239H PORT2 EQU 240H PTCON8253 EQU 241H DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE MOV AX,DATA MOV DS,AX MOV DX, PTCON8253 MOV AL,36H OUT DX,AL MOV DX,PORT0 MOV AX,2710H OUT DX,AL MOV AL,AH OUT DX,AL;通道 0 工作方式 3 周期 0.01s MOV DX, PTCON8253 MOV AL,71H OUT DX,AL;通道 1 工作方式 1 MOV DX, PTCON8253 MOV AL,96H OUT DX,AL 5
STA: MOV DX,PORT2 MOV AL,64H OUT DX,AL;通道 2 工作方式 3 周期 1s 8253 初始化完成 MOV DX, PTCON8255 MOV AL,80H OUT DX,AL;8255 初始化 A,B,C 口均工作在方式 0 MOV DX,PORTA MOV AL,0 OUT DX,AL MOV DX,PORTB MOV AL,0FH OUT DX,AL MOV DX,PORTC MOV AL,0FH OUT DX,AL;灯初始化完成 MOV DX,PORTA MOV AL,0A0H OUT DX,AL MOV DX,PORTB MOV AL,0F0H OUT DX,AL MOV DX,PORTC MOV AL,50H OUT DX,AL;1,3 绿灯亮,2,4 红灯亮 MOV DX,PORT1 MOV AX,0BB8H OUT DX,AL MOV AL,AH OUT DX,AL;8253 通道 1 赋值 开始计时 SCAN1: MOV AL,0 MOV DX,PTCON8255 6
FLA1: TEST1: MOV AL,90H OUT DX,AL MOV DX,PORTA IN AL,DX AND AL,0FH CMP AL,1 JNZ SCAN1;扫描 PA7 口 MOV DX, PTCON8255 MOV AL,80H OUT DX,AL MOV DX,PORTC MOV AL,0F0H OUT DX,AL MOV DX,PORTB MOV AL,50H OUT DX,AL MOV CX,0 MOV DX,PTCON8255;检测 PB7 MOV AL,82H OUT DX,AL MOV DX,PORTB IN AL,DX AND AL,0FH MOV AH,AL MOV DX,PTCON8255 MOV AL,82H OUT DX,AL MOV DX,PORTB IN AL,DX AND AL,0FH XOR AL,AH 7
ADD CL,AL CMP CL,9 JNZ TEST1;闪烁 5 次 MOV DX, PTCON8255 MOV AL,80H OUT DX,AL MOV DX,PORTA MOV AL,50H OUT DX,AL MOV DX,PORTB MOV AL,0F0H OUT DX,AL MOV DX,PORTC MOV AL,0A0H;1,3 红灯亮,2,4 绿灯亮 MOV DX,PORT1 MOV AX,0BB8H OUT DX,AL MOV AL,AH OUT DX,AL;8253 通道 1 赋值 开始计时 SCAN2: MOV AL,0 MOV DX,PTCON8255 MOV AL,90H OUT DX,AL MOV DX,PORTA IN AL,DX AND AL,0FH CMP AL,1 JNZ SCAN2 MOV DX, PTCON8255 MOV AL,80H OUT DX,AL 8 FLA2:
分享到:
收藏