L3G4200D 51单片机IIC 测试程序

上传人:pu****.1 文档编号:498122909 上传时间:2023-10-28 格式:DOCX 页数:11 大小:26.38KB
返回 下载 相关 举报
L3G4200D 51单片机IIC 测试程序_第1页
第1页 / 共11页
L3G4200D 51单片机IIC 测试程序_第2页
第2页 / 共11页
L3G4200D 51单片机IIC 测试程序_第3页
第3页 / 共11页
L3G4200D 51单片机IIC 测试程序_第4页
第4页 / 共11页
L3G4200D 51单片机IIC 测试程序_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《L3G4200D 51单片机IIC 测试程序》由会员分享,可在线阅读,更多相关《L3G4200D 51单片机IIC 测试程序(11页珍藏版)》请在金锄头文库上搜索。

1、/这是 L3G4200D 51 单片机 IIC 测试程序/这是 1602 头文件 保存为 1602.h#define DataPort P0 /LCD1602 数据端口sbitLCD_RS=P2人4;/LCD1602 命令端口sbitLCD_RW=P2A5;/LCD1602 命令端口sbitLCD_EN=P2A6;/LCD1602 命令端口#include #define uchar unsigned char void WaitForEnable(void) DataPort=0xff;LCD_RS=0;LCD_RW=1;_nop_();LCD_EN=1;_nop_();_nop_();wh

2、ile(DataPort&0x80);LCD_EN=0;void WriteCommandLCD(uchar CMD,uchar Attribc) if(Attribc) WaitForEnable();LCD_RS=0;LCD_RW=0;_nop_();DataPort=CMD;_nop_();LCD_EN=1;_nop_();_nop_();LCD_EN=0;void WriteDataLCD(uchar dataW)WaitForEnable();LCD_RS=1;LCD_RW=0;_nop_();DataPort=dataW;_nop_();LCD_EN=1;_nop_();_nop_

3、();LCD_EN=0;void InitLcd()WriteCommandLCD(0x38,1);WriteCommandLCD(0x08,1);WriteCommandLCD(0x01,1);WriteCommandLCD(0x06,1);WriteCommandLCD(0x0c,1);void DisplayOneChar(uchar X,uchar Y,uchar DData) Y&=1;X&=15;if(Y)X|=0x40;X|=0x80;WriteCommandLCD(X,0);WriteDataLCD(DData);/下面是主程序部分/ / / / Tx Tx Tx Tx Tx

4、Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx / L3G4200D三轴陀螺仪IIC测试程序 / 使用单片机 STC89C51/ 晶振:11.0592M/ 显示: LCD1602/ 编译环境 Keil uVision2/ 参考 宏晶网站 24c04 通信程序/ 时间: 2011年3月1日/ / / Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx

5、Tx Tx Tx Tx Tx Tx Tx Tx Tx#include #include 1602.h #include #include #include #define uchar unsigned char#define uint unsigned intsbit SCL=P1A0 ; /IIC时钟引脚定义sbitSDA=P1T/IIC 数据引脚定义#define WHO_AM_I 0x0F#define CTRL_REG1 0x20/ 0010 0000#define CTRL_REG2 0x21#define CTRL_REG3 0x22#define CTRL_REG4 0x23#d

6、efine CTRL_REG5 0x24#define OUT_X_L 0x28#define OUT_X_H 0x29#define OUT_Y_L 0x2A#define OUT_Y_H 0x2B#define OUT_Z_L 0x2C#define OUT_Z_H 0x2D#define SlaveAddress 0xD2/定义器件在 IIC 总线中的从地址,根据 ALT ADDRESS 地址引脚不同修改typedef unsigned char BYTE;typedef unsigned short WORD;BYTE BUF8; /接收数据缓存区long temp;uchar ge,

7、shi,bai,qian,wan;/显示变量int dis_data;变量/int temp;void delay(unsigned int k);void InitL3G4200D(uchar );/初始化 L3G4200Dvoid conversion(uint temp_data);void Single_WriteL3G4200D(uchar REG_Address,uchar REG_data);/单个写入数据uchar Single_ReadL3G4200D(uchar REG_Address);/单个读取内部寄存器数据void Delay5ms();/void Multiple_

8、readL3G4200D(void);/void Delay5us();void L3G4200D_Start();void L3G4200D_Stop();void L3G4200D_SendACK(bit ack);void L3G4200D_RecvACK();void L3G4200D_SendByte(BYTE dat);BYTE L3G4200D_RecvByte();void display_x();void display_y();void display_z();/void conversion(uint temp_data) temp_data*=0.875; wan=te

9、mp_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;/ *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*

10、 *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* / / Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx /void delay(unsigned int k)unsigned int i,j;for(i=0;ik;i+)for(j=0;j121;j+);/ Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx

11、Tx Tx Tx Tx Tx Tx*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx延时 5 微秒(STC90C52RC12M)不同的工作环境,需要调

12、整此函数,注意时钟过快时需要修改当改用1T的MCU时,请调整此延时函数/Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx /void Delay5us()_nop_();_nop_();_nop_();_nop_();/延时 5 毫秒(STC90C52RC12M)不同的工作环境,需要调整此函数当改用1T的MCU时,请调整此延时函数/*void Delay5ms()WORD n = 560;while (n-);*/ T

13、x Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx起始信号*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* /Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx /void L3G4200D_Start()/拉高数据线/拉高时钟线/延时/产生下降沿/延时/拉低时钟线SDA = 1;SCL = 1;Delay5us();SDA = 0;Delay5us();SCL = 0;/ *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号