8255a中断方式控制打印机.docx
《8255a中断方式控制打印机.docx》由会员分享,可在线阅读,更多相关《8255a中断方式控制打印机.docx(11页珍藏版)》请在冰豆网上搜索。
8255a中断方式控制打印机
郑州航空工业管理学院
微机原理课程设计
2013届电气工程及其自动化s专业972班级
题目用8255控制打印机的设计(采用中
断方式传输数据)
姓名戚长森学号110697216
指导教师王义琴职称讲师
2011年10月22日
摘要
打印机是微机系统中主要的硬拷贝输出设备,可以打印文字,数字和图形等,常用的打印机有针式打印机,喷墨打印机和激光打印机,常用的打印机接口类型有标准并行接口,串行USB接口等,除此外还发展了增强型并行接口,扩展型并行接口等。
本次课设采用的是并行接口,能够满足数据传输速度快,传输距离短等条件限制的要求。
本次课设采用8255A工作方式1,其A口充当打印机数据线,C口的PC0接打印机选通信号线STB,C口的PC6接打印机的ACK,处理器以中断方式控制输出数据到打印机。
为了用键盘来设定打印内容,可以先定义一个数据段,然后调用DOS的1号功能完成数据存储。
在满足一定的条件下,CPU现将打印内容依次送到8255A,然后再送到打印机打印,数据全部传送并打印完毕后退出程。
关键词:
8255A、接口、中断、并行
1用8255A控制打印机设计的基本原理
本次课设采用8255A工作方式1,其A口充当打印机数据线,C口的PC0接打印机选通信号线STB,C口的PC6接打印机的ACK,处理器以中断方式控制输出数据到打印机。
为了用键盘来设定打印内容,可以先定义一个数据段,然后调用DOS的1号功能完成数据存储.在满足一定的条件下,CPU现将打印内容依次送到8255A,然后再送到打印机打印,数据全部传送并打印完毕后退出程。
2设计方案
一般来说,外设接口可以分为两类:
一是串行接口,一组数据按位顺序在一根线上一次传。
二是并行接口,一组数据在多根线上同时传输。
并行接口连接CPU与并行外设,实现两者间的并行通信,在信息传送过程中起到输出锁存或输入缓冲的作用。
并行接口的典型硬件结构包括:
一个或一个以上具有锁存或缓冲的数据端口;与CPU进行数据交换所必须的控制和状态信号;与外设进行数据交换所必须的控制和状态信号。
2.18255A芯片
8255A是常用的可编程接口芯片,可编程接口芯片即指电路的工作状态可由计算机指令编程控制的芯片。
目前所用的接口芯片大部分是多通道,多功能的。
多通道即指一个接口芯片一面与CPU连接,另一面可接几个外设。
多功能即指一个接口芯片能实现多种接口功能。
接口芯片中的各硬件单元不是固定接死而是可以通过编程来控制。
编程控制是指通过计算机指令选择通用接口中的不同通道和不同功能。
8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,在中小系统中有着广泛的应用。
可编程并行接口芯片8255A的外形如下:
8255A的引脚排列如下:
内部结构图如下:
8255A内部结构图
2.28255A工作方式
方式0——基本输入/输出方式
方式1——选通输入/输出方式
方式2——双向传输方式
8255A的控制字为:
1010XXX0
PC0置位:
00000001即01H
PC0复位:
00000000即00H
PC6置位:
00001101即0DH
允许8255A的A口输出中断,8255A的A端口作为数据通道,可工作在上述3中方式,端口B只可工作于两种方式,端口C只可工作于方式0。
端口C常常分为高四位和低四位两部分,分别用来传送数据或控制信息。
用户可以通过编辑来分别定义每一个端口的工作方式,使用的控制字有工作方式控制字和置位控制字。
2.3中断驱动方式接口
用PA口作为输出数据锁存器,令其工作方式1。
PA口的2根联络线
(PC7)和
(PC6)分别与打印机的
和
相连,通过它们的应答握手来实现接口与打印机之间数据传输的同步。
PC3(INTRA)向微型计算机发出中断要求,以此引发微型计算机输出打印字符。
2.4打印机I/O功能调用
BIOS的打印机功能调用是以中断INT17H的形式提供给用户的。
INT17H中断调用的功能有:
0号——打印AL的内容,并读出状态字节;1号——初始化打印机;2号——读状态字节。
2.5并行接口的作用及基本功能
(1)具有一个或多个数据I/O寄存器和缓冲器(也称为端口寄存器);
(2)具有与CPU和外设进行联络控制的功能;
(3)能够以中断的方式与CPU进行联络;
(4)可以有多种工作方式,且可编程进行选择。
3硬件设计
8255A作中断方式工作的字符打印机的接口,如下图所示:
原理图
打印机接口需要一个数据选通信号STB,故由CPU控制PC0来产生选通脉冲STB。
OBF在此没有用,将它悬空就行了,ACK端连接打印机端。
PC3连到中断控制器8255A的中断请求信号输入端IR3。
对应于中断类型号0BH,此中断对应的中断,向量放在00段2CH、2DH、2EH、2FH这4个单元中,8255A在系统程序中已完成初始化。
设8255A的端口地址为:
A端口:
00H
B端口:
01H
C端口:
02H
控制口:
03H
方式控制字为03H,因为B口未用,故取D3~D1位为0,其他各位的值使A组工作于方式1,A端口为输出,作为输出。
在这个设计中,由中断处理子程序完成字符输出;而初始化程序完成对8255A设置方式控制字、设置中断向量、开放中断。
主程序执行其它操作,并等待中断。
中断服务主程序入口标号为INTPR。
所谓设置中断向量,就是把中断服务程序的入口地址(4字节的逻辑地址)写到中断向量表中由中断类型号指定的单元中。
在中断处理子程序中,设字符已放在主机的字符输出缓冲区,往A端口输出字符后,CPU用对C端口的置1/置0命令使输出负脉冲,从而将数据送入打印机。
当打印机接收并打印字符后,发出回答信号ACK,由此清除了8255A的“输出缓冲器满”信号,并使8255A产生新的中断请求。
4软件设计
1、CPU启动打印机设备工作。
2、当打印机准备好一个字符输出时,把外设置为就绪状态。
3、I/O口在设备就绪时向CPU发出中断请求,需求服务。
4、CPU接到中断请求信号,暂停当前工作,响应中断,输入中断服务程序,服务程序实现发送下一个字符到I/O口并选通打印机。
5、CPU从中断服务。
6、重复2-5,直到所有的字符打印完关闭打印机
7、程序及流程图如下:
主程序:
MAIN:
MOVAL,0A0H
OUT03H,AL;设置8255A的控制字
MOVAL,01H;使选通无效
OUT03H,AL
XORAX,AX
MOVDS,AX
MOVAX,OFFSETROUTINTR
MOVWORDPTR[002CH],AX
MOVAX,SEGROUTINTR
MOVWORDPTR[002EH],AX;送中断向量
MOVAL,0DH
OUT03H,AL;使8255AA口输出允许中断
MOVDI,OFFSETBUFF;设置地址指针
MOVCX,99;设置计数器初值
MOVAL,[DI]
OUT00H,AL;输出一个字符
INCDI
MOVAL,00H
OUT03H,AL;产生选通
INCAL
OUT03H,AL;撤消选通
STI;开中断
NEXT:
HLT;等待中断
LOOPNEXT;修改计数器的值,指向下一个要输出的字符
HLT
中断服务子程序如下:
ROUTINTR:
MOVAL,[DI]
OUT00H,AL;从A口输出一个字符
MOVAL,00H
OUT03H,AL;产生选通
INCAL
MOV03H,AL;撤消选通
INCDI;修改地址指针
IRET;中断返回
结论
8255A是8086系列微处理机的配套并行接口芯片,他可以为CPU与外设之间提供并行I/O的通道。
打印机是微机系统中主要的硬拷贝输出设备,当微机通过I/O接口与这些外部设备相连接时,往往需要一些专业功能的接口芯片,以增强系统的综合处理能力。
而接口一般分为并行接口和串行接口两种,在实际应用中,并行通信常采用8255A作为接口芯片。
本次课程设计中采用的是并行接口,能够实现微处理器与打印机之间数据传输。
CPU启动打印机设备工作。
当打印机准备好一个字符输出时,把外设置为就绪状态。
I/O口在设备就绪时向CPU发出中断请求,需求服务。
CPU接到中当打印机准备好一个字符输出时,把外设置为就绪状态。
I/O口在设备就绪时向CPU发出中断请求,需求服务。
CPU接到中断请求信号,暂停当前工作,响应中断,输入中断服务程序,服务程序实现发送下一个字符到I/O口并选通打印机。
CPU从中断服务断请求信号,暂停当前工作,响应中断,输入中断服务程序,服务程序实现发送下一个字符到I/O口并选通打印机。
CPU从中断服务程序返回。
当所有的字符打印完关闭打印。
设计总结:
通过学习先期课程微机原理与接口技术,我对这次的课程设计有了一定的了解,学习到了程序设计的一般方法和步骤。
模拟电子技术和数字电子技术的学习使我对硬件有了更深的认识。
综合到微机原理与接口技术,我发现自己还有很多知识还很不全面。
在本次设计并行打印机控制接口过程中,我重温了相关知识,有了进一步的提高。
特别地对于8255A这一微机系统中应用最广泛的并行I/O接口芯片,我更了解了其内部结构、各管脚功能、工作方式、初始化以及如何进行并行接口的设计。
在设计的过程中,我曾遇到一些难题,查阅资料特别是在同学的帮助下基本解决,同时更感觉到自己所学的知识非常有限,不能很好的应用到实际问题中来,以后要加强相关知识的学习,提高自己的理论水平和动手能力。
在此,还要衷心的感谢我们的老师,老师循循善诱的教导和不拘一格的思路给予我很多启迪,这次课程设计的每个实验细节和每个数据,都离不开老师您的细心指导。
而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。
同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊
指导教师评语:
课程设计成绩:
指导教师签名:
年月日