资源描述:
《并行接口实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、利用8255A并行接口实验实验目的:掌握8255A和微机接口的连接方法,了解8255A的基本的工作原理和编程方法。掌握循环,延吋,等程序的编程方法。实验内容:PC口接8个拨动开关K1-K8,PB口接8个LED。初始由开关K1・K8设定8位不同的值,当执行程序后LED按K1-K8初始设定的值点亮,并向右流动(8255AI作在0方式),同时在数码管上显示“8255…A”。实验分析:实验代码:codesegmentassumecs:codestart:movdx,2O3hmoval,10001001boutdx,alxorax
2、,axmovbl,0lop:movdx,202hinal,dxcmpal,ahjznextmovah,almovbl,ahrolbl,lnext:rorbl,lmoval,blmovdx,201houtdx,almovcx,3fffhdoit:movdx,211hmoval,00000000boutdx,almovdx,210hmoval,7fhoutdx,almovdx,211hmoval,00100000boutdx,al;2movdx,211hmoval,OOOOOOOOboutdx,almovdx,21Ohmov
3、al,5bhoutdx,almovdx,211hmoval,OOOlOOOOboutdx,al;5movdx,211hmoval,OOOOOOOOboutdx,almovdx,21Ohmoval,6dhoutdx,almovdx,211hmoval,OOOOlOOOboutdx,al;5movdx,211hmoval,OOOOOOOOboutdx,almovdx,21Ohmoval,6dhoutdx,almovdx,211hmoval,OOOOOlOOboutdx,al•-/movdx,211hmoval,OOOOOOO
4、Oboutdx,almovdx,21Ohmoval,40houtdx,almovdx,211hmoval,OOOOOOlOboutdx,al;Amovdx,211hmoval,OOOOOOOOboutdx,almovdx,21Ohmoval,77houtdx,almovdx,211hmoval,00000001boutdx,alloopdoitjmplopcodeendsendstart实验分析:定义8255命令口地址203h,并设置控制字10001001B,送入al寄存器屮,特征位D7=l,打入方式命令字;D6,D5=
5、00,A口为0号工作方式;D4=0,A端口既不用于输入也不用于输III,可以设置任意值;D3=l,C端口输入开关信号;D2=0,B端口也在0方式下工作:Dl=0,B端口输出信号使得LED等亮;D0=l,C端口输入开关信号1:led灯走马灯形式亮:将dx赋值202h,使得c口读入数据:movdx,202hInal,dx将dx赋值201h,使得B口输出数据:movdx,201hOutdx,al循环指令,使得程序能循环执行:设置循环次数movcx,3fffhdoit:rorbl,l,这里釆用不带进位的循环右移延时程序:为了使得
6、实验效果更明显,每执行一次循环都调用延时程序,calldelay。delayprocpushexpushbxmovcx,Ofhd22:movbxQffffhdll:deebxempbx,Ohjnzdlldecexempbx,Ohjnzd22popbxpopexretdelayendp,该延时程序循环技术,当ex,bx寄存器内容分别减少到0的时候退出延时程序。2:开关搬动,led根据变化重新运行:首先比较al,和bh的值,判断输入信号是否发生改变,如果信号改变,即比较结果不相等则转移:cmpal,bhjnechange转移
7、到change程序,改变分别改变bl,bh的值,并返回主程序:movbl,al,movbh,al3:在数码管上显示8255-A:将8255-A的16进制码存入ledcode中,程序中利用循环不断增加位码来实现数码管的逐个显示。实验结果:a■lx■KM.?.<02小舀一次录制的笑美烁视频:最后-•次录制的完美
8、®_baofcng.mp4实验体会:通过本次实验,掌握8255A和微机接口的连接方法,了解8255A的基本的工作原理和编程方法。掌握循坏,延时,等程序的编程方法。