找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2681|回复: 8
打印 上一主题 下一主题
收起左侧

做双机串行通信的仿真出了问题

[复制链接]
跳转到指定楼层
楼主
ID:255495 发表于 2017-11-30 22:34 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 么么儿 于 2017-11-30 22:52 编辑

发送和接收的程序编译时都没有错误,用proteus仿真时,虚拟终端不能显示发出的数据字节,而是不停的跳这些绿色的框
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:255495 发表于 2017-11-30 22:38 来自手机 | 只看该作者
第一次做双机串行通信的东西,对硬件当面真的好多地方不懂

IMG_20171130_222829.jpg (84.91 KB, 下载次数: 29)

IMG_20171130_222829.jpg

IMG_20171130_222534.jpg (66.19 KB, 下载次数: 25)

IMG_20171130_222534.jpg
回复

使用道具 举报

板凳
ID:222948 发表于 2017-12-1 09:18 | 只看该作者
第一,程序虽然编译过了,但你确保逻辑上的错误
回复

使用道具 举报

地板
ID:222948 发表于 2017-12-1 09:19 | 只看该作者
第二应该试着去其他电脑试一下,因为仿真有时候也会出错的

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:111634 发表于 2017-12-1 10:16 | 只看该作者
本帖最后由 zl2168 于 2017-12-1 10:19 编辑

给你介绍一个正确有效的案例,自己对照查错吧!
Proteus仿真一下,确认有效。
实例77  双机串行通信方式1
实例77 双机通信方式1.rar (40.4 KB, 下载次数: 21)


实例78  双机串行通信方式2 实例78 双机通信方式2.rar (46.57 KB, 下载次数: 4)
实例79  双机串行通信方式3 实例79 双机通信方式3.rar (45.3 KB, 下载次数: 2)
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。

回复

使用道具 举报

6#
ID:255495 发表于 2017-12-1 10:33 来自手机 | 只看该作者
999333 发表于 2017-12-1 09:19
第二应该试着去其他电脑试一下,因为仿真有时候也会出错的

在舍友的电脑上也试了,不行
回复

使用道具 举报

7#
ID:222948 发表于 2017-12-1 11:26 | 只看该作者
么么儿 发表于 2017-12-1 10:33
在舍友的电脑上也试了,不行

把仿真和程序发过来我看看
回复

使用道具 举报

8#
ID:255495 发表于 2017-12-1 14:48 | 只看该作者
999333 发表于 2017-12-1 11:26
把仿真和程序发过来我看看

#include<reg52.h>                 
#define uchar unsigned char
#define uint unsigned int  
void delayms(uchar n)
{
uchar m,s;
for(m=n;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void main()
{
Init_Com();         //初始化
delayms(40); //延时等待

while(1)
  {

  do{
     SBUF=0XAA;          //发送AAH
           while(!TI);
         TI=0;
         while(!RI);
         RI=0;
     }

        while(SBUF!=0XBB); //等待接收乙发送的BBH

   do{                           //发送P1口状态
     SBUF=P1;
           while(!TI);
         TI=0;
         SBUF=0XFF;
         while(!TI);
         TI=0;
         while(!RI);
         RI=0;
     }
    while(SBUF!=0XFF);
  }
}这个是发送程序
#include<reg52.h>                 //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型
void delayms(uchar n)
{
uchar m,s;
for(m=n;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void main()
{
Init_Com();         //初始化
delayms(40); //延时等待

while(1)
  {

  do{
     while(!RI);//等待接收中断置位
         RI=0;                //中断清零
     }

       while(SBUF!=0XAA);

        do{                          
         SBUF=0XBB;        //向甲发送BBH
           while(!TI);
         TI=0;
         while(!RI);
         RI=0;
         P2=SBUF;
         while(!RI);
         RI=0;
     }
    while(SBUF!=0XFF);

     SBUF=0xFF;
           while(!TI);
         TI=0;
         }
}这个是接收程序



回复

使用道具 举报

9#
ID:255495 发表于 2017-12-1 14:50 | 只看该作者
#include<reg52.h>                 //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型
void delayms(uchar n)
{
uchar m,s;
for(m=n;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void main()
{
Init_Com();         //初始化
delayms(40); //延时等待

while(1)
  {

  do{
     while(!RI);//等待接收中断置位
         RI=0;                //中断清零
     }
   
       while(SBUF!=0XAA);

        do{                          
         SBUF=0XBB;        //向甲发送BBH
           while(!TI);
         TI=0;
         while(!RI);
         RI=0;
         P2=SBUF;
         while(!RI);
         RI=0;
     }
    while(SBUF!=0XFF);
                 
     SBUF=0xFF;
           while(!TI);
         TI=0;
         }
}发送程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表