资源描述:
《微机与接口实验1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、微机与接口技术实验1南京大学工程管理学院实验设备:LAB6000通用微控制器实验系统实验用时6小时实验内容:并行接口实验1.简单接口:以245作为输入接口,273作为输出接口,分别接拨动开关,和发光二极管。编程序实现发光二极管显示开关状态,1亮,0灭。(CS245接CS0,CS273SCSI)CS245equ08000h;地址CS273equ09000hcodesegmentassumecs:codestartprocnearmoval,1Again:movdx,CS245inal,dxmovdx,CS273jmpAgain;数
2、据从245输入到al擞据从al输入到273;动态显示codeendsendstart2.改用8255A口代替245,B口代替273。8255A、B口均工作于方式0,编程序实现上述功能。modeequ090hPortAequ8000hPortBequ8001/tPortCequ8002h;方式(hPB,PC输出,PA输入;PortA;PortB;PortCCAddrequ8003h;控制字地址codesegmentassumecs:codestartprocnearStart:movalymodemovdxfCAddroutdxy
3、al;输出控制字movdx,PortAinal,dx;读入PortAmovdx,PortBoutdx,al;输出到PortBmovah,20;延迟电路,增大此数值可延长响应时间calldelayjmpendpStart;动态显示delayprocnearpushax;保存延迟电路用到的寄存器moval,0pushexmovcx^axloop$popex;恢复popretaxdelayendpcodeendsendstart3.8255A改工作方式1,8255PC4接单脉冲按键开关,PC3接8259INT0o编制程序实现:INTO
4、中断服务程序实现2功能。(修改拨动开关后,发光二极管显示不变,按单脉冲开关后,显示新开关状态)modeequ0b8h;bPBPortAequ9000h;PortAPortBequ9001h;PortBPortCequ9002h;PortCCAddrequ9003h;控制字地址,PC输出,PA输入movmovoutmovoutmovoutretUnitendpdx,CS8259Bal,ICW2dxyalal,ICW4dxyalal,0CW1dx,allEnterprocnearpushaxpushdxmovdxyPortAinal
5、,dxmovdxyPortBoutdx,al;中断服务程序;中断断点保存;读入PortA;输出到PortBmovdx,CS8259Amoval,20h;中断服务程序结束指令ICW1equ00010011b;单片8259,上升沿中断,要写心4ICW2equ00100000b;中断号为2QHICXV4equ00000001b;工作在8086/88方式OCW1equ11110000b;只响应INTO中断CS8259Aequ08000h;8259地址CS8259Bequ08001hcodesegmentassumecs:codeUnit
6、proc;初始化movdx,CS8259Amoval,ICW1outdXyalpoppopiretdx;恢复axIEnterendpstartprocnearStart:Cli;禁止中断movax,0movds,axmovbx,4^ICW2;INTO中断向量表地址movshladdax,codeax94ax9offsetIEnter;中断入口地址(段地址为0)mov[bx],axmovincincax,0bxbxmovcall[bx],ax;INTO中断入口地址CSUnittnovmovoutal9inodedx,CAddrdx
7、,al;输出控制字moval,09h;置位中断允许触发器1NTE,输入模式对应movoutdx,CAddr;PC49100dxfalmovdx,PortAinal,dx;读入PortAmovoutstidx,PortBdx,al;输出到PortB;打开中断jmp$endpcodeendsendstart实验要点:1.8255端口C的用法很复杂,可分为上下两组,在写控制字时,要让上半部为输入模式,下半部为输出模式2•实验中发送不出INTRA信号是因为INTE没有置位,要对INTRA置位,要考虑是输入还是输出模式,不同模式对应不同端
8、口,确定端口后,输入端口C控制字,对对应端口置位;若要I古I定INTE为允许中断,可使PC4和PC5进行与操作后输入到PC3,INTE的意义在于能够动态控制中断的发送与否。