找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3395|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

Proteus8.13版本仿真單片機(jī)串口只能發(fā)送,不能接收問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
我用的是proteus 8.13版本,串口總是只能發(fā)送,不能接收,搞了我好多天了
剛剛突然看到論壇上有個(gè)網(wǎng)友說(shuō)8.13版本的串口就是不能接收的
想請(qǐng)教一下,目前哪個(gè)版本比較好用?
串口實(shí)驗(yàn)如下:
按鍵按一下,另一個(gè)單片機(jī)上的數(shù)顯示加1
原理圖,可以看到發(fā)送的時(shí)候,SBUF已經(jīng)有數(shù)據(jù)了:


代碼:
兩個(gè)單片機(jī)的代碼是一樣的,頻率也設(shè)置成了11.0592MHz了
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit key = P3^7;
  5. uchar DATA,num;

  6. void delay10ms(uint n)
  7. {
  8.    uchar i,j;
  9.    for(;n>0;n--)
  10.    {
  11.       for(i=0;i<18;i++)
  12.       {
  13.          for(j=0;j<184;j++){;}
  14.       }
  15.    }
  16. }

  17. void UART_init(void)
  18. {
  19.    SCON = 0X50;
  20.    TMOD = 0X20;
  21.    PCON = 0X00;
  22.    TH1  = 0XFD;                //波特率9600,@11.0592MHz
  23.    TL1  = 0XFD;
  24.    ET1  = 0;
  25.    TR1  = 1;
  26.    EA   = 1;
  27.    ES   = 1;
  28. }

  29. void UART() interrupt 4
  30. {
  31.    if(RI)
  32.    {
  33.       RI=0;
  34.       DATA = SBUF;
  35.    }
  36.    if(TI)
  37.    {
  38.       TI=0;
  39.    }  
  40. }

  41. void main(void)
  42. {
  43.    UART_init();
  44.    num  = 0x00;
  45.    DATA = 0x00;
  46.    P2   = 0x00;
  47.    while(1)
  48.    {
  49.       P2 = DATA/10 << 4 | DATA%10;         //數(shù)碼管顯示接收的數(shù)
  50.           if(!key)                        //檢測(cè)按鍵按下
  51.           {
  52.                   delay10ms(1);
  53.                 if(!key)
  54.                 {
  55.                         while(!key);         //檢測(cè)按鍵松開(kāi)
  56.                         ++num;
  57.                         SBUF = num;        //發(fā)送數(shù)據(jù)
  58.                 }
  59.           }

  60.    }
  61. }
復(fù)制代碼



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

來(lái)自 3#
ID:161164 發(fā)表于 2023-6-13 11:05 | 只看該作者
附件是我收集的各版本的仿真驅(qū)動(dòng)(到8.13)
把檔案內(nèi)的MCS8051.DLL替換掉以下檔案試試
C:\Program Files\Labcenter Electronics\Proteus 8 Professional\DATA\MODELS\MCS8051.DLL MCS8051.zip (1.71 MB, 下載次數(shù): 94)




評(píng)分

參與人數(shù) 2黑幣 +25 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!
sttt300 + 5 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:384109 發(fā)表于 2023-6-13 10:57 | 只看該作者
分模塊單獨(dú)測(cè)試吧
回復(fù)

使用道具 舉報(bào)

地板
ID:1083771 發(fā)表于 2023-6-13 12:00 | 只看該作者
向上兼容不太行,換個(gè)舊點(diǎn)的版本。
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2023-6-13 13:24 | 只看該作者
將RX、TX線交叉一下。
回復(fù)

使用道具 舉報(bào)

6#
ID:647261 發(fā)表于 2023-6-13 14:41 | 只看該作者
lkc8210 發(fā)表于 2023-6-13 11:05
附件是我收集的各版本的仿真驅(qū)動(dòng)(到8.13)
把檔案內(nèi)的MCS8051.DLL替換掉以下檔案試試
C:\Program Files\La ...

真的可以了,非常感謝!
回復(fù)

使用道具 舉報(bào)

7#
ID:1013137 發(fā)表于 2023-6-25 16:52 | 只看該作者
lkc8210 發(fā)表于 2023-6-13 11:05
附件是我收集的各版本的仿真驅(qū)動(dòng)(到8.13)
把檔案內(nèi)的MCS8051.DLL替換掉以下檔案試試
C:\Program Files\La ...

您好,最后一個(gè)是8.13的么?
回復(fù)

使用道具 舉報(bào)

8#
ID:161164 發(fā)表于 2023-6-26 09:37 | 只看該作者
xue~ 發(fā)表于 2023-6-25 16:52
您好,最后一個(gè)是8.13的么?

看檔案日期,最新的就是8.13
回復(fù)

使用道具 舉報(bào)

9#
ID:108158 發(fā)表于 2024-7-11 12:00 | 只看該作者
替換文件后發(fā)送HEX文件,總會(huì)少一個(gè)數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

10#
ID:332444 發(fā)表于 2024-7-11 17:10 | 只看該作者
串口通信看我博文一個(gè)代碼在7.8和8.13都可以使用。https://so.csdn.net/so/search?q= ... g&u=xianfajushi。我通常都寫(xiě)一個(gè)文件中接收與發(fā)送,要分開(kāi)也簡(jiǎn)單。
回復(fù)

使用道具 舉報(bào)

11#
ID:1127903 發(fā)表于 2025-4-1 15:55 | 只看該作者
lkc8210 發(fā)表于 2023-6-13 11:05
附件是我收集的各版本的仿真驅(qū)動(dòng)(到8.13)
把檔案內(nèi)的MCS8051.DLL替換掉以下檔案試試
C:\Program Files\La ...

成功了,謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表