APP下载

STC系列单片机与微型打印机接口电路设计

2019-05-23白天明

电脑知识与技术 2019年5期
关键词:单片机

白天明

摘要:本文给出了一种以STC系列单片机为核心的微型打印机电路的设计方法,着重介绍了该系统的硬件设计及其软件驱动程序。该打印机电路可以实现数字、符号、汉字和图形的打印。

关键词:STC;单片机;微型打印机

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2019)05-0211-02

单片机具有体积小、功耗低、价格廉、抗干扰能力强的特点。微型打印机是智能仪表、测控仪器重要的输出设备。本文系统地介绍了STC单片机与热敏微型打印机的接口电路及软件实现方法。

1 系统硬件组成

STC系列高性能单片机是由宏晶公司科技设计、生产的一款新型单片微型计算机。与传统的51系列单片微型计算机相比,具有功能强、功耗低、价格低、运算速度快的优点。指令代码与传统的8051系列完全兼容,但由于系统采用单时钟方式,运算速度非常快。系统内部了集成高可靠复位电路,可以内置复位与低电压复位。特别适用于高速通信、电机控制、智能控制、强干扰场合。

单片机的片内ROM为FLASH存储器,最大可达63.5K字节,擦写次数超过10万次。片内RAM数据存储器最大为8192字节。芯片内还集成了EEPROM,最大48KB。片内有40个通用输入输出口,可以通过对PxM1、PxM0设置端口状态为准双向口/弱上拉、推挽/强上拉、仅为输入/高阻和开漏四种工作模式。可以进行在线编程,无须专用编程器、仿真器,即可实现在线调试。

RD--D系列打印机采用热敏方式进行打印,不仅可以打印国标一、二级汉字库中全部汉字,还可以打印英文字符、图形符号等。与单片机连接可以采用标准并行接口、RS23串行接口,TTL电平串口,485接口,USB等多种接口形式。在消费电子、医疗设备、消防报警、测量设备、电力仪器、电子衡器、票据打印等行业都有广泛的应用。

微型打印机的串口引脚信号如下:

以串口为例介绍一下STC单片机与打印机的接口电路。

RD-D 型热敏打印机可直接由单片机控制,串行接口与标准RS232C接口完全兼容。与单片机接口的连接方法如下:

1、将单片机串行口与打印机的串口TXD、RXD引脚与相连接,由单片机发送打印数据。系统默认的单片机串行口为P3.0(RXD)、P3.1(TXD),由于程序下载专用通信口占用了P3.0(RXD)、P3.1(TXD),所以可以将串行口设置在P1.6、P1.7。

其中,S1_S1=1、S1_S0=0可以实现将串口由P3.1、P3.0切换到P1.6、P1.7,指令如下:

ORL AUXR1,#080H ;將AURX1的第七位置一

2、打印机的BUSY端子输出“设备忙”信号。可以接到单片机的P4.2引脚。表示打印机正“忙”时,该信号为“1”状态,不能接收数据。打印机“空闲”时,该信号为“0”状态,表示可以接收数据。

由于传统的51系列单片机没有P4口,而STC单片机有P4口。如果在程序进行“BUSY BIT P4.2”定义,在编译时仿真软件会有“符号未定义”的错误提示。

对STC系列单片机P4口进行访问,与访问常规的输入输出口相同,但是需要进行位地址的定义。位地址如下:

2 打印指令

RD-D 型微型打印机提供丰富的打印指令,打印指令与很多的打印机指令完全兼容。而且增加了中文字符打印、汉字字符旋转、行间距调整、二维条型码打印等多种功能。

1)初始化指令:

十六进制: 1BH 40H

执行该指令后打印机恢复为默认的状态,将当前缓冲区清空。一般在发送打印指令之前执行该指令,以免数据残留在打印缓冲区中,打印出乱码。

2)汉字打印指令:

十六进制: 1BH 38H xH

