单片机串口通讯-proteus仿真

程序如下:

#include<reg51.h>

 
 

uint num;

 
 

void main()

{

    SCON=0x50; //模式1,8位数据位,使能接收,由定时器1溢出率决定波特率,9600

    TMOD=0x20; //定时器工作模式2

    TH1=0xFD; //定时器初始值,决定波特率,自动重装,晶振11.0592MHz

    TL1=0xFD;

    TR1=1; //定时器1启动

    EA=1; //开总中断

    ES=1; //开串口中断

    
 

    while(1);

    
 

}

 
 

void UART_SER() interrupt 4

{

    unsigned char Temp;

    if(RI)

    {

        RI=0;

        Temp=SBUF; //接收数据

        P1=Temp; // 接口P1,显示接收的数据

        SBUF=Temp; //接收的数据返回给发送者

    }

    if(TI)

    {

        TI=0; //发送中断置0

    }

}

使用虚拟串口


Proteus原理图


原理图中的串口内部包含了TLL到RS232的转换,设置如下:


调试结果


  

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注