串口模块测试

/*******************************************************


程序功能:串口模块测试


开发环境:Keil4


硬件环境:CEPARK多功能开发学习板/实验箱(2013版),STC12C5A60S2,12M晶振
  
接线说明:单片机P31接底板JP8的TX1,单片机P30接底板JP8的RX1。
          串口线接DB1串口母座。


跳线说明:无


实验现象:打开串口助手,波特率为9600.字符方式显示。
          按下核心板复位按键,串口助手显示:welcome to china.
          
 




*******************************************************/


#include "STC12C5A60S2.h"




void UART_Init(void);
void UART_Send_Byte(unsigned char ucData);
void UART_Send_Str(char *pStr);
void UART_Send_Enter(void);


void main(void)
{
UART_Init();
UART_Send_Byte(11);
UART_Send_Str("welcome to china.");
UART_Send_Enter();
while(1);
}




//12MHZ 9600波特率,定时器1T方式,串口1,波特率倍数开启
void UART_Init(void)
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xfe; //串口1选择定时器1为波特率发生器
TMOD &= 0x0f; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xB2; //设定定时初值
TH1 = 0xB2; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1


}




/**************************************************************************
 - 功能描述:51单片机的串口发送字节的函数
 - 隶属模块:STC51串口操作
 - 函数属性:外部,使用户使用
 - 参数说明:ucData:要发送的一个字节
 - 返回说明:无
 - 注:发送一个字节,是串口发送的基础操作
 **************************************************************************/


void UART_Send_Byte(unsigned char ucData)
{
 TI = 0;
 SBUF = ucData;
 while(!TI);
 TI = 0;
}


/**************************************************************************
 - 功能描述:51单片机的串口发送0d 0a ,即回车换行
 - 隶属模块:STC51串口操作
 - 函数属性:外部,使用户使用
 - 参数说明:无
 - 返回说明:无
 - 注:此函数就是发送0d 0a这两个字节,在“超级终端”上会有回车换行的效果
 **************************************************************************/


void UART_Send_Enter()
{
 UART_Send_Byte(0x0d);
 UART_Send_Byte(0x0a);
}


/**************************************************************************
 - 功能描述:51单片机的串口发送字符串
 - 隶属模块:STC51串口操作
 - 函数属性:外部,使用户使用
 - 参数说明:s:指向字符串的指针
 - 返回说明:无
 - 注:发送完一条字符串,回车
 **************************************************************************/


void UART_Send_Str(char *pStr)
{
    
while(*pStr != '\0')
{
UART_Send_Byte(*pStr++);
}
UART_Send_Enter();


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值