原创 WJ-V2.0实验板实验例程七:串口发送多个字节数据

2009-12-13 22:41 1602 5 5 分类: MCU/ 嵌入式

/*********** (C) COPYRIGHT 2009 http://www.wang1jin.com ************
* 文件名称: main.c
* 程序作者: wish_btn
* 程序版本: V1.0
* 编制日期: 12-12-2009
* 功能描述: 串口发送多个字节数据
* 编译器:Keil C uVision4
* 芯片:STC89C52,11.0592M晶振
* 技术支持:http://www.wang1jin.com
*
* 提供原创51单片机、PROTEL99SE视频教程下载,欢迎大家前往论坛下载。
* 论坛地址: http://www.wang1jin.com/bbs/
******************** http://www.wang1jin.com **********************/


#include <REGX52.H>


void Delay(unsigned int uiCount); //延时函数
void RS232_Init(void); //初始化
void RS232_SendOneChar(unsigned char DataToSend); //发送一个字符
void RS232_SendString(unsigned char *str); //发送字符串
void RS232_SendNewLine(void); //发送换行


/******************* http://www.wang1jin.com **********************
* 函数名称: main
* 功能描述: main函数,程序入口
* 输入参数: 无
* 返回参数: 无
**********************************************************************/
void main(void)
{
RS232_Init();
Delay(10); //无用


RS232_SendString("This is a serial communicatiom test!-written by : wish_btn");
RS232_SendNewLine();
RS232_SendString("这是一个串口通讯的测试程序-作者:wish_btn");
RS232_SendNewLine();


while(1)
{


}
}


/******************* http://www.wang1jin.com **********************
* 函数名称: RS232_Init
* 功能描述: 串口初始化
* 输入参数: 无
* 返回参数: 无
**********************************************************************/
void RS232_Init(void)
{
TMOD = 0x20; //定时器1模式2
TH1 = 0xFD; //装初值3设定波特率9600
TL1 = 0xFD;
TR1 = 1; //使能定时器1
SM0 = 0;
SM1 = 1; //串口工作模式
REN = 1; //串行口允许接受数据
EA = 1; //使能全局中断
// ES = 1; //使能串口中断
}


/******************* http://www.wang1jin.com **********************
* 函数名称: RS232_SendOneChar
* 功能描述: 串口发送一个字节
* 输入参数: DataToSend
* 返回参数: 无
**********************************************************************/
void RS232_SendOneChar(unsigned char DataToSend)
{
SBUF = DataToSend;
while(!TI);
TI = 0;
}


/******************* http://www.wang1jin.com **********************
* 函数名称: RS232_SendString
* 功能描述: 串口发送一个字节串
* 输入参数: *str
* 返回参数: 无
**********************************************************************/
void RS232_SendString(unsigned char *str)
{
while(*str != '\0')
{
RS232_SendOneChar(*str);
str++;
}
}


/******************* http://www.wang1jin.com **********************
* 函数名称: RS232_SendNewLine
* 功能描述: 发送回车换行
* 输入参数: 无
* 返回参数: 无
**********************************************************************/
void RS232_SendNewLine(void)
{
RS232_SendOneChar(0x0D);
RS232_SendOneChar(0x0A);
}
/******************* http://www.wang1jin.com **********************
* 函数名称: Delay
* 功能描述: 延时函数
* 输入参数: uiCount
* 返回参数: 无
**********************************************************************/
void Delay(unsigned int uiCount)
{
while(uiCount--);
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条