华电微机原理与接口实验实验.docx

上传人:小飞机 文档编号:5076549 上传时间:2023-06-02 格式:DOCX 页数:15 大小:586.68KB
返回 下载 相关 举报
华电微机原理与接口实验实验.docx_第1页
第1页 / 共15页
华电微机原理与接口实验实验.docx_第2页
第2页 / 共15页
华电微机原理与接口实验实验.docx_第3页
第3页 / 共15页
华电微机原理与接口实验实验.docx_第4页
第4页 / 共15页
华电微机原理与接口实验实验.docx_第5页
第5页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《华电微机原理与接口实验实验.docx》由会员分享,可在线阅读,更多相关《华电微机原理与接口实验实验.docx(15页珍藏版)》请在三一办公上搜索。

1、TPC-1实验系统的结构及使用说明1.结构TPCl实验系统不能单独使用,它必须和PC机相连才能工作。ADC0809系统由一块PCI总线驱动卡和一个实验台构成,实验台上有8251A、8255A、8253、DAC0832、 等芯片和小键盘、数码管、8MHz晶振等器件。实验台的结构如图1所示。KJ53阪fi到左Ah-携e推戏模板数玛管发光二履管 从左到右Li-Cn图1 TPC1实验台王要部件分布图为了实验方便,在每一部分实验电路附近都预留有单线信号插孔,实验时只要将相应插孔用单股导线 相连即可。2. 安装安装时请按下述步骤进行。(1)用60芯扁平电缆线连接总线驱动卡和实验台。(2)连接实验台电源。(

2、3)启动计算机。(4)打开实验台电源开关,实验台上的指示灯亮即可进行实验。注意:在进行线路的连接过程中,必须关闭实验台的电源,在断电条件下进行操作,否则可能会引起 实验台的损坏。3. 实验台上的0地址实验台上的I/O地址为200-23F共64个,分8个插孔引出,它们分别是200207; 20820F; 210217; 21821F; 220227; 22822F; 230237; 238-23F;实验时只要用导线将任一插孔信号引到相应电路的CS 端即可。图2是I/O地址译码电路。图2 I/O译码电路4. 编写汇编程序时使用的/0地址因为PCI总线结构支持P&P即插即用功能,所以微机分配给PCI

3、扩展板的资源也是动态浮动的,而 不是固定不变的,因此分配给设备的I/O地址、内存储器MEM地址以及中断INT号会随着微机不同而有 所变化,所以在实验前必须确定当前微机中PCI卡的资源分配,从而确定实验台上的实际I/O地址和内存 储器MEM地址,并在程序中使用该地址。操作步骤如下:(1)打开“控制面板”中“系统”对话框,找到并打开“设备管理器”可以看到“微机原理教学实 验装置”,如图3所示。(2)查看TPC的属性,如图4所示。可以看到两个输入/输出范围(具体数值不同计算机可能不同), 其中一个范围大小是0FFH的是PCI接口芯片占用的I/O地址空间,另一个一个范围大小是07FH的是TPC 设备占

4、用的I/O地址空间;两个内存范围,一个范围大小是0FFH的是PCI接口芯片占用的内存储器MEM 地址空间,另一个范围大小是0FFFFFH的是TPC设备占用的内存储器MEM地址空间。它们的起始地址即为我们实际使用的基地址,图中PCI接口芯片I/O地址范围是D400D4FF,基址为 D400H; TPC设备的I/O地址范围是DC00DC7F,基址为DC00H; TPC设备的内存储器MEM地址范围 是 FE900000FE9FFFFF,基址为 FE900000H。在编写汇编程序时使用的实际I/O地址应该是:实际I/O地址=TPC设备的I/O基地址一实验台I/O端口基地址+实验台I/O端口地址= 0D

5、C00H200H+实验台I/O端口地址即地址0DC00H相当于实验台I/O端口的起始地址200H,如果实验台上的I/O端口地址是208H,则 编程时实际使用的地址应该是:0DC00H200H+208H=0DC08H图3设备管理器图4“TPC属性”对话框同理,0FE900000H相当于实验台上扩展的存储器的起始地址。如果程序中使用了中断,则需要根据TPC属性窗口中的中断请求号码来设置中断向量。 下面以实验6: 8255A并行接口实验(4)为例,说明具体的编程地址应用。实验程序如下:PA55PB55P55CTLEQUEQUEQU0DC00H-200H+218H0DC00H-200H+219H0DC

