哪位大侠会用51单片机控制串口打印机的接线图,简单打印程序(C语言)

单片机的RXD、TXD通过电平转换芯片MAX232,
接到热敏打印机串口的TXD、RXD,
GND--GND
再接上5v电源
程序是串口例程:
/*********************************************************
// 新荣达电子打印机测试程序
// 51单片机,晶振11.0592
// 时间:2009-7-10
// 用与测试串行接口打印机
// 常用打印机指令以函数行式体现
// 可根据需要自行调用单一函数
**********************************************************/
#include<reg52.h> //51头文件
#include<string.h> //字串处理函数头文件
#include<math.h>
#include< intrins.h>

#define uchar unsigned char
sbit BUSY=P1^0; //并口打印机的BUSY,串口打印机的CTS
/**************************单字节打印函数************************************/
void print(unsigned char ch)
{

// while (BUSY==1) /sy为1时,等待,如数据量小,可不判BUSY
// {;}
SBUF= ch; /sy=0,将数据送到P1口
while(TI==0) //当TI为0时,表示数据未发送完成,一直等待,直到为1
{;}
TI=0; //将TI清0
}

/*********************串口初始化**********************************************/
void com_init(void)
{
TH1=0XF4; //波特率值装入计数器,2400BPS
// TH1=0XF4; //波特率值装入计数器,9600BPS
TMOD=0X20; //串口设置,定时器1,设为方式2,8位自动重载,用于产生波特率
SCON=0X50; //串口发送方式1,8位数据位,1位停止位
TR1=1; //开启定时器1
}
/**********************字符打印函数********************************************/
void print_chs(uchar ch[])
{
uchar i;
for(i=0;i<strlen(ch);i++)
print(ch[i]);
}

Main()
{

uchar chs[]="新荣达电子测试\n";
com_init();
print_chs(chs);
while(1)
{;}
}
可是下载到单片机后,打印机不打印呢?
请成功用过单片机控制热敏打印机的大侠帮助我

你要先用标准PC串口软件来模拟,成功了再移植到单片中工作。追问

您用过单片机控制微型热敏打印机吗?

追答

只需要关心指令、BPS、校验等串口特征数据。
你可以做个监控设备来监视你的数据是否正确即可,不用关心具体外设是打印机或是别的什么,他们在出厂前已有调试和检测。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-06
具体是什么情况呢?请明示!我这里有一些资料,需要可以来找我,随时都在线,等待回复。如果不在线,可以给我留言,看到到马上回复。
相似回答