单片机控制打印机例程北京荣达串口.docx

上传人:scccc 文档编号:13929742 上传时间:2022-01-26 格式:DOCX 页数:26 大小:37.51KB
返回 下载 相关 举报
单片机控制打印机例程北京荣达串口.docx_第1页
第1页 / 共26页
单片机控制打印机例程北京荣达串口.docx_第2页
第2页 / 共26页
单片机控制打印机例程北京荣达串口.docx_第3页
第3页 / 共26页
单片机控制打印机例程北京荣达串口.docx_第4页
第4页 / 共26页
单片机控制打印机例程北京荣达串口.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《单片机控制打印机例程北京荣达串口.docx》由会员分享,可在线阅读,更多相关《单片机控制打印机例程北京荣达串口.docx(26页珍藏版)》请在三一文库上搜索。

1、单片机控制打印机例程(北京荣 达-串口)2 2 2 2 2 2 2 22 1 2 2 2 2 2 22 2 2 t 2 2 2 2 2 2 2 22 1 2 2 2 2,rj rj rj rj r| rj rj rj rj rj rjr| rj rj rj rj rj rj r| rj rj rj rj rj rjr| rj rj rj rj rj rjr| rj rj rj rj rj rj r| rj rj rj rjrj rj rj rj/新荣达电子打印机测试程序51单片机,晶振11.0592时间:2009-7-10用与测试串行接口打印机常用打印机指令以函数行式体现 可根据需要自行调用单

2、一函数 2 2 2 rj rj r| rj rj rj rj rj r| rj rj rj rj r| r| rj rj rj rj rj rj rj r| rj rj rj rj rj r| rj rj rj rj rj rj r| rj rj rj rjw r|*/#include /51 头文件#include字串处理函数头文件#include#define uchar unsigned charsbit BUSY=P3A4;并口打印机的BUSY,串口打印机的CTS/c单字节打印函数7,1#k /r|r| r|r|w r|r| rj r| r|w r| rj r| r|r| r| rj

3、r|r| r| rj r|w r|r| void print(unsigned char ch)while (BUSY=1) 量小,可不判BUSY;/busy为1时,等待,如数据SBUF= ch;/busy=O,将数据送到 Pl 口while(TI=O)当TI为0时,表示数据未发送完成,一直等待,直到为1;TI=O;将 TI 清 0,rjw rjw rj rj rjw rjw rjw rjw rjw rj rj rjw rjw rjw rjw rjw rj rj rjw口 初 始 化/rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj r

4、j rj rj rj rj rj rj rj rj rj rj /void com_init(void)(TH1=OXFD;TMOD=0X20;波特率值装入计数器,9600BPS串口设置,定时器1,设为方式2,8位自动重载,用于产生波特率SCON=0X50;串口发送方式1, 8位数据位,1位停止位 )TR1=1;开启定时器1字符打印函数9 99 9 /rjrjw rjrj rj rjw rj rjrj rj rjw rj rjrjrjw rj rjrj rj rjw rj rjrj rj /void print_chs(uchar ch)(uchar i;for(i=0;i f . ff f

5、trj rj rj rjrj rj rj rj rj rj rj rjrj rj rj rjrj rj rj /void hanzitest(void)uchar i;print(0xlb);print(0x40); 初始化打印机print(0xlb);print(0x38);print(0x00); 调用 16*16 点阵汉字,24点阵为24*24print_chs(汉字命令测试:nn);for(i=0;i5;i+)撼环打印 5 次(print(0xlb);print(0x38);prmt(0x00); 调用 16*16 点阵汉字,24点阵为24*24print(OxdO) ;print(0

6、xc2);打印数据“新“print(0xlb);prmt(0x38);prmt(0x04); 调用 12*12 点 阵 汉字,24点阵为24*24print(0xc8) ;print(0xd9);print(0xb4) ;print(Oxef); / 打 印数据“荣达”print(OxOd);回车)/2,_ 遥j rj rjrj rj rj rjrj rj rj rjrj rj rjyf I间 距例程kk ff,rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj /void hangjianju(

7、void)uchar i;prmt(0xlb);print(0x40); 初始化打印机prmt(0xlb);print(0x38);print(0x00); 调用 16*16 点阵汉字,24点阵为24*24print_chs(行间距测试:nn);for(i=0;ill ;i=i+2)循环打印(prmt(0xlb);print(0x31);prmt(i); /ESC 1,设置行间 距打印字print_chs(nLINE SPACINGff);print(OxOa);符串和换行)/c *水平造表 / r| rj r| r|w r| r|r| r|w r| rj rj r| r| r| rj r|

8、rj r|r|w r| r|r| Jvoid shuipingzhaobiao(void)(print(0xlb);print(0x40);健始化打印机prmt(0xlb);print(0x38);print(0x00); 调用 16*16 点阵汉字,24点阵为24*24print_chs(水平造表测试:nn);print(OxOd);prmt(0xlb);prmt(0x44);print(2);print(9);prmt(14);print(0 );/ESC Dprint(9);print_chs(nHTlH);print(9);print_chs(nHT2n);print(9);print

9、_chs(HHT3n); print(OxOd);/HT命令打印字符串 /HT命令打印字符串/HT命令打印字符串trj rjwrj rjw r| rj打印空格或换行例程),rj rj rj rjrj rj rj rj rj rj rj rjrj rj rj rj rj /void konggehuanhang(void)print(0xlb);print(0x40);初始化打印机print(Oxlb);print(0x38);print(0x00);调用 16*16 点阵汉字,24点阵为24*24print_chs(换行或空格测试:nn);print_chs(MTEH);打印字符串“TE”/空

10、print_chs(nSTH);打印字符串“ST”print(0xlb);print(0x66);print(0);print(0x06);八格print(OxOd); 回车print_chs(HTEn);打印字符串 “TE”prmt(0xlb);print(0x66);print(0x01);print(0x06); / 换6行print_chs(nSTn);打印字符串 “ST”print(OxOd); 回车/ 7,rj rjwrj rjrj rj / r|r| r|r|w r|r| rj r| r|w r| rj r| r|r| r| rj r|r| r|r|w r| ,void youx

11、ian(void)(prmt(0xlb);print(0x40);初始化打印机print(0xlb);print(0x38);prmt(0x00); 调用 16*16 点阵汉字,24点阵为24*24print_chs右限测试:nn);/ESCprmt(0xlb);print(0x51);print(0x06);命令,右限为6回车print(OxOd);)2 22 2 2 rjrj rj rj rjrj rj rj rjrj rj rj f,rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj /void

12、zhuoxian(void)print(0xlb);print(0x40);print(Oxlb) ;print(0x38) ;print(0x00);阵汉字,24点阵为24*24print_chs(左限测试:nn);初始化打印机调用16*16点prmt(0xlb);prmt(0x6c);print(0x06);限为6/ESC I命令,左print(OxOd);回车/I .t r| rj rj rj rjr| rj rj rj rjr| rj rj rj rj入指令例程1 kk/rj rjw r| rjw rj rj r| r| r| rj rj rj r| rjw rj rj rjw rj

13、r| rj rj r| rjw rj r| rj r| tvoid fangda(void)(uchar i;print(0xlb);print(0x40);初始化打印机print(0xlb);print(0x38);print(0x00); 调用 16*16 点阵汉字,24点阵为24*24print_chs(放大测试:nn);for(i=l;i4;i+)从 1 至!J 3print (0xlb);print(0x55);print(i);横向放大print_chs(nRDn);)print(OxOd);print(0xlb);prmt(0x40);for(i=l;i4;i+)打印字符回车命令

14、初始化打印机从1到3print (Oxlb);print(0x56);print(i);print_chs(nRDn);print(OxOd);)print(0xlb);print(0x40);for(i=l;i2 2 2 t 222 2 2 2_|t I,rj rj r| rj rjrj rj r| rj rjrj rj r| rj rjI I线指令例程 k/rj rj r| rj rj rj rj rj r| rj rj rj rj r| r| rj rj rj rj rj rj rj r| rj rj rj r| rj tvoid huaxian(void)print(0xlb);pri

15、nt(0x40); 初始化打印机print(Oxlb);print(0x38);print(0x00);调用 16*16 点阵汉字,24点阵为24*24print_chs(划线测试:nn);print(0xlb);print(0x57);priiit;放大两倍打印,便于观 察划线print_chs (nRDn);打印字串print(Oxlb) ;print(0x2d) ;print ;允许下划线打印print_chs(nUPTn);/UPT 打印下划线print(0xlb);print(0x2d);print(0);禁止下划线打印print_chs (nRDn);打印字串print(OxOd)

16、;回车print(0xlb);print(0x40);初始化打印机print_chs(nRDn);打印字串print(0xlb);print(0x57);print;放大两倍打印,便于观 察划线print(0xlb);print(0x2b);print(l); 允许上打印线打印print_chs(nUPTn);/UPT上打印上划线print(Oxlb);print(0x2b);print(O); 禁止上划线print_chs(nRDn);print(OxOd);打印字串打印回车)上下标指令例程/ rjwrjw rjrj rjw rj rjwrjw/void shangxiabiao(void)

17、print(0xlb);prmt(0x40);初始化打印机print(Oxlb) ;print(0x38) ;print(0x00);阵汉字,24点阵为24*24print_chs(上下标测试:nH);print(Oxlb) ;print(0x57) ;print(0x02);print(M);prmt(0xlb);print(0x57);print(0x01);print(Oxlc) ;print(0x72) ;print(O);print(,2,);print(OxOd);调用16*16点放大两倍打印字符M原倍上标命令打印字符2回车print(0xlb);print(0x57);print

18、(0x01);print(Oxlb) ;print(0x57) ;print(0x02);print(M);print(Oxlc) ;print(0x72) ;print(l);print (Ox lb); prin t(0x57); print (0x01);原倍放大两倍打印字符,M,上标命令原倍print(12,);print(OxOd);打印字符2回车)/横纵向 k2 /rjrj rj rj r| rjrj rj rjrjrj rjrj rj rj r| rj /指令例程void hengzhong(void)print(0xlb);print(0x40);print(0xlb);prm

19、t(0x38);prmt(0x00);阵汉字,24点阵为24*24print_chs(横纵向测试:nH);prmt(0xlc);print(0x4a);print_chs(nABCDEFGHIn);print(OxOd);调用16*16点设置纵向打印打印字符回车print(0xlb);prmt(0x40);print(0xlC);print(0x4B);print_chs(nABCDEFGHIn); print(OxOd);设置横向打打印字符回车/2 f/ rj rjrjw rj rj rj rj rjw rj rj rj rj rjw rjw 一 1定义指令例程 / r|r| r|r|w r

20、|r|r| r|w r| rj r| r|r| r| rj r|r| r|r|w r| ,void zidingyi(void)print(Oxlb) ;print(0x40);初始化指令print(Oxlb);print(0x38);print(0x00);调用 16*16 点阵汉字,24点阵为24*24print_chs(自定义字符测试:print(Oxlb) ;print(0x36);如是24点阵机器,在自定义字符前面要加一个1B 36指令才行 prmt(0xlb);print(0x57);print(2);大2倍print(0xlb);print(0x26);print(65);prm

21、t(0x02);print(0x7C);print(0x40);print(0xC0);print(0x40);prmt(0x00);横向纵向放/ESC &命令 字模数据 字模数据print(Oxlb) ;print(0x25) ;print(65) ;print(65) ;print(O);/ESC %print(65);符print(Oxlb) ;print(0x3a);/ESC:命令print(65);print(OxOd);),rjw rj打印定义字复符集中的字符图形指令例程/r| r|r| r|wr| r|r| r|r|r| r|r|w r| ,void tuxing(void)co

