1实验六8255输入、输出实验班级:计科143学号:6103114095姓名:王祥真1、实验要求:利用8255可编程并行口芯片,实现输入/输出,实验中用8255PB口作输出,PC口作输入。2、实验目的:(1)了解8255芯片结构及编程方法。(2)了解8255输入/输出实验方法。3、实验电路:8255的CS5接译码器YC2(0A000H-0AFFFH),则命令字地址为0A003H,PA口地址为0A000H,PB口地址为0B001H,PC口地址为0B002H。PB0-PB7(PB口)接L0-L7(LED发光二极管组),PC0-PC7(PC口)接K0-K7(K0-K7开关量发生器)。4.实验器材:(1)G2010实验平台1台(2)G6W仿真器1台(3)连线若干根(4)LAB8088CPU板1块5、实验说明:可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。本实验采用的是方式0:PB口输出,PC口输入。方式字为89H。6、实验步骤:(1)使用实验平台锁进插座,如图连线,因8255片选信号为0A000H,所以,A口为0A000H、口为0A001H、C口为0A002H、命令口为0A003H。(2)硬件测试:把G2010+G6W连PC机,在WINDOWS调试环境下点击[窗口/数据窗口/MEMORY],以打开MEMORY数据窗口,在打开的MEMORY窗口中的0A003H地址(即8255的片选空间)上写入控制字82H,在0A001H(8255的B口)上打入55H,0AAH等数字,LED发光二极管组对应点亮。若不是,则硬件有问题。2(3)编写程序、编译程序,用单步、断点、连续方式调试程序,排除软件错误。运行程序,直至达到本实验的要求为止。7、实验框图:8、器件引脚:9、软件清单:(IN8088A\B07A.ASMIN8088A\B07B.ASM);自由扩展实验例程实验七8255输入、输出实验modeequ082h;方式0,PA,PC输出,PB输入PortAequ0A000h;PortAPortBequ0A001h;PortBPortCequ0A002h;PortCCAddrequ0A003h;控制字地址codesegmentassumecs:codestartprocnear开始延时置8255工作方式置8255PB口数据左移延时开始延时置8255工作方式读8255PC口置8255PB口3Start:moval,modemovdx,CAddroutdx,al;输出控制字;实验1:PortA输出moval,80Hmovcx,08HOutA:;movdx,PortA;outdx,al;输出PortAmovdx,PortCoutdx,alshral,1;移位movah,100calldelay;延时loopOutA;实验2:PortB输入PortA输出movdx,PortBinal,dx;读入PortBmovdx,PortCoutdx,almovdx,PortAoutdx,al;输出到PortAmovah,200calldelayjmpStartendpdelayprocnearpushaxmoval,0pushcxmovcx,axloop$popcxpopaxretdelayendpcodeendsendstart10、编程:注:IN8088A\B07A.ASMIN8088A\B07B.ASM,是完不成实验功能的,要修改(1)依据C01.ASM、B07A.ASM和B07B.ASM,编程完成实验三类似的功能(2)实现8个指示灯中4个常亮显示和4个闪烁显示4实验代码:;G2002-8086板实验例程实验一方向灯控制实验modeequ089h;方式0,PA,PC输出,PB输入PortAequ0A000h;PortAPortBequ0A001h;PortBPortCequ0A002h;PortCCAddrequ0A003h;控制字地址DelayCounterequ10000datasegmentFlashdb0dataendscodesegmentassumecs:code,ds:dataStartprocnearmovax,datamovds,axmoval,modemovdx,CAddroutdx,almovdx,PortBmoval,0outdx,almovFlash,0ffhmovcx,DelayCounterAgain:movdx,PortC;测左开关状态inal,dxandal,Flash;Flash决定是否闪烁movdx,PortB;输出notal;speciallyforSICELaboral,0f0h;speciallyforSICELaboutdx,alloopAgain;闪烁延时到时?notFlash;是,要改变闪烁状态movcx,DelayCounter;重新设置延时值5jmpAgaincodeendsendstart