标题: 51单片机读取LIS3DH加速度传感器数据并LCD12864显示的源码 [打印本页]

作者: xuxianren2008    时间: 2018-4-11 22:34
标题: 51单片机读取LIS3DH加速度传感器数据并LCD12864显示的源码
51单片机读取加速度传感器LIS3DH数据并显示在LCD12864上面

单片机源程序如下:
  1. #include"reg51.h"
  2. #include"12864.h"
  3. #include "lis3dh_driver.h"
  4. #include <stdio.h>
  5. #include <intrins.h>
  6. #include<stdarg.h>  


  7. #define uchar unsigned char
  8. #define uint  unsigned int

  9. u16 a=1000;


  10.   void lis3dhinit(void)
  11. {
  12. unsigned char  response=0;
  13. response = LIS3DH_SetODR(LIS3DH_ODR_100Hz);
  14. //printf("设置 ODR:%d\r\n",response);
  15. response = LIS3DH_SetMode(LIS3DH_NORMAL);
  16. //printf("设置 MODE:%d\r\n",response);
  17. response = LIS3DH_SetFullScale(LIS3DH_FULLSCALE_2);
  18. //printf("设置 SCALE:%d\r\n",response);
  19. response = LIS3DH_SetAxis(LIS3DH_X_ENABLE | LIS3DH_Y_ENABLE | LIS3DH_Z_ENABLE);
  20. //printf("设置 ENABLE:%d\r\n",response);
  21. }



  22. void main()
  23. {
  24.    AxesRaw_t ddata;
  25.    
  26.    Lcd_Init();
  27.          
  28.    //Show_number(0x80,a);

  29.         delay(1000);                 //上电,等待稳定
  30.    lis3dhinit();
  31.        
  32.   

  33.                                                                                                                                          
  34.   
  35.   while(1)
  36.   {
  37.           LIS3DH_GetAccAxesRaw(&ddata);   // 读取函数在原来的库函数上做了稍微调整

  38.         delay(60000);
  39.         delay(60000);
  40.         delay(60000);
  41.         delay(60000);
  42.         delay(60000);
  43.         delay(60000);
  44.         delay(60000);
  45.         delay(60000);
  46.         Show_number(0x80,ddata.AXIS_X);
  47.         Show_number(0x90,ddata.AXIS_Y);
  48.         Show_number(0x88,ddata.AXIS_Z);
  49.        

  50.            //Show_number(0x98,a);
  51.   }


  52. }



  53. ……………………

  54. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
51单片机读取加速度传感器LIS3DH数据并显示在LCD上面.rar (129.75 KB, 下载次数: 172)



作者: 19235654    时间: 2018-11-19 15:25
请问data.AXIS_X是不是最后的x轴加速度值,为什么我用串口输出这个值一直是0
作者: 19235654    时间: 2018-11-20 16:47
SPISendByte(0x80|Reg);
寄存器地址什么还要或一个0x80才有数据啊
作者: 诸天明月    时间: 2019-5-24 20:28
我显示这个值也是0,不知道咋处理
作者: xs_wape    时间: 2022-4-6 13:59
下载一个试试,刚下的别人的都是STM官方驱动,程序太长




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