24c02的c51驱动

发布者:快乐的小鸟最新更新时间:2016-11-17 来源: eefocus关键字:24c02  c51驱动 手机看文章 扫描二维码
随时随地手机看文章

#include
//#include
//#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit  led=P1^0;
sbit  led2=P1^1;
sbit SCL=P3^5;  //24c02 SCL
sbit SDA=P3^4;  //24c02 SDA
//sbit DOG=P1^7;  //狗
uchar x24c02_read(uchar address);             //从24c02的地址address中读取一个字节数据
void x24c02_write(uchar address,uchar info);  //向24c02的address地址中写入一字节数据info
void x24c02_init();                           //24c02初始化子程序
void delay1(uchar x);
//void _nop_();
void x24c01_init();
void start();
void stop();
void writex(uchar j);
uchar readx();
void clock();

unsigned char code dispcode[]={0x3f,0x06, 0x5b, 0x4f, 0x66, 
                               0x6d, 0x7d,0x07,0x7f,0x6f}; //显示段代码          
void delay1(uchar x)
{
   uint i;
   for(i=0;i//   DOG=~DOG;
}
/*void _nop_() 
{
//   uchar u;
   DOG=~DOG;
}*/
void x24c02_init()
{
   SCL=1; 
   _nop_(); 
   SDA=1; 
   _nop_();
}
void start()
{
   SDA=1; 
   _nop_(); 
   SCL=1; 
   _nop_(); 
   SDA=0; 
   _nop_(); 
   SCL=0; 
   _nop_();
}
void stop()
{
   SDA=0; 
   _nop_(); 
   SCL=1; 
   _nop_(); 
   SDA=1; 
   _nop_();
}
void writex(uchar j)
{
   uchar i,temp;
   temp=j;
   for (i=0;i<8;i++)
   {
      temp=temp<<1;
   SCL=0; 
   _nop_(); 
   SDA=CY; 
   _nop_(); 
   SCL=1; 
   _nop_();
   }
   SCL=0; 
   _nop_(); 
   SDA=1; 
   _nop_();
}
uchar readx()
{
   uchar i,j,k=0;
   SCL=0; _nop_(); SDA=1;
   for (i=0;i<8;i++)
   {
      _nop_();
   SCL=1; 
   _nop_();
      if (SDA==1) 
   j=1;
      else j=0;
      k=(k<<1)|j;
   SCL=0;
   }
   _nop_(); 
   return(k);
}
void clock()
{
   uchar i=0;
   SCL=1; 
   _nop_();
   while ((SDA==1)&&(i<255))
   i++;
   SCL=0; 
   _nop_();
}
uchar x24c02_read(uchar address)
{
   uchar i;
   start(); writex(0xa0);
   clock(); writex(address);
   clock(); start();
   writex(0xa1); clock();
   i=readx(); stop();
   delay1(10);
   return(i);
}
void x24c02_write(uchar address,uchar info)
{
   EA=0;
   start(); writex(0xa0);
   clock(); writex(address);
   clock(); writex(info);
   clock(); stop();
   EA=1;
   delay1(50);
}


void delay(int us)

  int s; 
  for ( s=0; s}

void disp(unsigned char data_X)
{
   P3_1=0;
   P2=~dispcode[data_X/10];
   P3_0=1; 
   delay(200);

   P3_0=0;
   P2=~dispcode[data_X%10];
   P3_1=1;
   delay(200); 
}


void main(void) 
{


  while(1) 
  {                          
//     uchar data a=2,b=45,c=0;
     uchar  a=2,b=55,c=0;
  x24c02_init();
  x24c02_write(a,b);
  delay(200);
  c=x24c02_read(a);
 
  if(c==b)led=0;
  led2=0;
  disp(c);

  }
}
/*====================================================================//
                            main  (){
                          uchar data a=2,b=10,c=0;
                             x24c02_init();
                             x24c02_write(a,b);
                             delay1(200);
                             c=x24c02_read(a);

                             if(c==b)led=0;
                             led2=0;
                              
                             }
//==================================================================*/ 


关键字:24c02  c51驱动 引用地址:24c02的c51驱动

上一篇:KEIL C51 中 C语言加入汇编语言的使用方法
下一篇:用1602显示18b20温度的程序

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

51单片机24c02的使用
#include reg52.h #include intrins.h #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
[单片机]
STM32编程之软件模拟IIC对24C02存储器读写操作
1、主程序 #include stm32f10x_conf.h #include led.h #include key.h #include usart.h #include lcd.h #include 24cxx.h #include myiic.h #include delay.h u8 tabel = write data is:0 1 2 3 4 5 6 7 8 9 ; /* 程序功能:STM32实现24C02读写操作 当按下KEY1时,向24C02写入数组中的数据; 当按下KEY2时,从24C02中读出数据到数组。 用LCD液晶显示操作过程; 用串口显示写入和读
[单片机]
PIC单片机-普通IO口模拟I2C总线对24C02进行读写操作
使用PIC单片机的普通IO口模拟I2C总线,对24C02进行读写操作。其中,总线定义为: #define IIC_SCLK RC3 //24C02时钟线 #define IIC_SDAT RC4 //24C02数据线 将跳线帽P11短接至24C02方向,将跳线帽P6段接至IIC方向。 I2C 总线协议规定任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器,数据传送是由产生串行时钟和所有起始停止信号的主器件控制的,主器件和从器件都可以作为发送器或接收器。 I2C 总线协议定义如下: 1、只有在总线空闲时才允许启动数据传送 2、在数据传送过程中当时钟线为高电平时数据线必
[单片机]
51单片机系列——I2C通信方式——24C02(E2PROM)的应用
仿真电路如下: 代码如下: i2c.h #ifndef _I2C_H //写头文件的固定格式 #define _I2C_H //写头文件的固定格式 #include reg52.h sbit SCL=P1^2; //E2PROM24C02的引脚定义 sbit SDA=P1^3; //E2PROM24C02的引脚定义 sbit WP=P1^4; //读写保护 unsigned char I2CSendByte(unsigned char dat); unsigned char I2CReadByte(); void I2CStop(); void I2CStart(); void At24c02Write
[单片机]
51单片机系列——I2C通信方式——<font color='red'>24C02</font>(E2PROM)的应用
LCD12864的串口驱动(asm/c51)
串行数据传送共分三个字节完成: 第一字节:串口控制 格式 11111ABC A 为数据传送方向控制:H 表示数据从LCD 到MCU,L 表示数据从MCU 到LCD B 为数据类型选择:H 表示数据是显示数据,L 表示数据是控制指令 C 固定为0 第二字节:(并行)8 位数据的高4 位 格式 DDDD0000 第三字节:(并行)8 位数据的低4 位 格式 0000DDDD 串行接口时序参数:(测试条件:T=25℃ VDD=4.5V) ////////////////////////////////////////////////////////////////////////////
[单片机]
LCD12864的串口<font color='red'>驱动</font>(asm/<font color='red'>c51</font>)
1602LCD模块的C51驱动程序
手上有一片1602的LCD,ks0066的驱动芯片,带LED背光.参考网站上的一些资料,写了个驱动程序,写完了才发现,跟网上流传的代码基本上差不多 /*======================================= 1602lcd模块驱动程序 ========================================== 说明:1.晶体:11.0592MHz 2.1602驱动:ks0066 ******************************************/ #i nclude reg51.h #i nclude string.h #define
[单片机]
1602LCD模块的<font color='red'>C51</font><font color='red'>驱动</font>程序
24C02中写入当前的时间
/* //1、向24C02中写入当前的时间,下次开机就会从 上次断电时的时间开始计时 //2、重点掌握IIC总线几个常用信号的写法; // */ #include reg51.h #define uint unsigned int #define uchar unsigned char sbit sda=P1^0; sbit scl=P1^1; uchar num1,num1,flag1,flag2,sec; void delay(); void delayms(uint z); void start(); void stop(); void sck(); void writebyte(uchar date); ucha
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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