atmega 16
خصوصیات ATMEGA16 :
- از معماری AVR RISC استفاده می کند.
- کارایی بالا و توان مصرفی کم
- دارای 131 دستور العمل با کارایی بالا که اکثرا تنها در یک کلاک سیکل اجرا می شود
- 8*32 ریجیستر کاربردی
- سرعتی تا MIPS 16 در فرکانس 16MHZ
- حافظه , برنامه و داده غیرفرار
-16K بایت حافظه FLASH داخلی قابل برنامه ریزی پایداری حافظه FLASH : قابلیت 10,000 بار نوستن و پاک کردن (WRITE/ERASE)
- 1024 بایت حافظه داخلی SRAM
- 512 بایت حافظه EEPROM داخلی قابل برنامه ریزی
پایداری حافظه EEPROM : قابلیت 100,000 بار نوشتن وپاک کردن (WRITE/ERASE)
- قفل برنامه FLASH و حافظه داده EEPROM
- قابلیت ارتباط JTRAG (IEEE Std. )
- برنامه ریزی برنامه FLASH , EEPROM , FUSE BITS , LOCK BITS از طریق ارتباط JTAG
- دو تایمر � کانتر 8 بیتی با PRESCALER مجزا و مد COMPARE
- یک تایمر- کانتر 16 بیتی PRESCALER مجزا و دارای مدهای COMPARE و CAPTURE
- 4 کانال PWM
8 - کانال مبدل آنالوگ به دیجیتال 10 بیتی
8 - کانال SINGLE-ENDED
- دارای 7 کانال تفاضلی با کنترل گین 1x , 10x , 200x
- یک مقایسه کننده آنالوگ داخلی
- WATCHDOG قابل برنامه ریزی با ایلاتور داخلی
- قابلیت ارتباط با پروتکل سریال دو سیمه (TWO-WIRE )
- قابلیت اربباط سریال SPI به صورت MASTETR یا SKAVE
- USART سریال قابل برنامه ریزی
- خصوصیات ویژه میکرو کنترلر
- POWER-ON RESERT CIRCUIT و BROWN-OUT قابل برنامه ریزی
- دارای اسیلاتور RC داخلی کالیبره شده
- دارای 6 حالت SLEEP (POWER-DOWN , IDLE , POWER-SAVE , STANDBY , EXTENDED STANDBY , ADC NOISE REDUCTION )
- منابع وقفه (INTERRUPT) داخلی و خارجی
- عملکرد کاملا ثابت
- توان مصرفی پایین و سرعت بالا توسط تکنولوژی CMOS
- توان مصرفی در 1MHZ , 3V , 25C برای ATMEGA16
- حالت فعال 1.1mA (ACTIVE MODE )
- در حالت بی کاری 0.35mA (IDLE MODE (
- در حالت POWER-DOWN : <1 میکرو آمپر
- 4.5v تا 5.5v برابر (ATMEGA16 (
- خطوط I/O و انواع بسته بندی
- 32خط ورودی/ خروجی (I/O) قابل برنامه ریزی
- 40 پایه PDIP , 44 پایه TQFP و 44 پایه MLF
فیوز بیت های ATMEGA16
ATMEGA16 دارای دو بایت فیوز بیت طبقه طبق جدول می با شد
فیوز بیت ها با پاک کردن (ERASE ) میکرو تاثیری نمی بینند ولی می توانند با برنامه ریزی بیت LB1 قفل شوند . منطق 0 به معنای برنامه ریزی شدن و 1 به معنای برنامه ریزی نشدن بیت است .
بایت پرارزش فیوز بیتهای میکرو
DEFAULT VAQLUE |
DESCRIPTION |
BIT
NO |
FUSE HIGH
BYTE |
1(UNPROGRAMMED,OCRENABLE) |
ENABLEOCD |
7 |
OCDEN |
0(UNPROGRAMMED,JTSGENABLE) |
ENABLE JTAG |
6 |
JTAGEN |
0(UNPROGRAMMED,SPI
PROG.ENABLE) |
ENABLE SERIAL PROGRAM ANDDATA DOWNLOADING |
5 |
SPIEN |
1(UNPROGRAMMED) |
OSCILATOR OPTIONS |
4 |
CKOPT |
1UNPROGRAMMED,EEPROM NOT PRESERVED) |
EEPROM MEMORY IS PRESERVED THROUGH THE CHIP ERASE |
3 |
EESAVE
|
0(PROGRAMMED) |
SELECT BOOT SIZE |
2 |
BOOTSZ1 |
0(PROGRAMMED) |
SELECT BOOT SIZE |
1 |
BOOTSZ0 |
1(UNPROGRAMMED) |
SELECT RESERT VECTOR |
0 |
BOOTRST |
بایت کم ارزش فیو زبیتهای میکرو
DEFAULT VALUE |
DESCRIPTION |
BIT NO
|
FUSELOW BYTE
|
1(UNPROGRAMMED) |
BROWN OUT DETECTOR TRIGGER ENABLE |
7 |
BODLEVEL |
1(UNPROGRAMMED.BOD DISABLE) |
BROWN OUT DETECTOR ENABLE |
6 |
BODEN |
1(UNPROGRAMMED) |
SELECT START-UP TIME |
5 |
SUT1 |
0(PROGRAMMED) |
SELECT START-UP TIME |
4 |
SUT0 |
0(PROGRAMMED) |
SELECT CLOCK SOURCE |
3 |
CKSEL3 |
0(PROGRAMMED) |
SELECT CLOCK SOURCE |
2 |
CKSEL2 |
0(PROGRAMMED) |
SELECT CLOCK SOURCE |
1 |
CKSEL1 |
1 (PROGRAMMED) |
SELECT CLOCK SOURCE |
0 |
CKSEL0 |
بررسی پورتهای میکرو ATMEGA 16
در این بخش قصد داریم برای آشنایی بیشتر با عملکرد پورتها و رپجیستری های مربوط به طور نمونه به بررسی پورتهای میکرو ATMEGA 16 بپردازیم.
پورتهای D,C,B,A
هر یک از پورتهای بالا یک I/O دوطرفه 8 بیتی هستند. سه آدرس از مکان حافظهI/O اختصاص به PORT X دارد. یک آدرس برای رجیستری داده PORT X و دومی رجیستر جهت داده DDRX و سومی پایه ورودی پورت PINX.X است. آدرس پایه های ورودی پورت فقط قابل خواندن است در صورتی که رجیستر داده و رجیستر جهت داده هم خواندنی و هم نوشتنی هستند. تمام پایه های پورت دارای مقاومت Pull-up مجزا هستند. بافر خروجی پورت X جریانی تا 20mA را Sink می کند و در نتیجه می تواند LED را مستقیماً راه اندازی کند. هنگامی که پایه های PA0-PA7 با مقاومتهای Pull-Down خارجی ، به عنوان خروجی استفاده می شوند، آنها SOURCE جریان می شوند، زمانی که مقاومتهای Pull-Up داخلی فعال باشند.
استفاده از پورتهای A و B و C و D به عنوان یک I/O عمومی دیجیتال
جدول 6-1 تأثیر تغییرات DDXn بر روی پایه های PORT
.Comment |
Pull-up |
I/O |
PORTXn |
DDXn |
Tri-State |
No |
Input |
0 |
0 |
Pan Will source current if ext.pulled low |
Yes |
Input |
1 |
0 |
Push-pull Zero output |
No |
Output |
0 |
1 |
Push-pull One output |
No |
Output |
1 |
1 |
تمام 8 پایه موجودزمانی که به عنوان پایه های I/O دیجیتال استفاده می شوند دارای عملکرد مساوی هستند. Pan ، پایه I/O عمومی: بیت DDXn در رجیستر DDRX مشخص کننده جهت پایه است. با توجه به جدول 6-1 اگر DDXn یک باشد، Pan به عنوان یک پایه خروجی مورداستفاده قرار می گیرد و اگر DDXn صفر صفر باشد، Pan به عنوان یک پایه ورودی درنظر گرفته می شود. اگر Port Xn یک باشد هنگامی که پایه به عنوان ورودی تعریف شود یا اینکه پایه به عنوان خروجی تعریف شود. پایه های پورت زمانی که روی ریست اتفاق می افتد به حالت Tri-state می روند.
دیگر کاربردهای پورتهای A و B و C و D
پورت A به عنوان ADC هم استفاده می شود. این نکته بسیار مهم است که اگر تعدادی از پایه های پورت A خروجی تعریف شوند، در زمان نمونه برداری از سیگنال آنالوگ توسط ADC، سوئیچ نشوند. این کار ممکن است عملیات تبدیل ADC را نامعتبر کند.
دیگر کاربردهای پورت B
PORTB.7-SCK
Sck: کلاک خروجی Master و کلاک ورودی Slave برای ارتباط SPI است. زمانی که SPI به عنوان Slave شکل دهی می شود این پایه با توجه به تنظیم DDB7 ورودی و در حالت Master خروجی تعریف می شود.
PORTB.6-MISO
MISO: ورودی داده Master و خروجی داده Slave و خروجی داده Master که برای ارتباط SPI استفاده می شود. زمانی که SPI به عنوان Master شکل دهی می شود این پایه با توجه به تنظیمات DDB5 خروجی و در حالت Slave به عنوان ورودی استفاده می شود.
جدول 6-3 دیگر کاربردهای پورت B
ALTNATER FUNCTION |
PORT PIN |
T0 (Timer/Counter0 Ec\xternal Counter Input) |
PB7 |
T1(Timer/ Counter1 Input) |
PB6 |
AIN0(Analog Comparator Positive Inpt) |
PB5 |
AIN1 (Analog Comparator Negative Inut) |
PB4 |
SS (SPI Slave Select Input) |
PB3 |
MOSI (SPI Bs Master Output/Slave Input) |
PB2 |
MISO (SPI Bs Master Input/Slave Output) |
PB1 |
SCK (SPI Bus Serial Clock) |
PB1 |
SPI یه عنوان Master شکل دهی می شود این پایه با توجه به تنظیمات DDB5 خروجی و در حالت Slav به عنوان ورودی استفاده می شود.
-SS 4PORTB.
SS: زمانی که SPI بهعنوان Slave شکل دهی شود PB4 باتوجه به DDB4 ورودی تعریف می شود و در Slave با Low شدن این پایه SPI فعال می شود. این پایه در Master می تواند خروجی یا ورودی تعریف شود.
-OCO, AIN1 3PORTB.
AIN0 : ورودی منفی مقایسه کننده آنالوگ است.
OC0: دیگر کاربرد این پایه بعنوان خروجی مُد مقایسه ای Timer/Counter0 است. پایه PB3 با یک کردن DDB7 میتواند برای خروجی مُد مقایسه ای Timer/Counter0 شکل دهی شود.
-INT2, AIN0 2PORTB.
AIN0 : ورودی مثبت مقایسه کننده آنالوگ است.
INT2: دیگر کاربرد این پایه به عنوان منبع وقفه خارجی دو است. پایه pb2 می تواند منبع خارجی برای میکرو استفاده شود.
PORTB.1 � T1 .
T1: ورودی کلاک برای Timer/Counter1 است.
POUTB.0-XCK, T0
T0: ورودی کلاک برای Timer/Counter0 است.
XCK: این پایه نیز می تواند به عنوان کلاک خارجی USART استفاده می شود. این پایه فقط زمانی که USART درمُد آسنرون کار می کند فعال می شود.
دیگر کاربردهای پورتC
جدول 6-5 دیگر کاربردهای پورت C
ALTNATER FUNCTION |
PORT PIN |
TOC2 (Timer Oscillator Pin 2) |
PC7 |
ICP(Timer Oscillato Pin 1) |
PC6 |
TDI (JTAG Test Data In) |
PC5 |
TDO (JTAG Test Data Out) |
PC4 |
TMS (JTAG Test Clock) |
PC3 |
SDA (JTAG Test Clock) |
PC2 |
SDA (Tow-Wire Serial Bs Data Input/Output Line) |
PC1 |
SCL (Tow-Wire Serial Bus Clock Line) |
PC1 |
-TOSC27 PORTC.
TOSC2: زمانی که تایمر / کانتر 2 در مُد آسنکرون کار می کند به این پایه و پایه TOSC1 کریستال ساعت متصل می شود. دراین حالت دیگر نمی توان این پایه را به عنون I/O استفاده نمود.
TOSCI - 6 PORTC.
TOSCI: زمانی که تایمر / کانتر 2 در مُد آسنکرون کار می کند به این پایه و پایه TOSC2 کریستال متصل می شود. دراین حالت دیگر نمی توان این پایه را به عنون I/O استفاده نمود.
TDI - 5 PORTC.
TDI: در زمان ارتباط JTAG به عنوان ورودی داده سریال عمل می کند و دیگر نمی تون از این پایه به عنوان I/O استفاده نمود.
TDO - 4 PORTC.
TDO: در زمان ارتباط JTAG به عنوان خروجی داده سریال عمل می کند و دیگر نمی تون از این پایه به عنوان I/O استفاده نمود.
TMS- 3 PORTC.
TMS: در زمان ارتباط JTAG استفاده می شود و دیگر نمی تون از این پایه به عنون I/O استفاده نمود.
پایه PD3 می تواند به عنوان منبع وقفه خارجی برای میکرو استفاده شود.
TCK - 2 PORTC.
INT0: در زمان ارتباط JTAG استفاده می شود و دیگر نمی توان از این پایه به عنوان I/O استفاده نمود.
PORTC.1-SDA
SDA: در زمان ارتباط 2-WIRE به عنوان خط داده استفاده می شود.
PORTC.0-SCL
SCL: در زمان ارتباط 2-WIRE به عنوان خط کلاک استفاده می شود.
دیگر کاربردهای پورتD
جدول 6-6 دیگر کاربردهای پورت D
ALTNATER FUNCTION |
PORT PIN |
OC2 (T/C2 OUTPUT COMPARE MATCH OUTPUT) |
PD7 |
ICP(T/C1 INPUT CAPTURE PIN) |
PD6 |
OCIA(T/C1 OUTPUT COMPAREA MATCH OUTPUT |
PD5 |
OCIB (T/C1 OUTPUT COMPARE B MATCH OUTPT |
PD4 |
INT1 (EXTERNAL INTERRUPT 1 INPUT) |
PD3 |
INT0 (EXTERNAL INTERRUPT 1 INPUT) |
PD2 |
TXT (UART OUTPUT LINE) |
PD1 |
RXD (UART INPUT LINE) |
PD1 |
-OC27 PORTD.
OC2: خروجی مُد مقایسه ای تایمر کانتر PD7.2 کبا یک شدن DDD7 می توان به عنوان پایه خروجی مُد مقایسه ای Timer/Counter 2 شکل دهی می شود. این پایه همچنین برای خروجی PWM تایمر استفاده می شود.
ICP - 6 PORTD.
به عنوان خروجی CAPTURE تایمر / کانتر I عمل کند.
OCIA - 5 PORTD.
OCIA: خروجی مُد مقایسه ای Timer/counter 1. پایه PDS با یک شدن DDDS می توند برای خروجی مُد مقایسه ای Timer/Counter 1 شکل دهی شود. این پایه همچنین برای خروجی PWM تایمر I استفاده می شود.
OCIB - 4 PORTD.
پایه PD4 با یک شدن DDD4 می تواند برای خروجی مُد مقایسه ای Timer/counter 1 شکل دهی شود. این پایه همچنین برای خروجی PWM تایمر استفاده می شود.
INT1- 3 PORTD.
INT1: منبع وقفه خارجی یک
پایه PD3 می تواند به عنوان منبع وقفه خارجی برای میکرو استفاده شود.
INT0 - 2 PORTD.
INT0 : منبع وقفه خارجی صفر
پایه PD2 می تواند به عنوان وقفه خارجی برای میکرو استفاده شود.
PORTD.1-TXD
TXD: ارسال داده (پایه خروجی داده برای USART))
زمانی که ارسال USART فعال می شود پایه با توجه بهDDDI به عنوان خروجی شکل دهی می شود.
PORTD.0-RXD
RXD: دریافت داده (پایه ورودی داده برای (USART)زمانی که دریافت USART)) فعال می شود پایه باتوجه به DDDO به عنوان ورودی شکل دهی می شود
مشخصات LCD (16*2):
صفحه نمایش LCD از پروژکنتورهای نقطه چین مانندی تشکیل شده است که با نظم خاصی کنار هم قرار گرفته اند.
معمولاً بعضی اطلاعات مانند (اعداد � حروف � علامتهای خاص و غیره) با کدهای مشخص توسط سازنده های LCD در حافظه این دستگاه قرار داده می شود و می توان با رعایت شرایط لازم از این اطلاعات استفاده نمود. البته تغییر این اطلاعات نیز امکان پذیر می باشد. ولی معمولاً این اطلاعات برای کاربردهای مختلف کافی می باشند.
سخت افزار و پایه های LCD:
LCD معمولا دارای 14 پایه می باشند. LCD هایی که دارای 16 پایه هستند. پایه های 15 و 16 به منظور روشن کردن لامپ داخلی LCD به کار برده می شود که معمولاً هر گاه پایه 15 به زمین و پایه 16 به VCC وصل شود در آن صورت لامپ LCD روشن می شود. پایه های دیگر LCD به سه دسته تقسیم میشود که دستور وظیفه آنجا به قرار زیر است:
الف: پایه هایی که به منظور تغذیه LCD به کار برده میشود.
معمولاً این پایه ها به صورت شکل روبرو در کاربردهای LCD قرار می گیرند.
پایه 1: پایه GND و یا زمین LCD است.
پایه 2: پایه VCC مدار LCD است که مقدار آن V5 و C5 می باشد.
پایه 3: پایه ولتاژ LCD نامیده می شود و به منظور تأمین و تنظیم روشنایی Curser و صفحه نمایش LCD مورد استفاده قرار می گیرد.
ب) پایه هایی که به منظور کنترل اطلاعات ورودی و خروجی در LCD به کار برده می شوند.
پایه 4: پایه شماره 4 به عنوان پایه (Reqister selection)RS شناخته می شود و هر گاه به حالت صفر منطقی انتخاب شود دراین حالت LCD در حالت آماده سازی و یا تغییر مکان Curser می باشد ولی هر گاه یک منطقی انتخاب شود دراین حالت LCD آماده دریافت و یا خروج اطلاعات می باشد.
این پورت C و پین صفر وصل می شود.
پایه شماره 5: این پایه به عنوان (Read/Write)R/W برای انتخاب حالت خواندن و یا نوشتن اطلاعات در LCD به کار برده شده است. هر گاه این پایه سفر منطقی انتخاب شود در این حالت
می توانیم اطلاعات را از LCD بخوانیم و هرگاه این پایه یک منطقی انتخاب شود می خوانیم اطلاعاتی را در آن بنویسیم. این پایه به پورت C و پین یک وصل می شود.
پایه شماره 6: این پایه با عنوان (Enable signal) برداشتن اطلاعات از LCD و با ریختن اطلاعات به آن را کنترل میکند. هر گاه این پایه در حالت یک منطقی قرار گیرد و بعد به حالت صفر منطقی درآید در آن صورت در حالت لبه پایین رونده این سیگنال اطلاعات در LCD قرار گرفته و یا از آن برداشته می شود. این پایه به پورت C و پین دو وصل میشود.
ج) پایه هایی که اطلاعات را وارد و یا خارج می کنند.
پایه های 7 تا 14 پایه های Data و یایه اطلاعات می باشند. اطلاعات هشت بیتی و با قرار گرفتن در این پایه ها به LCD وارد و یا از آن خارج می شوند. پایه 7 تا پایه 14 را باید به ترتیب به پورت C و پین 4 تا پین 7 وصل می کنیم .
طرز کار و امکانات LCD:
صفحه نمایش LCD از پروژکنتورهای نقطه چین مانندی تشکیل شده است که با نظم خاصی کنار هم قرار گرفته اند.
معمولاً بعضی اطلاعات مانند (اعداد � حروف � علامتهای خاص و غیره) با کدهای مشخص توسط سازنده های LCD در حافظه این دستگاه قرار داده می شود و می توان با رعایت شرایط لازم از این اطلاعات استفاده نمود. البته تغییر این اطلاعات نیز امکان پذیر می باشد. ولی معمولاً این اطلاعات برای کاربردهای مختلف کافی می باشند.
خصوصیات سنسور رطوبت :سنسور رطوبت به کار رفته در این پروژه یک المان دو پایه است که همانند یک مقاومت متغیر عمل میکند با این تفاوت که این تغییر مقاومتی با افزایش یا کاهش رطوبت انجام میگیرد .
منابع و ماخذ مورد استفاده :
1 - سایت های و وبلاگ های استفاده شده الف �
www.txt.ir
2 - کتاب استفاده شده
11 پروژه با AVR
پایان