sersend.c

来自「模拟串口通讯程序」· C语言 代码 · 共 84 行

C
84
字号
#include<stdio.h>
#include<reg932.h>
#include<define.h>

void sentbyte(unsigned char byte)
{
    unsigned char i,j,k,ii,jj,kk;
    i=0;
    j=0;
    k=byte;
    ii=byte;
    for(i=0;i<8;i++)  //---------------------------------------------校验位
    {
       if(k&0x80)
       {		
           j++;
           if(j==2)
           {
              j=0;
           }      
       }
       k <<=1;	
    }
    if(j==0)
    {
         kk=0;    
    }
    else
    {
         kk=1;
    }		
        STXD=0;//--------------------------------------------------------起始位
        DelayTwo(82);
        for(jj=0;jj<8;jj++)//---------------------------------------------8个数据位
        {
             if(ii & 0x01)
          	 {
          	 	  STXD=1;
          	 }
          	 else
          	 {
          		  STXD=0;
          	 }
             ii >>=1;
             DelayTwo(82);
        }
        if(kk)
        {
            STXD=1;//----------------------------------------------------校验位
        }
        else
        {
            STXD=0;//----------------------------------------------------校验位    
        }
        DelayTwo(82);
		STXD=1;//--------------------------------------------------------结束
        DelayTwo(82);
        AUXR1=0x00;
}
//-----***-启动发送-***-----//
void serialsend(void) //--------------------------------------------------------模拟串口发送
{
        unsigned char i;
/*        DataBuf[0]=0x68; 
        DataBuf[1]=0x00; 
        DataBuf[3]=0x00; 
        DataBuf[2]=0x00; 
        DataBuf[4]=0x00; 
        DataBuf[5]=0x00; 
        DataBuf[6]=0x00; 
        DataBuf[7]=0x68; 
        DataBuf[8]=0x01;
        DataBuf[9]=0x02; 
        DataBuf[10]=0x43; 
        DataBuf[11]=0xC3; 
        DataBuf[12]=0xD9; 
        DataBuf[13]=0x16;*/
		for(i=0;i<(DataBuf[9]+12);i++)
		{
			sentbyte(DataBuf[i]);	//-------------------------------------模拟红外发送
		}
        SendEndFg=1;
}

⌨️ 快捷键说明

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