微机原理与接口技术实验指导书(硬件部分)北京邮电大学自动化学院检测技术及自动化教研中心2007年9月1目录硬件实验部分TPC-2003A通用32位微机接口实验台介绍………………………………………………2实验时应注意的问题………………………………………………………………………8实验一I/O地址译码……………………………………………………………………9实验二简单并行接口……………………………………………………………………11实验三可编程定时器/计数器(8253)………………………………………………13实验四可编程并行接口(一)(8255方式0)………………………………………16实验五交通灯控制实验…………………………………………………………………17实验六七段数码管………………………………………………………………………19实验七继电器控制………………………………………………………………………24实验八数/模转换器……………………………………………………………………27实验九模/数转换器……………………………………………………………………302TPC-2003A通用32位微机接口实验台硬件:PCI接口卡一块;实验台一个;50线扁平电缆一根;自锁紧导线50根。实验箱上有微机原理硬件实验最常用接口电路芯片,包括:可编程定时器/计数器(8253)、可编程并行接口(8255)、数/模转换器(DAC0832)、模/数转换器(ADC0809)。另外,还另附加集成电路芯片(8251、74LS273、74LS244、6116)共4片。实验台上除了上述接口实验常用的集成电路外、还设有I/O地址译码电路、总线插孔、外围电路及通用IC插座等部分组成。外围电路包括逻辑电平开关电路、LED显示电路、时钟电路、单脉冲电路、逻辑笔、复位电路、七段数码管显示电路、基本门电路、继电器及步进电机、小直流电机的驱动电路等。接口卡可以插入PC系列微机中任意一个PCI扩展插槽,它的主要功能是将与实验有关的总线信号加以驱动后引到实验台上。PLX9054PCI总线扩展卡结构,该卡使用PLX9054和CPLD把PCI总线时序转换成50芯ISA总线时序,提供给微机实验台使用。3PC/AT(ISA工业标准总线)PC/XT总线有关DMA信号的说明:DRQ1~DRQ3DMA请求信号,它们的优先级次序是:DRQ1最高,DRQ3最低。通过将某DRQ线变成高电平而产生请求。DACK0~DACK3DMA确认信号,低电平有效。AEN允许寻址该信号用于禁止处理器与其它设备间的I/0通道,以便进行DMA传送。当此线为有效(高)时,DMA控制器控制地址、数据总线和读写命令。其他信号已在相关章节予以介绍。4图1TPC-2003A通用32位微机接口实验台实验台提供的电路1、I/O地址译码电路如图所示,地址空间:280H~2BFH共分8条译码输出线:Y0~Y7,其地址分别是280H~287H;288H~28FH;290H~297H;298H~29FH;2A0H~2A7H;2A8H~2AFH;2B0H~2B7H;2B8H~2BFH,8根译码输出线在实验台“I/O地址”处分别由“自锁紧”插孔引出,供实验选用。图252、总线插孔采用“自锁紧”插座在标有“总线”区引出数据总线D7~D0;地址总线A9~A0;读、写信号IOR、IOW;中断请求信号IRQ;DMA请求信号DRQ1;DMA响应信号、DACK1;及AEN信号,供搭试各种接口实验电路使用。3、时钟电路如图所示,可以输出1MHZ、2MHZ两种信号,供A/D转换器、定时器/计数器、串行接口实验使用。图34、逻辑电平开关电路如图所示,实验台右下方设有8个开关K7~K0,开关拨到“1”位置时开关断开,输出高电平,向下打到“0”位置时开关接通输出低电平,电路中串接了保护电阻,使接口电路不直接同+5V、GND相连,可有效地防止学生因误操作、误编程损坏集成电路现象。图45、LED显示电路如图5所示,实验台上设有8个发光二极管及相关驱动电路(输入端L7~L0),当输入信号为“1”时发光,为“0”时灭。6图56、七段数码管显示电路如图6所示,实验台上设有两个共阴极七段数码管及驱动电路,段码为同相驱动器,位码为反相驱动器,从段码与位码的驱动器输入端(段码输入端:a、b、c、d、e、f、g、dp,位码输入端:s1、s2)输入不同的代码即可显示不同数字或符号。图677、单脉冲电路如图7所示,采用RS触发器产生,实验者每按一次开关即可以从两个插座上分别输出一个正脉冲及负脉冲,供“中断”、“DMA”、“定时器/计数器”等实验使用。图7图88、逻辑笔如图8所示,当输入端Ui接高电平时红灯(D2)亮;接低电平时绿灯亮。9、继电器及驱动电路如图9所示,实验台上设有一个+5V直流继电器及相应的驱动电路,当其开关量输入端输入数字量“1”时,继电器动作:常开触点闭合、常闭触点断开。通过相应的实验使学生了解开关量控制的一般原理。图9图1010、复位电路如图10所示,能在上电时,或按下复位开关S2后产生一个高电平的复位信号供8255、8251等接口芯片使用。11、数字电路实验区实验台上有一块数字电路实验区,设有三种基本门电路(与、或、非)及D触发器,供学生在接口实验或数字电路实验时直接使用。812、直流电源开关(K1)实验台上有一直流电源开关(K1),在实验台的左上角。在主机电源打开后,再打开实验台上开关K1,实验台才会加电。实验时应注意的问题1、连接线路时,一定要将直流电源开关(K1)关掉,连接完后再打开(K1)。2、在NT/2K/XP环境中运行涉及直接I/O口操作的程序时的注意事项。待调试程序的编写、编译、链接方法与在DOS/95/98下相同。运行编译、链接好的待调试程序前要运行ALLOWIO.EXE程序,命令行格式如下:ALLOWIO程序用到的端口例如:实验一I/O地址译码实验YMQ.ASMTPC-2003A卡中设备的IO地址:ioportequ0d400h-0280h用到的I/O地址有2个:2a0h和2a8houtport1equioport+2a0h;等于0d420houtport2equioport+2a8h;等于0d428h则用allowio指令命令格式为:allowio0xd4200xd428回车后则对应端口被打开,然后运行编译链接好的程序,如YMQ.EXE注意:命令后縀的参数“0xd420”和“0xd428”两个端口中间以空格分开,否则会提示错误命令。之后即可运行待调试的程序。使用注意:使用ALLOWIO.EXE程序和运行实验程序时,应将命令行(CMD)窗口设置成全屏模式(按Alt-Enter),否则可能出现I/O读写失败的情况。9实验一I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。二、实验原理和内容实验电路如图11所示,其中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输出一个负脉冲。注意:由于使用PCI卡,命令中的实际端口地址应通过计算来重新确定。是根据PCI卡的基址再加上偏移量计算出来的,不同的微机器PCI卡的基址可能不同,需要事先查找出来,查找方法1:使用WINDOWS的设备管理器,查看此PCI卡的属性来获得。方法2:利用实验台配套的集成开发软件检测出来。例如:PCI卡的基址为:0D400H.计算公式如下:计算出的地址=查找出的PCI卡的基址+偏移量;(其中:偏移量=2A0H-280H或2A8H–280H)利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。10三、编程提示1、实验电路中D触发器CLK端输入脉冲时,上升沿使Q端输出高电平L7发光,CD端加低电平L7灭。2、由于TPC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解当前的微机使用那段IO地址并进行设置,获取方法前面已经介绍。3、参考程序:ioportequ0d400h-0280houtport1equioport+2a0houtport2equioport+2a8hstart:movdx,outport1outdx,alcalldelay;调延时子程序movdx,outport2outdx,alcalldelay;调延时子程序movah,1int16hjestartmovah,4chint21hdelayprocnear;延时子程序movbx,2000lll:movcx,0ll:looplldecbxjnelllretdelayendp实验程序应有信息提示,按什么键开始,按什么键退出程序等控制功能。11实验二简单并行接口一、实验目的掌握简单并行接口的工作原理及使用方法。二、实验内容1、按下面图12简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。3、按下面图13简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。图12图13三、编程提示1、上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令:MOVAL,数据MOVDX,2A8HOUTDX,AL通过上述并行接口输入数据需要2条指令:MOVDX,2A0HINAL,DX12参考程序1:ioportequ0d400h-0280hls273equioport+2a8hstart:movah,2;回车符movdl,0dhint21hmovah,1;等待键盘输入int21hcmpal,’E’;判断是否为E键jeexit;若是则退出movdx,ls273;若不是,从2A8H输出其ASCII码outdx,aljmpstart;转startexit:movah,4ch;返回DOSint21h参考程序2:ioportequ0d400h-0280hls244equioport+2a0hstart:movdx,ls244;从2A0输入一数据inal,dxmovdl,al;将所读数据保存在DL中movah,02int21hmovdl,0dh;显示回车符int21hmovdl,0ah;显示换行符int21hmovah,06;是否有键按下movdl,0ffhint21hjnzexitjestart;若无,则转startexit:movah,4ch;返回DOSint21h13实验三可编程定时器/计数器(8253)一、实验目的掌握8253的基本工作原理和编程方法。二、实验内容1、按图14虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。图142、按图15连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。图15三、编程提示1、8253控制寄存器地址283H计数器0地址280H计数器1地址281HCLK0连接时钟1