基于C8051F系列单片机的标签打印机接口设计

发布者:不加糖的302最新更新时间:2011-08-28 来源: 山西电子技术关键字:C8051F 手机看文章 扫描二维码
随时随地手机看文章
    摘要:为满足与日俱增的嵌入式系统的打印需求,设计了一种以片上系统型C8051F系列单片机为主机控制器的标签打印机接口模块。详细阐述了单片机与打印机之间的串行接口设计方法和斑马公司标签打印机专用的EPL2打印描述语言的使用,在掌握EPL2语言的基础上,利用KeilC编程工具进行驱动程序的编写,并给出了相应的驱动程序,实现了C8051F020单片机通过RS 232接口对一种标签打印机的控制。
关键词:C8051F020;标签打印机;串行接口;EPL2

0 引言
    随着信息化技术的高速发展,各行业对于数据打印的需求日益增加。为了能够更加直观的浏览数据,微型标签打印机在智能仪器仪表、电子收款机、计价器等系统中几乎成为标准配置。本课题来源于常州市扬子电子有限公司,主要是针对一款程控耐压绝缘测试仪开发的打印机驱动设备,实现了对检测数据的实时打印功能。
    系统采用斑马公司生产的888-TT桌面式微型标签打印机,基于美国Silicon Labs公司生产的SoC单片机C8051f020作为主控制芯片,通过RS 232串行接口与标签打印机进行串行通信,采取单片机向标签打印机发送打印指令和数据的方法实现单片机对打印机的控制。

1 单片机与打印机的串行接口设计
    大多数单片机应用系统不是高速大数据量吞吐的,因此单片结构,即不外扩展ROM和RAM已成为单片机系统发展的方向之一。与之相适应,以各种串行总线来配置应用系统已成为设计者的常用手段。打印机是低速设备,应用标签打印机打印时,数据量一般不大,因此在该系统中,笔者优先考虑选用串行接口类的标签打印机。
    对于小型仪器仪表,由于体积限制,一般均配置分体台式串口微型打印机作为可选外设,由于连线较长,其串口信号采用EIA标准电平,即:
    Mark为逻辑“1”(EIA-3~-27V低电平);
    Space为逻辑“0”(EIA+3~+27V高电平)。
    因此,在与单片机接口时,这类EIA标准RS 232C串口微型打印机提供两种握手方式:一种是标志控制方式,由单片机的TXD发送串行数据给微打,单片机使用RXD或其他输入口判断打印机闲忙状态。其时序图和软件流程图如图1所示。
    另一种是XON/XOFF协议方式,由单片机的TXD发送数据,由其RXD接收来自打印机的数据,根据所接收数据是否为XON=11H或XOFF=13H决定数据能否发送。其时序图和软件流程图如图2所示。

a.jpg


    标志控制方式除使用串口TXD外,再用一个输入口判断打印机的CTS(允许发送)电平,编程控制简单,类似于并行接口判“忙”线控制数据传送的处理方法。在协议控制方式下,要同时使用串口的TXD和RXD,发送和接收均为串行数据,编程相对复杂,而且数据的传输效率低。因此,该系统采用了标志控制方式,硬件连接图如图3所示。EIA电平到TTL电平的转换采用SP232EEN芯片。

2 EPL2打印描述语言
    该系统采用斑马公司的桌面型标签打印机888-TT,其编程语言为EPL2打印描述语言。EPL2语言主要包含了对打印机进行操作的一系列打印指令。在此主要用到了其中的A指令和B指令:A指令的作用主要是用来打印文本;B指令的作用主要是用来打印条码。
    “A”指令:用于打印文本字符。语法为:Ap1,p2,p3,p4,p5,p6,p7,“DATA”。其中包含了7个参数p1~p7,和需要打印的文本数据“DATA”。下面对参数进行介绍:
    p1为以像素点为单位的水平起始位置;
    p2为以像素点为单位的垂直起始位置;
    p3为旋转,参数的值以及对应的角度见表1;

b.jpg


    p4为字体选择;
    p5为水平膨胀;
    p6为垂直膨胀;
    p7中,N代表普通,R表示反转图像。
    “B”指令:用于打印标准条码。语法为:Bp1,p2,p3,p4,p5,p6,p7,p8,“DATA”。它包含了8个参数p1~p8,和需要打印的条码数据“DATA”。下面对8个参数进行介绍:
    p1为以像素点为单位的水平起始位置;
    p2为以像素点为单位的垂直起始位置;
    p3为旋转,参数的值以及对应的角度与A指令的
    p3参数相同,见表1;
    p4为条码选择;
    p5为窄条的像素宽度;
    p6为宽条的像素宽度;
    p7为条码的像素点高度;
    p8为打印可读代码,B为是,N为否。

