Electrobot

وبلاگ تخصصی مدارت الکترونیک و رباتیک

Electrobot

وبلاگ تخصصی مدارت الکترونیک و رباتیک

در این وبلاگ آموزش هایی از الکترونیک و رباتیک قرار داده خواهد شد و دیتاشیت مدارات کاربردی توضیح داده میشود .

طبقه بندی موضوعی

۲ مطلب با کلمه‌ی کلیدی «میکرو» ثبت شده است

۲۹ ارديبهشت۲۳:۲۹

جلسه سوم


1-
سلام
2-
سلام خوبی
1-
قربانت
2-
چه خبر اون چیزایی رو که بهت گفته بودم رو کار کردی مثال حل کردی ازش
1-
اره . کار کردم اونم از همش . اقا یک سوال اگه بخایم مقدار یک متغییر رو روی LCD نمایش بدیم باید چطوری عمل کنیم
2-
این که خیلی اسونه با چند تا مثال جواب سوالتو میدم


مثال 1:

کد:
$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
DIM A AS BYTE
A = 3
CLS
LCD A
END

1-
خوب تحلیلش کن
2-
باشه
خط اول که معرفی میکرو هستش
خط دوم فرکانس کاری میکرو هستش
خط سوم ما یک متغییر را که نامش هست A و را از نوع بایت می باشد را تعریف کردیم
خط چهارم به متغییر مقدار دادیم
خط پنجم با دستور CLS ال سی دی را برای نوشتن جدید پاک کردیم
خط ششم دستور دایم که مقداری را که به متغییر A داده ایم روی LCD نمایش داده شود
خط هفتم با دستور END برنامه را به پایان رساندیم.
1- اها یعنی به متغییر A هر مقداری که داده باشیم مثلا 1 یا 0 یا 1001 روی LCD نمایش داده می شود
2- کاملا درسته واما مثال دوم: این دفعه می خایم دو تا متغییر رو یکی پس از دیگری روی LCD نمایش بدیم

 

کد:
$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
DIM ALI AS BIT
DIM IRAN AS BYTE
ALI = 0
IRAN = 224
CLS
LCD ALI
CLS
LCD IRAN
END

خط اول که معرفی خود میکرو
خط دوم معرفی فرکانس کاری میکرو
خط سوم اومدیم یک متغییر از نوع BIT که نامش است ALI رو معرفی کردیم
خط چهارم هم اومدیم یک متغییر از نوع بایت که نامش هست IRAN رو معرفی کردیم
خط پنجم به متغییر BIT که نامش بود ALI یک مقدار دادیم
خط ششم هم مثل خط پنجم
خط هفتم با دستور CLS ال سی دی را برای نوشتن اماده کردیم
خط هشتم به میکرو دستور دادیم که مقدار متغییر ALI رو روی LCD نمایش بدهد
خط نهم دوباره با دستور CLS ال سی دی رو برای نوشتن دوباره پاک کردیم
خط دهم هم به میکرو دستور دادیم که مقدار متغییر IRAN رو روی ال سی دی نمایش بده
و در خط اخر نیز با دستور END برنامه رو به اتمام رساندیم
2- مثال اخر :

 

کد:
$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
DIM G AS WORD
G = 12
CLS
LCD G
INCR G
CLS
LCD G
END

خط اول و دوم رو که دیگه تکراری شده که بخام توضیح بدم
خط سوم هم تغریبا مثل قبل اومدیم یک متغییر که نامش هست G و از نوع WORD می باشد را برای میکرو تعریف کردیم
خط چهارم به متغییر G یک مقدار دلخاه دادیم
خط پنجم ال سی دی را با دستور CLS برای اماده شدن پاک کردیم
خط ششم با دستور LCD G مقدار فعلی متغییر G را که هست 12 را روی LCD نمایش دادیم
خط هفتم به متغییر G یک واحد اضافه کردیم یعنی شد 13
خط هشتم با دستور CLS ال سی دی را برای نوشتن دوباره پاک کردیم
خط نهم به میکرو دستور دادیم مقدار متغییر G را که الان به ان یک واحد اضافه شده است یعنی شده 13 رو روی ال سی دی نمایش بده
خط دهم هم یعنی پایان برنامه


