آشنایی با منابع سیستمی میکروکنترلر های AVR

  • شروع کننده موضوع
  • #1

hasangolab

کاربر حرفه‌ای
ارسال‌ها
438
امتیاز
133
شهر
قم
مدال المپیاد
ترکیبیات علیپور خوندم!
دانشگاه
Massachusetts Institute of Technology
رشته دانشگاه
Electrical Engineering
می خواستم تاپیک برنامه نویسی به زبان C رو ادامه بدم ولی چون هنوز منابع سیستمی رو براتون نگفتم می ترسم یکم گنگ براتون به نظر بیاد پس اول منابع رو میگم البته توقع نداشته باشید که منابع سیستمی یه میکرو کاملاً پیشرفته مثل ATmega3290 که فقط 11 تا پورت داره رو بگم من منابع سیستمی یک میکرو ATmega32 رو میگم.

منابع سیستمی مربوط به پورت ها
پورتها: با کمک پورتها شما می تونید یک پورت یا پایه میکرو رو به VCC یا همون ولتاژ مثبت وصل کنید.
منابع سیستمی MEGA32:
کد:
PORTA
PORTB
PORTC
PORTD
DDRها: با کمک DDR ها شما می تونید پورت یا پایه میکرو رو به GND یا ولتاژ منفی وصل کنید.
منابع سیستمی MEGA32:
کد:
DDRA
DDRB
DDRC
DDRD
پین ها: با کمک پین ها شما می تونید پورت های میکرو کنترلر خودتون رو بخونید یعنی بدونید روی چه پایه هایی ولتاژ وجود داره.
منابع سیستمی MEGA32:
کد:
PINA
PINB
PINC
PIND

نکات مهم در مورد منابع سیستمی (رجیستر) پورت ها:
1-برای خواندن مقدار پورت ها به هیچ وجه از رجیستر PORT استفاده نکنید در غیر اینصورت با این کار، شما مقدار قبلیی که روی رجیستر PORT نوشتید رو دریافت می کنید.
2-در صورتی که در رجیستر DDR و PORT یک پایه چیزی ننویسید آن پورت NC یعنی قطع خواهد شد و از مدار میکرو خارج می گردد. (از اینکار می توانید برای کاهش نویز مدار استفاده کنید.

منابع سیستمی مربوط به عملیات بازنشانی(RESET)
رجیستر MCUCSR:
این رجیستر برای فهمیدن اینکه چجوری میکرومون ریست شده به ما میده.
منابع سیستمی MEGA32:
کد:
MCUCSR
رجیستر WDTCR:
این رجیستر مربوط به تایمر Watchdog بوده. کار تایمر Watchdog ریست کردن میکرو هنگام هنگ کردنه.
منابع سیستمی MEGA32:
کد:
WDTCR
(بخش بالا به طور مفصل توضیح داده خواهد شد.)

منابع سیستمی مربوط به تایمر/کانتر
رجیستر TCCR:
کار این رجیستر کنترل تایمر و کانتر می باشد.
منابع سیستمی MEGA32:
کد:
TCCR0
TCCR1A
TCCR1B
TCCR2
رجیستر TCNT:
این رجیستر برای خواندن مقدار شمارش شده کانتر و نوشتن تعداد شمارش تایمر به کار می رود.
منابع سیستمی MEGA32:
کد:
TCNT0
TCNT1H
TCNT1L
TCNT2
رجیستر TIFR:
این رجیستر برای فهمیدن زمان سرریز تایمر یه کار می رود.
منابع سیستمی MEGA32:
کد:
TIFR
ETIFR
رجیستر TIMSK:
این رجیستر برای فعال سازی وقفه تایمر/کانتر استفاده می شود.
منابع سیستمی MEGA32:
کد:
TIMSK
ETIMSK
رجیستر OCR:
این رجیستر برای تولید یک موج روی پایه OCx میکرو استفاده می شود.
منابع سیستمی MEGA32:
کد:
OCR0
OCR1AH
OCR1AL
OCR1BH
OCR1BL
OCR2

منابع سیستمی مربوط به مبدل آنالوگ به دیجیتال (ADC)
رجیستر ADMUX:
این رجیستر برای کنترل واحد ADC به کار می رود.
منابع سیستمی MEGA32:
کد:
ADMUX
رجیستر ADCSRA:
این رجیستر برای فعال سازی،کنترل و وضعیت ADC استفاده می شود.
کد:
ADCSRA
رجیستر ADC:
این رجیستر مقدار ADC را نشان می دهد.
منابع سیستمی MEGA32:
کد:
ADCH
ADCL
رجیستر SFIOR:
این رجیستر برای انتخاب منبع تحریک واحد ADC و همچنین مقایسه کننده آنالوگ (Analog Comparator) استفاده می شود.
منابع سیستمی MEGA32:
کد:
SFIOR
 
بالا