微型计算机原理与接口实验(共13页).doc
精选优质文档-倾情为你奉上微型计算机原理与接口实验报告实验一 I/O地址译码一. 实验目的:掌握I/O地址译码电路的工作原理二. 实验仪器:U3 74LS138 74LS74 74LS00 PC TPC-ZK实验系统三. 实验总体思路: 先使灯亮,延时,然后灭,不断循环四. 实验内容:实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。译码输出端Y0Y7在实验台上“I/O地址”输出端引出,每个输出端包含8个地址,Y0:280H287H,Y1:288H28FH, 当CPU执行I/O指令且地址在280H2BFH范围内,译码器选中,必有一根译码线输出负脉冲。五. 实验代码:DATAS SEGMENTAADB AOHBBDB A8HDATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:PUSH DSMOV AX,0PUSH AXMOV AX,DATASMOV DS, AXCIR: MOV AL,AAMOV DX,2A0H OUT DX,AL;输出A0H,灯亮CALLDELAYMOV AL,BB;输出A8H,灯灭MOV DX,2A8OUT DX,ALJMP CIRMOV AH,4CHINT 21HDELAY PROC FAR;延时函数MOV BX,100WAIT: MOV CX,2601FLASH: LOOPFLASHDEC BXJNZ WAITRET DELAY ENDPCODES ENDSEND START六. 实验结果: L7闪烁发光(亮、灭、亮、灭、)实验二 存储器读写实验一 实验内容:编制程序,将字符A-Z循环写入扩展的RAM中,然后再将扩展的RAM内容读出来显示在主机屏幕上。二 实验目的:1、熟悉6264静态RAM的使用方法,掌握PC机外存扩充的手段。 2、通过对硬件电路的分析,学习了解总线的工作时序。三 实验仪器:2K的6264 TPC-ZK实验系统 PC 四 实验总体思路:五 实验代码:DATASSEGMENTMESSAGE DB 'ANY KEY TO SHOW THE CONTENTS!',0DH,0AH,'$' DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AX,0D000H MOV ES,AX;init es MOV BX,6000H ;EA=06000H START FROM PA=0D6000H MOV CX,100H MOV DL,41H WRITE: ; WRITE REAPTLY MOV ES:BX,DL INC BX INC DL CMP DL,5AH JLE CIR MOV DL,41H CIR: LOOP WRITE ; KEY OUT&IN MOV DX,OFFSET MESSAGE MOV AH,9 INT 21H MOV AH, 01H INT 21H ;WAIT MOV AX,0D000H MOV ES,AX MOV BX,6000H MOV CX,0100HREAD: MOV DL,ES:BX MOV AH,02HINT 21H INC BX LOOP READ MOV AH,4CH INT 21HCODES ENDS END START专心-专注-专业六. 实验结果: 主机屏幕上显示字符A-Z 实验三 可编程并行接口一 实验内容:1.实验电路如图4-3-1,8255C口接逻辑电平开关K0K7,A口接LED显示电路L0L7。 2.编程从8255C口输入数据,再从A口输出。二 实验目的:通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法三 实验仪器: TPC-ZK实验系统四 实验总体思路:五 实验步骤:DATAS SEGMENT ;此处输入数据段代码 MESS DB 'ANY KEY TO EXIT TO DOS!',0DH,0AH,'$' DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AH,09H MOV DX,OFFSET MESS INT 21HINIT: MOV DX,28BH MOV AL,89H OUT DX,ALREAD:MOV DX,28AH IN AL,DX MOV DX,288H OUT DX,AL MOV AH,06H MOV DL,0FFH INT 21H JNZ EXIT JMP READ EXIT:MOV AX,4C00H INT 21H MOV AH,4CH INT 21HCODES ENDS END START六实验结果: 通过逻辑电平开关可以控制LED灯的亮灭。 实验四 可编程定时器计数器一 实验内容: 1.按图4-8-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。 2.按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。二实验目的:掌握可编程定时器计数器基本工作原理和编程方法,观察不同方式下的波形三实验仪器: TPC-ZK实验系统四实验总体思路: 五实验步骤:实验(一) DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV DX,0283H MOV AL,10H OUT DX,AL MOV DX,0280H MOV AL,0EH ;AFTER 15 HIGH OUT DX,ALREAD:MOV DX,0280H IN AL,DX PUSHDXCALL DISPLAY POP DXMOV AH,06MOV DL,0FFH INT 21HJZ READ MOV AH,4CH INT 21H DISPLAY PROC NEAR ;PUSH DX ;MOV BL,0EH ;SUB BL,AL ;XCHG AL,BL MOV DL,AL CMP DL,9 JLE ACI ADD DL,7ACI: ADD DL,30H MOV AH,02 INT 21H MOV DL,0DH INT 21H MOV DL,0AH INT 21H ; POP DX RET DISPLAY ENDPCODES ENDSEND START实验(二)DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV DX,0283H MOV AL,36H OUT DX,AL MOV DX,0280H MOV AL,0E8H OUTDX,AL MOV AL,03H OUT DX,AL MOV DX,0283H MOV AL,76H OUT DX,AL MOV DX,0281H MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,AL MOV AH,4CH INT 21HCODES ENDS END START六实验结果:1.手动逐个输入单脉冲,计数值在屏幕上显示,数值递减2. 逻辑笔观察OUT1输出电平的变化(频率1HZ),左右两灯交替闪烁实验五 中断一实验内容:1、中断IRQ3实验,实验电路如图4-12-1,直接用手动产生单脉冲2作为中断请求信号(只需连接一根导线)。要求每按一次开关产生一次中断,在屏幕上显示一次“TPCA Interrupt!”,中断10次后程序退出。 2、中断IRQ10实验,实验电路如图4-12-1,用手动产生单脉冲1作为中断请求信号,每按一次开关产生一次中断,在屏幕上显示一次“”,中断10次后退出。 3、中断嵌套实验,实验电路如图4-12-1,分别用手动产生单脉冲作为中断IRQ3和IRQ10的请求信号,申请中断IRQ3后,进入中断3程序,再申请高级中级IRQ10。二实验目的:、掌握PC机中断处理系统的基本原理。 、学会编写中断服务程序。三实验仪器: TPC-ZK实验系统四实验总体思路: 中断IRQ3实验中断IRQ10实验:中断嵌套实验五实验步骤:实验(一)DATAS SEGMENT ;此处输入数据段代码 MESSAGE DB 'TCPA Interrupt!',0AH,0DH,'$'DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AX,CX ;INIT INTERRUPT ADDRESS MOV DS,AX MOV DX,OFFSET INTER MOV AX,250BH INT 21H CLI ;CLOSE INTERRUPT IN AL,21H ;SETUP IRQ3,SAVE OTHER STATUS AND AL,0F7H OUT 21H,AL MOV CX,10 STI ;OPEN INTERRUPT HERE: JMP HERE;. INTER PROC FARMOV AX,DATAS ;SHOW THE MESSAGE WHEN INTERRUPTMOV DS,AXMOV DX,OFFSET MESSAGEMOV AH,09INT 21H;.MOV AL,20HOUT 20H,ALSUB CX,1JNZ NEXTIN AL,21HOR AL,08HOUT 21H,ALSTI MOV AH,4CH INT 21HNEXT: IRET INTER ENDPCODESENDS END START实验(二)DATAS SEGMENT ;此处输入数据段代码 MESSAGE DB 'TCPA Interrupt!',0AH,0DH,'$'DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AX,CX ;INIT INTERRUPT ADDRESS MOV DS,AX MOV DX,OFFSET INTER MOV AX,2507H INT 21H CLI ;CLOSE INTERRUPT IN AL,0A1H ;SETUP IRQ3,SAVE OTHER STATUS AND AL,0F7H OUT 0A1H,AL MOV CX,10 STI ;OPEN INTERRUPT HERE: JMP HERE;. INTER PROC FARMOV AX,DATAS ;SHOW THE MESSAGE WHEN INTERRUPTMOVDS,AXMOV DX,OFFSET MESSAGEMOV AH,09INT 21H;.MOV AL,20HOUT 0A0H,ALSUB CX,1JNZ NEXTIN AL,0A1HOR AL,08HOUT 0A1H,ALSTI MOV AH,4CH INT 21HNEXT: IRET INTER ENDPCODES ENDSEND START实验(三)DATA SEGMENTMESS3 DB 'TPCA3 Interrupt!',0AH,0DH,'$'MESS10DB 'TPCA10 Interrupt!',0AH,0DH,'$'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,CS MOV DS,AX MOV DX,OFFSET INT3 MOV AX,250BH INT 21H CLI IN AL,21H AND AL,0F7H OUT 21H,AL MOVCX,10 STI MOV DX,OFFSET INT10 MOV AX,2572H INT 21H CLI IN AL,21H AND AL,0FBH OUT 21H,AL IN AL,0A1H AND AL,0FBH OUT 0A1H,AL MOV BX,10 STI HERE: JMP HERE INT3: MOV AX,DATA MOVDS,AX MOV DX,OFFSET MESS3 MOV AH,09 INT 21H LOOP1: SUB CX,1 JNZ LOOP1 STI MOV AH,4CH INT 21HINT10: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS10 MOV AH,09 INT 21H CIR: SUB BX,1 JNZ CIR STI MOV AH,4CH INT 21HCODE ENDSEND START六实验结果:1每按一次开关产生一次中断,屏幕上显示一次“TPCA Interrupt!”,中断10次后程序退出2手动产生单脉冲1作为中断请求信号,每按一次开关产生一次中断,在屏幕上显示一次“TPCA Interrupt!”,中断10次后退出3分别用手动产生单脉冲作为中断IRQ3和IRQ10的请求信号,申请中断IRQ3后,进入中断3程序,屏幕上显示一次“TPCA3 Interrupt!”,再申请高级中级IRQ10, 幕上显示一次“TPCA10 Interrupt!”