资源简介
GSM监控系统设计单片机控制可以通过手机接收到监控系统所监控到的信息
代码片段和文件信息
/***************************************************************
****************************************************************
****名 称: at24c02.c AT24C02存储 *****
**** *****
****使用的资源: *****
**** *****
**** *****
****************************************************************
****************************************************************/
#include
#include
#include
//模拟I2C总线的管脚定义
#define I2C_SCL P3_6 //定义I2C总线时钟信号
#define I2C_SDA P3_7 //定义I2C总线数据信号
/******************************************************************************
函数:I2C_Delay()
功能:模拟I2C总线延时
说明:请根据具体情况调整延时值
******************************************************************************/
void I2C_Delay()
{
unsigned char t = 10;
while ( --t != 0 ); //延时2*t个机器周期
}
/******************************************************************************
函数:I2C_Init()
功能:I2C总线初始化,使总线处于空闲状态
说明:在main()函数的开始处,应当执行一次本函数
******************************************************************************/
void I2C_Init()
{
I2C_SCL = 1;
I2C_Delay();
I2C_SDA = 1;
I2C_Delay();
}
/******************************************************************************
函数:I2C_Start()
功能:产生I2C总线的起始条件
说明:SCL处于高电平期间,当SDA出现下降沿时启动I2C总线
本函数也用来产生重复起始条件
******************************************************************************/
void I2C_Start()
{
I2C_SDA = 1;
I2C_Delay();
I2C_SCL = 1;
I2C_Delay();
I2C_SDA = 0;
I2C_Delay();
I2C_SCL = 0;
I2C_Delay();
}
/******************************************************************************
函数:I2C_Write()
功能:向I2C总线写1个字节的数据
参数:dat是要写到总线上的数据
******************************************************************************/
void I2C_Write(unsigned char dat)
{
unsigned char t = 8;
do
{
I2C_SDA = (bit)(dat & 0x80);
dat <<= 1;
I2C_SCL = 1;
I2C_Delay();
I2C_SCL = 0;
I2C_Delay();
} while ( --t != 0 );
}
/******************************************************************************
函数:I2C_Read()
功能:从从机读取1个字节的数据
返回:读取的1个字节数据
******************************************************************************/
unsigned char I2C_Read()
{
unsigned char dat;
unsigned char t = 8;
I2C_SDA = 1;//在读取数据之前,要把SDA拉高,使之处于输入状态
do
{
I2C_SCL = 1; I2C_Delay();
dat <<= 1;
if ( I2C_SDA ) dat++;
I2C_SCL = 0; I2C_Delay();
} while ( --t != 0 );
return dat;
}
/******************************************************************************
函数:I2C_GetAck()
功能:读取从机应答位(应答或非应答),用于判断:从机是否成功接收主机数据
返回:0-从机应答
1-从机非应答
说明:从机在收到每一个字节后都要产生应答位,主机如果收到非应答则应当终止传输
******************************************************************************/
bit I2C_GetAck()
{
bit Ack;
I2C_SDA = 1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2955776 2010-06-09 08:54 AT89S52-GSM-Final\AT89S52单片机的安防系统硬件接线图.doc
文件 821248 2010-06-09 12:09 AT89S52-GSM-Final\smart_home.ddb
文件 6462 2010-06-04 23:21 AT89S52-GSM-Final\代码\at24c02.c
文件 1401 2010-06-04 23:21 AT89S52-GSM-Final\代码\at24c02.h
文件 2435 2010-05-18 09:46 AT89S52-GSM-Final\代码\delayms.asm
文件 189 2010-05-26 23:05 AT89S52-GSM-Final\代码\delayms.h
文件 19618 2010-06-07 19:36 AT89S52-GSM-Final\代码\gsm-at.c
文件 843 2010-05-26 18:45 AT89S52-GSM-Final\代码\gsm-at.h
文件 21779 2010-06-07 19:36 AT89S52-GSM-Final\代码\gsm-code.hex
文件 2072 2010-06-09 09:06 AT89S52-GSM-Final\代码\gsm-code.Opt
文件 175 2010-06-09 09:06 AT89S52-GSM-Final\代码\gsm-code.plg
文件 2378 2010-05-25 20:22 AT89S52-GSM-Final\代码\gsm-code.Uv2
文件 7188 2010-06-07 19:26 AT89S52-GSM-Final\代码\key.c
文件 799 2010-06-04 12:26 AT89S52-GSM-Final\代码\key.h
文件 15812 2010-06-05 10:35 AT89S52-GSM-Final\代码\lcd.c
文件 988 2010-06-01 13:11 AT89S52-GSM-Final\代码\lcd.h
文件 3027 2010-06-07 19:26 AT89S52-GSM-Final\代码\main.c
文件 3330 2010-06-07 19:17 AT89S52-GSM-Final\代码\security.c
文件 716 2010-06-02 19:42 AT89S52-GSM-Final\代码\test.c
文件 873472 2010-06-09 13:11 AT89S52-GSM-Final\基于AT89S52单片机的安防系统.doc
文件 607 2010-06-09 12:09 AT89S52-GSM-Final\该项目明确说明.txt
目录 0 2010-06-09 09:06 AT89S52-GSM-Final\代码
目录 0 2010-06-09 13:24 AT89S52-GSM-Final
文件 775419 2010-06-11 21:53 change.rar
----------- --------- ---------- ----- ----
5515734 24
评论
共有 条评论