微型打印機與FPGA的硬件接口及軟件設計

2.2 打印機控制命令及程序設計
RD-E型微型打印機提供了39條打印命令,打印命令與多數打印機兼容。其中,漢字打印命令其格式由16進制數表示,則為x“1B”x“3 8”x“n”。在連續(xù)3次接收數據后若接收到的是該命令,打印機將根據n值的不同選擇不同點陣的漢字。在漢字打印方式中,打印機接收的漢字代碼是2個字節(jié)對應一個漢字的標準機內碼,即打印機每接收2個字節(jié)的機內碼可調出一個漢字。打印機先接收機內碼的高位字節(jié),再接收低位字節(jié)。設計中,由于欲打印的數據分 16×16和12×12兩種點陣漢字,所以n值設置為0或4,當n=O選擇16×16點陣漢字打印,n=4選擇12×12點陣漢字印,n的默認值為0。另一條命令是紙給進命令,即換行命令,其格式用16進制數表示為:x“OA”打印機打印當前緩沖器里的數據,并向前走紙一行,如果緩沖器里沒有數據,則只執(zhí)行向前走紙一行。打印空格或空行命令,其格式用16進制數表示為:x“1B”x“6 6”x“M”x“n”。如果M=O,該命令將打印n個空格;如果M=1,該命令將打印n個空行。由于打印數據必須與表頭的欄目一一對應,而且每行打印的字符點陣不會完全相同,所以編程過程中對空格數的控制是需要花功夫的,調試時便出現(xiàn)過打印的已處理數據與表頭不對應的情況。由于打印機內嵌選擇字符集1和自定義字符集2,打印的數據中含有自定義字符集中的字符,所以還需選擇打印輸出字符集數據。字符集選擇由命令x“1B”x“36和x“1B”x“37”來實現(xiàn)。回車命令的命令字為x“0D”。打印機收到本命令后,即對緩沖區(qū)內的命令和字符進行處理,并按要求打印緩沖區(qū)內的全部字符或漢字。
打印機內置的漢字代碼為標準漢字內碼,高字節(jié)數值范圍A1H~F7H,對應1~87區(qū)漢字;低字節(jié)數值范圍A1H~FEH,對應每一區(qū)中的漢字位碼1~94。漢字的區(qū)位碼與機內碼之間相互計算的方法為:
區(qū)碼轉換為16進制數,位碼轉換為16進制數
機內碼高字節(jié)=區(qū)碼+AOH
機內碼低字節(jié)=位碼+AOH
例如電阻的“阻”字區(qū)位碼為5572,即55區(qū),第2個字,其機內碼為D7E8,將55(十進制)轉為37(16進制),37H+AOH=D7H;將 72(十進制)轉為48(16進制),48H+AOH=E8H,所以對表頭要打印的漢字將其區(qū)位碼轉換成內碼后存儲起來,按先高字節(jié),后低字節(jié)的順序,在打印命令之后寫入打印機即可。
評論