芯片破解ADXL345倾角传感器的51单片机源程序
芯片破解STC12C5160S2这块单片机芯片做控制,实现ADXL345倾角传感器模块测量角度
芯片破解单片机源程序如下:
- /********************************************************************
- * 文件名 :GY-29 ADXL345 测角度,角度值显示
- * 创建人 :飞翔的猫
- * 描述 : 该文件实现了用GY-29 ADXL345角度的采集,并在数码管上显示出来。
- 使用单片机STC89C51
- *晶振 :11.0592M
- *显示 :LCD1602
- *编译环境 :Keil uVision4
- ****************************************/
- #include <REG51.H>
- #include <math.h> //Keil library
- #include <stdio.h> //Keil library
- #include <INTRINS.H>
- #define uchar unsigned char
- #define uint unsigned int
- //这个一定要根据自己接的引脚来改,否则不出数据
- sbit SCL=P2^0; //IIC时钟引脚定义
- sbit SDA=P2^1; //IIC数据引脚定义
- #define DataPort P0 //LCD1602数据端口
- sbit LCM_RS=P2^4; //LCD1602命令端口
- sbit LCM_RW=P2^5; //LCD1602命令端口
- sbit LCM_EN=P2^7; //LCD1602命令端口
- #define SlaveAddress 0xA6 //定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改
- //ALT ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A
- typedef unsigned char BYTE;
- typedef unsigned short WORD;
- BYTE BUF[8]; //接收数据缓存区
- uchar ge,shi,bai,qian,wan; //显示变量
- int dis_data; //变量
- int data_xyz[3];
- void delay(unsigned int k);
- void InitLcd(); //初始化lcd1602
- void Init_ADXL345(void); //初始化ADXL345
- void WriteDataLCM(uchar dataW);
- void WriteCommandLCM(uchar CMD,uchar Attribc);
- void DisplayOneChar(uchar X,uchar Y,uchar DData);
- void conversion(uint temp_data);
- void Single_Write_ADXL345(uchar REG_Address,uchar REG_data); //单个写入数据
- uchar Single_Read_ADXL345(uchar REG_Address); //单个读取内部寄存器数据
- void Mutiple_Read_ADXL345(void);
- void clear(void); //连续的读取内部寄存器数据
- //------------------------------------
- void Delay5us();
- void Delay5ms();
- void ADXL345_Start();
- void ADXL345_Stop();
- void ADXL345_SendACK(bit ack);
- bit ADXL345_RecvACK();
- void ADXL345_SendByte(BYTE dat);
- BYTE ADXL345_RecvByte();
- void ADXL345_ReadPage();
- void ADXL345_WritePage();
- //-----------------------------------
- //*********************************************************
- void conversion(uint temp_data)
- {
- wan=temp_data/10000+0x30 ;
- temp_data=temp_data%10000; //取余运算
- qian=temp_data/1000+0x30 ;
- temp_data=temp_data%1000; //取余运算
- bai=temp_data/100+0x30 ;
- temp_data=temp_data%100; //取余运算
- shi=temp_data/10+0x30 ;
- temp_data=temp_data%10; //取余运算
- ge=temp_data+0x30;
- }

芯片解密