数据载入中...  
数据载入中...
时 间 记 忆
数据载入中...
最 新 评 论
数据载入中...
专 题 分 类
数据载入中...
最 新 日 志
数据载入中...
最 新 留 言
数据载入中...
搜 索
用 户 登 录
数据载入中...
友 情 连 接
博 客 信 息
数据载入中...


 
Mega8学习笔记(10.2.2)-------cocoguojia 原创
[ 2008-6-12 11:04:00 | By: 嘉哥 ]
 

Mega8学习笔记(10.2.1-------cocoguojia 原创

 

//----------------------------------

//发送一个字节 temp

void send(u8 temp)

{    

      u8 i;  

      for(i=0;i<=7;i++)

      {

          

            if((temp&0x80)==0x80)

            {

                  SDA=1;

            }

            else

            {

                  SDA=0;    

            } 

            temp=temp<<1;

            delay_us(2);

           

            SCL=1;

            delay_us(2);

            SCL=0;

            delay_us(2);

      }

      SCL=0;

      delay_us(5);

      while(!ack())

      {  

         ;

      }

} 

//----------------------------------

 

//----------------------------------

void stop(void)

{    

      SDA=0;

      delay_us(2);

      SCL=1;

      delay_us(2);

      SDA=1;

      delay_us(2);

      SCL=0;

      delay_us(2);     

}

//----------------------------------  

 

//----------------------------------

u8 read(void)

{

      u8 data_read=0;

      u8 i;

      SDA=1;

      delay_us(2);

      DDRC.5=0;

      delay_us(2);

      for(i=0;i<=7;i++)

      {

          

            SCL=1;

            delay_us(2);

            if(PINC.5==1)

            {

                 data_read|=0X01;

            }

            else

            {

                 ; 

            }

            if(i!=7)

            {

                  data_read=data_read<<1;

            }      

            SCL=0;

            delay_us(2);

         

      } 

      DDRC.5=1;

      delay_us(2);

      SDA=0;

      delay_us(2);

      SCL=1;

      delay_us(2);

      SCL=0;

      delay_us(2);

      return data_read;

     

} 

//----------------------------------  

 

//----------------------------------

void main(void)

{

      init(); 

     

      start();

      send(0xa0);    

      send(0x02); 

      send(0x55); 

      stop();

      delay_ms(15);

 

      start();

      send(0xa0);       

      send(0x02);

      stop();

         

      start();

      send(0xa1);      

      PORTB=read();

      stop();

     while(1)

     {

        ;

                

}

//----------------------------------

 

 
  • 标签:i2c mega8 cvavr 程序 
  • 发表评论:
    数据载入中...
    Powered by McuBLog.