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

下載本文檔

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

文檔簡(jiǎn)介

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

2、uf= ch; /busy=0,將數(shù)據(jù)送到p1 口while(ti=0) /當(dāng) ti 為 0 時(shí),表示數(shù)據(jù)未發(fā)送完成,一直等待,直到為1 ; ti=0; /將 ti 清 0 /*串口初始化 */ void com_init(void) th1=0xfd; /波特率值裝入計(jì)數(shù)器,9600bps tmod=0x20; /串口設(shè)置,定時(shí)器1,設(shè)為方式2,8 位自動(dòng)重載,用于產(chǎn)生波特率scon=0x50; /串口發(fā)送方式1, 8 位數(shù)據(jù)位, 1 位停止位tr1=1; /開啟定時(shí)器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); /初始化打印機(jī)print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 漢字命令測(cè)試:n); .for(i=0;i5;i+) /搋環(huán)打印5次 print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print(0 xd0);print(

4、0 xc2); /打印數(shù)據(jù) 新 print(0 x1b);print(0 x38);print(0 x04); /調(diào)用 12*12 點(diǎn)陣漢字, 24 點(diǎn)陣為 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); /初始化打印機(jī)print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點(diǎn)陣漢字, 24

5、點(diǎn)陣為 24*24 print_chs( 行間距測(cè)試: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); /初始化打印機(jī)print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print

6、_chs( 水平造表測(cè)試: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、打印機(jī)print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 換行或空格測(cè)試: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); /初始化打印機(jī)print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 右限測(cè)試: 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); /初始化打印機(jī)print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 左限測(cè)試: 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); /初始化打印機(jī)print(0 x1b);print(0 x38);p

10、rint(0 x00); /調(diào)用 16*16 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 放大測(cè)試: 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); /初始化打印機(jī)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); /初始化打印機(jī)for(i=1;i4;i+) /從 1 到 3 倍 print (0 x1b);print(0 x57);print(i); /橫縱向同時(shí)放大print_chs(rd); /打印字符print(0 x0d); /回車 /*劃線指令例程 */ void huaxian(void) print(0 x1b);print(0 x40); /初始化打印機(jī)print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 16*16 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs(

12、劃線測(cè)試: 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); /初始化打印機(jī)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); /初始化打印機(jī)print(0 x1b);print(0 x38);print(0 x00); /調(diào)用 1

14、6*16 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 上下標(biāo)測(cè)試: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 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 橫縱向測(cè)試:

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 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 自定義字符測(cè)試:n); print(0 x1b);print(0 x36); /如是 24 點(diǎn)陣機(jī)器,在自定義字符前面要加一個(gè)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 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 圖形測(cè)試: 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 個(gè)字節(jié)數(shù)據(jù)print(tchi); print(0 x0d); /輸入回車 /*曲線 ii 指令例程 */ /僅適用于熱敏打印機(jī)

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 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 曲線 1 測(cè)試: n); for(x=0;x150;x+) /打印 150 點(diǎn)行 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 指令例程 */ /僅適用于針式打印機(jī)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 點(diǎn)陣漢字, 24 點(diǎn)陣為 24*24 print_chs( 曲線 2 測(cè)試: n); for(x=0;x150;x+) /打印 150 點(diǎn)行 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)測(cè)試 ); /打印漢字 print(0 x0d); /回車 /*反白指令例程*/ void fanbai(void) uchar i; print(0 x1b);print(0 x40); /初始化指令for(i=0;i2;i+) /i 為 1 時(shí),反白打印 print(0

25、 x1b);print(0 x69);print(i); print(0 x1b);print(0 x38);print(0); print_chs( 反白測(cè)試 ); print(0 x0d); /*反向指令例程*/ void fanxiang(void) uchar i; .print(0 x1b);print(0 x40); /初始化指令for(i=0;i2;i+) /i 為 1 時(shí),禁止反向 print(0 x1b);print(0 x63);print(i); print(0 x1b);print(0 x38);print(0); print_chs( 反向測(cè)試 ); print(0 x0d); /*條碼指令例程*/ /只有部分型號(hào)的打印機(jī)支持此指令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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論