6、00H-200H+21BH;8255 端口DATA SEGMENTMES DB ENTER ANY KEY CAN EXIT TO DOS!,0AH,0DH ;提示信息 DATA ENDSSTACKS SEGMENTDB 100 DUP (?) STACKS ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSSTART: MOVAX, DATAMOVDS, AXMOVAX, STACKSMOVSS, AXMOVDX, OFFSET MESMOVAH, 09INT21HMOVAL, 90HMOVDX, P55CTL;显示提示信息华北电力大学计算机科

7、学与技术系OUTDX, AL;8255初始化,PA方式0输入,PB方式0输出NEXT: MOVDX, PA55INAL, DX;从?人读入开关状态MOVDX, PB55OUTDX, AL;将开关状态送到PB控制灯的亮灭MOVAH, 01HINT16H;判断键盘是否有键按下,若有则退出程序JNZEXITCALLDELAYJMPNEXTEXIT: MOVAX, 4C00HINT21H;退出DELAY PROCNEARPUSHCX;延时子程序MOVCX, 6000DELAY1:LOOPDELAY1POPCXRETDELAY ENDPCODE ENDSEND START根据实验要求完成接线,打开实验台

8、电源,运行上面的程序就可以看到实验效果。上面这个驱动程序只能适用于一台微机,因为在P&P力式下不同微机分配的资源不一定相同,为J达到通用的目的,使我们编写的驱动程序适用于任何一台微机,我们可以通过一个小程序FINDTPC来获得相关的资源信息,则可以将上面的程序修改如下:IO_PLX_DEVICE_IDEQU 05406H;TPC 卡设备 IDIO_PLX_VENDOR_IDEQU 010B5H;TPC 卡厂商 IDIO_PLX_SUB_IDEQU 0905410B5H ;TPC卡子设备及厂商IDDATA SEGMENTIO_BASE_ADDRESSDB4 DUP(0);TPC卡I/O基地址暂存

9、空间PCICARDNOTFINDDB0DH,0AH,TPC card not find !,0DH,0AH,$MESDB ENTER ANY KEY CAN EXIT TO DOS!,0AH,0DH ;提示信息PA55DB 2DUP(0);8255 端口PB55DB 2DUP(0)P55CTLDB 2DUP(0)DATA ENDSSTACKS SEGMENTDB 100 DUP (?)STACKS ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSSTART:,386MOVAX, DATAMOVDS, AXMOVAX, STACKSMOVCALLS

10、S, AXFINDTPC;查找TPC卡资源MOVAX, WORD PTRIO_BASE_ADDRESSSUBAX, 200HADDAX, 218HMOVWORD PTR PA55, AXMOVAX, WORD PTRIO_BASE_ADDRESSSUBAX, 200HADDAX, 219HMOVWORD PTR PB55, AXMOVAX, WORD PTRIO_BASE_ADDRESSSUBAX, 200HADDAX, 21BHMOVWORD PTR P55CTRL, AXMOVDX, OFFSET MES;显示提示信息MOVAH, 09INT21HMOVAL, 90HMOVDX, WORD

11、 PTRP55CTLOUTDX, AL;8255初始化,PA方式0输入,PB方式0输出NEXT: MOVDX, WORD PTRPA55INAL, DX;从?人读入开关状态MOVDX, WORD PTRPB55OUTDX, AL;将开关状态送到PB控制灯的亮灭MOVAH, 01HINT16H;判断键盘是否有键按下,若有则退出程序JNZEXITCALLDELAYJMPNEXTEXIT: MOVAX, 4C00HINT21H;退出FINDTPC PROCNEAR;,查找TPC卡资源PUSHADPUSHFDMOVAX, 0B101HINT1AHJCFINDTPC_NOTFIND;检查PCI BIOS

12、是否存在MOVAX, 0B102HMOVCX, IO_PLX_DEVICE_IDMOVDX, IO_PLX_VENDOR_IDMOVSI, 0INT1AHJCFINDTPC_NOTFIND;检查TPC卡是否安装,设备号、厂商号MOVAX, 0B10AHMOVDI, 02CHINT1AHJCFINDTPC_NOTFINDCMPECX, IO_PLX_SUB_IDJNZFINDTPC_NOTFIND;检查TPC卡是否安装,子设备号、厂商号MOVAX, 0B10AHMOVDI, 18HINT1AHJCFINDTPC_NOTFIND;读 TPC 卡 I/O 基址信息MOVDWORD PTR IO_BA

13、SE_ADDRESS, ECXANDECX, 1JZFINDTPC_NOTFIND;检查是否为i/o基址信息MOVECX, DWORD PTR IO_BASE_ADDRESSANDECX, 0FFFFFFFEHMOVDWORD PTR IO_BASE_ADDRESS, ECX;去除 i/o 指示位并保存POPFDPOPAD RETFINDTPC_NOTFIND:MOVDX, OFFSET PCICARDNOTFIND;显示未找到tpc卡提示信息MOVAH, 09HINT21HMOVAX, 4C00HINT21H;退出FINDTPC ENDPDELAY PROCNEARPUSHCX;延时子程序M

14、OVCX, 6000DELAY1:LOOPDELAY1POPCXRETDELAY ENDPCODE ENDSEND START实验2 8253计数器/定时器的实验(2)1. 目的(1)学会通过62芯PC/XT总线、驱动器、译码器等,在PC/XT机外连接扩展芯片。(2)掌握8253定时器的编程原理,用示波器观察不同模式下的波形。2. 内容(1)用8253构成一个方波发生器或分频器,即基于图2-1再完成下述连接: 将分频器74LS393的B端与8MHz信号相连; 将分频器74LS393的A端接+5V; 将8253的CLK0与8MHz分频得到的250KHz信号(74LS393的Q4端)相连; 将82

15、53的OUT0和CLK相连; 将 8253 的 GATE0、GATEl 接 + 5V; 将8253的CS插孔接200207;图2-1 8253的实验(2)完成编程。将定时器0设为模式3 (方波发生器),定时器1设为模式2 (分频器),定时器0的 输出脉冲作为定时器1的时钟输入。设置不同计数初值以改变方波宽度和分频信号周期,在示波器中,观 察定时器0和l的输出波形及其关系,并画出(CLK、GATE、OUT)波形。3.参考流程图2-2 8253实验参考流程实验6 8255A并行接口实验(4)1. 目的掌握8255A的编程原理。2. 内容用8255A的A端口读取8个开关量来控制B端口的8个LED发光

16、二极管的亮和灭(端口输出为0则 亮,输出为l则灭)。实验台上有12个开关K1K12,与之相应的12个引线孔为电平输出端。开关向上拔, 电平输出为1;向下拨,电平输出为0。(1) 按图6-1连接硬件线路,即: 将PA0PA7与开关K1K8相连; 将PB0PB7与发光二极管L1L8相连; CS与218-21F相连;(2) 编程实现用开关控制发光二极管的亮灭。3.编程提示(1) 此实验比较简单,主要是要注意设置好8255A各端口的工作模式,实验中应当使3个端口均工 作于方式0,并使A 口为输入口和B 口为输出口。(2) 参考流程图6-2读开关控制LED的流程图实验9 8251A串行口实验(1)1.

17、目的(1)了解串行通信的一般原理和8251A的工作原理。(2)掌握8251A的编程方法。2. 内容采用自发自收方式,通过8251A将主机键盘输入字符串行发送出去,再将串行接收到的字符显示在主 机屏幕上,发送和接收时钟信号由8253提供。(1)如图9-1连接线路,即: 将分频器74LS393的B端与8MHz信号相连; 将分频器74LS393的A端接+5V; 将8253的CLK2与8MHz分频得到的250KHz信号(74LS393的Q4端)相连; 8253 的 GATE2 接+5V; 8253的OUT2与8251的TXC、RXC相连,作为发送和接收时钟,波特率自定; 8253 的 CLK2和 25

18、0KHz (74LS393 的 Q4)相连; RXRDY和PC总线的IRQ2 (或B4)相连,由此端向PC主机发中断请求; 8253的CS和200207插孔相连,8251A的CS和208-20F插孔相连; 将8251A的TXD与RXD端连接,形成自发自收;(2)编写程序,将主机键盘输入字符从8251A串行发送出去,再将8251A串行接收到的字符显示在 主机屏幕上。串行通信波特率可选1200BPS. 4800BPS;发送数据用查询方式;接收数据用查询方式或中断 方式。27T25678 n13101220o 1234 567FRvoDDODODDD2003AKTXDTXRDYTXCCK TXEMP

