哪位大侠会用51单片机控制串口打印机的接线图,简单打印程序(C语言)
单片机的RXD、TXD通过电平转换芯片MAX232,接到热敏打印机串口的TXD、RXD,GND--GND再接上5v电源程序是串口例程:/*****************...
单片机的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)
{;}
}
可是下载到单片机后,打印机不打印呢?
请成功用过单片机控制热敏打印机的大侠帮助我 展开
接到热敏打印机串口的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)
{;}
}
可是下载到单片机后,打印机不打印呢?
请成功用过单片机控制热敏打印机的大侠帮助我 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询