DELLAY1S: PUSH AX POP AX PUSH BX LOOP D0 PUSH CX POP CX CALL LED1 POP BX MOV CX,0FFFFH POP AX D0:PUSH AX RET 3.3.2 本实验中的中断的运用 MOV AX,OFFSET IRQ7;取中断程序入口地址(相对地址) 本实验中使用的是中断请求输入IR7,当你按kk2时,执行中断程序,灯会闪烁,程序如下 IR7: OUT 60H,AL MOV AL,20H ;结束中断 CALL DELLAY1S OUT 20H,AL NOT AL IRET DEC BX JNZ IR7 POP CX POP BX POP AX
11
4 软件主要模块流程图 4.1程序总设计流程图 开始 8255初始化 装入中断向量 8259初始化 D0、D1绿灯亮,D4、D5红灯亮 延时25S是否到 Y D0、D1绿灯闪烁 延时5S是否到 Y D2、D3绿灯亮,D6、D7红灯亮 N 延时15S是否到 Y Y D0、D1绿灯闪烁 延时5SY 是否到 Y 结束 图4.1 软件流程图 N N N N 12
4.2延时1s子程序DELLAY1S流程图 此延时子程序不光实现延时,还调用了LED1子程序显示了CX的内容,实现延时的同时倒计数的显示。具体流程如下: 开始 AX,BX,CX,进栈 调用LED1子程序在LED中显示CX的内容 CX=0FFFH AX 进栈,AX出栈,CX-1 CX= =0? AX,BX,CX出栈 返回 图4.2 实验延时1秒流程图
13
4.3 IRQ7中断子程序流程图 IRQ7中断子程序是实现所有灯闪烁10s就返回的功能。具体流程就如下。 开始 调用1s延时子程序 AX,BX,CX进栈 CX清零,调用1s延时子程序时LED数码管显示置AL=0FFH,BX=0AH 从C口输出AL值,用于把 灯灭掉(AL=00H)或全点亮 AL取反,BX-1 否 判断BX是否为0 是 AX,BX,CX出栈 中断结束、返回 图4.3 中断服务程序流程图 14
5 系统调试 5.1 系统调试 1.使用串行通讯现将实验系统与PC微机相连 2.正确搭接好相关实验电路 3.接通电源,双击试验系统快捷方式,开启试验系统如下图 4.点击菜单栏“文件”按钮,选择建新文件。即可开始输入源程序。输入程序后,点击保存按钮,进行保存。 5.点击编译按钮,对源程序进行汇编,生成目标文件(*。obj)。汇编信息显示与屏幕,若出现错误,修改源程序,直至正确。 6.汇编无误后,对汇编生成的*。Obj文件进行链接,链接信息显示于屏幕上,生成*。EXE可执行文件。 7点击加载按钮,加载*。EXE程序。屏幕显示信息。 8.加载成功, RUN,运行程序。 9.开始时候东西方向绿灯亮,南北方向红灯亮30秒,最后5秒时候绿灯会闪烁。 南北方向绿灯亮,东西方向红灯亮20秒,最后5秒时候绿灯会闪烁。 10.在9过程中,若用户按下KK2,则会出现8个灯一起闪烁10秒,然后回到按之前状态,继续循环步骤9中过程。 15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库交通信号灯实时控制(3)在线全文阅读。
相关推荐: