《微型计算机原理实验指导书.docx》由会员分享,可在线阅读,更多相关《微型计算机原理实验指导书.docx(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微型计算机原理实验指导书杨鹏陈玲玲张雪萍编写河北工业大学自动化系二零零六年八月实验一简单程序调试(1)1实验二简单程序调试(2)4实验三汇编程序设计及调试(1)6实验四汇编程序设计及调试(2)12实验五32位微机接口技术实验17实验六8254定时/计数器应用实验23实验七并行接口825534附录1TD-PIT+实验系统的硬件环境44附录2Tddebug集成操作软件56实验一简单程序调试(1)实验目的:1 .熟悉8086常用指令;2 .掌握Tddebug集成操作软件的操作指令。实验内容:1.在Tddebug集成操作软件环境下输入下列程序片段,用Trace 命令单步执行并记录结果。程序片段运行结果
2、DDATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA START: MOV AX,2000HMOV DS, AX MOV DX,0100H MOV SI,0000H MOV BYTE PTRSI+0100H, OAAH MOV AL,SI+0100H MOV BX,0100HMOV WORD PTRISI+BX,1234H MOV AX, fSI+BX+OHl INT 20HCODE ENDSEND STARTDS=DS:0100=AL=AX=2)DATA SEGMENTDATA ENDSCODE SEGMENTASSUME C
3、S: CODE, DS: DATASTART: MOV AL, OFFH MOV AH, OOH XCHG AL, AH MOV AL,07H MOV AH, OOH MOV BL,08H ADD AL, BLAX=AX=AH= AL=AAAAH=AL=MOVAX,0FFFFHMOVBX,8080HSUBAX, BXAX=MOVAX,0FFFFHMOVBX,0FFFFHMULBXDX=AX=MOVAX,1000HMOVDX,2000HMOVCX,4000HDIVCXDX=AX=INT20HCODEENDSENDSTART2.自编程序段实现两个两字节无符号数相加。要求:已将1234H和5678H
4、分别放在DATA1和DATA2开始的存储单元中,低位在前,高位在后,计算1234H+5678H,运算结果放在DATA1开始的单元。用Trace命令单步执行,并查看有关存储单元。DATASEGMENTDATA1DB 34H,12HDATA2DB 78H,56HDATAENDSCODESEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, DATAMOV DS, AX在此处输入自编的程序HLTCODE ENDSEND START三.选修实验在Tddebug集成操作软件环境下输入下列带符号数乘法程序片段,单步执行并记录结果。程序片段运行结果CODE SEGMENT
5、ASSUME CS: CODESTART: MOVAX,04E8HMOVBX,4E20HIMULBXDX=AX=MOVAX,81 OOHMOVBX,0050HIMULBXDX=AX=INT20HCODE ENDSEND START实验二简单程序调试(2)实验目的:1 .熟悉8086常用指令;2 .掌握Tddebug集成操作软件操作指令。实验内容:1 .在Tddebug集成操作软件环境下输入下列程序片段,用Trace 命令单步执行,单步执行并记录结果。程序片段运行结果1)CODESEGMENTASSUME CS: CODESTART:MOVAL,09HORAL,30HAL=ANDAL, OFHA
6、L=INT20HCODEENDSENDSTART2)CODESEGMENTASSUME CS: CODESTART:MOVAX,0001HSHLAX,1AX=MOVBX, AXSHLAX,1AX=SHLAX,1AX=ADDAX, BXAX=INT20HCODEENDSENDSTART3)CODESEGMENTASSUME CS: CODESTART:MOVAX,1024HSHRAX,1AX=XCHGAL, AHAX=CBWAX=INT20HCODEENDS4END START4)将两个无符号八位数分别存放在2000H和2001H单元中,比较它们的大小,大者存入2002H单元。CODESEGME
7、NTASSUME CS: CODESTART:MOVSI,2000HMOVAL,SIDS:2000=INCSIDS:2001=CMPAL,SIJNCNEXTMOVAL,SilNEXT:INC SIMOVSI, ALDS:2002=INT20CODEENDSENDSTART2 .自编程序段,在Tddebug集成操作软件环境下运行1)将3FH拆成03H和0FH分别存入BH和BL寄存器。2)要求:用Trace命令单步执行。3)将2000H单元开始的20个字节移至3000H开始的单元。4)要求:向2000H开始的20个单元写数,用Trace命令单步执行,检查3000H开始的单元内容。5)从2000H单
8、元开始存放的20个八位数据中找出最大者存入3000H单元。注:在1(4)、2(2)和2(3)三题中,均遇到向某单元写数的问题。本实验的解决方法为:在Tddebug主菜单中执行Rmrun菜单中的Debug,就进入了实模式调试窗口。当焦点区域在数据显示区中时,利用Ctrl + G指定需要显示的代码区域首地址,然后修改光标当前指示存储单元的内容,即输入所需的数。实验三汇编程序设计及调试(1)实验目的:1 .进一步熟悉8086指令,掌握编程方法;2 .熟悉利用Tddebug集成操作软件编辑,编译,链接,调试和运行8086汇编语言程序的过程。实验内容:1.根据框图读懂下面程序(多字节十进制数相加且显示)
9、,上机打开程序A.asm进行编辑,编译,链接,调试。加法子程序开始DXSI , BP+DII将ASCII码表示的数转为十六进制数SIDX, DIBP带进位加法运算,进行AAA 调整,SI|_ALSIDX, Dl-D7【。丫0 K _ COYlggCS ACS 二 BOAO0A70-07DI5想图5-1-5基于I/O接口设计实验参考接线图程序清单:;Tio.asm;基本I/O接口电路设计实验;*根据 CHECK,配置信息修改下列符号值*IOYOEQU 9C00H;片选10Y0对应的端口始地址10Y1EQU 9C40H;片选I0Y1对应的端口始地址MYI0_A 址MYIO_B 址EQUEQUIOY
10、O+OOH*4IOY1+OOH*4;基本输入输出单元A组端口地;基本输入输出单元B组端口地STACK 1DWSTACK1CODESEGMENT STACK 256 DUP(?) ENDSSEGMENTASSUME CS: CODESTART:MOVINOUTMOVINOUTMOVINTJZDX, MYIO_A AL,DX DX, AL DX, MYIO_B AL,DX DX, AL AH,116HSTART;读写基本I/O单元A组的端口;读写基本I/O单元B组的端口;判断是否有按键按下;无按键则跳回继续循环,有则退出QUIT:MOV AX,4C00H;返回至U DOSINT 21HCODE E
11、NDSEND START5.2地址译码电路设计实验.实验目的1 .学习3-8译码器在接口电路中的应用;2 .掌握地址译码电路的一般设计方法。二.实验设备PC微机一台、TD-PIT+实验系统一套。三.实验内容用74LS138译码器设计地址译码电路,并用其输出作为基本输入输出单元的片选信号,使用设计的端口地址编写程序,实现数据的输入输出。四.实验原理微机接口电路中,常采用74LS138译码器来实现I/O端口或存储器的地址译码。74LS138有3个输入引脚、3个控制引脚及8个输出引脚,其管脚信号如图5-2-1所示。当3个控制信号有效时,相应于输入信号A、B、C状态的那个输出端为低电平,该信号即可作为
12、片选信号。c o 12 3 4 56VYYYYYYY图5-2-174LS138译码器管脚32位扩展系统总线上有一个M/记信号,该信号为低电平时指示当前操作为I/O操作,为高电平指示当前操作为存储器操作,它和译码器不同的连接可以用来区分是I/O端口译码还是存储器端口译码。32位总线地址是由A2开始,所以地址是以4字节边界对齐的。实验系统的I/O地址空间共有256字节,偏移地址一般从 OOH FFHo起始地址由PC机系统分配,可以用CHECK程序读出。所以设计地址译码电路,主要是针对低8位地址线译码,得到偏移在OOH FFH之间的端口。本实验要求不使用总线上的片选信号,自行设计端口偏移地址分别为C
13、OH DFH和E0HFFH的译码电路,然后用译码输出作为基本输入输出单元的片选。编写程序,完成I/O数据操作。实验参考线路如图5-2-2所示。五.实验步骤1 .确认从PC机引出的两根扁平电缆已经连接在实验平台上。2 .按图5-2-2所示连接实验线路。3 .首先运行CHECK程序,查看I/。端口始地址。4 .利用设计好的端口地址编写程序,然后编译链接。5 .运行程序,拨动开关,观看数据灯显示是否正确。图5-2-2地址译码设计实验参考接线图实验六8254定时/计数器应用实验一 .实验目的:1 .掌握8254的结构和使用;2 .掌握8254的各种工作方式及门控信号的作用;3 .掌握8254的使用与编
14、程。二 .实验设备:PC微机一台、TD-PIT+实验系统一套。三 .实验内容1. 8254各种工作方式2. 8254定时中断管理3. 实时时钟四 .实验原理8254是Intel公司生产的可编程间隔定时器,是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能:1 .有3个独立的16位计数器;2 .每个计数器可按二进制或十进制(BCD)计数;3 .每个计数器可编程工作于6种不同工作方式;4 .8254每个计数器允许的最高计数频率为10MHz (8253为2MHz );5 .8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;6 .计
15、数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为户&产于皿,其中九川是输入时钟脉冲的频率,%是输出波形的频率。图7-1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。8254的工作方式如下述:1 .方式0:计数到0结束输出正跃变信号方式;2 .方式1:硬件可重触发单稳方式;3 .方式2:频率发生器方式:4 .方式3:方波发生器;5 .方式4:软件触发选通方式;6 .方式5:硬件触发选通方式。叩)启黑著M M计数器CLK0 GATE0 OUTO计数器I计数器2控制 寄存罂CLK1 OATEI OUT1CLK2 GATE2OUT2D7(D61OU
16、TOGATEOGND0 12 2345678911124 2322 212019IS 17 16 二,14 13VCC WR RD CS At AO CLK2 OLT2 GATE! CLKI GATE I OIJTI图7-18254的内部接口和引脚8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字:另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表7-1所示。读回控制字格式如表7-2所示。当读回控制字的D4位为0时,由该读回控制字D1-D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。状态字格式如表7-3所示。表7-182
17、54的方式控制字格式D7D6D5D4D3D2D1D0计数器选择读/写格式选择工作方式选择计数码制选择00-计数25001一计数器110-计数器211一读出控制字标志00一锁存计数值01一读/写低8位10一读/写高8位II 一先读/写低8位再读/写高8位000一方式0001-方式1010一方式2011方式3100-方式4101-方式50一二进制数1一十进制数表7-28254读出控制字格式D7D6D5D4D3D2DID0)10一锁存计数值0锁存状态信息计数器选择(同方式控制字)0表7-38254状态字格式D7D6D5D4D3D2D1D0OUT引脚现行状态1高电平0低电平计数初值是否装入1一无效计数
18、。一计数有效计数器方式(同方式控制字)五.实验说明及步骤1.计数应用实验编写程序,将定时器2初始化成6种工作方式之一,计数初值为4,用微动开关KK1+作为CLK2时钟,OUT2接LED显示,按动KK1+,观察计数时钟和输出的关系。参考程序流程如图7-2所示。将定时器2的GATE2接+5V。实验步骤如下:1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。2)首先运行CHECK程序,查看I/O空间始地址。3)利用查出的地址修改程序T8254-l.asm,然后编译链接。4)参考图7-2所示连接实验线路。5)运行程序,按动KK1+微动开关,观察计数时钟和输出的关系。6)可以改变工作方式,观察计数
19、时钟和输出的关系。图7-2 8254应用实验参考接线图DOOUTOD1GATE。D2CLKO ,D3D4D5D6OUT1D7&ATE1CLK1 CSRDOUT 2AOGATE 2AlCLK2 ,XIOB XIOT;8254工作方式实验程序清单;*根据check配置信息修改卜列符号值IOYOEQU 0D200HMY8254_COUNTOEQUIOYO+OOH*4;8254计数器0端口地址MY8254_COUNT1EQUIOY0+01H*4;8254计数器1端口地址MY8254_COUNT2EQUIOY0+02H*4;8254计数器2端口地址MY8254_MODEEQUIOY0+03H*4;825
20、4控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATASEGMENTMODEDB OBOH,0B2H,0B4H,0B6H,0B8H, OBAHDATAENDSCODESEGMENTASSUMECS: CODE, DS: DATA, ES: DATAMAINPROCFARMOVAX, DATAMOVDS, AXMOVSI,0MOVAL,MODE+SIJ;SET 8254 MODEMOVDX, MY8254_MODE ;TIMER 2OUTDX, ALMOVAL,4;4 TIMESMOVDX, MY8254_COUNT2OUTDX, A
21、LMOVAL,0OUTDX, ALLI: MOVAH,2;CORSER LOCAT AT 20,30MOVBH,0MOVDH,20MOVDL,30INT10HMOVDX, MY8254_MODE;LOCK COUNTERMOVAL,80HOUTDX, ALMOVDX, MY8254_COUNT2;READ COUNTER LOWINAL, DXMOVBL, ALINAL, DX;READ COUNTER HIGHMOVBH,ALMOVCL,4SHRAL, CLADDAL,30HCMPAL,39H;DISPLAY HIGH 8 BITSJBEL2ADDAL,7L2: MOVDL, ALMOVAH
22、,2INT21HANDBH, OFHADDBH,30HCMPBH,39HJBEL3ADDBH,7L3: MOVAH,2MOVDL, BHINT21HMOVAL, BL;DISPLAY LOW 8 BITSMOVCL,4SHRAL, CLADDAL,30HCMPAL,39HJBEL4ADDAL,7L4: MOVDL, ALMOVAH,2INT21HANDBL, OFHADDBL,30HCMPBL,39HJBEL5ADDBL,7L5: MOVAH,2MOVDL, BLINT21HMOVAH,2MOVDL,13INT21HMOV AH, OBH;ANY KEY PRESSED TORETURN DO
23、SINT 21H;ELSE CONTINUECMPAL,0JNZOKMOVCX,50000L6: NOPLOOPL6JMPLIOK: MOVAX,4C00HINT21HRETERROR: JMP OKMAIN ENDPCODE ENDSEND MAIN实验结果记录:工作方式计数初值GATE2计数时钟和输出的关系04+5VCLK2012345-OUT2当前计数值14CLK201345-OUT2当前计数值24+5VCLK201345-OUT2当前计数值34+5VCLK201345-OUT2当前计数值44+5VCLK201345-OUT2当前计数值54,rCLK201345-OUT2当前计数值2 .编写汇编程序,将定时器0设为方式2,二进制计数初值为1042(系统时钟CLK=LO41667MHz);制寸器1设为方式3,计数初值为1000。将OUT1接PC总线INTR端,每秒向计算机发一次中断请求。(为便于观察,可将OUT1接到L1,此时OUT1输出为1秒的方波。)3 .编写汇编程序,每次中断时,显示字符串“THIS IS A 8259 INTERRUPT !中断十次后,程序退出。(a)主程序(b)中断处理程序;8254计数中断实验*根据 CHECK 配置信息修改卜歹符号值*INTRJVADDEQU01C8H;INTR对应的中断矢量地址INTR_OCW1EQU
限制150内