اطلاعیه

Collapse
No announcement yet.

راه اندازی EEPROM 24c01 با 89S51

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    راه اندازی EEPROM 24c01 با 89S51

    سلام. تا حالا کسی این کار رو کرده؟ من الان چند روزه که الاف شدم. به نظر خیلی کار ساده ای میاد اما نتیجه کار واقعا عجیبه. مثلا می خوام عدد 35 رو تو آدرس 10 بنوسیم و بعدش که می خوام محتوای همون آدرس 10 بخونم به جای 35 بهم میده 10. مقاومت های پول پ رو هم در همه رنج ها تست کردم. تو پروتئوس کاملا خوب جواب میده اما تو عمل مشکل ساز شده.
    کد رو هم می ذارم.
    واقعا برام درد سر شده. داره برام گرون تموم میشه. بخشی از یه پروژه است که باید تحویل بدم
    کد:
    $regfile = "89c51cc.dat"
    $crystal = 12000000
    Config Sda = P2.2
    Config Scl = P2.3
    Config I2cdelay = 1
    
    Waitms 1000
    
      I2cstart                         
      I2cwbyte 160                    
      I2cwbyte 10   'address            
      I2cwbyte 35                   
      I2cstop                         
    
      Waitms 100
    
      I2cstart                    
      I2cwbyte 160               
      I2cwbyte 10 'address                     
      I2cstart                        
      I2cwbyte 161                    
      I2crbyte P3 , 9                   
      I2cstop
    
    Do
    Loop
    حتی با اسمبلی هم نوشتم و نتیجه دقیقا همین شد.

    اگه کسی قبلا این کار رو کرده واقعا ممنون میشم بهم کمک کنه.
    چون نيست ز هر چه هست جز باد بدست /// چون هست بهرچه هست نقصان و شکست
    انگار که هرچه هست در عالم نيست /// پندار که هرچه نيست در عالم هست
    «خیام»

    #2
    پاسخ : راه اندازی EEPROM 24c01 با 89S51

    من سی بلد نیستم.کد اسمبلیتو بذار شاید تونستم راهنمایی کنم.

    دیدگاه


      #3
      پاسخ : راه اندازی EEPROM 24c01 با 89S51

      نوشته اصلی توسط avrlove
      سلام. تا حالا کسی این کار رو کرده؟ من الان چند روزه که الاف شدم. به نظر خیلی کار ساده ای میاد اما نتیجه کار واقعا عجیبه. مثلا می خوام عدد 35 رو تو آدرس 10 بنوسیم و بعدش که می خوام محتوای همون آدرس 10 بخونم به جای 35 بهم میده 10. مقاومت های پول پ رو هم در همه رنج ها تست کردم. تو پروتئوس کاملا خوب جواب میده اما تو عمل مشکل ساز شده.
      کد رو هم می ذارم.
      واقعا برام درد سر شده. داره برام گرون تموم میشه. بخشی از یه پروژه است که باید تحویل بدم
      کد:
      $regfile = "89c51cc.dat"
      $crystal = 12000000
      Config Sda = P2.2
      Config Scl = P2.3
      Config I2cdelay = 1
      
      Waitms 1000
      
        I2cstart                         
        I2cwbyte 160                    
        I2cwbyte 10   'address            
        I2cwbyte 35                   
        I2cstop                         
      
        Waitms 100
      
        I2cstart                    
        I2cwbyte 160               
        I2cwbyte 10 'address                     
        I2cstart                        
        I2cwbyte 161                    
        I2crbyte P3 , 9                   
        I2cstop
      
      Do
      Loop
      حتی با اسمبلی هم نوشتم و نتیجه دقیقا همین شد.

      اگه کسی قبلا این کار رو کرده واقعا ممنون میشم بهم کمک کنه.
      سلام دوست عزیز
      شما در نوشتن کاملا درست عمل میکنید ، شرایط شروع ، فرستادن a0H یا 160 دسیمال ، فرستادن آدرس محل ذخیره و دیتایی که میخواهید انجا ذخیره کنید و شرایط استاپ
      برای خواندن ، اگر بخواهید ادرس جاری را بخوانید کافیه شرایط شروع رو ایجاد کنید سپس 161 دسیمال رو بفرستید و مقدارتون رو بخونید و شرایط پایان رو ایجاد کنید ، اما اگر از ادرس دیگری بخواهید دیتا را بخوانید باید حافظه را گول بزنید ، به این صورت که یک شرایط نوشتن ایجاد کنید ، و ادرس مکانی که میخواهید دیتا را بنویسید ، بدهید ، سپس به جای فرستادن دیتای مورد نظر ، شرایط پایان ایجاد کنید (که شما در اینجا شرایط شروع رو ایجاد کردید) ، تو دیتاشیت هم همینوگفته که شرایط شروع جدیدی ایجاد کنید ، اما من هم وقتی مثل شما دیدم نشد ، یک شرایط پایان ایجاد کردم ، سپس شرایط شروع ، و دستور خواندن و گرفتن دیتا پس شما به صورت زیر اصلاح کنید
      I2cstart
      I2cwbyte 160
      I2cwbyte 10 'address
      I2cwbyte 35
      I2cstop

      Waitms 100

      I2cstart
      I2cwbyte 160
      I2cwbyte 10
      I2cstop

      I2cstart
      I2cwbyte 161
      I2crbyte P3 , 9
      I2cstop

      Good Luck

      دیدگاه

      لطفا صبر کنید...
      X