电工学习网

 找回密码
 立即注册

单片机串口通信

2015-3-6 15:56| 编辑:电工学习网| 查看: 6736| 评论: 0

    串口通信是单片机一个重要的部分,单片机和PC,单片机和单片机之间的通信大都用串口。单片机的串口是全双工异步串口通信方式。通过TXD(P3.1)发送,RXD(P3.0)引脚接收输入。串口传送数据是一帧一帧发送的,它有四种工作方式,同时也可以做并行I/O的扩展。

    图上是串口的结构图。

    SBUF是数据缓冲寄存器,发送和接收用的是一个地址,但是不用担心冲突,读只能从接收缓冲区,写只能在发送缓冲区里。

    寄存器SCON(SM0 SM1 SM2 REN TB8 RB8 TI RI)

    SM0和SM1: 工作方式选择(0-3),方式1和方式3使用T1产生波特率,方式0和方式2是固定速率。

    SM2 :在方式2和方式3的多级通信控制位

    REN:允许串行接收控制位,0禁止接收

    TB8:对于方式2和方式3,是发送的第9位

    RB8:对于方式2和方式3,是接收的第9位;对于方式1,是接收到的停止位

    TI:发送中断标志,发送完一帧后置位,必须由软件清零

    RI:发送中断标志,接收完一帧后置位,必须由软件清零

    寄存器PCON(最高位SMOD)

    SMOD=1时,波特率加倍

    程序:PC与单片机通信,PC发送字符,单片机接收后返回给PC

    PC端程序,VB编写,使用MSCOMM控件

    Private Sub Command1_Click()

    MSComm1.Output = Text1.Text '发送数据

    End Sub

    Private Sub Form_Load()

    MSComm1.CommPort = 4 '设置串口的端口号

    MSComm1.Settings = "9600,n,8,1" '设置串口的波特率等参数

    MSComm1.RThreshold = 1 '设置最小接收的字节数

    MSComm1.PortOpen = True '打开串口

    End Sub

    Private Sub MSComm1_OnComm()

    Select Case MSComm1.CommEvent

    Case comEvReceive

    Text2.Text = Text2.Text & MSComm1.Input '接收数据

    End Select

    End Sub

    单片机程序:

    #include

    void UartInit();

    void UartSendChar(unsigned char ch);

    void main(void)

    {

    UartInit();

    while(1);

    }

    void UartInit()

    {

    SCON = 0x50; // SCON: 模式1

    TMOD = 0x20; // TMOD: 定时器1 模式2

    PCON = 0x00; // SMOD=0;

    TH1 = 0xFD; // Baud:9600 波特率=2SMOD×fosc/(32×12×(256-TH1))

    TL1 = 0xFD;

    IE = 0x90;

    TR1 = 1;

    EA = 1;

    }

    void UartSendChar(unsigned char ch)

    {

    SBUF = ch;

    while(TI==0);

    TI=0;

    }

    void UartRec() interrupt 4

    {

    unsigned char ch;

    ch = SBUF;

    if(RI)

    {

    RI = 0;

    UartSendChar(ch);

    }

看过《单片机串口通信》的人还看了以下文章:

发表评论

最新评论

  • 实时时钟芯片DS1302
  • 8255的控制字
  • 单片机点亮led灯程序详解
  • 单片机引脚功能定义
  • 单片机数码管显示原理
  • RS485通信和Modbus协议

电工学习网 ( )

GMT+8, 2023-5-29 17:08

Powered by © 2011-2022 www.shop-samurai.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部