微机原理硬件实验报告.docx
- 文档编号:17334651
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:31
- 大小:74.66KB
微机原理硬件实验报告.docx
《微机原理硬件实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理硬件实验报告.docx(31页珍藏版)》请在冰点文库上搜索。
微机原理硬件实验报告
微机原理硬件实验报告
学号:
班级:
************************
同组成员:
林翰文,赵贺
时间:
2015.1
微机硬件实验报告
实验一:
8259中断控制器实验
实验目的
1.掌握8259的工作原理。
2.掌握编写中断服务程序的方法。
3.掌握初始化中断向量的方法。
实验设备
1.微机实验教学系统实验箱
2.8086CPU模块
实验内容
用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。
实验步骤
1.连线
2.编辑程序,编译链接后,调试程序。
3.调试通过后,在中断服务程序内设置断点,运行程序当接收到中断请求后,程序停在中断服务程序内的断点处。
源程序:
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,4A0H;写ICW1
MOVAX,13H
OUTDX,AX
MOVDX,4A2H;写ICW2
MOVAX,80H
OUTDX,AX
MOVAX,01;写ICW4
OUTDX,AX
MOVAX,02H;写OCW1
OUTDX,AX
MOVAX,0
MOVDS,AX
MOVSI,200H
MOVAX,OFFSETHINT
MOVDS:
[SI],AX
ADDSI,2
MOVAX,CS
MOVDS:
[SI],AX
STI
JMP$
HINT:
XORCX,0FFH;中断程序
MOVDX,4B0H
MOVAX,CX
OUTDX,AX
MOVDX,4A0H
MOVAX,20H
OUTDX,AX
IRET
CODEENDS
ENDSTART
运行结果,按一次中断,灯会亮或灭一次。
思考题:
1、将P+连线连接到IR1—IR7任意一个;重新编写程序。
修改理由,假设接到IR1上,即中断向量表发生变化,修改中断程序在中断向量表的位置就可以。
源程序:
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,4A0H
MOVAX,13H
OUTDX,AX
MOVDX,4A2H
MOVAX,80H
OUTDX,AX
MOVAX,03H
OUTDX,AX
MOVAX,0
OUTDX,AX
MOVAX,0
MOVDS,AX
MOVSI,204H
MOVAX,OFFSETHINT
MOVDS:
[SI],AX
ADDSI,2
MOVAX,CS
MOVDS:
[SI],AX
STI
JMP$
HINT:
XORCX,0FFH
MOVDX,4B0H
MOVAX,CX
OUTDX,AX
MOVDX,4A0H
MOVAX,20H
OUTDX,AX
IRET
CODEENDS
ENDSTART
2、设置OCW1,屏蔽某个中断请求,运行程序观察现象。
修改思路:
设置两个中断,分别控制不同的灯,屏蔽其中一个灯,应该观察到一个灯有控制,另一个不变。
源程序:
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,4A0H
MOVAX,13H
OUTDX,AX
MOVDX,4A2H
MOVAX,80H
OUTDX,AX
MOVAX,01
OUTDX,AX
MOVAX,1
OUTDX,AX
MOVAX,0
MOVDS,AX
MOVSI,204H
MOVAX,OFFSETHINT
MOVDS:
[SI],AX
ADDSI,2
MOVAX,CS
MOVDS:
[SI],AX
STI
MOVAX,0
MOVDS,AX
MOVSI,200H
MOVAX,OFFSETHINT1
MOVDS:
[SI],AX
ADDSI,2
MOVAX,CS
MOVDS:
[SI],AX
STI
JMP$
HINT:
XORCX,0FFH
MOVDX,4B0H
MOVAX,CX
OUTDX,AX
MOVDX,4A0H
MOVAX,20H
OUTDX,AX
IRET
HINT1:
XORCX,0FFH
MOVDX,4B0H
MOVAX,CX
OUTDX,AX
MOVDX,4A0H
MOVAX,20H
OUTDX,AX
IRET
CODEENDS
ENDSTART
3.设置OCW2,了解中断结束方式与设置优先权。
设置OCW2是在中断子程序中,OCW2中的RSLEOI为不同的组合代表不同的中断。
001非指定EOI命令(NSEOI),全嵌套方式
011指定EOI命令(SEOI),全嵌套方式,按L2-L0编码复位ISR
101NSEOI命令,优先级自动循环
100自动EOI,设置优先级自动循环
000自动EOI,取消优先级自动循环(固定优先级)
111SEOI命令,按L2-L0编码循环优先级(L2-L0设为最低优先级)
110按L2-L0编码循环优先级(L2-L0设为最低优先级)
HINT:
XORCX,0FFH
MOVDX,4B0H
MOVAX,CX
OUTDX,AX
MOVDX,4A0H;写OCW2
MOVAX,20H
OUTDX,AX
IRET
HINT:
XORCX,0FFH
MOVDX,4B0H
MOVAX,CX
OUTDX,AX
MOVDX,4A0H
MOVAX,60H;改变EOI方式
OUTDX,AX
IRET
实验二:
8255并行接口实验
实验目的
掌握8255的编程原理
实验设备
微机实验教学系统实验箱、8086CPU模块
实验内容
8255的A口作为输入口,与逻辑电平开关相连。
8255的B口作为输出口,与发光二极管相连。
编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
实验步骤
1)连线
2)编辑程序,编译链接后,单步运行,调试程序。
3)调试通过后,全速运行,观察实验结果。
4)撰写实验报告。
源程序:
codesegment
assumecs:
code
org100h
start:
movdx,04a6h
movax,90h
outdx,ax
start1:
movdx,04a0h
inax,dx
movdx,04a2h
outdx,ax
jmpstart1
codeends
endstart
思考
1.将片选线接到CS1—CS5;重新编写程序。
修改思路:
中断片选线不同,需要修改地址
源程序:
codesegment
assumecs:
code
org100h
start:
movdx,04b6h
movax,90h
outdx,ax
start1:
movdx,04b0h
inax,dx
movdx,04b2h
outdx,ax
jmpstart1
codeends
endstart
2.C口4位接LED;4位接开关;重新编写程序。
修改思路:
重新接线,编写程序,使C口低4位输入;高4位作为输出。
源程序:
codesegment
assumecs:
code
org100h
start:
movdx,04b6h
movax,81h
outdx,ax
start1:
movdx,04b4h
inax,dx
movdx,04b4h
movcl,4
shlax,cl;做移位处理
outdx,ax
jmpstart1
codeends
endstart
实验三8253可编程定时/计数器接口实验
实验目的
掌握8253定时/计数器的编程原理。
实验设备
微机实验教学系统实验箱、8086CPU模块。
实验内容
8253计数器0,1,2工作于方波方式,观察其输出。
实验步骤
1)连线。
2)编辑程序,编译链接后,跟踪运行,调试程序。
3)调试通过后,全速运行,观察实验结果。
4)撰写实验报告。
源程序:
CODESEGMENT
ASSUMECS:
CODE
ORG100H
START:
MOVDX,04A6H
MOVAX,36H
OUTDX,AX
MOVDX,04A0H
MOVAX,7CH
OUTDX,AX
MOVAX,92H
OUTDX,AX
MOVDX,04A6H
MOVAX,0B6H
OUTDX,AX
MOVDX,04A4H
MOVAX,4
OUTDX,AX
MOVAX,0
OUTDX,AX
JMP$
CODEENDS
ENDSTART
现象:
发光二极管有规律闪烁,亮与不亮的时间相同,因为产生的是方波。
思考题
1.定时器2计数值改为20H;观察其现象。
改为20H后,频率变快,产生的还是方波。
CODESEGMENT
ASSUMECS:
CODE
ORG100H
START:
MOVDX,04A6H
MOVAX,36H
OUTDX,AX
MOVDX,04A0H
MOVAX,7CH
OUTDX,AX
MOVAX,92H
OUTDX,AX
MOVDX,04A6H
MOVAX,0B6H
OUTDX,AX
MOVDX,04A4H
MOVAX,20h
OUTDX,AX
MOVAX,0
OUTDX,AX
JMP$
CODEENDS
ENDSTART
2.将定时器2改为方式2分频器方式;观察其现象。
现象:
灯亮与不亮的时间不等
CODESEGMENT
ASSUMECS:
CODE
ORG100H
START:
MOVDX,04A6H
MOVAX,36H
OUTDX,AX
MOVDX,04A0H
MOVAX,7CH
OUTDX,AX
MOVAX,92H
OUTDX,AX
MOVDX,04A6H
MOVAX,0B4H
OUTDX,AX
MOVDX,04A4H
MOVAX,20h
OUTDX,AX
MOVAX,0
OUTDX,AX
JMP$
CODEENDS
ENDSTART
3.将GATE2接到开关上;观察其现象。
GATE是控制计时器是否正常计数的,可以通过控制开关,来看计数情况,GATE为高时,正常计数,GATE为低时,计数停止。
4.将GATE2接到PULP+开关上,计数器2改为方式1;观察其现象。
现象:
PULP+开关给出一个高电平,开始计数,但只有一个周期。
不亮的时间长于亮的时间。
5.将GATE2接到PULP+开关上,计数器2改为方式5;观察其现象。
现象:
PULP+开关给出一个高电平,开始计数,但只有一个周期。
但是与上一题恰好相反,亮的时间长于不亮的时间。
实验四8250串行接口实验
实验目的
1.熟悉串行通信的一般原理和8250的工作原理。
2.了解RS—232串行接口标准及连接方法。
3.掌握8250芯片的编程方法。
实验设备
微机实验教学系统实验箱、8086CPU模块。
实验内容
在实验箱与PC机(上位机)之间实现串行通信,主机每下传一个字符,若通讯正确,则下位机返回一个同样的字符;若不正确,则无返回值或者返回值不同。
实验步骤
1.无须接线,内部已经连好。
8250的端口地址为0480H起始的偶地址单元。
2.编写下位机程序,编译链接后,全速运行。
3.退出“8086实验系统”,运行“串口调试助手”上位机程序。
4.将“串口调试助手”程序输入和输出都调整为16进制格式,发送一个16进制数,观察返回的是否是同样一个16进制数。
实验程序:
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,486H
MOVAX,80H
OUTDX,AX
MOVDX,480H
MOVAX,12
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,486H
MOVAX,3
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,48AH
INAX,DX
MOVDX,480H
INAX,DX
LOOP1:
CALLRECV
CALLSEND
JMPLOOP1
SEND:
PUSHAX
MOVDX,48AH
INAX,DX
TESTAX,20H
JNZSEND2
POPAX
JMPSEND
SEND2:
POPAX
MOVDX,480H
OUTDX,AX
RET
RECV:
MOVDX,48AH
INAX,DX
TESTAX,1
JZRECV
MOVDX,480H
INAX,DX
RET
CODEENDS
ENDSTART
实验图像
思考题:
1.连接8255将接收到的16进制数;驱动8个彩灯;观察其现象。
修改程序:
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,04A6H;8255初始化
MOVAX,80H
OUTDX,AX
MOVDX,486H
MOVAX,80H
OUTDX,AX
MOVDX,480H
MOVAX,12
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,486H
MOVAX,3
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,48AH
INAX,DX
MOVDX,480H
INAX,DX
LOOP1:
CALLRECV
CALLSEND
JMPLOOP1
SEND:
PUSHAX
MOVDX,48AH
INAX,DX
TESTAX,20H
JNZSEND2
POPAX
JMPSEND
SEND2:
POPAX
MOVDX,04A2H
OUTDX,AX
RET
RECV:
MOVDX,48AH
INAX,DX
TESTAX,1
JZRECV
MOVDX,480H
INAX,DX
RET
CODEENDS
ENDSTART
实验现象:
通过在PC机上输入的数值,8个彩灯会根据数值的
变化来亮灭,如输入12,则8个灯依次为亮亮亮灭亮亮灭亮。
2.连接8255将开关的状态以16进制数的方式发送到PC机;观察其现象。
实验程序:
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,04A6H;8255初始化
MOVAX,82H
OUTDX,AX
MOVDX,486H
MOVAX,80H
OUTDX,AX
MOVDX,480H
MOVAX,12
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,486H
MOVAX,3
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,48AH
INAX,DX
MOVDX,480H
INAX,DX
LOOP1:
CALLRECV
CALLSEND
JMPLOOP1
SEND:
PUSHAX
MOVDX,48AH
INAX,DX
TESTAX,20H
JNZSEND2
POPAX
JMPSEND
SEND2:
POPAX
MOVDX,480H
OUTDX,AX
RET
RECV:
bMOVDX,04A2H;b口
输入
INAX,DX
RET
CODEENDS
ENDSTART
修改思路:
将8255的输入改为输出
3.连接8255和8253的GATEO;使用“串口调试助手”程序控制8253的振荡。
实验程序:
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,04A6H;8255初始化
MOVAX,82H
OUTDX,AX
MOVDX,04A6H;8253初始化
MOVAX,36H
OUTDX,AX
MOVDX,04A0H
MOVAX,7CH
OUTDX,AX
MOVAX,92H
OUTDX,AX
MOVDX,486H
MOVAX,80H
OUTDX,AX
MOVDX,480H
MOVAX,12
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,486H
MOVAX,3
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,48AH
INAX,DX
MOVDX,480H
INAX,DX
LOOP1:
CALLRECV
CALLSEND
JMPLOOP1
SEND:
PUSHAX
MOVDX,48AH
INAX,DX
TESTAX,20H
JNZSEND2
POPAX
JMPSEND
SEND2:
POPAX
MOVDX,480H
OUTDX,AX
RET
RECV:
MOVDX,04A2H;b口输入
INAX,DX
RET
CODEENDS
ENDSTART
实验五:
A/D0809实验
实验目的
1.掌握A/D转换的基本原理。
2.掌握ADC0809的使用方法。
实验设备
微机实验教学系统实验箱、8086CPU模块。
实验内容
按查询方式采样一路A/D转换数据,用简单输入口74LS244查询
EOC信号。
每循环一次0通道采样一次。
0通道的采样结果放入AX中,AL有效。
实验步骤
1.连线
2.编先程序并调试。
3.调试通过后设置断点全速运行,并观察实验结果。
4.撰写实验报告。
连线
1.将可变电位器AN0与ADC0809的ADIN0相连;
2.将CS0与ADC0809的片选CS0809端相连;
3.将ADC0809的EOC与74LS244的IN0相连;
4.将CS1与74LS244的片选CS244端相连。
实验程序:
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,4A0H
CALLGETAD
JMPSTART
DELAY:
MOVBP,1000H
DELAY1:
DECBP
CMPBP,0
JNEDELAY1
RET
GETAD:
PUSHDX
MOVAX,34H
OUTDX,AX
CALLDELAY
MOVDX,4B0H
WAIT1:
INAX,DX
TESTAX,1
JZWAIT1
POPDX
INAX,DX
MOVAH,0
RET
CODEENDS
ENDSTART
实验图像
思考题
1.连接其它通道,修改程序。
修改思路:
若改到通道2上,只修改地址。
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,4A2H
CALLGETAD
JMPSTART
DELAY:
MOVBP,1000H
DELAY1:
DECBP
CMPBP,0
JNEDELAY1
RET
GETAD:
PUSHDX
MOVAX,34H
OUTDX,AX
CALLDELAY
MOVDX,4B0H
WAIT1:
INAX,DX
TESTAX,1
JZWAIT1
POPDX
INAX,DX
MOVAH,0
RET
CODEENDS
ENDSTART
2.将采到的数据发送到8250上;在PC机观察数据。
修改思路:
先将8250初始化,将数据输出到8250上,再输出。
修改程序:
CODESEGMENTPUBLIC
ASSUMECS:
CODE
ORG100H
START:
MOVDX,486H
MOVAX,80H
OUTDX,AX
MOVDX,480H
MOVAX,12
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,486H
MOVAX,3
OUTDX,AX
MOVDX,482H
MOVAX,0
OUTDX,AX
MOVDX,48AH
INAX,DX
MOVDX,480H
INAX,DX
MOVDX,4A0H;AD
CALLGETAD
JMPSTART
DELAY:
MOVBP,1000H
DELAY1:
DECBP
CMPBP,0
JNEDELAY1
RET
GETAD:
PUSHDX
MOVAX,34H
OUTDX,AX
CALLDELAY
MOVDX,4B0H
WAIT1:
INAX,DX
TESTAX,1
JZWAIT1
POPDX
INAX,DX
MOVAH,0
CALLSEND
RET
SEND:
PUSHAX
MOVDX,48AH
INAX,DX
TESTAX,20H
JNZSEND2
POPAX
JMPSEND
SEND2:
POPAX
MOVDX,480H
OUTDX,AX
RET
CODEENDS
ENDSTART
实验截图:
实验中遇到的问题及解决方法
实验中,我们对ICW和OCW的地址没有弄明白,老师给我们讲解了奇地址和偶地址来区分,并告诉我们每个ICW和OCW有自己的特征的值用以表示。
另外,我们开始打开串口调试的时候,它并不工作,后来发现要先把8086实验系统的程序输好后要关闭,串口调试才能工作。
心得体会与建议
这是我们所做的第一个微机原理硬件实验,因为是第一次使用DOS的环境下编写代码并完成实验,在实验中也碰上了不少麻烦。
通过实验,让我
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 硬件 实验 报告