標(biāo)題: 51單片機(jī)如何接收16位數(shù)據(jù)呢 [打印本頁]

作者: w322405    時(shí)間: 2017-10-10 10:11
標(biāo)題: 51單片機(jī)如何接收16位數(shù)據(jù)呢
學(xué)到串口通信了,現(xiàn)在需要從上位機(jī)發(fā)送一個(gè)16位的數(shù)據(jù)在數(shù)碼管上顯示出來,接收部分該怎么寫呢?(我的思路是建一個(gè)數(shù)組緩存接收到的數(shù)據(jù)等16位數(shù)據(jù)接收完成了后在讀取出來,然后數(shù)碼管顯示,但不知道該怎么寫緩存數(shù)組啊,求大神給個(gè)例程)
作者: egang    時(shí)間: 2017-10-10 11:07
//′®¿úéèÖà 11.05920M 2¨ìØÂê9600        T11¤×÷·½ê½Îa1 ×÷Îa2¨ìØÂê·¢éúÆ÷
void uart_init_com()          
{
  TMOD=0x20;
  PCON=0x00;
  SCON=0x50;
  TH1=0xfd;
  TH1=0xfd;
  TR1=1;
}
main函數(shù):
unsigned char com_buf[6] ;
while(1)
      {
              com_buf[x] = USART_Receive();
            if(com_buf[x]=='\r')//接收以回車結(jié)束
           break;      
       。。。顯示函數(shù)
        x++;   
      }


作者: w322405    時(shí)間: 2017-10-10 12:29
egang 發(fā)表于 2017-10-10 11:07
//′úéè 11.05920M 2¨ìê9600        T11¤×÷·ê ...

謝謝大神

作者: zl2168    時(shí)間: 2017-10-10 14:51
USART_Receive()?????謝什么?
作者: zl2168    時(shí)間: 2017-10-10 14:54
收就收!收好后就存!存好后就顯示!看樣子你一點(diǎn)基礎(chǔ)都沒有,建議先學(xué)點(diǎn)基礎(chǔ)再說。
作者: wdz    時(shí)間: 2017-10-10 15:33
接受的時(shí)候考慮包頭
作者: w322405    時(shí)間: 2017-10-10 17:35
zl2168 發(fā)表于 2017-10-10 14:54
收就收!收好后就存!存好后就顯示!看樣子你一點(diǎn)基礎(chǔ)都沒有,建議先學(xué)點(diǎn)基礎(chǔ)再說。

請(qǐng)老師指點(diǎn),謝謝
作者: w322405    時(shí)間: 2017-10-10 17:36
wdz 發(fā)表于 2017-10-10 15:33
接受的時(shí)候考慮包頭

能否給個(gè)例程,我參考下?謝謝
作者: 小魔獸哈登    時(shí)間: 2017-10-10 19:19

//′®¿úéèÖà 11.05920M 2¨ìØÂê9600        T11¤×÷·½ê½Îa1 ×÷Îa2¨ìØÂê·¢éúÆ÷
void uart_init_com()         
{
  TMOD=0x20;
  PCON=0x00;
  SCON=0x50;
  TH1=0xfd;
  TH1=0xfd;
  TR1=1;
}
main函數(shù):
unsigned char com_buf[6] ;
while(1)
      {
              com_buf[x] = USART_Receive();
            if(com_buf[x]=='\r')//接收以回車結(jié)束
           break;      
       。。。顯示函數(shù)
        x++;   
      }
作者: egang    時(shí)間: 2017-10-10 22:37
unsigned char USART_Receive( void )
{
    uchar buf =0;
        while(!RI);
          RI=0;
        buf=SBUF;
        return buf ;
}

void uart_init_com()         
{
  TMOD=0x20;
  PCON=0x00;
  SCON=0x50;
  TH1=0xfd;
  TH1=0xfd;
  TR1=1;
}
#define N 20
main函數(shù):
...
unsigned char x=0;
unsigned char com_buf[N] ;
...
while(1)
      {
              com_buf[x] = USART_Receive();
            if(com_buf[x]=='\r')//接收以回車結(jié)束
           break;
        x++;   
      }
      
       。。。加顯示函數(shù)


作者: B435761040    時(shí)間: 2017-10-11 00:59
把接收的數(shù)據(jù) 轉(zhuǎn)存到數(shù)組,顯示的時(shí)候調(diào)出來不就行了

作者: zl2168    時(shí)間: 2017-10-11 11:05
w322405 發(fā)表于 2017-10-10 17:35
請(qǐng)老師指點(diǎn),謝謝

80C51串行通信
實(shí)例77  雙機(jī)串行通信方式1
實(shí)例77 雙機(jī)通信方式1.rar (40.4 KB, 下載次數(shù): 13)


實(shí)例78  雙機(jī)串行通信方式2 實(shí)例78 雙機(jī)通信方式2.rar (46.57 KB, 下載次數(shù): 5)
實(shí)例79  雙機(jī)串行通信方式3 實(shí)例79 雙機(jī)通信方式3.rar (45.3 KB, 下載次數(shù): 4)
實(shí)例16  單片機(jī)與PC機(jī)虛擬串行通信 實(shí)驗(yàn)16 與PC機(jī)虛擬串行通信.rar (151.41 KB, 下載次數(shù): 7)

Proteus仿真一下,確認(rèn)有效。以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,電路與程序真實(shí)可靠可信可行。書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費(fèi)下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購(gòu)買。


作者: yzwzfyz    時(shí)間: 2017-10-11 23:04
收兩個(gè)字節(jié)后拼裝一下,不就是16位了嗎?
作者: w322405    時(shí)間: 2017-10-11 23:57
yzwzfyz 發(fā)表于 2017-10-11 23:04
收兩個(gè)字節(jié)后拼裝一下,不就是16位了嗎?

給個(gè)例程好嗎?我搞了好久還是沒搞明白,高手們給的例程我都看的云里霧里
作者: w322405    時(shí)間: 2017-10-12 08:35
yzwzfyz 發(fā)表于 2017-10-11 23:04
收兩個(gè)字節(jié)后拼裝一下,不就是16位了嗎?

我想用串口接收0~65536但是收到的數(shù)合并起來后是亂碼

作者: zjjhtony    時(shí)間: 2017-10-12 11:16
1.如附件。
2、功能發(fā)送16進(jìn)制字符,高位在前,低位在后。
3、如發(fā)送01 FF,接收后顯示01 FF。

仿真說明.jpg (128.17 KB, 下載次數(shù): 96)

仿真說明

仿真說明

aking.rar

155.12 KB, 下載次數(shù): 62


作者: qq937176129    時(shí)間: 2017-10-12 11:47
循環(huán)就收兩個(gè)
作者: annysky    時(shí)間: 2017-10-12 13:54
分段接收
作者: HUZHONGQI    時(shí)間: 2017-10-12 14:55
接受的時(shí)候考慮包頭
作者: w20100231211    時(shí)間: 2017-10-12 17:12
感謝分享!
作者: w20100231211    時(shí)間: 2017-10-12 17:12
感謝樓主的分享!
作者: 3334444    時(shí)間: 2017-10-12 20:19
謝謝樓主




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