当前位置:文档之家› 微机原理与接口技术实验报告

微机原理与接口技术实验报告

微机原理与接口技术课程设计报告题目:继电器控制实验设计学院电子与信息工程学院专业通信工程年级 10级学生姓名 xx学号 _ xxxxxxxx指导教师 xx完成时间 2012/11/9二O一二年十一月目录摘要 (3)一.实验目的 (4)二.实验原理 (4)1 实验基本原理 (4)2.1继电器结构原理图 (5)2.2继电器工作原理 (5)3.1 8255A组成 (6)3.2 8255A结构框图 (7)3.3 8255A工作方式 (7)三.实验内容 (11)四.程序设计 (12)4.1程序流程图 (12)4.2程序代码 (12)五.实验小结........................................................ 错误!未定义书签。

六.参考文献 ......................................................... 错误!未定义书签。

摘要现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件,另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全。

继电器便能完成这一桥梁作用。

本课程设计主要采用了控制继电器和8255A芯片来完成。

电路的控制端为高电平时,继电器工作常开触点吸合,连触点的LED灯被点亮。

当控制端为低电平时,继电器不工作。

执行时,对应的LED将随继电器的开关而亮灭。

关键词:控制继电器 8255A芯片一.实验目的1、进一步熟悉汇编语言的设计编写2、掌握继电器控制的基本原理3、掌握继电器控制编程方法4、掌握8255芯片的应用二.实验原理1、利用8255A PA0输出高低电平,控制继电器的开合,以实现对外部装置的控制。

硬件线路原理图接线如下:2、继电器在现代工业中,人员和电子电路安全保障一直是首要考虑的问题,尤其在一些高危恶劣环境下,如高温高压等,如何在保障操作人员和电子电路安全的前提下对电路进行良好地控制便成为了工业进步不可回避的问题。

一方面要使电子电路的控制信号能够控制电气电路的执行元件,另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全,符合这种需求的元件便是继电器。

控制继电器是一种自动电子控制器件,它适用于远距离接通和分断交、直流小容量控制电路, 它具有控制系统和被控制系统,通常应用于自动控制电路中,并在电力驱动系统中供控制、保护及信号转换用。

它实际上是用较小的电流去控制较大电流的一种“自动开关”,故在电路中起着自动调节、安全保护、转换电路等作用。

电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。

只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点吸合。

当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点吸合。

这样吸合、释放,从而达到了在电路中的导通、切断的目的。

2.1继电器结构原理图2.2、继电器工作原理:继电器使能端不加电前,COM和NC是导通的。

继电器使能端加电后,COM 和NC断开,COM和NO导通。

当继电器输入量的变化达到一定程序时,能使其输入的控制量发送预计的状态变化,具有对控制电路实现“通”、“断”控制作用。

3、8255A芯片8255A是一种通用的可编程并行输入/输出接口芯片。

它的功能可通过软件程序来设置,通过它可直接将CPU数据总线与外部设备连接起来,使用灵活方便。

3.1 8255A由以下几个部分组成:1 .数据端口A、B、C它有三个输入输出端口: Port A、Port B和Port C。

通常端口A或B作为输入输出的数据端口,而端口C作为控制或状态信息的端口.每一个端口都是8位,都可以选择作为输入或输出,但功能上有着不同的特点:(1) 端口A:一个8位数据输出锁存和缓冲器;一个8位数据输入锁存器。

(2) 端口B:一个8位数据输入/输出、锁存/缓冲器;一个8位数据输入缓冲器。

(3) 端口C:一个8位数据输出锁存/缓冲器;一个8位数据输入缓冲器。

2. A组和B组控制电路这是两组根据CPU的命令字控制8255A工作方式的电路。

它们有控制寄存器,接受CPU输出的命令字,然后分别决定两组的工作方式,也可根据CPU的命令字对端口C的每一位实现按位“复位”或“置位”。

A组控制电路控制端口A和端口C的上半部(PC7~PC4)。

B组控制电路控制端口B和端口C的下半部(PC3~PC0)。

3. 数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A芯片与系统数据总线的接口。

输入输出的数据,输出的指令以及CPU发出的控制字和外设的状态信息,也都是通过这个缓冲器传送的。

4. 读/写和控制逻辑它与CPU的地址总线中的A1、A0以及有关的控制信号(RD#,WR#,RESET,IO/M#)相连,由它控制把CPU的控制命令或输出数据送至相应的端口,也由它控制把外设的状态信息或输入数据通过相应的端口,送至CPU。

5. 一些控制命令(1) CS—选片信号,低电平有效,由它启动CPU与8255A芯片之间的通信。

(2) RD—读信号,低电平有效。

它控制8255A送出数据或状态信息至CPU。

(3)WR—写信号,低电平有效。

它控制把CPU输出的数据或命令信号写到8255A。

(4) RESET——复位信号,高电平有效。

它清除控制寄存器,并且置所有端口为输入方式。

6. 端口寻址8255A中有三个输入输出端口,另外,内部还有一个控制字寄存器,共有四个端口,要有两个输入端来加以选择,这两个输入端通常接到地址总线的最低两位A1和A0。

3.2 8255A结构框图如下所示3.3 8255A工作方式1、方式0——基本输入输出方式;在这种工作方式下,三个端口的每一个都可由程序选定作为输入或输出,但这种方式没有规定固定的用于应答式的联络信号线。

任一个端口都可由CPU用简单的输入或输出指令来进行读或写。

方式0可作为查询式输入或输出的接口电路,此时端口A和B可分别作为一个数据端口,而取端口C的某些位作为这两个数据端口的控制和状态信息,其基本功能为:(1) 两个8位端口(A,B)和两个4位端口(端口C);(2) 任一个端口可以作为输入或输出;(3) 输出是锁存的;(4) 输入是不锁存的;(5) 在方式0时,各个端口的输入、输出可以有16种不同的组合。

2、方式1——选通输入输出方式;在这种工作在方式下,端口A或端口B仍作为数据的输入/输出口,但同时规定端口C的某些位作为控制或状态信息。

具有以下主要功能:(1) 用作一个或两个选通端口;(2) 每一个端口包含: 8位的数据端口,三条控制线(是固定指定的,不能用程序改变),提供中断逻辑;(3) 任何一个端口都可作为输入或输出;(4) 若只有一个端口工作在方式1,余下的13位,可以工作在方式0(由控制字决定);(5) 若两个端口都工作在方式1,端口C还留下两位,这两位可以由程序指定作为输入或输出,也具有置位/复位功能。

其各个控制信号的意义如下:STB——选通输入,低电平有效。

这是由外设供给的输入信号,当其有效时,把输入装置来的数据送入输入锁存器。

IBF——输入缓冲器满,高电平有效。

表示数据已输入至输入锁存器,它由STB信号置位(高电平),而RD信号的上升沿使其复位。

INTR——中断请求信号,高电平有效。

作为向CPU的中断请求信号,以要求CPU服务。

INTEA——端口A中断允许信号,可由用户通过对PC4的按位置位/复位来控制(PC4=1,允许中断),而INTEB由PC2的置位/复位控制。

3、方式2——双向传送方式。

在这种工作在方式下,外设可以在单一的8位总线上,既能发送数据也能接收数据(双向总线I/O)。

工作时可用程序查询方式,也可工作在中断方式。

具有以下主要功能:(1) 方式2只用于端口A;(2) 一个8位的双向总线端口(A)和一个5位控制端口(端口C);(3) 输入和输出是锁存的;(4) 5位控制端口是用作端口A的控制和状态信息,如图所示。

INTR——中断请求信号,高电平有效。

在输入和输出方式时,用来作为向CPU发出的中断请求信号。

OBF——输出缓冲器满,低电平有效。

这是对外设的一种命令信号,表示CPU 已把数据输出至端口A。

ACK——响应信号,低电平有效。

ACK#的有效沿启动端口A的三态输出缓冲器,送出数据;否则,输出缓冲器处在高阻状态。

ACK#的上升沿是数据已输出的回答信号。

INTE1——与输出缓冲器相关的中断屏蔽触发器,由PC6的置位/复位控制。

STB——选通输入,低电平有效。

这是外设供给8255A的选通信号,它把输入数据选通至输入锁存器。

IBF——输入缓冲器满,高电平有效,指示数据已进入输入锁存器。

在CPU未把数据读走前,IBF始终为高电平,阻止输入设备送来新的数据。

INTE2——与输入缓冲器相关的中断屏蔽触发器,由PC4的置位/复位控制。

其中端口B可以工作在方式0或方式1;可以作为输入,也可以作为输出。

此时端口C的各位的功能如图所示。

可编程并行接口8255A的工作方式,可由CPU利用I/O指令输出一个控制字到8255A的控制字寄存器来选择。

如图所示。

可以分别选择端口A和端口B的工作方式,端口C分成两部分,上半部随端口A,下半部随端口B。

端口A有方式0、1和2三种工作方式,而端口B只能工作在方式0和1。

当CPU要从外设输入信号或者输出信息给外设,可以采用程序查询方式、中断方式和DMA方式。

但是,不论采用哪一种方式,CPU总是通过接口电路才能与外设连接。

所以,接口电路一边与CPU连接,另一边与外设连接。

三.实验内容1、按原理图连接好实验线路图(1)在EXIC1区插座上插上07芯片。

(2)8255A的PA0连EXIC1区07芯片的第一脚。

(3)将JDQ区的JIN插孔与07芯片的第二脚相连。

(4)将继电器的常开触点JK接发光二极管L1,常闭触点JB接发光二极管L2,继电器中心抽头JZ接地GND插孔2、运行实验程序(1)联机时,实验程序文件名为\DVCC\H8EXE\H811S.EXE。

(2)单机时,实验程序起始地址为F000:B670。

在系统显示“DVCC-86H”状态下,按任意键;在系统显示命令提示符“-”状态下,按GO键;在系统显示“1000 XX”状态下,输入F000 :B670 ,按EXEC键;3、继电器应循环吸合,L1和L2交替亮灭。

四.程序设计1、程序流程图2、程序代码(1)初始化程序代码如下:MOV DX,8255CTLMOV AL,1000X01XBOUT DX,ALMOV DX,8255AMOV AL,0FFH ;A口输出1,则无电流OUT DX,AL(2)定义代码段如下:CODE SEGMENT ASSUME CS:CODEIOCONPT EQU 0FF2BH 送控制器端口IOAPT EQU 0FF28H a端口的端口号为0ff28h IOBPT EQU 0FF29H b端口的端口号为0ff29h IOCPT EQU 0FF2AH c端口的端口号为0ff2ah ORG 10e0H 规定程序的起始地址为10e0h START: MOV DX,IOCONPT 控制器寄存器端口地址送DX MOV AL,80H 方式控制字80h给ALOUT DX,AL 方式控制字传送给控制寄存器Check: MOV DX,IOCPT C端口的端口地址给DXMOV AL,01H 将按位操作控制字01H给ALOUT DX,AL 将01H送到C端口,含义为让PA0置1,即小灯亮CALL DELAY 调用延时程序MOV AL, 00h 把00H给ALOUT DX,AL 将00H送到C端口,含义为PA0置零,小灯灭CALL DELAY 调用延时程序JMP CHECK 无条件循环到CHECK,再使小灯反复亮灭DELAY PROC 定义一个近过程PUSH BX 保护BX原来的内容PUSH CX 保护CX原来的内容MOV BL,2 外循环次数,根据情况可改NEXT: MOV CX,10000 内循环次数,实现延时时间,根据情况可改W10MS: LOOP W10MS CX 不为0,则循环DEC BL BL减一JNZ NEXT BL 不为零则转至NEXT,循环POP CX 恢复 CX内容POP BX 恢复BX内容RET 过程返回DELAY ENDP 过程结束CODE ENDS 程序结束END(3)检测控制程序如下:MOV DX,8255BIN AL,DXNOT AL ;开关闭合,B口线为1,A口相应传送0MOV DX,8255AOUT DX,AL(4)主程序代码:ORG 00HJMP STARTORG 23HJMP UARTORG 30HSTART: MOV SP,#70HMOV SCON,#50HMOV TMOD,#00100001B ;TIM1在模式2 TIM0在模式1MOV TH1,#0F4H ;设置定时时间SETB TR1 ;启动定时器1SETB ES ;允许串口中断SETB EA ;允许总中断MOV P0,#0 ;P0、P2输出低电平MOV P2,#0JMP $ ;等待状态串行口中断UART: PUSH ACCPUSH PSWCLR ES ;关闭串行口中断MOV TH0,#HIGH(65536-65536)MOV TL0,#LOW(65536-65536)SETB TR0 ;开定时器0MOV 30H,#00 ;同步位MOV 31H,#00 ;数据1MOV 32H,#00 ;数据2MOV 33H,#00 ;结束位MOV R0,#30HREC:JBC tf0,FS ;接收时间是否超时?是则执行FS JNB RI,REC ;接收数据CLR RIMOV A,SBUFMOV @R0,AINC R0JMP RECFS: CLR TR0 ;关定时器0CALL FUN ;解码并控制继电器SETB ES ;开串行口中断POP PSWPOP ACCRETI ;中断子程序返回FUN: MOV A,#0AH ;判断第1字节即同步位CJNE A,30H,ERRMOV A,#0DH ;判断第4字节即结束位CJNE A,33H,ERRMOV A,31HMOV P0,AMOV A,32HMOV P2,ARET数据错误处理ERR:MOV 30H,#00 ;同步位MOV 31H,#00 ;数据1MOV 32H,#00 ;数据2MOV 33H,#00 ;结束位RETEND五.实验小结本课题设计中利用8255A PA0输出高低电平,控制继电器的开合,以实现对外部装置的控制。

相关主题