欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

如何將單片機(jī)串口通信的數(shù)據(jù)進(jìn)行排序?

[復(fù)制鏈接]
ID:835348 發(fā)表于 2020-10-27 19:24 | 顯示全部樓層 |閱讀模式
想把串口通信隨機(jī)發(fā)送的數(shù)據(jù)排序之后顯示在接收區(qū),在網(wǎng)上看了很多冒泡排序,自己用怎么也搞不好求幫助

單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. sbit WE = P2^7;
  6. sbit DU = P2^6;
  7. uchar num,num1;
  8. uchar code table[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};


  9. void xianshi(uchar num1)
  10. { WE = 1;
  11.   P0 = 0xfe;
  12.   WE = 0;
  13.   P0 = 0xff;
  14.   DU = 1;
  15.   P0 = table[num1];
  16.   DU = 0;
  17. }
  18.         
  19. void UART_init()
  20. {
  21.         TMOD = 0x20;          //T1工作模式2  8位自動重裝
  22.         TH1 = 0xfd;
  23.         TL1 = 0xfd;         //比特率9600
  24.         TR1 = 1;                //啟動T1定時器
  25.         SM0 = 0;
  26.         SM1 = 1;                 //串口工作方式1 10位異步
  27.         REN = 1;                //串口允許接收
  28.         EA  = 1;                //開總中斷
  29.         ES  = 1;                //串口中斷打開
  30. }
  31. void main()
  32. {
  33.         UART_init(); //串口初始化
  34.         xianshi();
  35.         while(1);        
  36. }




  37. void UART() interrupt 4
  38. {                        
  39.         if(RI)        //檢測是否接收完成
  40.         {
  41.                
  42.                 num1 = SBUF;
  43.                
  44.                   if(num1 > num)
  45.           {        num = num1;
  46.                                  }
  47.                 xianshi(num);        //將數(shù)據(jù)的最大值顯示在數(shù)碼管上   
  48.                 RI = 0
  49.           SBUF = num1;
  50.                          TI = 0;

  51.                
  52.         }
  53. }
復(fù)制代碼


回復(fù)

使用道具 舉報

ID:88256 發(fā)表于 2020-10-27 20:55 | 顯示全部樓層
什么問題都不說清楚,讓我們瞎猜啊
回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
ID:213173 發(fā)表于 2020-10-28 07:59 | 顯示全部樓層
樓主既然要把特定長度的數(shù)據(jù)串排序,就得把此數(shù)據(jù)串保存在一個固定地址,通常是定義一個緩存數(shù)組來操作。樓主的程序只能顯示當(dāng)前接收到的數(shù)值。
回復(fù)

使用道具 舉報

ID:835348 發(fā)表于 2020-10-28 09:17 | 顯示全部樓層
hhdsdy 發(fā)表于 2020-10-27 20:55
什么問題都不說清楚,讓我們瞎猜啊

就是利用串口通信,發(fā)送一串?dāng)?shù)據(jù),比如01 02 04 05 03,接收的數(shù)據(jù)要排序,從大到小,從小到大都可以01 02 03 04 05
回復(fù)

使用道具 舉報

ID:414556 發(fā)表于 2020-10-28 09:26 | 顯示全部樓層
你是要排每一次還是所有的最大,每一次要延遲一段時間后把NUM清0
回復(fù)

使用道具 舉報

ID:835348 發(fā)表于 2020-10-28 09:28 | 顯示全部樓層
amandv 發(fā)表于 2020-10-28 09:26
你是要排每一次還是所有的最大,每一次要延遲一段時間后把NUM清0

排每一次,不是排最大
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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