<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于C8051F系列單片機(jī)的標(biāo)簽打印機(jī)接口設(shè)計(jì)

          基于C8051F系列單片機(jī)的標(biāo)簽打印機(jī)接口設(shè)計(jì)

          作者: 時(shí)間:2011-05-20 來源:網(wǎng)絡(luò) 收藏


          2 EPL2打印描述語言
          該系統(tǒng)采用斑馬公司的桌面型888-TT,其編程語言為EPL2打印描述語言。EPL2語言主要包含了對(duì)進(jìn)行操作的一打印指令。在此主要用到了其中的A指令和B指令:A指令的作用主要是用來打印文本;B指令的作用主要是用來打印條碼。
          “A”指令:用于打印文本字符。語法為:Ap1,p2,p3,p4,p5,p6,p7,“DATA”。其中包含了7個(gè)參數(shù)p1~p7,和需要打印的文本數(shù)據(jù)“DATA”。下面對(duì)參數(shù)進(jìn)行介紹:
          p1為以像素點(diǎn)為單位的水平起始位置;
          p2為以像素點(diǎn)為單位的垂直起始位置;
          p3為旋轉(zhuǎn),參數(shù)的值以及對(duì)應(yīng)的角度見表1;

          本文引用地址:http://www.ex-cimer.com/article/172753.htm

          b.jpg


          p4為字體選擇;
          p5為水平膨脹;
          p6為垂直膨脹;
          p7中,N代表普通,R表示反轉(zhuǎn)圖像。
          “B”指令:用于打印標(biāo)準(zhǔn)條碼。語法為:Bp1,p2,p3,p4,p5,p6,p7,p8,“DATA”。它包含了8個(gè)參數(shù)p1~p8,和需要打印的條碼數(shù)據(jù)“DATA”。下面對(duì)8個(gè)參數(shù)進(jìn)行介紹:
          p1為以像素點(diǎn)為單位的水平起始位置;
          p2為以像素點(diǎn)為單位的垂直起始位置;
          p3為旋轉(zhuǎn),參數(shù)的值以及對(duì)應(yīng)的角度與A指令的
          p3參數(shù)相同,見表1;
          p4為條碼選擇;
          p5為窄條的像素寬度;
          p6為寬條的像素寬度;
          p7為條碼的像素點(diǎn)高度;
          p8為打印可讀代碼,B為是,N為否。

          3 驅(qū)動(dòng)程序
          打印機(jī)驅(qū)動(dòng)程序的流程圖如圖4所示。

          c.jpg


          打印機(jī)的驅(qū)動(dòng)程序由三部分組成:打印機(jī)初始化、文本打印和條碼打印。打印機(jī)初始化函數(shù)Printer_Init()的程序代碼段如下:
          d.jpg
          首先向打印機(jī)發(fā)送“Y96,O,8,1”,作用是將打印機(jī)的波特率設(shè)置為9 600 b/s,沒有校驗(yàn),8位數(shù)據(jù)位和1位停止位,與串口參數(shù)設(shè)置一致。接下來發(fā)送“q500”,作用是將的寬度定義為500個(gè)像素點(diǎn)。最后發(fā)送“ZT”,作用是控制打印的方向從紙張的頭部開始打印,初始化完成時(shí),返回發(fā)送成功的標(biāo)志true。
          文本打印函數(shù)Print_String()的程序代碼段如下:
          e.jpg
          定義一個(gè)數(shù)組,該數(shù)組的作用是用來存放需要打印的臨時(shí)數(shù)據(jù)。程序中的注釋部分給出了打印數(shù)據(jù)DATA”的具體格式,首先發(fā)送“N”指令,其作用是清空打印緩沖區(qū),然后送入要打印的文本數(shù)據(jù)。最后發(fā)送“P”指令,其作用是打印,后面的參數(shù)“1”是指打印1份。整個(gè)指令段通過數(shù)組的賦值傳入PrintBuffer中,然后通過串口發(fā)送函數(shù)將數(shù)據(jù)發(fā)送給打印機(jī),實(shí)現(xiàn)文本的打印操作。條碼打印函數(shù)Print_Bar()的程序代碼段如下:
          f.jpg
          與文本打印類似,*Str為要打印的條碼數(shù)據(jù)。串口發(fā)送完成時(shí),返回成功標(biāo)志true,即實(shí)現(xiàn)條碼的打印操作。當(dāng)需要重新啟動(dòng)打印機(jī)時(shí),同樣要向打印機(jī)發(fā)送相關(guān)的指令,也就是“^@”指令,該指令的作用是重新啟動(dòng)打印機(jī)。重新啟動(dòng)打印機(jī)函數(shù)Printer_Reset()的程序代碼段如下:
          g.jpg

          4 結(jié)語
          在此采用低功耗SoC020作為主機(jī)控制器,完成了斑馬公司的888-TT打印機(jī)的串行及驅(qū)動(dòng)的實(shí)現(xiàn)。系統(tǒng)已成功應(yīng)用于程控耐壓絕緣測(cè)試儀中,并取得了良好的效果。不僅節(jié)省了很多人力資源,同時(shí)也提高了數(shù)據(jù)記錄的準(zhǔn)確度和效率。


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();