微机原理与接口技术实验报告Word文件下载.docx
- 文档编号:16514190
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:14
- 大小:357.49KB
微机原理与接口技术实验报告Word文件下载.docx
《微机原理与接口技术实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验报告Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
硬件线路原理图接线如下:
2、继电器
在现代工业中,人员和电子电路安全保障一直是首要考虑的问题,尤其在一些高危恶劣环境下,如高温高压等,如何在保障操作人员和电子电路安全的前提下对电路进行良好地控制便成为了工业进步不可回避的问题。
一方面要使电子电路的控制信号能够控制电气电路的执行元件,另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全,符合这种需求的元件便是继电器。
控制继电器是一种自动电子控制器件,它适用于远距离接通和分断交、直流小容量控制电路,它具有控制系统和被控制系统,通常应用于自动控制电路中,并在电力驱动系统中供控制、保护及信号转换用。
它实际上是用较小的电流去控制较大电流的一种“自动开关”,故在电路中起着自动调节、安全保护、转换电路等作用。
电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。
只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点吸合。
当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点吸合。
这样吸合、释放,从而达到了在电路中的导通、切断的目的。
2.1继电器结构原理图
2.2、继电器工作原理:
继电器使能端不加电前,COM和NC是导通的。
继电器使能端加电后,COM和NC断开,COM和NO导通。
当继电器输入量的变化达到一定程序时,能使其输入的控制量发送预计的状态变化,具有对控制电路实现“通”、“断”控制作用。
3、8255A芯片
8255A是一种通用的可编程并行输入/输出接口芯片。
它的功能可通过软件程序来设置,通过它可直接将CPU数据总线与外部设备连接起来,使用灵活方便。
3.18255A由以下几个部分组成:
1.数据端口A、B、C
它有三个输入输出端口:
PortA、PortB和PortC。
通常端口A或B作为输入输出的数据端口,而端口C作为控制或状态信息的端口.每一个端口都是8位,都可以选择作为输入或输出,但功能上有着不同的特点:
(1)端口A:
一个8位数据输出锁存和缓冲器;
一个8位数据输入锁存器。
(2)端口B:
一个8位数据输入/输出、锁存/缓冲器;
一个8位数据输入缓冲器。
(3)端口C:
一个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.28255A结构框图如下所示
3.38255A工作方式
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的控制和状态信息,如图所示。
在输入和输出方式时,用来作为向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键;
在系统显示“1000XX”状态下,输入F000:
B670,按EXEC键;
3、继电器应循环吸合,L1和L2交替亮灭。
四.程序设计
1、程序流程图
2、程序代码
(1)初始化程序代码如下:
MOVDX,8255CTL
MOVAL,1000X01XB
OUTDX,AL
MOVDX,8255A
MOVAL,0FFH;
A口输出1,则无电流
(2)定义代码段如下:
CODESEGMENT
ASSUMECS:
CODE
IOCONPTEQU0FF2BH送控制器端口
IOAPTEQU0FF28Ha端口的端口号为0ff28h
IOBPTEQU0FF29Hb端口的端口号为0ff29h
IOCPTEQU0FF2AHc端口的端口号为0ff2ah
ORG10e0H规定程序的起始地址为10e0h
START:
MOVDX,IOCONPT控制器寄存器端口地址送DX
MOVAL,80H方式控制字80h给AL
OUTDX,AL方式控制字传送给控制寄存器
Check:
MOVDX,IOCPTC端口的端口地址给DX
MOVAL,01H将按位操作控制字01H给AL
OUTDX,AL将01H送到C端口,含义为让PA0置1,即小灯亮
CALLDELAY调用延时程序
MOVAL,00h把00H给AL
OUTDX,AL将00H送到C端口,含义为PA0置零,小灯灭
JMPCHECK无条件循环到CHECK,再使小灯反复亮灭
DELAYPROC定义一个近过程
PUSHBX保护BX原来的内容
PUSHCX保护CX原来的内容
MOVBL,2外循环次数,根据情况可改
NEXT:
MOVCX,10000内循环次数,实现延时时间,根据情况可改
W10MS:
LOOPW10MSCX不为0,则循环
DECBLBL减一
JNZNEXTBL不为零则转至NEXT,循环
POPCX恢复CX内容
POPBX恢复BX内容
RET过程返回
DELAYENDP过程结束
CODEENDS程序结束
END
(3)检测控制程序如下:
MOVDX,8255B
INAL,DX
NOTAL;
开关闭合,B口线为1,A口相应传送0
(4)主程序代码:
ORG00H
JMPSTART
ORG23H
JMPUART
ORG30H
MOVSP,#70HMOVSCON,#50H
MOVTMOD,#00100001B;
TIM1在模式2TIM0在模式1
MOVTH1,#0F4H;
设置定时时间
SETBTR1;
启动定时器1
SETBES;
允许串口中断
SETBEA;
允许总中断
MOVP0,#0;
P0、P2输出低电平
MOVP2,#0
JMP$;
等待状态
串行口中断
UART:
PUSHACC
PUSHPSW
CLRES;
关闭串行口中断
MOVTH0,#HIGH(65536-65536)
MOVTL0,#LOW(65536-65536)
SETBTR0;
开定时器0
MOV30H,#00;
同步位
MOV31H,#00;
数据1
MOV32H,#00;
数据2
MOV33H,#00;
结束位
MOVR0,#30H
REC:
JBCtf0,FS;
接收时间是否超时?
是则执行FS
JNBRI,REC;
接收数据
CLRRI
MOVA,SBUF
MOV@R0,A
INCR0
JMPREC
FS:
CLRTR0;
关定时器0
CALLFUN;
解码并控制继电器
开串行口中断
POPPSW
POPACC
RETI;
中断子程序返回
FUN:
MOVA,#0AH;
判断第1字节即同步位
CJNEA,30H,ERR
MOVA,#0DH;
判断第4字节即结束位
CJNEA,33H,ERR
MOVA,31H
MOVP0,A
MOVA,32H
MOVP2,A
RET
数据错误处理
ERR:
END
五.实验小结
本课题设计中利用8255APA0输出高低电平,控制继电器的开合,以实现对外部装置的控制。
8255A芯片的PA0输出高电平,即PA0=1时继电器处于闭合状态,系统运行工作;
反之,PA0=0时继电器处于断开状态,系统停止工作。
8255A芯片的功能较多,控制继电器只是其中一种。
通过这次继电器控制实验课程设计,我学到了很多。
我前期做了很多准备工作,一方面研究课题的可行性,另一方面也在收集、查看相关资料,这些为后面程序的编写和调试打下了基础,在这个过程中我不仅加强了自己的编程能力,还加深了对电路的了解。
虽然大部分是一些已经学习过的知识,但结合起来运用还是有一定的难度。
通过这次硬件上机实验,我对并行接口芯片8255A芯片的功能及使用也有了更深的认识,还掌握了8255A芯片的常用编程方法。
在实验中我发现,其实各种指令的熟练掌握是编程的基础,后面时间我会对指令进行系统的复习,以便查漏补缺更好的巩固知识。
对于该课题设计,需要改进的地方主要有以下方面:
优化设计电路和调试程序,计算地址,编写程序。
最后谢谢乔老师在我的课程设计过程中给予的指导和帮助。
六.参考文献
1、《微机原理与接口技术》楼顺天周佳社科学出版社
2、《微机原理与接口技术实验讲义》徐卫华编楚雄师范学院出版社
3、《继电器与可编程控制器》冈本裕生著李砚译科学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)