请教一下一个关于proteus仿真51串口的问题!!!

[复制链接]
3541|5
 楼主| zhaigch 发表于 2011-3-10 20:21 | 显示全部楼层 |阅读模式
我在proteus中仿真51单片机的串口,我使用了proteus中的compim这个东西,通过虚拟串口,和计算机上的串口调试助手进行,仿真!可是单片机只能收到串口调试助手发来的数据,而串口调试助手 却显示不了单片机发来的数据! 想请教下为什么?是proteus本身的问题还是我的程序的问题?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| zhaigch 发表于 2011-3-10 20:21 | 显示全部楼层
程序如下:
#include <reg51.h>


#define uchar         unsigned char
uchar recv_buff=0;
uchar flag=0;
void init()
{
        SCON=0x50;   //串行工作方式1,允许接收数据
        TMOD=0x20; //定时器1 ,方式2,自动重装的8位定时器
        PCON=0x00; //波特率不加倍
        TH1=0xFA; //波特率为4800
        TL1=0xFA;
        TR1=1; //定时器开启
        EA=1;    //开中断
        ES=1; //串行口中断允许位
}

void send_char(uchar one_bit)
{
        SBUF=one_bit;
        while(TI==0);
        TI=0;
}

void delay(uchar temp1)
{                 
        unsigned int temp2;
        for(;temp1<200;temp1++)
                for(temp2=0;temp2<50000;temp2++);
}

void main(void)
{
        init();
       
        while(1)
        {
                if(flag==1)
                {
                        flag=0;
                        ES=0;
                        send_char(recv_buff);
                        delay(100);
                        ES=1;                               
                }

        }
}


void UART_SER(void) interrupt 4 using 0
{
        if(RI==1)
        {
                recv_buff=SBUF;
                P1=recv_buff;
                RI=0;
                flag=1;
        }       
}
 楼主| zhaigch 发表于 2011-3-10 20:22 | 显示全部楼层
波特率都设置成了4800.。。。。。
zjswuyunbo 发表于 2011-3-11 23:15 | 显示全部楼层
别整这个了,赶紧弄实物
 楼主| zhaigch 发表于 2011-3-16 13:01 | 显示全部楼层
我错了,没有把晶震频率改成11.0592M
szdianzijie 发表于 2011-3-16 14:05 | 显示全部楼层
都看不懂!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

158

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部