微型计算机原理与接口实验.docx
《微型计算机原理与接口实验.docx》由会员分享,可在线阅读,更多相关《微型计算机原理与接口实验.docx(20页珍藏版)》请在冰豆网上搜索。
微型计算机原理与接口实验
实验一I/O地址译码
一.实验目的:
掌握I/O地址译码电路的工作原理
二.实验仪器:
U374LS13874LS7474LS00PCTPC-ZK实验系统
三.实验总体思路:
先使灯亮,延时,然后灭,不断循环
四.实验内容:
实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址”输出端引出,每个输出端包含8个地址,Y0:
280H~287H,Y1:
288H~28FH,当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
五.实验代码:
DATASSEGMENT
AADBAOH
BBDBA8H
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATAS
MOVDS,AX
CIR:
MOVAL,AA
MOVDX,2A0H
OUTDX,AL;输出A0H,灯亮
CALLDELAY
MOVAL,BB;输出A8H,灯灭
MOVDX,2A8
OUTDX,AL
JMPCIR
MOVAH,4CH
INT21H
DELAYPROCFAR;延时函数
MOVBX,100
WAIT:
MOVCX,2601
FLASH:
LOOPFLASH
DECBX
JNZWAIT
RET
DELAYENDP
CODESENDS
ENDSTART
六.实验结果:
L7闪烁发光(亮、灭、亮、灭、„„)
实验二存储器读写实验
一.实验内容:
编制程序,将字符A-Z循环写入扩展的RAM中,然后再将扩展的RAM内容读出来显示在主机屏幕上。
二.实验目的:
1、熟悉6264静态RAM的使用方法,掌握PC机外存扩充的手段。
2、通过对硬件电路的分析,学习了解总线的工作时序。
三.实验仪器:
2K的6264TPC-ZK实验系统PC
四.实验总体思路:
五.实验代码:
DATASSEGMENT
MESSAGEDB'ANYKEYTOSHOWTHECONTENTS!
',0DH,0AH,'$'
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVAX,0D000H
MOVES,AX;inites
MOVBX,6000H;EA=06000HSTARTFROMPA=0D6000H
MOVCX,100H
MOVDL,41H
WRITE:
;WRITEREAPTLY
MOVES:
[BX],DL
INCBX
INCDL
CMPDL,5AH
JLECIR
MOVDL,41H
CIR:
LOOPWRITE
;KEYOUT&IN
MOVDX,OFFSETMESSAGE
MOVAH,9
INT21H
MOVAH,01H
INT21H;WAIT
MOVAX,0D000H
MOVES,AX
MOVBX,6000H
MOVCX,0100H
READ:
MOVDL,ES:
[BX]
MOVAH,02H
INT21H
INCBX
LOOPREAD
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
六.实验结果:
主机屏幕上显示字符A-Z
实验三可编程并行接口
一.实验内容:
1.实验电路如图4-3-1,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2.编程从8255C口输入数据,再从A口输出。
二.实验目的:
通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法
三.实验仪器:
TPC-ZK实验系统
四.实验总体思路:
五实验步骤:
DATASSEGMENT
;此处输入数据段代码
MESSDB'ANYKEYTOEXITTODOS!
',0DH,0AH,'$'
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVAH,09H
MOVDX,OFFSETMESS
INT21H
INIT:
MOVDX,28BH
MOVAL,89H
OUTDX,AL
READ:
MOVDX,28AH
INAL,DX
MOVDX,288H
OUTDX,AL
MOVAH,06H
MOVDL,0FFH
INT21H
JNZEXIT
JMPREAD
EXIT:
MOVAX,4C00H
INT21H
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
六.实验结果:
通过逻辑电平开关可以控制LED灯的亮灭。
实验四可编程定时器/计数器
一.实验内容:
1.按图4-8-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
2.按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
二.实验目的:
掌握可编程定时器/计数器基本工作原理和编程方法,观察不同方式下的波形
三.实验仪器:
TPC-ZK实验系统
四.实验总体思路:
五.实验步骤:
实验
(一)
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVDX,0283H
MOVAL,10H
OUTDX,AL
MOVDX,0280H
MOVAL,0EH;AFTER15HIGH
OUTDX,AL
READ:
MOVDX,0280H
INAL,DX
PUSHDX
CALLDISPLAY
POPDX
MOVAH,06
MOVDL,0FFH
INT21H
JZREAD
MOVAH,4CH
INT21H
DISPLAYPROCNEAR
;PUSHDX
;MOVBL,0EH
;SUBBL,AL
;XCHGAL,BL
MOVDL,AL
CMPDL,9
JLEACI
ADDDL,7
ACI:
ADDDL,30H
MOVAH,02
INT21H
MOVDL,0DH
INT21H
MOVDL,0AH
INT21H
;POPDX
RET
DISPLAYENDP
CODESENDS
ENDSTART
实验
(二)
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVDX,0283H
MOVAL,36H
OUTDX,AL
MOVDX,0280H
MOVAL,0E8H
OUTDX,AL
MOVAL,03H
OUTDX,AL
MOVDX,0283H
MOVAL,76H
OUTDX,AL
MOVDX,0281H
MOVAL,0E8H
OUTDX,AL
MOVAL,03H
OUTDX,AL
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
六.实验结果:
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。
二.实验目的:
1、掌握PC机中断处理系统的基本原理。
2、学会编写中断服务程序。
三.实验仪器:
TPC-ZK实验系统
四.实验总体思路:
中断IRQ3实验
中断IRQ10实验:
中断嵌套实验
五.实验步骤:
实验
(一)
DATASSEGMENT
;此处输入数据段代码
MESSAGEDB'TCPAInterrupt!
',0AH,0DH,'$'
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVAX,CX;INITINTERRUPTADDRESS
MOVDS,AX
MOVDX,OFFSETINTER
MOVAX,250BH
INT21H
CLI;CLOSEINTERRUPT
INAL,21H;SETUPIRQ3,SAVEOTHERSTATUS
ANDAL,0F7H
OUT21H,AL
MOVCX,10
STI;OPENINTERRUPT
HERE:
JMPHERE
;.................................................................
INTERPROCFAR
MOVAX,DATAS;SHOWTHEMESSAGEWHENINTERRUPT
MOVDS,AX
MOVDX,OFFSETMESSAGE
MOVAH,09
INT21H
;.................................................................
MOVAL,20H
OUT20H,AL
SUBCX,1
JNZNEXT
INAL,21H
ORAL,08H
OUT21H,AL
STI
MOVAH,4CH
INT21H
NEXT:
IRET
INTERENDP
CODESENDS
ENDSTART
实验
(二)
DATASSEGMENT
;此处输入数据段代码
MESSAGEDB'TCPAInterrupt!
',0AH,0DH,'$'
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
;此处输入代码段代码
MOVAX,CX;INITINTERRUPTADDRESS
MOVDS,AX
MOVDX,OFFSETINTER
MOVAX,2507H
INT21H
CLI;CLOSEINTERRUPT
INAL,0A1H;SETUPIRQ3,SAVEOTHERSTATUS
ANDAL,0F7H
OUT0A1H,AL
MOVCX,10
STI;OPENINTERRUPT
HERE:
JMPHERE
;.................................................................
INTERPROCFAR
MOVAX,DATAS;SHOWTHEMESSAGEWHENINTERRUPT
MOVDS,AX
MOVDX,OFFSETMESSAGE
MOVAH,09
INT21H
;.................................................................
MOVAL,20H
OUT0A0H,AL
SUBCX,1
JNZNEXT
INAL,0A1H
ORAL,08H
OUT0A1H,AL
STI
MOVAH,4CH
INT21H
NEXT:
IRET
INTERENDP
CODESENDS
ENDSTART
实验(三)
DATASEGMENT
MESS3DB'TPCA3Interrupt!
',0AH,0DH,'$'
MESS10DB'TPCA10Interrupt!
',0AH,0DH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,CS
MOVDS,AX
MOVDX,OFFSETINT3
MOVAX,250BH
INT21H
CLI
INAL,21H
ANDAL,0F7H
OUT21H,AL
MOVCX,10
STI
MOVDX,OFFSETINT10
MOVAX,2572H
INT21H
CLI
INAL,21H
ANDAL,0FBH
OUT21H,AL
INAL,0A1H
ANDAL,0FBH
OUT0A1H,AL
MOVBX,10
STI
HERE:
JMPHERE
INT3:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMESS3
MOVAH,09
INT21H
LOOP1:
SUBCX,1
JNZLOOP1
STI
MOVAH,4CH
INT21H
INT10:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMESS10
MOVAH,09
INT21H
CIR:
SUBBX,1
JNZCIR
STI
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
六.实验结果:
1每按一次开关产生一次中断,屏幕上显示一次“TPCAInterrupt!
”,中断10次后程序退出
2手动产生单脉冲1作为中断请求信号,每按一次开关产生一次中断,在屏幕上显示一次“TPCAInterrupt!
”,中断10次后退出
3分别用手动产生单脉冲作为中断IRQ3和IRQ10的请求信号,申请中断IRQ3后,进入中断3程序,屏幕上显示一次“TPCA3Interrupt!
”,再申请高级中级IRQ10,幕上显示一次“TPCA10Interrupt!
”