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

📄 serio.c

📁 C51单片机一个小项目源程序:包含液晶12232驱动,AD7705驱动,按键扫描及单片机内部EEPROM的驱动,是一个比较值得参考的源程序
💻 C
字号:
#include "mylib.h"
uchar idata buf_data[4];
uchar sum;
uint countdat=0;
extern uchar Baudrate,choice1;
extern uint Ch1k,Ch2k;
//bit Send_suessful=0;
/*发送程序*/
/*void send()
{
    uchar i;
	SetSerio=1;
    if(ChoiceSend==0)
	    {  
			do{
		        SBUF=0xAA;	    //发送联络信号“AA”踏力
		        //while(TI==0);	//等待发送结束
				while(TI==0)
				{
				    countdat++;
					if(countdat==30)
					{
					   lcd_clr();
					   dprintf(10,0,"数据发送失败",1);
					 }
				}
		        TI=0;			//软件清0
		        while(RI==0);	//等待B机回答
		        RI=0;
	           }while((SBUF^0xAB)!=0);  //B机未准备好,继续联络
		 }
	 if(ChoiceSend==1)
		{
			 do
			 {
		        SBUF=0xCC;	    //发送联络信号“CC”踏力
		       // while(TI==0);	//等待发送结束
				while(TI==0)
				{
				    countdat++;
					if(countdat==30)
					{
					   lcd_clr();
					   dprintf(10,0,"数据发送失败",1);
					 }
				}
		        TI=0;			//软件清0
		        while(RI==0);	//等待B机回答
		        RI=0;
	          }while((SBUF^0xCD)!=0);  //B机未准备好,继续联络
		}
	  if(ChoiceSend==2)
		{
			 do
			 {
		        SBUF=0xEE;	    //发送联络信号“EE”踏力
		        //while(TI==0);	//等待发送结束
				while(TI==0)
				{
				    countdat++;
					if(countdat==30)
					{
					   lcd_clr();
					   dprintf(10,0,"数据发送失败",1);
					 }
				}
		        TI=0;			//软件清0
		        while(RI==0);	//等待B机回答
		        RI=0;
	          }while((SBUF^0xEF)!=0);  //B机未准备好,继续联络
		}
	   if(ChoiceSend==3)
		{
			 do
			 {
		        SBUF=0xAC;	    //发送联络信号“AC”踏力
		        //while(TI==0);	//等待发送结束
				while(TI==0)
				{
				    countdat++;
					if(countdat==30)
					{
					   lcd_clr();
					   dprintf(10,0,"数据发送失败",1);
					 }
				}
		        TI=0;			//软件清0
		        while(RI==0);	//等待B机回答
		        RI=0;
	          }while((SBUF^0xCF)!=0);  //B机未准备好,继续联络
		}
	do{
		 sum=0;			              //清较验和
		 for(i=0;i<4;i++)	  
		 {
		     SBUF=buf_data[i];	  //发送数据
			 sum+=buf_data[i];	  //求较验和
			 while(TI==0);	  //等待发送是否完成
			 TI=0;
		 }
		 SBUF=sum;			  //发送校验和
		 while(TI==0);
		 TI=0;
		 while(RI==0);
		 RI=0;
	  }while(SBUF==0xff);
	  Led=1; 
//	  SetSerio=0;
} */

void init_serial(void)
{
    SCON=0x50;      /*定时器1,模式样,8BIT UART */
    TMOD=0x20;     /*BAUND 9600  FOSCE=11.0592  */
	TH1=0xf4;
	TL1=0xf4;
	PCON=0x00;
	EA=0;
	ES=1;
	PS=1;
    TR1=1;
	AUXR=0x01;    //允许使用STC59C58RD内部扩展的1KRAM。
}
void send_string_com(unsigned char *str,unsigned int strlen) 
{ 
 unsigned int k=0; 
 do 
 { 
  send_char(*(str + k));
  
  k++; 
 } while(k < strlen); 
}  

void send_string_com1(unsigned char *str,unsigned int strlen) 
{ 
 unsigned int k=0; 
 do 
 { 
  send_char(*(str + k));
  
  k++; 
 } while(k < strlen); 
}  

void send_char(unsigned char ch)  
{   
    TI=0;
    SBUF=ch;
    while(TI==0);	
    TI=0;
} 

⌨️ 快捷键说明

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