北邮微机原理TPC-ZK课后实验指导书(附答案)_第1页
北邮微机原理TPC-ZK课后实验指导书(附答案)_第2页
北邮微机原理TPC-ZK课后实验指导书(附答案)_第3页
北邮微机原理TPC-ZK课后实验指导书(附答案)_第4页
北邮微机原理TPC-ZK课后实验指导书(附答案)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机硬件实验

第一次实验实验一I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。二、实验原理及内容实验电路如图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。例如:执行下面两条指令MOVDX,2A0HOUTDX,AL(或INAL,DX)Y4输出一个负脉冲,执行下面两条指令MOVDX,2A8HOUTDX,AL(或INAL,DX)Y5输出一个负脉冲。利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。三、硬件接线图与程序流程图接线:Y4/IO地址接CLK/D触发器Y5/IO地址接CD/D触发器D/D触发器接SD/D角发器接+5VQ/D触发器接L7(LED灯)或逻辑笔连接图:

流程图:开始在Y4端口输出一个负脉冲延时否在Y5端口输出一个负脉冲延时键盘输入?是结束四、实验源程序:DATASEGMENTDATAENDSSTACKSEGMENTSTACK'STACK'STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKDELAYPROCNEARPUSHCXMOVBX,0FFFFHLOOP1:MOVCX,0100HLOOP2:LOOPLOOP2DECBXJNZLOOP1POPCXRETDELAYENDPSTART:PUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVCX,200HAGAIN:MOVDX,2A0H;时钟OUTDX,ALCALLDELAYMOVDX,2A8H;复位OUTDX,ALCALLDELAYLOOPAGAINMOVAX,4C00HINT21HCODEENDSENDSTART五、实验结果运行程序后led灯L7不断闪烁,达到实验预期要求。六、实验总结本次实验编程和连接都相对简单,主要是对D触发器的一些更加深入的理解。本次试验第一次使用实验箱,实验过程中熟悉了对实验箱的使用。

实验二简单并行接口一、实验目的掌握简单并行接口的工作原理及使用方法。二、实验原理及内容1、按下图简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。验台上的“或门”)。74LS273为八2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的”)。74LS244为八缓冲器,8个数据输入端分别接逻辑“或门电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。ASCⅡ码,编程输入这个ASCⅡ码,并将其对4、用逻辑电平开关预置某个字母的应字母在屏幕上显示出来。三、硬件接线图与程序流程图开始键盘输入输入ESC?是从端口2A8H输出其安asc码值否结束四、实验源程序DATASEGMENTBBDB0FFH;数据段;DATAENDSSTACKSEGMENTPARASTACK'STACK';堆栈段DB100DUP(?)STACKENDSCODESEGMENT;代码段ASSUMECS:CODE,SS:STACK,DS:DATASTART:MOVAH,01HINT21HCMPAL,1BHJZEXIT;与ESC的ascii码值比较MOVDX,2A8HOUTDX,ALJMPSTARTEXIT:MOVAH,4CHINT21HCODEENDSENDSTART五、实验结果运行程序后与实验要求一致,8个LED灯可以显示输入的字符对应的键盘输入1的时候,对应的ASCⅡ码为00110001,对应L4,L5发光二LED灯不亮。ASCⅡ码。例如,为L1、极管亮而其他的六、实验总结本次试验的原理比较简单,74LS273是一个8D触发器,原理上与实验一是一样的。就是273的所有连线都要自己连接,要细心才能不出错。第二次实验实验四七段数码管一、实验目的通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。二、实验原理和内容实验原理:1.8255的工作方式一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。方式0是基本型输入/输出。这种方式和外设交换数据时,8255端口与外设之间不使用联络线。方式1为选通型输入/输出。用这种方式和外界交换数据时,端口和外设之间要有联络信号。方式2是双向数据传送,仅A口有这项功能。当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。2.工作方式选择字8255工作方式选择字共8位(如图),存放在8255控制寄存器中。最高位D7为标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。3.C口置/复位控制字