1-
همه این مثالایی رو که گفتی توی محیط شبیه سازی قابل اجراست
2-
اره قابل اجراست و میتونی اونجا همه این مثال های رو مشاهده کنی.
خوب حال بریم سر مبحث بعدی
1- دستورات LCD همینا بود
2- نه هنوز چند تا دیگه هست که به موقش میگم
1- خوب برو سر مبحث بعدی
2- باشه . ببین گاهی وقتا لازم هستش که در بین برنامه هایی که داریم می نویسیم یک تاخیر ایجاد کنیم که این تاخیر می تونه یک ثاینه . ده ثانیه . یک میلی ثانیه . یک میکرو ثانیه یا هر تایمی که عشقت بود رو تاخیر ایجاد کنی
1- همین جا وایستا که یک سوال دارم . این تاخیر به چه درد می خوره لطفا فقط یک مثال کاربردی هم بزن
2- ببین مثالا شما می خای یک LED رو روشن کنی و می خای این LED بعد از مثلا ده ثانیه خاموش بشه خوب حالا ارزش این دستور باید حس کنی
1- اها فهمیدم حالا ادامه بده
2- تاخیراتی را که ما میتوانیم ایجاد کنیم بر حسب ثانیه- میلی ثانیه- میکرو ثانیه می باشد
WAIT 1 تاخیر برای مدت زمان یک ثانیه
WAITMS 1 تاخیر برای مدت زمان یک میلی ثانیه
WAITUS 1 تاخیر برای مدت زمان یک میکرو ثانیه
متاسفانه این مدت زمان های تاخیر زیاد هم دقیق نیستند مثلا شما دستور میدی که یک ثانیه تاخیر داشته باش میکرو میاد دوازده ثانیه تاخیر ایجاد میکنه
1- خوب پس چاره چیه؟؟
2- برای حل این مشکل شما باید از میلی ثانیه یا میکرو ثانیه بیشتر استفاده کنی مثال اگه می خای یک تاخیر یک ثایه ایجاد کنی باید بنویسی WAITMS 30 البته این یک مثال بود که اگه یکم با این دستورات ور بری همش دستت میاد
خوب حالا بریم سر مثال ها
مثال اول:

 

کد:
$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
DIM A AS BYTE
A = 112
CLS
LCD A
INCR A
WAITMS 500
CLS
LCD A
END

حالا تحلیل برنامه
خط اول و دوم که خودت میدونی
خط سوم هم که باید بدونی
خط چهارم هم باز باید بدونی ولی می گم که دلت نشکنه در خط چهارم ما به متغییر A یک مقدار دادیم
خط پنجم با دستور CLS ال سی دی را برای نوشتن و اماده شدن پاک کردیم
خط ششم با دستور LCD A مقدار متغییر A را که هست 112 روی ال سی دی نمایش دادیم
در خط هفتم با دستور INCR A یک واحد به متغییر A اضافه کردیم یعنی بود 112 حالا شد 113
در خط هشتم با دستور WAITMS 500 یک تاخیر پانصد میلی ثانیه ای ایجاد کردیم یعنی اینکه برنامه فعلا هیمنجا متوقف است و بعد از 500 میلی ثانیه برنامه از خط بعدی خوانده می شود
در خط نهم با دستور CLS ال سی دی را پاک کردیم
در خط دهم مقدار جدید متغییر A را که الان هست 113 روی ال سی دی نمایش دادیم
در خط اخر هم با دستور END برنامه رو پایان دادیم

 

کد:
$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
DIM S AS BYTE
S = 112
CLS
LCD S
INCR S
WAITMS 500
CLS
WAITMS 100
LCD S
END


از خط اول تا خط هشتم
خط نهم ال سی رو رو پاک کردیم
خط دهم یک تاخیر در برنامه با مدت زمان 100 میلی ثانیه ایجاد کردیم و بعد از اینکه صد میلی ثانیه گذ شت برنامه از خط بعدی ادامه پیدا می کنه
خط یازدهم دستور دادیم که مقدار جدید S را که 113 هستش رو روی ال سی دی نمایش بده
خط اخر هم پایان برنامه
1- اینم توی محیط شبیه ساز قابل اجراست
2- بله حتما. موافقی که بریم سر مبحث بعدی
1- اره بریم
2- خوب حالا رسیدیم به قسمت های جون دارتر میکرو. اگه یادت باشه اون اوایل بهت گفته بودم که میکروکنترلر دارای یک سری امکانات هستش مثل تایمر – کانتر - مبدل انالوگ به دیجیتال همچنین گفتم که یکی از امکاناتش ورودی خروجی یا همون I/O هستش که کاربردای فراون داره . مثلا در ساده ترین حالت شما با استفاده از این امکان می تونی یک LED رو روشن یا خاموش یا هر دو حالت رو انجام بدی
1- I/O چی هست
2- I یعنی ورودی O هم یعنی خروجی البت هردو از نوع دیجیتال هستند
1- ها فهمیدم . میشه یک مثال دیگه از کاربردش بزنی
2- چراکه نه حتما. فرض کن می خای با یک میکرو سوییچ ( یک نوع کلید ) یک موتور رو روشن خاموش کنی و حتما باید با یک عدد میکروسوییچ یک بار که میزنی روشن و دفعه بعد که میزنی خاموش شود
1- میکرو سوییچ همون شسی هستش ؟
2- اره میکروسوییچ همون کلید زنگ در خونتون هستش
2- در کل برای استفاده از امکانات میکروکنترلر باید از روش پیکره بندی استفاده شود که بهش می گن CONFIG یعنی شما با این کار به میکروکنترلر اعلام می کنی که می خاهم از فلان امکانات استفاده کنم . بزار اول یک سری دستورات رو لیست وار معرفی کنم بعد یکی یک اونها رو توضیح بدم
PORT
PIN
SET
RESET
TOGGLE
خوب حالا درباره هر کدوم توضیح میدم
PORT به معنی خروجی هستش هر وقت که خاستی از میکرو یک خروجی بگیری از این دستور باید استفاده کنی . مثلا یک LED رو می خای روشن کنی یا هر چیز دیگه
PIN به معنی ورودی هستش هر وقت که خاستی یه میکروکنترلر یک ورودی بدی بایداز این دستور استفاده کنی مثلا می خای یک کلید به ورودی وصل کنی البته این دستور PIN و PORT به تنهایی کاربرد ندارن که در ادامه میگم که باید چیکار کنی
SET که همون یک دیجیتال خودمونه
RESET که همون صفر دیجیتال خودمونه
TOGGLE یعنی عکس حالت فعلی بعنی اگر قبلا یک بوده حالا صفر میشه اگه قبلا صفر بوده حالا یک میشه
بزار قبل از اینکه توضیحاتمو کامل کنم یک سری اطلاعات درباره پایه های میکرو بدم . ببین هر میکرو بسته به نوعش یک تعداد پایه داره که از 8 پایش هست تا 40 پایه که هر هشت پایه رو یک پورت می نامند البته ربطی به اون پورتی که توی دستورات بهت گفتم نداره هر پورت رو که هشت پایه هستش رو با یک اسم نام گذاری می کنن که استاندارد هستش به نام های پورت A پورتB پورت C پورت D میکرو ها حداکثر چهار پورت ورودی خروجی دارن. در ضمن هر کدام از پورت ها می توانند ورودی یا خروجی باشند که بستگی به انتخاب برنامه نویس داره علامت پورت ها به ترتیب زیر هستش:
A,0
A.1
A.2
A.3
A.4
A.5
A.6
A.7
برای پورت های B C و D هم مثل بالا هستش
1-
یک سوال . اگه بخاد حداکثر چهار پورت داشته باشه و هر پورت هم که هشتا پایه هستش پس در کل میشه 32 پایه پس چرا بعضی از میکرو ها 40 پایه هستند
2-
خوب 32 پایه هستش با به عبارتی چهار پورت بقیش مال VCC GND و... هستش
1-
اها فهمیدم ادامه بده
2-
خوب گفتیم که برای استفاده از امکانات میکرو باید انها را پیکره بندی کنیم یا به عبارتی CONFIG کنیم . حالا ما برای استفاده از ورودی خروجی میکروکنترلرI/O هم باید اونو پیکره بندی کنیم یعنی به میکرو اعلام کینم که اقا ما میخاهیم از فلان پایه تو به عنوان ورودی یا مثلا خروجی استفاده کنیم.
اگه خاستیم از یک پورت به عنوان خروجی استفاده کنیم باید به ترتیب مثال زیر عمل کنیم:
مثال : مثلا می خاهیم از پورت A به عنوان خروجی استفاده کنیم :
CONFIG PORTA = OUTPUT
حالا تحلیل این دستور. CONFIG که بهت گفتم یهنی چی PORTA یعنی می خواهیم از پورت A به عنوان خروجی استفاده کنیم به جای A از هر پورت دلخاه دیگه هم می تونیم استفاده کنیم . علا مت مساوی = رو که باید همیشه بزاری . عبارت OUTPUT هم یعنی خروجی
اگه خاستیم از یک پورت به عنوان ورودی استفاده کنیم باید به ترتیب مثال زیر عمل کنیم :
مثال : مثلا می خاهیم از پورت B به عنوان وردی استفاده کنیم
CONFIG PINB.0 = INPUT
حالا گوش فرا بده به تحلیل این دستور. CONFIG که گفتم قبلا. خوب PINB.0 یعنی ما می خاهیم از پایه B.0 به عنوان ورودی استفاده کنیم . = هم که هیچی همیشه باید بزاری. کلمه INPUT را وقتی میزاری که خاسته باشی از یک پایه به عنوان ورودی استفاده کنی
3-
خوب بزار یک مرور بکینم . اگر خاستیم که از یک پایه به عنوان ورودی استفاده کنیم از دستور
CONFIG PINC.0 = INPUT استفاده کنیم که ما دراین مثال از پورت C.0 به عنوان ورودی استفاده کردیم نکته اینجاست که هر وقت که خاستی از یک پایه به عنوان ورودی استفاده کنی باید شماره پایه رو هم مثل همین مثال بالا که برای زدم استفاده کنی به جای PINB.0 هم می تونی مثال بزاری PINB.1 یا PINB.3 یا بزاری PINB.7 که بستگی داره به انتخاب تو
اگر خاستیم که از یک پورت به عنوان خروجی استفاده کنیم از دستور زیر استفاده می کنیم باید از دستور زیر استفده کنی
CONFIG PORT C = INPUT ما در این مثال به میکرو فهماندیم می خاهیم از پورت C تو به عنوان خروجی استفاده کنیم
1-
شما ره پایه رو نباید بنویسیم
2-
نه نباید بنویسیم بعدا ما بین برنامه مشخص می کنیم که کدام پایه باید خروجی بدهد
بزار ادمه درس رو با یک مثال برات بگم فرض کن ما میخایم از پایه D.4 میکرو کنترلر یک خروجی بگیرم و یک LED رو روشن کنیم برای این کار از برنامه زیر استفاده می کنیم:

کد:
$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
CONFIG PORTD = OUTPUT
SET PORTD.4
END

 

خط اول ودوم که هیچ
خط سوم ما اومدیم به میکرو اعلام کردیم که می خاهیم از پورت C تو به عنوان یک خروجی استفاده کنیم
خط چهارم نوشتیم SET PORTD.4 ما بانوشتن کلمه SET این منظور را رساندیم که می خاهیم پورت D.4 یک شود . و همچنین جلوی SET نام پایه ای رو که باید یک شود یا به عبارتی دیگر SET شود رو هم اعلام کردیم
در خط اخر هم با دستور END برنامه را به پایان رساندیم
1-
یعنی اگه یک LED رو به پایه D.4 میکروکنترلر وصل میکردیم LED روشن می شد
2-
اره روشن می شد
مثال دوم: می خاهیم همان پورت D.4 را یک بار که روشن شد بعد از دو ثانیه خاموش شود

کد:
$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
CONFIG PORTD = OUTPUT
SET PORTD.4
WAITMS 2000
RESET PORTD.4
END

خط اول دوم که هیچ
خط سوم هم اومدیم تعرف کردیم که از پایه D.4 می خاهیم به عنوان خروجی استفاده کنیم
خط چهارم با دستور SET PORTD.4 پایه D.4 رو یک کردیم
خط پنجم با دستور WAITMS 2000 این را رساندیم که می خاهیم 2000 میلی ثانه به عبارتی دو ثانیه در همین جا تاخیر ایجاد شود در طول این دو ثانیه PORTD.4 در همان حالت یک باقی می ماند. بعد از دو ثانیه برنامه از خط بعد ادامه پیدا می کند
خط ششم با دستور RESET PORTD.4 به میکرو دستور دادیم که همان پایه D.4 را ریست کن یعنی صفر کن
خط اخر هم که یعنی پایان برنامه. در این مثال اگر که ما یک LED به پایه D.4 وصل می کردیم LED برای بار اول با دستور SET روشن می شد و این روشن بودن با دستور WAITMS 2000 دو ثانیه به طول می انجامید و بعد از دو ثانیه با دستور RESET PORTD.4 LED خاموش می شد چون پایه را صفر کردیم.
مثال سوم : فرض کن می خا هیم دو تا پایه رو هم زمان یک کنیم و بعد از دو ثانیه فقط یکی از انها را صفر کنیم .

کد:
$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
CONFIG PORTC = OUTPUT
SET PORTC.2
SET PORTC.7
WAITMS 2000
RESET PORTC.7
END

خط اول و دوم که هیچ
خط سوم هم که باید حتما یاد داشته باشی
خط چهارم اومدیم فرمان دادیم که پایه C.2 را یک کن
خط پنجم هم اومدیم فرمان دادیم که پایه C.7 رو یک کن
خط ششم دو ثانیه تاخیر در برنامه ایجاد کردیم که در طول این مدت پایه های C.2 و C.7 در حالت یک است
خط هفتم با دستور RESET PORTC.7 فقط پایه C.7 رو صفر کردیم. ولی پایه C.2 در همان حالت یک باقی مانده است
خط اخر هم که هیچ
مثال سوم : این مثال رو ببینم که می تونی تحلیل کنی

کد:
$REGFILE = "M16DEF.DAT"
$CRYSTAL = 8000000
CONFIG PORTA = OUTPUT
CONFIG PORTC = OUTPUT
SET PORTA.1
SET PORT C.0

حالا خودت تحلیلش کن
1-
خط اول و دوم رو که بلدم
خط سوم اومدیم به میکرو اعلام کردیم که می خاهیم از پوت A به عنوان خروجی استفاده کینم
خط چهارم هم مثل خط سوم
خط ششم دستور یک شدن پایه A.1 رو صادر کردیم
خط هفتم هم دستور یک شدن پایه C.0 رو صادر کردیم
خوب بود
2-
عالی بود
1-
حال ورودی رو برام توضیح بده
2-
ورودی باشه برای وقتی که چندتا از دستورات شرط و چندتا دستور دیگه رو گفتم برات میگم
1-
خوب حالا این صفر و یک شدن پایه ها رو میشه تو شبیه ساز نرم افزار تماشا کرد
2-
متاسفانه نه نمیشه
1-
پس باید چکار کنم
2-
دو راه داری اول اینکه بری یک میکرو بخری و خودت امتحان کنی دوم اینکه با استفاده از نرم افزار پروتوس اونو شبیه سازی کنی .
1-
خوب این پروتوس رو برام توضیح بده
2-
اینو دیگه خودت برو یاد بگیر توی انجمن های برق و الکترونیک ایرانی که تعدادشون هم زیاده به خوبی توضیح دادن
1-
باشه حالا چی رو می خای برام توضیح بدی
2-
فعلا تا همین جاشو داشته باش تا بعدا ادامشو برات توضیح بدم
پایان قسمت سوم

