51单片机24c02的使用

发布者:innovation2最新更新时间:2016-08-23 来源: eefocus关键字:51单片机  24c02 手机看文章 扫描二维码
随时随地手机看文章
#include

#include

#define AddWr 0xae //Write Address
#define AddRd 0xaf //Read Address

//全局变量
sbit Sda=P1^2; //定义总线连接端口
sbit Scl=P1^1;
sbit WP=P1^0;//No connect here

void mDelay(unsigned char j)//A normal delay
{
unsigned int i;
for(;j>0;j--)
     {
   for(i=0;i<125;i++)
      {;}
   }
}

//启动 IIC总线
void Start(void)
{
   Sda=1;
   _nop_();_nop_();
   Scl=1;
   _nop_();_nop_();_nop_();_nop_();_nop_();
   Sda=0;
   _nop_();_nop_();_nop_();_nop_();_nop_();
   Scl=0;
}

//停止 IIC总线
void Stop(void)
{
   Sda=0;
   _nop_();
   Scl=1;
   _nop_();_nop_();_nop_();_nop_();_nop_();
   Sda=1;
   _nop_();_nop_();_nop_();_nop_();_nop_();
   Scl=0;
   }

   //应答 IIC总线
   void Ack(void)
   {
    Sda=0;
_nop_();_nop_();_nop_();
Scl=1;
_nop_();_nop_();_nop_();_nop_();_nop_();
Scl=0;
_nop_();_nop_();
}

//非应答 IIC总线
void NoAck(void)
{
Sda=1;
_nop_();_nop_();_nop_();
Scl=1;
_nop_();_nop_();_nop_();_nop_();_nop_();
Scl=0;
_nop_();_nop_();
}

//发送一个字节
void Send(unsigned char Data)

   unsigned char BitCounter=8;
   unsigned char temp;

   do
     {
   temp=Data;
   Scl=0;
   _nop_();_nop_();_nop_();_nop_();_nop_();
   if((temp&0x80)==0x80)
      Sda=1;
   else
      Sda=0;


    Scl=1;
    temp=Data<<1;
    Data=temp;
    BitCounter--;
    }
   while(BitCounter);
       Scl=0;
   }

   //读一个字节并返回变量
   unsigned char Read(void)
   {
    unsigned char temp=0;
    unsigned char temp1=0;
    unsigned char BitCounter=8;

    Sda=1;
    do
      {
    Scl=0;
          _nop_();_nop_();_nop_();_nop_();_nop_();
    Scl=1;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    if(Sda)
       temp=temp|0x01;
    else
       temp=temp&0xfe;

    if(BitCounter-1)
       {
     temp1=temp<<1;
     temp=temp1;
     }
     BitCounter--;
    }
   while(BitCounter);
   return(temp);
   }
    //write to ROM
   void WrToROM(unsigned char Data[],unsigned char Address,unsigned char Num)
   {
    unsigned char i;
    unsigned char *PData;
    PData=Data;
    for(i=0;i        {
     Start();
     Send(AddWr);//Write Address
     Ack();
     Send(Address+i);//Write sub Address
     Ack();
     Send(*(PData+i));//Write Data
     Ack();
     Stop();
     mDelay(20);
     }
    }
   //read from ROM
   void RdFromROM(unsigned char Data[],unsigned char Address,unsigned char Num)
   {
    unsigned char i;
    unsigned char *PData;
    PData=Data;
       for(i=0;i        {
     Start();
     Send(AddWr);//Write Address
     Ack();
      Send(Address+i);//Write sub Address
     Ack();
     Start();
     Send(AddRd);//Read Address
     Ack();
     *(PData+i)=Read();//Read Data
     Scl=0;
     NoAck();
     Stop();
     }
   }

void main()
{
unsigned char Number[4]={0x06,0x5b,0x4f,0x66};// 显示码值 1234
unsigned char i;
WP=0;//写保护关掉
P2=0x00;

WrToROM(Number,4,4);//写入24c02
mDelay(200);
Number[0]=0;//清除当前数据
Number[1]=0;
Number[2]=0;
Number[3]=0;
RdFromROM(Number,4,4);//调用存储数据

while(1)
       { 
           
        P0=Number[i];//显示存储数据
     mDelay(200);
     mDelay(200);
     i++;
     if(i==4)
        i=0;
    }
}

关键字:51单片机  24c02 引用地址:51单片机24c02的使用

上一篇:0832ADC的51测试程序
下一篇:51单片机音乐播放器

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

51单片机控制一路舵机控制90度来回控制源程序
分享一个用51单片机实现的一路舵机控制90度来回控制程序 单片机源程序: #include STC12C5620AD.H //STC89c52系列单片机 sbit pwm =P1^3 ; //PWM信号输出 sbit sjg =P1^2 ; //三极管,继电器 ,电磁铁 sbit cxyg =P1^0 ; //场效应管,电磁吸盘 unsigned char ci; //0.1ms次数ci,总行程300度时,11次代表90度,5次代表0度 unsigned char cishu; //进入中断次数 /*******************延时函数*********
[单片机]
51单片机读写AT24C02源代码(详细注释)
在P1口上接八个led灯,结果就显示在这八个灯上面。AT24C02的接线方式见程序的顶部的定义。以下是源代码: #include reg52.h //包含头文件 typedef unsigned char uchar; typedef unsigned int uint; #define write_c02 0xa0 #define read_c02 0xa1 sbit sda = P2^0; sbit scl = P2^1; void delay() { //delay:5us ;; } //i2c:init void i2c_init() { sda = 1; delay(); scl = 1; delay(); }
[单片机]
单片机模拟I2C总线及24C02(I2C EEPROM)读写实例
/* 51系列单片机在使用时,有时需要模拟I2C总线, */ /* 这里举出一个实例(读写串行EEPROM芯片at2402) */ /************************************************************************/ /* Name:AT24C02存储器的读写程序,用到I2C总线,含相对独立的I2C总线读写函数 */ /* Language: C51单片机编程语言 */ /* Platform: Win98,Intel Celeron 433 Processor,伟福仿真器,仿真8
[单片机]
51单片机定时器实现PWM波
51单片机是可以实现PWM波输出的,原理其实都是一样的。说白了,PWM波就是让某一个引脚输出周期性连续高低电平变化的信号。 那么如何用51单片机实现周期性的高低电平呢? 答案就是用定时器。首先我们需要配置一下定时器,这里不做过多阐述,资料到处都有。然后设置一个计数周期,比如说让定时器计一百个数产生溢出,那么这一百个数的时间就是一个周期。接下来我们就以这一百个数的时间为基准。比如设置前五十个数的时间某引脚为高电平,后五十个数为低电平。那么这个引脚就会输出一个占空比为50%的高低电平变化。这就是所谓的PWM波。 基本代码实现如下: sbitPWM=P2^0;//P2.0输出pwm int time;//定义占空比
[单片机]
51单片机教程第3讲-控制引脚
在51单片机教程第1讲中,我已经说过,学单片机就是两个内容,一个是学习控制单片机引脚,一个是学习单片机内部寄存器的配置。这一讲,来学习如何控制51单片机的引脚。 控制单片机的引脚,分为两个知识点,一个是怎么让引脚单片机输出高低电平,一个是怎么检测接入到引脚上的电平是高还是低。我们有时候会听到这样的话:“此单片机有几个IO口?”这里说的IO口,就是输入(input)输出(output)接口。一般情况下,单片机的引脚当中,除了电源引脚和晶振引脚,其它的都是IO口。当我们控制单片机的引脚高低时,我们把引脚当做输出引脚;当我们需要检测连接到单片机引脚上的电平时,我们把引脚当做输入引脚使用。 使引脚P1.5输出高电平,可以这样写: P1=0
[单片机]
89c51单片机控制两个步进电机正反转加减速
序有详细注释。 仿真原理图如下 单片机源程序如下: /******************************************************************************* * 实 验 名: 步进电机实验 * 使用的IO: 电机用P1口,键盘使用P2.0、P2.1、P2.2、P2.3、P2.4、P2.5 * 按键功能:K1;正转 K2;反转 K3;低速转动 K4;高速转动 K5:电机切换 K6;停止 * 实验效果: 按下K1键,顺时针转,按下K2键,逆时针转,按下K3键,低速,按下K4键,高速。 按下K5键,转动的电机停止,并切换到控制另一个电机 按下K6键,转动的电机停止
[单片机]
89c<font color='red'>51单片机</font>控制两个步进电机正反转加减速
51单片机PWM程序详解
#include reg51.h //程序是基于KEIL-C51编写,引入8051头文件 sbit P10=P1^0; sbit P11=P1^1; unsigned int scale; //占空比控制变量 void main(void) { unsigned int n; //延时循环变量 TMOD=0x02; //定时器0,工作模式2(0000 0010),8位定时 TH0=0x06; //定时250us(12M晶振) TL0=0x06; //预置值 TR0=1; //启动定时器0 ET0=1; //启动定时器0中断 EA=1;
[单片机]
<font color='red'>51单片机</font>PWM程序详解
基于89C51单片机的环境噪声测量仪
   1 引 言      环境噪声监测,是人类提高生活质量,加强环境保护的一个重要环节,在各大城市的繁华街区和居民区,已有大型环境噪声显示器竖立街头。但目前国内的便携式噪声测试仪,多为价格昂贵的进口专用设备,除卫生、计量等环保专业部门拥有外,无法作为民用品推广普及。本文介绍一种以89C51单片机为核心,采用V/F转换技术构成的低成本、便携式数字显示环境噪声测量仪。该仪器工作稳定、性能良好,经校验定标后能满足一般民用需要,可广泛应用于工矿企业、机关、学校等需要对环境噪声进行测量和控制的场合。 2 声压级的测量机理   人耳的听阈一般是20μPa,痛阈一般是200 Pa,其间相差107倍,这样宽广的声压范围很不易测量,
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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