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

📄 usart.c

📁 单片机 和PC机的通信代码
💻 C
字号:
#include <reg52.h>



void SendOneByte(unsigned char c);
void delayms(unsigned int k) ;  //延时 n ms
//unsigned char xdata ledxs[8]={1,2,3,4,5,6,7,8};
//unsigned char xdata ledxs2[8]={1,2,3,4,5,6,7,8};

//unsigned char data CMDuart[8];//命令接收器
//unsigned char  fankui[2]={'O','K'};
struct 
{
 unsigned char  CMDuart1[8];
 unsigned char  fankui1[2];
}user1;


void InitUART(void)
{
    user1.CMDuart1[0]=0;
user1.fankui1[0]='o';
user1.fankui1[1]='K';  
   delayms(200);
   TMOD=0x20;    // 定时器1模式2,8位自动重装
   TL1=0xe8;
   TH1=0xe8;     // 波特率1200  晶振11.0592的
   TR1=1; // to run 第一个定时器
   SCON=0x50;   // 串口方式1,接收允许,8位数据,无校验,1位起始位,1位结束位
    ES=1;
	EA=1;        // 开串口中断
     // 开总中断
}
void find()
{
int i;
 if(user1.CMDuart1[0]==1) 
 	{
	user1.CMDuart1[0]=0;
	for(i=0;i<2;i++)
		{	
		TI = 0;
		SBUF = user1.fankui1[i];
		while(!TI);	
		}
   	   
    }


}
void main(void)
{	

    InitUART();
	while(1)
 {
find();	


 
 



	
		 
 }

}





void UARTInterrupt(void) interrupt 4
{	
    if(RI)
    {
        RI = 0;
		user1.CMDuart1[0]=SBUF;

    }


}
void SendOneByte(unsigned char c)
{
    SBUF = c;

    while(!TI);

    TI = 0;
}
void delayms(unsigned int k)  //延时 n ms
{
  while(k)
  {
    int i;
    i=110;
    while(i--);
    k=k-1;
  }
}

⌨️ 快捷键说明

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