51单片机的串口通信

一、程序下载的不同方式
1、程序传送和电平接口:

由于两个电平无法通信,所以需要转换电平
1、转换电平可以装驱动(CH340)

2、可以使用转电平芯片

一般采用第一种方式

二、通信方式
(一)、并行通信

(二)、串行通信

三、串行通信传输方向

四、串行通信的分类
(一)、异步通信

异步通信的数据格式

(二)、同步通信
同步通信要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步(时钟线)

80C51为串行异步通信
C51的传输格式可概括为:“8N1”:8个数据位,N:NO没有校验位,1个停止位

三、80C52串行口结构:

四、80C52寄存器

SCON各位释义:

五、波特率设置

其中X为初值,fosc为晶振频率

六、常用波特率
以下晶振频率均为1.0592M
1、X = 253(0xfd),波特率= 9600
2、X = 250(0xfa),波特率= 4800
3、X = 0xf4,波特率= 2400

#include <reg52.h>

unsigned char ch;

void uart_init()
{
    SCON = 0x50; //设置串口工作方式
      TMOD |= 0x20;//设定定时器工作方式
      TH1 = 0xFD;//设置波特率为9600
      TR1 = 1;//打开定时器1
      //中断服务法
      ES = 1;//打开串口服务中断
      EA = 1;
}

void uart_send_char(unsigned char ch)
{
      SBUF = ch;
      while(!TI);//等待TI为1
      TI = 0;//TI置0
}

void uart_send_str(unsigned char *str)
{
    while(*str != '\0')
        {
              uart_send_char(*str++);
        }
}

void uart_isr() interrupt 4
{
      ES = 0;

      if(RI)
        {
              uart_send_str("I receieve is:");
              uart_send_char(SBUF);
              uart_send_char('\n');
              RI = 0;
        }
}

void main()
{
      uart_init();
}












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值