标题 | 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下载服务。