微机原理实验指导书-硬件部分(2015)(1)分解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

东华大学信息学院信控实验中心86实验指导书第1页实验1存储器读写实验一、实验目的1.掌握PC机外存扩展的方法。2.熟悉6264芯片的接口方法。3.掌握8086十六位数据存储的方法。二、实验设备微机实验箱、8086CPU模块。三、实验内容向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。四、实验原理介绍本实验用到存储器电路五、实验步骤和要求1、实验接线:本实验无需接线。2、编写调试程序3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。本实验的主要目的是学会用使用工具软件,掌握用单步执行和断点方式运行程序,观察寄存器和内存中的数据变化等程序调试的手段。六、实验提示1、RAM区的地址为02000H,编程时可将段地址设为0100H,则偏移地址为1000H。2、如果按字节进行存储,则AL为55H或AAH;如果按字进行存储,则AX应为55AAH。3、6264、62256等是计算机系统扩展中经常用到的随机存储器芯片(RAM),主要用作数据存储器扩展。本实验所进行的内存置数在程序中经常用到。计算机系统运行中会频繁地进行内存与外设或者内存与内存之间的数据传输,所以本实验虽然简单但对理解系统程序的运行很关键,望学习和实验时认真对待。七、实验范例程序框图及源代码(实验程序名:RAM.ASM)八、思考题1、单步执行到“intram”标号的语句时,ds寄存器的数据是什么?采用断点方式运行时执行到第一个断点处,2000H~202FH内存单元的数据是什么?执行到第二个断点处,2000H~200FH内存单元的数据是什么?并根据观察结果和对源程序的判读简述源程序的运行效果。如图,单步执行到“intram”标号的语句时ds寄存器的数据为0100东华大学信息学院信控实验中心86实验指导书第2页采用断点方式运行时执行到第一个断点处,2000H~202FH内存单元的数据如图所示。由源程序知道第一个断点前的程序是为了把数据段内存单元清0,符合上图结果其实清零在这里可以不用,直接进行后面的置数执行到第二个断点处,2000H~200FH内存单元的数据如图所示。由源程序可知程序的运行结果为向02000~020FFH单元的偶地址送入AAH,奇地址送入55H,符合上图的结果东华大学信息学院信控实验中心86实验指导书第3页2、修改程序,实现从2000H到200FH单元依次赋值00H~0FH的功能。设计思想:通过把AL值赋给【si】,然后使AL,si同时自加1,循环16次即可程序流程图:初始化DS初始化SI开始循环次数CX=01hAL赋初值0h目标单元置数AL=AL+1SI=SI+1CX=0?空操作NY结束东华大学信息学院信控实验中心86实验指导书第4页代码:codesegmentassumecs:codeorg0100h;在代码段0100h偏移地址处开始存放代码start:movax,0100h;movds,ax;数据段地址moves,axmovsi,1000h;偏移地址movcx,0100h;循环次数moval,0;al的值置0intram:mov[si],al;0赋给[si]incsi;si加1loopintram;使得0100:1000开始处的256个单元中的数据清0movsi,1000h;设置断点处movcx,0010h;设置循环次数为16fil:mov[si],al;RAM区循环置数incsi;地址指针加1incal;al中的值每执行一次循环加1,初始值为00,加到0Floopfilnop;设置断点处jmpstartcodeendsendstart东华大学信息学院信控实验中心86实验指导书第5页结果:东华大学信息学院信控实验中心86实验指导书第6页九、实验中的问题及其解决方法问题:(1)范例程序中按题目要求设置两个断点时,全速运行时只能运行第一个断点处的程序,而不知道怎么运行下一个断点处的程序,导致出不来结果(2)做思考题时,运行所写程序时发现内存空间中上一个题目的运行结果还在里面解决方法:(1)针对问题(1),当执行完第一个断点执行完毕应该取消该断点,这样在全速运行时可以运行到下一个断点,就可以观察到程序运行结果了。(2)针对问题(2),发现在初始化程序时,自己把所有的循环初值都设成了0010H(16),导致只有前16个内存单元清零,而后面的内存单元没有初始化,保留了上次运行的程序运行结果。所以将初始化(清零)的循环初值设成0100H,这样就可以初始化256个内存单元了,把上次的结果初始化为0。而后一个赋值循环的循环次数仍然为0010十、体会这个题目比较简单,程序很简单,主要是把循环值设置对。但是由于对软件使用的不熟悉,因此导致了一些问题。在调试运行上还是花了一些时间。通过发现问题,解决问题的过程,使我对这个软件的使用更加熟练,为后面的程序设计中打下良好的基础。东华大学信息学院信控实验中心86实验指导书第7页实验2简单I/O口扩展实验一、实验目的1、熟悉74LS273,74LS244的应用接口方法。2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。二、实验设备微机实验箱、8086CPU模块。三、实验内容逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。四、实验原理介绍本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。五、实验步骤1、实验接线:(表示相互连接)CS0CS244;CS1CS273;平推开关的输出K1~K8IN0~IN7(对应连接);O0~O7LED1~LED8。2、编辑程序,单步运行,调试程序3、调试通过后,全速运行程序,观看实验结果。4、编写实验报告。六、实验提示74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。七、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。八、实验范例程序框图(实验程序名:T244273.ASM)九、程序源代码清单东华大学信息学院信控实验中心86实验指导书第8页十、思考题:将74LS244的片选信号CS244改接CS2,将74LS273的片选信号CS273改接CS3,修改程序实现与范例程序相同的功能。程序流程图:开始初始化读输入至AL输出AL结束代码:assumecs:codecodesegmentpublicorg100hstart:movdx,04c0h;74LS244地址inal,dx;读输入开关量movdx,04d0h;74LS273地址outdx,al;输出至LEDjmpstartcodeendsendstart分析:原CS244接CS0,CS0端口地址04a0h,CS273接CS1,CS1端口地址为04b0h。只需把接线换掉后,把对应的端口地址改正即可.即CS2的地址为04c0h,CS3的地址为04d0h十一、遇到的问题该实验在调试的过程中,没有遇到问题,只是第一次的那台仪器坏了,发现灯都不亮,之后换了一台仪器,连线,编译,运行,就得到正确结果了。东华大学信息学院信控实验中心86实验指导书第9页实验38255并行口实验一、实验目的掌握8255A的编程原理。二、实验设备微机实验箱、8086CPU模块。三、实验内容8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。四、实验原理介绍本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。五、实验步骤1、实验接线CS0CS8255;PA0~PA7平推开关的输出K1~K8;PB0~PB7发光二极管的输入LED1~LED8。2、编程并全速或单步运行。3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。六、实验提示8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。实验中,8255A工作于基本输入输出方式(方式0)。七、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。八、实验范例程序框图及源代码(实验程序名:t8255.asm)东华大学信息学院信控实验中心86实验指导书第10页九、思考题:1、修改接线CS2CS8255,并要求开关置“H”(下)位置时对应LED亮,修改程序实现相应功能。程序流程图:代码:assumecs:codecodesegmentpublicorg100hstart:movdx,04c6h;控制寄存器地址(改为04c6h)movax,90h;设置为A口输入,B口输出outdx,axstart1:movdx,04c0h;A口地址(改为04c0h)inax,dxxorax,0ffffh;取反输入movdx,04c2h;B口地址(改为04c2h)outdx,ax;输出jmpstart1codeendsendstart开始设置8255工作方式读A口AX取反输出到B口结束东华大学信息学院信控实验中心86实验指导书第11页说明:由于换成CS2和CS8255相连,因此三个地址应分别修改为:04c6h,04c0h,04c2h由于要求开关置下时灯亮,因此需要从A口读取开关状态到AX后,对AX中的内容取反,即可实现要求。取反的方法可以用notax语句,也可以用异或xor的取反,要取反的位与1异或我这里采用异或。实验48253定时器/计数器接口实验一、实验目的掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。二、实验设备微机实验箱、8086CPU模块、示波器。三、实验内容了解8253计数器的不同工作方式,掌握其初始化控制字对定时/记数效果的影响。四、实验原理介绍本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路五、实验步骤1、实验连线:CS0CS8253OUT08253CLK2OUT2LED1OUT1LED2CLK38253CLK0,CLK38253CLK12、编程调试程序3、全速运行,观察实验结果六、实验提示8253是计算机系统中经常使用的可编程定时器/计数器,其内部有三个相互独立的计数器,分别称为T0,T1,T2。8253有多种工作方式,其中方式3为方波方式。当计数器设好初值后,计数器递减计数,在计数值的前一半输出高电平,后一半输出低电平。实验中,T0、T1的时钟由CLK3提供,其频率为750KHz。程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*4/3*10-6=0.05s)。T2采用OUT0的输出为时钟,则在T2中设置初值为n时,则OUT2输出方波周期为n*0.05s。n的最大值为FFFFH,所以OUT2输出方波最大周期为3276.75s(=54.6分钟)。可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非常有用的。七、实验结果程序全速运行后,LED1按一定周期闪烁(周期理论值为0.2s),LED2在高频脉冲信号东华大学信息学院信控实验中心86实验指导书第12页(约15KHz)影响下,有微弱的光亮,但无明显的周期变化现象。八、实验范例程序框图及源代码(实验程序名:t8253.asm)九、思考题:1、为什么说范例程序运行时LED1闪烁周期的理论值是0.2秒?在范例程序设置LED2的最大闪烁周期是多少?请分析说明。(1)LED1与OUT2连接计数器0的初值设为927CH(37500),它的时钟由CLK3提供,其频率为750KHz,所以OUT0输出的方波周期为(37500*4/3*10^-6=0.05s)。计数器2采用OUT0的输出为时钟,它的频率为(1/0.05)Hz,计数器2设置初值为04H(4)时,所以OUT2输出方波周期为4*0.05s=0.2

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功