نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
محرم
مهدی دمیرچیلو

آموزش جامع میکروکنترلر AVR جلسه۱

انجمن های تخصصی برق و الکترونیک ECA

به نام خدا

آموزش جامع میکروکنترلر AVR جلسه۱

مطلب جلسه بعد : آموزش جامع میکروکنترلر AVR جلسه۱۲

laugh

آموزش جامع میکروکنترلر AVR جلسه1

دوستان میتونن فایل زیر رو دانلود کنن….چند تا کتاب که تو نت هست من یه جا اینجا قرار دادم براتون و بعد از خوندن ان کتاب ها میتونید این سری از مطالبی که من تو سایت گزاشتم و این اولیش هست رو بخونید……این کتاب ها بیشتر یه آموزش مقدماتی هست براتون…..

دانلود : آموزش مقدماتی AVR

منابع فایل بالا :  picpars.com   avr.ir   MadareSabz.com   plcgoods.net

فرق بین Microprocessor (ریز پردازنده) و Microcontroller (ریزکنترلگر یا میکروکنترلر )

تفاوت میکرو کنترولر و میکرو پروسسور

از زبون ویکی پدیا : 
میکرو کنترولر و میکروپروسسور تقریبا از یک شاخه تکنولوژی وساختار هستند اما در اجزای وابسته ، با هم تفاوت های عمده دارند.
در میکرو پروسسورها فقط واحد پردازش به صورت مجزا به صورت یک ای سی وجود دارد که رم و رام و حتی ثبات ها در ای سی های مجزا به میکروپروسسور وصل و تشکیل یک میکرو کامپیوتر را می دهند

اما در میکرو کنترلر تمام واحد های یک کامپیوتر از جمله رم و رام و ثبات ها در درون یک ای سی به صورت فشرده به نام میکرو کنترولر وجود دارد.مطالعه بیشتر :

که معمولا در دستگاه های تجاری برای کاهش قیمت دستگاه مانند تلویزیون و ماکروویو و غیره استفاده می شود.
از زبون خودم O_o : 

میکروپروسسور در واقع یه جور میکرو کنترلر هست با امکانات کمتر (مثلا ژیان در مقابل پژو !) .
تا اونجایی که من میدونم به میکروکنترلر میتونیم برنامه خاصی بنویسیم و بدیم تا اجرا کنه  ولی تو میکروپروسسور خود شرکت روش برنامه نویسی میکنه و نه ما.

خـــلـــا صـــه تــفـــاوت هـــا :

MicrocontrollerMicroprocessor  
MicrocontrollerMicroprocessor
هزینه کمترهزینه بیشتر
انرژی کمتری مصرف میکنهانرژی بیشتری مصرف میکنه
یه پردازنده که همه چیز با خودش داره
(در قسمت اجزای داخلی میکروکنترلر میگم)
یه پردازنده که باید بقیه چیز ها ! رو بهش وصل کنی ^_^
(به دو شکل بالا دقت شود)
فضای کمتری رو در مدارمون اشغال میکنه(میکرو کنترلر همه چیز رو به صورت فشرده در کنار خودش داره و لی تو میکرو پروسسور این طور نیست)فضای بیشتری رو اشغال میکنه.(علتش هم میتونه این باشه که کلی چیز میز باید بهش وصل کنی که قطعا باعث میشه فضای بیشتری رو اشغال کنه)
سریع تر است (چون هم چیز رو خودش داره--به خودش متکی هست ^_^)نسبت به میکروکنترلر کند تر هست علتش هم اینه کلی چیز میز باید بهش وصل بشه
میتونیم براش برنامه بنویسیم تا کار خاصی رو انجام بده.تا اونجایی که میدونم توسط شرکت برنامه ریزی میشه و ما کاری با برنامه نویسیش نداریم
تفاوت میکرو کنترلر ها و میکرو پروسسورها

میکروکنترلر چیست ؟ ||| انواع میکروکنترلها ||| انواع میکروکنترلر AVR

میکروکنترلر چیست ؟

میکرو کنترلر یک قطعه الکترونیکی میباشد که قابل برنامه ریزی است و وظایف از قبل تعیین شده توسط برنامه نویس(یعنی من و شما ^_^) را انجام میدهد.
این atmega16   ای که ما  همش باهاش کار میکنیم هم یه نوع میکروکنترلر هستش. acute
آموزش جامع میکروکنترلر AVR جلسه1

انواع  میکروکنترلها

۱) میکرو کنترلرهای سری ۸۰۵۱ ساخت شرکت    Atmel
۲) میکرو کنترلرهای سری PIC ساخت شرکت   Microchip
۳) میکروکنترلرهای سری AVR ساخت شرکت   Atmel

انواع میکروکنترلر AVR 

۱) خانواده  ATTiny AVR
۲) خانواده AT90S
۳) خانواده ATmega AVR>>>>> ما با این نوع کار میکنیم.  ^_^
۴) خانواده Xmega AVR

ّمقایسه تمام محصولات Atmel و انتخاب مناسب ترین میکرو کنترلر

برای این کار فایل زیر رو میتونید دانلود کنید.

ATMEL PRODUCT GUIDE 2009+2013

ساختمان داخلی میکروکنترلر
تو این قسمت اگه چیزی نفهمیدید زیاد مهم نیست(البته فعلا!) ؛ روزنامه وار بخونیدش boredom 

ساختمان داخلی میکروکنترلر

بطور کلی کلیه میکروکنترلرها دارای ساختمان داخلی با اعضای زیر میباشند : 
۱) واحد پردازش مرکزی (CPU)
۲) حافظه موقت خواندنی و نوشتنی (RAM)
۳) حافظه فقط خواندنی (ROM)
۴) پورت های ورودی و خروجی (I/O Ports)
۵) تایمرها و شمارنده ها (Timers and Counter)
۶) کنترلهای وقفه (Interrupt Controls)
۷) مبدل آنالوگ به دیجیتال (ADC)==>>اینو تو جلسه مبدل آنالوگ به دیجیتال توضیح میدم.
۸) مبدل دیجیتال به آنالوگ (DAC)
۹) رابط کاربری سریال (Serial Interface Ports)
۱۰) و ...

 ۱)   CPU

بطور خلاصه وظیفه CPU ها Fetch کردن (خواندن یا گرفتن) و Execute میباشد.
تمامی اطلاعاتی که در میکروکنترلر ذخیره میشود به فرماندهی Clock توسط CPU خوانده شده و آنها را اجرا میکند.

۲ و ۳) انواع حافظه در میکروکنترلر های

الف) Flash
بعد از این که کد های برنامه خودمون رو نوشتیم و توسط کامپایلر ، آن را کامپایل کردیم و به زبان قابل فهم برای میکرو تبدیل کردیم
باید این کد ها که در فایل hex.* ذخیره شدن رو داخل میکرو قرار بدیم که این کد ها در این حافظه قرار میگیرند.
توجه : برای تعریف یه چیز (آرایه-رشته-کاراکتر و...) در این حافظه باید اول آن کلمه flash قرار بدیم.
مثال :

ب) EEPROM
این حافظه به عنوان حافظه پایدار(ماندگار) تلقی میشود و نوشتن در آن بصورت ارادی و اختیاری و پاک کردن آن توسط اشعه ماوراء بنفش امکان پذیر است.
اطلاعاتی که در جریان برنامه تولید میشوند ، در صورت نیاز به حفظ آنها میتوان آنها را بر روی حافظه   EEPROM ذخیره کرد و با قطع منبع تغذیه اطلاعات حفظ خواهند شد.
(مثلا یه ساعت درست کردی که و میخوای وقتی ساعت رو خاموش روشن کردی دوباره همون ساعت رو نشون بده و شروع به کار کنه ، نه این که ساعت reset بشه و دوباره مجبور باشی زمان ساعتت رو تنظیم کنی.)
توجه : برای تعریف یه چیز (آرایه-رشته-کاراکتر و...) در این حافظه باید اول آن کلمه eeprom قرار بدیم.
مثال :

ج) SRAM
این حافظه یه نوع حافظه موقت هستش.
با قطع منبع تغذیه ، محتوای این حافظه پاک میشه.
اگر در تعریف متغیری از eeprom و  یا flash  استفاده نشود ، اون متغیر در این حافظه ذخیره میشه.

۴)   (Input/Output  (I/O

میکرو توسط این قسمت با دنیای بیرونی خود ارتباط برقرار میکند.(همون پایه های میکرو)

۵) تایمر و شمارنده(کانتر !)

با یه مثال لپ کلوم رو میگیم ! :
تایمر در ساعت برای شمارش و محاسبه زمان به کار میره>>>یعنی در هر ثانیه یه واحد زیاد میشه.
کانتر برای مثال برای شمارش تعداد ماشین های عبوری از خیابان استفاده میشود>>> لذا به اذای عبور هر ماشین یه واحد زیاد میشه.

۶) کنترلر های وقفه

گاهی اوقات لازمه که برنامه جاری رو متوقف و قطع کنیم تا به وسیله تابع وقفه چیزی رو برسی کنیم یا کاری رو انجام بدیم.

۷ و ۸) ADC   &    DAC

این هم دیگه معلومه ، نیاز به توضیح خاصی نداره ؛ تبدیل سیگنال های آنالوگ و دیجیتال به همدیگه.

انواع میکروکنترلر از لحاظ شکل ظاهری
اینم برا اطلاعات عمومی بد نیست

انواع میکروکنترلر از لحاظ شکل ظاهری

پکیج DIP : >>>>>>>تو پروتئوس ما با این نوع کار میکنیم. cool
آموزش میکروکنترلر avr
از جمله ویژگی های اون اینه که :
۱) نسبت به پکیج های مشابه استحکام بیشتری داره.
۲) لحیم کاری آسان
۳) قابلیت جدا کردن آسان و راحت در صورت استفاده از سوکت بر روی برد
۴) قابلیت برنامه ریزی آسان با استفاده از پروگرامر
عیب اصلیش هم اینه که فضای نسبتا زیادی رو روی برد اشغال میکنه !
پکیج SMD :
آموزش میکروکنترلر avr
سطحی کاملا مسطح دارند و ضخامتی میلی متری !
در این پکیج نیز تعداد پایه ها در طرفین مساوی بوده و الزاما هم از چهار طرف پایه ندارند !
ویژگی اصلی اون اینه که فضای بسیار کمی را در مقایسه با پکیج DIP اشغال میکند.(این که دیگه تابلو هستش) 
عیوب اصلی هم عبارتند از :
۱) لحیم کاری دشوار
۲) حساسیت بسیار بالا به گرما در لحیم کاری
۳) جداسازی دشوار از روی برد
۴) عدم امکان برنامه ریزی مستقیم از طریق پروگرامر

توجه : البته لازم بذکره که این پکیج ها تنها مختص به میکروکنترلر AVR نمیشوند و اکثر قطعات نیز در پکیج های مختلف ساخته میشوند. rtfm
میکروکنترلر

معرفی پایه های میکروکنترلر

معرفی پایه های میکروکنترلر

میکروکنترلر AVR
پایه های GND به زمین متصل میشوند.
پایه VCC  و  AVCC   به +۵ ولت متصل میشوند .

پایه های PA0-PA7 مربوط به پورت A
پایه های PB0-PB7 مربوط به پورت B
پایه های PC0-PC7 مربوط به پورت C
پایه های PD0-PD7 مربوط به پورت D

پایه های XTAL1   و   XTAL2  هم جهت اتصال به کریستال میباشند.
پایه AREF هم جهت استفاده در مقایسه کننده آنالوگ کاربرد دارد.
اینو تو جلسه مبدل آنالوگ به دیجیتال در میکروکنترلرهای AVR توضیح میدم.

ریـــجـــســـتـــرهــا
از نون شب واجبتره-حتما خوب بخونیدش-البته اگه نفهمیدید ، تو قسمت پروژها خودتون یاد میگیرید(پیش بینی رو حال میکنی!!!!)

ریـــجـــســـتـــرهــا

۱) رجیستر DDRx

این رجیستر دارای ۸ بیت است که مقدار هر بیت تعیین کننده ورودی یا خروجی بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت مورد نظر ۰ باشد>>>>>>پین ورودی تعریف میشود.(یعنی اطلاعات میگیره از خارج!!!)
اگر مقدار بیت مورد نظر ۱ باشد>>>>>>پین خروجی تعریف میشود.(یعنی اطلاعات میده!!!)
برای DDRD داریم :
رجیستر DDRx
همونطور که ملاحظه میکنید ۸ تا بیت داریم که از شماره های ۰-۷ شماره گذاری شده اند.ترتیب هم از راست به چپه !
برای مثال میخوایم پین سوم از پورت D رو بعنوان ورودی و پین ششم از همین پورت رو بعنوان خروجی تعریف کنیم.باید چه مقادیری رو به پین ها بدیم ؟!
پین سوم یعنی شماره ۲ یعنی DDRD.2 (توجه : شمارش پایه های هر پورت از ۰ شروع میشه)
پین ششم هم یعنی شماره ۵ یعنی DDRS.5
پس مقدار رجیستر DDRD=00100000 میباشد.