3 打印机驱动程序设计
    打印机驱动程序的流程图如图4所示。

c.jpg


    打印机的驱动程序由三部分组成:打印机初始化、文本打印和条码打印。打印机初始化函数Printer_Init()的程序代码段如下:
    d.jpg
    首先向打印机发送“Y96,O,8,1”,作用是将打印机的波特率设置为9 600 b/s,没有校验,8位数据位和1位停止位,与单片机串口参数设置一致。接下来发送“q500”,作用是将标签的宽度定义为500个像素点。最后发送“ZT”,作用是控制打印的方向从纸张的头部开始打印,初始化完成时,返回发送成功的标志true。
    文本打印函数Print_String()的程序代码段如下:
e.jpg
    定义一个数组,该数组的作用是用来存放需要打印的临时数据。程序中的注释部分给出了打印数据"DATA”的具体格式,首先发送“N”指令,其作用是清空打印缓冲区,然后送入要打印的文本数据。最后发送“P”指令,其作用是打印,后面的参数“1”是指打印1份。整个指令段通过数组的赋值传入PrintBuffer中,然后通过串口发送函数将数据发送给打印机,实现文本的打印操作。条码打印函数Print_Bar()的程序代码段如下:
f.jpg
    与文本打印类似,*Str为要打印的条码数据。串口发送完成时,返回成功标志true,即实现条码的打印操作。当需要重新启动打印机时,同样要向打印机发送相关的指令,也就是“^@”指令,该指令的作用是重新启动打印机。重新启动打印机函数Printer_Reset()的程序代码段如下:
    g.jpg

4 结语
    在此采用低功耗SoC单片机C8051F020作为主机控制器,完成了斑马公司的888-TT标签打印机的串行接口设计及驱动的实现。系统已成功应用于程控耐压绝缘测试仪中,并取得了良好的效果。不仅节省了很多人力资源,同时也提高了数据记录的准确度和效率。

关键字:C8051F 引用地址:基于C8051F系列单片机的标签打印机接口设计

上一篇:单片机内部密码破解方法
下一篇:单片机编程技巧-时钟中断

推荐阅读最新更新时间:2024-03-30 21:48

针对C8051F单片机的手持编程器(SMP)
C8051F单片机是高度集成的混合信号系统级芯片(SoC),具有与8051 兼容的高速CIP-51 内核,与MCS-51 指令集完全兼容,内置程序存储器FLASH、数据存储器RAM;片内集成了ADC、DAC 等常用的模拟外设及UART、SMBus、SPI 等数字外设。   C8051F单片机具有片内调试电路,通过4 脚的JTAG 接口或者2线的C2接口可以进行非侵入式、全速的在系统调试及下载。   基于以上特点,C8051F单片机在工业控制、消费电子、通信等领域得到了广泛应用。但是,用户在生产过程中,希望一种方便快捷地对单片机编程,针对这种情况,深圳世强电讯有限公司设计开发了一款手持编程器(以下简称:SMP)方便用户编程
[单片机]
基于双C8051F020微控制器的应用系统
0 引言 由于MCU(微控制器)在可靠性、体积、功耗、性价比等方面都具有明显的优势,所以由其组成的上下位机形式的仪器(下位机部分),已经在许多工业控制和数据采集系统中得到广泛应用。在实际应用中,如果一片MCU芯片的功能不能满足实际需求时,就需要进行扩展。在本文中,我们使用两片C8051F020微控制器通过SMBus(System Management Bus)系统管理总线进行扩展,使其满足了15路模拟量输入(AD)、6数字量输入、2路开关量输出以及1路PWM波输出的设计要求。 1 系统硬件构成 整个系统的装置示意图如图1所示。我们选择美国Silicon公司的微控制器(MCU)C8051F020(简
[单片机]
基于双<font color='red'>C8051F</font>020微控制器的应用系统
C8051F021单片机和RA8835液晶控制器为核心的液晶
本文给出了一种基于C8051F021和RA8835实现的低成本液晶显示方案。随着电子产品设计技术的不断发展,电子产品的设计,尤其是人机交互界面的设计日益趋向人性化。这其中的液晶显示屏以其具有能显示复杂文字及图形、显示面积大小随意、功耗低、轻薄等优点,而得到广泛的应用。近年来,随着单片机技术的飞速发展,涌现了多种性能优良且成本很低的单片机品种。C8051F系列单片机就是其中之一。在工程应用中,C8051F021可在满足性能要求的前提下,减少浪费、降低成本。 1 系统主要器件 1.1 C8051F021单片机 本系统选用性能优良且成本较低的SOC单片机C8051F021作为控制核心。C8051F201是完全集成的混合信号系统级M
[单片机]
以<font color='red'>C8051F</font>021单片机和RA8835液晶控制器为核心的液晶
基于高速超微型C8051F300单片机的CCD驱动电路设计
1 常用的CCD驱动时序产生方法   CCD厂家众多,型号各异,其驱动时序的产生方法也多种多样,一般有以下4种:   (1)数字电路驱动方法   这种方法是利用数字门电路及时序电路直接构建驱动时序电路,其核心是一个时钟发生器和几路时钟分频器,各分频器对同一时钟进行分频以产生所需的各路脉冲。该方法的特点是可以获得稳定的高速驱动脉冲,但逻辑设计和调试比较复杂,所用集成芯片较多,无法在线调整驱动频率。   (2)EPROM驱动方法   这种驱动电路一般在EPROM中事先存放所有的CCD时序信号数据,并由计数电路产生EPROM的地址使之输出相应的驱动时序。该方法结构相对简单、运行可靠,但仍需地址产生硬件电路,所需EPR0M容量
[工业控制]
基于高速超微型<font color='red'>C8051F</font>300单片机的CCD驱动电路设计
基于C8051F000的多通道数据采集范围控制系统
1 引 言      在实际应用中,对被控对象的物理参数(温度、湿度、位移、电流、电压等)在一定的范围内进行控制,是单片机的典型应用之一。很多宏观要求精确控制的场合,其微观控制过程,仍可归结为是对某些参数变化范围的控制。如,传统的三相异步电机从启动到正常运行,其电流、电压和温度的变化;抽水塔水位的变化;机床刀具的行程变化及数字电表的自动量程变换等。这些控制过程最显著的特点是:被控物理量都是一个变化范围,而非某一个精确的“点”。有效控制物理量变化范围的方法很多,本文重点介绍利用C8051F000单片机片内8路高性能的12位ADC数据采集系统和可编程窗口检测器,实现对多路参数变化范围控制的硬件组成和软件设计方法。 2 C805
[单片机]
基于单片机C8051F060的智能功率柜
摘要:简要介绍了智能励磁功率柜的概念及C8051F060单片机的特点,详细论述了基于C8051F060的智能励磁功率柜的结构、原理以及与CAN总线通信的实现方法。该控制方案系统集成度高、硬件简单、工作可靠,具有很好的推广价值。 关键词:C8051F060 微控制器 CAN 现场总线 励磁 1 引言 随着发电机容量的不断增大,对励磁系统的要求越来越高。国内目前使用的各类励磁调节器都非常先进,但功率柜的制造水平却不尽如人意,这势必影响励磁系统整体性能的提高进而妨碍整体发电系统性能的提高。 目前,国产的励磁功率柜普遍存在检测功能不全、信息传送技术、控制和检测技术落后等问题。为了解决这一问题,本文给出了通过采用高集成度单片机C8
[单片机]
单片机C8051F020及其在柜式电能表中的应用
引言 柜式电能表内部的CPU要求具有双串口,一方面读取电能计量终端的数据,同时通过RS485通讯接口将这些数据上传至电能管理信息系统。经过一番比较,笔者采用了美国Cygnal公司推出的完全集成的混合信号系统级芯片C8051F020,与普通单片机相比较,它具有扩展芯片少,连线少,资源多,编程简单,升级维护容易等优点,而且可靠性和稳定性也可得到保证,从而简化了测量仪器硬件电路系统设计,实现测量数据的显示,打印,大大高了测量仪器性能指标和性价比。而其具有的片内调试电路,使设计人员可通过JTAG接口进行非侵入式,全速的在系统调试。 一、芯片介绍 1 C8051F020的主要特点 l 具有与8051兼容的微控制内核,最高速度可达
[单片机]
单片机<font color='red'>C8051F</font>020及其在柜式电能表中的应用
采用C8051F920单片机的金卤灯控制器的设计
1 概论 目前,大部分照明设备仍以传统能源来照明,充分利用太阳能作为照明设备的能源供给,在节约能源、保护环境等方面具有重要意义。 2 控制器整体结构   太阳能光伏板接入光伏信号处理电路,光伏电压经PWM充电控制电路送到12 V蓄电池内。正常工作时,12 V蓄电池输出电压经高频平面变压器次级感应升压、整流后到全桥电路。同时12 V输出电压与电压变换电路相连接,向控制器其他电路供电。 2.1 太阳能充电系统   光伏信号处理电路包括防信号反接电路、光伏电压取样电路和雷击保护电路。其中,防信号反接电路可以阻止光伏信号反接输入对控制器电路造成损坏。电压取样电路提供给C8051F920采样后的光伏电
[工业控制]
采用<font color='red'>C8051F</font>920单片机的金卤灯控制器的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved