微机原理实验报告硬件.docx
- 文档编号:17743781
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:13
- 大小:21.17KB
微机原理实验报告硬件.docx
《微机原理实验报告硬件.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告硬件.docx(13页珍藏版)》请在冰豆网上搜索。
微机原理实验报告硬件
微机原理实验报告硬件实验部分
东华大学信息学院刘冷君130940507
2015.12
微机原理实验报告硬件实验部分
东华大学信息学院何冰月130940508
2015.12
实验1存储器读写实验
一、实验目的
1.掌握PC机外存扩展的方法。
2.熟悉6264芯片的接口方法。
3.掌握8086十六位数据存储的方法。
二、实验设备
微机实验箱、8086CPU模块。
三、实验内容
1、单步执行到“intram”标号的语句时,ds寄存器的数据是什么?
采用断点方式运行时执行到第一个断点处,2000H~202FH内存单元的数据是什么?
执行到第二个断点处,2000H~200FH内存单元的数据是什么?
并根据观察结果和对源程序的判读简述源程序的运行效果。
2、修改程序,实现从2000H到200FH单元依次赋值00H~0FH的功能。
四、实验原理介绍
本实验用到存储器电路
五、实验步骤和要求
1、实验接线:
本实验无需接线。
2、编写调试程序
3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。
本实验的主要目的是学会用使用工具软件,掌握用单步执行和断点方式运行程序,观察寄存器和内存中的数据变化等程序调试的手段。
六、思考题解答
单步执行到“intram”标号的语句时,ds寄存器的数据是什么?
ds为0100
采用断点方式运行时执行到第一个断点处,2000H~202FH内存单元的数据是什么?
执行到第二个断点处,2000H~200FH内存单元的数据是什么?
段地址为0100H左移四位后加上偏移地址1000H为RAM的地址02000H,先通过intram循环全部置零。
再次循环时,AX中为55AAH,所以低八位为AA,高八位为55,之后SI的增长步长为一字节,指到下一字节后存入AX的高八位为55,然后再循环,所以最后内存中的结果如图。
七、实验程序框图及源代码开始
初始化DS,
初始化SI
空操作
CX=0?
循环次数(CX
=100H
目标单元置数
结束Y
N
codesegment
assumecs:
code
org0100h
start:
movax,0100h
movds,ax;数据段地址
moves,ax
movsi,1000h;偏移地址
movcx,0100h;循环次数
moval,0
intram:
mov[si],al
incsi
loopintram
movsi,1000h;设置断点处
movcx,10h
fil:
mov[si],al;RAM区循环置数
incsi
addal,1
loopfil
nop;设置断点处
jmpstart
codeends
endstart
实验2简单I/O口扩展实验
一、实验目的
1、熟悉74LS273,74LS244的应用接口方法。
2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。
二、实验设备
微机实验箱、8086CPU模块。
三、实验内容
逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。
将74LS244的片选信号CS244改接CS2,将74LS273的片选信号CS273改接CS3,修改程序实现与范例程序相同的功能。
四、实验原理介绍
本实验用到两部分电路:
开关量输入输出电路,简单I/O口扩展电路。
五、实验步骤
1、实验接线:
(↔表示相互连接
CS2↔CS244;CS3↔CS273;平推开关的输出K1~K8↔IN0~IN7(对应连接;
O0~O7↔LED1~LED8。
2、编辑程序,单步运行,调试程序
3、调试通过后,全速运行程序,观看实验结果。
4、编写实验报告。
六、实验程序框图及源代码
开始
初始化
读输入至AL
输出AL
结束
assumecs:
code
codesegmentpublic
org100h
start:
movdx,04c0h;74LS244地址
inal,dx;读输入开关量
movdx,04d0h;74LS273地址
outdx,al;输出至LED
jmpstart
codeends
endstart
原CS244接CS0,CS0端口地址04a0h,CS273接CS1,CS1端口地址为04a1h。
只需把接线换掉后,把对应的端口地址改正后即可。
实验38255并行口实验
一、实验目的
掌握8255A的编程原理。
二、实验设备
微机实验箱、8086CPU模块。
三、实验内容
8255A的A口作为输入口,与逻辑电平开关相连。
8255A的B口作为输出口,与发光二极管相连。
编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
修改接线CS2CS8255,并要求开关置“H”(下位置时对应LED亮,修改程序实现相应功能。
四、实验原理介绍
本实验用到两部分电路:
开关量输入输出电路和8255可编程并口电路。
五、实验步骤
1、实验接线
CS2↔CS8255;PA0~PA7↔平推开关的输出K1~K8;PB0~PB7↔发光二极管的输入LED1~LED8。
2、编程并全速或单步运行。
3、全速运行时拨动开关,观察发光二极管的变化。
当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。
六、实验程序框图及源代码
开始
设置8255工作方式
读A口
输出至B口
结束
assumecs:
code
codesegmentpublic
org100h
start:
movdx,04a6h;控制寄存器地址
movax,90h;设置为A口输入,B口输出
outdx,ax
start1:
movdx,04a0h;A口地址
inax,dx
xorax,0ffffh;输入
movdx,04a2h;B口地址
outdx,ax;输出
jmpstart1
codeends
endstart
从A口读取开关状态AX后,对AX中的内容取反,即可实现要求。
取反可用not语句,也可以用异或xor的取反,要取反的位与1异或。
实验48253定时器/计数器接口实验
一、实验目的
掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。
二、实验设备
微机实验箱、8086CPU模块、示波器。
三、实验内容
了解8253计数器的不同工作方式,掌握其初始化控制字对定时/记数效果的影响。
修改片选信号接线使CS1和CS8253连接,并要求LED1的闪烁周期变为4秒(亮2秒,灭2秒,修改程序实现功能。
四、实验原理介绍
本实验用到两部分电路:
脉冲产生电路、8253定时器/计数器电路
五、实验步骤与要求
1、实验连线:
CS1↔CS8253OUT0↔8253CLK2OUT2↔LED1OUT1↔LED2
CLK3↔8253CLK0,CLK3↔8253CLK1
2、编程调试程序
3、全速运行,观察实验结果
六、思考题解答
1、为什么说范例程序运行时LED1闪烁周期的理论值是0.2秒?
在范例程序设置LED2的最大闪烁周期是多少?
请分析说明。
分析:
①实验中,T0、T1的时钟由CLK3提供,其频率为750KHz,程序中,T0的初值设为927CH(37500十进制,则OUT0输出的方波周期为(37500*4/3*10-6=0.05s。
T2采用OUT0的输出为时钟,则在T2中设置初值为n时,则OUT2输出方波周期为n*0.05s。
在范例中,计数器2设置初值为04H(4时,所以OUT2输出方波周期为4*0.05=0.2s.
②计数器1的初值为32H(50,它的时钟也由CLK3提供,频率为750KHz,所以OUT1输出的周期为50*4/3*10-6=6.7*10(-5s,即LED2的闪烁周期。
所以实验结果中,LED2有微弱的光,无明显周期变化。
2、修改片选信号接线使CS1和CS8253连接,并要求LED1的闪烁周期变为4秒(亮2秒,灭2秒,修改程序实现功能。
分析:
要使led1的闪烁周期变为4秒,只要将计数器2的计数改为4/0.05=80就可以,但是计算机中要以16进制体现,80的16进制是50H,所以计数器2的计数值是50H。
七、实验程序框图及源代码
1.思考题2程序框图
开始
初始化DS,
初始化SI
循环次数(CX
=100H
目标单元置数
N
CX=0?
Y
空操作
结束
2.思考题源代码
assumecs:
code
codesegmentpublic
org100h
start:
movdx,04b6h;控制寄存器
movax,36h;计数器0,方式3
outdx,ax
movdx,04b0h
movax,7Ch
outdx,ax
movax,92h
outdx,ax;计数值927Ch
movdx,04b6h
movax,76h;计数器1,方式3
outdx,ax
movdx,04b2h
movax,32h;计数值32h
outdx,ax
movax,0
outdx,ax
movdx,04b6h
movax,0b6h;计数器2,方式3
outdx,ax
movdx,04b4h
movax,50h;计数值50h
outdx,ax
movax,0
outdx,ax
next:
nop
jmpnext
codeends
endstart
程序运行情况:
程序全速运行后,LED1按一定周期闪烁(周期理论值为0.2s,LED2在高频
脉冲信号(约15KHz影响下,有微弱的光亮,但无明显的周期变化现象。
八、调试过程
在范例完成之前并不知道范例中的0.02s是怎么来的,在详细阅读了实验提示后我们发现
T0、T1的时钟由CLK3提供,其频率为750KHz,程序中,T0的初值设为927CH(37500十进制,则OUT0输出的方波周期为(37500*4/3*10-6=0.05s。
T2采用OUT0的输出为时钟,则
在T2中设置初值为n时,则OUT2输出方波周期为n*0.05s。
在范例中,计数器2设置初值
为04H(4时,所以OUT2输出方波周期为4*0.05=0.2s,在源程序中计数值显示的是04h,要让LED1的闪烁周期变为4秒,则有(4/0.05=80=50H所以此时计数器2的计数值为50H。
在实验过程中,整个过程还是非常顺利的。
实验58259中断控制器实验
一、实验目的
1、掌握8259A的工作原理。
2、掌握编写中断服务程序方法。
3、掌握初始化中断向量的方法。
二、实验设备
微机实验箱、8086CPU模块。
三、实验内容
了解中断处理的原理,掌握利用中断控制器进行中断申请和中断操作的方法。
根据思考题2修改源程序,使实验箱右下角“pules”键时LED1-LED4全亮。
四、实验原理介绍
本实验用到三部分电路:
电平开关电路、简单I/O口扩展电路和8259中断控制器电路。
五、实验步骤
1、实验接线
CS0↔CS8259CS3↔CS273O0~O3↔LED1~LED4K1~K3↔IR0~IR2
INT«INT(8086CPU板2、编译调试程序INTA«INTA(8086CPU板)IR3连接P+3、全速运行程序,拨动某一电平开关,观察LED的亮灭情况。
六、思考题解答1、说明源代码8259初始化所设置的所有中断控制字的值和含义(按位说明)。
①movdx,04a0hmovax,13houtdx,ax写ICW1,13h=D7D6D5D4D3D2D1D000010011高四位0001固定,D3=0表示边沿触发,D2=0表示地址间距为8,D1为1表示单片8259A,D0=1表示需要ICW4.②movdx,04a2hmovax,80houtdx,ax写ICW2,80H=D7D6D5D4D3D2D1D010000000中断类型吗高五位=10000,低三位000表示IR0脚中断③movax,01houtdx,ax写ICW4,O1H=D7D6D5D4D3D2D1D000000001高三位D7D6D5=000固定,D4=0表示普通全嵌套方式,D3D2=00表示非缓冲方式,D1=0表示正常EOI,D0=1表示8086或8088模式④movax,00houtdx,ax写OCW1,00H=D7D6D5D4D3D2D1D000000000D7~D0全设为0表示复位屏蔽2、修改接线IR3«P+(实验箱右下角),并修改源程序,使按实验箱右下角“Pules”键时LED1~LED4全亮。
七、实验程序框图及源代码1.思考题2程序框图
开始中断服务流程关中断8259初始化开中断AX置数YAX=00H?
开中断NAX输出中断返回延时2.思考题源代码assumecs:
codecodesegmentpublicorg100hstart:
movcx,0start1:
climovdx,04a0hmovax,13houtdx,ax;ICW1,ICW4NEEDEDmovdx,04a2hmovax,80houtdx,ax;ICW2中断类型80hmovax,01h;01outdx,ax;ICW4movax,00houtdx,ax;OCW1,开放所有中断nop;以上为8259初始化movax,0movds,axmovdi,200h;初始化中断向量表movax,offsetint0movds:
[di],axadddi,2movds:
[di],100hadddi,2movax,offsetint1movds:
[di],axadddi,2
movds:
[di],100hadddi,2movax,offsetint2movds:
[di],axadddi,2movds:
[di],100hadddi,2movax,offsetint3movds:
[di],axadddi,2;上述程序为芯片8259的初始化程序movds:
[di],100h;建议不熟练者不要修改。
main:
movax,0sti;开中断。
waiting:
cmpax,0hjewaiting;没发生中断,则等待nopnopmovdx,04d0houtdx,ax;对应LED灯亮movcx,0delay:
loopdelay;数字滤波,按键去抖jmpstart1int0:
cli;关中断。
以下类推。
nop;此两行为IR0的中断服务程序movax,0feh;Led1可产生中断。
iret;中断返回,以下类推。
int1:
clinop;此两行为IR1的中断服务程序,movax,0fdh;Led2可产生中断。
iretint2:
clinop;此两行为IR2的中断服务程序,movax,0fbh;Led3可产生中断iretint3:
clinop;此两行为IR3的中断服务程序,movax,0f0h;四盏灯同时产生中断iretcodeendsendstart八、调试过程连好线之后我们运行程序并没有按照要求那样按PULES时灯亮,不按的时候灯也是亮的,后来我们发现是开关在程序运行之前直接是打上去的,而我们之后不知道要采取什么措施才能使灯处于预备状态,在询问了同学之后我们知道在程序运行之前开关都
在上面,程序运行之后要把开关拉到下面,其中一个再打上去,按pulse键,灯全亮。
还有一个是关于程序的修改;原AX的内容为0f7H,最低四位为7(0111),从左到右依次表示LED4,LED3,LED2,LED1,所以原代码IR3只接受LED4对应的开关K4产生的中断。
将其改为0(0000)后,表示四盏灯同时产生中断,所以同时亮
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 报告 硬件