51单片机串口通信(自动发送)

51单片机串口通信(自动发送)

51单片机的串口通信,本次实验程序是实现字符的自动发送,该程序可以移植到其它项目程序进行使用,本人通过调试,程序无错误并实现了预期的功能,希望该程序能够给大家带来一些帮助。

//**********************************************************
//定义单片机的一些特殊功能寄存器
#include "reg52.h"			
#define uchar unsigned char
#define uint unsigned int

//**********************************************************
//延时函数
	void us_delay(uint t) 
{  
	while(t--); 
	while(t--); 
}
//************************************************************
//串口设置
void UsartInit()
{
	SCON=0X50;			//设置为工作方式1
	TMOD=0X20;			//设置计数器工作方式2
	PCON=0X80;			//波特率加倍
	TH1=0XF3;				//计数器初始值设置,注意波特率是4800的
	TL1=0XF3;
	ES=1;						//打开接收中断
	EA=1;						//打开总中断
	TR1=1;					//打开计数器
}
//********************************************************************
//串口发送程序
void Send_Uart(uchar value)    //串口发送函数
{  
	ES=0;  						//关闭串口中断   
	SBUF=value; 				//发送  
	while(!TI); 				//等待发送完毕   
	TI=0;   					//清发送完毕中断请求标志位   
	ES=1;  						//允许串口中断  
} 
//******************************************************************
// 用来发送字符串的函数 
void HB_Set( uchar *puf)             
{    
	while(*puf!='\0')    		
	{   
		Send_Uart(*puf);  		 
		us_delay(10);   
		puf++;    
	}  
	us_delay(10);  
	Send_Uart('\r'); 			
	us_delay(10);  
	Send_Uart('\n');   			 
}
//***************************************************************
//主函数
void main()
{
	UsartInit() ;
	while(1)
	{
  HB_Set("这么有钱");
	}
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值