1、8255控制打印机设计 一、 设计目的 1. 熟悉MP-T16标准微型并行打印机接口控制逻辑和接口信号性质。 2. 了解常用打印机控制代码的格式和使用方法。 3. 掌握打印机驱动程序的设计和调试方法。 二、设计要求 1. 分析打印机主要控制信号(STB、ACK、BUSY)在单片机与打印机进行数据传送时的意义。 2. 编写控制程序,完成对打印机接口的初始化编程(注意CN8接插件与单片机P1口的连接。 3. 掌握25针接口各脚功能及其与数据线的连接。 4. 编写能够打印字符的打印程序。 三、设计步骤 线路连接及注意事项 1) 在不加电的情况下,按照电路原理图找到有关的接
2、线插座,将8031的P1口中的P1.5、P1.7分别与CN8插座的STB、BUSY相连接. 2) 用普通的并行打印机通信电缆将CN4与打印机的通信接口连接起来。 3) 连接仿真器与实验仪。 4) 将微型打印机接+5V电源 四、设计基本原理说明及程序流程 本次设计采用8255A工作方式0,其A口充当打印机数据线,C口的PC0接打印机选通信号线 ,C口的PC4接打印机“忙”线BUSY,B口不用,8255A的初始化可以通过74LS138译码器来实现。为了用键盘来设定打印内容,可以先定义一个数据段,然后调用DOS的1号功能完成数据存储。在满足一定的条件下,CPU现将打印内容依次送到8255A
3、然后再送到打印机打印,数据全部传送并打印完毕后退出程序。 分别以三种不同的方法编程并打印出所要求的字符. 1、 直接将所要打印的字符送打印机(打印同组同学的姓名). 将所需要打印字符的ASCⅡ码值送入累加器 调用打印子程序 打印子程序:: 假定打印字符事先已送入累加器A. 打印机口地址送入DPTR BUSY=1? Y N CLR STB
4、 SETB STB 累加器内容送入打印机口地址 图一 2、 将欲打印的字符送入内存某处,实现逐个打印;(打印南京理工大学的英文缩写NJUST-05011701、11702)。 将欲打印的字符预先存入内存中 在寄存器R2中放置欲打印字符的个数 将预存的首地址放入R1中 @R1à累加器 调用打印子程序 R1+1 R2 = 0 ?
5、 N Y END 图二 3、 采用查表法实现打印:(自定义打印字符串) 参考程序: PRT_DATA EQU 5FFFH
6、 ;打印口的数据口地址 PRT_STRO EQU P1.5 ;打印口STBRO线 PRT_BUSY EQU P1.7 ;打印口BUSY线 ORG 0000H LJMP START ORG 0040H START: MOV SP,#60H SETB PRT_STRO ;初始化打印口 SETB PRT_BUSY MOV DPTR,#PRT_TA
7、B ;置表头地址 MOV R0, #00H ;置计数器 PR_STR: MOV A, R0 MOVC A,@A+DPTR ;读表格数据 CJNE A,#0FFH,PRINT ;判断字符串结束标志 SJMP $ PRINT: LCALL PRT_CHAR ;打印字符 INC R0 ;计数器
8、加1 AJMP PR_STR PRT_CHAR: ;打印字符子程序 PUSH PSW ;保存现场 PUSH DPH PUSH DPL SETB PRT_BUSY NOP JB PRT_BUSY,$ ;判断BUSY/状态 MOV DPTR,#PRT_DATA ;置数据口地址 MOVX
9、@DPTR,A ;发送数据 SETB PRT_STRO CLR PRT_STRO NOP NOP SETB PRT_STRO ;发STRO负脉冲 POP DPL ;恢复现场 POP DPH POP PSW RET PRT_ TAB DB 0AH,27,1BH,38H,1,'智','能','仪','器','设','计',0AH,
10、0AH, 0DH,0FFH ;PRT_TAB DB 0DH,31H,32H,33H,34H,35H,36H,37H,38H,39H,0AH,0FFH ;1 2 3 4 5 6 7 8 9 ENTER 标志 END 五、设计实验图及相关数码表
11、 打印机 实验仪 P1.7 BUSY P1.6 ACK P1.5 STB D0—D7 端口地址5FFFH 图四
12、 MP-T16汉字微型打印机主要控制命令: 1. 纸进给命令LF 0AH 打印机向前走纸一个字符行。 2. 字符设置命令 1BH 36H 在该命令输入之后的所有字符均使用字符集1中的字符打印。 3. 数据控制命令CR 0DH 当发送一个CR命令到打印机时,在打印缓冲区中的所有数据都将被打印,而且纸向前走一行。 4. 汉字打印命令 1BH 38H n 在该命令输入之后将
13、从点阵ASCⅡ字符打印方式切换到汉字打印方式。 当n=0 选择16×16点阵汉字打印 当n=1 选择8 ×16点阵汉字打印 当n=2 选择16×8点阵汉字打印 心得体会 本设计用单片机控制接口芯片8255A的方法,利用89S51作为CPU进行控制,设计一个简易微型打印机系统,并采用查询方式传输数据。通过此次的设计对8255控制方式有了较为深入的认识,并对标准微型并行打印机接口控制逻辑和接口信号性质和常用打印机控制代码的格式和使用方法有了初步的了解并初步掌握打印机驱动程序的
14、设计和调试方法,并对微机方面的学习奠定了基础。 感谢老师在此课程设计中的指导和提示,充分信任我的能力,给予我空间让我充分发挥,我获益良多,并是我重温了相关知识,提高了自己理论知识和动手能力。 参 考 文 献 [1] 李朝青. 单片机原理及接口技术. 北京:北京航空航天大学出版社, 2006 [2]华光,陈大钦. 电子技术基础(模拟部分). 北京:高等教育出版社,1999 [3]康华光,邹寿彬. 电子技术基础(数字部分). 北京:高等教育出版社,2000 [4]何立民. 单片机应用技术选编. 北京:北京航空航天大学出版社,2000 [5]何立民.单片机应用系统设计系统配置与接口技术. 北京:北京航空航天大学出版社,1990 [6]李广弟. 单片机基础. 北京:北京航空航天大学出版社,1994 [7]张伟,张杰. 单片机原理及应用. 北京:机械工业出版社,2005 [8]汉才. 单片机原理与接口技术. 北京:清华大学出版社,1996






