单片机控制打印机例程(北京荣达-串口)_第1页
单片机控制打印机例程(北京荣达-串口)_第2页
单片机控制打印机例程(北京荣达-串口)_第3页
单片机控制打印机例程(北京荣达-串口)_第4页
单片机控制打印机例程(北京荣达-串口)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、./* / 新荣达电子打印机测试程序/ 51 单片机,晶振11.0592 / 时间: 2009-7-10 / 用与测试串行接口打印机/ 常用打印机指令以函数行式体现/ 可根据需要自行调用单一函数*/ #include /51 头文件#include /字串处理函数头文件#include #define uchar unsigned char sbit busy=p34; /并口打印机的busy ,串口打印机的cts /*单字节打印函数*/ void print(unsigned char ch) while (busy=1) /busy 为 1 时,等待 ,如数据量小,可不判busy ; sb

2、uf= ch; /busy=0,将数据送到p1 口while(ti=0) /当 ti 为 0 时,表示数据未发送完成,一直等待,直到为1 ; ti=0; /将 ti 清 0 /*串口初始化 */ void com_init(void) th1=0xfd; /波特率值装入计数器,9600bps tmod=0x20; /串口设置,定时器1,设为方式2,8 位自动重载,用于产生波特率scon=0x50; /串口发送方式1, 8 位数据位, 1 位停止位tr1=1; /开启定时器1 /*字符打印函数*/ 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); /调用 16*16 点阵汉字, 24 点阵为 24*24 print_chs( 汉字命令测试:n); .for(i=0;i5;i+) /搋环打印5次 print(0 x1b);print(0 x38);print(0 x00); /调用 16*16 点阵汉字, 24 点阵为 24*24 print(0 xd0);print(

4、0 xc2); /打印数据 新 print(0 x1b);print(0 x38);print(0 x04); /调用 12*12 点阵汉字, 24 点阵为 24*24 print(0 xc8);print(0 xd9);print(0 xb4);print(0 xef); /打印数据“荣达”print(0 x0d); /回车 /*行间距例程 */ void hangjianju(void) uchar i; print(0 x1b);print(0 x40); /初始化打印机print(0 x1b);print(0 x38);print(0 x00); /调用 16*16 点阵汉字, 24

5、点阵为 24*24 print_chs( 行间距测试:n); for(i=0;i11;i=i+2) /循环打印 print(0 x1b);print(0 x31);print(i); /esc 1,设置行间距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); /调用 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); /调用 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); /调用 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); /调用 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); /调用 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); /调用 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); /打印回车 /*上下标指令例程*/ void shangxiabiao(void) print(0 x1b);print(0 x40); /初始化打印机print(0 x1b);print(0 x38);print(0 x00); /调用 1

14、6*16 点阵汉字, 24 点阵为 24*24 print_chs( 上下标测试: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); /上标命令.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); /上标命令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); /调用 16*16 点阵汉字, 24 点阵为 24*24 print_chs( 横纵向测试:

16、n); print(0 x1c);print(0 x4a); /设置纵向打印print_chs(abcdefghi); /打印字符print(0 x0d); /回车print(0 x1b);print(0 x40); print(0 x1c);print(0 x4b); /设置横向打印print_chs(abcdefghi); /打印字符print(0 x0d); /回车 /*自定义指令例程*/ void zidingyi(void) print(0 x1b);print(0 x40); /初始化指令print(0 x1b);print(0 x38);print(0 x00); /调用 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); /字模数据print(0 xc0);print(0 x40);print(0 x00); /字模数据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); /复符集中的字符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); /调用 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 个字节数据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、); /调用 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); /调用 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); /*旋转指令例程*/ void xuanzhuan(void) uchar i;

24、 print(0 x1b);print(0 x40); /初始化指令for(i=0;i4;i+) /0,90,180,270 旋转 print(0 x1c);print(0 x49);print(i); /旋转指令print(0 x1b);print(0 x38);print(0); /汉字调出指令print_chs( 旋转测试 ); /打印汉字 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论