微机接口实验指导指导书

合集下载

《微机原理及接口技术》实验指导书

《微机原理及接口技术》实验指导书

《微机原理及接口技术》实验指导书福建工程学院计算机与信息科学系计算机系统结构教研室实验一 汇编语言程序上机过程一、实验目的1.掌握EDIT 、MASM 、LINK 等软件工具的使用。

2.掌握在计算机上建立、汇编、连接、调试及运行程序的方法。

二、实验内容1.将DISP 单元中存放的一压缩BCD 码内容显示出来。

2.将BUF 单元开始的两个BCD 码相加存放到SUM 单元中,并显示结果。

3.将字节变量DISP 的内容(00H-FFH 任意值)显示出来。

三、实验准备与报告 1.了解实验操作方法,准备好实验程序和数据。

2.记录汇编、连接过程产生的错误及解决办法,设置相关的出错情况,查看汇编结果; 3.记录运行结果,更改数据再运行,记录结果。

4.实验报告主要内容:实验名称、实验目的、实验内容、<实验电路>、程序、实验结果、调试过程记录、总结。

(其它实验也按此要求书写实验报告)实验二 DEBUG 使用实验一、实验目的1.掌握DEBUG 常用命令的使用。

2.进一步了解80X86的存储器和寄存器结构。

3.进一步理解有关指令的功能与应用。

二、实验内容1.进入与退出DEBUG 。

2.用R 命令检查和修改寄存器内容并记录。

3.用D 命令显示内存单元内容并记录。

4.用E 命令修改内存单元内容并记录。

5.A 、U 、T 、P 、G 、N 、W 、L 命令使用。

程序:MOV SI ,0 MOV AX ,[SI] INC SI INC SIADD AX ,[SI] MOV BX ,AX INT 20H(1)使用A 命令输入以上程序;(2)使用U 命令查看输入的程序;(3)使用N 、W 命令将程序存盘;用N 、L 命令重新装载,用U 命令查看; (4)使用DEBUG 的D 、E 命令检查设置(DS ):0000H 起始的四个单元内容; (5)使用R 命令检查、设置有关寄存器的值;(6)分别使用T 、G 命令运行程序,注意观察有关寄存器和单元的变化。

微机接口技术实验指导书-计算机

微机接口技术实验指导书-计算机

实验要求1、带预习报告上机根据实验要求,作好充分预习,设计实验硬件原理及接线图(必须标出相关的管脚号,以备硬件连线及测试),画出程序流程图,写出源程序清单,规划好调试步骤,上机时带预习报告。

注意:无预习报告者不得做实验。

2、认真实验,经教师检查后,方可离开注意掌握软、硬件调试方法,提高分析问题、解决问题的能力。

对所编写的程序必须十分清楚,作到知其然,亦知其所以然,硬件电路原理清楚,熟练应用常规的仪器(如万用表、示波器等)检查测试硬件电路。

指导教师还会根据实验要求,提出问题。

3、按时提交实验报告实验结束后,在预习报告的基础上,完成实验报告,并于下次实验时交给指导教师。

实验报告格式实验* ***** ***** *****一、实验目的二、实验内容三、硬件原理及接线图四、程序流程图五、程序清单六、实验步骤七、实验结果及现象分析八、收获及建议实验环境1. 硬件环境微型计算机,接口实验箱,PCB制版机一套,示波器,工具2. 软件环境WindowsXP操作系统,DOS操作系统任意一种文本编辑器(EDIT、NOTEPAD(记事本)等)汇编程序(MASM.EXE或TASM.EXE)连接程序(LINK.EXE或TLINK.EXE)调试程序(DEBUG.EXE或TD.EXE)3.系统设置进入DOS操作系统——进入E盘——运行AUTOEXEC.BAT——运行TDDEBUG注意:因为PCI总线结构支持p&p即插即用功能,每台微机分配给PCI扩展板的资源是动态浮动的,不像ISA总线是固定死的,因此分配给设备的I/O基地址、MEM基地址空间及INT 中断号会因为不同的微机而变化,所以实验前需要确定当前微机中PCI卡的资源,并用其替换程序中的相应值,重新编译链接后才能实现实验效果。

