实验一 交通灯控制实验(8255).doc

实验一 交通灯控制实验(8255).doc

ID:59278351

大小:665.01 KB

页数:6页

时间:2020-09-07

实验一 交通灯控制实验(8255).doc_第1页
实验一 交通灯控制实验(8255).doc_第2页
实验一 交通灯控制实验(8255).doc_第3页
实验一 交通灯控制实验(8255).doc_第4页
实验一 交通灯控制实验(8255).doc_第5页
资源描述:

《实验一 交通灯控制实验(8255).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

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

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

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

5、05000H,即长延时为FFFFH*FFFFH*(机器周期),短延时为5000H*FFFFH*(机器周期)。4、如何判断有无键按下:调用DOS功能子程序中的6号功能。当(DL)=0FFH时,执行键盘输入操作,在执行功能子程序时:有键按下:ZF=0字符的ASCII码在AL中;无键按下:ZF=1。六、源程序DATASEGMENTIoPORTEQU0C400H-0280H;Io8255CEQUIoPORT+28AH;Io8255CTREQUIoPORT+28BH;DATAENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,Io8255CTR

6、;设置控制端口地址为0C40BHMOVAL,10000000B;A,B,C三个端口设为方式0,输出OUTDX,AL;写入控制端口LOP:MOVDX,Io8255C;C口地址为0C40AHMOVAL,00100100B;步骤1:南北路口绿灯亮(L5置1),东西路口红灯亮(L2置1)OUTDX,AL;写入C口CALLLDELAY;调用长延时子程序MOVCX,3;闪烁计数值3L1:MOVAL,01000100B;步骤2:南北黄灯亮(L6置1),东西红灯亮(L2置1)OUTDX,ALCALLSDELAY;调用短延时程序MOVAL,00000100B;南北黄灯灭(L6置0

7、),东西红灯亮(L2置1)OUTDX,ALCALLSDELAY;调用短延时子程序LOOPL1;计数值减一,跳至L1MOVAL,10000001B;步骤3:南北红灯亮(L7置1),东西绿灯亮(L0置1)OUTDX,ALCALLLDELAY;调用长延迟MOVCX,3L2:MOVAL,10000010B;步骤4:南北红灯亮(L7置1),东西黄灯亮(L1置1)OUTDX,ALCALLSDELAYMOVAL,10000000B;南北红灯亮(L7置1),东西黄灯灭(L1置0)OUTDX,ALCALLSDELAY;调用短延时子程序LOOPL2;计数值减一,跳至L2MOVDL,

8、0FFH;按任意键结束M

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。