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

📄 fasong.c

📁 多点温湿度无线测量系统
💻 C
字号:
//-----------------------函数声明,变量定义--------------------------------------------------------
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar RECEIVR_buffer,flag=0;
sbit	SETB	=P2^0;  
sbit	SETA	=P2^1;

sbit	AUX		=P2^2;      //状态

//===========================工作模式0===============================
void UTC1212_MODE0(void)
{
	 SETA=0;SETB=0;
}
//===========================工作模式1===============================
void UTC1212_MODE1(void)
{
	 SETA=0;SETB=1;
}
//===========================工作模式2================================
void UTC1212_MODE2(void)
{
	 SETA=1;SETB=0;
}
//============================工作模式3===============================
void UTC1212_MODE3(void)
{
	 SETA=1;SETB=1;
}
//--------------------------------------------------------------------------------------------------
// 函数名称: com_interrup()串口接收中断处理函数
// 函数功能: 接收包括起始位'S'在内的十位数据到数据缓冲区
//--------------------------------------------------------------------------------------------------
/*com_interrupt(void) interrupt 4 using 3
{
  unsigned char RECEIVR_buffer;
  if(RI)                                //处理接收中断
  {
		  RI=0;                                //清除中断标志位
		  RECEIVR_buffer=SBUF;		          //接收串口数据
	if(RECEIVR_buffer==0x01)
		{
			P0=seg[1];RECEIVR_buffer=0;
		}
	if(RECEIVR_buffer==0x02)
		{
			P0=seg[2];RECEIVR_buffer=0;
		}
}
} */
//--------------------------------------------------------------------------------------------------
// 函数名称: UART_init()串口初始化函数
// 函数功能: 在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s
//            串口接收中断允许,发送中断禁止
//--------------------------------------------------------------------------------------------------
void UART_init()
{
                     //初始化串行口和波特率发生器 
	SCON =0x50;          //选择串口工作方式,打开接收允许
	TMOD =0x20;          //定时器1工作在方式2,定时器0工作在方式1
	TH1 =0xfd;           //实现波特率9600(系统时钟11.0592MHZ)
	TL1 =0xfd;
	TR1 =1;              //启动定时器T1
	//ET1 =0; 
	ES=1;                //允许串行口中断
	PS=1;                //设计串行口中断优先级
	EA =1;               //单片机中断允许
}
//--------------------------------------------------------------------------------------------------
// 函数名称: R_S_Byte()串口初始化函数
// 函数功能: 在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s
//            串口发送数据
//--------------------------------------------------------------------------------------------------
void R_S_Byte(unsigned char R_Byte)
{	
	 SBUF = R_Byte;  
     while( TI == 0 );				//查询法
  	 TI = 0;
     
}

   void delay1ms()
{
   unsigned char i,j;	
	 for(i=0;i<10;i++)
	  for(j=0;j<33;j++)
	   ;		 
 }

//------------------------------------------------------------------------------------------
// 函数名称: 主函数
// 函数功能: 调度个子函数,完成通信过程
//--------------------------------------------------------------------------------------------------
void main(void)
{
   P3=0xfe;
   UART_init();						 //初始化串口
   UTC1212_MODE0();
   while(1)
   {
  	R_S_Byte(0x05);
	 delay1ms();
	   delay1ms();
	 delay1ms();
	   delay1ms();	 
    }
}

  //--------------------------------------------------------------------------------------------------
// 函数名称: com_interrup()串口接收中断处理函数
// 函数功能: 接收包括起始位'S'在内的十位数据到数据缓冲区
//--------------------------------------------------------------------------------------------------
com_interrupt(void) interrupt 4 
{
  ES=0;
  flag=1;
  RI=0;               //清除中断标志位
  RECEIVR_buffer=SBUF;	   //接收串口数据		          
}


⌨️ 快捷键说明

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