华电微机原理与接口实验实验(完整可用程序)_第1页
华电微机原理与接口实验实验(完整可用程序)_第2页
华电微机原理与接口实验实验(完整可用程序)_第3页
华电微机原理与接口实验实验(完整可用程序)_第4页
华电微机原理与接口实验实验(完整可用程序)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

TPC-1实验系统的结构及使用说明结构TPC—1实验系统不能单独使用,它必须和PC机相连才能工作。ADC0809系统由一块PCI总线驱动卡和一个实验台构成,实验台上有8251A、8255A、8253、DAC0832、等芯片和小键盘、数码管、8MHz晶振等器件。实验台的结构如图1所示。ADC0809&116KJ53屯竝器振UJLXJL.LJ2.2K4.7K10K播找搀板地址站捕孔从右到左&116KJ53屯竝器振UJLXJL.LJ2.2K4.7K10K播找搀板地址站捕孔从右到左数码它发光二楼管从左剥右Li-Cn图1TPC—1实验台主要部件分布图为了实验方便,在每一部分实验电路附近都预留有单线信号插孔,实验时只要将相应插孔用单股导线相连即可。安装安装时请按下述步骤进行。(1) 用60芯扁平电缆线连接总线驱动卡和实验台。(2) 连接实验台电源。(3) 启动计算机。(4) 打开实验台电源开关,实验台上的指示灯亮即可进行实验。注意:在进行线路的连接过程中,必须关闭实验台的电源,在断电条件下进行操作,否则可能会引起实验台的损坏。实验台上的〃0地址实验台上的I/O地址为200〜23F共64个,分8个插孔引出,它们分别是200〜207;208〜20F;210〜217;218〜21F;220~227;228〜22F;230~237;238〜23F;实验时只要用导线将任一插孔信号引到相应电路的CS端即可。图2是I/O地址译码电路。

3n125146612VoV,1OR*—200-2tK?『人*2080弋3n125146612VoV,1OR*—200-2tK?『人*2080弋*HQ'217a-l:■*1IK-2LF11*120~Wo-^-«228-22F*2J0'2J7a-^238'2JFl:0RAliK*AtV 74LS138BnBiU1血A7机歩甘ITBj池A7岂DFR图2I/O译码电路编写汇编程序时使用的O地址因为PCI总线结构支持P&P即插即用功能,所以微机分配给PCI扩展板的资源也是动态浮动的,而不是固定不变的,因此分配给设备的I/O地址、内存储器MEM地址以及中断INT号会随着微机不同而有所变化,所以在实验前必须确定当前微机中PCI卡的资源分配,从而确定实验台上的实际I/O地址和内存储器MEM地址,并在程序中使用该地址。操作步骤如下:(1)打开“控制面板”中“系统”对话框,找到并打开“设备管理器”,可以看到“微机原理教学实验装置”,如图3所示。(2)查看TPC的属性,如图4所示。可以看到两个输入/输出范围(具体数值不同计算机可能不同),其中一个范围大小是0FFH的是PCI接口芯片占用的I/O地址空间,另一个一个范围大小是07FH的是TPC设备占用的I/O地址空间;两个内存范围,一个范围大小是0FFH的是PCI接口芯片占用的内存储器MEM地址空间,另一个范围大小是0FFFFFH的是TPC设备占用的内存储器MEM地址空间。它们的起始地址即为我们实际使用的基地址,图中PCI接口芯片I/O地址范围是D400〜D4FF,基址为D400H;TPC设备的I/O地址范围是DC00〜DC7F,基址为DC00H;TPC设备的内存储器MEM地址范围是FE900000〜FE9FFFFF,基址为FE900000H。在编写汇编程序时使用的实际I/O地址应该是:实际I/O地址=TPC设备的I/O基地址一实验台I/O端口基地址+实验台I/O端口地址=0DC00H—200H+实验台I/O端口地址即地址0DC00H相当于实验台I/O端口的起始地址200H,如果实验台上的I/O端口地址是208H,则编程时实际使用的地址应该是:0DC00H—200H+208H=0DC08H图3设备管理器图4“TPC属性”对话框同理,0FE900000H相当于实验台上扩展的存储器的起始地址。如果程序中使用了中断,则需要根据TPC属性窗口中的中断请求号码来设置中断向量。下面以实验6:8255A并行接口实验(4)为例,说明具体的编程地址应用。实验程序如下:PA55EQU0DC00H-200H+218H;8255端口PB55EQU0DC00H-200H+219HP55CTLEQU0DC00H-200H+21BHDATASEGMENTMESDB'ENTERANYKEYCANEXITTODOS!',0AH,0DH;提示信息DATAENDSSTACKSSEGMENTDB100DUP(?)STACKSENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSSTART:MOVMOVMOVMOVMOVMOVINTMOVMOVAX,DATADS,AXAX,STACKSSS,AXDX,OFFSETMES ;显示提示信息AH,0921HAL,90HDX,P55CTL