实验一:中断控制器应用实验一、 实验目的1. 掌握中断控制器8259的工作原理2. 掌握8259的应用中断编程方法3. 掌握8254的工作方式及应用编程方法4. 掌握8254的典型应用方法二、 实验内容1.在实验箱上设计并连接KK1+到8254的CLK0端,8254的OUT0连接INTR ,定义8254的计数器0为方式0,计数值为5,每当KK1+按动5次后产生中断请求,实现在屏幕上显示字符“5”。

微机接口技术实验指导书46502

微机接口技术实验指导书46502

《微机接口技术》实验指导书主编李建波主审黄忠宇、苏显广东机电职业技术学院计算机与信息工程系前言本实验指导书适用于机电一体化专业,实验时间10学时,5次上机时间。

主要学习内容为80X86语言实验环境配置、汇编源语言格式、输出字符、循环结构、子程序调用,以及加减乘除等指令操作。

学习结束后,要求学生能够独立编写出综合加减乘除等指令,以及循环结构、子程序调用等程序控制程序。

目录实验项目一熟悉微机实验环境 (4)实验项目二掌握中断方式显示数字或字符 (6)实验项目三掌握汇编语言的寻址方式 (8)实验项目四掌握循环指令的用法 (10)实验项目五掌握子程序的用法 (12)实验报告一熟悉微机实验环境1、实验目的1、熟悉微机实验环境安装2、熟悉微机实验环境配置3、通过练习加法,熟悉程序格式4、单步运行程序,通过观察窗口观察指令对寄存器中数据的影响2、实验步骤1)软件安装 (拷贝三个文件夹)复制:桌面| 网上邻居\ Techer\ c盘\ wave、comp86和in8088三个文件夹拷贝:将三个文件夹到自己计算机上C:盘根目录下在资源管理器下可以看到:C:\wave,C:\comp86,C:\in8088三个文件夹2)通过资源管理器,进入汇编环境C:\wave\Bin\wave.exe ,双击wave.exe3)打开文件我的电脑 \ c: \ wave \ bin \ wave.exe环境配置(如下图)选中菜单栏中“仿真器”——“仿真器设置”选项(如下图)a、选中“语言”一栏,编译器路径中填写: C:\COMP86\(如下图)b、选中“仿真器”一栏,选择仿真器—————G6W(如下图)选择仿真头—————8088/8086实验(如下图)选择CPU —————8088/8086(如下图)使用软件模拟器:打√表示软件实验,硬件实验则无√4)新建文件a、选中菜单栏\文件\新建文件,建立空白文件b、编辑文件,输入以下代码data segment ;ds 数据段data endsstack segment ;ss 堆栈段stack endscode segment ;cs 代码段assume cs:code, ds:data,ss:stackmain:mov ax, datamov ds, axmov ah,4ch ;程序结束,返回DOSint 21hcode endsend main5)保存源程序a、注意:保存源程序的文件名不能太长(包括路径)不得超过8个,不用汉字;b、注意:保存源程序的文件名的后缀为 .asm6)编译和运行选择菜单栏\项目\全部编译进行编译工作,出现全部正确为止,否则检查。

《微机原理与接口技术》实验指导书

《微机原理与接口技术》实验指导书

《微机原理与接口技术》课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求✧实验一实验系统及仪器仪表使用与汇编环境✧实验二简单程序设计实验✧实验三存储器读/写实验✧实验四简单I/0口扩展实验✧实验五8259A中断控制器实验✧实验六8253定时器/计数器实验✧实验七8255并行口实验✧实验八DMA实验✧实验九8250串口实验✧实验十A/D实验✧实验十一D/A实验✧实验十二8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求EL-8086-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的,涵盖了目前流行教材的主要内容,该系统采用开放接口,并配有丰富的软硬件资源,可以形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。

可供大学本科学习《微机原理与接口技术(8086)》,《单片机应用技术》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。

为配合使用EL型微机教学实验系统而开发的8086调试软件,可以在WINDOWS 2000/XP等多种操作系统下运行。

在使用本软件系统调试程序时,可以同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。

