找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1086|回复: 0
收起左侧

单片机串口通信,程序如下,如何调试串口调试助手发数据使得LED灯亮

[复制链接]
ID:1008194 发表于 2022-5-29 10:56 | 显示全部楼层 |阅读模式
#include <reg51.h>            
#include <intrins.h>

typedef unsigned int u16;      
typedef unsigned char u8;

sbit led=P2^2;


void UsartInit()
{
    SCON=0x50;//串口工作方式1,REN=1:打开串口允许位
    PCON=0x80;//倍频

    TMOD=0x20;    //定时器T1,工作方式2
    TH1=0xF3; //波特率为4800=(2*32)/T1溢出率,所以T1溢出率=76800
    TL1=0xF3; //T1溢出率=12M/{12*(256-TH1)}  TH1=243

    EA=1;
    ES=1;
//    ET1=1; 不打开定时中断
    TR1=1;

}

void UsartSendbyte(u8 byte)
{

    SBUF=byte;
    while(!TI);
    TI=0;

}

void UsartSendchar(u8 *c)
{
      while(*c!='\0')
      {
             UsartSendbyte(*c);
          c++;

      }


}

void main()
{
   UsartInit();
   while(1);


}

void Usart() interrupt 4
{
     u8 receiveData;
    u8 a[]="I receive\r\n";

    if(RI)
    {
         RI=0;
         receiveData=SBUF;
        if(receiveData=='1')
        {
             led=0;

      }
        else
        {
             led=1;

        }

    }
    UsartSendchar(a);
   if(TI)
   {

        TI=0;

}

}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表