基于Proteus的16路流水灯实验(汇编语言)

基于Proteus的16路流水灯实验(汇编语言)

实验内容

采用proteus仿真16路流水灯。编写程序,使8255的A口和B口均为输出,数据灯D8~D1 由左向右,每次仅亮一个灯,循环显示,D16~D9 与D8~D1正相反,由右向左,每次仅点亮一个灯,循环显示。

电路连接图

最小系统

程序代码

补充说明

对于程序中端口地址的定义取决于电路连接图中的最小系统。
比如本篇文章中搭建的这个最小系统中,8255A控制端口地址为1011 0000 0000 0110 ,A端口地址为1011 0000 0000 0000 ,B端口地址为1011 0000 0000 0010 ,C端口地址为1011 0000 0000 0100 。
因为8255A CS  ̄ overline{text{CS}} CS接的是IO3,对应74HC138中A12,A13,A14对应的值为011,由于74HC138接的是A15,所以A15的值为1,所以8255各端口值的高4位都是1011,又由于8255A芯片的A0端和A1端接的是A1和A2(注意这里8255A的A0端接的是A1,A1端接的是A2),所以当选择控制端口操作时A1和A2为11,当选择A端口操作时A1和A2为00,当选择B端口操作时A1和A2为01,当选择C端口操作时A1和A2为10。这样就得出了不同端口对应的端口值。
在dosbox中最小系统对应的8255A控制端口地址为63H,A端口地址为60H,B端口地址为61H,C端口地址为62H。在实验箱中就可能又是另外一个地址。总而言之,不同系统对应的芯片端口值不一样,这个需要注意一下。

资源下载

资源链接:proteus仿真16路流水灯实验(汇编语言)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