找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6172|回復(fù): 6
收起左側(cè)

單片機與PC機串口通訊proteus仿真圖+源碼無效 求指導(dǎo)

  [復(fù)制鏈接]
ID:408573 發(fā)表于 2018-11-19 10:32 | 顯示全部樓層 |閱讀模式
互相學(xué)習(xí) ,有問題的歡迎提出,串口通訊仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png 0.png

單片機源程序如下:
  1. /***************   writer:shopping.w   ******************/
  2. #include <reg52.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uchar Receive_Buffer[101];
  6. uchar Buf_Index = 0;
  7. uchar code DSY_CODE[]=
  8. {
  9.          0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00
  10. };

  11. void Delay(uint x)
  12. {
  13.          uchar i;
  14.         while(x--)
  15.         {
  16.                  for(i=0;i<120;i++);
  17.         }
  18. }

  19. void main()
  20. {
  21.          uchar i;
  22.         P0 = 0x00;
  23.         Receive_Buffer[0]=i;
  24.         SCON = 0x50;
  25.         TMOD = 0x20;
  26.         PCON = 0x00;
  27.         TH1  = 0xfd;
  28.         TL1  = 0xfd;
  29.         EA   = 1;
  30.         EX0  = 1;
  31.         IT0  = 1;
  32.         ES   = 1;
  33.         IP   = 0x01;
  34.         TR1  = 1;
  35.         while(1)
  36.         {
  37.                  for(i=0;i<100;i++)
  38.                 {
  39.                          if(Receive_Buffer[i]==-1)
  40.                                 break;
  41.                         P0 = DSY_CODE[Receive_Buffer[i]];
  42.                         Delay(200);
  43.                 }
  44.                 Delay(200);
  45.         }
  46. }

  47. void Serial_INT() interrupt 4
  48. {
  49.          uchar c;
  50.         if(RI==0)
  51.                 return;
  52.         ES = 0;
  53.         RI = 0;
  54.         c  = SBUF;
  55.         if(c>='0' && c<='9')
  56.         {
  57.                  Receive_Buffer[Buf_Index]=c-'0';
  58.                 Receive_Buffer[Buf_Index+1]=-1;
  59.                 Buf_Index = (Buf_Index+1)%100;        
  60.         }
  61.         ES = 1;
  62. }

  63. void EX_INT0() interrupt 0
  64. {
  65.          uchar *s = ("Receiving From 8051...\r\n");
  66.         uchar i = 0;
  67.         while(s[i]!='\0')
  68.         {
  69.                  SBUF = s[i];
  70.                 while(TI == 0);
  71.                 TI = 0;
  72.                 i++;
  73.         }
  74. }
復(fù)制代碼

所有資料51hei提供下載:
單片機與PC機串口通訊仿真.zip (32.63 KB, 下載次數(shù): 170)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:430280 發(fā)表于 2018-11-25 21:25 | 顯示全部樓層
不能用
回復(fù)

使用道具 舉報

ID:563598 發(fā)表于 2019-6-16 13:52 | 顯示全部樓層
代碼52到69行其實可以改一下的,有點反復(fù)了
回復(fù)

使用道具 舉報

ID:649230 發(fā)表于 2019-12-7 13:34 | 顯示全部樓層
是需要PC機有串口調(diào)試助手吧
回復(fù)

使用道具 舉報

ID:262791 發(fā)表于 2019-12-7 21:23 | 顯示全部樓層
不會用呀。
回復(fù)

使用道具 舉報

ID:953306 發(fā)表于 2021-7-15 15:10 | 顯示全部樓層
這個進行仿真后怎么用,按那個開關(guān)沒反應(yīng)
回復(fù)

使用道具 舉報

ID:939710 發(fā)表于 2021-7-17 07:33 | 顯示全部樓層
這個仿真要有虛擬串口才能用的
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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