- 0
- 0
- 约2.2千字
- 约 2页
- 2026-01-05 发布于北京
- 举报
实验二内存扩展和I/O空间操作实验
一.实验目的和内容
1.理解内存地址空间和IO空间操作方法的异同,学习利用静态内存扩展系统
器的电路设计方法,并且掌握内存映射到地址空间中不同区域的连线方案,理解奇偶地址、
数据总线高字节、低字节和奇偶内存的对应关系。
2.学习8255接口的方法,进一步学习微处理器的汇编语言编程技术。编写程序,
以8255作为输入输出口,完成接收开关量输入,控制LED灯和数码管的正常显示。
三.实验电路及连线
实验素材包括在实验2目录下的实验二8255Demo.DSN原理图文件、实验二
8255Demo.asm和实验二内存扩展.asm二个汇编源代码文件。
三.实验要求
1)8255接口操作要求:
1.打开上述原理图文件,分析原理图,计算8255在IO空间中的地址,列出
8255中四个寄存器的端口地址,查看8255数据端口与8086数据总线的连接方法。
2.导入实验二8255Demo.asm源文件并编译运行,应能能在数码管上显示0,1,2,3,
并点亮所有发光二极管。
3.修改步骤2的源文件,使其接收开关量输入,将8位开关量的高4位以二进制
形式显示在发光二极管上,低4位的状态显示在(第一位)数码管上。
4.修改程序,接收开关量输入,将8位开关量的高4位和低4位分别以十六进制
形式显示在第1、2个数码管的上,第3、4个数码管重复第1、2个数码管的显示;开
关量输入高4位的状态显示在4个发光二极管上。
5*.调整8255数据端口连线到8086数据总线的D8-D15,重复上述的步
骤2-步骤4。
2)内存扩展方案设计
1.8255Demo.DSN原理图文件,通过对所的原理图中方案的分
析,计算出该映射到内存地址空间的地址和内存容量的大小;
2.a打开“实验二内存扩展.asm”源文件运行并观察U10和U11内存的内容。其
方法是先运行程序一段时间后暂停,勾选菜单项“Debug”-“MemoryContents–U10”选项和
勾选菜单项“Debug”-“MemoryContents–U11”选项,弹出U10和U11二个62256内存
的内容观察窗口,其内容应该均为FFh。该演示程序是采用单字节写入的方法完成内容的填
写。要求修改上述程序,采用单字节写操作方法,将所有奇数地址的内存单元从低地址到高
地址依次填入无符号数1、3、5、7、。。。。。。;通过Proteus的观察内容的查
看功能,观察原理图中二个内存U10和U11的写入内容与预想结果做比较;
2.b继续修改程序,采用单字节写操作方法,将所有偶数地址的内存单元从低地址
到高地址依次填入无符号数0、2、4、6、。。。。。。;通过Proteus的观察内容
的查看功能,观察原理图中二个内存U10和U11的写入内容。
3.修改原理图,将内存映射到内存地址从80000h开始的地方,重复上述的步
骤2-步骤3。
4*.编写程序,采用双字节写操作方法,把55AAh填满上述的二个内存通过
Proteus的观察内容的查看功能,观察原理图中二个内存的写入内容。
四.实验说明
1.对应上述的各个步骤由多个演示环节,建议在实验时完成每个步骤时,保存原理图
和对应的软件备份以备检查时使用。
2.上述要求中带“*”的为选做内容。
3.Proteus的8086仿真在特定情况下会发生错误,使其产生的信号与实际情况不符
合。针对此仿真问题,在汇编源代码中加入了补丁(WorkArou
原创力文档

文档评论(0)