该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。

经常使用的功能均备有热键,这样可以提高程序的调试效率。

一、基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。

旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。

系统具有以下特点:1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。

《微机原理与接口技术》实验指导书

《微机原理与接口技术》实验指导书

微机原理与接口技术实验指导书实验一:微处理器概述及数据传输实验一、实验目的•了解微处理器的基本概念和工作原理;•学习数据传输的基本知识;•掌握使用微处理器进行数据传输的方法。

二、实验器材•1个微处理器开发板;•1个串行通信模块;•相应的连接线。

三、实验内容在该实验中,你将学习如何使用微处理器进行数据传输,具体实验步骤如下:1.将开发板和串行通信模块连接起来;2.将数据发送器连接到串行通信模块的发送端口,将数据接收器连接到串行通信模块的接收端口;3.通过开发板上的开关设置要发送的数据;4.通过串行通信模块将数据发送到计算机;5.在计算机上使用相应的软件接收数据,并验证接收到的数据是否正确。

四、实验步骤1.将开发板和串行通信模块连接起来,确保连接正确并稳定;2.将数据发送器插入串行通信模块的发送端口,将数据接收器插入串行通信模块的接收端口;3.在开发板上的开关上设置要发送的数据;4.打开计算机上的串行通信软件,配置正确的串口号和波特率;5.点击软件的接收按钮,准备接收数据;6.在开发板上的开关上切换到发送模式,并观察串行通信模块的指示灯是否正常闪烁;7.在串行通信软件上观察接收到的数据是否与设置的数据一致;8.如果数据传输正常,则实验完成。

五、实验注意事项1.连接线务必稳固连接,确保数据传输正常;2.阅读并理解实验器材的使用说明书;3.注意保持实验环境的整洁,避免影响实验结果;4.在进行数据传输时,确保计算机已正确安装了相应的驱动程序。

六、实验总结通过这次实验,我们初步了解了微处理器的基本概念和工作原理,学习了数据传输的基本知识,并掌握了使用微处理器进行数据传输的方法。

我们在实验中成功地连接了开发板和串行通信模块,并成功地进行了数据传输。

通过实验,我们发现数据传输过程中需要注意连接线的稳固连接,以及计算机是否安装了相应的驱动程序。

实验的结果验证了我们的操作方法的正确性,同时也为后续实验奠定了基础。

注意:本指导书旨在引导实验过程,实验过程中如有任何危险情况,请立即停止实验并寻求实验室管理员的帮助。

微机接口实验指导书(09)

微机接口实验指导书(09)

目录一、 实验装置基本组成 (2)二、 安装步骤 (2)三、 TPC-2003A实验系统软件环境 (3)四、汇编程序使用方法 (5)五、 接口实验部分 (8)实验一 可编程定时器/计数器(8253) (8)实验二 交通灯控制实验 (10)实验三 竞赛抢答器 (12)实验四 模/数转换器 (14)实验五 PC机串行通讯实验 (16)实验六 中断 (18)六、实验台结构 (22)1一、实验装置基本组成:该实验装置在PC系统中的位置如图1-1所示图1-1二、安装步骤:1. 关上PC机电源,打开微机主机箱。

2. 将PC总线接口卡插在任意扩展槽中。

接口卡的结构图如图2-1所示,该卡使用PLX9054和CPLD把PCI总线时序转换成50芯ISA总线时序,提供给微机实验台使用。

3. 用50芯线扁平电缆线连接接口卡和实验台。

4. 接上PC机电源,启动微机,Win2000/XP/NT/9X/ME提示发现新硬件,请安装光盘里的安装配置文件(TPC.inf)。

5. 重新启动计算机后,运行光盘里的Setup程序配置开发环境。

2图 2-1三、TPC-2003A实验系统软件环境TPC-2003A集成开发环境是TPC-2003A实验系统所配套的软件。

它提供了用户程序的编辑和编译,调试和运行,实验项目的查看和演示,实验项目的添加等功能。

TPC-2003A集成开发环境软件支持两种类型的程序开发:汇编程序(.asm文件)和C语言程 序(.cpp, .h文件)。

