山东理工大学微机原理及应用B实验指导书及参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一熟悉实验系统及设备
一、实验要求
通过编写一个简单的汇编语言程序并在实验仪上调试,熟悉上机步骤。
二、实验目的:
熟悉实验系统及设备,掌握上机的步骤。
三、实验条件:
超想—3000TB综合实验仪一套,PC机一台(安装WIN98和HK8086汇编软件)。
四、实验步骤:
1、进入WIN98,双击HK8086,实验台加电(复位)。
2、单击设置/通讯口,测试串口,确定延时因子,一般为最大。
通讯前应先复位。
3、单击文件/新建,输入实现两数相加的加法源程序,存E盘根目录,文件名长度不能超过8个字符。
4、单击汇编链接,系统自动加载。
若有错误则改正。
对于“Warning 4021:no stacks Egment”错误,不影响调试。
5、调试运行,F8单步,F9连续。
若有错,则查错后重运行。
6、试验完毕后关闭设备电源。
五、参考实验程序:
CODE SEGMENT
ASSUME CS : CODE, DS : CODE
START: J MP START1
D1 DB 12H
D2 DB 34H
D3 DB ?
START1: MOV AX, CS
MOV DS, AX
MOV AL,D1
ADD AL,D2
MOV D3,AL
NOP
CODE ENDS
END START
实验二汇编程序设计及调试
一、实验要求
通过编写一个较复杂的汇编语言程序,在微机原理实验仪或PC机上进行调试,以便掌握汇编语言程序设计的方法及步骤。
二、实验目的:
熟悉和掌握汇编语言程序设计的方法及步骤。
三、实验条件:
超想—3000TB综合实验仪一套,PC机一台(安装WIN98和HK8086汇编软件)。
四、实验步骤:
1、进入WIN98,双击HK8086,实验台加电(复位)。
2、单击设置/通讯口,测试串口,确定延时因子,一般为最大。
注:通讯前应先复位;
3、单击文件/新建,输入源程序,存E盘根目录;文件名长度不能超过8个字符。
4、单击汇编链接,程序自动加载。
若有错误,则改正。
对于“Warning 4021:no stacks segment”错误可继续,不影响调试。
5、调试运行,F8单步,F9连续,若有错,查错后重运行。
6、做完后关闭设备电源。
五、参考实验程序:
统计一个串中的正数、零和负数的个数。
code segment
assume cs: code, ds: code
start: jmp start1
sty1 db -1,128,0,0,0,1,15,7,127
nm db 0
zm db 0
pm db 0
start1: push cs
pop ds
mov cx, nm - sty1
mov bx, offset sty1
aa: cmp byte ptr[bx],0
jge l1
inc nm
jmp bb
l1:jg l2
inc zm
jmp bb
l2:inc pm
bb:inc bx
loop aa
code ends
end start
程序也可以编为:
code segment
assume cs: code, ds: code
start: jmp start1
buf db -1,-128,0,0,0,1,15,127,20
nm db 0
zm db 0
pm db 0
start1: mov ax, cs
mov ds, ax
mov nm, 0
mov zm, 0
mov pm, 0
lea bx, buf
mov cx, 9
next: mov al, [bx]
cmp al, 0
jz inc_zm
jg inc_pm
inc nm
jmp inc_bx
inc_zm: inc zm
jmp inc_bx
inc_pm: inc pm
inc_bx: inc bx
loop next
nop
code ends
end start
实验三8255A接口实验
一、实验要求
通过采用并行接口8255A编写一个用开关量控制LED灯的程序,在微机原理实验仪上调试,运行后可以看到LED灯在对应开关量控制下点亮或熄灭。
二、实验目的:
熟悉和掌握并行口8255A的初始化和使用方法。
三、实验电路及连接图:
根据实验要求设计实验原理图,并标明端口地址。
如果按下图连接得到8255A的A口、B口、控制口地址分别为208H、209H、20BH。
A0A1接开关量发生器0~7
接LED灯0~7
在连线的过程中,将上述带有圈号的地方连接,并将实验台8279芯片右侧的A0、A1、A2和实验平台上地址总线的A0、A1、A2连接上,8255A的CS连接
至地址译码的208H~20FH地址孔,8255A的PA0~PA7对应接开关量发生器0~7,8255A的PB0~PB7对应接LED灯0~7。
四、实验步骤:
1.按上述要求设计连接硬件图;
2.根据要求画出程序框图;
3.根据框图编写程序;
4.根据原理图连线,并确保连线正确,接触可靠;
5.输入程序进行调试,实现实验题目要求。
五、参考实验程序:
code segment
assume cs:code
start: mov al,90h ;方式0,A口输入,B口输出
mov dx,20bh
out dx,al
again: mov dx,208h
in al,dx
mov dx,209h
out dx,al
jmp again
code ends
end start
实验四交通灯控制器的设计
一、实验要求
通过采用并行口8255A和定时器/计数器8253编写一模仿交通灯程序,在微机原理实验仪上调试,运行后可以看到LED灯在不停的红绿交替亮。
二、实验目的:
熟悉和掌握并行口8255A和定时器/计数器8253的初始化和综合使用。
三、实验电路及连接图:
根据实验要求设计实验原理图,并标明端口地址。
如果按下图连接得到8255的A口、C口、控制口地址分别为208H、20AH、20BH,8253的通道0、控制口地址为200H、203H。
A0A1
在连线的过程中,将上述带有圈号的地方连接,并将实验台8279芯片右侧的A0、A1、A2和实验平台上地址总线的A0、A1、A2连接上,8253的CS53连接至地址译码的200H~207H,8255的CS55连接至地址译码的208H~20FH地址孔。
8253的工作频率为0-2MHZ,输入的CLK频率必须在2MHZ以下,因此这里选择频率为0.5MHZ。
四、实验步骤:
1.按上述要求设计连接硬件图;
2.根据要求画出程序框图;
3.根据框图编写程序;
4.根据原理图连线,并确保连线正确,接触可靠;
5.输入程序进行调试,实现实验题目要求。
五、参考实验程序:
code segment
assume cs:code
start: mov al,81h ;8255初始化,A口方式0,输出,PC0-PC3输入mov dx,20bh
out dx,al
mov dx,203h ;8253初始化,通道0,方式3,方波发生器
mov al,00110110B
out dx,al
mov ax,50000 ;置计数初值,0.1秒一个周期。
为何不是1秒?
mov dx,200h
out dx,al
mov al,ah
out dx,al
again: mov bl,0 ;置循环次数
mov dx,208h ;输出A口的红绿灯信号,21H=0010 0001
mov al,21h
out dx,al
call time
mov bl,0
mov dx,208h ;输出A口的红绿灯信号,12H=0001 0010
mov al,12h
out dx,al
call time
jmp again
time proc ;检测一个方波计数周期(高电平-低电平)re1: mov dx,20ah ;检测PC0是否为1,直到为0结束
in al,dx
and al,1
cmp al,1
je re1
re2: in al,dx ;检测PC0是否为0,直到为1结束
and al,1
cmp al,0
je re2
inc bl ;循环次数加1
cmp bl,50 ;循环共计50次,为5s
jl re1
ret
time endp
code ends
end start
实验五0809AD转换实验
【实验要求】
编程:电位器输入电压,启动0809A/D转换器开始转换,采用延迟等待的方式读取转换后的结果。
并将读取的结果实时地通过八位发光二极管显示。
【实验目的】
1.掌握AD芯片AD0809的转换性能及编程方法。
2.学习AD芯片与其他芯片(如8255)一起使用、共同解决问题的方法,初步建立系统的概念。
【实验连线】
AD0809的CS09接译码器220~227插孔,8255A的CS55接译码器218~21F插孔,AD0809的IN0接至电位器VINO的中心插孔,CLOCK接2MHz。
将8088CPU适配板上的A0、A1、A2分别与实验平台的地址总线A0、A1、A2连接。
注意:电位器W1两边的两个插孔已经分别接好电源+5V和地。
【实验说明】
本实验中所用的AD转换芯片为逐次逼近型,精度为8位,每转换一次约100微秒,所以AD0809在启动后要延时。
另外,0809芯片提供转换结束信号(EOC),利用此信号可实现中断采集。
【实验程序】
CODE SEGMENT
ASSME CS: CODE,DS:CODE
START: PUSH CS
POP DS
MOV DX, 21BH
MOV AL, 80H
OUT DX, AL
AGAIN:MOV DX, 220H
OUT DX, AL
MOV CX, 100
NEXT:LOOP NEXT
MOV DX, 220H
IN AL, DX
MOV DX, 218H
OUT DX, AL
JMP AGAIN
CODE ENDS
END START
【思考题】
1、0809芯片提供转换完成信号(EOC),利用此信号实现中断采集时,程序应该怎样编写。
2、频率对程序有什么影响?
实验六采用中断读A/D的值
【实验要求】
学生自己设计电路,进行系统连线,编写相应的程序,调试程序,达到预期的目标。
【实验目的】
掌握系统设计的方法,培养综合运用所学知识的能力,进一步提高编程能力及系统的设计能力。
【实验内容】
设计一个完整的系统。
具体要求如下:
1、能够输入模拟量、通过发光二极管输出数字量;
2、能够进行模/数转换;
3、计数产生中断,CPU响应中断,执行中断处理程序;
4、完成主程序、中断处理程序的编写。
【实验说明】
本实验中所用的AD转换芯片为逐次逼近型,0809芯片提供转换完成信号(EOC),利用此信号可实现中断采集。
【思考题】
1、为了让ADC0809开始工作必须先启动ADC0809,应该怎样启动ADC0809?
2、如果需要把转换后的数字量在LED上显示出来,应怎样连线及编写程序?。