交通灯控制实验_第1页
交通灯控制实验_第2页
交通灯控制实验_第3页
交通灯控制实验_第4页
交通灯控制实验_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 交通灯控制实验(8255)一、 实验目的掌握 8255方式0的工作原理及使用方法。 二、 实验内容通过并行接口8255实现十字路口交通灯的模拟控制。如下图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。三、 编程提示1、8255控制寄存器端口地址 28BH A口的地址 288H C口的地址 28AH 2、十字路口交通灯的变化规律要求: (1) 南北路口的绿灯、东西路口的红灯同时亮3秒左右。(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。(3) 南北路口的红

2、灯、东西路口的绿灯同时亮3秒左右。(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。(5) 转(1)重复。四、参考流程图五、编写程序前的初步工作1、应用程序中需要替换的地址记录下基址,并用记录下的基址值替换每个汇编程序头中定义行中的值。其中”0C400h”是TPC设备在微机中被动态分配的io基地址,相当于设备中的地址0280h。替换方法: 用记录下的基址值替换每个汇编程序头中的定义行中的值,并重新编译链接后即可。io基地址为: ioport equ 0C400h-0280h ; ioport是TPC卡中设备的IO地址。如: 并行接口芯片8255 即 : 替换前 替换后 8255控制

3、寄存器地址 28BH 0C40BHC口地址 28AH 0C40AH 端口地址程序IoPORT EQU 0C400H-0280H; IoPORT是TPC卡中设备的IO地址Io8255C EQU IoPORT+28AH; Io8255C是8255C口的地址Io8255CTR EQU IoPORT+28BH; Io8255CTR是8255控制寄存器地址2、(1)写工作方式控制字MOV AL,10000000B ;A,B,C三个端口设为方式0,输出(2)各步骤的置/复位控制字步骤1:南北路口绿灯亮(L5置1),东西路口红灯亮(L2置1)MOV AL,00100100B 步骤2:南北黄灯亮(L6置1),

4、东西红灯亮(L2置1)MOV AL,01000100B 南北黄灯灭(L6置0),东西红灯亮(L2置1)MOV AL,00000100B 步骤3:南北红灯亮(L7置1),东西绿灯亮(L0置1)MOV AL,10000001B 步骤4:南北红灯亮(L7置1),东西黄灯亮(L1置1)MOV AL,10000010B南北红灯亮(L7置1),东西黄灯灭(L1置0)MOV AL,10000000B 3、软件延时:由于位长只有16位,计数次数最多为FFFFH次,延时过短,肉眼难以分辨,故需进行嵌套,在此程序中采用双层嵌套即可,设置外层计数值为0FFFFH,内层长延时和短延时分别为0FFFFH和05000H,

5、即长延时为FFFFH*FFFFH*(机器周期),短延时为5000H*FFFFH*(机器周期)。4、如何判断有无键按下:调用DOS功能子程序中的 6号功能。当(DL)=0FFH 时,执行键盘输入操作,在执行功能子程序时: 有键按下: ZF=0 字符的ASCII码在AL中;无键按下: ZF=1 。六、源程序DATA SEGMENTIoPORT EQU 0C400H-0280H;Io8255C EQU IoPORT+28AH;Io8255CTR EQU IoPORT+28BH;DATA ENDSCODE SEGMENT ASSUME CS:CODESTART:MOV DX,Io8255CTR ;设置

6、控制端口地址为0C40BH MOV AL,10000000B ;A,B,C三个端口设为方式0,输出 OUT DX,AL ;写入控制端口LOP: MOV DX,Io8255C ;C口地址为0C40AH MOV AL,00100100B ;步骤1:南北路口绿灯亮(L5置1),东西路口红灯亮(L2置1) OUT DX,AL ;写入C口 CALL LDELAY ;调用长延时子程序 MOV CX,3 ;闪烁计数值3L1:MOV AL,01000100B ;步骤2:南北黄灯亮(L6置1),东西红灯亮(L2置1) OUT DX,AL CALL SDELAY ;调用短延时程序 MOV AL,00000100B

7、 ;南北黄灯灭(L6置0),东西红灯亮(L2置1) OUT DX,AL CALL SDELAY ;调用短延时子程序 LOOP L1 ;计数值减一,跳至L1 MOV AL,10000001B ;步骤3:南北红灯亮(L7置1),东西绿灯亮(L0置1) OUT DX,AL CALL LDELAY ;调用长延迟 MOV CX,3L2:MOV AL,10000010B ;步骤4:南北红灯亮(L7置1),东西黄灯亮(L1置1) OUT DX,AL CALL SDELAY MOV AL,10000000B ;南北红灯亮(L7置1),东西黄灯灭(L1置0) OUT DX,AL CALL SDELAY ;调用短

8、延时子程序 LOOP L2 ;计数值减一,跳至L2 MOV DL,0FFH ;按任意键结束 MOV AH,06H INT 21H JZ LOP ;无键按下,继续执行;有键按下,退出 MOV AH,4CH ;退出DOS系统 INT 21HLDELAY PROC ;长延时子程序 PUSH CX ;保护现场 PUSH BX T0:MOV CX,0FFFFH ;由于位长为16位,最多计数FFFFH次,延时过短,故需两层嵌套 T1:MOV BX,0FFFFH ;总计数值为FFFFH*FFFFH,故长延时为FFFFH*FFFFH*(机器周期) T2:DEC BX JNZ T2 LOOP T1 POP BX

9、 POP CX RETLDELAY ENDPSDELAY PROC ;短延时子程序 PUSH CX ;保护现场 PUSH BX MOV CX,05000H ;短延时为5000H*FFFFH*(机器周期)T3:MOV BX,0FFFFHT4:DEC BX JNZ T4 LOOP T3 POP BX POP CX RETSDELAY ENDPCODE ENDS END START七、实验感想俗话说“好的开头就等于成功了一半”,微机实验也是如此。在充分阅读了实验指导书之后,我基本了解了本次实验的流程和内容,并为上机编程做了初步的准备,如端口地址的匹配、8255工作方式控制字以及各种步骤下置/复位控制字的确定。另外还对延时进行了初步的计算,初步确定了长、短延时所需的次数。通过查阅资料,成功的掌握了程序中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论