• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 17 رای - 2.12 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: آموزش کامل بسکام به همراه مثال
حالت خطی
#10
نقل قول: کار با حافظه داخلي ميکرو (EEPROM) :
تعداد زيادي از ميکرو هاي AVR داراي حافظه داخلي مي باشند ، حجم اين حافظه بسته به نوع ميکرو متفاوت است ، اطلاعات اين حافظه بر اثر قطع برق پاک نم يشود و مي تواند تا سالهاي زيادي محفوظ بماند .
EEPROM داخلي ميکرو هميشه اماده به کار است و کافي است شما در آن بنويسيد يا از آن بخوانيد ، نوشتن در EEPROM با دستور زير انجام مي شود :
Writeeeprom Var , Address
Var: متغير يا عدد ثابتي است که قصد ذخيره آن را داريد.
Address: مکاني از حافظه ميباشد که متغير در آن ذخيره مي شود . (در صورتي که آدرسي درج نشود متغير در اولين مکان خالي ذخيره مي شود و پيدا کردن آن با خداست)
ذخيره متغير اتوماتيک است و اخرين آدرس بستگي به نوع ميکرو دارد ( به ديتا شيت ميکرو مراجعه کنيد).
شما همچنين با دستور زير ميتوانيد اطلاعات داخل حافظه را بخوانيد:
Readeeprom Var , Address
Var : يک متغير متناسب با مقدار اطلاعات مي باشد ، که اطلاعات خوانده شده از آدرس درج شده ،در آن ريخته مي شود .
Address : آدرسي است که بايد اطلاعات از آن خوانده شود.
مانند:
$regfile = "m16def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Dim A As Byte , C As Byte
C = 12
Writeeeprom C , 1
Wait 1
Readeeprom A , 1
Locate 1 , 1 : Lcd A
End
در اين مثال مقدار 12 در متغير C ريخته شده است ، من اين متغير را در آدرس 1 حافظه داخلي ذخيره کردم ، و بعد از گذشت 1 ثانيه خانه 1 حافظه را خواندم و حاصل را در متغيرA ريختم و آن را روي LCD نمايش دادم . همانگونه که مشاهده خواهيد کرد عدد خوانده شده برابر 12 مي شود .
مثال ديگر:
$regfile = "m16def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Config Adc = Single , Prescaler = Auto
Dim A As Word , B As Byte , C As Byte
Start Adc
Do
A = Getadc(0) : A = A / 2
Locate 1 , 1 : Lcd A
Wait 1 : Incr B
If B > 180 Then
Writeeeprom A , C
C = C + 1 : B = 0
End If
If C > 3 Then
Readeeprom A , 0 : Locate 1 , 1 : Lcd A
Readeeprom A , 1 : Locate 1 , 9 : Lcd A
Readeeprom A , 2 : Locate 2 , 1 : Lcd A
Readeeprom A , 3 : Locate 2 , 9 : Lcd A
C = 0 : Else : Loop
End If
End
در برنامه بالا هر سه ساعت يک بار دماي محيط اندازه گرفته مي شود ودر حافظه داخلي ميکرو ذخيره مي شود ، بعد از گذشت 12 ساعت دما هاي ذخيره شده بر روي LCD به نمايش در ميايد .
[عکس: bnk.png]

برای ورود بر روی تصویر کلیک کنید.
www.avrprj.ir
 
پاسخ
  


پیام‌های این موضوع
RE: آموزش کامل بسکام به همراه مثال - توسط a.mehran - 09-26-2014، 04:19 PM

موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش اصطلاحات میکرو AVR a.mehran 1 5,297 09-26-2014، 04:45 PM
آخرین ارسال: a.mehran
  مدار فاصله سنج اولتراسونیک با بسکام a.mehran 2 4,917 09-02-2014، 07:56 AM
آخرین ارسال: a.mehran
  pwm با بسکام a.mehran 0 2,997 09-01-2014، 10:02 PM
آخرین ارسال: a.mehran
  راه اندازی سون سگمنت با بسکام a.mehran 0 3,078 09-01-2014، 09:56 PM
آخرین ارسال: a.mehran

پرش به انجمن:


Browsing: 6 مهمان