OUTDX,ALNEXT:MOVDX,PA55INAL,DXMOVDX,PB55OUTDX,ALOUTDX,ALNEXT:MOVDX,PA55INAL,DXMOVDX,PB55OUTDX,ALMOVAH,01HINT16HJNZEXITCALLDELAYJMPNEXTEXIT:MOVAX,4C00HINT21HDELAYPROCNEARPUSHCXMOVCX,6000DELAY1:LOOPDELAY1POPCXRETDELAYENDPCODEENDSENDSTART;从PA读入开关状态;将开关状态送到PB控制灯的亮灭;判断键盘是否有键按下,若有则退出程序;退出;延时子程序根据实验要求完成接线,打开实验台电源,运行上面的程序就可以看到实验效果。上面这个驱动程序只能适用于一台微机,因为在P&P方式下不同微机分配的资源不一定相同,为了达到通用的目的,使我们编写的驱动程序适用于任何一台微机,我们可以通过一个小程序FINDTPC来获得相关的资源信息,则可以将上面的程序修改如下:IO_PLX_DEVICE_IDIO_PLX_VENDOR_IDIO_PLX_SUB_IDDATASEGMENTIO_BASE_ADDRESSEQU05406HEQU05406H;TPC卡设备IDEQU010B5H;TPC卡厂商IDEQU0905410B5H;TPC卡子设备及厂商IDDB4DUP(0);TPC卡I/O基地址暂存空间DB0DH,0AH,'TPCcardnotfind!!!',0DH,0AH,'$'MESDB'ENTERANYKEYCANEXITTODOS!',0AH,0DH;提示信息PA55DB2DUP(0);8255端口PB55DB2DUP(0)P55CTLDATAENDSSTACKSSEGMENTDB100DUP(?)STACKSENDSCODESEGMENTDB2DUP(0)ASSUMECS:CODE,DS:DATA,SS:STACKSSTART:.386MOVAX,DATAMOVDS,AXMOVAX,STACKS

MOVSS,AXCALLFINDTPC ;查找TPC卡资源MOVAX,WORDPTRIO_BASE_ADDRESSSUB AX,200HADD AX,218HMOVWORDPTRPA55,AXMOVAX,WORDPTRIO_BASE_ADDRESSSUB AX,200HADD AX,219HMOVWORDPTRPB55,AXMOVAX,WORDPTRIO_BASE_ADDRESSSUB AX,200HADD AX,21BHMOVWORDPTRP55CTRL,AXMOVDX,OFFSETMES ;显示提示信息MOVAH,09FINDTPCPROCNEARPUSHADFINDTPCPROCNEARPUSHADMOVAL,90HMOVDX,WORDPTRP55CTLOUTDX,AL;8255初始化,PA方式0输入,PB方式0输出MOVDX,WORDPTRPA55INAL,DX;从PA读入开关状态MOVDX,WORDPTRPB55OUTDX,AL;将开关状态送到PB控制灯的亮灭MOVAH,01HINT16H;判断键盘是否有键按下,若有则退出程序JNZEXITCALLDELAYJMPNEXTMOVAX,4C00HINT21H;退出NEXT:EXIT:;查找TPC卡资源PUSHFDMOVAX,0B101HINT1AHJC FINDTPC_NOTFIND ;检查PCIBIOS是否存在MOVAX,0B102HMOVCX,IO_PLX_DEVICE_IDMOVDX,IO_PLX_VENDOR_IDMOVSI,0厂商号INT1AH厂商号JC FINDTPC_NOTFIND ;检查TPC卡是否安装,设备号、MOVAX,0B10AHMOVDI,02CH

