计算机原理综合设计.docx

PAGE 11 - 计算机原理实验综合设计 交通灯自动控制系统设计 1 设计要求 利用实验台上的彩色LED模拟两组“红—黄—绿”交通信号指示灯,将其分别作为主干道和支线道路的信号灯。具体要求如下: 参照实验教程第三章3.1.4章节,利用8253实现秒定时。 顺序 (状态) (空) 主干路(南北)信号灯 支线路(东西)信号灯 状态字(16进制) D7 D6 D5 D4 D3 D2 D1 D0 -- -- 红 黄 绿 红 黄 绿 1 0 0 0 0 1 1 0 0 0CH 主干路行 2 0 0 0 1 0 1 0 0 14H 主干路转换 3 0 0 1 0 0 0 0 1 21H 支线路行 4 0 0 1 0 0 0 1 0 22H 支线路转换 表 3.1.3:信号灯状态字表 1.按照教材3.1.4相关程序并将“延时操作”改为子程序调用的方式实现信号灯的控制与运行。 2.在上述基础上实现:主、支路的不同定时时间和黄灯闪烁的功能。 3.利用2级定时计数器(方式2)进行定时操作,利用8255的PA0做输入判断定时时间。 4.在上述基础上利用两个单脉冲源和主从8259的MIR5、SIR0实现2个人行通道的“应急通行”的呼叫开关功能。 5.增加“倒计时”功能等 2 设计分析及系统方案设计 可以将信号灯的每一种状态设定成一个“状态字”,CPU只要通过8255A的PC端口每隔5秒钟更新一次“状态字”就可以实现信号灯的正常工作。根据实验的要求可将这些状态字设定如表3.1.3中的内容。程序采用顺序结构。 设计步骤: 参照教材的3.1.4章节,运行信号等程序; 参照教材3.2.4章节,编制一个查询(子)程序,查询PA0的电平:一旦PA0=0(5秒钟到),转换一次信号灯的状态,替换到原程序中有延时控制的环节。 分别添加对MIR5和SIR0中断的初始化(参考教材3.3.3章节和表3.3.5): 修改主片8259的IR5的屏蔽字: in al,21h and al ;开放主片IR5中断和一个从片输入IR2 out 21h,al in al,0A1h and al ;开放从片IR0中断 out 0A1h,al 填写主片IR5和从片IR0的中断向量表(35H、70H),参照3.3.3章节的程序编写。 编写MIR5和SIR0的中断服务程序。在各自的ISR中实现“人工呼叫”的处理操作。注意,在MIR5和SIR0的中断服务程序中的“结束中断”命令要包括对主片、从片的结束命令: MOV AL,20H ;发送中断结束命令(向386EX主8259的MIR5) OUT 20h,AL MOV AL,20H ;发送中断结束命令(向386EX从8259的SIR0) OUT 0A0h,AL 3 系统电路图 4 外围接口模块硬件电路功能描述 (1).设定D8255A的PC口作输出、显示信号灯的效果; (2).设定8253的CNT0做分频器,将1MHZ信号分频为100HZ,再由CNT1将100HZ分频为周期为5秒的周期性方波(模式2); (3).将D8255A的PA口设定为输入,并使用PA0与8253的 OUT1连接,CPU通过查询PA0的电平变化(秒信号),控制信号灯运行(即每5秒钟改变一次信号灯的状态); (4).分别使用两个单脉冲的输出(正的脉冲数出)与386模块的MIR5和SIR0连接,作为“南北”和“东西”人行横道的“紧急通行”呼叫信号。当产生呼叫信号后,该方向的信号灯变为绿色,维持一段时间后,信号灯恢复正常运行。 (5).将D8255A的PB口设定为输出,并与数码显示管连接,用做倒计时显示。 5 主程序中主要变量说明 变量名称 内存单元 功能 Portc1 0ch,14h,21h,22h 存储红绿灯状态 ledcode 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,67h 存储0~9字码形状 6 系统软件中各个子程序的功能描述 子程序名称 入口参数 出口参数 功能 描述 delay cx 无 执行延时功能加led显示 emrgM 无 无 实现主干道中断 emrgS 无 无 实现支线路中断 7 主程序程序流程图 8 程序清单 data segment io8255_a equ 210h io8255_b equ 211h io8255_c equ 212h io8255_k equ 213h io8253 equ 200h count0 equ 08h; 8s

文档评论(0)

1亿VIP精品文档

相关文档