《微机原理实验材料.doc》由会员分享,可在线阅读,更多相关《微机原理实验材料.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验1 二进制多位加法运算一、实验目的 1、熟悉实验系统键盘显示的使用。2、掌握使用加法类运算指令编程及调试方法。3、掌握加法类指令对状态标志位的影响。二、实验内容 计算XYZ?(X、Y、Z为16位二制数)三、编程指南 由于本实验是三个十六位二制数相加运算,因此,当XY时要考虑用ADC指令,把进位C加到结果的高16位中,当(XY)Z时,再把进位C加到结果的高16位中,本实验设定三个加数0FFFFH,计算结果应为2FFFDH。四、实验步骤 联机模式:(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598k8
2、Asm文件夹,点击S1.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。(2)运算结果保留在内存4100H4102H单元中,点击DJ-8086K软件中存贮器RAM窗口,输入RAM的起始地址4100、4101、4102,单元内容应为FD、FF、02。脱机模式: 在P.态下,按SCAL键,输入2CA0,按EXEC键。复位RST键,运算结果保留在内存4100H4102H单元中,共内容分别为:FD、FF、02,低位在前,高位在后,具体操作方法:输入键 4100MENXNX。五、实验程序
3、清单CODE SEGMENT ;S1.ASM-BIN ADDASSUME CS:CODEORG 2CA0H ;this is a program of addSTART: CLCMOV SI,4000H ;result in 4100MOV SI,0ffffHMOV SI+2,0ffffHMOV SI+4,0ffffHMOV AX,0000HMOV SI+102H,AX MOV AX,SIADD AX,SI+2ADC SI+102H,0000ADD AX,SI+4MOV SI+100H,AXADC SI+102H,0000JMP $CODE ENDSEND START六、思考题1试编程实现四个
4、十六位二进制数的加法运算,结果存在相同位置。2试实现X+Y-Z=?的程序,结果存在相同位置。实验2 求最大值和最小值一、实验目的 1、学习子程序的定义和调用方法。2、掌握子程序设计、调试。二、实验内容 对内存中给定的几个无符号字节数,求其最大值和最小值并在数码管上显示。三、实验程序框图 四、实验步骤 联机模式: (1)在内存4000H4007H中写入任意八个字节的数,按下MON键,返回P状态。 (2)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S7.ASM文件,单击“确定”即可装
5、入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。 (3)数码管显示为:“XXXX”,最左两位为最大值,最右两位为最小值。脱机模式: 1、在P.态下,按SCAL键,然后在内存4000H4007H中写入任意八个字节的数,按下MON键,返回P状态。2、在P.态下,输入2E70,按EXEC键。3、数码管显示为:“XXXX”,最左两位为最大值,最右两位为最小值。五、实验程序清单 CODE SEGMENT ;S7.ASM,LOOK FOR MAX & MINASSUME CS:CODEORG 2E70H ;INPUT
6、DATA 4000H-4007HSTART:JMP START0PA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口BUFDB ?,?,?,?,?,?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,8FHSTART0:MOV SI,4000HMOV CX,0008HCALL MAXMINCALL BUF1CON1:CALL DISPJMP CON1M
7、AXMIN:JCXZ EXITPUSH SIPUSH CXPUSH BXMOV BH,SIMOV BL,BHCON2:LODSBCMP AL,BHJNA X1MOV BH,ALJMP X2X1:CMP AL,BLJNB X2MOV BL,ALX2:LOOP CON2MOV AX,BXPOP BXPOP CXPOP SIEXIT:RETDISP:MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALMOV CL,0DFH ;显示子程序 ,5msMOV BX,OFFSET BUFDIS1: MOV AL,BX MOV AH,00HPUSH BXMOV BX,OFFSET DATA1
8、ADD BX,AX MOV AL,BXPOP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2:MOV CX,00A0H LOOP $ POP CXCMP CL,0FEH ;01HJZ LX1 MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALINC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1:MOV BH,AHCALL ZH MOV BUF+5,AL MOV BUF+4,AHMOV AL,BHCALL ZH MO
9、V BUF,AH MOV BUF+1,AL MOV BUF+2,17H MOV BUF+3,17HRET;-ZH:MOV BL,ALMOV CL,4ROL AL,CLAND AL,0FHMOV AH,ALMOV AL,BLAND AL,0FHRET;-CODE ENDSEND START六、思考题1将数码管显示改为“左边显示最小值,右边显示最大值”,试编程实现。2试用JBE/JAE(或JC/JNC)指令改写“求最大最小值子程序”。数码管显示器内部电路图实验38255A并行口实验(一)一、实验目的 1了解实验箱的组成及实验系统软件的使用。2掌握8255A的工作方式、编程原理和与微机的接口方法。二
10、、实验内容 用8255PA口控制PB口。三、实验接线图 四、编程指南 8255A芯片简介:8255A可编程外围接口芯片是INTEL公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作: 方式0:基本输入/ 输出方式 方式l:选通输入/ 输出方式 方式2:双向选通工作方式使8255A端口A工作在方式0并作为输入口,读取Kl-K8个开关量,PB口工作在方式0作为输出口。8255端口地址见第一章表“I/O地址分配(二)”五、实验程序框图 六、实验步骤 18255A芯片A口的PA0-PA7依次和开关量输入Kl-K8相连。28255A芯片B口的PB0-PB
11、7依次接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码显示在数码管
12、上(十六进制显示),并将该键值同时回送至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。
13、五、实验步骤 (1) 8251单元:T/RXCOUT1,TXDEX-TXD,RXDEX-RXD,JX20JX17;(2) 8253单元:GATE1+5V,CLK11.8432MHZ;(3) CZ11用户通信口PC机串口;(4) 按EXEC键运行程序;(5) 运行“串口调试助手”,通过PC键盘输入任意一个字符至发送区,在点击“手动发送”后,在实验箱数码管上显示“XXH”(ASCII码),并在“串口调试助手”接收区能看到由实验箱回送的该字符。按RST键,返回P.态。六、实验程序(自己编写)七、思考题1实现将“How are you!”字符串通过8251A送至PC机并显示的程序,要求字符串每隔1s输
14、出一次。DATA SEGMENTSTRING DB How are you?,$BUFF DB 12 DUP(?)HH DB 0DH,0AH,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN:MOV AX,DATAMOV DS,AXSTART:MOV BX,0HMOV AX,0003HINT 10HLEA SI,BUFFMOV CX,12L1: MOV AH,7HINT 21HMOV SI,ALINC SIMOV DL,02AHMOV AH,06HINT 21HLOOP L1LEA DX,HHMOV AH,09HINT 21HLEA SI,BUF
15、FLEA DI,STRINGMOV CX,12L2:MOV AL,DICMP SI,ALJNZ NOH1:INC SIINC DILOOP L2CMP BX,01HJZ STARTLEA DX,STRINGMOV AH,09HINT 21HJMP EXITNO:MOV BX,01HJMP H1EXIT:MOV AX,4C00HINT 21HCODE ENDSEND MAIN 2 利用实验机内小键盘,每按动一次任一数字键 ,就把该键值通过8251发送给PC机接收,并在PC机屏幕上显示出该键值。实验5 8259单级中断控制器实验一、实验目的 掌握8259中断控制器的接口方法。 掌握8259单级中断
16、控制器的应用编程。二、实验内容 利用8259实现对外部中断的响应和处理,要求按键以后使发光二极管按照每次加1的方式进行亮灭。三、实验接线图 四、编程指南 8259芯片介绍中断控制器8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。本实验中使用3号中断源IR3, “ ”插孔和IR3相连,中断方式为全嵌套、边沿触发、非
17、级联、普通中断结束,中断类型码根据上表分析,每按一次开关触发一次中断请求。此时发光二极管按照加1方式亮灭,延时用软件延时的方式。端口地址见连线图。五、实验程序框图 IR3中断服务程序:六、实验步骤 1、按图连好实验线路图。8259的INT连8088的INTR;8259的INTA连8088的INTA;“ ”插孔和8259的3号中断IR3插孔相连,“ ”端初始为低电平;8259的CS端接FF80H孔;8255A芯片的PA0-PA7依次和发光二极管L1L8相连。2、运行实验程序并观察结果。七、思考题1另由开关K1接IR0,K2接IR1,开关K1拨动使发光二极管从左往右循环点亮一遍,开关K2拨动则使发
18、光二极管从右往左循环点亮一遍,最多实现三重中断嵌套,并可回到断点处继续运行。试编程实现该功能。2利用8253每1S产生一次中断请求,送8259的IR3,通过该信号控制使得8255PA口连接的发光二极管每秒加1的方式亮灭。试编程实现该功能。3利用8253、8259和数码LED显示器构建一个能准确计时的数字时钟,要求能显示时、分、秒。试编程实现该功能。(显示电路如下图所示,字型口和字位口端口地址分别为FF21H和FF20H)实验6 定时器/计数器一、实验目的 学会8253芯片和微机接口的原理和方法。. 掌握8253定时器/计数器的工作方式和编程原理。二、实验内容 用8253的0通道工作在方式3,产
19、生方波,其输出作为1通道的输入信号;1通道工作在方式2,产生分频信号。通过2个发光二极管分别观察OUT0和OUT1的输出信号。三、实验接线图 四、编程指南 8253芯片介绍8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz, 用+5V单电源供电。端口地址为0040H0043H。8253的功能用途:延时中断实时时钟可编程频率发生器数字单稳事件计数器复杂的电机控制器二进制倍频器2,8253的六种工作方式:方式0:计数结束中断方式3:方波频率发生器 方式l:可编程频率发生方式4:软件触发的选通信号方式2:频率发生器方式5:硬件触发的选通信号五、实验程序框图六、实验步骤
20、 按图连好实验线路 8253的GATE0和GATE1接+5V。 8253的OUT0接CLK1。 8253的OUT0和OUT1分别接发光二极管电路的LED1和LED2。 8253的CLK0插孔接分频器74LS393(左下方)的T6(62500Hz)插孔,分频器的频率源为8.0MHZ,T8.0MHZ。 运行实验程序 七、思考题1若要设定方波发生器周期为1秒,分频器为产生每小时一次的脉冲信号,该如何编程?2将8253通道0设为方式3,或者方式5,该如何连线,如何编程?3利用8253芯片对8255并行输入数据的过程进行延时读取控制,即延时开关按后1s才能读取数据。设定8255PA口工作在方式1输入。设
21、定8253用定时通道0,设定为方式5,CLK0输入信号接分频器74LS393(左下方)的T6(62500Hz)插孔,GATE0由按钮控制,产生上升沿信号,则OUT0输出由按钮控制的选通信号送8255的PC4。试题设要求连线并编程。实验7小直流电机调速实验一、实验目的 1掌握直流电机的驱动和调速原理。2掌握DAC0832的工作原理和编程方法。二、实验内容 、用0832D/A转换电路的输出经放大后驱动直流电机。、编制程序,改变0832输出经放大后的电压信号来控制电机转速;或者还可以采用改变电压信号波形占空比的方法来控制电机转速。三、实验接线图 四、编程指南通过DAC0832输出三角波来控制小直流电
22、机的转速。DAC0832芯片的端口地址见连线图。上升阶段输出到DAC0832的数值从00H逐渐增加到FFH,每次加1并延时,到最大值FFH之后,下降阶段数值从FFH逐渐减少到00H,每次减1并延时,这样就是一个周期。五、实验步骤1、0832的片选信号CS5连到译码输出FF80H。2、0832输出AOUT连DJ插孔。3、运行实验程序。4、观察直流电机的转速。六、思考题1试编程通过调节占空比的方式使电机转速由慢到快。提示:编程使每周期时间固定的前提下,FFH的延续时间不断增加,00H的延续时间相应减少即可。电压波形如下图所示。2在数码显示器中显示“DAC-?”的字样,其中的“?”为输出到DAC08
23、32的数值,如何编程?(显示电路如下图所示,字型口和字位口端口地址分别为FF21H和FF20H)实验8 A/D转换实验一、实验目的 了解模/数转换基本原理,掌握ADC0809的使用方法。二、实验内容 利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。三、实验接线图 图6-1四、编程指南 ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:MOV DX,ADPORT ;ADC08
24、09端口地址 OUT DX,AL ; 发CS和WR信号并送通道地址 用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果。 MOV DX,ADPORT ;ADC0809端口地址 INAL,DX 循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。五、实验程序框图 六、实验步骤 将0809 CS4插孔连到译码输出FF80H插孔、连JX6JX17。将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(05V)插孔,8MHZT。运行实验程序如在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开5
25、98K8ASM文件夹,点击H0809.ASM文件,单击“确定”即可装入A/D转换实验源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“R运行”或工具图标运行,即开始运行程序。如果在没有PC机的情况下,则在8086K系统显示监控提示符“P.”时,用户段地址固定为0000(省略输入),按SCAL键,输入起始偏移地址1000,按EXEC键,在系统上显示“0809 XX”。“XX”表示输入模拟量转换后的数字量。调节电位器Wl, 显示器上会不断显示新的转换结果。模拟量和数字量对应关系的典型值为:0V00H+2.5V80H+5VFFH按RST键退出。以上两种方式运行结果完全一致,因此,在下面的实验中,不管按何种方式均能运行实验程序。七、思考题1试编程实现在数码管上直接显示所测电压的数值,显示方式为?.?。(电压显示范围为0.005.00)2综合实验7的内容,编程实现当数字量为80HA0H之间时,直流电机转动,否则直流电机停止。附录 DJ-8086K字形字位表字形表 字位表
限制150内