INT1AHJCFINDTPC_NOTFINDCMPECX,IO_PLX_SUB_IDJNZFINDTPC_NOTFIND;检查TPC卡是否安装,子设备号、厂商号MOVAX,0B10AHMOVDI,18HINT1AHJCFINDTPC_NOTFIND;读TPC卡I/O基址信息MOVDWORDPTRIO_BASE_ADDRESS,ECXANDECX,1JZFINDTPC_NOTFIND;检查是否为i/o基址信息MOVECX,DWORDPTRIO_BASE_ADDRESSANDECX,0FFFFFFFEHMOVDWORDPTRIO_BASE_ADDRESS,ECX ;去除i/o指示位并保存POPFDPOPADRETFINDTPC_NOTFIND:MOVDX,OFFSETPCICARDNOTFIND ;显示未找到tpc卡提示信息MOVAH,09HINT21HMOVAX,4C00HINT21H ;退出FINDTPCENDPDELAYPROCNEARDELAYPROCNEARPUSHCXMOVCX,6000DELAY1:LOOPDELAY1POPCX;延时子程序RETDELAYENDPCODEENDSENDSTART实验28253计数器/定时器的实验(2)目的(1)学会通过62芯PC/XT总线、驱动器、译码器等,在PC/XT机外连接扩展芯片。(2)掌握8253定时器的编程原理,用示波器观察不同模式下的波形。内容(1)用8253构成一个方波发生器或分频器,即基于图2-1再完成下述连接:将分频器74LS393的B端与8MHz信号相连;将分频器74LS393的A端接+5V;将8253的CLK0与8MHz分频得到的250KHz信号(74LS393的Q4端)相连;将8253的OUT。和CLK]相连;将8253的GATE。、GATE]接+5V;将8253的CS插孔接200~207;图2-18253图2-18253的实验DDDDDDDD(2)完成编程。将定时器。设为模式3(方波发生器),定时器1设为模式2(分频器),定时器。的输出脉冲作为定时器1的时钟输入。设置不同计数初值以改变方波宽度和分频信号周期,在示波器中,观察定时器0和1的输出波形及其关系,并画出(CLK、GATE、OUT)波形。3.参考流程图2-28253实验参考流程

实验68255A并行接口实验(4)目的掌握8255A的编程原理。内容用8255A的A端口读取8个开关量来控制B端口的8个LED发光二极管的亮和灭(端口输出为0则亮,输出为1则灭)。实验台上有12个开关K1〜K12,与之相应的12个引线孔为电平输出端。开关向上拔,电平输出为1;向下拨,电平输出为0。(1)按图6-1连接硬件线路,即:将PA0~PA7与开关K1~K8相连;将PB0~PB7与发光二极管L1〜L8相连;CS与218〜21F相连;+5V_地—218〜21FA1A0+5V_地—218〜21FA1A08255PA0PB0+5VPA7PB7CSA1A0图6-1读开关控制LED的原理图(2)编程实现用开关控制发光二极管的亮灭。编程提示(1)此实验比较简单,主要是要注意设置好8255A各端口的工作模式,实验中应当使3个端口均工作于方式0,并使A口为输入口和B口为输出口。(2)参考流程图6-2读开关控制图6-2读开关控制LED的流程图实验98251A串行口实验(1)目的(1) 了解串行通信的一般原理和8251A的工作原理。(2) 掌握8251A的编程方法。内容采用自发自收方式,通过8251A将主机键盘输入字符串行发送出去,再将串行接收到的字符显示在主机屏幕上,发送和接收时钟信号由8253提供。(1)如图9-1连接线路,即:将分频器74LS393的B端与8MHz信号相连;将分频器74LS393的A端接+5V;将8253的CLK2与8MHz分频得到的250KHz信号(74LS393的Q4端)相连;8253的GAT%接+5V;8253的OUT2与8251的TXC、RXC相连,作为发送和接收时钟,波特率自定;8253的CLK2和250KHz(74LS393的Q4)相连;RXRDY和PC总线的IRQ2(或B4)相连,由此端向PC主机发中断请求;8253的CS和200〜207插孔相连,8251A的CS和208〜20F插孔相连;将8251A的TXD与RXD端连接,形成自发自收;(2)编写程序,将主机键盘输入字符从8251A串行发送出去,再将8251A串行接收到的字符显示在主机屏幕上。串行通信波特率可选1200BPS、4800BPS;发送数据用查询方式;接收数据用查询方式或中断方式。^125678M13101220

O1234567F&v'o

^125678M13101220

O1234567F&v'o

DD0D0DDD200OVAKDoTXDDiE>2TXRDYTXCCKTXEMPT之 8251ARxDRXRDYCSRXCLKRE>SYNDETW^RC/DDSRCLKDTRCTSRESETRTSDoOjd2D48253OUT0CATE0CI.KOOUT]GATEi6CLKfCSRDWRout2Aogatb2A|17 _ 14891618■+5V^•CCK图9-1显示键入字符的线路编程提示(1)将8253计数器2构成一个方波发生器,提供8251A接收和发送时钟信号(2)发送、接收字符均采用查询方式。计数器初值计算公式:计数器2初值=FDK2/(BPS*波特率因子);FDK2为8253计数器2的时钟频率;BPS为8251A和终端之间数据传送的波特率;波特率因子在8251A初始化时通过编程确定。

