微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请教一下各位大神关于sbuf语句的问题

请教一下各位大神关于sbuf语句的问题

时间:10-02 整理:3721RD 点击:
我想要通过检测接在P2.4口的led灯的亮灭,来控制单片机向串口发送000,001 ,可是我是一个初学者,对sbuf语句不熟悉,总是实现不了功能,希望各位大神不吝赐教,感激不尽,,,程序如下
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;//变量定义
sbit led1 = P2^4;
unsigned int c = 0;
u16 r_buf;//定义全局变量
void init_uart(void)//初始化串口
{
    TMOD = 0x20;
    SCON = 0x50;
    TH1 = 0xFD;
    TL1 = TH1;
    PCON = 0x00;
    EA = 1;//串口中断
    ES = 1;
    TR1 = 1;
}
int send_byte(int SBUF)
{
    SBUF = c;
    while(!TI);//等待TI,对TI置1
        TI = 0;//对TI清零
}
void main(void)
{
    init_uart();
    while(1);//等待
}
void uart_interrupt(void) interrupt 4//中断子程序
{
    if(led1 == 0)
    {
             c = 000;
         r_buf = SBUF;//将填充的数据拿出
         send_byte(r_buf);//将接收到的数据发出
     }
         if(led1 == 1)
         {
             c = 001;
                 r_buf = SBUF;
         send_byte(r_buf);
         }
}

大神都来帮帮忙啊  好纠结啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top