عرفان بیگی بروجنی | ۲۹ ارديبهشت ۹۷ ، ۲۳:۲۹
۲۷ ارديبهشت۱۸:۱۵

سلام . برای اونایی که تا حالا با میکرو کار نکردن کمی مشکله که بعضی از مفاهیم رو یاد بگیرن برای همین من اشنایی مقدماتی با avr به زبان ساده در اوردم .راستش دیگه از این ساده تر به ذهنم نرسید . دوستانی که تمایل به یادگیری avr دارن باید بدونن که باید با میانی دیجیتال اشنایی داشته باشند حداقل اینکه با گیت های منطقی اشنایی داشته باشین برای اشنایی با دیجیتال کتاب مبانی دیجیتال هنرستان یا کتاب طراحی دیجیتال نوشته موریس مانو خوبه. نوشته زیر مقدمه ای بر اشنایی با میکرو هست که گفتگوی بین دو دوست رو نشون میده که دارن درباره میکرو avr صحبت می کنن امیدوارم که مفید باشه.

1- سلام خوبی
2- سلام خوبم تو خوبی
1- اره خوبم . چکار می کنی کم پیدایی
2- اره یک چند وقتیه دارم پروژه دانشگاه رو انجام می دم
1- چی هست این پروژت
2- هیچی ساخت یک دور سنج موتور با میکروکنترلرAVR
1- چی میکروکنترلرavr ؟؟؟؟ میکرو کنترلر دیگه چیه
2- میکروکنترلر رو اگه بخام به زبون ساده بهت بگم یک کنترل کننده هستش که تقریبا هر چی ازش بخای برایت انجام میده
1- پس بگو یک رباته
2- نه منظورم هر کاری نبود ببین مثل یک کامپیوتر که بهش فرمان میدی اون هم انجام میده البته از نظر ظاهری که نگاهش کنی یک ایسی 40 پایه هستش
1- چی؟؟؟؟؟ مگه میشه یک کامپیوتر به اندازه یک ایسی چهل پایه باشه
2- نه خود کامپیوتر منظورم از کامپیوتر اینه که بهش فرمان می دی اونم انجام میده
1- بازم نفهمیدم بیشتر توضیح بده اصلا به چه دردی میخوره
2- بزار بیشتر برات توضیح بدم این یک ایسی هستش که ما به وسیله کامپیوتر برنامه نویسی می کنیم بعد برنامه رو می ریزیم توی میکرو . کاربردش هم خیلی زیاده مثلا باهاش می تونی ساعت . فرکانس متر. قفل رمز درست کنی
1- یکم بیشتر درباه خود میکرو توضیح بده
2- این میکرویی که بهت میگم یک خانواده هستش که انواع مختلفی داره که تشکیل شده از سه گروه 1-tiny 2-90s 3-mega
1- خوب فرق این سه گروه باهم چیه مثلا tiny با 90s یا با mega چه فرقی دارن
2- فرفشون توی امکاناتی که دارن هستش و همین فرق باعث شده که قیمت هاشونم باهم فرق کنه
1- منظورت از امکاناتشون چیه
2- ببین بزار بیشتر برات درباره خود میکرو توضیح بدم . از امکاناتی که این میکرو ها دارن میشه به تایمر – کانتر- تولید موج pwm – حافظه ای که اطلاعات رو توی خودش حفظ کنه – سرعت بالای انجام دستورات- I\O (یا همون ورودی خروجی خدمون) – مبدل انالوگ به دیجیتال adc – مقایسه کننده انالوگ و... . حالا که با امکاناتش اشنا شدی همینو بهت بگم که بعضی از میکرو ها توی امکاناتشون و توی مقدار حافضه با هم فرق دارن برای همین قیمتهاشونم باهم فرق میکنه
1- خوب حالا کدوم از همه امکاناتش بیشتره
2- نوع mega از همه امکاناتش بیشتر و از نظر مقدار حافضه هم از همه حافضه اش بیشتره بعد نوع 90s و در نهایت نوع tiny
1- این همه امکانات همه توی یک ایسی پس حتما باید یک صد هزار تومنی قیمتش باشه
2- نه اگه بهت بگم که بهترین نوع این میکرو که نوع mega هستش رو توی خود بازار ایران با سه هزار تومن می تونی بخری باورت نمی شه
1- چی فط سه هزار تومن اون هم بهترین نوعش اخه چطور ممکنه این همه امکانات فقط سه هزارتومن اون هم بهترین نوعش!!!!!!!!!!!!!!!!!!!!!!
2- خوب دیگه تکنولوژیه دیگه
1- راستی گفتی یکی از امکاناتش حافضه هستش بگو ببینم اصلا این حافضه به چه دردی می خوره؟؟
2- یادت میاد که بهت گفته بودم که باید به این میکرو فرمان بدیم
1- اره
2- خوب این فرمان ها رو ما با یک نرم افزار مینویسیم
1- خوب چه ربطی داره به سوال من
2- یکم صبر داشته باش . این برنامه ای که مانوشتیم توی این حالفضه قرار می گیره
1- بیشتر توضیح بده
2- حافضه میکرو avr دو تا هستش یکی حافضه بلند مدت که بهش می گن eeprom و دومی هستش حافضه کوتاه مدت که بهش می گن flash
1- خوب فرقشون باهم چیه
2- فرقشون در اینه که در حافظه کوتاه مدت با قطع تغذیه (ولتاژ) میکرو اطلاعات از بین می ره ولی در حافضه بلند مدت با قطع شدن تغذیه میکرو اطلاعات از بین نمیره
1- اها فهمیدم . خوب یادم میاد بهم گفتی که هر کاری ازش بخایم برامون انجام میده چطوری باید بهش بگیم که فلان کار رو انجام بده ؟
2- خوب بزار به صورت کلی بهت بگم که گیج نشی . ما برای کارهایی که از این میکرو می خایم باید بهش برنامه بدیم این برنامه توسط نرم افزار نوشته می شه
1- چه نرم افزاری؟
2- نرم افزارای مختلفی هستش که باهاش برای میکرو برنامه می نویسن برنامه هایی رو که من می شناسم bascom –codvision و ... هستش که من با bascom کار می کنم. خوب حالا بزار ادامه مطلب رو بگم . برنامه ای رو که ما می نویسیم زبان های مختلفی داره
1- منظورت انگلیسی یا فارسی هستش
2- نه بابا منظورم زبان های برنامه نویسی هستش که عبارتند از baisic-c –اسمبلی
1- یعنی باید همه ای زبان های برنامه نویسی رو بلد باشیم
2- نه بابا ناراحت نباش من خودم وقتی که می خاستم میکروکنترلر یاد بگیرم هیچ کدوم از این زبان ها رو یاد نداشتم . چقدر سوال می کنی منو از موضوع پرت کردی . هر کدوم از این زبان ها در یک نرم افزار خاص خودش نوشته می شه مثلا اگه دوست داشتی برنامه رو با زبان بیسیک بنویسی باید با نرم افزار baisic کار کنی اگه خاستی با زبان c برنامه بنویسی باید با نرم افزار codvision برنامه بنویسی . خوب حالا وقتی که برنامه رو نوشتی باید برنامه رو بریزی توی میکرو . حتما می خای بپرسی چطوری برنامه رو میریزن توی میکرو خوب بهت می گم با یک پروگرامر
1- چی پروگرامر دیگه چیه؟
2- نترس پروگرامر وسیله ای هستش که میکرو رو روی اون قرار میدی ویک سر دیگش وصل می شه به پرینتر کامپیوتر بعد که به کامپیوتر نصب شد از طریق نرم افزار فرمان ارسال برنامه به داخل میکرو رو میدی مثلا در نرم افزار بیسکام که بعدا مفصلا بهت توضیح میدم با زدن کلید F4 برنامه ریخته می شه داخل میکرو
1- ببین من نفهمیدم نقش این پروگرامر این وسط چیه
2- پروگرامر واسطه ای هست میان میکرو و کامپیوتر . خوب اخه مرد حسابی برنامه ای که تو برای میکرو نوشتی باید بره توی میکرو یا نه . پس از روی هوا هم که نمی شه برنامه رو فرستاد پس میان یک پروگرامر وصل می کنند به کامپیوتر و میکرو رو روی این پروگرامر قرار میدن بعد از توی کامپیوتر فرمان ارسال برنامه رو می دن
1- ببین درست فهمیدم یا نه پروگرامر تنها نقشی که داره اینه که برنامه ای که ما توی کامپیوتر نوشیتم رو بریزه توی میکروکنترلر
2- افرین
1- بازم سوال دارم
2- بگو
1- این امکاناتی رو که گفتی میکرو داره چطوری می تونیم ازش استفاده کنیم
2- این کار رو موقع برنامه نویسی بهش می گیم . مثلا می خایم از کانتر میکرو ( کانتر به معنی شمارنده ) استفاده کنیم . باید در اول برنامه بنویسیم که از کانتر می خا هیم استفاده کنیم . به این کار در اصتلاح می گویند config . البته بعدا درباره برناه نویسیش – نحوه کار با نرم افزار – اتصال سخت افزاری میکرو برای کامل توضیح می دم
1- یک مثال می تونی بزنی که کاربرد این میکرو و امکاناتش چیه؟؟؟
2- اره ولی قول بده که نترسی که برنامه شو بنویسم چون که بعدا درباره کل دستورات برنامه نویسی و نحوه کار با نرم افزار برات توضیح می دم
1- باشه
2- خوب گفتی یک مثال بزن منم یم مثال خیلی ساده میزنم . فرض کن که با دو تا میکروسوییچ می خایم یک led رو روشن خاموش کنیم . برای این کار اول باید برنامه توسط نرم افزار نوشته بشه که من در اینجا از زبان بیسیک برای نوشتن برنامه استفاده میکنم :

کد:
$regfile = "8515DEF.DAT"
$crystal = 8000000  
Config Porta = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Debounce = 25
Do
Debounce Pinb.0 , 1 , Sett , Sub
Debounce Pinb.0 , 1 , Resett , Sub
Loop
End

Sett:
Set Porta.0
Return
Resett:
Reset Porta.0
Return


1- خوب درباره اینا توضیح بده
2- صبر داشته باش اسیاب به نوبت گفتم که بعدا درباره تک تک دستورات و نحوه کار با نرم افزار برات توضیح می دم
1- قول می دی
2- قول می دم که تک تک دستورات رو با مثال زباد برات توضیح بدم
1- خوب حالا من چکار کنم
2- فعلا برو نرم افزار بیسکام (bascom) رو نصب کن تا بعد
1- باشه پس فعلا تا بعد

منبع: iranled.com

عرفان بیگی بروجنی | ۲۷ ارديبهشت ۹۷ ، ۱۸:۱۵