8255的C口可进行位操作,即:可对8255C口的每一位进行置位或清零操作,该操作是通过设置C口置/复位字实现的(图8-10)4.命令字与初始化编程8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是:①向8255控制寄存器写入“方式选择控制字寄存器写入“C口置0/置”。这1控制字中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口“C口置0/置”虽然是对而不是写入C口控制寄存器。③向8255数据寄存器写入“数据”或从8255数据寄存器读出“数据””,从而预置端口的工作方式。再向控制②当端口预置为方式1或方式2时,一操作的主要目的是使相应端口的提出中断请求。注意:1控制字C口进行操作,但是该控制字是命令字,所以要写入控制寄存器,实验内容:静态显示:按4-4-1连接好电路,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。三、硬件接线图与程序流程图流程图:开始设置8255为A、C口输出选定第四位数码管否送0的段码选定第三位数码管送5的段码选定第二位数码管送1的段码选定第一位数码管送7的段码键盘输入?是结束四、程序源代码DATASEGMENTPORTAEQU288HPORTCEQU28AHPORTCONEQU28BHDATAENDSSTACKSTACKCODESEGMENTSTACK'STACK'DB100DUP(?)ENDSSEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAL,80H;初始化控制字MOVDX,PORTCONOUTDX,ALSTART1:MOVAL,08H;第四位有效MOVDX,PORTCOUTDX,ALMOVAL,3FH;0MOVDX,PORTAOUTDX,ALCALLDELAYMOVAL,04H;第三位有效MOVDX,PORTCOUTDX,ALMOVAL,6dH;5MOVDX,PORTAOUTDX,ALCALLDELAYMOVAL,02HMOVDX,PORTCOUTDX,AL;第二位有效MOVAL,06H;1MOVDX,PORTAOUTDX,ALCALLDELAYMOVAL,01H;第一位有效MOVDX,PORTC

OUTDX,ALMOVAL,07HMOVDX,PORTAOUTDX,AL;7CALLDELAYMOVAH,1INT16HJZSTART1;若无按键,ZF=1MOVAL,00HMOVDX,PORTCOUTDX,ALMOVAX,4C00HINT21HDELAYPROCNEARMOVBX,0DELAY1:MOVCX,1WAIT1:LOOPWAIT1DECBXJNEDELAY1RETDELAYENDPCODEENDSENDSTART五、实验结果运行程序,完成实验要求的内容,在七段数码管上显示自己学号的后4位0517。六、实验总结这次实验重点在于掌握了8255的编程。通过这次实验,我比较清晰的掌握了8255的编程方法,尤其是控制字的写入和数据的读写。由于使用4跟根数码管,需要位选和段选信号。故用A口和C口的低4位作为输出,将写好的控制字送到8255的控制口。然后需要将数据送到A口和C口即可实现所要求的内容。

第三次:可编程定时器/计数器(8253)实验一、实验目的:学习掌握8253用作定时器的编程原理二、实验原理及内容实验原理:8253和8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。8254是8253的改进型。1.8253初始化使用8253前,要进行初始化编程。初始化编程的步骤是:1向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。2向使用的计数器端口写入计数初值。2.8253控制字D7D6=00:使用0号计数器,D7D6=01:使用1号计数器D7D6=10:使用2号计数器,D7D6=11:无效D5D4=00:锁存当前计数值D5D4=01:只写低8位(高8位为0),读出时只读低8位D5D4=10:只写高8位(低8位为0),读出时只读高8位D5D4=11:先读/写低8位,后读/写高8位计数值D3D2D1=000:选择方式0,D3D2D1=001:选择方式1D3D2D1=X10:选择方式2,D3D2D1=X11:选择方式3D3D2D1=100:选择方式4,D3D2D1=101:选择方式5D0=0:计数初值为二进制,D0=1:计数初值为BCD码数实验内容:完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐。三、硬件接线图与程序流程图流程图:开始8253初始化8255A初始化否设置数码管选通信号按照乐谱,调用发音子程序数码管显示当前的音节否延时键盘输入?是结束四、实验源程序DATASEGMENT8255AEQU288H8253AEQU280H8255CEQU28AH8255CONEQU28BH8253CONEQU283HSTTBUFLIGTDB0DB0DB?TABLEFDW524,588,660,698,784,880,988DW262,294,330,347,392,440,494SONGFDB1,2,3,1,1,2,3,1,3,4,5,3,4,5DB5,6,5,4,3,1,5,6,5,4,3,1,1,12,1,1,12,1,0FFHSONGTDB2,2,2,2,2,2,2,2,2,2,4,2,2,4,1,1,1,1,2,2DB1,1,1,1,2,2,2,2,4,2,2,4MSGLEDDB'PRESS1,2,3,4,5,6,7,8,ESC,SPACE:'0DH,0AH,'$'DB01H,02H,04H,08H,10H,20H,40H,80H,0,0,0,80HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,8253CONMOVAL,36HOUTDX,ALMOVDX,8255CONMOVAL,80HOUTDX,ALMOVDX,OFFSETMSGMOVAH,09HINT21HSING:MOV[BUF],00HMOVAH,07HINT21HCMPAL,1BHJEFINISHCMPAL,20HJEEEECMPAL,'1'JLSINGCMPAL,'8'JGSINGMOV[BUF],1SUBAL,31HSHLAL,1MOVBL,ALMOV[LIGH],BLMOVBH,0EEA:MOVAX,4240HMOVDX,0FHMOVDI,WORDPTR[TABLE+BX]DIVDIMOVBX,AXMOVDX,8253AMOVAX,BXOUTDX,ALMOVAL,AHOUTDX,ALMOVDX,8255CMOVAL,03HOUTDX,ALCALLDELAYMOVAL,00HOUTDX,ALTEST[BUF],1JNZSINGSSS:ADDSTT,01HADDSI,01HJMPEEBJUDGE:MOVSTT,0MOVAH,06MOVDL,0FFHINT21HJEEEEJMPSINGFINISH:MOVAX,4C00HINT21HEEE:MOVSI,OFFSETSONGFEEB:MOVCL,[SI]

