test0c.c

来自「用kirl c51编写的串口通讯程序」· C语言 代码 · 共 78 行

C
78
字号
   #include <reg51.h>
   #include <stdio.h>
   #include <string.h>
   #define	INBUF_LEN 4
   unsigned char inbuf1[INBUF_LEN];
   unsigned char checksum,count3;
   bit read_flag=0;
   void init_serialcomm(void)
{
   SCON =0x50;
   TMOD = 0x20;
	PCON = 0x80;
	TH1 = 0xF4;
	IE=0x90;
	TR1 = 1;
	
	}
   void send_char_com(unsigned char ch)
   {
   SBUF=ch;
   while (TI==0);
   TI=0;
   }			   //向川口发送一个字符串,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);

		}
		void serial() interrupt 4 using 3	 //串口接受中断函数
		{if (RI)
		{
		unsigned char ch;
		RI = 0;
		ch =SBUF;
		if (ch > 127)
		{count3=0;
		inbuf1[count3]=ch;
		checksum= ch-128;

		}
		else
		{count3 ++;
		inbuf1[count3]=ch;
		checksum ^=ch;
		//if ((coun3 ==(INBUF_LEN-1))&&(checksum))
		//{read_flag=1;	   //如果川口接收的数据达到inbuf_len
		//且教研没错,就职位取数标志
		//}
		}
		}
		}
		  main()
		  {init_serialcomm(); //初始化川口
		  while(1)
		  {if (read_flag)  //如果取数标志已经置位 ,就将读到的数据从川口发出
		  {read_flag=0;		//取数标志清0
		  send_string_com(inbuf1,INBUF_LEN);
		  }
		  }
		  }











⌨️ 快捷键说明

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