標(biāo)題: 請教仿真單片機串口通訊甲機能發(fā),乙機不能接收的問題 [打印本頁]

作者: 芙蓉焊料    時間: 2024-1-8 10:18
標(biāo)題: 請教仿真單片機串口通訊甲機能發(fā),乙機不能接收的問題

請大家?guī)臀铱纯,仿真串口能正常發(fā)送,但接收不到數(shù)據(jù)不知為何?



單片機源程序如下:
發(fā)送:
  1. #include <STC89C5xRC.H>
  2. #include<intrins.h>

  3. void Delay(unsigned int xms)                //@11.0592MHz
  4. {
  5.         unsigned char i, j;
  6.         while(xms--)
  7.         {
  8.                 _nop_();
  9.                 i = 2;
  10.                 j = 199;
  11.                 do
  12.                 {
  13.                         while (--j);
  14.                 } while (--i);
  15.         }
  16. }

  17. unsigned char Ledtab[16]={0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff,0x00};

  18. void send(unsigned char ucdata)
  19. {
  20.         SBUF = ucdata;
  21.         while(TI==0);
  22.         TI=0;
  23. }

  24. void main()
  25. {
  26.          unsigned char i;
  27.          TMOD=0X20;
  28.          SCON=0X40;
  29.          PCON=0X00;
  30.          TH1=0XFD;
  31.          TL1=0XFD;
  32.          TR1=1;
  33.          P1=0XFF;

  34.         while(1)
  35.         {
  36.                 for(i=0;i<16;i++)
  37.                  {
  38.                          P1=Ledtab[i];
  39.                          send(Ledtab[i]);
  40.                          Delay(200);
  41.                  }
  42.         }
  43.         
  44. }
復(fù)制代碼


接收:
#include <STC89C5xRC.H>

unsigned char Receive()  
{
        unsigned char ucdata;
        
        while(RI==0);
                RI=0;
                ucdata = SBUF;
                return ucdata;

}


void main()
{
    TMOD=0X20;
          SCON=0X50;
          PCON=0X00;
          TH1=0XFD;
          TL1=0XFD;
          TR1=1;
          REN=1;
         P1=0XFF;
    while(1)
                 {
                         P1=Receive();
                 }

}


作者: wc86110    時間: 2024-1-8 11:56
仿真嘛假設(shè)程序電路沒錯還需軟件的操作設(shè)置問題,
作者: lkc8210    時間: 2024-1-8 11:57
可能是Proteus的Bug
作者: Hephaestus    時間: 2024-1-8 12:23
#include <STC89C5xRC.H>
這句話里面包含的SFR定義,與你用的AT89C52的SFR兼容嗎?
作者: 芙蓉焊料    時間: 2024-1-8 13:20
改了頭文件<reg52.h>也不行,難道是仿真軟件的問題?
作者: tyrl800    時間: 2024-1-8 16:14
芙蓉焊料 發(fā)表于 2024-1-8 13:20
改了頭文件也不行,難道是仿真軟件的問題?

估計是兩個單片機晶振不一樣
作者: Hephaestus    時間: 2024-1-8 16:41
tyrl800 發(fā)表于 2024-1-8 16:14
估計是兩個單片機晶振不一樣

圖上都沒接晶振,然而串口好用,應(yīng)該是仿真軟件默認(rèn)振蕩,兩個是一樣的。
作者: mtt661    時間: 2024-1-10 12:35
接收沒有開總中斷把 EA=1   ???




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1