《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 噴墨打印機在單片機測控系統(tǒng)中的應用
噴墨打印機在單片機測控系統(tǒng)中的應用
摘要: 單片機應用系統(tǒng)中,如果打印任務很大(比如打印大幅面的圖形和漢字),而且又在野外操作,如地質(zhì)勘測時得到的一些實時數(shù)據(jù)、曲線,就不得不采用單片機驅(qū)動噴墨打印機來實現(xiàn),本文針對此應用給出了一種可行的方案。
Abstract:
Key words :

1.單片機" title="51單片機" target="_blank">51單片機與打印機接口設計

1.1并口打印機的工作時序

通常情況下,并口噴墨打印機(以下簡稱打印機)是由普通PC機來驅(qū)動的。PC機中的并行端口有三種工作模式,分別是SPP(標準并行接口),EPP(增強型并行接口),ECP(擴展型并行端口)。由于SPP實現(xiàn)起來最簡單,因此,本系統(tǒng)參照此接口。

PC機按SPP模式驅(qū)動噴墨打印機時采用17根信號線,如果要求單片機完全按照這種方式工作,實現(xiàn)起來比較繁瑣,占用了很多I/O資源。通過仔細分析SPP信號線以及打印機的工作原理之后,我們使用了10根信號線:8根數(shù)據(jù)線,1根狀態(tài)線(用來判斷打印機是否空閑),1根控制線(用來選通打印機),試驗結(jié)果表明這種簡化是完全可行的。PC機并行端口引腳定義請參考相關資料。圖1是簡化的并口打印機工作時序。簡化的打印機工作時序可以概括為:主機(在此為單片機)在打印機忙線BUSY為低電平時輸出數(shù)據(jù),產(chǎn)生選通脈沖信號STROBE,將數(shù)據(jù)總線上的數(shù)據(jù)D0~D7鎖存入打印機中;在打印機處理此數(shù)據(jù)期間,忙線為高電平,此時主機不能向打印機發(fā)送數(shù)據(jù),否則將被丟失。打印機處理完此數(shù)據(jù)或執(zhí)行完打印操作后,忙線變成低電平,表示數(shù)據(jù)被接收處理完畢,打印機可以接收下一個數(shù)據(jù)了。

72.jpg

1.2單片機與并口打印機的接口電路

設計的51單片機和打印機的接口電路如圖2所示。單片機只用了10根信號線來驅(qū)動噴墨打印機。單片機P0口的8根數(shù)據(jù)線通過74HC377鎖存后和并口的數(shù)據(jù)線相連,向打印機傳送命令和數(shù)據(jù);I/O引腳P12接并口的BUSY信號線,單片機檢測到P12管腳為高電平時,繼續(xù)讀取該管腳的狀態(tài),直到為低電平時(表明打印機可以接受下一個字符)才往數(shù)據(jù)口發(fā)送一個字符。單片機最高位地址總線P2.7(A15)為低電平時,數(shù)據(jù)便可在單片機寫控制信號線WR的上升沿鎖入74HC377,隨后P2.6為低電平時,選通信號STROBE有效,數(shù)據(jù)進入打印機。這樣,噴墨打印機端口地址為0x0000~0x3fff,由于51系列單片機的存儲器和外設是統(tǒng)一編址的,外部存儲器地址只能從0x4000開始。如果系統(tǒng)存儲空間不夠,可以改用全譯碼電路來實現(xiàn)。

73.jpg

2EPSON ESC/P打印控制語言簡介

采用EPSON公司的打印控制語言ESC/P,在它的開發(fā)網(wǎng)站上下載編程手冊,里面對這種打印機語言作了詳細介紹,本文列出了實際應用中常用的控制代碼。
  初始化打印機:ESC @
  選擇圖形方式:ESC (C nL nH m

其中nL=01H,nH=00H,m=01H或31H。注意,初始化后打印機處于字符方式。因此要在圖形方式下打印時,必須先執(zhí)行該命令。
  設置單元大小:ESC (U nL nH m

nL=01H,nH=00H,m=05H,0AH,14H,1Eh,28H,32H,3CH,m取不同的值時單元大小不一樣。單元越小打印機分辨率越高,因而打印質(zhì)量也就越高。

選擇單色/彩色命令:ESC (K nL nH m n

nL=01H,nH=00H,m=00H,n=00H,01H,02H。當n=00H時,打印機處于默認的彩色模式;當n=01H時,打印機置為單色模式,即只能打印出黑色;當n=02H時,打印機置為彩色模式,可打印四種顏色。

打印光柵圖像命令:ESC . c v h m N1 Nh d1…dk

c=0,1,2表示打印模式。當c=0時,打印機工作在非壓縮模式;c=1時,打印機處于壓縮模式;v:垂直方向打印密度,在這里v=30,因此垂直方向打印密度為3600/v=120(dpi);h:水平方向打印密度,在此h=10,因而水平方向打印密度為360(dpi);m:打印頭橫向移動過程中垂直方向所含點數(shù),也就是光柵個數(shù)或掃描行數(shù);nL,nH:水平方向所含點數(shù)為((256*nH)+nL);k:所有數(shù)據(jù)個數(shù),非壓縮方式下值為m*int((nH*256+nL+7)/8),壓縮方式下其值不定;d:數(shù)據(jù)。如果打印機要打印漢字或者圖形,那它一定要工作在圖形方式,因此每送一次數(shù)據(jù)給打印機都要用到它。要熟練掌握該命令才能準確、快速地編寫應用程序。另外,打印機工作在光柵圖形模式下,它在水平方向和垂直方向上的分辨率是不一樣的,因此在打印過程中送給打印機的點陣和通常情況下(比如液晶顯示)是不一樣的,必須要經(jīng)過轉(zhuǎn)換后(橫向放大三倍,縱向不變)才能夠打印出正常字體。

設置水平位置,設置水平相對位置,設置垂直位置,設置垂直相對位置這4條命令也用得比較多,其用法也很簡單,另外還有一些偶爾用到的命令,詳情可參閱EPSON C4X編程手冊,在此就不一一列舉了。

3打印程序設計

打印機的驅(qū)動軟件采用C51編寫,在keil C51環(huán)境下編譯通過,能夠正常工作。以下是其中的一些關鍵部分:

74.jpg

函數(shù)功能:把字節(jié)character發(fā)送到打印口。其工作過程是,先讀取打印機忙狀態(tài)信號,如果忙繼續(xù)查詢,直到不忙再送去一個字符到打印口,隨后發(fā)出選通信號。

75.jpg


76.jpg

4結(jié)束語

單片機應用系統(tǒng)中,如果打印任務很大(比如打印大幅面的圖形和漢字),而且又在野外操作,如地質(zhì)勘測時得到的一些實時數(shù)據(jù)、曲線,就不得不采用單片機驅(qū)動噴墨打印機來實現(xiàn),本文針對此應用給出了一種可行的方案。

參考文獻
[1]EPSON Programming Guide For 4 Color EPSON Stylus Ink Jet Printer[Z].SEIKOEPSON Corporation,Nagano,Japan.,2003.
[2]8051 Microcontrollers Hardware Manual[Z].ATMEL Corporation.,1997.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。