打印机在接收该指令之后将根据x值选择不同点阵的汉字。在汉字打印方式时,打印机接收汉字代码格式是2个字节,对应标准机内码中的一个汉字的。即打印机每调出一个汉字,需要接收2个字节的机内码。打印机接收机内码的顺序为先高位字节,再低位字节。

当热敏打印机的汉字库为24×24点阵时,x选择为0,只能打印24×24点阵中文字符,以及12×24 点阵字符。

3)设置x点行间距指令:

十六进制:1BH 31H xh

为换行指令设置x点行间距,x的取值范围一般应在0~255 之间。默认值为3。如果需要连续打印图形,需要将x设置为0。

4)打印空格或空行指令:

十六进制:1BH 66H xH yH

如果x=0,y表示空格的数量,执行1BH 66H 00H yH指令将打印y个空格。如果x=1,y表示空行的数量,执行1BH 66H 01H yH指令将打印n行空行。

一般打印空格的宽度按字间距+12计算,y的值应不超过该型号打印机的行宽。每个空行的高度按行间距+16计算,y的取值范围应不超过255。

5)换行指令:

十六进制:0AH

打印机将当前缓冲器里的数据进行打印,并向前走纸一行。如果缓冲器里没有数据,则不进行打印,只向前走纸一行,一行为行间距+16。

3 单片机串行打印程序设计

将“辽宁机电职业技术学院”打印出来,其参考程序如下:

BUSY EQU 0C2H ;打印机端口设置

AUXR1 EQU 0A2H

ORG 0000H

JMP MAIN

ORG 0030H

MAIN: CALL PRN

SJMP $

PRN: CALL PRN_INT ;初始化打印机

MOV DPTR,#PRN_D1

CALL PRN_S

MOV DPTR,#PR1_C2

CALL PRN_S

RET

PRN_D1: DB '辽宁机电职业技术学院'

DB 0FFH

PRN_INT:

MOV TH1,#250

MOV TMOD,#00100000B

MOV SCON,#11010000B

SETB TR1

ORL AUXR1,#80H

MOV DPTR,#PRN_C1

CALL PRN_S

RET

PRN_C1: DB 1BH,40H ;初始化打印机

DB 1BH,38H,00H ;選择不同点阵汉字

DB 1BH,31H,06H ;选择不同行间距

DB 0FFH ;参数设置完毕

PR1_C2: DB 1BH,66H,01H,06H ;打印6行空行

DB 0FFH ;参数设置完毕

PRN_S: CLR A

MOVC A,@A+DPTR ;取数据

CJNE A,#0FFH,PR_S1 ;”0FFH”发送结束标志

SJMP PR_SE

PR_S1: INC DPTR ;地址加一

CALL OUT_BYTE ;向打印机输出

SJMP PRN_S

PR_SE: RET

OUT_BYTE:

SETB BUSY

JB BUSY,OUT_BYTE ;判断打印机是否忙?

CLR TI

NOP

NOP

NOP

MOV SBUF,A

JNB TI,$

CLR TI

RET

END

4 结束语

本文介绍的是STC单片机与RD系列微型打印机接口电路以及程序设计方法。该电路已经得到实际应用,效果很好,具有硬件电路简单、低成本、编程方便、通信可靠性高的特点。

但是在实际应用中要注意,热敏打印机的工作电流大,可达到3A,最好单独对打印机提供电源,以保证其可靠、稳定工作。

参考文献:

[1] 康华光,陈大钦.电子技术基础(模拟部分[M].北京:高等教育出版社,2002.

[2] 何为民.低功耗单片微机系统设计[M].北京:北京航空航天大学出版社,1994.

[3] 黄曙,梁慧冰.微型打印机打印程序设计[M].北京:控制工程出版社,2004.

[4] 张培仁.基于C语言MCS 51单片机原理与应用[M].北京:清华大学出版社,2003.

【通联编辑:唐一东】

猜你喜欢

单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
MSP430单片机在仿真中要注意的几点问题
基于单片机的平衡控制系统设计
基于单片机的三维LED点阵设计
Microchip推出两个全新PIC单片机系列
基于Proteus的单片机控制系统的仿真设计