标题: 写了一个RS485风向传感器的程序,但无法运行,求大家指点如何通过串口获取传感数据 [打印本页]

作者: 明日香    时间: 2020-11-6 11:04
标题: 写了一个RS485风向传感器的程序,但无法运行,求大家指点如何通过串口获取传感数据
这是单片机原理图:



这是风向传感器的说明书:



以下是源程序:
  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};//风向传感器问询帧
  10. uchar wind_direction1[2]={0x00,0x00};//单片机接收风向数据
  11. void delay(uint z)//延时函数
  12. {
  13.         uint x,y;
  14.         for(x=z;x>0;x--)
  15.                 for(y=110;y>0;y--);
  16. }

  17. void init()  //系统初始化
  18. {
  19. TMOD=0X10;//8位重装定时器
  20. TH1=0xfa;
  21. TL1=0xfa;
  22. TR1=1;//定时器1中断
  23. SCON=0x50;//方式1
  24. TR1=1;//定时器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);  //数据发送结束时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.         //接收完缓冲数据后RI置1
  49.         if(RI)//如果RI为1
  50.         {
  51.            RI=0,//RI置0
  52.                  //风向传感器
  53.                
  54.                 table[i++]=SBUF;
  55.                 if(i>8)
  56.                 {
  57.                 wind_direction1[0]=table[3];
  58.                 }
  59.         }
  60. }
复制代码

想请大家看看除了LCD1602部分外,单片机通过串口获取风向传感器数据这部分程序哪里不对,谢谢大家。


作者: szb314    时间: 2020-11-6 14:10
SBUF=wind_direction;  .......
作者: daemondong    时间: 2020-11-9 15:53
你这样一直发,不知道风向传感器能不能接受? 发送后起码延时一下。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1