- شروع کننده موضوع
- #1
hasangolab
کاربر حرفهای
- ارسالها
- 438
- امتیاز
- 133
- شهر
- قم
- مدال المپیاد
- ترکیبیات علیپور خوندم!
- دانشگاه
- Massachusetts Institute of Technology
- رشته دانشگاه
- Electrical Engineering
می خواستم تاپیک برنامه نویسی به زبان C رو ادامه بدم ولی چون هنوز منابع سیستمی رو براتون نگفتم می ترسم یکم گنگ براتون به نظر بیاد پس اول منابع رو میگم البته توقع نداشته باشید که منابع سیستمی یه میکرو کاملاً پیشرفته مثل ATmega3290 که فقط 11 تا پورت داره رو بگم من منابع سیستمی یک میکرو ATmega32 رو میگم.
منابع سیستمی مربوط به پورت ها
پورتها: با کمک پورتها شما می تونید یک پورت یا پایه میکرو رو به VCC یا همون ولتاژ مثبت وصل کنید.
منابع سیستمی MEGA32:
DDRها: با کمک DDR ها شما می تونید پورت یا پایه میکرو رو به GND یا ولتاژ منفی وصل کنید.
منابع سیستمی MEGA32:
پین ها: با کمک پین ها شما می تونید پورت های میکرو کنترلر خودتون رو بخونید یعنی بدونید روی چه پایه هایی ولتاژ وجود داره.
منابع سیستمی MEGA32:
نکات مهم در مورد منابع سیستمی (رجیستر) پورت ها:
1-برای خواندن مقدار پورت ها به هیچ وجه از رجیستر PORT استفاده نکنید در غیر اینصورت با این کار، شما مقدار قبلیی که روی رجیستر PORT نوشتید رو دریافت می کنید.
2-در صورتی که در رجیستر DDR و PORT یک پایه چیزی ننویسید آن پورت NC یعنی قطع خواهد شد و از مدار میکرو خارج می گردد. (از اینکار می توانید برای کاهش نویز مدار استفاده کنید.
منابع سیستمی مربوط به عملیات بازنشانی(RESET)
رجیستر MCUCSR:
این رجیستر برای فهمیدن اینکه چجوری میکرومون ریست شده به ما میده.
منابع سیستمی MEGA32:
رجیستر WDTCR:
این رجیستر مربوط به تایمر Watchdog بوده. کار تایمر Watchdog ریست کردن میکرو هنگام هنگ کردنه.
منابع سیستمی MEGA32:
(بخش بالا به طور مفصل توضیح داده خواهد شد.)
منابع سیستمی مربوط به تایمر/کانتر
رجیستر TCCR:
کار این رجیستر کنترل تایمر و کانتر می باشد.
منابع سیستمی MEGA32:
رجیستر TCNT:
این رجیستر برای خواندن مقدار شمارش شده کانتر و نوشتن تعداد شمارش تایمر به کار می رود.
منابع سیستمی MEGA32:
رجیستر TIFR:
این رجیستر برای فهمیدن زمان سرریز تایمر یه کار می رود.
منابع سیستمی MEGA32:
رجیستر TIMSK:
این رجیستر برای فعال سازی وقفه تایمر/کانتر استفاده می شود.
منابع سیستمی MEGA32:
رجیستر OCR:
این رجیستر برای تولید یک موج روی پایه OCx میکرو استفاده می شود.
منابع سیستمی MEGA32:
منابع سیستمی مربوط به مبدل آنالوگ به دیجیتال (ADC)
رجیستر ADMUX:
این رجیستر برای کنترل واحد ADC به کار می رود.
منابع سیستمی MEGA32:
رجیستر ADCSRA:
این رجیستر برای فعال سازی،کنترل و وضعیت ADC استفاده می شود.
رجیستر ADC:
این رجیستر مقدار ADC را نشان می دهد.
منابع سیستمی MEGA32:
رجیستر SFIOR:
این رجیستر برای انتخاب منبع تحریک واحد ADC و همچنین مقایسه کننده آنالوگ (Analog Comparator) استفاده می شود.
منابع سیستمی MEGA32:
منابع سیستمی مربوط به پورت ها
پورتها: با کمک پورتها شما می تونید یک پورت یا پایه میکرو رو به VCC یا همون ولتاژ مثبت وصل کنید.
منابع سیستمی MEGA32:
کد:
PORTA
PORTB
PORTC
PORTD
منابع سیستمی MEGA32:
کد:
DDRA
DDRB
DDRC
DDRD
منابع سیستمی MEGA32:
کد:
PINA
PINB
PINC
PIND
نکات مهم در مورد منابع سیستمی (رجیستر) پورت ها:
1-برای خواندن مقدار پورت ها به هیچ وجه از رجیستر PORT استفاده نکنید در غیر اینصورت با این کار، شما مقدار قبلیی که روی رجیستر PORT نوشتید رو دریافت می کنید.
2-در صورتی که در رجیستر DDR و PORT یک پایه چیزی ننویسید آن پورت NC یعنی قطع خواهد شد و از مدار میکرو خارج می گردد. (از اینکار می توانید برای کاهش نویز مدار استفاده کنید.
منابع سیستمی مربوط به عملیات بازنشانی(RESET)
رجیستر MCUCSR:
این رجیستر برای فهمیدن اینکه چجوری میکرومون ریست شده به ما میده.
منابع سیستمی MEGA32:
کد:
MCUCSR
این رجیستر مربوط به تایمر Watchdog بوده. کار تایمر Watchdog ریست کردن میکرو هنگام هنگ کردنه.
منابع سیستمی MEGA32:
کد:
WDTCR
منابع سیستمی مربوط به تایمر/کانتر
رجیستر TCCR:
کار این رجیستر کنترل تایمر و کانتر می باشد.
منابع سیستمی MEGA32:
کد:
TCCR0
TCCR1A
TCCR1B
TCCR2
این رجیستر برای خواندن مقدار شمارش شده کانتر و نوشتن تعداد شمارش تایمر به کار می رود.
منابع سیستمی MEGA32:
کد:
TCNT0
TCNT1H
TCNT1L
TCNT2
این رجیستر برای فهمیدن زمان سرریز تایمر یه کار می رود.
منابع سیستمی MEGA32:
کد:
TIFR
ETIFR
این رجیستر برای فعال سازی وقفه تایمر/کانتر استفاده می شود.
منابع سیستمی MEGA32:
کد:
TIMSK
ETIMSK
این رجیستر برای تولید یک موج روی پایه OCx میکرو استفاده می شود.
منابع سیستمی MEGA32:
کد:
OCR0
OCR1AH
OCR1AL
OCR1BH
OCR1BL
OCR2
منابع سیستمی مربوط به مبدل آنالوگ به دیجیتال (ADC)
رجیستر ADMUX:
این رجیستر برای کنترل واحد ADC به کار می رود.
منابع سیستمی MEGA32:
کد:
ADMUX
این رجیستر برای فعال سازی،کنترل و وضعیت ADC استفاده می شود.
کد:
ADCSRA
این رجیستر مقدار ADC را نشان می دهد.
منابع سیستمی MEGA32:
کد:
ADCH
ADCL
این رجیستر برای انتخاب منبع تحریک واحد ADC و همچنین مقایسه کننده آنالوگ (Analog Comparator) استفاده می شود.
منابع سیستمی MEGA32:
کد:
SFIOR