send.c

来自「51单片机通过rs232串口 向 上位机循环发送数据」· C语言 代码 · 共 85 行

C
85
字号
/***************************************************************
功能:实现单片机通过串口循环向上位机发送数据                             
作者:ZST                                                        
时间:2006-05                                                
版本:V1.0                                                       
***************************************************************/
#include "reg51.h"			//包函8051内部资源的定义

/*-------------------------------------------------------
功能:串口初始化,波特率9600 方式1 8 UART
-------------------------------------------------------*/
void Init_Com(void)
{
     TMOD = 0x20;//定时器1工作在方式2,8 bits reload
     PCON = 0x00;//SMOD=0;
     SCON = 0x50;//SM0=0,SM1=1,SM2=0,REN=1,			
     TH1 = 0xFd;//计数器初值设定  f0sc=11.0592
     TL1 = 0xFd;
     TR1 = 1;	//开定时器timer1			
}

/*-----------------------------------------
1MS延时子程序
-----------------------------------------*/
void Delay_xMs(unsigned int x)
{
    unsigned int i,j;
    for( i =0;i < x;i++ )
    {
        for( j =0;j<110;j++ );
    }
}

//字符输出函数
void putchar(unsigned char c)
{ 
	SBUF=c;                         //发送数据
	while(!TI); //判断上次发送有没有完成,完成后则进行下一步
	TI=0;
}


//带回车换行控制的字符串输出函数
int puts(char *s)
{
   while(*s) //当指针初值为1时执行下一条
         {putchar(*s);
	 s++;
	 }
	 putchar(0x0a);	//进行回车换行处理
	 putchar(0x0d);
	 return 1;
}

//不带回车换行控制的字符串输出函数
void putstr(char *s)
{
   while(*s)
     {putchar(*s);
	 s++;
	 }
}

/*-------------------------------------------------------
主程序
功能:实现接收数据并把接收到的数据发送出去
-------------------------------------------------------*/
void main()
{
   //unsigned char i;
   Init_Com();//初始化
   while(1)
   {   
      /*for(i=0;i<10;i++)
          {   SBUF =0X30+i; 			//发送数据
              Delay_xMs(100);//延时程序
          }*/
     puts("欢迎您使用Smart51实验开发套件!");
	 puts("本次实验的目的很简单就是进行单片机输出测试!");
	 //SBUF =0X32;
     Delay_xMs(1000);
   }
}

⌨️ 快捷键说明

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