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

QQ登錄

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

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

寫(xiě)了一個(gè)RS485風(fēng)向傳感器的程序,但無(wú)法運(yùn)行,求大家指點(diǎn)如何通過(guò)串口獲取傳感數(shù)據(jù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是單片機(jī)原理圖:



這是風(fēng)向傳感器的說(shuō)明書(shū):



以下是源程序:
  1. #include<stc12c5a.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include<stdlib.h>
  5. #include<math.h>
  6. #include<intrins.h>
  7. #include<LCD.h>
  8. uchar table[24]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  9. uchar wind_direction[8]={0x01,0x03,0x00,0x00,0x00,0x02,0xC4,0x0B};//風(fēng)向傳感器問(wèn)詢幀
  10. uchar wind_direction1[2]={0x00,0x00};//單片機(jī)接收風(fēng)向數(shù)據(jù)
  11. void delay(uint z)//延時(shí)函數(shù)
  12. {
  13.         uint x,y;
  14.         for(x=z;x>0;x--)
  15.                 for(y=110;y>0;y--);
  16. }

  17. void init()  //系統(tǒng)初始化
  18. {
  19. TMOD=0X10;//8位重裝定時(shí)器
  20. TH1=0xfa;
  21. TL1=0xfa;
  22. TR1=1;//定時(shí)器1中斷
  23. SCON=0x50;//方式1
  24. TR1=1;//定時(shí)器1中斷??
  25. IP=0X10;
  26.         EA=1;
  27.         ES=1;
  28. }

  29. void main()
  30. {
  31.         init();
  32.   while(1)
  33.         {
  34.                 int i;
  35.         for(i=0;i<8;i++)
  36.                 {
  37.                 SBUF=wind_direction[i];
  38.                         while(!TI);  //數(shù)據(jù)發(fā)送結(jié)束時(shí)TI置1
  39.                         TI=0;
  40.                 }
  41.         }
  42.         lcd1602_init();//LCD部分程序
  43.         lcd1602_locate(0x80,wind_direction[0]);
  44. }

  45. void UART_1() interrupt 4
  46. {
  47.         int i=0;
  48.         //接收完緩沖數(shù)據(jù)后RI置1
  49.         if(RI)//如果RI為1
  50.         {
  51.            RI=0,//RI置0
  52.                  //風(fēng)向傳感器
  53.                
  54.                 table[i++]=SBUF;
  55.                 if(i>8)
  56.                 {
  57.                 wind_direction1[0]=table[3];
  58.                 }
  59.         }
  60. }
復(fù)制代碼

想請(qǐng)大家看看除了LCD1602部分外,單片機(jī)通過(guò)串口獲取風(fēng)向傳感器數(shù)據(jù)這部分程序哪里不對(duì),謝謝大家。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:807591 發(fā)表于 2020-11-6 14:10 | 只看該作者
SBUF=wind_direction;  .......
回復(fù)

使用道具 舉報(bào)

板凳
ID:827243 發(fā)表于 2020-11-9 15:53 | 只看該作者
你這樣一直發(fā),不知道風(fēng)向傳感器能不能接受? 發(fā)送后起碼延時(shí)一下。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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