8255控制打印机完整版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
一、设计基本原理说明及系统资源分配
1. 工作原理说明
本次设计采用8255A工作方式0,其A口充当打印机数据线,C口的PC0接打印机选通信号线,C口的PC4接打印机“忙”线BUSY,B口不用,8255A的初始化可以通过74LS138译码器来实现。为了用键盘来设定打印内容,可以先定义一个数据段,然后调用DOS的1号功能完成数据存储。在满足一定的条件下,CPU现将打印内容依次送到8255A,然后再送到打印机打印,数据全部传送并打印完毕后退出程序。
2. 资源分配
⑴A端口作为传输字符的通道,工作于方式0,输出方式。
⑵B端口不用。
⑶C口的PC0接打印机选通信号线,PC4接打印机“忙”线BUSY。
⑷设CPU为8086,8255A的端口地址为:
A端口: 00D0H C端口: 00D4H
B端口: 00D2H 控制口:00D6H
.
二、程序流程图
三、设计方案
采用查询方式传输数据实现对打印机控制:(自定义打印字符串)参考程序:
PRT_DATA EQU 5FFFH
PRT_STRO EQU P1.5
PRT_BUSY EQU P1.7
ORG 0000H
LJMP START
ORG 0040H
START: MOV SP,#60H
SETB PRT_STRO
SETB PRT_BUSY
MOV DPTR,#PRT_TAB
MOV R0, #00H
PR_STR: MOV A, R0
MOVC A,@A+DPTR
CJNE A,#0FFH,PRINT
SJMP $
PRINT:
LCALL PRT_CHAR
INC R0
AJMP PR_STR
PRT_CHAR:
PUSH PSW
PUSH DPH
PUSH DPL
SETB PRT_BUSY
NOP
JB PRT_BUSY,$
MOV DPTR,#PRT_DATA
MOVX @DPTR,A
SETB PRT_STRO
CLR PRT_STRO
NOP
NOP
SETB PRT_STRO
POP DPL
POP DPH
POP PSW
RET
PRT_TA DB 0AH,27,1BH,38H,1,0AH,0AH, 0DH,0FFH
PRT_TAB DB 0DH,31H,32H,33H,34H,35H,36H,37H,38H,39H,0AH,0FFH END
四、硬件电路总体设计
硬件电路总体设计见附录A
五、软件程序设计
1. 软件设计思路
应用系统中的应用软件是根据系统功能要求设计的,应该可靠地
实现系统的各种功能。一个优秀的应用系统的软件应具有下列特点:(1)根据软件功能要求,将系统软件分成若干个相对独立的部分。设计出软件的总体结构,使其结构清晰、简捷、流程合理。
(2)要树立结构化程序设计风格,各功能程序实现模块化、子程序化。既便于调试、链接,又便于移植、修正。
(3)建立正确的数学模型。即根据功能要求,描绘出各个输入和输出变量之间的数学关系,它是关系到系统性能好坏的重要因素。
(4)为提高软件设计的总体效率,以简明、直观的方法对任务进行描述,在编写应用软件之前,应绘制出程序流程图。
(5)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断资源等。
(6)注意在程序的有关位置处写上功能注释,提高程序的可读性。
2. 软件设计流程图
打印机程序控制流程图如图3所示
图3 软件设计流程图3. 软件设计源程序
软件设计源程序见附录B
参考文献
[1] 李朝青. 单片机原理及接口技术. 北京:北京航空航天大学出版社,2006
[2] 华光,陈大钦. 电子技术基础(模拟部分). 北京:高等教育出版社,1999
[3] 康华光,邹寿彬. 电子技术基础(数字部分). 北京:高等教育出版社,2000
[4] 何立民. 单片机应用技术选编. 北京:北京航空航天大学出版社,2000
[5] 何立民.单片机应用系统设计系统配置与接口技术. 北京:北京航空航天大学出版社,1990
[6] 李广弟. 单片机基础. 北京:北京航空航天大学出版社,1994
[7] 张伟,张杰. 单片机原理及应用. 北京:机械工业出版社,2005
[8] 汉才. 单片机原理与接口技术. 北京:清华大学出版社,1996
. 附录A:硬件原理图
.
附录B:8255控制微型打印机的软件源程序
CODE_K1 EQU 01H
CODE_K2 EQU 02H
CODE_K3 EQU 03H
CODE_K4 EQU 04H
IRCOM EQU 30H
COM EQU 32H
IRIN EQU P3.2
WLED EQU P1.2
ORG 0000H
JMP BEGIN
ORG 0030H
BEGIN: ACALL BZ
SETB IRIN
ACALL LED_BL
LOOP : MOV R0,#IRCOM;
ACALL IR_IN
ACALL OP
JMP LOOP
DELAY: MOV R6,#50
D1: MOV R7,#100