合肥工业大学电气与自动化专业实验中心 80X86微机原理及接口技术实验教程 思考题部分参考答案5.docx
《合肥工业大学电气与自动化专业实验中心 80X86微机原理及接口技术实验教程 思考题部分参考答案5.docx》由会员分享,可在线阅读,更多相关《合肥工业大学电气与自动化专业实验中心 80X86微机原理及接口技术实验教程 思考题部分参考答案5.docx(44页珍藏版)》请在冰豆网上搜索。
合肥工业大学电气与自动化专业实验中心80X86微机原理及接口技术实验教程思考题部分参考答案5
硬件实验
2.1静态存储器扩展实验
2.48255并行接口实验
实验四8253方波实验
实验五
(2)8259A中断控制器实验
2.38254定时/计数器应用实验
2.1静态存储器扩展实验
2.1.1实验目的
1.了解存储器扩展的方法和存储器的读/写。
2.掌握CPU对16位存储器的访问方法。
2.1.2实验设备
PC机一台,TD-PITE实验装置一套,示波器一台。
2.1.3实验内容
编写实验程序,将0000H~000FH共16个数写入SRAM的从0000H起始的一段空间中,然后通过系统命令查看该存储空间,检测写入数据是否正确。
2.1.4实验原理
存储器是用来存储信息的部件,是计算机的重要组成部分,静态RAM是由MOS管组成的触发器电路,每个触发器可以存放1位信息。
只要不掉电,所储存的信息就不会丢失。
因此,静态RAM工作稳定,不要外加刷新电路,使用方便。
但一般图2.162256引脚图
SRAM的每一个触发器是由6个晶体管组成,SRAM芯片的集成度不会太高,目前较常用的有6116(2K×8位),6264(8K×8位)和62256(32K×8位)。
本实验平台上选用的是62256,两片组成32K×16位的形式,共64K字节。
62256的外部引脚图如图4.1所示。
本系统采用准32位CPU,具有16位外部数据总线,即D0、D1、…、D15,地址总线为BHE#(#表示该信号低电平有效)、BLE#、A1、A2、…、A20。
存储器分为奇体和偶体,分别由字节允许线BHE#和BLE#选通。
存储器中,从偶地址开始存放的字称为规则字,从奇地址开始存放的字称为非规则字。
处理器访问规则字只需要一个时钟周期,BHE#和BLE#同时有效,从而同时选通存储器奇体和偶体。
处理器访问非规则字却需要两个时钟周期,第一个时钟周期BHE#有效,访问奇字节;第二个时钟周期BLE#有效,访问偶字节。
处理器访问字节只需要一个时钟周期,视其存放单元为奇或偶,而BHE#或BLE#有效,从而选通奇体或偶体。
写规则字和非规则字的简单时序图如图2.2所示。
图2.2写规则字(左)和非规则字(右)简单时序图
实验单元电路图
A3B4
A1~A8A0~A7
A8~A15A8~A15
D0~D7低D0~D7
CS0CS
BLEBLE
BHEBHE
MEMWWR
MRMDRD
图2.3SRAM单元电路图
实验程序清单(MEM1.ASM)
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
STARTPROCFAR
ASSUMECS:
CODE
MOVAX,8000H;存储器扩展空间段地址
MOVDS,AX
AA0:
MOVSI,0000H;数据首地址
MOVCX,0010H
MOVAX,0000H
AA1:
MOV[SI],AX
INCAX
INCSI
INCSI
LOOPAA1
MOVAX,4C00H
INT21H;程序终止
STARTENDP
CODEENDS
ENDSTART
图2.4SRAM实验接线图
2.1.5实验步骤
(注:
本章实验选择16位寄存器)
1.实验接线图如图2.4所示,按图接线。
2.编写实验程序,经编译、链接无误后装入系统。
3.先运行程序,待程序运行停止。
4.通过D命令查看写入存储器中的数据:
D8000:
0000回车,即可看到存储器中的数据,应为0000、0001、0002、…、000F共16个字。
5.改变实验程序,按非规则字写存储器,观察实验结果。
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
STARTPROCFAR
ASSUMECS:
CODE
MOVAX,8001H;存储器扩展空间段地址
MOVDS,AX
AA0:
MOVSI,0000H;数据首地址
MOVCX,0010H
MOVAX,0000H
AA1:
MOV[SI],AX
INCAX
INCSI
INCSI
LOOPAA1
MOVAX,4C00H
INT21H;程序终止
STARTENDP
CODEENDS
ENDSTART
6.改变实验程序,按字节方式写存储器,观察实验现象。
SSTACKSEGMENTSTACK
DB32DUP(?
)
SSTACKENDS
CODESEGMENT
STARTPROCFAR
ASSUMECS:
CODE
MOVAX,8000H;存储器扩展空间段地址
MOVDS,AX
AA0:
MOVSI,0000H;数据首地址
MOVCX,0010H
MOVAX,0000H
AA1:
MOV[SI],AL
INCAX
INCSI
LOOPAA1
MOVAX,4C00H
INT21H;程序终止
STARTENDP
CODEENDS
ENDSTART
7.将实验程序改为死循环程序,分别按规则字与非规则字的方式写存储器。
。
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
STARTPROCFAR
ASSUMECS:
CODE
MOVAX,8000H;存储器扩展空间段地址
MOVDS,AX
AA0:
MOVSI,0000H;数据首地址
MOVCX,0010H
MOVAX,0000H
AA1:
MOV[SI],AX
INCAX
INCSI
INCSI
JMPAA1;无条件循环
STARTENDP
CODEENDS
ENDSTART
2.48255并行接口实验
2.4.1实验目的
1.学习并掌握8255的工作方式及其应用。
2.掌握8255典型应用电路的接法。
2.4.2实验设备
PC机一台,TD-PITE实验装置一套。
2.4.3实验内容
1.基本输入输出实验。
编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2.流水灯显示实验。
编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
2.4.4实验原理
图2.318255内部结构及外部引脚图
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图4.31所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2.32所示。
图2.328255控制字格式
8255实验单元电路图如图2.33所示:
图2.338255实验单元电路图
2.4.5实验步骤
1.基本输入输出实验
本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
具体实验步骤如下述:
(1)实验接线图如图4.34所示,按图连接实验线路图。
(2)编写实验程序,经编译、连接无误后装入系统。
(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
图2.348255基本输入输出实验接线图
A3D3F4
CS1CS
A1A0
A2A1
A0~7开关
B0~7灯1
实验程序清单(A82551.ASM)
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,276H
MOVAL,90H
OUTDX,AL
AA1:
MOVDX,270H
INAL,DX
CALLDELAY
MOVDX,272H
OUTDX,AL
JMPAA1
DELAY:
PUSHCX
MOVCX,0F00H
AA2:
PUSHAX
POPAX
LOOPAA2
POPCX
RET
CODEENDS
ENDSTART
第一个程序为何能联系到开关?
是哪条程序?
2.流水灯显示实验
使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
实验接线图如图2.35所示。
实验步骤如下所述:
(1)按图2.35连接实验线路图。
(2)编写实验程序,经编译、链接无误后装入系统。
(3)运行程序,观察LED灯的显示,验证程序功能。
(4)自己改变流水灯的方式,编写程序。
图2.358255流水灯实验接线图
A0~7改成灯2
实验程序清单(A82552.ASM)
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,276H
MOVAL,80H
OUTDX,AL
MOVBX,8001H
AA1:
MOVDX,270H
MOVAL,BH
OUTDX,AL
RORBH,1
MOVDX,272H
MOVAL,BL
OUTDX,AL
ROLBL,1
CALLDELAY
CALLDELAY
JMPAA1
DELAY:
PUSHCX
MOVCX,05000H
AA2:
PUSHAX
POPAX
LOOPAA2
POPCX
RET
CODEENDS
ENDSTART
思考题:
1:
执行程序后,使发光二极管闪动。
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,276H
MOVAL,80H
OUTDX,AL
MOVBX,00000H
AA1:
MOVDX,270H
MOVAL,BH
OUTDX,AL
NOTBH
MOVDX,272H
MOVAL,BL
OUTDX,AL
NOTBL
CALLDELAY
CALLDELAY
JMPAA1
DELAY:
PUSHCX
MOVCX,05000H
AA2:
PUSHAX
POPAX
LOOPAA2
POPCX
RET
CODEENDS
ENDSTART
2:
执行程序后,使发光二极管高八位和低八位亮灭相反。
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,276H
MOVAL,80H
OUTDX,AL
MOVBX,0FF00H
AA1:
MOVDX,270H
MOVAL,BH
OUTDX,AL
NOTBH
MOVDX,272H
MOVAL,BL
OUTDX,AL
NOTBL
CALLDELAY
CALLDELAY
JMPAA1
DELAY:
PUSHCX
MOVCX,05000H
AA2:
PUSHAX
POPAX
LOOPAA2
POPCX
RET
CODEENDS
ENDSTART
3:
利用中断完成实验一。
4:
利用方式一发中断请求信号。
实验四8253方波实验
一、实验目的与要求
了解8253的内部结构、工作原理;了解8253与8086的接口逻辑;熟悉8253的控制寄存器和初始化编程方法,熟悉8253的6种工作模式。
二、实验设备
SUN系列实验仪一套、PC机一台
三、实验内容
1、编写程序:
使用8253的计数器0和计数器1实现对输入时钟频率的两级分频,得到一个周期为1秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。
2、连接线路,验证8253的功能,熟悉它的使用方法。
四、实验原理图
五、实验步骤
1、连线说明:
C4区:
CS、A0、A1
——
A3区:
CS2、A0、A1
C4区:
CLK0
——
B2区:
2M
C4区:
OUT0
——
C4区:
CLK1
C4区:
OUT1
——
F8区:
Ctrl(蜂鸣器)
C4区:
GATE
——
C1区的VCC
2、测试实验结果:
蜂鸣器发出时有时无的声音;用逻辑笔测试蜂鸣器的输入端口,红绿灯交替点亮。
六、演示程序
.MODEL
TINY
COM_ADDR
EQU
0263H
T0_ADDR
EQU
0260H
T1_ADDR
EQU
0261H
.STACK
100
.CODE
START:
MOV
DX,COM_ADDR
MOV
AL,35H
OUT
DX,AL
;计数器T0设置在模式2状态,BCD码计数
MOV
DX,T0_ADDR
MOV
AL,00H
OUT
DX,AL
MOV
AL,10H
OUT
DX,AL
;CLK0/1000
MOV
DX,COM_ADDR
MOV
AL,77H
OUT
DX,AL
;计数器T1为模式3状态,输出方波,BCD码计数
MOV
DX,T1_ADDR
MOV
AL,00H
OUT
DX,AL
MOV
AL,10H
OUT
DX,AL
;CLK1/1000
JMP
$
;OUT1输出1S的方波
END
START
七、实验扩展及思考
1、8253还有其它五种工作方式,其它工作模式下,硬件如何设计?
程序如何编写?
2、使用8253,编写一个实时钟程序。
.MODELTINY
COM_ADDREQU0263H
T0_ADDREQU0260H
T1_ADDREQU0261H
T2_ADDREQU0262H
.STACK100
.CODE
START:
MOVDX,COM_ADDR
MOVAL,00110101B
OUTDX,AL;计数器T0,方式2,BCD码计数
MOVDX,T0_ADDR
MOVAL,00H
OUTDX,AL
MOVAL,10H
OUTDX,AL;CLK0/1000
MOVDX,COM_ADDR
MOVAL,01110111B
OUTDX,AL;计数器T1为模式3状态,输出方波,BCD码计数
MOVDX,T1_ADDR
MOVAL,00H
OUTDX,AL
MOVAL,20H
OUTDX,AL;CLK1/1000;OUT1接到LED灯
MOVDX,COM_ADDR
MOVAL,10010101B
OUTDX,AL;计数器T2为模式2状态,输出方波,BCD码计数
MOVDX,T2_ADDR
MOVAL,60H
OUTDX,AL;CLK1/60
;OUT2输出60S的方波
ENDSTART
;OUT2接到蜂鸣器
实验五
(2)8259A中断控制器实验
一、实验目的与要求
了解8259A的内部结构、工作原理;了解8259A与8086的接口逻辑;掌握对8259A的初始化编程方法,了解8086是如何响应中断、退出中断的;体会8259A的中断优先级处理方法。
复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。
二、实验设备
SUN系列实验仪一套、PC机一台
三、实验内容
1、编制程序:
拨动单脉冲开关,“
”送给8259A的IR0,“
”送给8259A的IR7,F5区的最左边数码管对应IR7中断:
没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”;F5区的最右边数码管对应IR0中断:
没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”,如果IR0中断IR7,显示“2”
四、实验原理图
五、实验步骤
1、连线说明:
B3区:
CS、A0
——
A3区:
CS3、A0
B3区:
INT、INTA
——
A3区:
INTR、INTA
B3区:
IR07
——
B2区:
单脉冲
D3区:
CS、A0、A1
——
A3区:
CS1、A0、A1
D3区:
JP20、B、C
——
F4
D3区:
PC0、PC1
——
F4白线
2、运行程序.MODELTINY
IO8259_0EQU0260H
IO8259_1EQU0261H
.DATA
BUFFERDB8DUP(?
)
CounterDB?
ReDisplayFlagDB0
.STACK100
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVES,AX
PUSHDS
CALLWriIntver
CLI
POPDS
;初始化主片8255
MOVDX,0273H
MOVAL,80H
OUTDX,AL
;初始化主片8259
MOVDX,IO8259_0
MOVAL,13H
OUTDX,AL;ICW1
MOVDX,IO8259_1
MOVAL,08H
OUTDX,AL;ICW2
MOVAL,09H
OUTDX,AL;ICW4
MOVAL,0;OCW1
OUTDX,AL
MOVCX,0
STI
AA1:
NOP
JMPAA1
WriIntverPROCNEAR
PUSHES
MOVAX,0
MOVES,AX
MOVDI,20H
LEAAX,MIR7
STOSW
MOVAX,CS
STOSW
POPES
RET
WriIntverENDP
MIR7:
STI
ADDCX,1
MOVDX,0270H
MOVAL,CL
OUTDX,AL
MOVDX,0271H
MOVAL,CH
OUTDX,AL
MOVAL,20H
MOVDX,IO8259_0
OUTDX,AL;中断结束命令
IRET
ENDSTART
3、拨动单脉冲开关,“
”送给8259A的IR0,“
”送给8259A的IR7,G5区的最左边数码管对应IR7中断:
没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”;G5区的最右边数码管对应IR0中断:
没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”,如果IR0中断IR7,显示“2”
六、演示程序(例子程序名8259_3.asm)
七、实验扩展及思考
1、从8259A收到上升沿,到8086响应中断,试画这个过程的时序图。
2.28259中断控制实验
2.2.1实验目的
1.掌握8259中断控制器的工作原理。
2.学习8259的应用编程方法。
3.掌握8259级联方式的使用方法。
2.2.2实验设备
PC机一台,TD-PITE实验装置一套。
2.2.3实验内容及步骤
1.中断控制器8259简介
在Intel386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。
该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。
从片的INT连接到主片的IR2信号上构成两片8259的级联。
在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。
8259的内部连接及外部管脚引出如图2.5:
图2.58259内部连续及外部管脚引出图
表2.1列出了中断控制单元的寄存器相关信息。
表2.1ICU寄存器列表
寄存器
口地址
功能描述
ICW1(主)
ICW1(从)
(只写)
0020H
00A0H
初始化命令字1:
决定中断请求信号为电平触发还是边沿触发。
ICW2(主)
ICW2(从)
(只写)
0021H
00A1H
初始化命令字2:
包含了8259的基址中断向量号,基址中断向量是IR0的向量号,基址加1就是IR1的向量号,依此类推。
ICW3(主)
(只写)
0021H
初始化命令字3:
用于识别从8259设备连接到主控制器的IR信号,内部的从8259连接到主8259的IR2信号上。
ICW3(从)
(只写)
00A1H
初始化命令字3:
表明内部从控制器级联到主片的IR2信号上。
ICW4(主)
ICW4(从)
(只写)
0021H
00A1H
初始化命令字4:
选择特殊全嵌套或全嵌套模式,使能中断自动结束方式。
OCW1(主)
OCW1(从)
(读/写