微机实验报告.docx
《微机实验报告.docx》由会员分享,可在线阅读,更多相关《微机实验报告.docx(80页珍藏版)》请在冰豆网上搜索。
微机实验报告
微机实验报告
第一次实验
实验01I/O端口地址译码实验
一、实验目的
掌握I/O地址译码电路的工作原理。
二、实验原理
1、实验电路如原理图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址”输出端引出,每个输出端包含8个地址,Y0:
280H~287H,Y1:
288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
例如:
执行下面两条指令
MOVDX,290H
OUTDX,AL(或INAL,DX)
Y2输出一个负脉冲,执行下面两条指令:
MOVDX,2A0H
OUTDX,AL(或INAL,DX)
Y4输出一个负脉冲。
(
型机)
2.接线
型机:
I/O地址/Y2(290H---297H)接D触发器/CLK
I/O地址/Y4(2A0H---2A7H)接D触发器/CD
D触发器/D接D触发器/SD接+5V
D触发器/Q接逻辑笔或L7
型机:
I/O地址/Y4接D触发器/CLK
I/O地址/Y5接D触发器/CD
……
三、实验内容
利用负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
四、实验内容实现分析
分析实验连接图;说明实现该内容的原理;画出流程图。
五、实验程序
DATASEGMENT
OUTPORT1EQU290H
OUTPORT2EQU2A0H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
CNG:
MOVDX,OUTPORT1
OUTDX,AL
CALLDELAY;调延时子程序
MOVDX,OUTPORT2
OUTDX,AL
CALLDELAY;调延时子程序
MOVAH,1
INT16H
JECNG
MOVAX,4C00H
INT21H
DELAYPROCNEAR;延时子程序
MOVBX,200
LLL:
MOVCX,0
LL:
LOOPLL
DECBX
JNELLL
RET
DELAYENDP
CODEENDS
ENDSTART
六、实验结果与分析
试验中正确连线后,在软件中写好程序,当编译成功后运行。
这是会看到小灯闪烁,且闪烁时间由延时程序决定,当按下键盘时结束。
七、实验总结
通过本次实验,基本掌握I/O地址译码电路的工作原理。
会写延时程序。
在实验中达到了预期灯泡一亮一灭的效果。
自己可以控制灯泡亮灭的速度。
实验02-1简单并行接口输入输出
一、实验目的
掌握简单并行接口的工作原理及使用方法。
二、实验原理
1、简单并行输入接口电路如图连接。
74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。
2、简单并行输出接口电路如图连接。
(74LS273插通用插座,74LS32用实验台上的“或门”)。
74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。
上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令:
MOVAL,数据
MOVDX,2A8H
OUTDX,AL
通过上述并行接口输入数据需要2条指令:
MOVDX,2ADH
INAL,DX
3、接线
244输入/CS接I/O译码/Y4(2A0H---2A7H)
244输入/JP12(O7---O0)接总线/JP14(D7---D0)
244输入/JP11(IN7---IN0)接逻辑开关/JP1(K7---K0)
273输出/CS接I/O译码/Y5(2A8H---2AFH)
273输出/JP12(O7---O0)接LED显示/JP2(L7---L0)
273输出/JP9(IN7---IN0)接总线/JP14(D7---D0)
三、实验内容
1、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。
2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。
四、实验内容实现分析
分析实验连接图;说明实现该内容的原理;画出流程图。
五、实验程序
实验内容1:
ls244equ2a0h
codesegment
assumecs:
code
start:
movdx,ls244;从2A0输入一数据
inal,dx
movdl,al;将所读数据保存在DL中
movah,02
int21h
movdl,0dh;显示回车符
int21h
movdl,0ah;显示换行符
int21h
movah,06;是否有键按下
movdl,0ffh
int21h
jnzexit
jestart;若无,则转start
exit:
movah,4ch;返回
int21h
codeends
endstart
实验内容2:
inp=0ef00h-280h+2a0h
code segment assume cs:
code
start:
mov dx , inp
in al ,dx
mov dl , al 输入数据到dl
mov ah , 2
int 21h 显示单个字符
{ mov dl , 0dh
int 21h }
jmp start 无键盘输入则转start
mov ah , 4ch
int 21h 结束
code ends
end
六、实验结果与分析
试验中正确连线后,在软件中写好程序,当编译成功后运行。
此时改变开关的开通与关断组合,屏幕会显示对应的字符。
接通电路,运行实验程序1,当键盘输入不同值时,可以看到
varcpro_psid="u2787156";
varcpro_pswidth="966";
varcpro_psheight="120";
实验箱上的LED灯与键盘输入的值对应的ASCII码值一一对应。
2、接通电路,运行实验程序2(不包括大括号里的),当拨动不同的开关(ASCII码值)作输入时可以看到与之对应的字符出现在屏幕上,且字符充满屏幕;运行试验程序2(包括大括号里的),当拨动不同的开关(ASCII码值)作输入时可以看到与之对应的字符出现在屏幕上,此时屏幕上只有一个字符。
七、实验总结
实验过程中,可能会出现这样或那样的问题,当出现这些问题时,比如程序出错、连接线路出错等等。
当遇到这些问题时,首先应该自己解决,实在不行,再问老师。
通过解决问题,可以学到很多东西的。
实验十二系统中断控制器8259A
一、实验目的
1、掌握PC机中断处理系统的基本原理。
2、学会编写中断服务程序。
二、实验原理
1、实验原理
PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。
IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源:
中断源中断类型号中断功能
IRQ008H时钟
IRQ109H键盘
IRQ20AH保留
IRQ3OBH串行口2
IRQ40CH串行口1
IRQ50DH硬盘
IRQ60EH软盘
IRQ70FH并行打印机
8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。
对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供15个中断源:
中断源中断类型号中断功能
IRQ8070H实时时钟
IRQ9071H用户中断
IRQ10072H保留
IRQ11O73H保留
IRQ12074H保留
IRQ13075H协处理器
IRQ14076H硬盘
IRQ15077H保留
TPC-USB实验板上,固定的接到了3号中断IRQ3上,即进行中断实验时,所用中断类型号为0BH。
TPC-USB实验板上,扩展中断固定的接到了10号中断IRQ10上,即进行中断实验时,所用中断类型号为072H。
2、接线
单脉冲2/正脉冲接IRQ/总线
单脉冲1/正脉冲接IRQ10/usb核心板
三、实验内容
1、中断IRQ3实验,实验电路如图12-1,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。
要求每按一次开关产生一次中断,在屏幕上显示一次“TPCAInterrupt3!
”,中断10次后程序退出。
2、中断IRQ10实验,实验电路如图12-2,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。
要求每按一次开关产生一次中断,在屏幕上显示一次“TPCAInterrupt10!
”,中断10次后程序退出。
3、中断嵌套实验,分别用手动产生单脉冲作为中断IRQ3和IRQ10的请求信号,申请中断IRQ3后,进入中断3程序,再申请高级中断IRQ10。
四、实验内容实现分析
分析实验连接图;说明实现该内容的原理;画出流程图。
实验12_1_系统中断INT3:
实验12_2_系统中断INT10:
五、实验程序
实验12_1_系统中断INT3:
DATASEGMENT
MESSDB'TPCAINTERRUPT3!
',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,CS
MOVDS,AX
MOVDX,OFFSETINT3
MOVAX,250BH
INT21H
INAL,21H
ANDAL,0F7H
OUT21H,AL
MOVCX,10
STI
LL:
JMPLL
INT3:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMESS
MOVAH,09
INT21H
MOVAL,20H
OUT20H,AL
LOOPNEXT
INAL,21H
ORAL,08H
OUT21H,AL
STI
MOVAX,4C00H
INT21H
NEXT:
IRET
CODEENDS
ENDSTART
实验12_2_系统中断INT10:
dATASEGMENT
MESSDB'TPCAINTERRUPT10!
',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
CLI
MOVAX,CS
MOVDS,AX
MOVDX,OFFSETINT10
MOVAX,2572H
INT21H
INAL,21H
ANDAL,0FBH
OUT21H,AL
INAL,0A1H
ANDAL,0FBH
OUT0A1H,AL
MOVCX,10
STI
LL:
JMPLL
INT10:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMESS
MOVAH,09
INT21H
MOVAL,20H
OUT20H,AL
OUT0A0H,AL
LOOPNEXT
INAL,21H
ORAL,04H
OUT21H,AL
STI
MOVAX,4C00H
INT21H
NEXT:
IRET
CODEENDS
ENDSTART
六、实验结果与分析
1、直接用手动产单脉冲作为中断请求信号,每按一次开关产生一次中断,在屏幕上显示一次“TPCAInterrupt3!
”,中断10次后程序退出。
2、直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。
每按一次开关产生一次中断,在屏幕上显示一次“TPCAInterrupt10!
”,中断10次后程序退出。
七、实验总结
通过本次实验,基本掌握8259的使用,会写初始化程序。
在实验中达到了预期显示中断的效果,极大促进了我对微机原理的学习兴趣,同时巩固了课本上学到的知识,把所学知识运用到实践,锻炼了自己动手能力。
实验48255并行I/O输入/输出实验
一、实验目的
掌握8255方式0的工作原理及使用方法。
二、实验原理
1、实验电路如原理图,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2、接线:
8255/(PC7---PC0)接逻辑开关/(K7---K0)
8255/(PA7---PA0)接LED显示/(L7---L0)
8255/CS接I/O译码/Y1(288H---28FH)
三、实验内容
2、编程从8255C口输入数据,再从A口输出。
3、编程从8255A口输入数据,从B口输出。
四、实验内容实现分析
1、分析实验连接图,并说明各端口的地址;
2、分别画出实现内容的流程图。
实验06_8255方式1中断输入实验:
实验05_8255方式1中断输出实验:
五、实验程序
实验06_8255方式1中断输入实验:
codesegment
assumecs:
code
start:
movax,cs
movds,ax
movdx,offsetint_proc
movax,2572h
int21h
movdx,21h
inal,dx
andal,0fbh
outdx,al
inal,0a1h
andal,0fbh
out0a1h,al
movdx,28bh
moval,0b8h
outdx,al
moval,09h
outdx,al
movbl,8
ll:
jmpll
int_proc:
movdx,288h
inal,dx
movdl,al
movah,02h
int21h
movdl,0dh
int21h
movdl,0ah
int21h
movdx,20h
moval,20h
outdx,al
out0a0h,al
decbl
jnznext
inal,21h
oral,08h
out21h,al
sti
movah,4ch
int21h
next:
iret
codeends
endstart
实验05_8255方式1中断输出实验:
codesegment
assumecs:
code
start:
movax,cs
movds,ax
movdx,offsetint_proc
movax,2572h
int21h
movdx,21h
inal,dx
andal,0fBh
outdx,al
inal,0a1h
andal,0fbh
out0a1h,al
movdx,28bh
moval,0a0h
outdx,al
moval,0dh
outdx,al
movbl,1
ll:
jmpll
int_proc:
moval,bl
movdx,288h
outdx,al
moval,20h
out20h,al
out0a0h,al
shlbl,1
jncnext
inal,21h
oral,08h
out21h,al
sti
movah,4ch
int21h
next:
iret
codeends
endstart
六、实验结果与分析
1.从键盘输入一位 十进制数字(0~9),在七段数码管上显示出来。
2.由于两个数码管之间轮流显示的间隔时间很短,因视觉暂留作用,所以人眼无法判别其间隔作用。
七、实验总结
具体实验分析见各部分的调试实验分析。
硬件是基础,做实验时要首先检查硬件设备是否可用,保证后续实验的可检测性。
在实验中应不要带电接线、插拔芯片;插拔接线时轻微转动,便于插拔。
在实验中学会使用示波器、万用表、逻辑笔观察、测量。
实验54X4键盘键号显示实验
一、实验目的
1、熟悉8255控制键盘及显示电路的基本功能及编程方法。
2、了解一般键盘和显示电路的工作原理。
二、实验原理
1.原理如图
2.接线:
8255/CS接I/O地址译码/Y1(288H---28FH)
8255/(PA7---PA0)接数码管/(DP---A)
8255/(PC7---PC0)接4X4键盘/(行3---列0)
数码管/S0接GND
三、实验内容
编程序:
设置8255C口键盘输入、A口为数码管段码输出。
使得在小键盘上每按一
个键,8位数码管上显示出相应字符。
四、实验内容实现分析
分析实验连接图;说明实现该内容的原理(包括键盘和数码管);画出流程图
五、实验程序
DATASEGMENT
IO8255_AEQU288H
IO8255_kEQU28BH
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
MESG1DB0DH,0AH,'INPUTANUM(0--9),OTHERKEYISEXIT:
',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,IO8255_K;使8255的A口为输出方式
MOVAX,80H
OUTDX,AL
SSS:
MOVDX,OFFSETMESG1;显示提示信息
MOVAH,09H
INT21H
MOVAH,01;从键盘接收字符
INT21H
CMPAL,'0';是否小于0
JLEXIT;若是则退出
CMPAL,'9';是否大于9
JGEXIT;若是则退出
SUBAL,30H;将所得字符的ASCII码减30H
MOVBX,OFFSETLED;BX为数码表的起始地址
XLAT;求出相应的段码
MOVDX,IO8255_A;从8255的A口输出
OUTDX,AL
JMPSSS;转SSS
EXIT:
MOVAX,4C00H;返回
INT21H
CODEENDS
ENDSTART
六、实验结果与分析
当按下不同的按键时,数码管显示不同的字符。
七、实验总结
通过实验,掌握了键盘与8255以及数码管的连接原理,进一步的掌握了8255中各个端口的使用方法,以及按键的识别方法和按键扫描的方法。
实验过程中,可能会出现这样或那样的问题,当出现这些问题时,比如程序出错、连接线路出错等等。
当遇到这些问题时,首先应该自己解决,实在不行,再问老师。
通过解决问题,可以学到很多东西的。
实验6-1可编程定时/计数器8254A
一、实验目的
掌握8254的基本工作原理和编程方法,用示波器观察不同方式下的波形。
二、实验原理
1、三个16位“减一”计数单元:
分别称为CNT0、CNT1和CNT2。
三个计数器相互独立、可以工作在不同的方式。
每一个计数器都有对应的三条输入、输出信号线:
CLK外部计数脉冲输入线,OUT计数器溢出信号线和GATE门控输入信号线(控制计数器是否工作)。
控制寄存器:
芯片内部四个寄存器之一,占用一个寄存器单元的地址,由三个计数器共用。
只能写入不能读出,用于设定计数器的工作方式。
编程时在程序的初始化部分中,通过对该寄存器写入相应的命令字来设定对应计数器的工作方式。
2、接线
8254/CLK0接单脉冲/正脉冲
8254/CS接I/O译码/Y0(280H---287H)
8254/OUT0接LED显示/L7
8254/GATE0接+5V
三、实验内容
1、将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。
2、将计数器0设置为方式2,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。
四、实验内容实现分析
分析实验连接图;说明实现这两种内容的原理;画出流程图。
五、实验程序
实验内容1(方式0):
DATASEGMENT
IO8254_0EQU280H
IO8254_KEQU283H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,10H;设置8253通道0为工作方式0,二进制计数
MOVDX,IO8254_K
OUTDX,AL
MOVDX,IO8254_0;送计数初值为0FH
MOVAL,0FH
OUTDX,AL
LLL:
INAL,DX;读计数初值
CALLDISP;调显示子程序
PUSHDX
MOVAH,06H
MOVDL,0FFH
INT21H
POPDX
JZLLL
MOVAX,4C00H;退出
INT21H
DISPPROCNEAR;显示子程序
PUSHDX
ANDAL,0FH;首先取低四位
MOVDL,AL
CMPDL,9;判断是否<=9
JLENUM;若是则为'0'-'9',ASCII码加30H
ADDDL,7;否则为'A'-'F',ASCII码加37H
NUM:
ADDDL,30H
MOVAH,02H;显示
INT21H
MOVDL,0DH;加回车符
INT21H
MOVDL,0AH;加换行符
INT21H
POPDX
RET;子程序返回
DISPENDP
CODEENDS
ENDSTART
实验内容2