资源描述:
《交通灯控制实验(TPC-USB 微机接口实验系统集成开发环境).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验八交通灯控制实验一、实验目的:1、学习并掌握并行接口8255A的内部结构,功能及编程。2、通过并行接口8255A实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。三、实验设备:计算机、微机原理及接口实验系统二、实验原理及内容:1、并行接口8255A功能、结构及编程8255A是一种可编程的并行接口电路芯片,实现并行数据传输功能。8255A内部结构及引脚如图2-1所示。它具有A、B、C三个并行接口,实现与外部设备的数据交换,其A、B、C三个端口以排针形式引出,供8255A实验使用。8255的数据线片选信号线、地址线、读写控制线等分别与系统总线连接。344D033D0PA03D1D1
2、PA1322D2D2PA2311D3D3PA33040D4D4PA42939D5D5PA52838D6D6PA62737D7D7PA7XIORRD5RDPB018XIOWWR36WRPB119A0A09825520A0PB2A1A1821A1PB3RESETRESET35RESETPB422IOY1CS6CSPB52324PB625PB714PC0L12PC015PC1L11PC116PC2L10PC217PC313PC412PC5L15PC511PC6L14PC610PC7L13PC7图2-1实验接线图8255A的一组端口地址如表2-1所示。表2-18255端口地址信号线寄存器编址A口
3、0E0HB口0E1HIOY7C口0E2H控制寄存器0E3HA、B、C端口能在以下三种方式下工作:方式0—基本输入/出方式方式1—选通输入/出方式方式2—双向选通输入/出方式8255A的工作方式控制字用来决定8255A端口的工作方式,方式控制字的格式如图2-2所示。表2-18255端口地址信号线寄存器编址A口0E0HB口0E1HIOY7C口0E2H控制寄存器0E3HD7D6D5D4D3D2D1D01B组控制C口0输出(低4位)1输入0输出B口1输入方式选择0方式01方式1A组控制C口0输出(低4位)1输入0输出A口1输入00方式0方式选择01方式11X方式2图2-28255A方式控制字格式
4、2、按照图2-1,L15、L14、L13作为南北路口的交通灯与PC5、PC6、PC7相连,L12、L11、L10作为东西路口的交通灯与PC0、PC1、PC2相连,编程使六个交通灯按如下变化规律燃灭。十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮。(2)南北路口的黄灯闪烁若干次,同时东西路口红灯继续亮。(3)南北路口的红灯、东西路口的绿灯同时亮。(4)南北路口的红灯继续亮,同时东西路口的黄灯亮闪烁若干次。(5)转(1)重复。四、实验步骤1、按图2-1连接实验线路,注意切断实验箱电源。2、参考下面的实验流程编写实验程序。实验流程如下:开始设置8255C口输出南北路口
5、绿灯亮,东西路口红灯亮长延时南北路口黄灯闪,东西路口红灯亮短延时南北路口红灯亮,东西路口绿灯亮长延时南北路口红灯亮,东西路口黄灯闪短延时3、经汇编、链接后将程序装入系统。4、运行程序,观察交通灯的变化。交通灯控制实验程序1:datasegmentprotc1db9bh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbhdb7eh,7dh,7fh,7dh,7fh,7dh,7fhdb0ffhdataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,0e3hmoval,90houtdx,almovdx,0
6、e2hloop1:movbx,0000hloop2:moval,protc1[bx]cmpal,0ffhjzloop1outdx,alcalldelayincbxjmploop2delay:movcx,01ffhde1:movdi,0ffhde0:decdijnzde0loopde1retcodeendsendstart交通灯控制实验程序2:datasegmentprotc1db0dbh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbhdb7eh,7dh,7fh,7dh,7fh,7dh,7fhdb0ffhdataendscodesegmentassumecs:code,ds:d
7、atastart:movax,datamovds,axmovdx,0e3hmoval,90houtdx,almovdx,0e2hloop1:movbx,0000hloop2:moval,protc1[bx]cmpal,0ffhjzloop1outdx,alandal21hcmpal,21hjzaamovcx,0effhjmpbbaa:movcx,01dfhbb:calldelayincbxjmploop2delay:de1:movd