//***************************************
// HMC5883 IIC测试程序
// 使用单片机STC89C51
// 晶振:11.0592M
// 显示:LCD1602
// 编译环境 Keil uVision2
// 参考宏晶网站24c04通信程序
// 时间:2011年3月1日
//****************************************
#include
#include //Keil library
#include //Keil library
#include
#define uchar unsigned char
#define uint unsigned int
//使用的端口,请按照以下接线
#define DataPort P0 //LCD1602数据端口
sbit SCL=P1^0; //IIC时钟引脚定义
sbit SDA=P1^1; //IIC数据引脚定义
sbit LCM_RS=P2^0; //LCD1602命令端口
sbit LCM_RW=P2^1; //LCD1602命令端口
sbit LCM_EN=P2^2; //LCD1602命令端口
#define SlaveAddress 0x3C //定义器件在IIC总线中的从地址
typedef unsigned char BYTE;
typedef unsigned short WORD;
BYTE BUF[8]; //接收数据缓存区
uchar ge,shi,bai,qian,wan; //显示变量
int dis_data; //变量
void delay(unsigned int k);
void InitLcd();
void Init_HMC5883(void); //初始化5883
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_HMC5883(uchar REG_Address,uchar REG_data); //单个写入数据
uchar Single_Read_HMC5883(uchar REG_Address); //单个读取内部寄存器数据
void Multiple_Read_HMC5883(); //连续的读取内部寄存器数据
//以下是模拟iic使用函数-------------
void Delay5us();
void Delay5ms();
void HMC5883_Start();
void HMC5883_Stop();
void HMC5883_SendACK(bit ack);
bit HMC5883_RecvACK();
void HMC5883_SendByte(BYTE dat);
BYTE HMC5883_RecvByte();
void HMC5883_ReadPage();
void HMC5883_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;
}
/*******************************/
void delay(unsigned int k)
{
unsigned int i,j;
for(i=0;i
关键字:HMC5883 IIC 测试程序
引用地址:
HMC5883 IIC测试程序
推荐阅读最新更新时间:2024-03-16 14:25
ATMega8 PWM 功能(T/C 1)测试程序
#include avr/io.h #include avr/delay.h #define uchar unsigned char #define uint unsigned int #define FREQ 4 //延时 void DelayMs(uint ms) { uint i; for(i=0;i ms;i++) _delay_loop_2(FREQ * 250); } int main (void) { uchar direction=1; uchar PWM =0; // 8位 相位 修正PWM模式 //
[单片机]
51单片机之IIC&EEPROM的驱动程序
#include reg52.h #include ./delay/delay.h sbit SCL = P2^0; sbit SDA = P2^1; bit ack = 0; unsigned char flag = 1; #define LCDPORT P0 #define LCD_WRITE_DATA 1 #define LCD_WRITE_COM 0 sbit RS = P2^4; sbit RW = P2^5; sbit E = P2^6; #define SUCC 0 #define ERR 1 void iic_start() { SDA = 1; //先操作SDA,在操作SCL SCL =
[单片机]
Em78p458/9 比较器功能测试程序
;***********************************************************************; ;title: Em78p458/9 comparator test program ; ;Description:比较器结果由Port60输出,当R3的bit7为1时,输出high pulse,当R3的 ; ; bit7为0时,输出low pulse.比较器输出由port57输出与port60一样的 ; ; 波形。 ; ;Company: ELAN MICROELECTRONIC
[单片机]
MSP430 IIC通信
#include msp430f149.h #define OP_READ 0xa1 //器件地址读 #define OP_WRITE 0xa0 //器件地址写 #define uchar unsigned char #define uint unsigned int #define SDA_OUT P1DIR |= BIT3 #define SDA_IN P1DIR &= ~BIT3 #define SCL_OUT P1DIR |= BIT2 #define SCL_IN P1DIR &= ~BIT2 #define SDA_H P1OUT |= BIT3 #define SDA_
[单片机]
IR将在IIC展示最新电源管理方案
IR将参加2008年3月3日至4日在深圳举行的国际集成电路研讨会暨展览会 (IIC-China) 。IR的工程及应用工程师将于2D01展位展示先进的电源管理方案,并将参与以下各项活动: 3月4日(星期二),下午2时至2时30分在深圳会展中心1楼展厅举行的厂商技术讲座中,IR的沈亭忠(Richard Shen)将介绍SupIRBuck产品技术。 此外,IR的许逵炜将出席“高峰论坛:下一代音视频技术与产品设计”。这项活动将于3月4日上午10时30分至中午12时在深圳会展中心5楼牡丹厅举行。 IR也将在会上展出多种适用于照明、音频和电器应用的创新产品和平台,其中包括用于调速电机驱动的iMOTION集成式设
[手机便携]
单片机:IIC总线通信
一、IIC总线通信 1、简介: IIC 即Inter-Integrated Circuit(集成电路总线),I2C总线是PHLIPS公司推出的一种串行总线, I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。 2、常用的串行扩展总线有: (1)、I2C (Inter IC BUS)总线 (2)、单总线(1-WIRE BUS) (3)、SPI(Serial Peripheral Interface)总线等。 3、IIC总线电路接法 I2C总线通过上
[单片机]
msp430频率测试程序
基于msp430f5529用内部ADC12进行方波频率测试 main.c include include “LCD12864.H” define key1 !(P3IN&BIT1) int l = 0; unsigned int zhq,check; double hzddd,f; int Cycle ; //unsigned char tab ={ }; unsigned char tab ={” “}; unsigned char pl ={“pinlv: hz”}; int i; unsigned int a ={0}; int max,value; int key(); void find
[单片机]
IIC-China 2011春季展前专访:北京美科芯科技有限公司
IIC-China 2011 将于今年2月份在深圳(2月24-26日)开展 。本网站在开展前期对众多参展商做了问卷采访,以了解各参展商的参展情况、参展新产品、新技术以及新年期待。下面是采访详情。
公司简介:
公司紧扣建设低碳经济,加大节能减排,创造绿色生活的时代主题展开全部工作。通过对核心 计量芯片 的掌握和运作,真正支持国家和社会节能减排行动,尤其针对国家统一坚强智能电网的建设,和分户供热计量改革,全面做好芯片的技术支持和供应。
目前,公司专业致力于 智能电表 、电力仪表、超声波热表、通讯、衡器电子称等相关计量仪器仪表领域的芯片供应和技术服务。公司在2010年正式与美国ICCI(艾萨半导体)签署代
[工业控制]