




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、东华大学信息学院信控实验中心实验1 存储器读写实验一、实验目的 1.掌握PC机外存扩展的方法。 2.熟悉6264芯片的接口方法。 3.掌握8086十六位数据存储的方法 。二、实验设备 微机实验箱、8086CPU模块。三、实验内容 向02000020FFH单元的偶地址送入AAH,奇地址送入55H。四、实验原理介绍本实验用到存储器电路五、实验步骤和要求1、实验接线:本实验无需接线。2、编写调试程序3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。本实验的主要目的是学会用使用工具软件,掌握用单步执行和断点方式运行程序,观察寄存器和内存中的数据变化等程序调试的手段。六、实验提
2、示1、RAM区的地址为02000H,编程时可将段地址设为0100H,则偏移地址为1000H。 2、如果按字节进行存储,则AL为55H或AAH;如果按字进行存储,则AX应为55AAH。3、6264、62256等是计算机系统扩展中经常用到的随机存储器芯片(RAM),主要用作数据存储器扩展。本实验所进行的内存置数在程序中经常用到。计算机系统运行中会频繁地进行内存与外设或者内存与内存之间的数据传输,所以本实验虽然简单但对理解系统程序的运行很关键,望学习和实验时认真对待。七、实验范例程序框图及源代码(实验程序名:RAM.ASM)八、思考题1、 单步执行到“intram”标号的语句时,ds寄存器的数据是什
3、么?采用断点方式运行时执行到第一个断点处,2000H202FH内存单元的数据是什么?执行到第二个断点处,2000H200FH内存单元的数据是什么?并根据观察结果和对源程序的判读简述源程序的运行效果。如图,单步执行到“intram”标号的语句时ds寄存器的数据为0100采用断点方式运行时执行到第一个断点处,2000H202FH内存单元的数据如图所示。由源程序知道第一个断点前的程序是为了把数据段内存单元清0,符合上图结果其实清零在这里可以不用,直接进行后面的置数执行到第二个断点处,2000H200FH内存单元的数据如图所示。由源程序可知程序的运行结果为向02000020FFH单元的偶地址送入AAH
4、,奇地址送入55H,符合上图的结果2、 修改程序,实现从2000H到200FH单元依次赋值00H0FH的功能。设计思想:通过把AL值赋给【si】,然后使AL,si同时自加1,循环16次即可程序流程图:初始化DS初始化SI开始循环次数CX=01hAL赋初值0h目标单元置数AL=AL+1SI=SI+1CX=0?空操作NY结束代码:code segment assume cs:code org 0100h ; 在代码段0100h偏移地址处开始存放代码start: mov ax,0100h; mov ds,ax; 数据段地址 mov es,ax mov si,1000h;偏移地址 mov cx,010
5、0h;循环次数 mov al,0; al的值置0intram: mov si,al ;0赋给si inc si ;si加1 loop intram; 使得0100:1000开始处的256个单元中的数据清0 mov si,1000h; 设置断点处 mov cx,0010h; 设置循环次数为16fil: mov si,al; RAM区循环置数 inc si ;地址指针加1 inc al ; al中的值每执行一次循环加1,初始值为00,加到0F loop fil nop;设置断点处 jmp startcode ends end start结果:九、实验中的问题及其解决方法问题:(1)范例程序中按题目
6、要求设置两个断点时,全速运行时只能运行第一个断点处的程序,而不知道怎么运行下一个断点处的程序,导致出不来结果(2)做思考题时,运行所写程序时发现内存空间中上一个题目的运行结果还在里面解决方法:(1)针对问题(1),当执行完第一个断点执行完毕应该取消该断点,这样在全速运行时可以运行到下一个断点,就可以观察到程序运行结果了。(2)针对问题(2),发现在初始化程序时,自己把所有的循环初值都设成了0010H(16),导致只有前16个内存单元清零,而后面的内存单元没有初始化,保留了上次运行的程序运行结果。所以将初始化(清零)的循环初值设成0100H,这样就可以初始化256个内存单元了,把上次的结果初始化
7、为0。而后一个赋值循环的循环次数仍然为0010十、体会这个题目比较简单,程序很简单,主要是把循环值设置对。但是由于对软件使用的不熟悉,因此导致了一些问题。在调试运行上还是花了一些时间。通过发现问题,解决问题的过程,使我对这个软件的使用更加熟练,为后面的程序设计中打下良好的基础。实验2 简单I/O口扩展实验一、实验目的 1、 熟悉74LS273,74LS244的应用接口方法。 2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。二、实验设备 微机实验箱、8086CPU模块。三、实验内容 逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示
8、。四、实验原理介绍本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。五、实验步骤1、实验接线:(«表示相互连接)CS0 «CS244; CS1«CS273; 平推开关的输出K1K8 « IN0IN7(对应连接); O0O7«LED1LED8。2、编辑程序,单步运行,调试程序3、调试通过后,全速运行程序,观看实验结果。4、编写实验报告。六、实验提示74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。七、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L
9、位置,则对应的LED2应该点亮。八、实验范例程序框图(实验程序名: T244273.ASM)九、程序源代码清单十、思考题:将74LS244的片选信号CS244改接CS2,将74LS273的片选信号CS273改接CS3,修改程序实现与范例程序相同的功能。程序流程图:代码:assume cs:code code segment public org 100hstart: mov dx,04c0h ;74LS244地址 in al,dx ;读输入开关量 mov dx,04d0h ;74LS273地址 out dx,al ;输出至LED jmp start code ends end start分析:
10、原CS244接CS0,CS0端口地址04a0h,CS273接CS1,CS1端口地址为04b0h。只需把接线换掉后,把对应的端口地址改正即可.即CS2的地址为04c0h,CS3的地址为04d0h十一、遇到的问题该实验在调试的过程中,没有遇到问题,只是第一次的那台仪器坏了,发现灯都不亮,之后换了一台仪器,连线,编译,运行,就得到正确结果了。实验3 8255并行口实验一、实验目的掌握8255A的编程原理。二、实验设备 微机实验箱、8086CPU模块。三、实验内容 8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管
11、上显示出来。四、实验原理介绍本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。五、实验步骤1、实验接线CS0«CS8255; PA0PA7« 平推开关的输出K1K8; PB0PB7«发光二极管的输入LED1LED8。2、编程并全速或单步运行。3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。六、实验提示8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。实验中,82
12、55A工作于基本输入输出方式(方式0)。七、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。八、实验范例程序框图及源代码(实验程序名:t8255.asm)九、思考题:1、修改接线CS2«CS8255,并要求开关置“H”(下)位置时对应LED亮,修改程序实现相应功能。程序流程图:开始设置8255工作方式读A口AX取反输出到B口结束代码:assume cs:code code segment public org 100hstart: mov dx,04c6h;控制寄存器地址(改为04c6h) mov ax,90h;设
13、置为A口输入,B口输出 out dx,axstart1: mov dx,04c0h;A口地址(改为04c0h) in ax,dx xor ax,0ffffh; 取反输入 mov dx,04c2h;B口地址(改为04c2h) out dx,ax;输出 jmp start1code endsend start说明:由于换成CS2和CS8255相连,因此三个地址应分别修改为:04c6h,04c0h,04c2h由于要求开关置下时灯亮,因此需要从A口读取开关状态到AX后,对AX中的内容取反,即可实现要求。 取反的方法可以用not ax语句,也可以用异或xor的取反,要取反的位与1异或我这里采用
14、异或。实验4 8253定时器/计数器接口实验一、实验目的掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。二、实验设备 微机实验箱、8086CPU模块、示波器。三、实验内容 了解8253计数器的不同工作方式,掌握其初始化控制字对定时/记数效果的影响。四、实验原理介绍本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路五、实验步骤1、实验连线:CS0«CS8253 OUT0«8253CLK2 OUT2«LED1 OUT1«LED2CLK3«8253CLK0,CLK3«8253CLK12、编程调试程序3、全速运行,
15、观察实验结果六、实验提示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输出方波最大周期为
16、3276.75s(=54.6分钟)。可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非常有用的。七、实验结果程序全速运行后,LED1按一定周期闪烁(周期理论值为0.2s),LED2在高频脉冲信号(约15KHz)影响下,有微弱的光亮,但无明显的周期变化现象。八、实验范例程序框图及源代码(实验程序名:t8253.asm)九、思考题:1、为什么说范例程序运行时LED1闪烁周期的理论值是0.2秒?在范例程序设置LED2的最大闪烁周期是多少?请分析说明。(1)LED1 与OUT2连接 计数器0的初值设为927CH(37500),它的时钟由CLK3提供,其频率为
17、750KHz,所以OUT0输出的方波周期为(37500*4/3*10-6=0.05s)。 计数器2采用OUT0的输出为时钟,它的频率为(1/0.05)Hz,计数器2设置初值为04H(4)时,所以OUT2输出方波周期为4*0.05s=0.2s 所以LED1的闪烁周期为0.2s (2) LED2与OUT1连接 所LED2的闪烁周期即为计数器1的周期计数器1的初值为32H(50),它的时钟也由CLK3提供,频率为750KHz,所以OUT1输出的周期为(50*4/3*10-6=6.7*10(-5)s),即LED2的闪烁周期。 由于周期过小,人
18、眼无法识别所以实验结果中,LED2有微弱变化,但无明显闪烁。2、修改片选信号接线使CS1和CS8253连接,并要求LED1的闪烁周期变为4秒(亮2秒,灭2秒),修改程序实现功能。程序流程图:开始写T0方式控制字写T0计数初值写T1方式控制字写T1计数初值写T2方式控制字写T2计数初值空操作结束求设置的计数初值:4/0.05=80=50h代码及注释:assume cs:codecode segment publicorg 100h ; 在代码段0100h偏移地址处开始存放代码start:mov dx,04b6h;控制寄存器mov ax,36h;计数器0,方式3out dx,axmov dx,04
19、b0h ;计数器0的地址mov ax,7Ch ;计数初值的低位为7Chout dx,ax mov ax,92h ;计数初值的高位为92hout dx,ax;计数值927Chmov dx,04b6h ;控制寄存器地址mov ax,76h;计数器1,方式3out dx,axmov dx,04b2h ;计数器1的地址 mov ax,32h ;计数初值的低位为32h out dx,ax mov ax,0;计数初值的高位为00h out dx,ax ;计数值32h mov dx,04b6h mov ax,0b6h;计数器2,方式3 out dx,ax mov dx,04b4h ;计数器2的地址 mov
20、ax,50h ; 计数值低位为50h out dx,ax mov ax,0;计数值高位为0 out dx,ax ;计数值50hnext:nopjmpnext ;让程序一直循环执行code ends end start分析:将所有CS0的端口地址(04a_)都改为CS1的端口地址(04b_)。再将计数器2的计数初值改为50H(4/0.05=80=50H)遇到的问题:第一次连线调试的时候,发现灯闪烁得频率很快,仔细检查程序,发现初始计数值设计小了,通过公式计算,得到计数值需要设置为50H,才使得周期为4s。重新调试,得到了正确结果实验58259中断控制器实验一、实验目的1、掌握8259A的工作原理
21、。2、掌握编写中断服务程序方法。3、掌握初始化中断向量的方法。二、实验设备 微机实验箱、8086CPU模块。三、实验内容了解中断处理的原理,掌握利用中断控制器进行中断申请和中断操作的方法。四、实验原理介绍本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。五、实验步骤1、实验接线CS0 «CS8259 CS3 «CS273 O0O3«LED1LED4 K1K4«IR0IR3 INT«INT( 8086CPU板) INTA«INTA(8086CPU板)2、编译调试程序3、全速运行程序,拨动某一电平开关,观察
22、LED的亮灭情况。六、实验提示1、 8259的使用说明请详细阅读教科书。2、8086的中断系统是向量中断方式。内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量(中断入口地址)。不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。3、中断类型由8259通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序。请仔细研读8259的工作时序。4、中断类型的高5位由8259寄存器ICW2决定,低3位由中断源IRx的编码自动填入。IR0IR7的编码分别为000,001,010,
23、011,100,101,110,111。七、实验结果全速运行程序,由上往下拨动开关时,相应位置的LED点亮,其余LED全灭。八、实验范例程序框图及源代码(实验程序名:t8259.asm) 九、思考题:1、 说明源代码8259初始化所设置的所有中断控制字的值和含义(按位说明)。(1)mov dx,04a0hmov ax,13hout dx,ax ICW1(初始化字),写入的值为13h,化为二进制后:00010011。含义:边沿触发,地址间距为8,单片8259A,需要ICW4。 (2)mov dx,04a2hmov ax,80hout
24、160;dx,ax ICW2(中断类型码字),写入的值为80h,化为二进制后:10000000。含义:说明对应于IR0IR7的中断类型码为80h87h。(3)mov ax,01hout dx,ax ICW4(中断结束方式字),写入的值为01h,化为二进制后:00000001。含义:普通全嵌套方式,非缓冲方式,正常EOI,8086/8088模式。 (4)mov ax,00hout dx,ax OCW1(屏蔽控制字),写入的值为00h,即00000000b。含义:全部为复位屏蔽,开放所有中断。2、 修改接线IR3«P+
25、(实验箱右下角),并修改源程序,使按实验箱右下角“Pules”键时LED1LED4全亮。程序流程图:开始8259初始化开中断AX=00H?YAX输出N延时中断服务流程关中断AX置数开中断中断返回代码及注释:assume cs:code code segment public org 100h; 在代码段0100h偏移地址处开始存放代码start:mov cx,0start1: cli ;关中断,防止有些硬件中断对程序的干扰mov dx,04a0h ; 写入ICW1的端口地址为04a0h mov ax,13h ; ICW1为13H,化为二进制为00010011 out dx,ax;ICW1, I
26、CW4需要 movdx,04a2h ;写入ICW2的端口地址为04a2h mov ax,80h ; ICW2为80H,化为二进制为10000000out dx,ax ;ICW2中断类型80h,IR0IR7的中断类型码为80h87hmov ax,01h; ICW4为01H,化为二进制为00000001out dx,ax;ICW4;普通全嵌套方式,非缓冲方式,正常EOI,8086/8088模式mov ax,00hout dx,ax ;OCW1, 开放所有中断nop ;以上为8259初始化 mov ax,0mov ds,axmov di,200h ;初始化中断向量表mov ax,offset int
27、0 ;IR0的中断服务程序入口地址放入中断向量表中mov ds:di,ax ;先放IPadd di,2mov ds:di,100h ;再放CS值adddi,2mov ax,offset int1 ; IR1的中断服务程序入口地址放入中断向量表中mov ds:di,axadd di,2mov ds:di,100hadddi,2mov ax,offset int2; IR2的中断服务程序入口地址放入中断向量表中mov ds:di,axadd di,2mov ds:di,100hadddi,2mov ax,offset int3 ; IR3的中断服务程序入口地址放入中断向量表中mov ds:di,a
28、xadd di,2 ;上述程序为芯片8259的初始化程序 mov ds:di,100h ;建议不熟练者不要修改。main: movax,0sti ;开中断。waiting:cmp ax,0h je waiting ;没发生中断,则等待nopnopmov dx,04d0houtdx,ax ;对应LED灯亮movcx,0delay:loopdelay ;数字滤波,按键去抖jmp start1int0: cli ;关中断。以下类推。nop ;此两行为IR0的中断服务程序movax,0feh ;用户可修改。iret ;中断返回,以下类推。int1:clinop ;此两行为IR1的中断服务程序,mova
29、x,0fdh ;用户可修改。iretint2:clinop ;此两行为IR2的中断服务程序,movax,0fbh ;用户可修改。iretint3:clinop ;此两行为IR3的中断服务程序,movax,0f0h ;用户可修改。iretcode endsend start分析:原AX的内容为0f7H,最低四位为7(0111),从左到右依次表示LED4,LED3,LED2,LED1,所以原代码IR3只接受LED4对应的开关K4产生的中断。 将其改为0(0000)后,表示四盏灯同时产生中断,所以同时亮。遇到的问题:一开始没有弄清楚中断服务程序的工作原理,导致不知从何下手去修改程序,通过查
30、阅微机课本有关中断的内容,再对比程序,发现,只需要改变IR3中断服务程序,把IR3全部置0,就代表四盏灯同时中断,即同时亮实验总结经过三周的微机硬件实验,我学到了很多东西,对于书本上的知识也有了更深层次的认识,通过第一个给存储单元赋值的操作,我明白了程序是如何运行的,以及各个寄存器及存储器内容是如何变化的。这使得我用汇编语言编程的能力得到提升,同时也明白了汇编语言虽然是低级语言,但却是最接近计算机核心结构的,因此汇编语言更易被计算机识别。后面几个硬件实验,不仅锻炼了我的动手操作能力以及程序调试能力,更关键的是明白了几个芯片8255以及计数器8253的工作原理,对中断有了更深的理解,比如中断控制
31、字是如何设定的等等。总之这次硬件实验需要理论与实践的结合,在知识点理解的基础上,通过实验来加深理解,这样使得知识更加形象生动。当然还要感谢老师和同学们在我遇到困难时所给予的帮助,让我顺利的完成这次硬件实验。二、综合设计实验部分一、实验设备微机实验箱、8086CPU模块。二、实验要求红绿灯的定时切换(每10秒切换一次)设置灯光测试开关K1,当K1打开(高电平)时,LED1LED4全亮,关闭时恢复正常切换。三、实验步骤1、实验接线:CS0«8255CS;CS1«CS8253;CLK3«8253CLK0;OUT0«8253CLK2OUT2«PA0,PA1,PA2,PA3;PB0«LED1;PB1«LED4;PB2«LED2;PB3«LED3;PA4-K1 2、编辑程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 寒暑假教学设计-2025-2026学年中职基础课-拓展模块一 上册-北师大版(2021)-(数学)-51
- 教师招聘之《小学教师招聘》模拟题库【夺冠】附答案详解
- 智研咨询-2025年中国宠物牵引绳行业市场规模、行业集中度及发展前景研究报告
- 2025年工业污染场地修复技术实施与成本效益动态调整方案报告
- 门窗工程技术方案(3篇)
- 科马卫浴工程方案(3篇)
- 酒店电视工程方案合同(3篇)
- 2025年无人零售行业市场前景与风险控制研究报告
- 工业污染场地修复2025年技术方案成本效益分析及环境保护产业政策实施效果分析报告
- 2025年工业互联网平台网络流量整形技术在智能电网中的应用报告
- 重庆市南开中学高2026届高三第一次质量检测+数学答案
- 2025年全国保密教育知识竞赛题库附答案
- GJB135B-2021合成航空发动机润滑油规范
- 商业航天行业深度报告:政策技术需求共振商业航天赛道加速
- 小学科学新教科版二年级上册第一单元 造房子教案(共6课)(2025秋)
- 营造林技能竞赛试题及答案
- 一氧化碳中毒急救PPT课件(PPT 43页)
- JIS G4305-2021 冷轧不锈钢板材、薄板材和带材
- 复旦大学大学物理热学课件Heat-Ch1-partI
- (完整版)高中物理光学知识点总结
- 多维阅读第13级—A Lion's Story 重返自然
评论
0/150
提交评论