ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 2 از 2
  1. #1
    2014/03/06
    1
    0

    راه اندازی ds1307 و دوربین

    سلام دوستان
    من دارم روی ی پروژه برای کارشناسی ام کار میکنم که اونم راه اندازی دوربین ov7670 است
    توی ی تاپیک در همین فروم دربارش بحث شده اما اشکال من رفع نشد

    چون این دوربین با i2c به میکرو وصل میشه من دارم برنامه ی i2c رو خودم دستی توی کد ویژن مینویسم و برای اینکه از برنامم مطمئن شم
    از سنسور ds1307 که از همین پروتوکل استفاده میکنه ، استفاده میکنم

    من در شبیه سازی تونستم این سنسور رو راه اندازی کنم اما سخت افزاری نه

    میشه کمکم کنید
    برنامم هم در ادامه ضمیمه کردم

    کد:
    /*****************************************************
    Chip type        : ATmega32
    Program type      : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model      : Small
    External RAM size    : 0
    Data Stack size     : 256
    *****************************************************/
    
    #include <mega32.h>
    #include <delay.h>
    #include <stdio.h>
    #include <string.h>
    
    #asm
     .equ __lcd_port=0x1B;
    #endasm
    #include <lcd.h>
    
     #define SCL PORTB.0
     #define SDA PORTB.1
     
    void itoc_write (char ad1,char ad2)
    {
    int ii;
    char komaki;
     // PORTB.0=0;
      DDRB.0=1;    //OUTPUT
      DDRB.1=1;
    //  PORTB.0=0;
    //  delay_us(5);
     // SCL=1;
      PORTB.1=1;  // SDA=1; 
      delay_us(25);
      PORTB.0=1; // SCL=1; 
      delay_us(25);
      PORTB.1=0; // START CONDITION 
      delay_us(25);
      
      
      PORTB.0=0; // SCL=0 
      
      delay_us(10);
       
      komaki=0xD0; 
      for(ii=0;ii<8;ii++)
        {
        if((komaki&0x80)!=0) PORTB.1=1;
          else  PORTB.1=0;
        delay_us(25);
        PORTB.0=1; //SCL=1
        delay_us(25);
        komaki=komaki<<1;
        PORTB.0=0;
        }  
         delay_us(25);
        DDRB.1=0; 
      //   PORTB.1=1;
        PORTB.0=1; //SCL=1
        delay_us(25);
        // PORTB.1=1;
    //    PORTB.0=0; 
    //    delay_us(5);
    //    while(PINB.1==1);
        PORTB.0=0;
        DDRB.1=1;
        delay_us(40);
        
      komaki=ad1; 
      for(ii=0;ii<8;ii++)
        {
        if((komaki&0x80)!=0) PORTB.1=1;
          else  PORTB.1=0;
        delay_us(25);
        PORTB.0=1; //SCL=1
        delay_us(25);
        komaki=komaki<<1;
        PORTB.0=0;
        }
         delay_us(25);
        DDRB.1=0; 
      //  PORTB.1=1;
        PORTB.0=1; //SCL=1
        delay_us(25);
        // PORTB.1=1;
    //    PORTB.0=0; 
    //    delay_us(5);
    //    while(PINB.1==1);
        PORTB.0=0;
        DDRB.1=1;
        delay_us(40);
    
     
        komaki=ad2; 
        for(ii=0;ii<8;ii++)
          {
          if((komaki&0x80)!=0) PORTB.1=1;
            else  PORTB.1=0;
          delay_us(25);
          PORTB.0=1; //SCL=1
          delay_us(25);
          komaki=komaki<<1;
          PORTB.0=0;
          } 
           delay_us(25);
        DDRB.1=0; 
      //  PORTB.1=1;
        PORTB.0=1; //SCL=1
        delay_us(25);
        // PORTB.1=1;
    //    PORTB.0=0; 
    //    delay_us(5);
     //    while(PINB.1==1);
        PORTB.0=0;
        DDRB.1=1;
        delay_us(40);
          
        
    
      
    
     PORTB.1=0;
     delay_us(25);
     PORTB.0=1;
     delay_us(25);
     PORTB.1=1;  // STOP 
     delay_us(40);
     
                        
      
    }
    
    
    char itoc_read(char ad1)
    {
    int ii;
    char komaki;
      DDRB.0=1;  
      DDRB.1=1;
      PORTB.0=0;
      delay_us(25);
      PORTB.1=1;  // SDA=1; 
      delay_us(25);
      PORTB.0=1; // SCL=1; 
      delay_us(25);
      PORTB.1=0; // START CONDITION 
    //  DDRB.1=0;  // INPUT
      delay_us(25);
      
      PORTB.0=0; // SCL=0 
      
      komaki=0xD0; 
      for(ii=0;ii<8;ii++)
        {
        if((komaki&0x80)!=0) PORTB.1=1;
          else  PORTB.1=0;
        delay_us(25);
        PORTB.0=1; //SCL=1
        delay_us(25);
        komaki=komaki<<1;
        PORTB.0=0;
        } 
         delay_us(25);
        DDRB.1=0; 
       //  PORTB.1=1;
        PORTB.0=1; //SCL=1
        delay_us(25);
        // PORTB.1=1;
    //    PORTB.0=0; 
    //    delay_us(5);
     //    while(PINB.1==1);
        PORTB.0=0;
        DDRB.1=1;
        delay_us(40);
          
      komaki=0;
      
      komaki=ad1; 
      for(ii=0;ii<8;ii++)
        {
        if((komaki&0x80)!=0) 
         PORTB.1=1;
          else  PORTB.1=0;
        delay_us(25);
        PORTB.0=1; //SCL=1
        delay_us(25);
        komaki=komaki<<1;
        PORTB.0=0;
        } 
         delay_us(25);
        DDRB.1=0; 
       //  PORTB.1=1;
        PORTB.0=1; //SCL=1
        delay_us(25);
        // PORTB.1=1;
    //    PORTB.0=0; 
    //    delay_us(5);
     //    while(PINB.1==1);
        PORTB.0=0;
        DDRB.1=1;
        delay_us(40);
        
     PORTB.1=0;
     delay_us(25);
     PORTB.0=1;
     delay_us(25); 
     PORTB.1=1;  // STOP 
     
     delay_us(50);
     
    
      DDRB.0=1;  
      DDRB.1=1;
    //  PORTB.0=0;
     //  delay_us(25);
     //  PORTB.1=1;  // SDA=1; 
    //  delay_us(25);
       PORTB.0=1; // SCL=1; 
    //   delay_us(25);
      PORTB.1=0; // START CONDITION 
    //  DDRB.1=0;  // INPUT
      delay_us(25);
      PORTB.0=0; // SCL=0 
       
       komaki=0;
       komaki=0xD1; 
      for(ii=0;ii<8;ii++)
        {
        if((komaki&0x80)!=0) PORTB.1=1;
          else  PORTB.1=0;
        delay_us(25);
        PORTB.0=1; //SCL=1
        delay_us(25);
        komaki=komaki<<1;
        PORTB.0=0;
        } 
         delay_us(25);
        DDRB.1=0; 
       //  PORTB.1=1;
        PORTB.0=1; //SCL=1
        delay_us(25);
        // PORTB.1=1;
    //    PORTB.0=0; 
    //    delay_us(5);
     //    while(PINB.1==1);
        PORTB.0=0;
        DDRB.1=1;
        delay_us(50);
     
      
         
        komaki=0;
        DDRB.1=0;    // INPUT 
       // PORTB.1=1;
        for(ii=0;ii<7;ii++)
          {
    //      if(PINB.1==1) komaki=komaki+1;
    //      komaki=komaki<<1; 
          PORTB.0=1;
          delay_us(25); 
          if(PINB.1==1)  komaki=komaki+1;
          komaki=komaki<<1;
          PORTB.0=0; //SCL=0
          delay_us(25);
           
          } 
           if(PINB.1==1) komaki=komaki+1;
       //   komaki=komaki>>1; 
        // DDRB.1=1;    
        
    return komaki;
         
     PORTB.1=0;
     delay_us(25);
     PORTB.0=1;
     delay_us(25);
     PORTB.1=1;  // STOP 
     delay_us(40); 
             
    
    }
      
    
     char s1[16];
     char meghdar; 
     
     
    void main(void)
    {
    
    PORTA=0x00;
    DDRA=0x00;
    PORTB=0;
    DDRB=0x00;
    
    PORTC=0x00;
    DDRC=0x00;
    
    PORTD=0x00;
    DDRD=0x00;
    
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    
    
    MCUCR=0x00;
    MCUCSR=0x00;
    
    TIMSK=0x00;
    
    UCSRB=0x00;
    
    
    ACSR=0x80;
    SFIOR=0x00;
    
    ADCSRA=0x00;
    
    SPCR=0x00;
    
    
    TWCR=0x00;
    
    lcd_init(16);
    
    
      
      itoc_write(0x06,0x11); //year 
       lcd_gotoxy(0,0);
      lcd_putsf("test2");
      
     itoc_write(0x05,0x09); //month 
      itoc_write(0x04,0x15); //date 
      meghdar= itoc_read(0x06);
       lcd_gotoxy(7,0);
       lcd_putsf("Test 1");
          sprintf(s1,"%d" ,meghdar);
           lcd_gotoxy(5,1);
          lcd_puts(s1);
    //    sprintf(s1,"%d" ,meghdar);
    //   lcd_gotoxy(5,1);
    //   lcd_puts(s1);
       delay_ms(500);
      //meghdar2=itoc_read(0x05);
     // meghdar3=itoc_read(0x04);
    //  }
    while (1)
       { 
      // itoc_write(0xD0,0x07,0x93);    //control reg 
    
    //   sprintf(s1,"%d" ,meghdar);
    //   lcd_gotoxy(5,1);
    //   lcd_puts(s1);
    //   sprintf(s2,"%d",meghdar2);
    //   lcd_gotoxy(5,1);
    //   lcd_puts(s2); 
    //    sprintf(s3,"%d",meghdar3);
    //   lcd_gotoxy(10,1);
    //   lcd_puts(s3);
    ////   
       }
    }
  2. #2
    2007/03/14
    شاهين شهر
    497
    5

    پاسخ : راه اندازی ds1307 و دوربین

    سلام
    نمونه برنامه برای راه اندازی دوربین توسط میکرو زیاد هست. برنامه های دیگه رو تست کنید
    دیتاشیت دوربین رو هم به دقت مطالعه کنید
نمایش نتایج: از 1 به 2 از 2

موضوعات مشابه

  1. راه اندازی سخت افزاری آی سی DS1307
    توسط gtna در انجمن میکروکنترلرهای AVR
    پاسخ: 36
    آخرين نوشته: 2019/11/22, 13:45
  2. مشکل در راه اندازی ds1307
    توسط electronic_lover در انجمن میکروکنترلرهای AVR
    پاسخ: 11
    آخرين نوشته: 2019/04/07, 19:59
  3. راه اندازی آی سی DS1307 با TWI
    توسط saman1989t در انجمن میکروکنترلرهای AVR
    پاسخ: 21
    آخرين نوشته: 2018/04/26, 16:03
  4. راه اندازی ds1307 در بسکام
    توسط milad brave در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2016/05/03, 20:51
  5. مشکل در راه اندازی ds1307
    توسط javad_zavr در انجمن میکروکنترلرهای AVR
    پاسخ: 20
    آخرين نوشته: 2012/11/28, 05:28

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •