码迷,mamicode.com
首页 > 其他好文 > 详细

串行通信

时间:2019-05-18 00:40:20      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:接口   图片   alt   发送   初始   清除   方式   col   init   

  • 模拟图
  • 技术图片
  • 发送开关数据程序
  • //任务名称:串行口实现双机通信
    //任务内容: 通过串行口发送甲机开关状态
    
    #include<reg51.h>
    void send(unsigned char stat)
        {
        SBUF=stat;//串行通信系统自动将8位数据拆字,并按照规定的速率,通过TXD接口一位接一位向外发送数据,直到将数据帧发完
        while(TI==0);//等待
        TI=0;
        }
    /*****串行通信初始化********/
    void uart_init()
        {
        SCON=0X40; //串行口工作方式1.发送
        TMOD=0x20;//T1定时器工作方式2
        PCON=0x00;//波特率不倍增
        TH1=0XFD;//波特率=9600,(11.0592Mhz)
        TL1=0XFD;
        TI=0;//清除发送标志
        TR1=1;//启动定时器T1
        }
    void main()
        {
        uart_init();//串行通信初始化
        while(1)
            {
            send(P1);//不断发送开关值
            }
        }

    接收开关数据程序

  • //任务名称:串行口实现双机通信
    //任务内容: 通过串行口发送甲机开关状态
    
    #include<reg51.h>
    unsigned char stat;
    /***串行接收开关数据***/
    void receive()
        {
        while(RI==0);
        stat=SBUF;
        RI=0;
        }
    /*****串行通信初始化********/
    void uart_init()
        {
        SCON=0X50; //串行口工作方式1.允许  接收数据
        TMOD=0x20;//T1定时器工作方式2
        PCON=0x00;//波特率不倍增
        TH1=0XFD;//波特率=9600,(11.0592Mhz)
        TL1=0XFD;
        RI=0;//清除接收标志
        TR1=1;//启动定时器T1
        }
    void main()
        {
        uart_init();//串行通信初始化
        while(1)
            {
            receive();//接收开关数据
            P1=stat;//根据接收数据点亮数码管
            }
        }

     

串行通信

标签:接口   图片   alt   发送   初始   清除   方式   col   init   

原文地址:https://www.cnblogs.com/ssxblog/p/10884197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!