找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
uid:155764 日志

串口返回数据+1(中断法)

已有 653 次阅读2017-10-31 16:48

#include <reg52.h>
void ConfigUART(unsigned int baud);
void main ()
{
    ConfigUART(9600);  //配置波特率为9600

    while(1);
}
void ConfigUART(unsigned int baud)  //串口配置函数,baud为波特率
{
    SCON = 0x50;   //配置串口为模式1
    TMOD &= 0x0F;  //清零T1的控制位
    TMOD |= 0x20;  //配置T1为模式2
    TH1 = 256 - (11059200/12/32) / baud;  //计算T1重载值
    TL1 = TH1;     //初值等于重载值
    ET1 = 0;       //禁止T1中断
    TR1 = 1;       //启动T1
    ES = 1;   //打开串口中断
    EA = 1;   //打开总中断
}
void InterruptUART() interrupt 4
{
    if (RI)  //接收到字节
    {
        RI = 0;  //手动清零接收中断标志位
        SBUF = SBUF + 1;//接收数据+1发回去,左边为发送SBUF,右边为接收SBUF
    }
    if (TI)  //字节发送完毕
    {
        TI = 0;  //手动清零发送中断标志位
    }  
}


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

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

Powered by 单片机教程网

返回顶部