用户编辑好程序并保存后,即可方便地进行编译、调试、运行。

1 .新建一个源程序在当前运行环境下,选择菜单栏中的“文件”菜单,菜单下拉后选择“新建”,会弹出“新建”窗口, 用户选择新建表单中的“ASM”或“CPP”,点击“确定”即可新建对应的汇编或c语言程序。

2. 编辑源程序本软件提供了基本的编辑功能,如撤消、剪切、复制、粘贴、查找等功能。

3. 编译源程序z汇编在当前运行环境下,选择菜单栏中的“ASM编译”菜单,选择汇编选项则程序对当前ASM源文件进行汇编,编译调试窗口中输出汇编结果,若程序有错,则详细报告错误信息。

TPC-1微机接口技术实验指导书

第一章TPC—l型十六位微机实验培训系统1.1概述TPC一1型十六位微机实验培训系统是由一块PC总线扩展卡和一个PC总线扩展实验台构成。

这两部分由一根60芯扁平缆连接起来。

总线扩展卡插在微机内部任一PC总线插槽内,将PC总线信号经驱动和隔离后由扁平电缆引到扩展实验台。

在实验台上,总线信号再一次驱动和隔离引到各实验电路上。

总线扩展卡将PC机与实验台结合成一个整体,使学生在实验时既能充分利用PC机强大的软、硬件资源,充分发挥他们的创造力并提高实验效率,同时又保证了主机的安全。

扩展实验台是单板式结构,固定在实验箱内。

根据实验的需要,实验台上设计了三类电路:第一类是公共控制电路,包括总线驱动和I/O地址译码;第二类是实验辅助电路,包括时钟发生器、单脉冲发生器、分频器等电路;第三类是接口实验电路,比如8253、8255、8251、A/D、D/A、存储器等微机常用接口电路。

这些电路将在下面的章节中详细介绍。

为了使学生得到实验技能的训练,减少不必要的重复接线,各实验电路中的公共部分,比如数据线、I/O读写信号在实验台上都已连好,而另外一些需要选择的信号,如片选、输入、输出等由学生根据实验需要自己去连接。

这些信号在每一部分实验电路附近都留有信号插孔,实验时只要将相应插孔用单股导线相连即可。

电路中凡是用实心圆“.”表示的端子,均表明该端线已经连接好;凡是空心圆“o”表示的端子,均表明该端子需要接线。

1.2 公共控制电路1.总线驱动电路PC总线插槽有62个引脚,除电源和地线以外,信号线53根。

这53根信号线分为三大类,第一类为输出型信号线,比如地址线、读写信号线等。

第二类为输入型信号线,比如中断申请、DMA申请等。

第三类为双向型信号线,即数据线。

由于这几类信号线性质不同,扩展方法也不同,如图1.1所示。

由于扩展总线两端增加了驱动和接收电路,总线信号经两次驱动后会有延迟,另外长约l米的电缆线也会带来分布电容,使信号发生畸变,为了解决信号畸变,增加可靠性,扩展信号两端根据信号的不同种类,增加了始端或终端匹配电阻。

微机原理及接口技术实验指导书

微机原理及接口技术实验指导书书写实验名称时请按下表内容填写:实验一、熟悉实验运行环境实验一、实验目的1、熟悉汇编语言程序的调试环境2、掌握部分DEBUG命令二、实验内容编写一个汇编语言程序,计算1+2+3+…+99+100,并将结果存入SUM字单元。

通过调试程序熟悉汇编语言的上机操作过程及部分命令。

三、上机操作过程1、建立ASM文件(编辑源程序)使用编辑程序EDIT在磁盘上建立源程序EX.ASM例如:D:\MASM>EDIT EX.ASM用MASM程序产生OBJ文件源文件建立后,就要用汇编程序对源文件汇编,汇编后产生二进制的目标文件(OBJ文件)例如:D:\MASM>MASM EX3 、用LINK程序产生EXE文件汇编程序已产生出二进制的目标文件(OBJ),但OBJ文件并不是可执行文件,还必须使用连接程序(LINK)把目标文件转换为可执行的EXE文件例如:D:\MASM>LINK EX4、调试运行在建立了EXE文件后,就可以直接从DOS执行程序。

如果用户程序有错误或者没有直接将结果在终端上显示出来,程序执行完之后无法看见正确的结果。

那么怎么知道程序执行的结果是正确的呢?此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,得到正确的结果。

这里就要使用调试程序。

例如:D:\MASM>DEBUG EX.EXE①R命令显示或修改寄存器中的内容例如:_R BXBX 0369:059E不作修改,直接回车;否则键入修改内容,并回车②U命令反汇编a、_U[地址] 从指定地址开始,反汇编32个字节。

如果地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节b、_U[范围] 对指定范围的内存单元进行反汇编例如:_U 04BA:0100 0108③T命令单步执行命令(一次执行一条指令)例如:从代码段的0000H处开始单步执行_R IPIP XXXX: 0000_T④G命令执行命令(执行多条指令)_G 地址1 地址2表示从地址1开始执行指令到地址2结束例如:从代码段的0000H处开始连续执行指令,知道0013H处_R IPIP XXXX: 0000_G 0013⑤D命令显示内存单元的内容a、_D 地址b、_D 范围例如:显示数据段中0000H开始的若干个字节单元的内容_D DS:0000例如:显示数据段中0000H到0010H各字节单元的内容_D DS:0000 0010⑥E命令修改存储单元的内容例如:修改数据段0002H字节单元的内容为0FFH_E DS:0002XXXX:0002 XX FF⑦Q命令退出DEBUG程序实验二、分支程序设计一、实验目的1、掌握分支程序的结构形式2、掌握分支程序的设计方法 二、实验内容1、计算分段函数,X 为8位带符号数2、算法分析先将X 的范围确定在-10≤x ≤20之内,除此之外结果全为0,然后计算X+5,再根据结果的符号求绝对值。

微机原理与接口技术实验指导书(xin)

DVCC实验仪器简介微机原理及接口技术实验采用DVCCJH598实验仪器完成。

通过实验,可使学生基本掌握MCS-51单片机的结构、原理、接口技术、编程技巧。

实验过程,将实验仪器与PC机通过串行口连接。

实验仪器布局如图1所示。

图1 DVCCJH598实验仪布局图实验源程序在DVCCJH598实验软件上输入。

软件界面如图2所示。

图2 DVCC软件界面其中各菜单功能如下:文件:主要完成文件新建、打开已有文件、保存。

编译:包括编译文件、编译连接文件、编译连接并传送文件。

编译主要检查源文件语法错误,如没有语法错误,编译器将生成源文件的目标代码。

编译连接文件:主要针对多文件汇编,可以对多文件编译并连接成目标文件。

编译连接并传送文件:编译连接并将目标文件传送给DVCC实验仪。

选项:完成对实验仪的设置。

动态调试:对文件进行单步或连续运行。

实验指南:给出相关实验的目标、内容、原理图等。

第一部分软件实验实验一清零程序一、实验目的二、实验内容把7000H-70FFH的内容清零。

三、实验程序框图四、主要仪器设备及耗材微机原理与接口技术实验板、PC机五、实验步骤1)将DVCC仿真实验系统联PC机;2)在PC机上输入源程序,并编译;3)联接DVCC实验系统,装载目标文件;4)设置PC起始地址5)从起始地址开始连续运行程序(F9)或单步(F8)或断点运行程序6)单步、断点运行完后,在存贮器窗口内检查7000H-70FFH中的内容是否全为00H。

六、思考题假使要把7000H-70FFH中的内容改成FF,如何编制程序?实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。

二、实验内容把7000H的内容拆开,高位送7001H低位,低位送7002H低位。

7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区时用。

三、实验框图四、主要仪器设备及耗材微机原理与接口技术实验板、PC机五、实验步骤1)将DVCC仿真实验系统联PC机;2)在PC机上输入源程序,并编译;3)联接DVCC实验系统,装载目标文件;4)用存贮器读写方法将7000H单元置成34H;5)设置PC起始地址0050H6)从起始地址开始连续运行程序(F9)或单步(F8)或断点运行程序7)单步、断点运行完后,在存贮器窗口内检查7001H和7002H单元中的内容是否为03H 和04H。

微机接口实验指导书8086

写T0方式控制字 写T0计数初值
写T1方式控制字 写T1计数初值
写T2方式控制字 写T2计数初值 空操作 结束
共40页
第8页
微机接口(8086)实验指导书
实验 5 A/D 实验
ቤተ መጻሕፍቲ ባይዱ
一、实验目的
熟悉 A/D 转换的基本原理,掌握 ADC0809 的使用方法。
二、实验设备
CPU 挂箱、8086CPU 模块。
初值设为 927C(H 37500 十进制),则 OUT0 输出的方波周期为(37500*4/3*10-6=0.05s)。
T2 采用 OUT0 的输出为时钟,则在 T2 中设置初值为 n 时,则 OUT2 输出方波周期为
n*0.05s。n 的最大值为 FFFFH,所以 OUT2 输出方波最大周期为 3276.75s(=54.6 分
4、检查显示数据(16 进制)是否与电位器输出的电压相符合。
六、实验提示
实验电路中启动信号 START 与地址锁存信号相连,所以启动 A/D 转换的方法为:
MOV DX ,ADDRESS
;ADDRESS 是 ADC0809 的端口地址
OUT AL, DX
;发片选及 IOW 信号,启动 0 通道
七、实验结果
实验中,通讯波特率选用 9600bps。上下位机均采用查询方式。8250 的端口地 址为 0480 起始的偶地址单元。
实验中,上位机向下位机发送一个字符,下位机将接收到的字符返回。事实上 这就实现了串口通信的基本过程。掌握了此实验中的编程方法再编制复杂的串行通 信程序也就不难了。
三、实验内容 向 02000~020FFH 单元的偶地址送入 AAH,奇地址送入 55H。
四、实验原理介绍 本实验用到存储器电路
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

现代计算机接口技术及MFC程序实现武汉工业学院计算机与信息工程系目录实验1 定时与中断接口程序设计 (1)实验2 操作PC机上的8250实现串行通信 (5)实验3 基于DLL与HOOK技术的键盘消息拦截与读音 (10)实验4 MFC串行通信程序设计 (16)实验5 DirectShow接口实现视频显示与帧捕获 (20)实验6 基于Socket接口的网络通信MFC程序设计 (27)实验1 定时与中断接口程序设计一实验目的1.了解定时器/计数器8253、并行I/O接口8255A在PC机中的电路连接方法;2.学习使用TURBO C++对8253、8255进行编程操作;3.熟悉拦截PC机中断向量的TC++ 编程方法。

二实验内容1.8253、8255在PC/XT机中的电路连接介绍PC机启动后,系统设置的初始状态为:表中,8253的通道2#的工作方式和计数初值未知,要求自己设置。

2.程序要求利用TURBO C++开发环境设计程序,实现如下功能:(1)程序启动时,要求输入定时时间,以秒为单位。

(2)按秒计时,每秒到达时,在屏幕上显示当前为第几秒,同时蜂鸣器发出短促叫声;(3)当定时时间到,则显示“Time Up!”,结束程序。

三实验环境硬件环境:PC机一台;软件环境:操作系统不限,TURBO C++3.0。

四实验步骤1.建立源文件启动TURBO C++3.0,建立Timer.CPP。

保存到D:\×××(学号)\Timer.CPP;2.设置TC工作目录选菜单Options/Directories,第1、2栏保持不变,第3、4栏填写您的文件存放目录,OK。

如此,TC生成的可执行文件等将会存放到此工作目录下。

样例如下:3.输入源程序以下源程序仅供参考。

#include <stdio.h> //支持标准输入输出,如printf()。

#include <dos.h> //支持接口访问、中断向量操作函数#include <STDLIB.H> //支持exit()函数#ifdef __cplusplus //定义C++使用的中断函数标识符。

若是×××.C程序,则不需要#define __CPPARGS ...#else#define __CPPARGS#endifint nTick=0,sec=0,flag=0;unsigned char sys_PB,my_PB;void interrupt far (*sys_int_08)(__CPPARGS); //若是×××.C,则函数参数不写void interrupt far my_int_08(__CPPARGS) //若是×××.C,则函数参数不写{//8号中断,每55ms中断一次,由8253的0号定时器定时,并向8259 IRQ0申请中断++nTick;if(tinck==1) outportb(0x61,my_PB); //开始鸣叫else if(tinck==3) outportb(0x61,sys_PB); //停止鸣叫else if(nTick>18){ // 1second/55ms 近似等于18flag=1;nTick=0;sec++;}sys_int_08(); //调用系统的中断向量}//==========================================void main(){ unsigned int Time_up;printf("Please input Up Time(5--30): ");scanf("%d",&Time_up);printf("\n");if(Time_up<5 || Time_up>30){ printf("Input Error!");exit(1); //结束程序}outportb(0x63,0x82);//设置8255,PB为输入方式sys_PB=inportb(0x61); //读取PB口,内容my_PB=sys_PB|0x03;//将PB口低2位(PB0,PB1)置1outportb(0x63,0x80);//设置8255,PB为输出方式//8253通道2,产生1KHz方波,送到扬声器,使扬声器发声outportb(0x43,0xb6); //CW=10110110 B,通道2,先低字节,再高字节,方式3,二进制outportb(0x42,0xa6); //low byte,outportb(0x42,0x04); //high byte,0x04a6=1190,f = 1.19MHz,out=f/1190=1000Hzsys_int_08=getvect(0x08); //保存系统的中断向量setvect(0x08,my_int_08); //设置系统向量while(1){ if(flag==1){ flag=0;printf("%d ",sec);if(sec==Time_up) break;}}printf("Timer Up!\n\n");outportb(0x61,sys_PB); //恢复系统的PB口状态setvect(0x08,sys_int_08); //恢复系统的中断向量}4.运行程序,再完成如下内容(1)8253的通道0在程序中起什么作用?为什么在程序中没有对其进行初始化及赋初值?(2)修改8253通道0#的初值,使计时精度严格为1秒。

提示:可采用动态初值,即一秒内的每次中断采用不同的初值,使每次中断得到的时间间隔之和为1000ms。

55ms的定时=65535×1/1.19MHz(3)my_int_08()函数什么时候被调用?(4)将main()函数的最后一句注释掉,再执行,会有什么结果?假定是在纯DOS环境下执行这个程序。

(5)本程序为什么采用DOS环境编写程序,而不采用Windows环境?六实验报告实验报告是科学实验中的重要技术文档,应如实记录实验中发生的现象、处理措施和结果。

实验报告的组成一般为:实验项目名称(要求严格与本指导书一致)、实验日期、场地、采用的软硬件环境,实验者;对于为什么采用此环境,必要时可作出说明。

例如,本实验为什么要采用TC,而不采用VC?实验目的:具体写要做成什么,期望得出什么结果。

不要照抄本指导书。

实验过程:具体写操作的过程,对于源程序,不一定全部写出,但应画出模块图、流程图。

核心代码可写出。

特别要写出实验中碰到的问题及分析、解决办法。

实验结果及分析:如实写出结果,对结果进行分析,可进一步提出改进、提高的办法。

实验2 操作PC 机上的8250实现串行通信一 实验目的1.了解8250在PC 机中的电路连接方法;2.学习使用TURBO C++对8250进行编程操作; 3.利用8259中断实现RS232串行通信。

二 实验指导1.8250内部基本结构简介为便于理解,以下仅给出8250内部的简化逻辑结构和主要管脚,详情请参阅有关技术资料。

2.8250内部寄存器功能简介 线路控制寄存器 LCR注: 各寄存器旁标注的十六进制数是该寄存器在PC 中的I/O 地址。

数据终端就绪 请求发送 清除发送数据设备就绪 振铃接收信号检测串行数据输入串行数据输出中断允许寄存器IER中断标识寄存器 IIR (只读)除数寄存器用于设置波特率。

波特率=时钟频率÷(16×除数寄存器的值)。

若已知波特率,则: 除数寄存器的值=时钟频率÷(16×波特率)。

Modem 控制寄存器 MCR值有改变。

3.8250在PC/XT 机中的电路连接介绍主板上有两片8250,分别对应串口1和串口2。

8250(对应COM1)的端口地址为3F8H~3FFH ,其中断信号传到8259的IRQ4。

IRQ4的中断类型码为0CH 。

8250(对应COM2)的端口地址为2F8H~2FFH ,其中断信号传到8259的IRQ3。

IRQ3的中断类型码为0BH 。

本实验仅操作串口1对应的8250(对应COM1),实现串行通信。

4.程序要求利用TURBO C++开发环境设计程序,实现如下功能:(1)设置8250:波特率=1200,奇校验,8位数据,1停止位; 按LOOP 方式工作,自发自收;允许接收中断。

(2)拦截8259 IRQ4中断,在此中断中接收数据,在程序中显示数据。

(3)将程序改为两机之间通信,一机发送,另一机接收。

三 实验环境硬件环境:PC 机一台;串行通信终接头一个(用于一个串口自发自收);串行通信电缆一根(用于两机之间通信)。

软件环境:操作系统不限,TURBO C++3.0。

四 实验步骤1.输入源程序(LOOP 方式),自收自发实验。

以下源程序仅供参考。

#include <bios.h>#include <dos.h> void init_RS232(); //初始化COM1,包括8250和8259 void interrupt far my_interupt(); //本程序的中断响应函数void interrupt far (*old_int_rs232)(); //指向系统原来的中断响应函数unsigned int old_IMR; //保存8259中断屏蔽寄存器IMR 的原值,以便程序退出时复原 unsigned char input_buf[1024]; //定义接收缓冲区unsigned char output_buf[1024]={ 0xa1,0xb2,0xc3,0xd4,0xe5,0xf6 }; //定义发送缓冲区及要发送的数据 unsigned int input_buf_point; //指向当前存放接收数据的缓冲区位置 unsigned int output_buf_point; //指向当前要发送字节的缓冲区位置 int send_OK;//收发完成标志。

0=收发未完成,1=收发完成DB9插座int output_bytes=6; //应发送的字节数,设要发送6个字节void main(){ int i;clrscr( ); //清屏init_RS232( ); //设置8250、8259的初始化值send_OK = 0; //先置为0,表示收发未完成。

for( ; ; ) {printf("Press any key to send, \"q\" to exit\n\n");if(getch() == 'q') break;printf("Sending Data: "); //先把待发送的数据显示出来for(i=0 ; i < output_bytes; i++){printf("%02x ", output_buf[i]);};printf("\n");output_buf_point = 0; //目前已发送了0个数据input_buf_point = 0; //目前收到0个数据outportb(0x3f8,output_buf[output_buf_point++]); //发送第一个字符,后续字符将在前一个//字符引起的中断响应中发送;while(!send_OK) ; //等待收发完成(收发工作在中断函数中进行)printf("receving Data: "); //收发完成,把收到的数据显示出来for(i=0 ; i < output_bytes; i++) printf("%02x ", input_buf[i]);printf("\n\n");}outportb(0x21, old_IMR); //将8259的中断屏蔽寄存器IMR复原setvect(0x0c, old_int_rs232); //将COM1的中断向量复原}void init_RS232() //8250、8259初始设置函数{ int i;disable(); //由于要修改系统的中断方式,故先关中断,保证下面的操作不影响系统工作outportb(0x3fb,0x80); //1000 0000, 写8250控制字,允许改动波特率outportb(0x3f8,0x60); //设置波特率=1200bps. 8250的时钟=1.8432MHz,除数=0060H=92,outportb(0x3f9,0x00); //故波特率=1.8432/(16*92)=0.001252Mbps=1252bps.outportb(0x3fb,0x2b); //0010 1011,再写控制字,锁定波特率,奇校验,8位数据,1停止位outportb(0x3fc,0x13); //0001 0011,写Modem控制字,LOOP=1,RTS=1,DTS=1outportb(0x3f9,0x05); //设置中断允许寄存器IER, 允许接收中断old_int_rs232 = getvect(0x0c); //保存系统原中断向量。

相关文档
最新文档