3)8251A数据口地址208H控制口地址209H8253定时器2地址202H控制口地址203H4)参考流程见图7-2和7-3。开始图9-2查询方式自发自收的程序参考流程图9-3开始图9-2查询方式自发自收的程序参考流程图9-3中断方式接收的中断处理程序参考流程实验12A/D实验目的了解模/数转换的基本原理,掌握ADC0809的使用方法。内容将一个由电位器供给的电压模拟量转变为数字量,存入PC机内存。(1)按图12-1连接硬件线路,即:用实验台上某一电位器的一端接地,另一端接+5V,电位器中心抽头接ADC0809的IN0ADC0809的CS接220〜227;ADC0809的CLK需外加,由于ADC0809的CLK范围为10KHz〜1280kHz,所以,取CLK=500kHz。500kHz信号由8MHz时钟经74LS393分频获得,为此,将8MHz时钟连74LS393分频器的A端,而分频器B端接+5V,Q3端(输出端)接A/D的500kHz端。图12-1A/D实验图 图12-2A/D实验参考流程(2)编制程序,按中断方式采样A/D转换数据,并将结果在PC机上显示出来。编程提示(1) ADC0809的分辨率为8位,可有8个(1叫〜IN?)模拟输入,模拟电压范围为0〜5V,在CLK为500kHz时,转换速度为128Ms,它的START端为A/D转换启动信号。ALE端为通道选择的地址锁存信号,实验电路中将START和ALE相连,以便同时锁存通道地址并开始A/D采样转换。其输入控制信号为CS和IOW,故启动A/D转换只须如下2条指令:MOVDX,PORTADC;ADC0809的端口地址OUTDX,AL ;发CS及IOW信号在本系统中,ADC0809的端口地址为220H。至于AL中具体为什么内容并不重要,这是一个虚拟写动作。(2) 当A/D转换结束后就会自动产生EOC信号,该信号在此未用,可以通过延时方式来读取转换结果,使用如下指令即可读取A/D转换的结果。MOVDX,PORTADC ;在本系统中,ADC0809的端口地址为220HINAL,DX也可以将该信号与中断请求线相连,当EOC信号有效时就会引起一次硬中断,在中断处理程序中读取转换结果。(3) 参考流程如图12-2所示。

实验148259A中断控制器实验目的(1) 掌握8259A中断控制器工作原理;(2) 熟悉实验中涉及到的中断屏蔽寄存器IMR和中断服务寄存器ISR的使用方法;(3) 学会中断处理程序的编写。内容中断请求信号通过微机系统的8259A提交给CPU,进入中断以后,显示1个字符串。(1) 中断请求通过IBMPC/XT62芯总线的IRQ2端输入,中断源可以是片外8253定时器输出的脉冲,也可以是其他脉冲(比如通过实验板上单脉冲按钮产生的脉冲信号)。若用8253做中断源,参看接口实验2连接8253的线路,并把8253的OU—和62芯总线槽IRQ2(B4)连接好;若用实验板上单脉冲按钮产生中断源,将62芯总线槽IRQ2(B4)与单脉冲连接。(2) 编写程序,要求每次主机响应外部中断IRQ2时,显示字符串“THISISA8259AINTERRUPT!”(或其他串),中断10次后,退出程序。编程提示(1)本实验使用微型机内的8259A芯片。PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源:中断源中断类型号中断功能IRQ008H时钟IRQ109H键盘IRQ20AH保留IRQ30BH串行口2IRQ40CH串行口1IRQ50DH硬盘IRQ60EH软盘IRQ70FH并行打印机8个中断源中IRQ2〜IRQ7中断请求信号在IBMPC/XT62芯总线中可以引出,系统已经设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一片8259形成主从式结构,主片8259的IRQ2用于两片8259之间的级连,对外可提供15个中断源:中断源中断类型号中断功能IRQ870H实时时钟IRQ971H用户中断IRQ1072H保留IRQ1173H保留IRQ1274H保留IRQ1375H协处理器IRQ1476H硬盘IRQ1577H保留实验中使用的是IRQ10(对应实验台上62芯总线中的IRQ2),PC中断控制器主片的端口地址为20H(偶地址端口)、21H(奇地址端口),从片的端口地址为0A0H(偶地址端口)、0A1H(奇地址端口),编程时要将主、从片中断屏蔽寄存器对应位清零(允许中断),中断屏蔽寄存器代码如下:INAL,21H;主片允许中断INAL,21H;主片允许中断ANDAL,11111011BOUT21H,ALINAL,0A1H ;从片允许中断ANDAL,11111011BOUT0A1H,AL中断服务程序结束返回前分别要向主、从片发送中断结束命令。中断结束命令代码如下:MOVAL,20HOUT0A0H,ALOUT20H,AL中断结束返回DOS前应将IMR对应位置1,以关闭中断。(2) 由于实验中TPC卡使用9054芯片连接微机来实现P&P功能,所以在编程使用微机中断

温馨提示

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

评论

0/150

提交评论