19、TDo OjOUT0CATE。d2CLKq%8253OUTGATEi7CLKfCSRD WRout2AoGATB2A|QSRDTRCTSRTSRxr RXRDY RXCLK SYNDET图9-1显示键入字符的线路3.编程提示(1)将8253计数器2构成一个方波发生器,提供8251A接收和发送时钟信号(2)发送、接收字符均采用查询方式。计数器初值计算公式:计数器2初值=FDK2/ (BPS*波特率因子);FDK2为8253计数器2的时钟频率;BPS为8251A和终端之间数据传送的波特率;波特率因子在8251A初始化时通过编程确定。(3) 8251A 数据 口地址 208H控制口地址 209H82

20、53定时器2地址202H控制口地址 203H(4) 参考流程见图7-2和7-3。开始图9-2查询方式自发自收的程序参考流程图9-3中断方式接收的中断处理程序参考流程实验12 A/D实验1. 目的了解模/数转换的基本原理,掌握ADC0809的使用方法。2. 内容将一个由电位器供给的电压模拟量转变为数字量,存入PC机内存。(1)按图12-1连接硬件线路,即: 用实验台上某一电位器的一端接地,另一端接+5V,电位器中心抽头接ADC0809的IN0 ADC0809 的 CS 接 220227; ADC0809 的 CLK需外加,由于 ADC0809 的 CLK范围为 10KHz1280kHz,所以,取

21、CLK=500kHz。 500kHz信号由8MHz时钟经74LS393分频获得,为此,将8MHz时钟连74LS393分频器的A端,而分频 器B端接+5V,Q3端(输出端)接A/D的500kHz端。图12-1 A/D实验图图12-2 A/D实验参考流程(2) 编制程序,按中断方式采样A/D转换数据,并将结果在PC机上显示出来。3.编程提示(1) ADC0809的分辨率为8位,可有8个(1NIN7)模拟输入,模拟电压范围为05V,在CLK为 500kHz时,转换速度为128 Ms,它的START端为A/D转换启动信号。ALE端为通道选择的地址锁存信 号,实验电路中将START和ALE相连,以便同时

22、锁存通道地址并开始A/D采样转换。其输入控制信号为 CS和IOW,故启动A/D转换只须如下2条指令:MOV DX,PORTADC ; ADC0809 的端 口地址OUT DX,AL;发 CS 及 IOW 信号在本系统中,ADC0809的端口地址为220H。至于AL中具体为什么内容并不重要,这是一个虚拟写动作。(2) 当A/D转换结束后就会自动产生EOC信号,该信号在此未用,可以通过延时方式来读取转换 结果,使用如下指令即可读取A/D转换的结果。MOV DX,PORTADC;在本系统中,ADC0809的端口地址为220HIN AL,DX也可以将该信号与中断请求线相连,当EOC信号有效时就会引起一

23、次硬中断,在中断处理程序中读 取转换结果。(3) 参考流程如图12-2所示。实验14 8259A中断控制器实验1. 目的(1)掌握8259A中断控制器工作原理;(2)熟悉实验中涉及到的中断屏蔽寄存器IMR和中断服务寄存器ISR的使用方法;(3)学会中断处理程序的编写。2. 内容中断请求信号通过微机系统的8259A提交给CPU,进入中断以后,显示1个字符串。(1)中断请求通过IBM PC / XT62芯总线的IRQ2端输入,中断源可以是片外8253定时器输出的脉 冲,也可以是其他脉冲(比如通过实验板上单脉冲按钮产生的脉冲信号)。若用8253做中断源,参看接口 实验2连接8253的线路,并把825

24、3的OUT和62芯总线槽IRQ2 (B4)连接好;若用实验板上单脉冲按 钮产生中断源,将62芯总线槽IRQ2 (B4)与单脉冲连接。(2)编写程序,要求每次主机响应外部中断IRQ2时,显示字符串THIS IS A 8259A INTERRUPT!” (或其他串),中断10次后,退出程序。3. 编程提示(1)本实验使用微型机内的8259A芯片。PC机用户可使用的硬件中断只有可屏蔽中断,由8259中 断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏 蔽中断请求。IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源:中断源中断类型号中断功

25、能IRQ008H时钟IRQ109H键盘IRQ20AH保留IRQ30BH串行口 2IRQ40CH串行口 1IRQ50DH硬盘IRQ60EH软盘IRQ70FH并行打印机8个中断源中IRQ2IRQ7中断请求信号在IBM PC / XT62芯总线中可以引出,系统已经设定中断请 求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一片8259形成主从式结构,主片8259的IRQ2用于两片8259 之间的级连,对外可提供15个中断源:中断源中断类型号中断功能IRQ870H实时时钟IRQ971H用户中断IRQ1072H保留IRQ1173H保留IRQ1274H保留IRQ1375H协处理

26、器IRQ1476H硬盘IRQ1577H保留实验中使用的是IRQ10(对应实验台上62芯总线中的IRQ2),PC中断控制器主片的端口地址为20H(偶 地址端口)、21H (奇地址端口),从片的端口地址为0A0H(偶地址端口)、0A1H (奇地址端口),编程时要将 主、从片中断屏蔽寄存器对应位清零(允许中断),中断屏蔽寄存器代码如下:IN AL, 21H;主片允许中断AND AL, 11111011BOUT 21H, ALIN AL, 0A1H;从片允许中断AND AL, 11111011BOUT 0A1H, AL中断服务程序结束返回前分别要向主、从片发送中断结束命令。中断结束命令代码如下:MOV

27、 AL, 20HOUT 0A0H, ALOUT 20H, AL中断结束返回DOS前应将IMR对应位置1,以关闭中断。(2)由于实验中TPC卡使用9054芯片连接微机来实现P&P功能,所以在编程使用微机中断前需要使 能9054的中断功能,代码如下:MOV DX, 0D400H+68H;9054的I/O起始地址及中断使能寄存器的偏移地址IN AX, DXOR AX,0900H;设置中断允许OUT DX, AX程序退出前还要关闭9054中断,代码如下:MOV DX, 0D400H+68H;9054的I/O起始地址及中断使能寄存器的偏移地址IN AX, DXOR AX,0F7FFH;中断禁止OUT D

28、X, AX(3) 虽然PC机系统中IRQ10硬中断为用户保留,但编程时仍然应将IRQ10对应的中断向量(中断 号为72H)保存起来,然后设置新的中断向量以指向中断处理程序。典型的程序段如下:MOVAH,35HMOVAL,72H ;取72H号中断向量送ES: BXINT21HPUSHES;保存原中断向量PUSHBXPUSHDXMOVDX,SEG INTMOVDS,DXMOVDX,OFFSET INT ;设置新的中断向量MOVAH,25HMOVAL,72HINT21HPOPDS(4)实验参考流程如图14-1所示。设置砒巾断关闭1I18259附录 红华5020B示波器使用简要说明按如下顺序检查并设置

29、示波器面板开关位置(参见下图)一、(1)31号旋钮(VAR/ABLE)向里推入,并顺时旋转到底。(2)10,19号开关搬到DC档。(3)13,17号旋钮向里推入,并顺时旋转到底。(4)12,16号旋钮旋至5V位置。(逆时针旋转到底)(5)45号开关搬到CH1位置。(6)14号按键按下。(7)24号开关(SLOPE)搬至+位置(上)。(8)25 号开关(COUPLING)搬至 DC (下)。(9)26号开关(SOURCE)搬至INT位置(上)。(10)22号旋钮逆时针旋到底。(11)21号旋钮的刻线应旋到0位置。三、上电后(1)左右调整32号旋钮,使扫描线充满屏幕。(2)如果只使用单通道,按下14中的CH1按钮(左边的),调整9号钮使扫描线在屏幕中央。如果 使用双通道,按下14中的ALT按钮并调整9、20旋钮,使两条扫描线在屏幕上的适当位置。(3)信号接入后,调整20号开关使波形展开到适当大小,如果不能同步,可将22号旋钮向顺时针 旋出,调至波形能够同步为止。(4)特别注意探头上的小夹子必须接地。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号