۲) رجیستر PORTx
مقدار هریک از بیت های این رجیستر تعیین کننده High یا Low بودن پین متناظر است.
از این رجیستر تنها هنگام نوشتن در پورت استفاده میشود.
توضیح :
فرض کنید که در نظر داریم یه LED رو به یکی از پین های میکرو وصل کنیم و فرمان بدیم که اون LED روشن بشه !
میایم چیکار میکنیم ؟! خوب دقت کنید !
ما با DDRx میگیم که فلان پین (یا پایه یا بیت !!! ) رو یک کن (یعنی خروجی کن—یعنی این پایه باید اطلاعات بفرسته یعنی ....)
حالا باید بگیم که ولتاژ هم اعمال کن که این کار به کمک این ریجستر انجام میشه.
حالا اگه بیت متناظر همون پین رو در رجیستر PORTx برابر مقدار ۱ قرار بدیم،وضعیت اون بیت(پین) به حالت High میرود و ولتاژ به پین مورد نظر وارد میشود.
توجه : این رجیستر دارای ۸ بیت است که مقدار هر بیت تعیین کننده High یا Low بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت ۰  باشد>>>>>>وضعیت LOW
اگر مقدار بیت  ۱ باشد>>>>>>وضعیت HIGH
برای PORTD داریم :
رجیستر PORTx
۳) رجیستر PINx 
این رجیستر تعیین کننده وضعیت فیزیکی بیت(پین) مورد نظر برای CPU است.
از این رجیستر تنها هنگام خواندن از پورت استفاده میشود.
اگر پین مورد نظر بعنوان ورودی در نظر گرفته شده باشد،بیت متناظر با آن در رجیسترPINx ،حاوی اطلاعات دریافتی از همان پین مورد نظر در میکرو است.
توضیح : همونطور که گفتم فقط هنگامی که میخوایم از پایه اطلاعات رو بخونیم یا به عبارتی پایه(پین) موردنظرمون رو ورودی تعریف کرده باشیم از این رجیستر استفاده میکنیم.
فرض کنید یه سنسور رو به یکی از پایه های میکرو وصل کرده ایم و این سنسور در شرایط مختلف مقدار ۰ یا ۱ را برمیگرداند.
حتما میدونید که چون سنسور داره اطلاعات رو به سمت میکرو میفرسته و میکرو هم باید اون اطلاعات رو دریافت کنه،در نتیجه پین مورد نظر باید در حالت ورودی تنظیم شده باشه !
اون موقع اگه خواستیم متوجه بشیم که الان سنسور مقدارش ۱ هست یا ۰ میایم و مقدار بیت متناظر در رجیستر PINx رو قرائت میکنیم.
پس :
آموزش avr

این رجیستر دارای ۸ بیت است که مقدار هر بیت تعیین کننده High یا Low بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت ۰ باشد>>>>>>>>وضعیت   LOW
اگر مقدار بیت ۱ باشد>>>>>>>>وضعیت   HIGH

اما در حالت ورودی منظور از HIGH  یا LOW  بودن چیست ؟!
(به این زیاد گیر ندید بعدا به حسابش میرسیم ^_^)

اگر بیت مورد نظر در حالت ورودی تنظیم شده باشد و بیت مورد نظر آن در رجیستر PORTx بصورت High تعریف شده باشد،مقاومت پول آپ داخلی فعال میشود.
در صورتیکه بیت مورد نظر در رجیستر PORTx بصورت LOW تعریف شود،پین مورد نظر به صورت Tri-State یا Hi-z در آمده که معنای آن این است که پین موردنظر وضعیت مشخصی ندارد.همانند هنگامی که برای پین هیج مقداری در رجیسترهای DDRx و PORTx و RINx تعریف نکرده باشیم(حالت پیشفرض).
نکته :در صورتی که پین را در حالت پول آپ تنظیم کردید،لازم است که بیت PUD از رجیستر SFIOR را یک کنید.
آموزش جامع avr

ابزار مورد نیاز برای کار با میکروکنترلر avr

ابزار مورد نیاز برای کار با میکروکنترلر avr

خیلی خوب ، رسیدیم به بهترین قسمت این مطلب--برا کار با avr باید یک زبان برنامه نویسی و یک نرم افزار شبیه ساز رو انتخاب کنید.

برای برنامه نویسی ۲ راه وجود دارد :

(این نرم افزاره که در زیر میگم کارش اینه که کدهای ما رو به زبون ماشین تبدیل میکنه. )
۱) زبان برنامه نویسی بیسیک به کمک نرم افزار بسکام
۲) زبان برنامه نویسی سی به کمک نرم افزار کدویژن
تا اونجایی که من میدونم بیسیک آسون تره ولی سی قویتره.
من خودم با زبون سی کار میکنم.

برای شبیه سازی مدار تو کامپیوتر دو راه وجود دارد :

۱) نرم افزار پروتئوس یا  ISIS
۲) نرم افزار اورکد  یا  Capture
من خودم تقریبا با جفتشون کار کردم ؛ به نظر من پروتئوس بهتر از اورکد هست هم از نظر ظاهر و هم از نظر راحتی باهاش!!!
البته اگه یکیش رو یاد بگیری یاد گرفتن اون یکی زیاد کاری نداره.
برا آموزشش هم تو اینترنت پر از کتاب و فیلم هستش.
شرکت بهکامان هم آموزش این دو نرم افزار رو درست کرده و برای فروش گزاشته(چیز بدی نیستن-من خودم هر دوتاش رو خریدم.)
برای رفتن به صفحه مورد نظر روی اسم های زیر کلیک کنید
آموزش ORCAD
آموزش Proteus

تـــمـــریـــنـــات ایـــن جـــلــســـه !!!!!!

تـــمـــریـــنـــات ایـــن جـــلــســـه !!! 

پیش نیاز :
یاد گیری زبان برنامه نویسی c : یاد گرفتنش کار سه سوته همش باید یه ۱۰-۰ تا کد رو بفهمید که کارشون چیه ok برا منبعش هم
کافیه تو گوگل بزنید : آموزش جامع avr
کلا یه ۳-۴ تایی کتاب در این زمینه تو اینترنت هستش که یه قسمتی از کتاب زبون سی رو توضیح داده که میتونید بخونیدش و اگه مشکلی بود اینجا در خدمتیم. crazy
برا شبیه سازی هم من با پروتئوس کار کردم که به شما هم پیشنهاد میکنم با همین کار کنید ؛ آموزشش هم تو اینترنت هست.  blum

چند تا لینک از برنامه های ساده که با پروتئوس و کدویژن درست شده اند رو میزارم برید نگاشون کنید.
برنامه هاش خیلی ساده هستن.ولی اگه مشکلی بود همینجا اعلام کنید.
چراغ چشمک زن با avr
چراغ چشمک زن با ۸ تا led
شمارنده تک رقمی با avr
شمارنده تک رقمی با کلید

مطلب جلسه بعد

دوستان به جای این که برن و مطلب جلسه دوم رو بخونن لطفا مطلب زیر رو بخونن اول و بعد برن مطلب جلسه ۲ رو بخونن…..من یادم رفت مطلب زیر رو تو این مطالب اولیه بگم و مجبور شدم تو مطلب جلسه ۱۲ ذکرش کنم….اول مطلب زیر و بعد مطلب جلسه ۲ به بعد :
آموزش جامع میکروکنترلر AVR جلسه۱۲

منبع

این مطلب از وبلاگ www.noise.blog.ir جمع آوری شده خلاصه! و مرتب شده ۱۱ مطلب است و من فقط یکمیکی تغیرش دادم!!!!
دوستانی که دوس دارند میکرو رو پایه ای یاد بگیرند میتونن برن تو این وبلاگ.
البته ما قصدمون اینه که پروژه محور باشه که انشا الله همین طور هم خواهد شد.
===================================
ریز کنترلگر>>ویکی پدیا
====================================
مطلب تفاوت میکرو کنترلر و میکرو پروسسور ترجمه مطلب زیر است.
Difference between Microprocessor and Microcontroller

امید وارم این آموزش avr مفید بوده باشه براتون.

تعداد مطالب : 339 تا
مهدی دمیرچیلو جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
ارسال دیدگاه

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) پسورد فایل های سایت : www.dmf313.ir

4) نظرات حاوی کد برنامه نویسی تایید نمیشوند ( قالب سایت بهم میریزه )

  1. Avatar

    مهمان

    محمد عباسی

    سلام.فکر میکنم در مورد 1 کردن بیت pud اشتباه میکنید.چون اگه یک بشه پول آپ غیر فعال میشه و پورت میره تو حالت tri-state.
    در صورتی که ما پورت رو طوری تنظیم کردیم که از پول آپ داخلی استفاده کنیم و عملا با اینکار پورت میره رو حالت tri-state

  2. Avatar

    مهمان

    مهدي

    به نظرم در مقایسه ی میکروکنترلر و میکروپروسسور اشتباه کردید .

  3. Avatar

    مهمان

    محمد

    سلام شما تو یکی از مطالبتون میکرو رو کامل باز کردین.
    من حتما باید یکی رو باز کنم میخاستم ببینم شما چه راهی پیشنهاد میکنین. تشکر

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-من والا نبودم – یکی دیگه از بچه های سایت بود – توش چیز خاصی نداره laugh یه مربع کوچولو اندازه نصف ناخن کوچیکه

  4. Avatar

    مهمان

    رامان

    سلام آقای مهندس دمرچیلو یک خواهشی داشتم از شما ، من تمام جاهایی که می شناختم را سرچ کردم ، اما چیزی در رابطه با فیوز بیت های کلاک داخلی ۸ مگا هرتز atmega32 پیدا نکردم ،من با programmer hattel کار می کنم ،ممنون می شم فیوز بیت های کلاک ۸ مگا هرتز و کریستال خارجی ۱۶ مگا هرتز را برایم بفرستید . با تشکر فراوان

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – تو همین مطالب آموزش AVR فک کنم جلسه ۱۰ یا ۱۲ ام بود – بگردید پیدا میکنید – یه مطلب مخصوص فرکانس و کریستال و اینجور جیزای میکرو – جدولاش تو اون مطلب هستش.

  5. Avatar

    مهمان

    علیرضا اهنی

    سلام.
    من داشتم دیتاشیت میکرو رو نگاه میکردم(ATmega16)ناگهان توی صفحه۵۵یک ریجیستر دیدم به اسمSFIOR.
    حالا این ریجیستر چه کاری انجام میده؟

    • Avatar

      مهمان

      علیرضا اهنی

      سلام.
      مطلب رو یه با کامل خوندم.
      فهمیدم.
      ولی چرا تو کدویزانر این بیت ۱ نمی شه؟

      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        سلام-چی چرا ۱ نمیشه؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بیت اولش برا بحث تایمر/کانتر هستش.
      بیت دومش برا غیرفعال کردن Pull-up هستش.
      بیت ۳امش برا بحث مقایسه گر آنالوگ هستش.
      بیت ۵ تا ۷ هم برا بحث adc هستش
      هر کدوم از این بیتا رو باید تو مبحث مرتبط خودشون بررسی کنی.

  6. Avatar

    مهمان

    milad

    سلام مهندس خسته نباشید مننون از بابت وقتی که میزارید
    مهندسی یه وقت های تو بعضی برنامه ها دستور PORT یا DDR علاوه بر مقدار صفر ویک ، مقدار دهی ها هگزا دسیمال میشن ، اگه امکانش هست در مورد این یه توضیح مختصر بدید به طور مثال : PORTA=0xCC
    DDRA=0x55

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-خب مشکل الان کجاس؟ سوالت چیه دقیقا متوجه نشدم – اگه اعداد هگزا دسیمال نمیدونی چیه که تو گوگل بزنی آموزشش میاد – اگه چیز دیگه هستش بگو.

  7. Avatar

    مهمان

    سید علی حسینی

    سلام دوباره . من رفتم به صاحب PDF ای که تو سایت گذاشتین ایمیل زدم گفت راضی هست و خودش برای استفاده گذاشته . حله میتونین استفاده کنین
    اینم عکس از ایمیل
    http://s8.picofile.com/file/8298830034/%D8%A2%D9%BE%D9%84%D9%88%D8%AF.JPG

  8. Avatar

    مهمان

    سید علی حسینی

    سلام . این کتاب هایی که به صورت pdf هست ، صاحب اثرش رضایت به پخش رایگان داره که من الان استفاده کنم ؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – منبع فایلا رو گزاشتم – لینک سایت مرجع رو – برو اونجا بررسی کن – من خاطرم نیست.

  9. Avatar

    مهمان

    علیرضا آهنی

    سلام.
    پایه t0وt1چیه؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – تایمر فک کنم باشه – دقیقا خاطرم نی

  10. Avatar

    مهمان

    مرتضی شهابی زاده

    سلام خسته نباشید دوست عزیز
    یه سوال داشتم و قتی ما میایم یک lcd رو در code vision تعریف میکنیم این کدی که به کدوم پورت میکرو وصل کردیم کجا مییاد؟
    مثلا اگه پورت A رو واسه lcd بزاریم و یک بار PORT B رو بزاریم code vision این lcd_init میزنه حالا از کجا debuger میفهمه پورت A یا B
    درخواست دیگم اینه که اگه میشه واسه atmel هم اموزش بزارید اگه وقت کردین چون تا جایی که میدونم atmel رایگانه

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      اگه از کتابخونه alcd استفاده کرده باشین تنظیمات مربوط به پایه ها در فایل main پروژه ظاهر نمیشه ( حالا کجا ذخیره میشه رو نمیدونم و مهم هم نیست برام ) و باید از طریق تنظیمات کدویژن پروژه پایه ها رو مشاهده کنی و یا ویرایش کنی.

  11. Avatar

    مهمان

    حمید رضا

    سلام . خسته نباشین . ببخشید نمیدونم سوالم مربوط به اینجا میشه یا نه ؟اگه بخوایم پایه های یک پورت رو تغییر بدیم از چه دستوری یا روشی باید استفاده کنیم ؟ مثلا چهار تا سوییچ به پایه های ۱ تا ۴ پورت B وصله ومقدارهای ۱و۲و۴و۸ رو روی ال سی دی نمایش میده . حالا اگه بخوایم به جای این پایه ها از پایه های ۱و۳و۵و۶ استفاده کنیم و همین مقادیر برگردونه باید چه کار کنیم ؟ راهنمایی کنید ممنون میشم .

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – اینی که میگی همش کد نویسی و زبون c هستش – راهنمایی میشه نوشتن کد bomb

  12. Avatar

    مهمان

    الیاس

    با عرض سلام و ادب بسیار تشکر و سپاسگذاری میکنم که مطالب مفید و کاربردی را روی سایت بصورت رایگان قرار داده اید تا همگان استفاده کنند
    در پناه امام زمان موفق و موید باشید
    smile

  13. Avatar

    مهمان

    عضویت

    سلام چرا نمیشه تو گروه تلگرام عضو شد؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-مشکل چیه؟ آیدیتونو بدید.

    • Avatar

      مهمان

      عضویت

      @Electro52
      اگه میشه تو تلگرام بهم پیام بدین من ای دی شمارو ندارم

  14. Avatar

    مهمان

    علیرضا آهنی

    سلام.
    من یک کد رو نوشتم که : وقتی یکی از ۳پورتی که انتخاب کردم نور یک LEDکه ۳تا ال ای دی توش هست ارام ارام روشن شود و ترکیب رنگ به وجود اید.ولی در شبیه ساز و هم در عمل نور LEDسریع روشن می شود!می خواستم بپرسم که چه چوری ارام ارام روشن شود.
    راستی عید شما مبارک

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      به چه روشی خواستی این کارو بکنی؟ معمولا با PWM این کارو میکنن.
      عید شما هم مبارک

  15. Avatar

    مهمان

    مهران

    با سلام خدمت آقا مهدی عزیز
    آقا مهدی من فیزیک می خونم اما چند وقتی هست که به بحث میکروکنترلرها علاقه مند شدم می خواستم بدونم چجوری میتونم برای یاد گیری وارد این بحث بشم یعنی برای ورود به این مباحث از کجا باید شروع کنم و البته من از الکترونیک چیز زیادی بلد نیستم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      برنامه نویسی C++/C رو خوب یاد بگیر اول – و بعد بیا سراغ میکرو – یا این که ۳-۴ فصل اول کتب آموزش سی رو بخون و بعد بیا سراغ میکرو که این دومی روش بهتری هستش.
      میکرو هم انواع مختلفی داریم – اول برو ببین چی نیازت میشه و بعد برو اونو یاد بگیر

  16. Avatar

    مهمان

    علی

    سلام آقا مهدی.
    من یه سوال دارم و تازه کار هستم اگر میشه با زبون ساده برام بگین باید چه کار کنم.
    من توی پروژه قفل رمزی ۴ رقمی وقتی پسورد رو تغییر میدم (در عمل) با قطع جریان به رمز پیشفرض بر میگرده.توی همین اموزش گفتین حافظه ی eeprom اطلاعات رو در حالت خاموش هم نگه میداره.
    من قبل از char aray[]; کلمه eeprom رو نوشتم ، ولی این ارور رو داد :
    Error: C:UsersALIDocumentsDigital Lock With Keypad & LCDlock1.c(183): storage modifier not allowed in this context
    می خوام هر رمزی که بهش دادیم در eeprom ذخیره بشه و اگر دوباره بهش رمز دادیم ، رمز قبلی پاک بشه و رمز جدید ذخیره بشه. و با قطع برق پاک نشه.
    ممنونم.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      از حافظه ایپرام خارجی استفاده کنید.

      • Avatar

        مهمان

        علی

        سلام.
        ایپرام داخلی و خارجی چه فرقی داره؟
        باید چه کار کنم ، در کد ها باید تغییری بدم ؟ دلیل اون ارور چیه؟
        من پروگرامر هاتل دارم.توی نرم افزار هاتل گزینه پروگرم کردن ایپرام داره ، توی اونجا باید بریزم؟
        اگر میشه برام توضیح بدین.

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          سلام
          ایپرام خارجی به صورت یه آیسی مجزا هستش – میگن ایپرام خارجی حافظش میپره!
          حافظه ایپرام رو وصل میکنی به میکرو – با میکرو توش اطلاعات میریزی و میخونی – آموزشش تو سایت هستش

  17. Avatar

    مهمان

    farzad

    سلام.خستهنباشی. من یه مدت کوتاهی زبان بیسیک خوندم و تقریبا یه سالی هست که دیگه کار نکردم. الان دوباره میخوام شروع کنم ازصفربخونم. فقط موندم که زبان بیسیک بخونم یا سی؟ از نظرشما کدومش بهتره و اسونتره و پرکاربردتره؟و برای خوندن یاد گرفتنش بهتره که چه کتابی رو بخونم؟ خیلی ممنون

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      سی یاد بگیری – avr-arm میتونی کار کنی
      برنامه نویسی کامپیوتر و موبایل(c#-qt) میتونی کار کنی.
      حالا بازم مشورت کن – تا جایی که میدونم سی فقط برا Avr هستش کاربرد دیگه ای داره یا نه من اطلاع ندارم از کسی بپرس که کار کرده باشه

  18. Avatar

    مهمان

    محمد

    سلام میشه اموزشی مبنی بر ساخت تابلو روان گردان در اختیار من قرار بدید من دارم روی تابلوروان چرخان کار میکنم با ای سی اس ام دی امگا8 دنبال برنامه ای می گردم که بشه متن رو راحت طراحی کنم داخلش اگه برنامه ای می دانی برام ایمیل کنید لطفا ??????????

  19. Avatar

    مهمان

    mohammad

    سلام مهندس
    من چند سالی هست که هی میخوام AVR رو یاد بگیرم
    اوایل یک کتاب گرفتم به نام طراحی سیستم با میکروکنترلر های AVR خدایشش هیچی ازش نفهمیدم وگفتم که من اینکاره نیستم
    بعد از مدتی این ویروس میکرو AVR دوباره افتاد بجونم ورفتم یک کتاب دیگه خریدم به نام واین کتاب هم نحوهی اموزشش بیشتر بر پایه کد ویزارد بود فصل های اول و دوم که در باره ی ورودی و خروجی ها و LCD ها …..بود نسبتا خوب پیشرفت اما کار کمکم سخت شد ومن متوجه شدم که کد ویزارد یه جاهایی دارای محدودیت میشه و خیلی چیز جالبی نیست وکتاب رو انداختم تو سطل اشغالی (شوخی کردم)البته باید بگم تو این مدت کمی هم با زبون Cاشنایی پیدا کردم (در حد انواع متغییر هاو عملگرها و دستورات زبان C)
    الان هم چند وقتی هست کتاب میکرو کنترلر های AVRمهندس جابر الوندی رو گرفت واقعا کتاب پر محتوا و کاملاعملی هست کتاب در مورد AVR از این دیگه بهترمن که جایی سراغ ندارم الان دارم فصل 4 رو میخونم
    چند تا سوال خدمتتون داشتم
    همین روال رو ادامه بدم کافیه
    اشنایی بازبون سی در همین حد انواع متغییر ها وعملگرها( البته دستورات رو کمی در عمل مشکل دارم )کافیه یا اینکه باید برم و زبون سی رو کلی یا دبگیرم
    اگه باید زبون سی رو کلی یاد بگیرم چه منبعی رو پیشنهاد میکنید
    سی بهتره یا سی ++
    ایا از سی++ میشه در کامپایلر کدویژن استفاده کرد
    برای اوایل بستن عملی مدارها و خرید پروگرامر و لوازم جانبی رو پیشنهاد میکنی یا همین پرتئوس کافیه
    ببخشید اگه سرتون رو درد اوردم یا علی خدا حافظ

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      1) c و c++ تقریبا شبیه هم هستن – هر دو رو یاد بگیر چیز خاصی نداره – به نظرم کتاب دکتر فراهانی آموزش زبان C برا انتشارات پیام نور رو بخون – کم کم زبان سیت رو قوی کن.
      2) من خودم دیگه کتاب نمیخونم و دیتاشیت میخونم و پروژه های خارجی! – خودت هر طور راحتی همون طور عمل کن ولی سعی کن پروژه زیاد ببندی تا انرژی بگیری برای ادامه کار.

  20. Avatar

    مهمان

    نوید

    اقا خسته نباشین
    توی این فایل ستا پوشه ی متفاوت هست
    از کجا شروع کنم؟؟
    درضمن این حجم مطلاب برای یک جلسه زیاد نیست؟؟
    تشکر از زحماتتون

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      هر کدوم که خاستی

  21. Avatar

    مهمان

    naasar

    چقدر میگیری میکرو رو کامل یادم بدی ؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      خونتون کجاس؟
      به چه صورت؟ فیلم بدم – کتاب بدم – حظوری میخوای بیای – از طریق اسکایپ؟ روش؟

  22. Avatar

    مهمان

    علی

    مهندس میشه من کتابا را نخونم یه راست برم سراغ اموزش شما
    یعنی شما را ضی هستی

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      خب آموزش AVR تو نت زیاد هستش….فیلم کتاب و… حتی میتونید از دیتاشیت هم استفاده کنید
      والا به نظر خودم از کتاب هم استفاده نکنی مشکلی نیست و همین مطالبی که من گزاشتم رو بخونی کارت راه میوفته … البته باید دیتاشیت رو هم کم کم شروع کنی به خوندنشون….یه بار که بشینی 50 صفحه رو ترجمه کنی بعدا دیگه خوندن دیتاشیت برات عین هلو میشه(البته اگه انگلیسیت ضعیف هستش، اگه قوی هستش که چه خوب good )

  23. Avatar

    مهمان

    sjaber

    سلام من جابر هستم از زبون سی خیلی خوشم میادولی هرکاری میکنم درست حسابی یاد بگیرم نمیشه چند تا راهنمایی بهم میدید
    please

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      خب زبان سی اولش یکم اضیت میکنه، کلا هر چیزی اولش که بخوای یاد بگیری اضیتت میکنه
      مثلا من الان دارم لبویو یاد میگیرم و … bomb
      به نظرم یه کتاب آموزش زبان سی بگیر و بشین بخون و مثال هم زیاد حل کن و به نگاه کردن فیلم و خوندن کتاب هم اکتفا نکن و خودت دست بکار شو و برنامه بنویس حتی اونایی که خود اون منبع آموزشی نوشته ، تو بیا همون برنامه ها رو بنویس و تست کن و جواب بگیر

      • Avatar

        مهمان

        بهمن

        سلام اقا مهدی میشه بگین چه کتابی یرو بخونیم ؟؟

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          سلام
          avr?
          به نظر من لازم نیست – برو آرم یاد بگیر.

  24. Avatar

    مهمان

    محمد

    سلام ممنون از آموز های خوبت smile
    در واقع ما برنامه اصلی رو رو ی حافظه flash می نویسیسم درسته ؟؟
    یعنی وقتی برنامه رو پاک و دوباره برنامه جدیدی روی میکرو می نویسیم این رو از حافظه flash پاک می کنیم دیگه نه ؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      آره
      البته فلش هم به دو قسمت تقسیم میشه که یه قسمتیش مربوط به فضای بوت هستش که به کمکش میتونی میکرو رو بدن نیاز به پروگرامر و با کامپیوتر پروگرام کنی

    • Avatar

      مهمان

      علیرضا آهنی

      سلام.
      من یه سوال داشتم.
      من برناممو رو ریختم تو فلش. اما وقتی میکرو رو خاموش کردم روشن کردم دیدم که برنامه روشه.
      چرا؟

      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        سلام
        یعنی چی که روشنه؟

        • Avatar

          مهمان

          علیرضا آهنی

          سلام.
          منظورم این بود برنامه ای که نوشتم هنوز هم اجرا میشه حتی تا چند ماه تست کردم laugh

          • مهدی دمرچیلو

            نویسنده این مطلب

            مهدی دمرچیلو

            خب درسته – الان مشکل کجاس؟

        • Avatar

          مهمان

          علیرضا آهنی

          یعنی هنوز اجرا میشه laugh

        • Avatar

          مهمان

          علیرضا آهنی

          سلام.
          laugh laugh laugh laugh laugh laugh
          خو دادا تو مطلب گفتی پاک میشه rofl

          • مهدی دمرچیلو

            نویسنده این مطلب

            مهدی دمرچیلو

            کجا گفتم حافظه فلش موقته؟ متنشو بده تصحیح کنم.

  25. Avatar

    مهمان

    mohammad

    این قسمت اشتباه کردی باز نیگا کنم بقیشو نیگا نکردم مشکلی بودم میگم ههههههه
    برای مثال میخوایم پین سوم از پورت D رو بعنوان ورودی و پین ششم از همین پورت رو بعنوان خروجی تعریف کنیم.باید چه مقادیری رو به پین ها بدیم ؟!
    پین سوم یعنی شماره ۲
    پین ششم هم یعنی شماره ۵
    پس مقدار رجیستر DDRD=00010000 میبا

    • Avatar

      مهمان

      mohammad

      بابا من مهم نیستم چون من میدونم چی به چیه ولی یکی که صفر کیلومتره بیچاره میاد نمیفهمه خب اصلاح کن دیگه….والا نظر میذاریم جایی که یه اشتباه کوچولو کردی میگیم گوش نمیدی نظر نمیذاریم میگی نظر نمیدید

      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        چرا حالا میزنی laugh
        چشم الان نگاه میگنم good
        راسش اصلا حالم خوش نیست یه وقت فک نکنی بیخیالم… sorry
        تصحیح کردم. ممنون از این همه دقت focus

        • Avatar

          مهمان

          mohammad

          فدات داداش ههههه
          من نوکرتم تو اخلاق به خودت کشیدیم دیگه هههههه
          خدا بد نده اتفاقی افتاده ؟؟؟ ما فعلا نمردیم که داش مهدی بی حال باشه هاااا

          • مهدی دمرچیلو

            نویسنده این مطلب

            مهدی دمرچیلو

            عجب زمونه ای شده
            لیاقت مردن هم ندارم من خاک بر سر

          • Avatar

            مهمان

            mohammad

            اینجوری نگو داداش هم هواتو داریم هم دوست داریم

          • مهدی دمرچیلو

            نویسنده این مطلب

            مهدی دمرچیلو

            اون پیام قبلیت رو ، منظورت رو دقیق برام میل کن

  26. Avatar

    مهمان

    حمید

    مهندس واسه مقاومت PULL UP اگه بخواد فعال باشه باید PUD=0 باشه و اگه یک باشه تحت هر شرایطی PULL UP فعال نمیشه که برعکس گفتی
    آموزش عالیه

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      ممنون ازت
      وقتی پورتی وردی تعریف بشه(ddr) و بعد port رو مقادیرش رو ۱ بدی، پول آپ اون پایه هایی که port شون ۱ هستش فعال میشه.

      • Avatar

        مهمان

        علی

        سلام مهندس جان
        صفحه 57 از دیتاشیت 357 صفحه ای میکرو Mega16 نوشته اگه PUD مقدارش یک بشه پول آپ تمام پورتها غیرفعال میشه و تاکید کرده که حتی اگه روی پورتی DDR و PORT بصورت پول آپ تنظیم شده باشه با یک شدن PUD پول آپ اون پورت هم غیرفعال میشه
        When this bit is written to one, the pull-ups in the I/O ports are disabled even if the DDxn and
        PORTxn Registers are configured to enable the pull-ups

  27. Avatar

    مهمان

    Amir mso

    خداییش خیلی گلی. دمت گرم با این سایتت. heart heart
    یه سوال دارم شما رباتیک هم کار کردین ؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      والا یکمکی

  28. Avatar

    مهمان

    مهدی

    لطفا منابع این صفحره به صورت pdf درارید و بزارید…… اینجوری هم میشه مواقع آفلاین بودن خوند….. هم خیلی بهتره دیگه…… جای بحث نداره

  29. Avatar

    مهمان

    آی نور

    ممنونم از پاسخگویی.مزاحمتون میشم حتما

  30. Avatar

    مهمان

    آی نور

    سلام مهندسممنونم از سایتتون واقعا عالی و پرمحتوا و مفیده اما خیلی دیر جواب میدین به هرحال.
    مهندس بی زحمت یه راهنمایی کنین و بفرمایید که چطوری و از کجا شروع کنم میکروکنترولر و برنامه نویسی اینارو
    حالا کتاب یا جزوه یا هرچی.ممنونممممممممممممممممممممممم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      کتاب جابر الوندی رو بخر بخون….هر چند که بعضی مباحثش رو خیلی توضیح نداده….ولی برا شروع بد نیست
      پروژه های ساده سایت رو ببین
      مشکلی سوالی چیزی هم بود در خدمتیم

  31. Avatar

    مهمان

    علی

    سلام! کارم راه افتاد ممنون!

  32. Avatar

    مهمان

    علی

    سلام!
    خیلی ممنون از سایت خوبتون!
    یه سوال داشتم از این رو که من خیلی خیلی مبتدی هستم لطفا سعی کنید در جواب من از اصطلاحات عیجب استفاده نکنید!
    من فایل چراغ چشمک زن با avr رو دانلود کردن رفتم یه نگاه کردم و خودم از روش یکی دیگه درست کردم! بعد کار کرد smile
    رفتم ببینم توی فایل کد نویسیش چیه!
    وقتی وارد شدم اینو نوشته بود
    DDRC.0=1;
    PORTC.0=0;
    بعد توی توضیحات شما خوندم نوشته
    DDRX و portx بعد نمیدونم که آیا منظور از X متغییر هست یا X یه ثابت هست و جزو کد هست آخه توی اون کد نوشته DDRC.0=1 سوالم اینه که همش رو توضیح بدید چیه!
    1) توی DDRC منظور از C چی هست؟! پایه و….؟
    2) توی DDRC.0 صفر چی هست و برای چی گذاشتید؟!
    3) آیا توی DDRC.0=1 عدد یک توی مساوی با 1 برای تعرف خروجی هست؟!
    ممنون منتظرم

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      خواهش
      چشم….ما خودمون هم مبتدی هستیم.
      عکس زیر رو ببین
      ATMEGA16
      میکرو یه سری پایه ورودی خروجی داره….که اومدن اینا رو دسته بندی کردن لذا میکرو ۴ تا پورت داره…با نام های A , B ,C ,D
      وقتی مثلا میگن PORTX یعنی این که یکی از ۴ تا حایت منظورشه یعنی PORTA , PORTB , PORTC , PORD
      و DDRX هم به همین ترتیب
      حالا بریم سراغ DDRC.0=1
      اولا اینو بگم که DDR برا تعین ورودی یا خروجی بودن پایه میکرو هستش…مثلا برا روشن کردن یه LED باید پایه خروجی باشه یعنی دیتا بده یهنی ولتاژ بده….یعنی یه چیز تو این مایه ها laugh
      و مثلا برای این که ببیننیم روی اون فلان پایه چه ولتاژی هستش مثلا ببینیم ولتاژ ۰ یا ۵ ولت روی پایه مورد نظرمون هستش….در این جا داریم اطلاعات میگیریم….لذا یاس پایه مورد نظرمون رو ورودی تعریف کنیم….
      حالا با مقدار ۰ پایه ورودی میشه و با مقدار ۱ پایه خروجی میشه…..که عمل ورودی و خروجی کردن یه پایه با ریسجتر DDR انحام میشه…
      و شما برای این که تعیین کنی که کدوم پورت رو میخوای ورودی خروجیش رو تعیین کنی مثلا باید بنویسی DDRC (یا هر پورتی که مد نظر داری و …) و بعد بهش مقدار بدی
      حالا مینوسیم DDRC.0=1 یعنی این که پایه ۰ پورت C رو ۱ کن…یعنی خروجی کن(عکس بالا رو ببین….دنبال PC0 بگرد//// که PC0 خلاطه شده همون PORTC0 هستش یعنی PORTC پایه ۰ اومش)
      گرفتی؟؟؟ smile
      ریجستر PORT هم برا مقدار دهی اولیه هستش…
      مثلا وقتی پایه رو خروجی تعریف میکنی….باید مقدار دهی اولیه کنی اون پایه رو….مثلا اگه ۱ کنی…..ولتاژ ۵ ولت میوفته روی اون پایه..و اگه مقدار ۰ بده ولتاژ ۰ولت میوفته روی اون پایه
      و مثلا برا پروژه روشن کردن LED باید مقدار دهی اویه رو ۱ بدی تا LED روشن بشه
      OK??? smile
      سوالی بود در خدمتیم…
      فعلا بریم درسمون رو بخونیم که فردا امتحان داریم و الان هم ساعت ۲ شب هستش crazy

  33. Avatar

    مهمان

    علی

    خیلی ممنون عالی بود!

  34. Avatar

    مهمان

    alireza moghaddam

    درود و سلام
    بیشینه فرکانس(یا کمترین زمان نمونه برداری) آنالوگ به دیجیتال در سری های مختلف این میکرو کنترلرها چقدر است.

  35. Avatar

    مهمان

    amir abbas

    قدر دان زحمات شما

  36. Avatar

    نویسنده سایت

    mehdir30

    تا اونجایی که من میدونم به میکروکنترلر میتونیم برنامه خاصی بنویسیم و بدیم تا اجرا کنه ولی تو میکروپروسسور خود شرکت روش برنامه نویسی میکنه و نه ما.
    تفاوت میکروکنترلرو میکرو پروسسور رو اشتباه گفتید برادر
    میکرو پروسسورفقط میتونه پروسس کنه و هیچ کدوم از امکانات میکرو کنترلر مثلپورتها و حافظه ها و adc وdac واین چیزها رونداره

  37. Avatar

    مهمان

    تراب

    مگه armمیکرو نیست که اسمش رو نیاوردید؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      آرم هم میکرو هستش

  38. Avatar

    مهمان

    مهدی

    خواهش میکنم
    وظیفس

  39. Avatar

    مهمان

    مهدی

    سلام
    خواستم یه مورد کوچیک رو بگم که هم دوستان یاد بگیرن و هم متن اصلاح بشه :
    حافظه EPROM با نور ماورای بنفش پاک میشود
    و حافظه EEPROM با جریان الکتریکی که از این در میکروها استفاده شده و با پروگرمر قابل پاک کردن اند .
    باتشکر
    واقعا ممنون

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      ممنون از توضیحاتت داش مهدی

  40. Avatar

    مهمان

    رضا

    واقعا آموزش خوبیه.
    مهندس جان خیلی خوب گفتی.
    از این که هر چیز بلد بودی رو به زبون خودت گفتی با مرامت حال کردم.
    امیدوارم همیشه موفق و پیروز باشی.

  41. Avatar

    مهمان

    سید محمد

    اگر بیت مورد نظر در حالت ورودی تنظیم شده باشد و بیت مورد نظر آن در رجیستر dash بصورت High تعریف شده باشد،مقاومت پول آپ داخلی فعال میشود.
    در صورتیکه بیت مورد نظر در رجیستر dash بصورت LOW تعریف شود،پین مورد نظر به صورت Tri-State یا Hi-z در آمده که معنای آن این است که پین موردنظر وضعیت مشخصی ندارد.همانند هنگامی که برای پین هیج مقداری در رجیسترهای DDRx و PORTx و RINx تعریف نکرده باشیم(حالت پیشفرض).
    rtfm این قسمتی رو که علامت زدم اصلاح کن . به جای pin باید بنویسی port

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      blush
      تصحیح شد…..
      ممنون
      ———————

  42. Avatar

    مهمان

    امیرمحمد

    بسیار عالی است…..مطالب بسیار مفیدی رو تو سایت قرار میدید bye give_rose

  43. Avatar

    مهمان

    alireza_g698

    بیسار عالی خیلی ممنون