网站首页  词典首页

请输入您要查询的论文:

 

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

    白天明

    摘要:本文给出了一种以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.

    【通联编辑:唐一东】

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/17 1:55:26