基于AT89S52的24C02使用

发布者:WhisperingWish最新更新时间:2016-10-24 来源: eefocus关键字:AT89S52  24C02 手机看文章 扫描二维码
随时随地手机看文章
#include

#define uchar unsigned char
#define uint unsigned int
sbit scl=P3^4;
sbit sda=P3^5;
void delay0()//大约4us的延时
{
 ;;
}
void delay(uint z)//大约1ms的延时
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void start()//起始信号
{
 sda=1;
 delay0();
 scl=1;
 delay0();
 sda=0;
 delay0(); 
}
void stop()//终止信号
{
 sda=0;
 delay0();
 scl=1;
 delay0();
 sda=1;
 delay0();
}
void respons()//应答信号
{
 uchar i;
 scl=1;
 delay0();
 while(sda==1&&i<250)i++;//等待应答
 scl=0;
 delay0();
}
void write_byte(uchar date)//写数据,写一个字节
{
 uchar i;
 scl=0;
 delay0();
 for(i=0;i<8;i++)
 {
  date=date<<1;
  sda=CY;//最高位移入PSW的CY位
  delay0();
  scl=1;
  delay0();
  scl=0;
  delay0();
 }
 sda=1;//释放sda线
 delay0();
}

uchar read_byte()//读数据,读一个字节
{
 uchar i,j;
 scl=0;
 delay0();
 sda=1;
 delay0();
 for(i=0;i<8;i++)
 {
  scl=1;
  delay0();
  j=(j<<1)|sda;
  scl=0;
  delay0();
 }
 return j;
}
void write_add(uchar address,uchar date)//向某个地址写一个字节的数据
{
  start();//起始信号
  write_byte(0xa0);//器件地址+0,即1010 000 0,最后的'0'为写方向位
  respons();//应答
  write_byte(address);//写入器件的首地址
  respons();
  write_byte(date);//写入数据
  respons();
  stop();//终止信号
}
uchar read_add(uchar address)//读出某个地址的数据
{
  uchar l;
  start();//起始信号 
  write_byte(0xa0);//器件地址+0,即1010 000 0,最后的'0'为写方向位
  respons();
  write_byte(address);//要读出的首地址
  respons();
  start();//再次来起始信号
  write_byte(0xa1);//器件地址+1,即1010 000 1,最后的'1'为读方向位
  respons();
  l=read_byte();//读数据 
  stop();
  return l;//返回数据 
}
void init_24C02()//24C02初始化
{
 sda=1;//释放数据线
 delay0();
 scl=1;//释放时钟线
 delay0();
}
void main()
{
 init_24C02();
 while(1)
 {
  write_add(1,0x00);
  delay(100);//延时很有必要,因为器件写和读之间要一定的时间间隔,不然反应不过来
  P2=read_add(1);//读取24C02里的数据,"1"为其存储地址
  while(1);  
 }
}

关键字:AT89S52  24C02 引用地址:基于AT89S52的24C02使用

上一篇:8051单片机C语言基础
下一篇:基于AT89S52的ISD4004语音芯片使用

推荐阅读最新更新时间:2024-03-16 15:17

基于SMS通信的UPS监控系统设计
引言 近年来,基于公共网络的通信手段在工业远程监控中得到了广泛应用。这些远程通信手段包括公共电话网、Internet网络及无线网络等。无线通信网络不需要传输线,可以在覆盖范围内的任何地点进行通信,显然,这些优点是有线网络难以比拟的。 GSM(全球移动通信系统)网络是目前国内覆盖范围最广、应用最普遍的无线通信网络。因此,在构架远程传输系统时,完全可以利用现有的GSM无线网络,而没有必要重新建设基站。 目前利用SMS(短消息业务)进行远程监控的应用很多,例如电力远程抄表系统、远程水文监控系统、直放站远程监控系统、远程环境监控系统、远程配电监测系统以及其他远程信息查询系统。SMS适合传送数据流量较少的场合,而UPS(不间断电源)的
[单片机]
基于SMS通信的UPS监控系统设计
基于单片机的太阳能发电量的检测与设计
可再生能源太阳能发电可分为太阳能光发电(又称光伏)和太阳能热发电两大类,后者由于技术比较复杂,只能用于比较大的容量,应用受到一定限制,所以目前实际应用较少。太阳能光发电具有取之不尽,用之不竭,无污染等诸多优点,已成为人类寻求新能源的热点。但同时又存在应用间歇性,发电量与气候条件有关的缺点。因此,为提高太阳能电池的利用率,实时监控发电量是很有必要的,可以及早发现太阳能电池工作中出现的异常情况。这里提出了一种太阳能电池发电量实时监控系统的设计方案。系统利用AT89S52单片机控制,采用霍尔电流传感器对太阳能电池的输出电流测量,其突出优点是可以在几乎不消耗能量情况下,将电流转换为电压进行测量。   1 系统硬件设计   系统硬件
[单片机]
AT89S52单片机对洗衣机控制电路的设计
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在洗衣机得到广泛应用。参考电路如下图所示:
[单片机]
<font color='red'>AT89S52</font>单片机对洗衣机控制电路的设计
传感器与AT89S52单片机的接口电路设计
该测试仪以AT89S52单片机为核心,外接温湿度传感器SHTll、照度传感器TSL2561、四位共阴数码管、RS485总线通信接口以及显示切换按键。单片机上电工作后,对当前温度、湿度、光强度进行实时测量,通过按键切换将测得的3种参数通过LED数码管进行轮流显示;此外,还可以通过RS485总线与PC机进行通信,将参数值传送到上位机,以达到远程监测的目的。该测试仪的结构框图如图1所示。 测量模块电路 温度和湿度测量采用的是瑞士Sensirion公司生产的SHTll传感器。该传感器采用独特的CMOsens TM技术,将温湿度传感器、信号放大处理、A/D转换、I2C总线全部集成在一块芯片上,可直接与单片机接口。该芯片采用数字式
[单片机]
传感器与<font color='red'>AT89S52</font>单片机的接口电路设计
基于AT89S52程控开关稳压电源设计
开关电源是利用现代电力电子技术,控制开关管开通和关断的时间比率,维持稳定输出电压的一种电源。由于拥有较高的效率和较高的功率密度,开关电源在现代电子系统中的使用越来越普及。开关电源高频化、模块化和智能化是其发展方向。其中,步进可调、实时显示是开关电源智能化研究方向之一。现设计开关电源,技术指标为:输出电压30V至36V可调,最大输出电流2A,有过流保护功能,能对输出电压进行键盘设定和步进调整、步进值1V,并能实时显示输出电压和电流的开关稳压电源。 1 总体设计方案 采用AT89S52单片机为控制核心,对普通的开关电源控制部分进行优化设计,并通过软件编程实现了对开关电源的智能控制。设计中采用隔离变压器将市电变压后通过整流滤波送至D
[单片机]
基于<font color='red'>AT89S52</font>程控开关稳压电源设计
单片机与24C02的通讯
I2C的起源: I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。 I2C的特点: I2C总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件;支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 I2C总线工作原理: I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbp
[单片机]
51单片机控制24C02串行E2PROM的读写
  I2C总线是一种用于IC器件之间连接的二线制总线。它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、LCD驱动器还是键盘接口。   1.I2C总线的基本结构 采用I2C总线标准的单片机或IC器件,其内部不仅有I2C接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与控制。I2C总线接口电路结构如图1所示。 2.双向传输的接口特性 传统的单片机串行接口的发送和接收一般都
[单片机]
基于AT89s52单片机的智能救援机器人的设计
  O 引言   自从1920年捷克斯洛伐克作家卡雷尔,恰佩克的《罗萨姆的机器人万能公司》问世,人们便对机器人充满了幻想与期待。随着社会的不断发展,各行各业的分工越来越明细,机器人也能在其中扮演重要的角色来替代人们的劳动。与此同时,随着科学技术的发展,探险、救灾、排爆等危险场合工作的机器人,以及自动化生产中机器人的应用也日益广泛。因此,智能救援机器人的研制已成为急需和必要,文章就智能救援机器人的设计进行了探讨。   1 智能救援机器人的硬件设计   该智能救援机器人主要由电源模块、检测感应模块(实现巡线、避障、捡放硬币、测距功能)、声光报警模块、控制器模块、电机驱动模块、显示模块六部分组成,其结构框图如图1所示。  
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved