计算机接口技术及应用实验指导书王忠飞编浙江工业大学机电工程学院-1-目录实验一PC组成和PC总线结构实验、扩展接口演示实验…………………2实验二模拟接口、I/O接口扩展实验……………………………………………4实验三异步串行通讯实验…………………………………………………………5实验四测控系统实验…………………………………………………………………7-2-实验一PC组成和PC总线结构实验、扩展接口演示实验一、实验目的通过本次实验,可以了解和掌握PC(通用计算机系统)的基本组成,对PC总线有全面的感性认识,对实验用的各种接口扩展卡有感性认识,并为以后的自己动手实验作好准备。二、实验设备工业控制计算机(IPC)、多功能接口扩展卡和DI/DO扩展卡等。三、实验内容1.打开其中任何一台实验用工业计算机,指导教师讲解IPC内部的各功能部件、基本结构、工作原理;2.指导教师讲解PC的ISABUS、PCIBUS、AGPBUS等内部总线的基本规范和特点;3.指导教师讲解PC的串行口、并行打印接口、USB、PS/2等外部总线的基本规范和特点;4.指导教师讲解多功能接口扩展卡、DI/DO接口扩展卡的基本工作原理、使用注意事项;5.指导教师讲解DI/DO接口扩展卡的输入通道和输出通道的电路原理、连接输入和输出信号的方法,并将继电器、发光指示灯和开关信号板与DI/DO接口扩展卡连接,演示开关信号的监控程序。6.学生自己动手学习BorlandC或VisualC开发环境。7.学生自己动手编写程序控制开关信号连接板上的继电器动作。四、实验中演示用的程序和流程#includedos.h#includestdlib.h#includestdio.h#includeconio.h#defineDIDOBaseAdr0x300#defineDIByte1AdrDIDOBaseAdr+0#defineDIByte2AdrDIDOBaseAdr+1#defineDOByte1AdrDIDOBaseAdr+0#defineDOByte2AdrDIDOBaseAdr+1unsignedintGetDI(void);voidDOControl(unsignedintdo);unsignedintGetDI(void){unsignedintresult;unsignedchardi1,di2;di1=inportb(DIByte1Adr);从该页开始打印-3-di2=inportb(DIByte2Adr);result=(unsignedint)di2;result=8;result|=(unsignedint)di1;return(result);}voidDOControl(unsignedintdo){outputb(DOByte1Adr,(unsignedchar)do);outputb(DOByte2Adr,(unsignedchar)(do8));}voidmain(void){unsignedintstate;do{state=GetDI();DOControl(state);Delay(20000);printf(“CurrentDIportstate[%4x]”,state);}while(!(kbhit());}五、实验步骤1.熟悉工业计算机的基本组成;2.熟悉工业计算机的各种内部总线及其使用方法;3.掌握PC的ISABUS、异步串行接口、并行打印接口的接口规范、使用方法和特点;4.熟悉多功能接口扩展卡、DI/DO接口扩展卡及其扩展的信号板(执行机构模拟板)的基本工作原理、使用方法;5.熟悉BorlandC或VisualC开发环境;6.关闭工业计算机电源,打开计算机机箱,取出多功能接口扩展卡和DI/DO接口扩展卡,并将DI/DO接口扩展卡的基地址设置好,重新将DI/DO接口扩展卡固定在某个空闲的PCISABUS总线槽,并将其与信号板正确连接;7.开启工业计算机,进入BorlandC或VisualC开发环境。8.修改(四)的程序(仅相应的接口卡基地址),将其输入计算机,在开发环境编译、连接并执行,观察信号板的现象;9.修改(四)的程序控制信号板上的16个继电器依次逐个顺序先打开再关闭;10.编写程序实现下面的动作:1)当SW1按下,16个继电器从1~16顺序先开再关;2)当SW2按下,16个继电器从16~1顺序先开再关。六、实验报告1.简述PC的基本组成;2.比较PC的ISABUS和PCIBUS的主要区别。-4-实验二模拟接口、I/O接口扩展实验一、实验目的结合理论学习中的“PC总线时序、数据传送方式、模拟信号和离散信号”等知识,通过自己动手的验证实验可以更好地掌握PC总线扩展原理、接口设计方法等,验证实验也可以加深课堂的理论学习内容的理解。二、实验设备工业控制计算机(IPC)、多功能接口扩展卡和DI/DO扩展卡等。三、实验内容1.了解扩展接口卡的工作原理;2.在BorlandC或VisualC环境编写程序利用查询方式实现离散信号控制(执行部件为DI/DO接口扩展卡的信号板上的轻触开关、继电器和LED);3.在BorlandC或VisualC环境编写程序利用查询方式实现连续模拟信号输入和输出控制,控制DAC产生模拟电压(模拟输出),然后反馈给ADC的输入端,并显示转换结果。四、程序和流程框图(由学生自己设计)五、实验步骤1.熟悉多功能接口扩展卡、DI/DO接口扩展卡及其扩展的信号板(执行机构模拟板)的基本工作原理、使用方法;2.熟悉BorlandC或VisualC开发环境;3.关闭工业计算机电源,打开计算机机箱,取出多功能接口扩展卡和DI/DO接口扩展卡,并将多功能接口扩展卡和DI/DO接口扩展卡的基地址设置好,重新将多功能接口扩展卡和DI/DO接口扩展卡固定在空闲的PCISABUS总线槽,并将其与信号板正确连接;4.用短导线将DAC0和DAC1两个模拟输出分别连接到ADC0和ADC1模拟输入端口;5.开启工业计算机,进入BorlandC或VisualC开发环境。6.编写程序利用查询方式实现离散信号控制(执行部件为DI/DO接口扩展卡的信号板上的轻触开关、继电器和LED),分别为SW1、SW2、SW3、SW4等开关输入分配不同的继电器动作;7.编写程序利用查询方式实现连续模拟信号输入和输出控制,控制DAC产生模拟电压(模拟输出),然后反馈给ADC的输入端,并显示转换结果。用键盘输入0~4096之间的不同数字,由DAC将它们转换为模拟电压输出,然后再从ADC将它们转换为数字并显示在屏幕上。六、实验报告1.给出实验中所编写的程序和相应的程序流程;-5-2.简述利用查询方式完成一次ADC转换的过程;3.简述查询方式传送数据过程和中断方式传送数据过程的主要区别。实验三异步串行通讯实验一、实验目的本实验要求学生自己动手验证和练习实验,结合理论学习中的“PC系统串行异步通讯”等知识,通过学生自己动手的验证实验可以使学生掌握PC串行异步通讯端口的工作原理、编程控制方法,验证实验也可以加深课堂的理论学习内容的理解。二、实验设备两台工业控制计算机(IPC)等。三、实验内容1.了解PC异步串行通讯的工作原理、编程控制方法。2.利用PC的串行端口,采用“零调制”方式,实现2台PC之间通讯,要求通讯波特率为9600。3.编程实现在1台PC上键入的字符通过串行口传送到另一台PC中并能显示收到的字符。四、实验程序和流程框图#includedos.h#includestdlib.h#includestdio.h#includeconio.h#defineRS232PortAdr0x3f8#defineDATAadd0/*Tx/RxDataRegister*/#defineIERadd1/*InterruptEnableRegister*/#defineBRDLadd0/*baudreglow*/#defineBRDHadd1/*baudregHi*/#defineLCRadd3/*LineControlRegister*/#defineMCRadd4/*ModemControlRegister*/#defineLSRadd5/*LineStatusRegister*/voidInitRS232Port(void);voidSendChar(unsignedcharch);unsignedcharGetChar(void);voidInitRS232Port(void){outportb((RS232PortAdr+LCRadd),0x83);/*Presetbaudrate*/outportb(RS232PortAdr+BRDLadd,0x0C);/*Baudratelowbyte*/-6-outportb((RS232PortAdr+BRDHadd),0x0);/*Baudratehighbyte*/outportb((RS232PortAdr+LCRadd),0x03);inportb(RS232PortAdr);/*Clearreceivebuffer*/}voidmain(void){unsignedcharch;printf(**************************************************\n);printf(*WelcometoRS232serialPorttestProgram.*\n);printf(**************************************************\n);printf(*Pleaseinputanykey,thensendthiskeycodetootherPC*\n);printf(“*Thecharacter‘Q’or‘q’toquitthisprogram…*\n”);InitRS232Port();/*Initrs232serialport*/do{ch=getch();if((ch==‘Q’)||(ch==‘q’))break;SsendChar(ch);//SendchartootherPC}while(1);printf(“\nTheProgramwasbreakenbyuser!\n”);getch();}voidSendChar(unsignedcharch){while(!(inportb(RS232PortAdr+LSRadd)&0x20));outportb((RS232PortAdr+DATAadd),ch);}unsignedcharGetChar(void){while(!(inportb(RS232PortAdr+LSRadd)&0x01));return(inportb(RS232PortAdr+DATAadd));}五、实验步骤1.关闭PC电源,利用专用的连接通讯线通过PC的异步通讯端口将两台PC互相连接,俗称“直接电缆连接”;2.打开PC电源,进入BorlandC或VisualC开发环境;3.参考(四)中的程序在一台PC上执行发送程序;另一台PC上执行接收程序。4.在一台PC上键入字符发送给另一台PC;5.在另一台PC上显示接收到的字符。六、实验报告和思考-7-1.什么是异步串行通讯的波特率?2.如何修改(四)中的程序的波特率为19200bps?3.当两台PC的波特率不同时,重复(五)的实验步骤,观察结果,并说明原因。实验四测控系统实验一、实验目的本次实验属综合实验,要求学生能够全面掌握理论学习的内容,并独立完成本次实验,通过综合实验学生可以掌握基于PC的测控系统的各构件的原理、扩展方法等,了解“虚拟仪器”的基本原理和构成。本实验不要求学生提交实验报告,但是必须有指导教师检查每位学生的实验结果。二、实验设备工业控制计算机(IPC)、多功能接口扩展卡和DI/DO扩展卡、示波器等。三、实验内容1.利用多功能接口扩展卡和DI/DO接口扩展卡上的DAC和输入/输出开关信号端口,编写控制程序控制DAC产生