微机原理实验材料53664
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1 二进制多位加法运算
一、实验目的
1、熟悉实验系统键盘显示的使用。
2、掌握使用加法类运算指令编程及调试方法。
3、掌握加法类指令对状态标志位的影响。
二、实验内容
计算X+Y+Z=?<X、Y、Z为16位二制数)
三、编程指南
因为本实验是三个十六位二制数相加运算,因此,当X+Y时要考虑用ADC 指令,把进位C加到结果的高16位中,当<X+Y)+Z时,再把进位C加到结
果的高16位中,本实验设定三个加数0FFFFH,计算结果应为2FFFDH。
四、实验步骤
联机模式:
<1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598k8Asm文件夹,点击S1.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
<2)运算结果保留在内存4100H~4102H单元中,点击DJ-8086K软件中存贮器RAM窗口,输入RAM的起始地址4100、4101、4102,单元内容应为FD、FF、02。
脱机模式:
⑴在P.态下,按SCAL键,输入2CA0,按EXEC键。
⑵复位RST键,运算结果保留在内存4100H~4102H单元中,共内容分别为:FD、FF、02,低位在前,高位在后,具体操作方法:输入键 [4100]→[ME]→[NX]→[NX]。
五、实验程序清单
CODE SEGMENT 。
S1.ASM-->BIN ADD ASSUME CS:CODE
ORG 2CA0H 。
this is a program of add
START: CLC
MOV SI,4000H 。
result in [4100] MOV [SI],0ffffH
MOV [SI+2],0ffffH
MOV [SI+4],0ffffH
MOV AX,0000H
MOV [SI+102H],AX
MOV AX,[SI]
ADD AX,[SI+2]
ADC [SI+102H],0000
ADD AX,[SI+4]
MOV [SI+100H],AX
ADC [SI+102H],0000
JMP $
CODE ENDS
END START
六、思考题
1 试编程实现四个十六位二进制数的加法运算,结果存在相同位置。
2 试实现X+Y-Z=?的程序,结果存在相同位置。
实验2 求最大值和最小值
一、实验目的
1、学习子程序的定义和调用方法。
2、掌握子程序设计、调试。
二、实验内容
对内存中给定的几个无符号字节数,求其最大值和最小值并在数码管上显示。
三、实验程序框图
四、实验步骤
联机模式:
(1>在内存4000H~4007H中写入任意八个字节的数,按下MON键,返回P状态。
(2>在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开
598K8ASM文件夹,点击S7.ASM文件,单击“确定”即可装入源文件,再单击
工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
(3>数码管显示为:“XX——XX”,最左两位为最大值,最右两位为最小值。
脱机模式:
1、在P.态下,按SCAL键,然后在内存4000H~4007H中写入任意八个字
节的数,按下MON键,返回P状态。
2、在P.态下,输入2E70,按EXEC键。
3、数码管显示为:“XX——XX”,最左两位为最大值,最右两位为最小值。
五、实验程序清单
CODE SEGMENT 。
S7.ASM,LOOK FOR MAX & MIN
ASSUME CS:CODE
ORG 2E70H 。
INPUT DATA 4000H--4007H
START: JMP START0
PA EQU 0FF20H 。
字位口
PB EQU 0FF21H 。
字形口
PC EQU 0FF22H 。
键入口
BUF DB ?,?,?,?,?,?
data1:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h
,0c6h,0a1h
db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: MOV SI,4000H
MOV CX,0008H
CALL MAXMIN
CALL BUF1
CON1: CALL DISP
JMP CON1
MAXMIN: JCXZ EXIT
PUSH SI
PUSH CX
PUSH BX
MOV BH,[SI]
MOV BL,BH
CON2: LODSB
CMP AL,BH
JNA X1
MOV BH,AL
JMP X2
X1: CMP AL,BL
JNB X2
MOV BL,AL
X2: LOOP CON2
MOV AX,BX
POP BX
POP CX
POP SI
EXIT: RET
DISP: MOV AL,0FFH 。
00H
MOV DX,PA
OUT DX,AL
MOV CL,0DFH 。
显示子程序 ,5ms
MOV BX,OFFSET BUF
DIS1: MOV AL,[BX]
MOV AH,00H
PUSH BX
MOV BX,OFFSET DATA1
ADD BX,AX
MOV AL,[BX]
POP BX
MOV DX,PB
OUT DX,AL
MOV AL,CL
MOV DX,PA
OUT DX,AL
PUSH CX
DIS2: MOV CX,00A0H
LOOP $
POP CX
CMP CL,0FEH 。
01H
JZ LX1
MOV AL,0FFH 。
00H
MOV DX,PA
OUT DX,AL
INC BX
ROR CL,1 。
SHR CL,1
JMP DIS1
LX1: MOV AL,0FFH
MOV DX,PB
OUT DX,AL
RET
BUF1: MOV BH,AH
CALL ZH
MOV BUF+5,AL
MOV BUF+4,AH
MOV AL,BH
CALL ZH
MOV BUF,AH
MOV BUF+1,AL
MOV BUF+2,17H
MOV BUF+3,17H
RET。
--------------------------------------------------------
ZH: MOV BL,AL
MOV CL,4
ROL AL,CL
AND AL,0FH
MOV AH,AL
MOV AL,BL
AND AL,0FH
RET。
-------------------------------------------------------
CODE ENDS
END START
六、思考题
1 将数码管显示改为“左边显示最小值,右边显示最大值”,试编程实现。
2 试用JBE/JAE<或JC/JNC)指令改写“求最大最小值子程序”。
数码管显示器内部电路图
实验38255A并行口实验<一)
一、实验目的
1.了解实验箱的组成及实验系统软件的使用。
2.掌握8255A的工作方式、编程原理和与微机的接口方法。
二、实验内容
用8255PA口控制PB口。
三、实验接线图
四、编程指南
⒈8255A芯片简介:8255A可编程外围接口芯片是INTEL公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0:基本输入/ 输出方式
方式l:选通输入/ 输出方式
方式2:双向选通工作方式
⒉使8255A端口A工作在方式0并作为输入口,读取Kl-K8个开关量,PB 口工作在方式0作为输出口。
8255端口地址见第一章表“I/O地址分配(二>”
五、实验程序框图
六、实验步骤
1 8255A芯片A口的PA0-PA7依次和开关量输入Kl-K8相连。
2 8255A芯片B口的PB0-PB7依次接Ll-L8。
3 运行实验程序。
七、思考题
1 由8255PA口接发光二极管,PB口接开关,该如何编程?
2 由8255控制发光二极管顺序循环点亮,即“流水灯”过程,该如何编程?
3 利用8255在方式0下工作,令其在PB1和PB2产生如图所示的波形,试编程实现。
<将图中的延时时间单位为ms的地方均改为s)
实验4 串行接口和应用
一、实验目的
利用实验机内的8251芯片,实现与PC机通讯。
二、实验内容
(1> 利用实验机内的8253芯片的分频作为8251的收发时钟频率。
(2> PC机键盘所按键值<串口调试助手发送)通过RS232串口及8251A后送入8088,然后将所接收键值的ASCII码显示在数码管上<十六进制显示),并将该键值同时回送至PC机显示。
三、实验接线图
图4-1 接线图
四、编程指导
(1> 8251状态口地址:03F9H,8251数据口地址:03F8H;
(2> 8253命令口地址:43H,8253计数器#1口地址:41H;
(3> 8255命令口地址:0FF23H,键扫口/字位口:0FF20H,键入口PC:
0FF22H,字形口PB:0FF21H;
(4> 通讯约定:异步方式,字符8位,一个起始位,一个停止位,波特率因子为16,波特率为9600;
(5> 计算T/RXC,收发时钟fc,fc=16*9600=153.6K;
(6> 8253分频系数:1843.2K / 153.6K=12。
五、实验步骤
(1> 8251单元:T/RXC→OUT1,TXD→EX-TXD,RXD→EX-RXD,JX20→
JX17;
(2> 8253单元:GATE1→+5V,CLK1→1.8432MHZ;
(3> CZ11用户通信口→PC机串口;
(4> 按EXEC键运行程序;
(5> 运行“串口调试助手”,通过PC键盘输入任意一个字符至发送区,在点击“手动发送”后,在实验箱数码管上显示“XXH”<ASCII码),并在“串口调试助手”接收区能看到由实验箱回送的该字符。
按RST键,返回P.态。
六、实验程序(自己编写>
七、思考题
1 实现将“How are you!”字符串通过8251A送至PC机并显示的程序,要求字符串每隔1s输出一次。
DA TA SEGMENT STRING DB 'How are you?','$' BUFF DB 12 DUP(?> HH DB 0DH,0AH,'$' DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN:
MOV AX,DA TA MOV DS,AX
START:
MOV BX,0H MOV AX,0003H INT 10H
LEA SI,BUFF MOV CX,12 L1: MOV AH,7H INT 21H MOV [SI],AL INC SI MOV DL,02AH MOV AH,06H INT 21H LOOP L1
LEA DX,HH MOV AH,09H INT 21H
LEA SI,BUFF LEA DI,STRING MOV CX,12 L2:
MOV AL,[DI] CMP [SI],AL JNZ NO
H1:
INC SI INC DI LOOP L2
CMP BX,01H JZ START
LEA DX,STRING MOV AH,09H INT 21H JMP EXIT
NO:
MOV BX,01H JMP H1 EXIT:
MOV AX,4C00H INT 21H CODE ENDS END MAIN
2 利用实验机内小键盘,每按动一次任一数字键,就把该键值通过8251发送给PC机接收,并在PC机屏幕上显示出该键值。
实验5 8259单级中断控制器实验
一、实验目的
⒈掌握8259中断控制器的接口方法。
⒉掌握8259单级中断控制器的应用编程。
二、实验内容
利用8259实现对外部中断的响应和处理,要求按键以后使发光二极管按照每次加1的方式进行亮灭。
三、实验接线图
四、编程指南
⑴8259芯片介绍
中断控制器8259A是专为控制优先级中断而设计的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。
因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。
即中断结构可以由用户编程来设定。
同时,在不需要增加其它电路
的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。
⑵本实验中使用3号中断源IR3,“”插孔和IR3相连,中断方式为全嵌套、边沿触发、非级联、普通中断结束,中断类型码根据上表分析,每按一次开关触发一次中断请求。
此时发光二极管按照加1方式亮灭,延时用软件延时的方式。
端口地址见连线图。
五、实验程序框图
IR3中断服务程序:
六、实验步骤
1、按图连好实验线路图。
⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶
“”插孔和8259的3号中断IR3插孔相连,“”端初始为低电平;⑷8259的CS端接FF80H孔;⑸8255A芯片的PA0-PA7依次和发光二极管L1~L8相
连。
2、运行实验程序并观察结果。
七、思考题
1 另由开关K1接IR0,K2接IR1,开关K1拨动使发光二极管从左往右循环点亮一遍,开关K2拨动则使发光二极管从右往左循环点亮一遍,最多实现三重中断嵌套,并可回到断点处继续运行。
试编程实现该功能。
2 利用8253每1S产生一次中断请求,送8259的IR3,通过该信号控制使得8255PA口连接的发光二极管每秒加1的方式亮灭。
试编程实现该功能。
3 利用8253、8259和数码LED显示器构建一个能准确计时的数字时钟,要求能显示时、分、秒。
试编程实现该功能。
<显示电路如下图所示,字型口和字位口端口地址分别为FF21H和FF20H)
实验6 定时器/计数器
一、实验目的
⒈学会8253芯片和微机接口的原理和方法。
⒉. 掌握8253定时器/计数器的工作方式和编程原理。
二、实验内容
用8253的0通道工作在方式3,产生方波,其输出作为1通道的输入信号;1通道工作在方式2,产生分频信号。
通过2个发光二极管分别观察OUT0和OUT1的输出信号。
三、实验接线图
四、编程指南
⒈8253芯片介绍
8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V单电源供电。
端口地址为0040H~0043H。
8253的功能用途:
⑴延时中断⑸实时时钟
⑵可编程频率发生器⑹数字单稳
⑶事件计数器⑺复杂的电机控制器
⑷二进制倍频器
2,8253的六种工作方式:
⑴方式0:计数结束中断⑷方式3:方波频率发生器
⑵方式l:可编程频率发生⑸方式4:软件触发的选通信号
⑶方式2:频率发生器⑹方式5:硬件触发的选通信号
五、实验程序框图
六、实验步骤
⒈按图连好实验线路
⑴8253的GATE0和GATE1接+5V。
⑵ 8253的OUT0接CLK1。
⑶ 8253的OUT0和OUT1分别接发光二极管电路的LED1和LED2。
⑷8253的CLK0插孔接分频器74LS393<左下方)的T6<62500Hz)插
孔,分频器的频率源为8.0MHZ,T→8.0MHZ。
⒉运行实验程序
七、思考题
1 若要设定方波发生器周期为1秒,分频器为产生每小时一次的脉冲信号,该如何编程?
2 将8253通道0设为方式3,或者方式5,该如何连线,如何编程?
3 利用8253芯片对8255并行输入数据的过程进行延时读取控制,即延时开关按后1s才能读取数据。
设定8255PA口工作在方式1输入。
设定8253用定时通道0,设定为方式5,CLK0输入信号接分频器74LS393<左下方)的
T6<62500Hz)插孔,GATE0由按钮控制,产生上升沿信号,则OUT0输出由按钮控制的选通信号送8255的PC4。
试卷设要求连线并编程。
实验7 小直流电机调速实验
一、实验目的
1.掌握直流电机的驱动和调速原理。
2.掌握DAC0832的工作原理和编程方法。
二、实验内容
1、用0832D/A转换电路的输出经放大后驱动直流电机。
2、编制程序,改变0832输出经放大后的电压信号来控制电机转速;或者还可以采用改变电压信号波形占空比的方法来控制电机转速。
三、实验接线图
四、编程指南
通过DAC0832输出三角波来控制小直流电机的转速。
DAC0832芯片的端口地址见连线图。
上升阶段输出到DAC0832的数值从00H逐渐增加到FFH,每次加1并延时,到最大值FFH之后,下降阶段数值从FFH逐渐减少到00H,每次减1并延时,这样就是一个周期。
五、实验步骤
1、0832的片选信号CS5连到译码输出FF80H。
2、0832输出AOUT连DJ插孔。
3、运行实验程序。
4、观察直流电机的转速。
六、思考题
1 试编程通过调节占空比的方式使电机转速由慢到快。
提示:编程使每周期时间固定的前提下,FFH的延续时间不断增加,00H的延续时间相应减少即可。
电压波形如下图所示。
2 在数码显示器中显示“DAC-??”的字样,其中的“??”为输出到
DAC0832的数值,如何编程?<显示电路如下图所示,字型口和字位口端口地址分别为FF21H和FF20H)
实验8 A/D转换实验
一、实验目的
了解模/数转换基本原理,掌握ADC0809的使用方法。
二、实验内容
利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。
三、实验接线图
图6-1
四、编程指南
⑴ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:
MOV DX,ADPORT;ADC0809端口地址
OUT DX,AL;发CS和WR信号并送通道地址⑵用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果。
MOV
DX,ADPORT ;ADC0809端口地址
INAL,DX
⑶循环不断采样A/D转换的结
果,边采样边显示A/D转换后的数字量。
五、实验程序框图
六、实验步骤
①将0809 CS4插孔连到译码输出FF80H插孔、连JX6→JX17。
②将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(0-5V>插孔,8MHZ→T。
③运行实验程序
如在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击H0809.ASM文件,单击“确定”即可装入A/D转换实验源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“R运行”或工具图标运行,即开始运行程序。
如果在没有PC机的情况下,则在8086K系统显示监控提示符“P.”时,用户段地址固定为0000<省略输入),按SCAL键,输入起始偏移地址1000,按EXEC键,在系统上显示“0809 XX”。
“XX”表示输入模拟量转换后的数字量。
④调节电位器Wl, 显示器上会不断显示新的转换结果。
模拟量和数字量对应关系的典型值为:
0V→00H +2.5V→80H +5V→FFH
⑤按RST键退出。
以上两种方式运行结果完全一致,因此,在下面的实验中,不管按何种方式均能运行实验程序。
七、思考题
1 试编程实现在数码管上直接显示所测电压的数值,显示方式为?.??。
<电压显示范围为0.00~5.00)
2 综合实验7的内容,编程实现当数字量为80H~A0H之间时,直流电机转动,否则直流电机停止。
附录 DJ-8086K字形字位表
字形表
字位表。