微机接口实验
微机原理及接口技术实验

微机原理及接口技术实验一、实验目的本实验旨在通过学习微机原理和接口技术,了解和掌握微机系统的基本原理和接口技术的应用,培养学生对微机系统的认识和实践操作能力。
二、实验内容1. 微型计算机系统设计与搭建2. 微机输入输出接口技术应用实验3. 微机总线技术应用实验4. 微机存储器技术应用实验5. 微型计算机中断和DMA技术应用实验三、实验原理1. 微型计算机系统设计与搭建微型计算机主要由中央处理器、存储器、输入输出设备和总线组成。
本实验通过选择适当的芯片、电路连接和控制程序设计,实现一个基本的微型计算机系统。
2. 微机输入输出接口技术应用实验输入输出是微型计算机的重要组成部分,通过实验学习各种输入输出接口的原理和使用方法,并进行实际应用。
3. 微机总线技术应用实验总线是微型计算机各个部件之间传送数据和控制信息的公共通信路径。
通过实验学习总线的分类、结构和时序要求,掌握总线的实际应用。
4. 微机存储器技术应用实验存储器是微型计算机中存储数据和程序的重要设备。
通过实验学习不同类型存储器的原理和应用,掌握存储器的选择和使用。
5. 微型计算机中断和DMA技术应用实验中断和直接存储器访问(DMA)是微型计算机连接外部设备的重要技术。
通过实验学习中断和DMA的工作原理,掌握中断和DMA的应用方法。
四、实验步骤1. 根据实验要求,设计并搭建微型计算机系统;2. 连接输入输出设备,并编写控制程序;3. 进行输入输出接口技术应用实验,如串行通信、并行通信等;4. 进行总线技术应用实验,如总线传输数据测试等;5. 进行存储器技术应用实验,如读写存储器数据等;6. 进行中断和DMA技术应用实验,如中断服务程序编写等;7. 完成相关实验报告并进行总结。
五、实验设备和材料1. 微型计算机实验箱、电源适配器;2. 8051单片机、存储器芯片、输入输出芯片,如74HC164等;3. LED数码管、LCD液晶显示器、键盘、计算器等输入输出设备;4. 可编程芯片编程器、逻辑分析仪等实验设备。
微机与接口技术实验报告

微机与接口技术实验报告微机与接口技术实验报告引言微机与接口技术是计算机科学中的重要领域,它涉及到计算机与外部设备之间的通信和数据传输。
本实验报告旨在介绍微机与接口技术的基本概念、实验过程和结果,以及对实验结果的分析和讨论。
一、实验目的本实验旨在通过设计和实现一个简单的数据输入输出接口,加深对微机与接口技术的理解。
具体目标包括:1. 理解接口技术的基本原理和工作方式;2. 掌握接口电路的设计和实现方法;3. 学会使用编程语言控制接口电路进行数据输入输出。
二、实验原理1. 接口技术的基本原理接口技术是计算机与外部设备之间进行数据传输的关键。
通过接口电路,计算机可以与各种外部设备进行通信,实现数据的输入和输出。
接口电路通常由硬件和软件两部分组成,硬件部分负责物理连接和信号转换,而软件部分则负责控制和管理数据传输。
2. 接口电路的设计和实现接口电路的设计需要考虑多个因素,包括外部设备的接口标准、数据传输速率、数据格式等。
常用的接口标准包括串行接口(如RS-232)和并行接口(如Centronics接口)。
设计接口电路时,需要根据具体需求选择合适的接口标准,并合理设计电路结构和信号处理方式。
3. 编程语言控制接口电路为了实现数据的输入和输出,需要使用编程语言控制接口电路。
常用的编程语言包括C、C++和Python等。
通过编写相应的程序,可以控制接口电路进行数据传输,并实现与外部设备的交互。
三、实验过程1. 硬件设计与连接根据实验要求,设计并连接适当的硬件电路,包括接口芯片、电阻、电容等。
确保电路连接正确,且与计算机的接口兼容。
2. 软件编程使用C语言编写程序,实现对接口电路的控制。
程序应能够实现数据的输入和输出,并确保数据的正确传输和处理。
3. 实验操作根据实验要求,进行相应的实验操作。
包括数据输入和输出测试、数据传输速率测试、数据格式转换测试等。
记录实验过程中的数据和结果。
四、实验结果分析1. 数据输入输出测试通过实验操作,测试接口电路的数据输入和输出功能。
微机原理与接口技术实验报告