CMPCL,0FFHJEJUDGEDECCLMOV[LIGT],CLMOVAL,2MULCLMOVBX,AXJMPEEADELAYPROCNEARPUSHDXPUSHBXPUSHCXPUSHAXMOVBL,[LIGT]MOVBH,0MOVAL,[LED+BX]MOVDX,8255AOUTDX,ALMOVAL,15MOVBL,STTMOVBH,0MOVDL,[SONGT+BX]MULDLX1:X2:MOVCX,0FFFFHDECCXJNZX2DECAXJNZX1POPAXPOPCXPOPBXPOPDXRETDELAYENDPCODEENDSENDSTART五、实验结果运行程序,喇叭能正确播放出预先设定好的乐谱。六、实验总结这次实验中我们学习使用了8253定时器,8253共有3个工作通道,每个通道有5种工作方式,在程序一开始应该将控制字送入控制寄存器以确定工作的通

道和方式,在这次实验里主要是驱动蜂鸣器所以选择方式2.通过技术初值,输入频率和输出频率的关系计算出每个音符应该给工作通道送的计数初值,将计数初值送到工作通道的地址以实现蜂鸣器响。再通过改变不同的计数初值实现音乐播放。通过本次实验,我学习了8253定时器的使用,并进一步提升了编程能力。实验四串行8251A实验一、实验目的1.了解串行通2.初步了解RS232串行3.学会扩充8251A的方法,并设计实现用8251A进行数据传输信的一般原理和8251A的工作原理口标准及与TTL电路的连接方法;;4.掌握8251A的编程方法。二、实验原理及内容1、按图4-16-1连接好电路,(8251插通用插座)其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。2、编程:从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,(或将内存制定区域内存放的一批数据通过8251A的TXD发送出去,然后从RXD接收回来,并在屏幕上或数码管上显示出来。)实现自发自收。三、硬件接线图与程序流程图硬件连接图:流程图:流程图:开始8253初始化8251初始化显示提示从8251控制口读状态字否TxRDY为1?是从键盘接收字符是是ESC?否将键入的ASC码值加一结束通过8251端口发送数据从8251控制口读状态字否DxRDY为1?从8251口接收数据在屏幕上显示接收到的字符四、实验源程序DATASEGMENTSTRINGDB'PLEASEINPUTACHARACTER:',0DH,0AH,'$'DATAENDSSTACKSEGMENTSTACK'STACK'DB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVDX,0283HMOVAL,16H;00010110OUTDX,ALMOVDX,0280H;设置8253A计数器0的初值MOVAL,34H;OUTDX,ALMOVDX,02B9H;初始化8251MOVAL,40HCALLOUT1MOVAL,4EH;01001110方式控制字CALLOUT1MOVAL,27H;00100111向8251命令控制字,允许其发送和接收CALLOUT1MOVDX,SEGSTRINGMOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论