單片機控制打印機例程(北京榮達(dá)-串口)_第1頁
單片機控制打印機例程(北京榮達(dá)-串口)_第2頁
單片機控制打印機例程(北京榮達(dá)-串口)_第3頁
單片機控制打印機例程(北京榮達(dá)-串口)_第4頁
單片機控制打印機例程(北京榮達(dá)-串口)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、./* / 新榮達(dá)電子打印機測試程序/ 51 單片機,晶振11.0592 / 時間: 2009-7-10 / 用與測試串行接口打印機/ 常用打印機指令以函數(shù)行式體現(xiàn)/ 可根據(jù)需要自行調(diào)用單一函數(shù)*/ #include /51 頭文件#include /字串處理函數(shù)頭文件#include #define uchar unsigned char sbit busy=p34; /并口打印機的busy ,串口打印機的cts /*單字節(jié)打印函數(shù)*/ void print(unsigned char ch) while (busy=1) /busy 為 1 時,等待 ,如數(shù)據(jù)量小,可不判busy ; sb

2、uf= ch; /busy=0,將數(shù)據(jù)送到p1 口while(ti=0) /當(dāng) ti 為 0 時,表示數(shù)據(jù)未發(fā)送完成,一直等待,直到為1 ; ti=0; /將 ti 清 0 /*串口初始化 */ void com_init(void) th1=0xfd; /波特率值裝入計數(shù)器,9600bps tmod=0x20; /串口設(shè)置,定時器1,設(shè)為方式2,8 位自動重載,用于產(chǎn)生波特率scon=0x50; /串口發(fā)送方式1, 8 位數(shù)據(jù)位, 1 位停止位tr1=1; /開啟定時器1 /*字符打印函數(shù)*/ void print_chs(uchar ch) uchar i; for(i=0;istrlen

3、(ch);i+) print(chi); /*漢字打印例程 */ void hanzitest(void) uchar i; print(0 x1b);print(0 x40); /初始化打印機print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs( 漢字命令測試:n); .for(i=0;i5;i+) /搋環(huán)打印5次 print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print(0 xd0);print(

4、0 xc2); /打印數(shù)據(jù) 新 print(0 x1b);print(0 x38);print(0 x04); /調(diào)用 12*12 點陣漢字, 24 點陣為 24*24 print(0 xc8);print(0 xd9);print(0 xb4);print(0 xef); /打印數(shù)據(jù)“榮達(dá)”print(0 x0d); /回車 /*行間距例程 */ void hangjianju(void) uchar i; print(0 x1b);print(0 x40); /初始化打印機print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24

5、點陣為 24*24 print_chs( 行間距測試:n); for(i=0;i11;i=i+2) /循環(huán)打印 print(0 x1b);print(0 x31);print(i); /esc 1,設(shè)置行間距print_chs(line spacing);print(0 x0a); /打印字符串和換行 /*水平造表例程 */ void shuipingzhaobiao(void) print(0 x1b);print(0 x40); /初始化打印機print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print

6、_chs( 水平造表測試:n); print(0 x0d); print(0 x1b);print(0 x44);print(2);print(9);print(14);print(0);/esc d print(9); /ht 命令print_chs(ht1); /打印字符串print(9); /ht 命令print_chs(ht2); /打印字符串print(9); /ht 命令print_chs(ht3); /打印字符串print(0 x0d); /*打印空格或換行例程*/ void konggehuanhang(void) print(0 x1b);print(0 x40); /初始化

7、打印機print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs( 換行或空格測試:n); print_chs(te); /打印字符串“ te”print(0 x1b);print(0 x66);print(0);print(0 x06); /空六格.print_chs(st); /打印字符串“ st”print(0 x0d); /回車print_chs(te); /打印字符串“ te”print(0 x1b);print(0 x66);print(0 x01);print(0 x06); /換

8、6 行print_chs(st); /打印字符串“ st”print(0 x0d); /回車 /*右限例程 */ void youxian(void) print(0 x1b);print(0 x40); /初始化打印機print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs( 右限測試: n); print(0 x1b);print(0 x51);print(0 x06); /esc q 命令,右限為6 print(0 x0d); /回車 /*左限例程 */ void zhuoxian(voi

9、d) print(0 x1b);print(0 x40); /初始化打印機print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs( 左限測試: n); print(0 x1b);print(0 x6c);print(0 x06); /esc i 命令,左限為6 print(0 x0d); /回車 /*放大指令例程 */ void fangda(void) uchar i; print(0 x1b);print(0 x40); /初始化打印機print(0 x1b);print(0 x38);p

