آموزش BASCOM AVR – بسکام – جلسه دهم
خیلی خب 🌟
حالا میریم سراغ جلسه دهم و این بار هم مفصل و کامل مینویسم تا شبیه یک فصل آموزشی باشه.
📘 آموزش BASCOM AVR – بسکام – جلسه دهم
حافظه EEPROM
۱. مقدمه
تا اینجا یاد گرفتیم دادهها را در RAM ذخیره کنیم یا روی LCD نمایش دهیم. اما مشکل RAM این است که با قطع برق همه دادهها پاک میشوند. برای ذخیره اطلاعات دائمی مثل رمز عبور، شماره تلفن یا تنظیمات دستگاه باید از EEPROM استفاده کنیم.
EEPROM مخفف Electrically Erasable Programmable Read-Only Memory است. این حافظه داخل میکروکنترلر قرار دارد و دادهها حتی بعد از قطع برق باقی میمانند.
۲. ویژگیهای EEPROM
- ظرفیت معمولی در ATmega32: ۱ کیلوبایت.
- دادهها به صورت بایت ذخیره میشوند.
- سرعت نوشتن کندتر از RAM است.
- تعداد دفعات نوشتن محدود (حدود ۱۰۰ هزار بار).
- مناسب برای ذخیره تنظیمات و دادههای مهم.
۳. دستورات EEPROM در BASCOM
Writeeeprom Value , Address→ نوشتن مقدار در آدرس مشخص.Readeeprom Variable , Address→ خواندن مقدار از آدرس مشخص.Eraseeeprom→ پاک کردن کل حافظه EEPROM.
۴. کدنویسی در BASCOM
مثال: ذخیره و خواندن داده
' پروژه ذخیره داده در EEPROM
$regfile = "m32def.dat"
$crystal = 1000000
Dim A As Byte
Writeeeprom 123 , 10 ' ذخیره عدد 123 در آدرس 10
Readeeprom A , 10 ' خواندن عدد از آدرس 10
Do
Locate 1 , 1
Lcd "Value=" ; A
Loop
End
توضیح: عدد 123 در آدرس 10 ذخیره میشود و سپس خوانده شده و روی LCD نمایش داده میشود.
۵. پروژه عملی: ذخیره رمز عبور
کد:
Dim Pass As String * 4
Dim InputPass As String * 4
' ذخیره رمز عبور پیشفرض
Writeeeprom "1234" , 0
' خواندن رمز عبور
Readeeprom Pass , 0
Do
InputPass = ""
InputPass = "1234" ' فرضاً از کیپد خوانده شده
If InputPass = Pass Then
Lcd "Access OK"
Else
Lcd "Denied"
End If
Loop
End
توضیح: رمز عبور “1234” در EEPROM ذخیره میشود. سپس کاربر رمز وارد میکند و برنامه بررسی میکند درست است یا نه.
۶. پروژه عملی: ذخیره تنظیمات
فرض کنید میخواهیم شدت نور LED را ذخیره کنیم تا بعد از قطع برق دوباره همان مقدار تنظیم شود.
کد:
Dim Bright As Byte
' خواندن مقدار ذخیرهشده
Readeeprom Bright , 5
Do
Pwm1a = Bright
Wait 1
' فرضاً کاربر مقدار جدید وارد کند
Bright = 200
Writeeeprom Bright , 5
Loop
End
توضیح: مقدار Bright از EEPROM خوانده میشود و برای PWM استفاده میشود. اگر کاربر مقدار جدید وارد کند، در EEPROM ذخیره میشود.
۷. نکات عملی
- همیشه قبل از نوشتن در EEPROM بررسی کنید که مقدار تغییر کرده باشد؛ چون تعداد دفعات نوشتن محدود است.
- برای ذخیره رشتهها (String) باید آدرسهای متوالی استفاده کنید.
- اگر دادههای زیادی دارید، بهتر است یک جدول آدرس طراحی کنید.
۸. تمرینها
- برنامهای بنویسید که یک عدد را از کاربر بگیرد و در EEPROM ذخیره کند.
- برنامهای بسازید که رمز عبور را ذخیره کند و بعد از قطع برق همچنان معتبر باشد.
- یک تنظیمات ساده (مثل شدت نور LED) ذخیره کنید و بعد از روشن شدن دوباره همان مقدار اعمال شود.
نتیجه جلسه دهم
در این جلسه یاد گرفتیم:
- حافظه EEPROM چیست و چه کاربردی دارد.
- دستورات نوشتن و خواندن داده در BASCOM.
- پروژههای عملی ذخیره رمز عبور و تنظیمات.
🔹 جلسه یازدهم: کار با سنسورهای آنالوگ (ADC) و ساخت دماسنج دیجیتال.