串口通讯发送和接收

#include "reg52.h"

typedef unsigned char u8;
typedef unsigned int  u16;

u8 num;
void delay(u16 i)
{
 while(i--);
 }

void usartinit()	 
{
 TMOD=0X20;	 //工作方式2 高四位T1;低四位T0 GATE C/T M1 MO GATE C/T M1 MO 00100000
 TH1=0Xfd;	  //波特率9600
 TL1=0Xfd;	  //波特率9600
 TR1=1;	    //打开定时器
 SCON=0X50;	//寄存器模式 SM0=0,SM1=1方式1,REN=1,串口允许接收位,01010000
  
 }

void main()
{
  usartinit();  //调用子函数
  while(1)	  //让它循环
   {
   SBUF=num; //数据发送到num中	 控制发送的
   }
   while(!TI); //发送完通过while循环判断,
   TI=0;		  //只有发送完,我们才通过软件清零
   num++;
   delay(50000);
   }
  
 /* while(!RI)	  //控制接收的
  {
   num=SBUF;
   
   RI=0;
   }
   }
   }
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值