⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 24c01.c

📁 LED渐明变灭,遥控控制,总体变化,方便使用
💻 C
字号:
#include <reg51.h>
#include <string.h>
#include <stdio.h>
#include <intrins.h>

#include "types.h"
#include "24c01.h"
#include "key.h"
#include "managment.h"

void DelayMs(uint number);
void EEdaly();
//void int0_EEWrite();
void Initeeprom();
uchar EERead(uchar RomAddress,uchar RamAddress);
void EEWrite(uchar Wdata,uchar RomAddress);
void Start();
void Stop();
sbit	SCL=P3^7;
sbit	SDA=P1^0;
//-------------------------------------------------------------
void Initeeprom()
{
  // uint i,ttp;
    SCL=0;
    Stop();
    EEdaly();
    EEdaly();
    EEdaly();
    EEdaly();
   led_buf[0]=EERead(led_buf0,led_buf[0]);
   led_buf[1]=EERead(led_buf1,led_buf[1]);
   if(led_buf[0]>8) led_buf[0]=8;
   if(led_buf[1]>99) led_buf[1]=99;
 }
 //--------------------------------
 void EEdaly()
 {
  uchar i;
  for(i=10;i;i--)
   _nop_();
  }
/***************************************************************************/
void DelayMs(uint number)
{
	uint i,j;
    for(i=number;i!=0;i--)
       {
	    for(j=112;j!=0;j--)  ;
       }
}

/***************************************************************************/
void Start() {
	SCL=1;
        EEdaly();
	SDA=1;
        EEdaly();
	SDA=0;
        EEdaly();
	SCL=0;
        EEdaly();
}

/***************************************************************************/
void Stop() {
	SCL=0;
        EEdaly();
	SDA=0;
        EEdaly();
	SCL=1;
        EEdaly();
	SDA=1;
        EEdaly();
        EEdaly();
}

/***************************************************************************/
void Ack() {
	SDA=0;
        EEdaly();
	SCL=1;
       EEdaly();
	SCL=0;
       EEdaly();
	SDA=1;
       EEdaly();
     }

/***************************************************************************/
void NoAck() {
          SDA=1;
       EEdaly();
	SCL=1;
        EEdaly();
	SCL=0;
        EEdaly();
   }

/***************************************************************************/
//bit TestAck() {
//	bit ErrorBit;
//	SDA=1;
 //       EEdaly();
//	SCL=1;
//        EEdaly();
//	ErrorBit=SDA;
 //       EEdaly();
//	SCL=0;
 //       EEdaly();
//	return(ErrorBit);
//}

//**************************************************/
bit Write8Bit(uchar input)
 {
	uchar i;
	for(i=8;i;i--)
       {
                input=input<<1;
                if(CY) SDA=1;
                else  SDA=0;
                EEdaly();
		SCL=1;
                EEdaly();
		SCL=0;
                EEdaly();
   	}
    return(i);
 }
//***************************************************************************/
void EEWrite(uchar Wdata,uchar RomAddress) {
	Start();
	Write8Bit(WriteDeviceAddress);
        Ack();
//	if(TestAck())
 //          goto EEWriteEnd;
	Write8Bit((uchar)RomAddress);
         Ack();
//	if(TestAck())
 //          goto EEWriteEnd;
//	for(;number;number--)
//            {
		Write8Bit(Wdata);
//		if(TestAck())
 //                  goto EEWriteEnd;
//		Wdata++;
//	}
 //   EEWriteEnd:
         Ack();
	Stop();
	DelayMs(20);
}

/***************************************************************************/
uchar Read8Bit()
 {
    uchar i,rbyte=0;
	for(i=8;i;i--)
         {
		SCL=1;
                EEdaly();
		rbyte<<=1;
		rbyte|=(uchar)SDA;
		SCL=0;
                EEdaly();
	}
   return(rbyte);
}

//***************************************************************************/
uchar EERead(uchar RomAddress,uchar RamAddress) {
//	uchar temp,rbyte;
	Start();
	Write8Bit(WriteDeviceAddress);
        Ack();
//	if(TestAck())
//            goto EEReadFail;
	Write8Bit((uchar)RomAddress);
           Ack();
  //       if(TestAck())
    //        goto EEReadFail;
	Start();
	Write8Bit(ReadDviceAddress);
        Ack();
//	if(TestAck())
 //            goto EEReadFail;
   //for(;bytes;bytes--)
  //       {
	  RamAddress=Read8Bit();
//          if(bytes>1) Ack();       R
 //           else
//		 NoAck;
//	RamAddress++;
//	}
//	*RamAddress=Read8Bit();
  	NoAck();
 //  EEReadFail:
	Stop();
    return(RamAddress);
 }

/***************************************************************************/
// void int0_EEWrite(void)
// {
//   uint i,ttp;
//   clrscr(); //清屏
//    EPutstr(0,0,modalstring[ModalNumber&0x7f]);
//    EEWrite((uchar)ModalNumber&0x7f,MODALNUMBERADDRESS);
//    for(i=0;i<3;i++)
//    {
//      ttp=(ModalNumber&0x7f)*4+i;
//      EEWrite((uchar)Para[i],PARAADDRESS+ttp);
//     }
// }



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -