共享我写的微型热敏打印机驱动
因为项目中用到了微型打印机,所以调试了一下,驱动挺简单的,发上来大家分享一下,o(∩_∩)o...//----------------------------main.c--------------------------------------------------------------
/*******************************************************************************
* * 微型打印机驱动
* *功 能:驱动北京荣达创新公司的RD-D32_SN-24型热敏微型打印机
* *芯 片:mega16
* *作 者:莫锦攀
* *时 间:2008.4.23
* *备 注:底层驱动由串口驱动提供
******************************************************************************/
#include <iom16v.h>
#include "printf.h"
void main(void)
{
unsigned char i;
Printf_Init();
Printf_String("同期电压: 28V");
Printf_String("同期相位: 2度");
Printf_String("同期频率:48.22HZ");
Printf_String("同期误差:-156ms");
Printf_String("导前时间:156ms");
Printf_String(" 实 验 记 录 01");
while(1)
{
}
}
/-------------------------------------------printf.c-------------------------------------------
/*******************************************************************************
* * 微型打印机驱动
* *功 能:驱动北京荣达创新公司的RD-D32_SN-24型热敏微型打印机
* *芯 片:mega16
* *作 者:莫锦攀
* *时 间:2008.4.23
* *备 注:底层驱动由串口驱动提供
******************************************************************************/
#include "printf.h"
/*******************************************************************************
**函数名称:Printf_Init()
**函数功能:初始化打印机
**函数入口:无
**函数出口:无
*******************************************************************************/
void Printf_Init(void)
{
init_USART();//初始串口
put_c(0x1b);
put_c(0x40);//初始化打印机
}
/*******************************************************************************
**函数名称:Printf_Cn()
**函数功能:打印一个汉字
**函数入口:*cn
**函数出口:无
*******************************************************************************/
void Printf_Cn( unsigned char *cn)
{
unsigned int len;
unsigned int k;
len = Length_Printf_GB();
for(k=0;k<len;k++)
{
if(cn == Printf_GB.Index && cn == Printf_GB.Index)
break;
}
put_c(0x1b);//选择16*16点阵汉字打印
put_c(0x38);
put_c(0x00);
put_c(0x1b);//横向放大两倍
put_c(0x57);
put_c(0x02);
put_c(Printf_GB.Msk);
put_c(Printf_GB.Msk);
}
/***********************************************************************************************
**函数名称:Printf_En()
**函数功能:打印一个字符
**函数入口:en
**函数出口:无
***********************************************************************************************/
void Printf_En(unsigned char en)
{
put_c(0x1b);//选择字符集1
put_c(0x36);
put_c(0x1b);//放大4倍
put_c(0x57);
put_c(0x04);
put_c(en); //输出字符
}
/***********************************************************************************************
**函数名称:Printf_String()
**函数功能:
**函数入口:
**函数出口:无
***********************************************************************************************/
void Printf_String( unsigned char*p)
{
unsigned char i=0;
while(p>0)
{
if(p < 128)// ASCII
{
Printf_En(p);
}
else // 中文
{
Printf_Cn(&p);
i++;
}
i++;
}
}
//---------------------------font.c---------------------------------------------------------
/*******************************************************************************
* * 字库文件
* *功 能:为打印机提供字模转换
* *芯 片:mega16
* *作 者:莫锦攀
* *时 间:2008.4.23
* *备 注:
******************************************************************************/
#include "font.h"
typFNT_Printf_GB const Printf_GB[]=
{
"实",0xCA,0xB5,
"验",0xD1,0xE9,
"记",0xBC,0xC7,
"录",0xC2,0xBC,
"导",0xB5,0xBC,
"前",0xC7,0xB0,
"时",0xCA,0xB1,
"间",0xBC,0xE4,
"同",0xCD,0xAC,
"期",0xC6,0xDA,
"误",0xCE,0xF3,
"差",0xB2,0xEE,
"频",0xC6,0xB5,
"率",0xC2,0xCA,
"相",0xCF,0xE0,
"位",0xCE,0xBB,
"电",0xB5,0xE7,
"压",0xD1,0xB9,
"度",0xB6,0xC8,
};
/*******************************************************************************
**函数名称:Length_GB()
**函数功能:计算字库大小
**函数入口:无
**函数出口:len
*******************************************************************************/
unsigned int Length_Printf_GB(void)
{
unsigned int len;
len = sizeof(Printf_GB)/sizeof(Printf_GB);
return len;
}
点击此处下载 ourdev_259586.rar(文件大小:32K) (原文件名:printf.rar)
点击此处下载 ourdev_259582.PDF(文件大小:716K) (原文件名:RD-D型微打使用说明.PDF)
点击此处下载 ourdev_259583.rar(文件大小:3K) (原文件名:区位码取模软件.rar)
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_259584.JPG
(原文件名:DSC00902.JPG)
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_259585.JPG
(原文件名:DSC00903.JPG) 帅呆了. 我以为是打印机的解码程序呢,原来是发数据给打印机的. 记号 GZ 哇噻!07:10:26
这么早啊!早起的鸟儿有虫吃,呵呵.... mark 好! mark mark 楼主不会是我的校友吧? 早起的鸟儿有虫吃,早起的虫子被鸟吃 顶 MARK 在写 参考下LZ的 mark mark mark 共享我写的微型热敏打印机驱动
记号。 mark 偶也以为是打印机精工之类的热敏头以及切刀的驱动控制程序,原来是通过串口直接发数据给打印机打印而已啊。标题误导。 mark mark 这也值得吹嘘一番。。。。 非常不错 记号 共享我写的微型热敏打印机驱动
mark MARK mark mark 不错,现在基本上都是ESC/POS命令集。 谢谢,正在学习。 不会就是永单片机控制打印机吧,这么神奇啊!是不是吧打印机的USB线接到单片机上,加上驱动程序就可以实现通信,并且打印东西了? LZ是不是其他打印机也差不多是这样控制? 还需要为打印机提供字模转换 ,没有字库么? {:smile:}好资料 mark 谢谢分享 Mark!!! 谢谢分享{:smile:} 强力留名! mark!北京荣达 这个不是热敏打印机驱动,只是一个用串口发命令的程序 热敏打印机开发技术交流群282313357,欢迎加入交流,只限技术 不错。支持 不错不错,收藏下,看看 不错,顶 mark顶一下 mark,thanks 学习,谢谢 mark LZ真厉害啊,非常佩服啦,正好近期要用这个东西,借鉴了,呵呵 好东西,正好用到,感谢 晕,以为是打印机内部控制程序啊,这个只是串口发字符命令的啊 哎呦,最近也要做一个,不懂怎么入手,EPSON TM-T82II chenjia8412 发表于 2012-12-20 22:48
**** 作者被禁止或删除 内容自动屏蔽 ****
哥们,TM-T82II咋搞 chenjia8412 发表于 2012-12-20 22:48
**** 作者被禁止或删除 内容自动屏蔽 ****
群已经满了,你们还有其他交流渠道吗? 正好用到,记号。
页:
[1]