找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4093|回復(fù): 4
收起左側(cè)

單片機與PC機串口通訊Proteus仿真程序

[復(fù)制鏈接]
ID:762393 發(fā)表于 2020-12-11 20:59 | 顯示全部樓層 |閱讀模式
單片機與PC機串口通訊仿真,包含程序和仿真圖
51hei.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 (35.02 KB, 下載次數(shù): 91)


評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:691185 發(fā)表于 2021-2-8 15:29 | 顯示全部樓層
有沒有更加詳細(xì)的注釋呢
回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
ID:639169 發(fā)表于 2021-3-3 19:19 | 顯示全部樓層
開啟仿真啥都沒有

評分

參與人數(shù) 1黑幣 +13 收起 理由
51hei團團 + 13

查看全部評分

回復(fù)

使用道具 舉報

ID:328014 發(fā)表于 2021-3-4 15:23 | 顯示全部樓層

肯定沒有啊,你看這個函數(shù)void Serial_INT() interrupt 4,串口中斷以后 置一才有顯示,,你得向pc發(fā)送一個字符才顯示
回復(fù)

使用道具 舉報

ID:483407 發(fā)表于 2021-12-24 17:02 | 顯示全部樓層
仿真時,向PC發(fā)送,PC收到“D5 E2 CA C7 D3 C9 38 30 35 31 B7 A2 CB CD B5 C4 D7 D6 B7 FB B4 AE 21 0D 0A ”。從PC發(fā)送時,一次只能發(fā)一個ASCII,如41,則VT1顯示“A"
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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