




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一次实验实验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,290HOUTDX,AL(或INAL,DX)Y2输出一个负脉冲,执行下面两条指令:MOVDX,2A0HOUTDX,AL(或INAL,DX)Y4输出一个负脉冲。(=2\*ROMANII型机)2.接线=2\*ROMANII型机:I/O地址/Y2(290H---297H)接D触发器/CLKI/O地址/Y4(2A0H---2A7H)接D触发器/CDD触发器/D接D触发器/SD接+5VD触发器/Q接逻辑笔或L7=1\*ROMANI型机:I/O地址/Y4接D触发器/CLKI/O地址/Y5接D触发器/CD三、实验内容利用负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。四、实验内容实现分析分析实验连接图;说明实现该内容的原理;画出流程图。五、实验程序DATASEGMENTOUTPORT1EQU290HOUTPORT2EQU2A0HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXCNG:MOVDX,OUTPORT1OUTDX,ALCALLDELAY;调延时子程序MOVDX,OUTPORT2OUTDX,ALCALLDELAY;调延时子程序MOVAH,1INT16HJECNGMOVAX,4C00HINT21HDELAYPROCNEAR;延时子程序MOVBX,200LLL:MOVCX,0LL:LOOPLLDECBXJNELLLRETDELAYENDPCODEENDSENDSTART六、实验结果及分析试验中正确连线后,在软件中写好程序,当编译成功后运行。这是会看到小灯闪烁,且闪烁时间由延时程序决定,当按下键盘时结束。七、实验总结通过本次实验,基本掌握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,2A8HOUTDX,AL通过上述并行接口输入数据需要2条指令:MOVDX,2ADHINAL,DX3、接线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:ls244equ2a0hcodesegmentassumecs:codestart:movdx,ls244;从2A0输入一数据inal,dxmovdl,al;将所读数据保存在DL中movah,02int21hmovdl,0dh;显示回车符int21hmovdl,0ah;显示换行符int21hmovah,06;是否有键按下movdl,0ffhint21hjnzexitjestart;若无,则转startexit:movah,4ch;返回int21hcodeendsendstart实验内容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(不包括大括号里的),当拨动不同的开关(ASCII码值)作输入时可以看到及之对应的字符出现在屏幕上,且字符充满屏幕;运行试验程序2(包括大括号里的),当拨动不同的开关(ASCII码值)作输入时可以看到及之对应的字符出现在屏幕上,此时屏幕上只有一个字符。实验总结实验过程中,可能会出现这样或那样的问题,当出现这些问题时,比如程序出错、连接线路出错等等。当遇到这些问题时,首先应该自己解决,实在不行,再问老师。通过解决问题,可以学到很多东西的。实验十二系统中断控制器8259A一、实验目的1、掌握PC机中断处理系统的基本原理。2、学会编写中断服务程序。二、实验原理1、实验原理PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源:中断源 中断类型号 中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供15个中断源:中断源 中断类型号 中断功能IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 O73H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留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:DATASEGMENTMESSDB'TPCAINTERRUPT3!',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,CSMOVDS,AXMOVDX,OFFSETINT3MOVAX,250BHINT21HINAL,21HANDAL,0F7HOUT21H,ALMOVCX,10STILL:JMPLLINT3:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESSMOVAH,09INT21HMOVAL,20HOUT20H,ALLOOPNEXTINAL,21HORAL,08HOUT21H,ALSTIMOVAX,4C00HINT21HNEXT:IRETCODEENDSENDSTART实验12_2_系统中断INT10:dATASEGMENTMESSDB'TPCAINTERRUPT10!',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:CLIMOVAX,CSMOVDS,AXMOVDX,OFFSETINT10MOVAX,2572HINT21HINAL,21HANDAL,0FBHOUT21H,ALINAL,0A1HANDAL,0FBHOUT0A1H,ALMOVCX,10STILL:JMPLLINT10:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESSMOVAH,09INT21HMOVAL,20HOUT20H,ALOUT0A0H,ALLOOPNEXTINAL,21HORAL,04HOUT21H,ALSTIMOVAX,4C00HINT21HNEXT:IRETCODEENDSENDSTART实验结果及分析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中断输入实验:codesegmentassumecs:codestart:movax,csmovds,axmovdx,offsetint_procmovax,2572hint21hmovdx,21hinal,dxandal,0fbhoutdx,alinal,0a1handal,0fbhout0a1h,almovdx,28bhmoval,0b8houtdx,almoval,09houtdx,almovbl,8ll:jmpllint_proc:movdx,288hinal,dxmovdl,almovah,02hint21hmovdl,0dhint21hmovdl,0ahint21hmovdx,20hmoval,20houtdx,alout0a0h,aldecbljnznextinal,21horal,08hout21h,alstimovah,4chint21hnext:iretcodeendsendstart实验05_8255方式1中断输出实验:codesegmentassumecs:codestart:movax,csmovds,axmovdx,offsetint_procmovax,2572hint21hmovdx,21hinal,dxandal,0fBhoutdx,alinal,0a1handal,0fbhout0a1h,almovdx,28bhmoval,0a0houtdx,almoval,0dhoutdx,almovbl,1ll:jmpllint_proc:moval,blmovdx,288houtdx,almoval,20hout20h,alout0a0h,alshlbl,1jncnextinal,21horal,08hout21h,alstimovah,4chint21hnext:iretcodeendsendstart实验结果及分析从键盘输入一位
十进制数字(0~9),在七段数码管上显示出来。由于两个数码管之间轮流显示的间隔时间很短,因视觉暂留作用,所以人眼无法判别其间隔作用。实验总结
具体实验分析见各部分的调试实验分析。硬件是基础,做实验时要首先检查硬件设备是否可用,保证后续实验的可检测性。在实验中应不要带电接线、插拔芯片;插拔接线时轻微转动,便于插拔。在实验中学会使用示波器、万用表、逻辑笔观察、测量。实验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位数码管上显示出相应字符。四、实验内容实现分析分析实验连接图;说明实现该内容的原理(包括键盘和数码管);画出流程图实验程序DATASEGMENTIO8255_AEQU288HIO8255_kEQU28BHLEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHMESG1DB0DH,0AH,'INPUTANUM(0--9),OTHERKEYISEXIT:',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,IO8255_K;使8255的A口为输出方式MOVAX,80HOUTDX,ALSSS:MOVDX,OFFSETMESG1;显示提示信息MOVAH,09HINT21HMOVAH,01;从键盘接收字符INT21HCMPAL,'0';是否小于0JLEXIT;若是则退出CMPAL,'9';是否大于9JGEXIT;若是则退出SUBAL,30H;将所得字符的ASCII码减30HMOVBX,OFFSETLED;BX为数码表的起始地址XLAT;求出相应的段码MOVDX,IO8255_A;从8255的A口输出OUTDX,ALJMPSSS;转SSSEXIT:MOVAX,4C00H;返回INT21HCODEENDSENDSTART实验结果及分析当按下不同的按键时,数码管显示不同的字符。实验总结通过实验,掌握了键盘及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显示/L78254/GATE0接+5V三、实验内容 1、将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。2、将计数器0设置为方式2,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。四、实验内容实现分析分析实验连接图;说明实现这两种内容的原理;画出流程图。实验程序实验内容1(方式0):DATASEGMENTIO8254_0EQU280HIO8254_KEQU283HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,10H;设置8253通道0为工作方式0,二进制计数MOVDX,IO8254_KOUTDX,ALMOVDX,IO8254_0;送计数初值为0FHMOVAL,0FHOUTDX,ALLLL:INAL,DX;读计数初值CALLDISP;调显示子程序PUSHDXMOVAH,06HMOVDL,0FFHINT21HPOPDXJZLLLMOVAX,4C00H;退出INT21HDISPPROCNEAR;显示子程序PUSHDXANDAL,0FH;首先取低四位MOVDL,ALCMPDL,9;判断是否<=9JLENUM;若是则为'0'-'9',ASCII码加30HADDDL,7;否则为'A'-'F',ASCII码加37HNUM:ADDDL,30HMOVAH,02H;显示INT21HMOVDL,0DH;加回车符INT21HMOVDL,0AH;加换行符INT21HPOPDXRET;子程序返回DISPENDPCODEENDSENDSTART实验内容2(方式2):DATASEGMENTIO8254_0EQU280HIO8254_KEQU283HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,14H;设置8253通道0为工作方式2,二进制计数MOVDX,IO8254_KOUTDX,ALMOVDX,IO8254_0;送计数初值为0FHMOVAL,0FHOUTDX,ALLLL:INAL,DX;读计数初值CALLDISP;调显示子程序PUSHDXMOVAH,06HMOVDL,0FFHINT21HPOPDXJZLLLMOVAX,4C00H;退出INT21HDISPPROCNEAR;显示子程序PUSHDXANDAL,0FH;首先取低四位MOVDL,ALCMPDL,9;判断是否<=9JLENUM;若是则为'0'-'9',ASCII码加30HADDDL,7;否则为'A'-'F',ASCII码加37HNUM:ADDDL,30HMOVAH,02H;显示INT21HMOVDL,0DH;加回车符INT21HMOVDL,0AH;加换行符INT21HPOPDXRET;子程序返回DISPENDPCODEENDSENDSTART实验结果及分析当把编写的程序编译运行之后,通过手动调整正脉冲发生器,可以看到L7闪烁。七、实验总结通过本次实验,掌握了8254芯片的基本功能和工作方式,学到典型电路的接法和学会定时应用实验产生方波的方法。8254同8253一样,方式2和3是周期的,可以自动循环的工作方式;方式0,1,4,5则是单稳态的,非周期的工作方式。在周期形式下可根据输出波形不同选择方式2(负脉冲)和方式3(方波);在非周期中根据输出波形不同选择方式0,1(计数期间为低,计数到0时上升)和方式4,5(负脉冲);方式0,1可继续通过触发方式不同选择方式0(软触发)和方式1(硬触发);方式4,5可继续通过触发方式不同选择方式4(软触发)和方式5(硬触发)。实验6-28254定时器实验一、实验目的掌握8253工作方式3的基本工作原理、计数特点和编程方法。二、实验内容1、原理如图。2、接线CLK0连接时钟 1MHZ8254/CS接I/O译码/Y0(280H---287H)8254/OUT0接8254/CLK18254/GATE0,GATE1接+5V8254/OUT1接逻辑笔或L7三、实验内容1、将计数器0、计数器1分别设置工作方式,CLK0连接时钟1MHZ,由T01000分频后变为1000HZ,再由T1进行1000分频后得1HZ。2、控制L7等闪烁的周期为4S.四、实验内容实现分析分析实验连接图;说明实现该内容的原理;画出流程图。实验程序DATASEGMENTIO8254_0EQU280HIO8254_1EQU281HIO8254_KEQU283HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,IO8254_K;向8254写控制字MOVAL,36H;使0通道为工作方式3OUTDX,ALMOVAX,1000;写入循环计数初值1000MOVDX,IO8254_0OUTDX,AL;先写入低字节MOVAL,AHOUTDX,AL;后写入高字节MOVDX,IO8254_KMOVAL,76H;设8254通道1工作方式2OUTDX,ALMOVAX,1000;写入循环计数初值1000MOVDX,IO8254_1OUTDX,AL;先写低字节MOVAL,AHOUTDX,AL;后写高字节ddd:JMPddd;动态停机CODEENDSENDSTART实验结果及分析分别实现1s变化和4s变化实验总结通过本次实验,掌握了8254芯片的基本功能和工作方式,学到典型电路的接法和学会定时应用实验产生方波的方法。实验7串行通讯一、实验目的1、了解串行通讯的基本原理。2、掌握串行接口芯片8251的工作原理和编程方法。二、实验原理1、按原理图连接好电路,其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。2、接线8254/CLK0接时钟/1MHz8254/CS接I/O译码/Y0(280H---287H)8254/OUT0接8251/TX/RXCLK8254/GATE0接+5V8251/TXD接8251/RXD8251/CS接I/O译码/Y7(2B8H---2BFH)三、实验内容从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。四、实验内容实现分析分析实验连接图;说明实现该内容的原理;画出流程图。实验程序datasegmentio8253aequ280hio8253bequ283hio8251aequ2b8hio8251bequ2b9hmes1db'youcanplayakeyonthekeybord!',0dh,0ah,24hmes2ddmes1dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,io8253b;设置8253计数器0工作方式moval,16houtdx,almovdx,io8253amoval,52;给8253计数器0送初值outdx,almovdx,io8251b;初始化8251xoral,almovcx,03;向8251控制端口送3个0delay:callout1loopdelaymoval,40h;向8251控制端口送40H,使其复位callout1moval,4eh;设置为1个停止位,8个数据位,波特率因子为16callout1moval,27h;向8251送控制字允许其发送和接收callout1ldsdx,mes2;显示提示信息movah,09int21hwaiti:movdx,io8251binal,dxtestal,01;发送是否准备好jzwaitimovah,01;是,从键盘上读一字符int21hcmpal,27;若为ESC,结束jzexitmovdx,io8251aincaloutdx,al;发送movcx,40hs51:loops51;延时next:movdx,io8251binal,dxtestal,02;检查接收是否准备好jznext;没有,等待movdx,io8251ainal,dx;准备好,接收movdl,almovah,02;将接收到的字符显示在屏幕上int21hjmpwaitiexit:movah,4ch;退出int21hout1procnear;向外发送一字节的子程序outdx,alpushcxmovcx,40hgg:loopgg;延时popcxretout1endpcodeendsendstart实验结果及分析从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。实验总结通过本次实验,掌握了8254芯片的基本功能和工作方式,了解串行通讯的基本原理,掌握串行接口芯片8251的工作原理和编程方法。第四次实验实验8继电器控制实验一、实验目的1、了解微机控制直流继电器的一般方法。2、进一步熟悉使用8255、8253。二、实验原理将8253计数器0设置为方式3、计数器1设置为方式0并联使用,CLK0接1MHZ时钟,设置两个计数器的初值(乘积为5000000)启动计数器工作后,经过5秒钟OUT1输出高电平。通过8255的PA0口查询OUT1的输出电平,用C口PC0输出开关量控制继电器动作。继电器开关量输入端输入“1”时,继电器常开触点闭合,发光二极管接通,指示灯亮,输入“0”时断开,指示灯灭。2、接线8255/CS接I/O地址译码/Y1(288H---28FH)8255/PC0接继电器8255/PA0接8254/OUT18254/CS接I/O地址译码/Y0(280H---287H)8254/CLK0接时钟/1MHz8254/OUT0接8254/CLK18254/GATE0,1接+5V三、实验内容1、使用8254定时,让继电器周而复始的闭合5秒钟(指示灯灯亮),断开5秒钟(指示灯灯)。2、改变指示灯亮灭的周期为2s,改用PC7口控制继电器。四、实验内容实现分析开始分析实验连接图;说明实现这两种内容的原理;画出流程图。开始延时:继电器:初始化8253初始化8253将PC0置位将PC0置位按键按键是延时延时否否查询8255将PC0复位否查询8255将PC0复位延时延时是时间到返回子程序时间到返回子程序结束结束五、实验程序周期5秒:io8253bequ281hio8253cequ283hio8255aequ288hio8255cequ28ahio8255ctlequ28bhcodesegmentassumecs:codestart:movdx,io8255ctlmoval,90hlll:outdx,almovdx,io8255cmoval,00000001B;将PC0置位outdx,alcalldelay;延时5smoval,0;将PC0复位outdx,alcalldelay;延时5sjmplll;转llldelayprocnear;延时子程序pushdxmovdx,io8253c;设8254计数器为方式3moval,36houtdx,almovdx,io8253amovax,10000;写入计数器初值10000outdx,almoval,ahoutdx,almovdx,io8253cmoval,70h;设计数器1为工作方式0outdx,almovdx,io8253bmovax,500;写入计数器初值500outdx,almoval,ahoutdx,alll2:movah,06;是否有键按下movdl,0ffhint21hjneexit;若有则转exitmovdx,io8255ainal,dx;查询8255的Pa0是否为高电平andal,01hjzll2;若不是则继续popdxret;定时时间到,子程序返回exit:movah,4chint21hdelayendpcodeendsendstart周期2秒:io8253aequ280hio8253bequ281hio8253cequ283hio8255aequ288hio8255cequ28ahio8255ctlequ28bhcodesegmentassumecs:codestart:movdx,io8255ctlmoval,90hlll:outdx,almovdx,io8255cmoval,80H;将PC0置位outdx,alcalldelay;延时5smoval,0;将PC0复位outdx,alcalldelay;延时5sjmplll;转llldelayprocnear;延时子程序pushdxmovdx,io8253c;设8254计数器为方式3moval,36houtdx,almovdx,io8253amovax,10000;写入计数器初值10000outdx,almoval,ahoutdx,almovdx,io8253cmoval,70h;设计数器1为工作方式0outdx,almovdx,io8253bmovax,100;写入计数器初值500outdx,almoval,ahoutdx,alll2:movah,06;是否有键按下movdl,0ffhint21hjneexit;若有则转exitmovdx,io8255ainal,dx;查询8255的Pa0是否为高电平andal,01hjzll2;若不是则继续popdxret;定时时间到,子程序返回exit:movah,4chint21hdelayendpcodeendsendstart实验结果及分析实验现象:实验内容一:通过8254定时,让继电器周而复始的闭合5秒钟,这时候指示灯灯亮,断开5秒钟这时候指示灯灭,这样周而复始,指示灯亮灭。实验内容二:通过编程,改用PC7口控制继电器,同时将原本接在PC0的接线改接到PC7,同时改变指示灯亮灭的周期为2s,这样实现指示灯每隔两秒钟亮,两分钟后熄灭,两秒钟后再亮,周而复始。实验总结通过本次实验了解了微机控制直流继电器的一般方法。进一步熟悉使用8255、8253的方法,进一步巩固了课本上所学的知识,锻炼了自己理论联系实际的能力。实验9电子琴实验一、实验目的1、通过8253产生不同的频率信号,使PC机成为简易电子琴。2、了解利用8255和8253产生音乐的基本方法。二、实验原理利用8255的PA0口来施加控制信号给及门,用来控制扬声器的开关状态。再利用设置不同的计数值,使8253产生不同频率的波形,使扬声器产生不同频率的音调,达到类似及音阶的高低音变换。对于音乐,每个音阶都有确定的频率。各音阶标称频率值:2、接线8255/CS接I/O地址译码/Y1(288H---28FH)8255/PA0接及门/A8254/CLK0接时钟/1MHz8254/CS接I/O译码/Y0(280H---287H)8254/OUT0接及门/B8254/GATE0接8255/PA1及门/Y接喇叭三、实验内容1、使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。2、实现一句音乐的播放。四、实验内容实现分析分析实验连接图;说明实现这两种内容的原理;画出流程图。实验程序用键盘按键响音乐:datasegmentio8255aequ288hio8255ctlequ28bhio8253aequ280hio8253bequ283htabledw524,588,660,698,784,880,988,1048;高音的;tabledw262,294,330,347,392,440,494,524;低音的msgdb'Press1,2,3,4,5,6,7,8,ESC:',0dh,0ah,'$'dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,offsetmsgmovah,9int21h;显示提示信息sing:movah,7int21h;从键盘接收字符,不回显cmpal,1bhjefinish;若为ESC键,则转finishcmpal,'1'jlsingcmpal,'8'jgsing;若不在'1'-'8'之间转singsubal,31hshlal,1;转为查表偏移量movbl,al;保存偏移到bxmovbh,0movax,4240H;计数初值=1000000/频率,保存到AXmovdx,0FHdivwordptr[table+bx]movbx,axmovdx,io8253b;设置8254计时器0方式3,先读写低字节,再读写高字节moval,00110110Boutdx,almovdx,io8253amovax,bxoutdx,al;写计数初值低字节moval,ahoutdx,al;写计数初值高字节movdx,io8255ctl;设置8255A口输出moval,10000000Boutdx,almovdx,io8255amoval,03houtdx,al;置PA1PA0=11(开扬声器)calldelay;延时moval,0houtdx,al;置PA1PA0=00(关扬声器)jmpsingfinish:movax,4c00hint21hdelayprocnear;延时子程序pushcxpushaxmovax,15x1:movcx,0ffffhx2:deccxjnzx2decaxjnzx1popaxpopcxretdelayendpcodeendsendstart播放一段音乐:datasegmentio8255aequ288hio8255ctlequ28bhio8253aequ280hio8253bequ283htabledw524,588,660,698,784,880,988,1048;高音的;tabledw262,294,330,347,392,440,494,524;低音的dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovah,9int21h;显示提示信息moval,1sing:subal,31hshlal,1;转为查表偏移量movbl,al;保存偏移到bxmovbh,0movax,4240H;计数初值=1000000/频率,保存到AXmovdx,0FHdivwordptr[table+bx]movbx,axmovdx,io8253b;设置8254计时器0方式3,先读写低字节,再读写高字节moval,00110110Boutdx,almovdx,io8253amovax,bxoutdx,al;写计数初值低字节moval,ahoutdx,al;写计数初值高字节movdx,io8255ctl;设置8255A口输出moval,10000000Boutdx,almovdx,io8255amoval,03houtdx,al;置PA1PA0=11(开扬声器)calldelay;延时IncalCmpal,8Jzloopjmpsingloop:Moval,1Jmpsingfinish:movax,4c00hint21hdelayprocnear;延时子程序pushcxpushaxmovax,15x1:movcx,0ffffhx2:deccxjnzx2decaxjnzx1popaxpopcxretdelayendpcodeendsendstart实验结果及分析实验一的实验现象:当按下键盘上的1~7数字键时,电子琴发出响应数字的音阶。实验二的实验现象:当程序执行的时候,电子琴发出按程序设定的音阶的声音,实现一句音乐的播放。七、实验总结通过实验掌握了通过8253产生不同的频率信号,使PC机成为简易电子琴的方法,以及利用8255和8253产生音乐的基本方法。编写实验二的程序时,需要特别注意每个音阶的延时时间,使得每个音阶能够被分辨清楚。实验10-1模/数转换器0809查询法实验一、实验目的了解模/数转换的基本原理,掌握ADC0809的使用方法。二、实验内容1、实验电路原理图如图。通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压及转换后数字的关系。启动IN0开始转换:Out02980读取转换结果:In0298ADC0809的IN0口地址为298H,IN1口地址为299H。IN0单极性输入电压及转换后数字的关系参考原理图:其中Ui为输入电压,UREF为参考电压,这里的参考电压为这里的参考电压为该实验区可调电位器输出电压,便于编程计算默认为。一次A/D转换的程序可以为MOVDX,口地址OUTDX,AL;启动转换 ;延时INAL,DX;读取转换结果放在AL中2、接线0809/CS接I/O地址译码/Y3(298H---29FH)0809/IN0接电位器/0~5V三、实验内容编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。四、实验内容实现分析分析实验连接图;说明实现此内容的原理;画出流程图。实验程序io0809aequ298hcodesegmentassumecs:codestart:movdx,io0809a;启动A/D转换器outdx,almovcx,0ffh;延时delay:loopdelayinal,dx;从A/D转换器输入数据movbl,al;将AL保存到BLmovcl,4shral,cl;将AL右移四位calldisp;调显示子程序显示其高四位moval,blandal,0fhcalldisp;调显示子程序显示其低四位movah,02movdl,20h;加回车符int21hmovdl,20hint21hpushdxmovah,06h;判断是否有键按下movdl,0ffhint21hpopdxjestart;若没有转STARTmovah,4ch;退出int21hdispprocnear;显示子程序movdl,alcmpdl,9;比较DL是否>9jleddd;若不大于则为'0'-'9',加30h为其ASCII码adddl,7;否则为'A'-'F',再加7ddd:adddl,30h;显示movah,02int21hretdispendpcodeendsendstart实验结果及分析旋转电位器就会有数字变化实验总结通过本次实验了解了模/数转换的基本原理,掌握了ADC0809的使用方法。实验10-2模/数转换器0809中断法实验一、实验目的了解模/数转换的基本原理,掌握利用中断方法对ADC0809的编程方法。二、实验内容程序由主程序和中断服务程序组成:1.主程序包括初始化,等待中断;如果有中断时在主程序中再启动一次ADC0809,然后等待下一次中断。主程序等待中断是借助于一个标志(SI寄存器);2.中断服务程序中首先读取ADC0809中的数据,然后转换的数据(用16进制数)后通过屏幕显示。2、接线0809/CS接I/O地址译码/Y3(298H---29FH)0809/IN0接电位器/0~5V0809/EOC接总线/MIRQx三、实验内容将A/D转换的结果显示在屏幕上。四、实验内容实现分析分析实验连接图;说明实现此内容的原理;画出流程图。实验程序io0809aequ298hstackssegmentstackstadw512dup()topequlengthstastacksendscodesegmentassumecs:codestart:movax,csmovds,axmovdx,offsetint3;系统功能调用、设置中断向量、由DS:DX指向四个字节地址movax,250bh;AL=中断类型号(=0bh---0b*4=向量表地址)int21h;(实现向中断性量表中添置int3的地址)movax,stacks;设定堆栈段寄存器SSmovss,axmovsp,top;设定堆栈指针SP的初值inal,21h;设置中断屏蔽字(采用"读-及-写"方式使能)andal,0f7h;使能IRQ3out21h,al;写入OCW1(屏蔽字)movsi,0;建立一个标志,原始=0movdx,io0809a;启动A/D转换器outdx,alloop1:sti;开中断(IF置1)inal,dxmovcx,0ffffh;设定延时常数cmpsi,01;查询标志、判断是否转换完成jneloop1;未完成时:返回等待loop3:looploop3;转换完成时首先延时climovdx,io0809a;再次启动A/D转换器outdx,aljmploop1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业并购居间合同
- 学校与股东合同范本
- 简易仓储保管合同范本
- 封窗订货合同范本
- 分租干果柜台合同范本
- 演艺剧目创作合同范本
- 网上产品订货合同范本
- 2024年中小学生安全教育日活动方案
- 蔬菜大棚转让合同范本
- 国家建委 建筑合同范本
- 食品销售流程图
- 版匹兹堡睡眠质量指数问卷附评分标准2
- 每周安全安全检查记录表
- 2. 精准医学与支气管哮喘治疗
- DB11-T 1812-2020既有玻璃幕墙安全性检测与鉴定技术规程
- Rubicon科室讲课幻灯
- 旧混凝土路面加铺沥青混凝土面层施工组织设计方案
- 第四节 张益-髁突骨折
- 小企业会计准则财务报表模板
- 狼和兔子的凄美爱情故事,前世今生的约定,看哭了很多人
- 材料科学基础晶体结构缺陷ppt课件
评论
0/150
提交评论