导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→有用过X24045的么?用C怎么编程呢?[carrotye]

 *第10381篇: 有用过X24045的么?用C怎么编程呢?

  
楼 主:carrotye 2003年4月15日13:24
 有用过X24045的么?用C怎么编程呢?
大侠,请问哪里有现成的X24045的C语言编程呢?
是AT89C52和X24045连接在一起的.
  
2楼:guest 2003年4月15日15:09
 //x25045
sbit CS=P1

//x25045
sbit CS=P1^0;        //
sbit SO=P1^1;        //
sbit SI=P1^2;        //
sbit SCK=P1^3;       //

void OutByte(unsigned char x){
     unsigned char i;
     ACC=x;
     for(i=0;i  <8;i++){SCK=0;ACC  <  <=1;SI=CY;SCK=1;}
     }
unsigned char InputByte(){
     unsigned char i;
     for(i=0;i  <8;i++){SCK=1;SCK=0;_nop_();ACC  <  <=1;CY=SO;ACC_0=CY;}
     return(ACC);
     }
void SetWatchDog(){
     SCK=0;CS=0;
     OutByte(0x01);    //select status register  
     OutByte(0x10);    //set watch dog 600ms,No block protect 
     CS=1;
     } 
void WriteDataToE2prom(unsigned char address,unsigned char x){
     unsigned char i;
     Reset_WatchDog();
     SCK=0;CS=0;OutByte(0x06);CS=1;  //select write status register,enable write data to the chip 
     SCK=0;CS=0;OutByte(0x02);    //write instruction
     OutByte(address);   //send start address of the data want to write to chip
     OutByte(x);     //data
     SCK=0;CS=1;     //clock
     for(i=0;i  <0x99;i++){SCK=0;CS=0;OutByte(0x05);ACC=InputByte();
          if(!ACC_0){i=0x98;} //wait for chip write data finish
                        }       
     } //after write data to chip must run'SCk=0;CS=1;' 
void ReadDataFromE2prom(unsigned char address,unsigned char x){//x must less than 9
     unsigned char i;
     Reset_WatchDog();
     SCK=0;CS=0;OutByte(0x03); //enable read data from chip
     OutByte(address);      //start address
     for(i=0;i  <x;i++){X25045Temp_Buff[i]=InputByte();}
     SCK=0;CS=1;
     } 
                          
void Store_Data_25045(){
     unsigned char i;
     Reset_WatchDog();
     for(i=0;i  <4;i++){WriteDataToE2prom(i+0x10,LampvalueBuff[i]);}
     SCK=0;CS=1;
     }     //store data 
void Read_Data_25045(){
     unsigned char i;
     Reset_WatchDog();
     ReadDataFromE2prom(0x10,0x04);
     for(i=0;i  <4;i++){LampvalueBuff[i]=X25045Temp_Buff[i];}
     }
void Store_LED_Status(){
     Reset_WatchDog();
     WriteDataToE2prom(0x14,LampvalueBuff[S_TH]);
     WriteDataToE2prom(0x15,LampvalueBuff[S_TL]);
     SCK=0;CS=1;
     }
void Read_LED_Status(){
     Reset_WatchDog();
     SCK=0;CS=0;OutByte(0x03); //enable read data from chip
     OutByte(0x14);      //start address
     LampvalueBuff[S_TH]=InputByte();
     LampvalueBuff[S_TL]=InputByte();
     SCK=0;CS=1;
     }
void Store_Password(){
     Reset_WatchDog();
     WriteDataToE2prom(0x80,0x59);
     WriteDataToE2prom(0x81,0x44);
     }
void Read_Password(){
     Reset_WatchDog();
     SCK=0;CS=0;OutByte(0x03); //enable read data from chip
     OutByte(0x80);      //start address
     PasswordTH=InputByte();
     PasswordTL=InputByte();
     SCK=0;CS=1;
     }

  
3楼:荒原野草 2003年4月15日15:18
 您好想没看清楚哦,人家问的是24045,IIC总线的.
  
4楼:guest 2003年4月15日15:25
 呵呵!
错了!

呵呵!
错了!
  
5楼:guest 2003年4月15日15:30
 有资料的话应该很好写!
有资料的话应该很好写!
  
6楼:carrotye 2003年4月16日17:51
 谢谢!还有X24C45的么?
对的,对的!我本来是想打X25045的!不过还有一个X24C45,一下子弄错了!真是运气!遇到你了.
你怎么知道我要什么呢?神了,呵呵.谢谢!
对了,你知道X24C45怎么用C编程呢?

>>>>>>对该主题发表你的看法

本主题贴数6,分页: [第1页]


[上一篇主题]:希望大家尽快告诉我!!

[下一篇主题]:请问各位,上电后,晶振两端对地测一个为3。1V一个为2。6V是否说明晶振正常工作呢?