logo资料库

交通灯控制实验(计算机组成原理)完整版.pdf

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
计算机组成原理与接口技术实验 实实实实 验验验验 报报报报 告告告告 实 验 人: 院(系): 实验题目: 学 号: 日 期: 专业(班级): 交通灯控制实验 一. 实验目的 通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口和计数器8253 的使用。 二. 实验原理 实验电路图如下: 1
计算机组成原理与接口技术实验 1、数码管S1接高电平,S0与dp接低电平,使用左侧数码管显示不带小数点的数字。IRQ接单 脉冲,每次按下单脉冲产生中断信号,交通灯进入紧急模式。 2、8255芯片工作方式为A口输出,C口输入。PC5接8253芯片的OUT1用于检查是否经过一秒; PA0~PA6接7段数码管用于显示黄灯时间;PC6和PC7分别接手动开关K6和K7,其中PC6用于检 测是否跳出紧急模式,PC7用于检测夜间黄灯模式。片选地址为288H。 3、8253芯片作为分频器(将1MHZ的信号变为1HZ信号)。计数器0在方式3下工作,初值1000, 计数器1在方式0下工作,初值1000。芯片的OUT0与CLK1相连接(计数器0和1组合使用),片 选地址为280H,OUT1接入8255芯片的PC5。 4、74LS273用作锁存器。74LS273的D1~D8接TPC机中数据总线D0~D7,代表LED交通灯显示的 状态,并通过Q1~Q8显示在LED灯上;片选地址2A8H与IOW通过或门连接到74LS273的时钟信号 CLK上,当选中2A8H或者键盘有输入时产生上升沿激活74LS273,输入数据并输出到LED灯上。 实验程序流程图如下: 左图为紧急模式子程序流程图 下图为延时子程序流程图 2
开 始 设 置 中 断 矢 量 (IR Q 3) 开 放 中 断 (IR Q 3) 设8255 为A口 输 出 ,C口 输 入 设8253 计 数 器 0为 方 式 3,初 值 1000 设 置 默 认 状 态:红(3 0 秒) , 黄(5秒) , 绿(2 5 秒) 重 置 亮 灯 时 间 ,黄 灯 亮 时 关 闭 数 码 管 ,改 变 灯 的 状 态 点 亮 相 应 的 灯 Y 黄灯亮时显示数码管 时 间 是 否 用 完? 计 数 时 间 减1 N N 计算机组成原理与接口技术实验 左图为主程序的流程图 下图为夜间模式的流程图 开 始 8 2 5 5 的P C 7,即 夜 间 模 式 开 关 是 否 为1? Y 关 闭 数 码 管 计 数 器 1写 入 初 值 5 0 点 亮 两 盏 黄 灯 调用延时子程序和夜 间 模 式 子 程 序 键 盘 是 否 有 输 入? Y 从 键 盘 接 受 字 符,表 示 通 行 时 间 字 符 是 否 为1~9? N 关 数 码 管 、L E D 灯 返 回 DO S 结 束 根据输入数字时间重 置 亮 灯 时 间 8 2 5 5 的P C 5, 即 计 数 器 out1是 否 为 1? Y 关 闭 黄 灯 0.5S N Y 8 2 5 5 的P C 5, 即 计 数 器 out1是 否 为 1? Y 8 2 5 5 的P C 7, 夜 间 模 式 开 关 , 是 否 为 1? N 还 原 L E D 灯 状 态 结 束 N Y N 3
计算机组成原理与接口技术实验 三. 实验内容 1.要求一: (1)南北与东西方向,每个方向由红黄绿三个灯控制 (2)南北向: 红(30 秒),黄(5 秒),绿(25 秒) 东西向: 红(30 秒),黄(5 秒),绿(25 秒) 采用 8253 定时,上述基本参数可以根据实际情况自行调整,灯的变化规律与实际路 口规律相同,绿灯在最后 5 秒钟时,黄灯亮,然后红灯亮,不允许两个方向同时亮绿灯。 (3)黄灯的时间在数码管上进行显示。 2.要求二: (1)设计一个紧急控制开关信号,当紧急开关信号为 1 时,两个方向的灯全为红灯。紧急 开关撤消后,按照开关按下之前的状态继续运行(其参数要保存)。 (2)设计一个夜间行车开关,当开关按下后,两个方向都只有黄灯闪烁,其它灯熄灭。 四. 实验器材 PC机一台,实验箱一个(主要用到8255芯片,ADC0809芯片,74ls273芯片) 五. 实验分析与设计 程序分为五个部分 1、主程序:实现正常模式下亮灯(默认情况红(30秒),黄(5秒),绿(25秒)),接 受输入的字符并处理(修改亮灯时间或者退出),进入各种功能子程序。 2、输入检测子程序:检测是否从键盘输入了数据 3、延时程序:延时1秒。 4、紧急模式子程序:实际上是中断服务程序,负责保存当前状态,点亮红灯直到紧急 模式退出开关为1,退出前恢复进入紧急模式之前的状态。 5、夜间模式子程序:检测夜间模式开关是否打开,打开时闪烁黄灯直到检测到夜间模 式开关关闭,退出前恢复进入夜间模式之前的状态。 4
计算机组成原理与接口技术实验 程序具体实现如下: DATA SEGMENT IO8255A EQU 288H IO8255C EQU 28AH IO8255D EQU 28BH IO8253A EQU 280H IO8253B EQU 281H IO8253C EQU 283H COUNT_DOWN DB 6DH,66H,4FH,5BH,06H ;数码管显示黄灯倒计时(5、4、3、2、1) 0DH,0AH,'INPUT A NUMBER(1~9,OTHER KEY TO EXIT)','$' ;提示输入信息 ? ? ? ;绿灯亮的时间 ;黄灯倒计时(COUNT_DOWN的偏移值) ;记录当前LED灯的指示状态 MESG TIME COUNT DB DB DB STATE DB DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN: MOV AX,DATA MOV DS,AX MOV AX,CS MOV DS,AX MOV DX,OFFSET INT3 MOV AX,250BH INT 21H IN AL,21H AND AL,0F7H OUT 21H,AL ;设置IRQ3的中断矢量 ;读中断屏蔽寄存器 ;开放IRQ3中断 5
计算机组成原理与接口技术实验 MOV DX,IO8255D ;设为A口输出,C口输入 MOV AX,89H OUT DX,AL MOV DX,IO8253C ;设计数器0为方式3 MOV AL,36H OUT DX,AL MOV DX,IO8253A MOV AX,1000 OUT DX,AL MOV AL,AH OUT DX,AL MOV AX,DATA MOV DS,AX MOV AL, 25 MOV TIME,AL ;写入计数器初值1000 ;默认状态:红(30秒),黄(5秒),绿(25秒) MOV DX,OFFSET MESG ;显示提示信息 MOV AH,9 INT 21H LIGHTEN:MOV AL,TIME MOV AH,0 6
计算机组成原理与接口技术实验 MOV CX,AX MOV DX,2A8H MOV AL,81H OUT DX,AL MOV STATE,AL ;亮灯--1 0 0 0 0 1 ;亮灯--红黄绿 红黄绿 STI ;开中断 L1: CALL DELAY CALL NIGHT CALL CHECK_INPUT ;检查是否输入了字符,如果输入了字符就跳转INPUT JNE NEXT ;此处跳跃超出短跳范围,所以使用两次跳转实现 JMP INPUT NEXT: LOOP L1 ;循环,直到亮绿灯的时间过完 ;亮灯--1 0 0 0 1 0 ;亮灯--红黄绿 红黄绿 MOV DX,2A8H MOV AL,82H OUT DX,AL MOV STATE,AL MOV CX,5 MOV COUNT,0 L2: MOV BX,OFFSET COUNT_DOWN MOV AL,COUNT XLAT MOV DX,IO8255A OUT DX,AL CALL DELAY ;数码管显示黄灯时间 7
CALL NIGHT CALL CHECK_INPUT ;检查是否输入了字符,如果输入了字符就跳转INPUT 计算机组成原理与接口技术实验 JE INPUT INC COUNT LOOP L2 MOV DX,IO8255A ;关闭数码管 MOV AL,0 OUT DX,AL MOV AL,TIME MOV AH,0 MOV CX,AX MOV DX,2A8H MOV AL,24H OUT DX,AL MOV STATE,AL L3: CALL DELAY CALL NIGHT ;亮灯--0 0 1 1 0 0 ;亮灯--红黄绿 红黄绿 CALL CHECK_INPUT ;检查是否输入了字符,如果输入了字符就跳转INPUT JE INPUT LOOP L3 MOV DX,2A8H MOV AL,44H OUT DX,AL MOV STATE,AL MOV CX,5 ;亮灯--0 1 0 1 0 0 ;亮灯--红黄绿 红黄绿 8
分享到:
收藏