10、rint(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs( 放大測試: n); for(i=1;i4;i+) /從 1 到 3 倍 print (0 x1b);print(0 x55);print(i); /橫向放大print_chs(rd); /打印字符 print(0 x0d); /回車命令print(0 x1b);print(0 x40); /初始化打印機for(i=1;i4;i+) /從 1 到 3 倍 .print (0 x1b);print(0 x56);print(i); /縱放命令print_chs(rd); /打印字符print(

11、0 x0d); /回車 print(0 x1b);print(0 x40); /初始化打印機for(i=1;i4;i+) /從 1 到 3 倍 print (0 x1b);print(0 x57);print(i); /橫縱向同時放大print_chs(rd); /打印字符print(0 x0d); /回車 /*劃線指令例程 */ void huaxian(void) print(0 x1b);print(0 x40); /初始化打印機print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs(

12、劃線測試: n); print(0 x1b);print(0 x57);print(2);/放大兩倍打印,便于觀察劃線print_chs(rd); /打印字串print(0 x1b);print(0 x2d);print(1);/允許下劃線打印print_chs(upt); /upt 打印下劃線print(0 x1b);print(0 x2d);print(0);/禁止下劃線打印print_chs(rd); /打印字串print(0 x0d); /回車print(0 x1b);print(0 x40); /初始化打印機print(0 x1b);print(0 x57);print(2);/放大

13、兩倍打印,便于觀察劃線print_chs(rd); /打印字串print(0 x1b);print(0 x2b);print(1); /允許上打印線打印print_chs(upt); /upt 上打印上劃線print(0 x1b);print(0 x2b);print(0); /禁止上劃線print_chs(rd); /打印字串print(0 x0d); /打印回車 /*上下標(biāo)指令例程*/ void shangxiabiao(void) print(0 x1b);print(0 x40); /初始化打印機print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 1

14、6*16 點陣漢字, 24 點陣為 24*24 print_chs( 上下標(biāo)測試:n); print(0 x1b);print(0 x57);print(0 x02); /放大兩倍print(m); /打印字符 m print(0 x1b);print(0 x57);print(0 x01); /原倍print(0 x1c);print(0 x72);print(0); /上標(biāo)命令.print(2); /打印字符 2 print(0 x0d); /回車print(0 x1b);print(0 x57);print(0 x01); /原倍print(0 x1b);print(0 x57);pri

15、nt(0 x02); /放大兩倍print(m); /打印字符 m print(0 x1c);print(0 x72);print(1); /上標(biāo)命令print(0 x1b);print(0 x57);print(0 x01); /原倍print(2); /打印字符 2 print(0 x0d); /回車 /*橫縱向指令例程*/ void hengzhong(void) print(0 x1b);print(0 x40); print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs( 橫縱向測試:

16、n); print(0 x1c);print(0 x4a); /設(shè)置縱向打印print_chs(abcdefghi); /打印字符print(0 x0d); /回車print(0 x1b);print(0 x40); print(0 x1c);print(0 x4b); /設(shè)置橫向打印print_chs(abcdefghi); /打印字符print(0 x0d); /回車 /*自定義指令例程*/ void zidingyi(void) print(0 x1b);print(0 x40); /初始化指令print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*

17、16 點陣漢字, 24 點陣為 24*24 print_chs( 自定義字符測試:n); print(0 x1b);print(0 x36); /如是 24 點陣機器,在自定義字符前面要加一個1b 36 指令才行print(0 x1b);print(0 x57);print(2); /橫向縱向放大2 倍print(0 x1b);print(0 x26);print(65); /esc & 命令print(0 x02);print(0 x7c);print(0 x40); /字模數(shù)據(jù)print(0 xc0);print(0 x40);print(0 x00); /字模數(shù)據(jù)print(0

18、x1b);print(0 x25);print(65);print(65);print(0); /esc % print(65); /打印定義字符print(0 x1b);print(0 x3a); /esc:命令print(65); /復(fù)符集中的字符print(0 x0d); /*圖形指令例程 */ void tuxing(void) uchar code tch =0 x7c,0 x44,0 x44,0 xff,0 x44,0 x44,0 x7c,0 x00,0 x41,0 x62,0 x54,0 xc8,0 x54,0 x62,0 x41; .uchar i; print(0 x1b);

19、print(0 x40); /初始化指令print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs( 圖形測試: n); / print(0 x1b);print(0 x57);print(2); /橫向縱向放大2 倍print(0 x1b);print(0 x4b);print(15);print(0); /esc k 命令for(i=0;i15;i+) /輸入 15 個字節(jié)數(shù)據(jù)print(tchi); print(0 x0d); /輸入回車 /*曲線 ii 指令例程 */ /僅適用于熱敏打印機

20、void quxian_2(void) float x; unsigned int y,yy; / y1=50+40*abs (-0.01*x )*sin (x/10 )/ y2=50-40*abs ( -0.01*x )*sin( x/10)/ y3=50 / y4=50+40*abs(-0.1*x) / y5=50-40*abs(-0.01*x) / 你可以用 c 語言編寫如下的程序:/ #include / unsigned int y,yy,x; print(0 x1b);print(0 x40); /初始化指令print(0 x1b);print(0 x38);print(0 x00

21、); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs( 曲線 1 測試: n); for(x=0;x150;x+) /打印 150 點行 y= 40*exp(-0.01*x); yy= y*sin(x/10); print(0 x1b);print(39);print(5);print(0); /esc 命令 ,m=5,0 print(50+yy);print(0);print(50-yy);print(0);print(50);print(0); print(50+y);print(0);print(50-y);print(0);print(13); /*曲線

22、i 指令例程 */ /僅適用于針式打印機void quxian_1(void) float x; unsigned int y,yy; / y1=50+40*abs (-0.01*x )*sin (x/10 )/ y2=50-40*abs ( -0.01*x )*sin( x/10)/ y3=50 / y4=50+40*abs(-0.1*x) / y5=50-40*abs(-0.01*x) ./ 你可以用 c 語言編寫如下的程序:/ #include / unsigned int y,yy,x; print(0 x1b);print(0 x40); /初始化指令print(0 x1b);pri

23、nt(0 x38);print(0 x00); /調(diào)用 16*16 點陣漢字, 24 點陣為 24*24 print_chs( 曲線 2 測試: n); for(x=0;x150;x+) /打印 150 點行 y= 40*exp(-0.01*x); yy= y*sin(x/10); print(0 x1b);print(39);print(5); /esc 命令 ,m=5 print(50+yy);print(50-yy);print(50); print(50+y);print(50-y);print(13); /*旋轉(zhuǎn)指令例程*/ void xuanzhuan(void) uchar i;

24、 print(0 x1b);print(0 x40); /初始化指令for(i=0;i4;i+) /0,90,180,270 旋轉(zhuǎn) print(0 x1c);print(0 x49);print(i); /旋轉(zhuǎn)指令print(0 x1b);print(0 x38);print(0); /漢字調(diào)出指令print_chs( 旋轉(zhuǎn)測試 ); /打印漢字 print(0 x0d); /回車 /*反白指令例程*/ void fanbai(void) uchar i; print(0 x1b);print(0 x40); /初始化指令for(i=0;i2;i+) /i 為 1 時,反白打印 print(0

25、 x1b);print(0 x69);print(i); print(0 x1b);print(0 x38);print(0); print_chs( 反白測試 ); print(0 x0d); /*反向指令例程*/ void fanxiang(void) uchar i; .print(0 x1b);print(0 x40); /初始化指令for(i=0;i2;i+) /i 為 1 時,禁止反向 print(0 x1b);print(0 x63);print(i); print(0 x1b);print(0 x38);print(0); print_chs( 反向測試 ); print(0 x0d); /*條碼指令例程*/ /只有部分型號的打印機支持此指令void tiaoma(void) print(0 x1b);print(0 x40); /初始化指令print(0 x1d);print(0 x72);print(0 x01); /打印條碼字符pri

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論