微机原理与接口技术实验报告引言微机原理与接口技术是计算机科学与技术专业的一门重要课程,通过实验的方式来深入理解微机原理和接口技术的原理和应用。
本实验报告将详细介绍我们在实验中所学到的内容和实验结果。
一、实验目的微机原理与接口技术实验的主要目的是让学生通过实验来了解和掌握微机系统的结构与工作原理,以及接口技术的基本原理和应用。
通过实验,我们可以加深对微机原理和接口技术的理解,并能够熟练操作相应的实验设备和软件。
二、实验内容本次实验主要包括以下几个方面的内容:1. 微机系统的组成与原理:了解微机系统的基本组成部分,包括微处理器、存储器、输入输出设备等,并学习它们的工作原理和相互之间的联系。
2. 微机系统的调试与测试:学习使用调试工具和测试设备来验证微机系统的正确性和稳定性,通过调试和测试来发现和排除系统中的问题。
3. 接口技术的原理与应用:了解各种接口技术的原理和应用,包括并行接口、串行接口、USB接口等,学会设计和实现简单的接口电路。
4. 接口电路的设计与调试:通过实际设计和调试接口电路,加深对接口技术原理的理解,并能够解决实际问题。
三、实验过程及结果在实验中,我们首先学习了微机系统的基本结构和工作原理,并通过实际操作,搭建了一个简单的微机系统。
通过调试和测试,我们验证了系统的正确性和稳定性。
接着,我们学习了各种接口技术的原理和应用。
我们以并行接口为例,设计了一个简单的并行接口电路,并通过实验验证了其正确性。
同时,我们还学习了串行接口和USB接口的原理,并了解了它们在实际应用中的重要性。
在接口电路的设计和调试过程中,我们遇到了一些问题,例如信号传输的稳定性、接口电路的兼容性等。
通过分析和调试,我们逐步解决了这些问题,并取得了令人满意的实验结果。
四、实验总结通过本次实验,我们深入了解了微机原理和接口技术的基本原理和应用。
通过实际操作和调试,我们不仅掌握了微机系统的组成和工作原理,还学会了设计和实现简单的接口电路。
微机实验 可编程并行接口8255

微机原理实验报告实验题目:可编程并行接口8255一、实验目的1、掌握8255的基本输入输出和PC端口位控的工作方式及应用编程。
2、掌握8255的典型应用电路接法。
二、实验知识回顾8255控制字1、控制方式2、C端口置位复位控制字三、实验内容1、 8255流水灯显示,首先用逻辑电平开关预置一个数字,从A口读入,写入01H到C端口上,左移一次在进行输出,A口读入数据作为左移次数,这样循环下去,从而实现流水灯的显示。
2、用PC端口位控制法控制LED灯,依次点亮LED灯。
四、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干五、实现过程1、8255流水灯显示(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,90h ;方式0A口输入C口输出out dx,al ;mov dx,io8255a ;A口的地址存入dxin al,dx ;从dx也就是A口读入数据mov la,al ;读入的数据暂存在la变量mov dx,io8255c ;C口的地址存入dxmov al,01h ;将寄存器最低位置零out dx,al ;置位后的值输入给dx,也就是C口mov lb,al ;置位后的值暂存于变量lbloop1:call delaymov al,la ;将A口数据写入CX用以计数mov ch,00hmov cl,laloop2:call delaymov al,lbrol al,1 ;在寄存器内进行位移操作mov lb,al ;将操作后的结果重新写入变量al,为后面调用做准备mov dx,io8255c ;dx代表C口的地址out dx,al ;将al中存储的值写入dx,即C口mov ah,1 ;选择dos的模式为从键盘读取数据int 16h ;进入中断jnz quit ;ZF为0则跳到quitdec cx ;计数器减一jnz loop2 ;若cx!=0,跳到loop2quit:mov ax,4c00h ;结束程序并退出int 21hdelay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start2、位控设置C口输出点亮LED(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,00001111b ;位控设置C口最高位为1out dx,almov cx,7 ;剩余未点亮灯数为7 loop1:call delaydec aldec alout dx,aldec cxjnz loop1delay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start(3)实验结果图六、小结通过本次试验,我进一步了解了8255的可编程性,以及如何正确的通过程序控制8255,也更加熟悉了8255 C 端口的位控输出。
微机接口综合实验

一、实验目的(1)了解可编程定时/计数器芯片8253在PC机里的工作情况。
(2)掌握PC机定时操作的工作原理。
二、实验内容及要求1.【实验内容】:对PC机中的8253进行编程,使得PC机成为一个精确的时钟;2.【实验要求】:(1)程序截获系统原有的时钟中断向量,置入用户自己的时钟中断向量。
(2)将8253的通道0设置为工作方式3,二进制数,装入计数初值11932,使其没10ms产生一次定时中断,即每秒钟中断100次,在程序中设置每一个中断次数计数器count100,初值为100,每次中断减一,到0后又重新置为100,并对时间显示串进行处理。
(3)程序运行时,在命令行输入用户指定的当前时间“nn:mm:ss”,即以两位数给出的“时:分”秒”,按任意键后开始计时,并以12小时的格式显示当前时间。
(4)在程序运行过程中,即时间显示过程中,用户按住任意键,恢复系统原中断向量,退出时钟程序的运行。
3.【实验流程图】:【计时操作判断流程图】【用户定时中断程序流程图】4.【实验代码】:.model small.model small.stack 256.datacount100 db 100 ;中断次数计数器tenhour db 0 ;一小时的十位数hour db 0 ;一小时的个位数db ':'tenmin db 0 ;分钟的十位数minute db 0 ;分钟的个位数db ':'tensec db 0 ;秒钟的十位数second db 0 ;秒钟的个位数oldtime dw 0 ;保存原时钟中断向量dw 0.codestart proc farpush ds ;进行程序的首地址保护xor ax, axpush axmov ax, @datamov es, ax ;指向数据段mov si, 82h ;指向PSP内命令行参数mov di, offset tenhourmov cx, 8 ;放入“nn:mm:ss”的8个ASCII码的值cldrep movsb ;命令行的参数移入显示串中mov ds, ax ;将数据段的段地址ax存入ds中mov ah, 0 ;等待按键程序启动int 16hcli ;关中断mov ax, 0mov es, ax ;将段地址ax存入es段中mov di, 20h ;产生类型号为20H的中断放入di中mov bx, es:[di] ;将中断向量保存在bx中mov oldtime, bxmov bx, es:[di+2]mov [oldtime+2], bxmov ax, offset timer ;设置用户的中断向量stoswmov ax, seg timerstoswmov al, 36h ;8253中的命令字:通道0,方式3,二进制数out 43h, al ;将设置好的命令字送到8253控制端口mov bx, 11932 ;每秒钟中断100次计数值mov al, blout 40h, al ;置入通道0的寄存器mov al, bhout 40h, alin al, 21h ;读取8259A的中断屏蔽寄存器and al,0fch ;开放键盘和时钟中断out 21h, al ;写入8259A的新的屏蔽字sti ;开中断forever: mov ah, 0bh ;循环检查用户书否键入内容int 21hcmp al,0ffh ;如果按键,则退出循环jz exitmov bx, offset tenhour ;时间显示串首地址放入bx中mov cx, 8dispclk: mov al, [bx] ;读取显示字符串中的一个字符call dispchar ;显示字符一个字符inc bx ;指向下一个字符loop dispclkmov al, 0dh ;完成8次字符显示后回车call dispcharmov al, second ;读取秒钟的数wait1: cmp al, second ;判断秒钟是否有改变jz wait1 ;等待直到有改变jmp forever ;重复显示exit: xor bx, bx ;恢复原来时钟中断向量mov es, bxmov di, 20hmov bx, oldtimemov es:[di], bxmov bx, oldtime+2mov es:[di+2],bxretstart endptimer proc far ;用户定时中断服务程序push axdec count100 ;中断次数减一jnz timerx ;结果如果非零,退出mov count100, 100 ;结果为0,则计数器恢复初值,并继续循环inc second ;秒加1cmp second, '9' ;判断是否秒大于等于9jle timerx ;否,退出中断处理mov second, '0' ;是,秒的个位置0inc tensec ;秒的十位加1cmp tensec, '6' ;判断是否秒的十位大于等于6jl timerx ;否,退出中断处理mov tensec, '0' ;是,将秒的十位置0inc minute ;分的个位加1cmp minute, '9' ;判断分的个位是否大于等于9jle timerx ;否,退出中断处理mov minute, '0' ;是,将分的十位置0inc tenmin ;分十位加1cmp tenmin, '6' ;分的个位数是否大于等于6jl timerx ;否,退出mov tenmin, '0' ;是,分的十位置0inc hour ;小时加1cmp hour, '9' ;判断小时的个位数是否达到9ja adjhour ;超过9调整,超过程39Hcmp hour, '3' ;判断时的个位数是否是3jnz timerx ;否,退出cmp tenhour, '1' ;判断时的十位是否为1jnz timerx ;否,没有超过12,退出mov hour, '1' ;是,超过12,时的个位置为1mov tenhour, '0' ;时的十位置为0jmp short timerx ;退出adjhour: inc tenhour ;时的十位加1mov hour, '0' ;时的个位置0timerx: mov al, 20h ;终端结束命令out 20h, al ;送8259A0CW2,结束本次中断处理pop axirettimer endpdispchar procpush axpush dxmov dl, almov ah, 02hint 21hpop dxpop axretdispchar endpend start三、实验原理8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异。
微机接口技术实验报告并行接口实验

微机接口技术实验报告并行接口实验系别: 计算机科学与技术完成时间:2012-5-15一、实验目的1.熟悉并行接口电路;2.掌握8255并行接口芯片及8253定时器的应用及其编程技术。
二、实验内容及要求通过对8255芯片的编程,使得实验台上的步进电机按顺时针或逆时方向转动,同时扬声器(模拟电子琴)做高8度和低8度循环发音:1. 控制步进电机转动和电子琴发音;2.使用K0控制步进电机顺逆时针转动和电子琴发高低音;3.使用K1控制步进电机和电子琴速度(分快和慢两种速度);4.使用K2启动和停止步进电机转动和电子琴发音。
三、实验原理1、可编程并行芯片8255A并行接口即同时在多根I/O线上,以数据字节或字为单位实现CPU通过I/O端口与I/O 设备或被控制对象之间的信息传递,如计算机与打印机,A/D和D/A转换器,开关量接口等。
8255及其改进型8255A是最广泛应用的并行I/O接口。
8255A的主要性能参数如下:(1)8255A内共有4个端口,分别为口A、口B、口C和控制端口。
前三个端口为8位并行I/O端口,常用于传送数据信息;控制端口是用于接收CPU送来的控制命令,即控制字。
(2)8255A芯片可以三种不同的工作方式与I/O设备进行数据传输,具体方式由控制字来设定。
(3)8255与CPU之间交互信息可以使用中断方式进行。
它内部有三个中断源,分别产生与方式1(1个)和方式2(2个)中。
(4)8255A所有信号与TTL信号兼容,可直接与CPU的三总线连接使用。
(5)8255A使用单一的+5V电源,单项时钟。
8255A的三种工作方式:方式0——基本的输入/输出方式,方式1——选通的输入/输出方式,方式2——双向的输入/输出方式。
本次实验采用方式0,将口A和口B作为输出,分别控制步进电机的旋转和电子琴的发音,口C作为控制输入端。
根据端口编址及寻址方式,设定端口A的地址为288H,端口B地址为289H,端口C地址为28AH,控制端口的地址为28BH。
微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在熟悉并掌握微机原理与接口技术的相关知识,通过实例操作和分析实验数据,加深对微机原理与接口技术的理解。
一、实验器材与软件1. 硬件器材:计算机主机、外设设备2. 软件工具:操作系统、编程软件二、实验步骤及结果分析1. 实验1:计算机开机自检在实验中,通过开机启动计算机,观察计算机进行自检的过程。
根据显示屏上的自检信息,可以判断计算机硬件的工作状态。
2. 实验2:串口通信测试在本实验中,通过串口通信实现计算机与外设设备之间的数据传输。
首先,将串口接口连接到计算机主机,然后进行相应的设置,包括波特率、数据位、停止位和校验位等。
在实验中,通过编写相应的程序,实现计算机与外设设备之间的数据交互。
通过观察实验结果,判断串口通信是否正常。
3. 实验3:并口通信测试本实验旨在通过并行口通信实现计算机与外设设备之间的数据传输。
首先,将并行口接口连接到计算机主机。
然后,根据实验要求进行相应的设置,包括数据总线的宽度、传输模式等。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断并口通信是否正常。
4. 实验4:USB接口测试在本实验中,通过USB接口实现计算机与外设设备之间的数据传输。
首先,将USB接口连接到计算机主机。
然后,在计算机中安装相应的驱动程序。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断USB接口是否正常工作。
5. 实验5:网络接口测试本实验旨在通过网络接口实现计算机之间的数据传输。
首先,将计算机连接到局域网中的其他计算机。
然后,进行相应的设置,包括IP地址、子网掩码等。
通过编写程序,实现计算机之间的数据交互。
观察实验结果,判断网络接口是否正常工作。
三、实验总结通过本次实验,我对微机原理与接口技术有了更深入的了解,掌握了串口、并口、USB接口和网络接口等常用接口的使用方法。
通过实验的操作和分析,我对接口通信的原理和实现方式有了更详细的了解,对计算机与外设设备之间的数据传输有了更清楚的认识。
最新微机接口实验报告

最新微机接口实验报告实验目的:1. 熟悉微机接口的基本原理和功能。
2. 掌握微机接口的编程和操作技巧。
3. 通过实验加深对微机接口技术的理解。
实验环境:- 微机接口实验箱- 个人电脑- 相关软件和驱动程序实验内容:1. 实验一:了解微机接口的基本结构和工作原理。
- 学习微机接口的基本概念,包括数据总线、地址总线、控制总线等。
- 观察实验箱中的微机接口模块,识别各部分的功能。
2. 实验二:编写简单的输入输出程序。
- 使用汇编语言或C语言编写程序,实现对微机接口的控制。
- 通过程序实现LED灯的点亮和熄灭,以及按键的读取。
3. 实验三:中断和DMA操作。
- 学习中断的基本概念和处理流程。
- 实现一个基于中断的键盘输入程序。
- 了解DMA的工作原理,并编写相应的数据传输程序。
实验步骤:1. 准备实验环境,确保所有设备和软件均已正确安装和配置。
2. 按照实验指导书的要求,逐步完成各个实验项目。
3. 在实验过程中记录关键步骤和结果,以便撰写实验报告。
4. 对遇到的问题进行分析和解决,记录解决方案。
实验结果:1. 成功理解微机接口的基本结构和功能。
2. 编写的输入输出程序能够正确控制LED灯和读取按键状态。
3. 中断和DMA操作实验顺利完成,实现了预期的功能。
实验结论:通过本次实验,加深了对微机接口技术的理解,掌握了基本的编程和操作技能。
实验中遇到的问题和挑战也有助于提高解决问题的能力。
通过实践,更加明确了理论知识与实际应用之间的联系。
建议和反思:- 在实验过程中,应更加注重对理论知识的应用,以提高实验效率。
- 对于复杂的问题,应采取分步解决的策略,避免在实验中出现混乱。
- 未来应加强实验前的准备工作,确保实验能够顺利进行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京科技大学计算机与通信工程学院实验报告实验名称:实验一8259 中断控制器应用实验实验二8254 定时/计数器应用实验实验三8255 并口控制器应用实验学生姓名:专业:班级:学号:指导教师:实验成绩:实验地点:机电楼320实验时间:2015 年12 月 4 日一、实验目的与实验要求1、实验目的实验一1.掌握PC 机中断处理系统的基本原理。
2.掌握可编程中断控制器8259 的应用编程方法。
实验二1.掌握8254 的工作方式及应用编程。
2.掌握8254 典型应用电路的接法。
实验三1.掌握8255 的工作方式及应用编程。
2.掌握8255 典型应用电路的接法。
2、实验要求实验一(1)实验1-1:PC 机内中断应用实验①按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,将屏幕显示结果以截图方式写在实验报告中。
②自设计实验。
改变接线方式,将单次脉冲连到USB 核心板上的IRQ10 插孔上,参考本实验代码,编程实现IRQ10 中断。
(注意:考虑PC 机内中断级联的方式,参看前面的原理说明),将代码写在报告中。
(2)实验1-2:PC 机内中断嵌套实验①按接线图连好接线,调用程序源代码8259-2.asm,做如下操作,并将屏幕显示结果以截图的方式写在实验报告中,并分析产生该现象的原因:A.按下连接IRQ 的单次脉冲按键,屏幕上会显示10个3,在屏幕上10 次显示未结束之前,按下连接IRQ10 的单次脉冲按键,观察现象;B.按下连接IRQ10 的单次脉冲按键,屏幕上会显示10个10,在屏幕上10次显示未结束之前,按下连接IRQ3 的单次脉冲按键,观察现象。
②程序中所有代码均没有注释,请在报告中补全注释,尽量详细。
(3)实验1-3:扩展多中断应用实验说明:本实验采用查询方式,应用实验箱提供的8259 中断源,向PC 机提交中断请求。
拨动开关发起请求一次中断,屏幕上显示相应的中断请求号。
调用程序源码文件8259-3.asm,在程序源代码中划横线的位置,请按照所学8259 工作原理填写并验证,然后将所填内容写在实验报告中,并分析所填数据的形成原理。
实验二(1)实验2-1:计数器应用实验①将计数器0 设置为方式3,计数器初值为4,用手动逐个输入单脉冲,用LED 灯观察OUT0 电平变化。
将代码中划横线的部分填上相应的代码,并在实验报告中对所填代码做原理分析。
②如果令计数器0 工作在方式0,其实验现象有什么不同,在报告中进行分析说明。
(2)实验2-2:自设计实验参考实验一的程序和接线,自行设计接线图以及程序代码,实现,以1MHz为时钟源,应用8254 的定时功能,将其分频为1Hz。
以LED灯作为输出显示。
经过实际验证后,在报告中画出接线图,并给出源代码。
实验三(1)实验3-1:可编程并行接口8255 方式0 应用实验编写程序,自行设定A、B、C 三个口中某一个口为输入,某一个为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就改变。
根据原理补全代码中缺失的部分,根据自己的设计,补全接线图,并将代码和对应的接线图写在实验报告中。
(2)实验3-2:自设计试验自行设计完成本实验,要求,8255A 口工作在方式一输入,B 口工作在方式一输出,利用方式一的控制信号,使数据从输入到输出人为可控。
在实验报告中画出接线图,并说明设计的原理,给出对应的程序代码。
二、实验设备(环境)及要求Windows 7系统下的HQFC集成开发环境,CZ-CIUS微机接口实验系统。
三、实验内容与步骤实验一实验1-1(1)实验内容PC 机内中断实验。
使用单次脉冲模拟中断产生。
验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。
(2)主要步骤①按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象。
②自设计实验。
改变接线方式,将单次脉冲连到USB 核心板上的IRQ10 插孔上,参考本实验代码,编程实现IRQ10 中断。
(注意:考虑PC 机内中断级联的方式,参看前面的原理说明)。
接线图:说明:本实验只需要一根连线,一端接系统总线区的IRQ 引脚,一端接到单脉冲单元的引脚上,接线如图1-1 所示。
参考流程图:程序源代码:(1);数据段DA TA SEGMENTMESS DB 'TPCA interrupt! ',0DH,0AH, '$';需要显示的数据,以'$'结束,方便系统调用。
0DH,0AH为换行DA TA ENDS;代码段CODE SEGMENTASSUME CS:CODE, DS:DA TASTART: MOV AX, CS ;系统调用25是设置中断MOV DS, AXMOV DX, OFFSET INT3 ;采用间接修改法,设置中断向量MOV AX, 250BH ;设置IRQ3 对应的中断向量,25是系统调用功能;号,在AL里放中断向量号,0B*4=2C,是中断程序的地址所在位置,DS放中断程序的段;基址,DX放偏移地址INT 21H;中断设置完成IN AL, 21H ;读中断屏蔽寄存器,21H 是该寄存器的端口号AND AL, 0F7H ;开放IRQ3 中断,允许IRQ3 的中断申请OUT 21H, AL ;写OCW1MOV CX, 10 ;记中断循环次数为10 次STI ;允许中断发生WAIT:JMP WAITINT3: MOV AX, DATA ;中断服务程序MOV DS, AXMOV DX, OFFSET MESSMOV AH, 09;在屏幕上显示每次中断的提示信息,DS:DX中存放显示的字符串的地址INT 21HMOV AL, 20H; 发出EOI 结束中断到PC 内主片的地址20HOUT 20H, ALLOOP NEXT ;LOOP每次跳转CX自动减1IN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字OR AL, 08H ;关闭IRQ3 中断OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器STI ;置中断标志位MOV AH, 4CH ;返回DOSINT 21HNEXT: IRET ;中断返回CODE ENDSEND START(2)DATA SEGMENTMESS DB 'TPCA interrupt! ',0DH,0AH, '$'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, CSMOV DS, AXMOV DX, OFFSET INT3 ;采用间接修改法,设置中断向量MOV AX, 2572HINT 21HIN AL, 21H ;主片AND AL, 0FBH ;1111 1011OUT 21H, ALIN AL, 0A1H ;从片AND AL, 0FBH ;1111 1011OUT 0A1H, ALMOV CX, 10 ;记中断循环次数为10次STI ;允许中断发生W AIT: JMP WAITINT3: MOV AX, DATA ;中断服务程序MOV DS, AXMOV DX, OFFSET MESSMOV AH, 09 ;在屏幕上显示每次中断的提示信息INT 21HMOV AL, 20H ; 发出EOI结束中断到PC内主片的地址20HOUT 20H, AL ;关闭主片OUT 0A0H,AL ;关闭从片LOOP NEXTIN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字OR AL, 04H ;关闭IRQ3中断OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器IN AL, 0A1H ;读中断屏蔽寄存器,获取中断屏蔽字OR AL, 04H ;关闭IRQ10中断OUT 0A1H, AL ;将中断屏蔽字送到中断屏蔽寄存器STI ;置中断标志位MOV AH, 4CH ;返回DOSINT 21HNEXT: IRET ;中断返回CODE ENDSEND START实验1-2(1)实验内容PC 机内中断嵌套实验。
使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。
(2)主要步骤接线图:说明:本实验接线图如图1-3 所示,从单脉冲单元引出两根导线,一根接到系统总线单元区的IRQ 引脚,一根接到USB 核心卡的IRQ10 端。
参考流程图:程序源代码:CODE SEGMENTASSUME CS:CODE ,DS: DATASTART:.386 ;告诉汇编器生成intel 80386指令集CLI ;关中断MOV AX,CS;设置中断向量表INT10MOV DS,AX ;将CS段基址给DSMOV DX,OFFSET INT10 ;int10的偏移地址给DXMOV AX,2572HINT 21H ;系统调用25号设置中断功能,中断号72H;设置完成;设置中断向量表INT3MOV DX,OFFSET INT3MOV AX,250BHINT 21H ;系统调用25号设置中断功能,中断号0BH;设置完成IN AL,21HAND AL,0F3H ;1111 0011OUT 21H,AL ;写OCW1,开放2,3号端口IN AL,0A1HAND AL,0FBH ; 1111 1011OUT 0A1H,AL ; 写OCW1,开放10号端口MOV CX,10 STIWAIT:JMP W AIT ;CPU等待中断;INT10代码INT10: CLI ;关中断PUSHADPUSHFD ;将各种寄存器的值入栈,保存现场MOV CX,10 ;给CX赋值,循环10次NEXT10_1:MOV DX,31HMOV AH,02HINT 21H ;系统调用02功能,DL为显示内容ASCII31H :1MOV DX,30HMOV AH,02H ;系统调用02功能,DL为显示内容ASCII31H :0INT 21HMOV DX,20H ;系统调用02功能,DL为显示内容ASCII20H :<空格>MOV AH,02HINT 21HCALL DELAY1 ;调用DELAY1 子程序LOOP NEXT10_1 ;在CX>0之前跳转,并使CX=CX-1;换行操作MOV DX,0DH ;系统调用02功能,DL为显示内容ASCII0DH :<归位键>MOV AH,02HINT 21HMOV DX,0AH ;系统调用02功能,DL为显示内容ASCII0AH :<换行>MOV AH,02HINT 21HMOV AL,20HOUT 0A0H,ALOUT 20H,AL ;发送OCW2结束到主片(偶地址为20H)和从片(偶地址为A0H)POPFDPOPAD ;将之前入栈的恢复,恢复现场STI ;开中断IRET ;中断返回;INT3代码INT3: CLI ;关中断PUSHAD ;将各种寄存器的值入栈,保存现场PUSHFDMOV CX,10 ;给CX赋值,循环10次NEXT3_1: MOV DX,33H ;系统调用02功能,DL为显示内容ASCII33H :3MOV AH,02HINT 21HMOV DX,20H ;系统调用02功能,DL为显示内容ASCII20H :<空格>MOV AH,02HINT 21HCALL DELAY1 ;调用DELAY1 子程序LOOP NEXT3_1 ;在CX>0之前跳转,并使CX=CX-1;换行操作MOV DX,0DH ;系统调用02功能,DL为显示内容ASCII0DH :<归位键>MOV AH,02HINT 21HMOV DX,0AH ;系统调用02功能,DL为显示内容ASCII0AH :<换行>MOV AH,02HINT 21HMOV AL,20HOUT 0A0H,ALOUT 20H,AL ;发送OCW2结束到主片(偶地址为20H)和从片(偶地址为A0H)POPFDPOPAD ;将之前入栈的恢复,恢复现场STI ;开中断IRET ;中断返回DELAY1 PROCPUSHAD ;将各种寄存器的值入栈,保存现场PUSHFDMOV CX,0FH ;给CX赋值,循环15次DELAY_LOOP1:MOV BX,0FFFFH ;BX给成FFFFH,每次减一到0跳出循环以此来达到延时的效果DELAY_LOOP2:DEC BXNOPJNZ DELAY_LOOP2LOOP DELAY_LOOP1POPFDPOPAD ;恢复现场RETDELAY1 ENDPCODE ENDSEND START实验1-3(1)实验内容扩展多中断源查询方式应用实验。