⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rxd8951.c

📁 两个单片机之间的通信
💻 C
字号:
/*******************************************************************************
 *
  * 文件名称:rxd8951.c
 *
  * 功能描述:串口接收数据,并显示相应数据。
 *			  接收到呼叫号后,发送应答号
			  通信建立,开始数据传输         
 *
  * 开发环境:IDE为Keil uVision3 v8.09a。MCU为AT89S52,晶振频率12M。
 *
  * 文件版本 v1.0
 *
  * 创建时间:2008/10/20 
 *
  * 修改记录:无
 *
 ******************************************************************************/
#include <reg51.h>

void delay(unsigned int i)	/*用来短暂延时。延时时间为每循环一次为14us,总循环时间再加上14us为延时时间*/
{
	while(i--);
}
/*******************************************************************************
 *
 * 描述: 串口通信初始化,设置串口工作在模式1下,接收使能,使用Timer1工作在模式2下,
 *		 波特率2400
 *
 * 参数: 无
 *
 * 返回: 无
 *
 ******************************************************************************/
void init_serialcom()
{	SCON=0x50;
	TMOD=0x20;
	TH1=0xF3;
	TL1=0xF3;
	TR1=1;
}
/*******************************************************************************
 *
 * 描述: 向串口发送一个字符或一个字节。
 *
 * 参数: ch      待发送字符或字节
 *
 * 返回: 无
 *
 ******************************************************************************/
void send_char_com(unsigned char ch)
{	SBUF=ch;
	while(TI==0);
	TI=0;
}
/*******************************************************************************
 *
 * 描述: 向串口发送一个字符串或多个字节。
 *
 * 参数: str      待发送字符串或多字节首地址
 *		 strlen   待发送字符串或多字节长度
 *
 * 返回: 无
 *
 ******************************************************************************/
void send_string_com(unsigned char *str,unsigned int strlen)
{	unsigned int k=0;
	do
	{
		send_char_com(*(str+k));
		k++;
	}while(k<strlen);
}


main()
{	unsigned char response=0;	  //判断通信是否建立用
	unsigned char num;
	init_serialcom();
	
	do
	{
		while(!RI);			  //判断是否接收完毕,完毕(RI=1)开始发送应答
		RI=0;
		response=SBUF;		
	}while(response!=0x99);
	num=0x01;				  //呼叫号01H
	send_char_com(num);		  //发送呼叫号01H

	while(1)
	{	while(!RI);			  //等待数据接收
		RI=0;
		P0=SBUF;			  //显示接收到的数据
		delay(200);
	
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -