微机原理与接口技术实验指导书Word文档格式.docx
《微机原理与接口技术实验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验指导书Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
(2)运行程序
系统提供了单步运行、断点运行、连续运行等方式,具体操作如下:
a.单步运行:
在“>
”提示符下输入T↙或点击菜单中的单步运行执行,每运行一条指令后会显示下一条待执行指令并显示变化寄存器的内容,重复T↙可一步一步运行直至程序结束。
b.连续运行:
”提示符下输入G=0000:
2000↙(在系统默认段址CS=0000情况下可直接输入G=2000↙)可连续运行程序,在运行过程中,可通过CTRL+BREAK或点击菜单中的停止来终止程序运行。
c.断点运行:
在程序中可用B命令定义断点,系统规定最多定义10个断点,例如:
B↙
[0:
]
2009↙
[1:
上例中定义了2009地址为断点,输入GB=0000:
2000↙程序连续运行至断点时,程序中断并显示当前各寄存器内容。
GB是G命令的扩充,表示含断点连续运行程序,断点仅当系统复位时清除。
(3)内存单元的内容显示:
使用D0000:
3500↙可查看3500H-350FH单元中的内容是否为0-15共16个数。
(4)内存单元内容的修改:
若要修改某一单元内容,可进行如下操作,其中,“空格”键用于向待编辑单元的高地址方向移动地址,而“-”键则向反方向移动地址;
用↙来确认输入,退出E命令。
E3500↙
350000_
01space
350101_
Space
350202_
-
2.系统操作练习
(2)
将内存3500H单元开始的0-15共16个数传递到3600H单元开始的数据区中。
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)E3500↙,在3500-3510单元中分别送入00、01、02…。
(3)G=0000:
2000↙,运行程序,按CTRL+BREAK中断,返回监控。
(4)D3600↙,显示结果:
3600000102…。
实验二运算类编程实验
1.掌握使用运算类指令编程及调试方法。
2.掌握运算类指令对各状态标志位的影响及其测试方法。
TDN86/88教学实验系统一台
8086/8088指令系统提供了实现加、减、乘、除运算的基本指令,可对二进制、BCD码数据类型进行算术运算。
1.二进制双精度加法运算
计算X+Y=Z,将结果Z存入某存储单元。
本实验程序是双精度(2个16位,既32位)运算,利用累加器AX,先求低十六位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。
由于低位和可能向高位有进位,因而高位字相加语句需用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。
(设:
CS:
0000H,IP:
2000H)
(2)用U0000:
2000查看MOVAX,XXXX(DATA)语句,得到数据段段地址CS:
XXXX。
用E命令EXXXX:
0000↙给XL,XH,YL,YH赋值存入二进制数A0651500和9EB72100。
2000↙,运行程序。
(4)DXXXX:
0008↙,显示计算结果:
3E1D3700CC…。
(5)反复试几组数,考察程序的正确性。
2.十进制数的BCD码减法运算
计算X-Y=Z,其中,X、Y、Z为BCD码。
0000↙给X,Y赋值存入40和12的BCD码:
00040201。
0004↙,显示计算结果:
0802CC…。
3.乘法运算
本实验实现十进制数的乘法,被乘数和乘数均以BCD码形式存放于内存中,乘积在屏幕上显示。
2000↙查看MOVAX,XXXX(DATA)语句,得到数据段段地址CS:
0000↙给在对应数据段填入乘数与被乘数。
2000↙,运行程序,屏幕显示结果。
用CTRL+BREAK可终止程序运行。
(4)反复试几组数,考察程序的正确性。
四.思考题
1.编写有符号数A1B1+A2B2的程序,A1、A2、B1、B2均为符号数。
2.编写两个数值长度不等的BCD码相加程序。
实验三分支程序设计实验
1.掌握分支程序的结构。
2.掌握分支程序的设计、调试方法。
1.比较两个字符串STR1与STR2是否相同,若相同则在屏幕上显示MATCH,不同则显示NOMATCH。
2.要求程序从键盘获取一个字符,并判断这个字符的类型是:
大写字母、小写字母、数字或其它符号并显示出来,如图3-1,当输入符号$时程序结束。
图3-1
3.设计一数据块间的搬移程序
设计思想:
程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。
源数据块和目的数据块在存储中可能有三种情况,如图3-2所示。
图3-2
对于两个数据块分离的情况,如图3-2(a),数据的传送从数据块的首址开始,或者从数据块的末址开始均可。
但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏,可以得出以上结论:
当源数据块首址>
目的块首址时,从数据块首地址开始传送数据。
当源数据块首址<
目的块首址时,从数据块末地址开始传送数据。
(2)用E命令在以SI为起址的单元中填入16个数。
(4)用D命令查看DI为起址的单元中的数据是否与SI单元中的数据相同。
(5)试改变SI、DI的取值,观察在三种不同的数据块情况下程序的运行。
为什么当源数据块首址>
目的块首址时,应从数据块首地址开始传送数据?
而当源数据块首址<
目的块首址时,应从数据块末地址开始传送数据?
实验四循环程序设计实验
1.加深对循环结构的理解。
2.掌握循环结构程序设计的方法。
3.熟练掌握调试循环程序的方法。
1.编制程序
计算式子1+2+3+…+99+100的结果。
2.求某数据区内负数的个数
设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。
为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包含负数的个数。
(2)E3000↙输入数据如下:
3000=06(数据个数)
3001=128882902233
2000↙,运行实验程序。
(4)D=3007↙,显示结果03。
修改程序2,使其能分别求出数据区中正数、零和负数的个数。
实验五排序程序设计实验
1.掌握分支、循环、子程序调用等基本的程序结构。
2.学习综合程序的设计、编制及调试。
1.在数据区中存放着一组数,数据的个数就是数据缓冲区的长度,要求用气泡法对该数据区中数据按递增关系排序。
a.从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,即第N个数与第N-1个数比较,第N-1个数与第N-2个数比较等等;
若第N-1个数大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。
此时,N个数中的最小数将被排在N个数的最前列。
b.对剩下的N-1个数重复上步,找到N-1个数中的最小数。
c.重复第二步,直到N个数全部排序好为止。
(2)用E3000↙在3000-3009H数据区中任意放入10个无符号数。
(4)用D=3000↙检查排序结果。
(5)反复修改数据区中的数,运行程序并观察结果,以验证程序的正确性。
2.学生成绩名次表
将分数为1-100之间的30个成绩存入首址为3000H的单元中,3000H+i表示学号为i的学生成绩。
编写程序能在3100H开始的区域排出名次表,3100H+i为学号i的学生名次。
(2)将30个成绩存入首址为3000H的单元中。
(3)调试并运行实验程序。
(4)检查3100H开始的区域中的名次表的正确性。
1.请指出程序1中哪部分属于外循环,哪部分属于内循环?
2.程序中对SI、CX压栈和弹栈的意义何在?
3.修改程序2,使其能将3100H开始的区域中的名次表显示出来。
实验六中断特性及8259应用编程实验
1.认识TDN86/88系统的中断特性。
2.掌握8259中断控制器的工作原理。
3.掌握8259可编程控制器的应用编程。
4.学习掌握8259级连方式的使用方法。
5.学习在接口实验单元上构造连接实验电路的方法。
1.TDN86/88教学实验系统一台。
2.排线、导线若干。
1.8259应用实验
(1)
图6-1实验
(1)线路
按图6-1所示实验线路编写程序,使每次响应外部中断IRQ7时,显示字符“7”,中断10次后,程序退出。
(1)按图6-1连接实验线路。
(2)输入程序并检查无误,经汇编、连接后装入系统。
2000运行实验程序。
(4)重复按KK2微动开关,显示屏上应用“7”来响应,直到按10次后,系统处于停机状态,用CTRL+BREAK返回监控。
2.8259应用实验
(2)
图6-2实验
(2)线路
按图6-2所示实验线路,编写程序,完成下面的要求:
当无中断请求时,执行主程序,延时显示“main”,若有中断请求,则执行其中断服务程序,显示该中断号“6”或“7”;
若正在执行较低级的中断服务程序,则允许比它优先级高的中断被响应(IRQ6>
IRQ7)。
主程序在执行过程中,每显示一个“main”,空一格。
(1)按图6-2连接实验线路。
2000↙,运行实验程序,则连续显示MAIN,先后按动KK1和KK2微动开关来模拟中断请求信号,记录请求顺序及显示结果。
3.8259级连实验
本实验是以系统中的8259作为主片,外接另一片8259作为从片,构成8259级连方式的中断实验线路,如图6-3所示,其中规定主片的IRQ7上连接一片从片,从片上的IRQ7接中断申请电路(R-S单脉冲触发器),并规定从片的中断矢量编号为30-37H,其命令寄存器组编址为00和01。
图6-38259级连实验接线图
(1)按图6-3连接实验线路,其中INTA连接必须在开机上电之后。
2000↙,运行实验程序,并通过按动KK1微动开关向从片申请中断,每按动一次KK1,显示屏上显示一个“7”字符,表明CPU响应了一次中断。
在实验
(2)中,若先按动KK2,在按动KK1(此时尚未显示“7”),显示结果会是什么?
为什么?
实验七8255并行接口应用实验
1.学习并掌握8255的各种工作方式及其应用。
2.学习在系统接口实验单元上构造实验电路。
1.8255接口应用实验
(1)
图7-1实验线路图
按图7-1所示实验线路编写程序,使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组发光二极管上,然后通过对8255芯片编程来实现输入/输出功能。
(1)按图接线。
2000↙,运行实验程序,拨动开关组,观察发光二极管应一一对应。
2.8255接口应用实验
(2)
按图7-2所示接线,编写程序,使8255端口A工作在方式0并作为输出口,端口B工作于方式1并作为输入口,则端口C的PC2成为选通信号输入端STBB,PC0成为中断请求信号输出端INTRB。
当B口就绪后,通过发STBB信号来请求CPU读取端口B数据并送端口A输出显示。
图7-2实验接线图(KK1-初态为“1”)
2000↙,运行实验程序,拨动开关组K0-K7,准备好后,按动微动开关KK1,观察发光二极管组,应与开关信号对应。
实验八8253定时/计数器应用实验
1.熟悉8253在系统中的典型接法。
2.掌握8253的工作方式及应用编程。
1.8253计数器应用实验
(1)
设定8253的2#通道工作方式为方式0,用于事件计数,当计数值为5时,发出中断请求信号,显示“M”。
其实验线路如图8-1所示。
图8-1实验
(1)线路
(3)用E命令在0000:
003CH单元填入IRQ7中断矢量,即0000:
003C12200000。
(4)运行实验程序,按动微动开关KK1,观察是否每按6次,屏幕上显示一个“M”字符。
2.8253定时器应用实验
(2)
利用8253的0#通道来定时中断(IRQ0),循环显示“0”-“9”十个数,实验线路如图8-2。
图8-2实验
(2)线路
(2)运行程序,显示屏上应连续逐行显示“0”-“9”十个数,直到用“RESET”复位开关来中断。
(3)修改8253的0#时常,再运行程序,观察显示的快慢程度。
3.电子发声实验(3)
系统的OPCLK(1.1625MHz)作为音乐节拍,由表格查出每个音符对应的时常送给计数器2(工作在方式3:
方波频率发生器),以确定音调,驱动扬声器产生音乐。
实验接线如图8-3。
图8-3实验(3)接线图
(3)G=2000↙运行程序,即可听到扬声器发出音乐声。
在将计数初值赋给8253后,马上就可以启动并进行定时或计数吗?
实验九8251串行接口应用实验
(一)双机通讯实验
1.掌握8251的工作方式。
2.学习串行通讯的有关知识。
3.了解8251在半双工双机通讯情况下的软件编制,硬件连接技术。
1.TDN86/88教学实验系统两台。
本实验需用两台TDN86/88教学实验系统,并通过排线将两台仪器相连,具体接线如图9-1。
图9-1双机通讯
其中1号机用做接收机,2号机用做发送机。
实验目的是将2号机中的3000-3009H十个单元中的代码传送到1号机的3000-3009H单元中。
(1)按图9-1将1、2号机连接起来。
(2)两台机器上电后,均输入程序,并要求2号机用E命令在3000-3009H十个单元中填入十个ASCII码,如:
3000:
30313233343536373839
(3)先使1号机程序运行,等串行接收数据,然后再运行2号机程序,发送字符串到串口,当数发送、接收完毕时,1号机显示相应的ASCII码字符串,如:
R0123456789,用CTRL+BREAK可使程序中断,返回监控。
(4)检查1号机的3000-3009H单元,应和2号机一致。
(二)串口自发自收实验
掌握8251串行通讯方式的硬件接口电路及软件编制。
对于串行传输的数据格式,本实验有如下规定:
一个字有一个逻辑“1”起始位,8位ASCII码数据位,1位逻辑“1”停止位,传输波特率为9600baut。
(1)将实验系统上8251的TXD与RXD直接相连。
(3)用E命令在4000-400A单元赋值。
(4)运行程序,用D命令观察3000-300A单元内容和4000-400A单元内容是否一致。
使两机分别工作在中断方式下,画出流程图,并编制程序。
实验十A/D转换实验
1.学习掌握模/数信号转换基本原理。
2.掌握ADC0809芯片的使用方法。
按图编写实验程序,实现A/D转换。
图10-1ADC0809应用实验线路
(2)输入程序并检查无误,运行程序。
(3)调节W电位起,显示屏上显示AD0809:
IN0XX。
(4)用万用表测出W输出电压,并记录显示屏上的相应数据,做出转换图。
(5)求0809芯片的整量化误差。
若改用EOC信号来申请中断读A/D值,程序如何设计?
实验十一D/A转换实验
1.学习掌握数/模信号转换基本原理。
2.掌握DAC0832芯片的使用方法。
按图11-1所示实验线路编写程序,实现数模转换,并产生锯齿波、脉冲波,并用示波器功能观察波形。
在实验接线中
(1)为DAC0832实验接线图,
(2)为测量单元接线图。
根据该图接线,可通过PC示波器功能观察DAC0832输出的波形。
图11-1DAC0832应用实验线路
(1)按图11-1接线。
(3)从窗口菜单进入PC示波器功能。
(4)运行程序,观察DA输出波形。
1.试改变各信号频率,通过增减延时观察波形的变化。
2.使DAC0832为双缓冲方式应如何接线?
实验十二8255键盘及显示接口实验
熟练掌握8255编程。
按图12-1实验线路编写实验程序,使数码块显示相应的数字。
图12-1实验线路
(1)按图12-1接线。
(3)运行程序。
(4)按动键盘,数码块会显示相应的数字。
实验十三步进电机实验
掌握步进电机的控制方法。
本实验采用的步进电机为35BYJ46型四项八拍电机,电压为DC12V,其励磁线圈及其励磁顺序如下图及下表所示:
图13-1实验线路图
实验中,P1端口各线的电平在各步中的情况如下表所示:
步序
PB3
PB2
PB1
PB0
对应B口输出值
1
01H
2
03H
3
02H
4
06H
5
04H
6
0CH
7
08H
8
09H
2000↙运行程序。
(4)按复位键终止程序运行。
(5)注意:
步进电机不使用时请断开连接器,以免误操作使电机过分发热。
实验十四直流电机闭环调速实验
1.了解直流电机闭环调速方法。
2.掌握PID控制规律及算法。
3.巩固计算机控制课程所学内容。
三.实