22、deuchar tch =0x7c,0x44,0x44,Oxff,0x44,0x44,0x7c,0x00,0x41,0x62,0 x54,0xc8,0x54,0x62,0x41;uchar i;print(Oxlb) ;print(0x40);初始化指令print(0xlb);print(0x38);print(0x00); 调用 16*16 点阵汉字,24点阵为24*24横向纵向放/ESC Kprint_chs(图形测试:nn);/print(Oxlb) ;print(0x57) ;print(2);大2倍print(0xlb);print(0x4b);prmt(15) ;print(0);

23、命令输入15个字节数据输入回车for(i=0;i rj rj rjrj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj /仅适用于热敏打印机void quxian_2(void)float X;unsigned int Y,YY;/Yl=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,

24、X;print(Oxlb) ;print(0x40);/创始化指令prmt(0xlb);print(0x38);print(0x00); 调用 16*16 点阵汉字,24点阵为24*24print_chs(“曲线 1 测试:nn);for(X=0;Xrj rjw rjw rj rjrj rj rj rj rj rj rj rjw rjw rj rjrj rjw rjw rj rj /仅适用于针式打印机void quxian_l(void)(float X;unsigned int Y,YY;/Yl=50+40*abs (-0.01*X) *sin (X/10)/Y2=50-40*abs (0.

25、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(Oxlb) ;print(0x40);初始化指令prmt(0xlb);print(0x38);print(0x00); 调用 16*16 点阵汉字,24点阵为24*24print_chs(曲线 2 测试:nn);for(X=0;X rj rjw rjw rjw rjw rjw rj rj rjw rjw rjw rjw rjw rj rj rjw rjw rj

26、转指令例程指令例程初始化指令0,90,180,270 旋转print_chs(“ 旋转测试”);旋转指汉字调出打印汉字回车trj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj /void xuanzhuan(void)(uchar i;print(0xlb);print(0x40);for(i=0;iL .,rjwrjw rj rj rj rj rjrj rj rj rj rj rjrj rj rj rj rjlx # f,rj rj rj rj rj rj rj rj rj rj rj rj rj rj rj r

27、j rj rj rj rj rj rj rj rj /void fanbai(void)uchar i;print(0xlb);print(0x40);for(i=0;i / rj rjw r| rj rj rj rj rjw r| rj rjrj r| r| rj rjw rjrj rjw rjw r| rj rj rj r| rj ,void fanxiang(void)uchar i;print(0xlb);prmt(0x40);for(i=0;irj rj rjw rjrj/ rjwrjwrj rjw rjwrjw/只有部分型号的打印机支持此指令 void tiaoma(void)pr

28、int(0xlb);print(0x40);print(0xld);print(0x72);print(0x01);符print(Oxld) ;print(0x68) ;print(0x60);度为96点初始化指令打印条码字设置条码高print(Oxld) ;print(0x6B) ;print(0x45);print(8);打 印长 度为8的CODE39码print(0x2a) ;print(0x31) ;print(0x32) ;print(0x34) ;print(0x3 5);print(0x37);print(0x36);print(0x2a); /CODE39 码数据print(O

29、xOd);回车打印print(Oxld) ;print(0x6B) ;print(3);EAN13 码print(0x32);prmt(0x37);print(0x30);print(0x38);priiit(0x3 5) ;print(0x38);print(0x35) ;print(0x30); /EAN13 码数据print(0x30) ;print(0x39) ;print(0x32) ;print(0x34) ;print(0x38);print(0x00);回车print(OxOd);)Main()com_init(); hanzitest(); hangjianju(); shuipingzhaobiao(); konggehuanhang(); youxian();fangda(); huaxian(); shangxiabiao(); hengzhong(); zhuoxian();zidingyi(); tuxing();quxian_20; 如用针打打印机将此函数去掉 quxian_l(); 如用热敏打印机将此函数去掉xuanzhuan();fanbai();fanxiang();tiaoma();print(OxOd);回车print(OxOd);print(OxOd);回车while(l);循环/死)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1