标题:
移植简单软件串口打印函数 STC单片机串口助手的hex转换成文本模式
[打印本页]
作者:
电阻不接地
时间:
2018-10-19 14:15
标题:
移植简单软件串口打印函数 STC单片机串口助手的hex转换成文本模式
为了确保移植成功,有必要在 "soft_uart.h"的文件下进行以下步骤的更改:
|
|
|
V
/********************特别注意***************************/
该软件串口打印可以定义任何一个IO口输出数据
波特率固定为9600
该软件串口只适用与15系列的单片机
/********************特别注意***************************/
1.先将头文件和点C文件添加到你需要添加的文件中如:
#include "soft_uart.c"
#include "soft_uart.h"
2.打开soft_uart.h文件,因为不同的系统时钟不同,需要在soft_uart.h文件中配置为相应的主时钟,这里因为我的程序是11.0592进行了二分频,所以我选择5529600L,用户根据自己的配置进行相应的选择。
//#define MAIN_Fosc 22118400L //定义主时钟
//#define MAIN_Fosc 12000000L //定义主时钟
//#define MAIN_Fosc 11059200L //定义主时钟
#define MAIN_Fosc 5529600L //定义主时钟
//#define MAIN_Fosc 24000000L //定义主时钟
/*********************************************************/
3.还需要根据芯片的型号进行更改头文件。
//#include "STC15Fxxxx.H"
#include "STC15F2K60S2.h"
0.png
(38.04 KB, 下载次数: 45)
下载附件
2018-10-19 19:16 上传
单片机源程序如下:
/************* 功能说明 **************
本文件为模拟串口发送程序, 一般为测试监控用.
串口参数:9600,8,n,1.
可以根据主时钟自动适应.
******************************************/
#include "soft_uart.h"
sbit P_TXD = P3^1; //定义模拟串口发送端,可以是任意IO
//========================================================================
// 函数: void BitTime(void)
// 描述: 位时间函数。
// 参数: none.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//========================================================================
void BitTime(void)
{
u16 i;
i = ((MAIN_Fosc / 100) * 104) / 130000L - 1; //根据主时钟来计算位时间
while(--i);
}
//========================================================================
// 函数: void TxSend(uchar dat)
// 描述: 模拟串口发送一个字节。9600,N,8,1
// 参数: dat: 要发送的数据字节.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//========================================================================
void TxSend(u8 dat)
{
u8 i;
EA = 0;
P_TXD = 0;
BitTime();
for(i=0; i<8; i++)
{
if(dat & 1) P_TXD = 1;
else P_TXD = 0;
dat >>= 1;
BitTime();
}
P_TXD = 1;
EA = 1;
BitTime();
BitTime();
}
//========================================================================
// 函数: void PrintString(unsigned char code *puts)
// 描述: 模拟串口发送一串字符串。9600,N,8,1
// 参数: *puts: 要发送的字符指针.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//========================================================================
void PrintString(unsigned char code *puts)
{
for (; *puts != 0; puts++) TxSend(*puts);
}
void printdec_soft(int dec) //打印十进制的数据出来
{
char buff_numb[5]={0},i=0,j;
if(dec==0)
{
TxSend( (char)( '0'));//48
TxSend( (char)('\r'));
TxSend( (char)('\n'));
}
else
{
while(dec!=0)
{
buff_numb[i++]=dec%10; //从个位开始读入
dec=dec/10;
}
for(j=i-1;j>=0;j--)
{
TxSend( (char)(buff_numb[j] + '0'));//48
}
TxSend( (char)('\r'));
TxSend( (char)('\n'));
}
}
void printdec_softtm(int dec) //打印十进制的数据出来
{
char buff_numb[5]={0},i=0,j;
if(dec==0)
{
TxSend( (char)( '0'));//48
}
else
{
while(dec!=0)
{
buff_numb[i++]=dec%10; //从个位开始读入
dec=dec/10;
}
for(j=i-1;j>=0;j--)
{
TxSend( (char)(buff_numb[j] + '0'));//48
}
}
}
复制代码
全部资料51hei下载地址:
移植简单软件串口打印函数.zip
(2.15 KB, 下载次数: 13)
2018-10-19 14:15 上传
点击文件名下载附件
STC串口助手的hex转换成文本模式
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1