您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 单片机控制打印机例程(北京荣达-并口)
/*********************************************************//新荣达电子打印机测试程序//51单片机,晶振11.0592//时间:2009-7-10//用与测试并行接口打印机//常用打印机指令以函数行式体现//可根据需要自行调用单一函数**********************************************************/#includereg52.h//51头文件#includestring.h//字串处理函数头文件#includemath.h#defineucharunsignedcharsbitBUSY=P3^4;//并口打印机的BUSY,串口打印机的CTSsbitSTB=P3^5;//打印机STB接P3.5unsignedchardat[]=新荣达电子测试程序,ABCDEFG123456;//测试数据//---------------------单字节打印函数-------------------------voidprint(unsignedcharch){while(BUSY==1)//busy为1时,等待{;}P1=ch;//busy=0,将数据送到P1口STB=0;//STB置0;;//空语句,延时使STB1umSTB=1;//STB置1}/***************************打印字串函数**********************************/voidprint_chs(ucharch[]){uchari;for(i=0;istrlen(ch);i++)print(ch[i]);}/*************************汉字打印例程***************************************/voidhanzitest(void){uchari;print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print_chs(汉字命令测试:\n);for(i=0;i5;i++)//搋环打印5次{print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print(0xd0);print(0xc2);//打印数据新print(0x1b);print(0x38);print(0x04);//调用12*12点阵汉字,24点阵为24*24print(0xc8);print(0xd9);print(0xb4);print(0xef);//打印数据“荣达”print(0x0d);//回车}}/*************************行间距例程************************************/voidhangjianju(void){uchari;print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print_chs(行间距测试:\n);for(i=0;i11;i=i+2)//循环打印{print(0x1b);print(0x31);print(i);//ESC1,设置行间距print_chs(LINESPACING);print(0x0a);//打印字符串和换行}}/*************************水平造表例程***************************************/voidshuipingzhaobiao(void){print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print_chs(水平造表测试:\n);print_chs(1234567890123456);//'标尺print(0x0d);print(0x1b);print(0x44);print(2);print(9);print(14);print(0);//ESCDprint(9);//HT命令print_chs(HT1);//打印字符串print(9);//HT命令print_chs(HT2);//打印字符串print(9);//HT命令print_chs(HT3);//打印字符串print(0x0d);}/*************************打印空格或换行例程**********************************/voidkonggehuanhang(void){print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print_chs(换行或空格测试:\n);print_chs(TE);//打印字符串“TE”print(0x1b);print(0x66);print(0);print(0x06);//空六格print_chs(ST);//打印字符串“ST”print(0x0d);//回车print_chs(TE);//打印字符串“TE”print(0x1b);print(0x66);print(0x01);print(0x06);//换6行print_chs(ST);//打印字符串“ST”print(0x0d);//回车}/*************************右限例程**********************************/voidyouxian(void){print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print_chs(右限测试:\n);print_chs(12345678901234567890123456789012);//标尺print(0x1b);print(0x51);print(0x06);//ESCQ命令,右限为6print_chs(12345678901234567890123456789012);//打印字串print(0x0d);//回车}/*************************左限例程**********************************/voidzhuoxian(void){print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print_chs(左限测试:\n);print_chs(12345678901234567890123456789012);//标尺print(0x1b);print(0x6c);print(0x06);//ESCI命令,左限为6print_chs(12345678901234567890123456789012);//打印字串print(0x0d);//回车}/*************************放大指令例程**********************************/voidfangda(void){uchari;print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print_chs(放大测试:\n);for(i=1;i4;i++)//从1到3倍{print(0x1b);print(0x55);print(i);//横向放大print_chs(RD);//打印字符}print(0x0d);//回车命令print(0x1b);print(0x40);//初始化打印机for(i=1;i4;i++)//从1到3倍{print(0x1b);print(0x56);print(i);//纵放命令print_chs(RD);//打印字符print(0x0d);//回车}print(0x1b);print(0x40);//初始化打印机for(i=1;i4;i++)//从1到3倍{print(0x1b);print(0x57);print(i);//横纵向同时放大print_chs(RD);//打印字符print(0x0d);//回车}}/*************************划线指令例程**********************************/voidhuaxian(void){print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print_chs(划线测试:\n);print(0x1b);print(0x57);print(2);//放大两倍打印,便于观察划线print_chs(RD);//打印字串print(0x1b);print(0x2d);print(1);//允许下划线打印print_chs(UPT);//UPT打印下划线print(0x1b);print(0x2d);print(0);//禁止下划线打印print_chs(RD);//打印字串print(0x0d);//回车print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x57);print(2);//放大两倍打印,便于观察划线print_chs(RD);//打印字串print(0x1b);print(0x2b);print(1);//允许上打印线打印print_chs(UPT);//UPT上打印上划线print(0x1b);print(0x2b);print(0);//禁止上划线print_chs(RD);//打印字串print(0x0d);//打印回车}/*************************上下标指令例程**********************************/voidshangxiabiao(void){print(0x1b);print(0x40);//初始化打印机print(0x1b);print(0x38);print(0x00);//调用16*16点阵汉字,24点阵为24*24print_chs(上下标测试:\n);print(0x1b);print(0x57);print(0x02);//放大两倍print('M');//打印字符'M'print(0x1b);print(0x57);print(0x01);//原倍print(0x1c);print(0x72);print(0);//上标命令print('2');//打印字符'2'print(0x0d);//回车print(0x1b);print(0x57);print(0x01);//原倍print(0x1b);print(0x57);print(0x02);//放大两倍print('M');//打印字符'M'print(0x1c);print(0x72);print(1);//上标命令print(0x1b);print(0x57);print(0x01);//原倍print('2');//打印字符'2'print(0x0d);//回车}/*************************横纵向指令例程*************
本文标题:单片机控制打印机例程(北京荣达-并口)
链接地址:https://www.777doc.com/doc-2594418 .html