我是靠谱客的博主 无私羽毛,最近开发中收集的这篇文章主要介绍UART串口通信,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SCON 串口控制寄存器
76543210
符号SM0SM1SM2

REN

允许接收

TB

校验

RB

校验

TI

发送中断

硬件自动置1

只能软件清零

RI

接收中断

硬件自动置1

只能软件清零

 

工作方式选择位
SM0SM1方式说明
000移位寄存器
0118位数据位
1029位数据位
1139位数据位

向电脑发送数据

#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
void UART_init()
{
    //串口设置为方式1
    //定时器1设置位自动重装模式
    //计算timer1初值
    //打开timer1,打开串口允许接收
    SCON = 0x50;
    TMON = 0x20;
    TH1 = 0xfd;
    TL1 = 0xfd;
    TR1 = 1;
    ES = 1;EA = 1;
}
void UART_send_data(uint8 dat)
{ 
    SBUF = dat;
    while(!TI);
    TI = 0;
}
void delay(uint16 n)
{
    while(n--);
}
uint8 num=0;
main()
{
    UART_init();
    while(1){
        UART_send_data(num++);
        delay(2000);
    }
}

从电脑接收数据,加一后发送回电脑

#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
void UART_init()
{
    //串口设置为方式1
    //定时器1设置位自动重装模式
    //计算timer1初值
    //打开timer1,打开串口允许接收
    SCON = 0x50;
    TMON = 0x20;
    TH1 = 0xfd;
    TL1 = 0xfd;
    TR1 = 1;
    ES = 1;EA = 1;
}

uint8 num;
main()
{
    UART_init();
    while(1);
}

void interrupt_uart() interrupt 4
{
    if(TI) {
        TI = 0;
        REN = 1;
    }
    if(RI) {
        RI = 0;
        num = SBUF;
        SBUF = ++num;
        REN = 0;
    }
}

发送字符串

#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
void UART_init()
{
    //串口设置为方式1
    //定时器1设置位自动重装模式
    //计算timer1初值
    //打开timer1,打开串口允许接收
    SCON = 0x50;
    TMON = 0x20;
    TH1 = 0xfd;
    TL1 = 0xfd;
    TR1 = 1;
    ES = 1;EA = 1;
}
void UART_send_byte(uint8 dat)
{ 
    SBUF = dat;
}
uint8 buf_[] = "hello world!n";
void UART_send_string(uint8 *dat)
{ 
    while(*dat!='') UART_send_byte(*dat++);
}
void delay(uint16 n)
{
    while(n--);
}

main()
{
    UART_init();
    while(1){
        UART_send_string(buf_);
        delay(2000);
    }
}
void interrupt_uart() interrupt 4
{
    if(TI) {
        TI = 0;
        REN = 1;
    }
}

 

最后

以上就是无私羽毛为你收集整理的UART串口通信的全部内容,希望文章能够帮你解决UART串口通信所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部