×
单片机 > 单片机程序设计 > 详情

51单片机输出输入接口扩展程序设计

发布时间:2020-05-28 发布时间:
|

    通信协议: 第1字节,MSB为1,为第1字节标志,第2字节,MSB为0,为非第一字节标志,其余类推……,最后一个字节为前几个字节后7位的异或校验和。

    测试方法:可以将串口调试助手的发送框写上 95 10 20 25,并选上16进制发送,接收框选上16进制显示,如果每发送一次就接收到95 10 20 25,说明测试成功。


    这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收和查询发送,发送没有必要用中断,因为程序的开销是一样的

    #include

    #include

    #define INBUF_LEN 4 //数据长度

    unsigned char inbuf1[INBUF_LEN];

    unsigned char checksum,count3;

    bit read_flag= 0 ;

    void init_serialcomm( void )

    {

    SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr

    TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload

    PCON |= 0x80 ; //SMOD=1;

    TH1 = 0xF4 ; //Baud:4800 fosc=11.0592MHz

    IE |= 0x90 ; //Enable Serial Interrupt

    TR1 = 1 ; // timer 1 run

    // TI=1;

    }

    //向串口发送一个字符

    void send_char_com( unsigned char ch)

    {

    SBUF=ch;

    while (TI== 0 );

    TI= 0 ;

    }

    //向串口发送一个字符串,strlen为该字符串长度

    void send_string_com( unsigned char *str, unsigned int strlen)

    {

    unsigned int k= 0 ;

    do

    {

    send_char_com(*(str + k));

    k++;

    } while (k < strlen);

    }

    //串口接收中断函数 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈AVR中定时器几种工作模式