مقاله در مورد میکروکنترلر ها pdf
نوشته شده به وسیله ی علی در تاریخ 95/6/18:: 2:37 صبح

مقاله در مورد میکروکنترلر ها pdf دارای 42 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله در مورد میکروکنترلر ها pdf کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله در مورد میکروکنترلر ها pdf ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن مقاله در مورد میکروکنترلر ها pdf :
میکروکنترلر ها
چکیده :
سخت افزار این پروژه به طور کلی از یک میکروکنترلر Atmega16 از شرکت ATMEL و یک LCD 4*20 جهت نمایش عملکرد و 4 رله در خروجی و چند قطعه دیگر جهت کارهای جانبی و تنظیمات سخت افزاری تشکیل شده است .
این پروژه جهت کنترل 4 موتور مجزا با تنظیمات مجزا می باشد که توسط برنام Bascom و به زبان Basic طراحی شده است .
جهت شناسایی این که کدام موتور باید روشن شود به صورت مقایسه ای برنام ساعت نوشته شده است که هر لحظه تنظیمات 4 موتور با ساعت چک می شود و هر کدام که با ساعت Set شود بدین ترتیب است که اگر ثانیه با ثانیه ساعت برابر شد برنامه به قسمت دقیقه می رود و اگر دقیقه برابر شد به قسمت ساعت رفته و آن را نیز مانند بقیه چک میکند و در صورت برابر
نام این پروژه HMI است که مخفف سه کلم
Human Machine Interface
به معنی ماشین واسط انسانی است .
مقدمه :
امروزه با توجه به پیشرفت علم الکترونیک از میکروکنترلرها استفاده بیشتری می شود که این میکروکنترلرها دو مزیت بزرگ دارند : 1 سادگی مدار از نظر سخت افزاری 2 ارزان تمام شدن مدار .
میکروکنترلرها انواع مختلف و با زبان های برنامه نویسی مختلف از جمله Basic و C و;
می باشند که هر یک مزیتها و معایبی را دارند .
در این پروژه که جهت کنترل زمان روشن و خاموش شدن 4 موتور در خروجی یا به طور کلی 4 خروجی از میکروکنترلر AVR از نوع ATmega16 شرکت ATmel و توسط زبان Basic و در محیط Bascom طراحی شده است .
مختصری راجع به AVR
زبانهای سطح بالا یا همان (HIGH LEVEL LANGUAGES) HLL به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد برای میکرو کنترلرها (MCU) حتی برای میکروهای 8 بیتی کوچک هستند . زبان برنامه نویسی BASIC و C بیشترین استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمبلی تولید می کنند . ATMEL ایجاد تحولی در معماری ، جهت کاهش کد به مقدار مینیمم را درک کرد که نتیجه این تحول میکرو کنترلرهای AVR هستند که علاوه بر کاهش و بهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری ( REDUCED RISC INSTRUCTION SET COMPUTER) انجام می دهند و از 32 ریجیستر همه منظوره (ACCUMULATORS) استفاده می کنند که باعث شده 4 تا 12 بار سریعتر از میکروهای موزد استفاده کنونی باشند .
تکنولوژی حافظه کم مصرف غیر فرّار شرکت ATMEL برای برنامه ریزی AVR ها مورد استفاده قرار گرفته است در نتیجه حافظه های FLASH و EEPROM در داخل مدار قابل برنامه ریزی (ISP) هستند . میکروکنترلرهای اولیه AVR دارای 1 ، 2 ، 8 کییوبایت حافظه FLASH و به صورت کلمات 16 بیتی سازماندهی شده بودند .
AVR ها به عنوان میکروهای RISC با دستورات فراوان طراحی شده اند که باعث میشود حجم کد تولید شده کم و سرعت بالاتری به دست آید .
عملیات تک سیکل :
با انجام تک سیکل دستورات ، کلاک اسیلاتور با کلاک داخلط سیستم یکی می شود . هیچ تقسیم کننده ای در داخل AVR قرار ندارد که ایجاد اختلاف فاز کلاک کند . اکثر میکروها کلاک اسیلاتور به سیستم را با نسبت 1:4 یا 1:12 تقسیم می کنند که
خود باعث کاهش سرعت می شود . بنابراین AVR ها 4 تا 12 بار سریعتر و
مصرف
آنها نیز 4-12 بار نسبت به میکروکنترلرهای مصرفی کنونی کمتر است زیرا در تکنولژی CMOS استفاده شده در میکروهای AVR ، مصرف توان سطح منطقی متناسب با فرکانس است .
نمودار زیر افزایش (MILLION INSSTRUCTION PER SECONDS) MIPS را به علت انجام عملیات تک سیکل AVR (نسبت 1:1 ) در مقایسه با نسبتهای 1:4 و 1:12 دی دیگر میکروها را نشان می دهد .
نمودار مقایسه افزایش
MIPS/POWER Consumption در AVR با دیگر میکرو کنترلرها .
طراحی برای زبان های BASIC و C
زبان های BASIC و C بیشترین استفاده را در دنیای امروز بعنوان زبان های HLL دارند. تا امروزه معماری بیشتر میکروها برای زبان اسمبلی طراحی شده و کمتر از زبانهای HLL حمایت کرده اند .
هدف ATMEL طراحی معماری بود که هم برای زبان اسمبلی و هم زبان های HLL مفید باشد . به طور مثال در زبانهای C و BASIC می توان یک متغییر محلی به جای متغییر سراسری در داخل زیربرنامه تعریف کرد ، در این صورت فقط در زمان اجرا زیر برنامه مکانی از حافظه RAM برای متغییر اشغال می شود در صورتی که اگر متغییری به عنوان سراسری تعریف گردد در تمام وقت مکانی از حافظه FLASH ROM را اشغال کرده است .
برای دسترسی سریعتر به متغییرهای محلی و کاهش کد ، نیاز به افزایش رجیسترهای همه منظوره است . AVR ها دارای 32 رجیستر هستند که مستقیماً به
( UNIT ARITHMETIC) LOGIC ALU) متصل شده اند ، و تنها در یک کلاک سیکل به این واحد دسترسی پیدا می کنند .سه جفت از این رجیسترها می توانند به عنوان رجیسترهای 16 بیتی استفاده شوند .
کلیات پروژه و نحوه عملکرد :
این پروژه جهت زمان بندی مجزای 4 موتور (یا هر خروجی دیگر )استفاده می شود که با تنظیم هر موتور می توان به طور مجزا از آن استفاده کرد و تنظیمات هر موتور با موتورهای دیگر کاملاً مجزا است .
در این پرژه پس از Initialize شدن و معرفی پرژه به صفح اصلی می رسیم که در قسمت بالای صفحه ، ساعت آن قرار دارد که در هنگام روشن شدن در صورت تنظیم نکردن از ساعت 12:00:00 شروع به شمارش می کند .
در قسمت زیرین نشانگر ساعت ، نشانگر وضعیت 4 موتور قرار دارد که در صورتی که موتوری روشن باشد در جلوی آن کلمه ی ON و در صورتی که خاموش باشد کلم OFF درج شده است .
در پایین صفحه LCD 4 گزین TAB – UP – MENU – SAVE وجود دارد .
برای تنظیمات موتور و ساعت توسط گزین TAB به صفح بعد می رویم در صفح بعد دو گزینه با نامهای Mode 1 و Mode 2 داریم که Mode 1 برای تنظیمات ساعت و Mode 2 برای تن
ظیمات 4 موتور است و در صورتی که سوئیچ زیر هر گزینه را بفشاریم به آن MODE رفته و شروع به تنظیمات می کنیم به شرح زیر :
اگر Mode 1 برویم وارد مُد ساعت شده ایم و با کلید TAB روی هر قسمت از ساعت و دقیقه و ثانیه می رویم پس از این کار با گزینه Up شروع به تنظیم هر قسمت می کنیم و
با گزین TAB به قسمت بعدی می رویم و در صورتی که بخواهیم تنظیمات ثبت شود توسط گزین Save آن را ثبت می کنیم و توسط گزین Esc به صفح اصلی بر میگردیم . حال اگر به MODE 2 برویم وارد مُد تنظیمات 4 موتور رفته ایم و با کلید TAB از 4 موتور یکی را انتخاب کرده و توسط گزین OK وارد تنظیمات آن موتور میشود که شامل دو گزین Start و Time است که گزین Start زمان روشن شدن و گزین Time زمان خاموش شدن را مشخص می کند و برای تنظیمات آن نیز مانند تنظیمات ساعت توسط دو گزین TAB و Up تنظیم می کنیم و توسط گزین Save آن را قبول کرده و تنظیم می کنیم ، سپس توسط گزین Esc از آن صفحه خارج و به صفح قبل بر می گردیم و این عمل برای تنظیم 4 موتور صورت می گیرد .
در پایان جا دارد این نکته نیز گفته شود که تنظیمات ثبت شده برای هر 4 موتور در EEPROM ثبت می شود و در صورتی که تغذی آن قطع شود و برای بار دوم روشن شود تنها باید ساعت تنظیم شود و تنظیمات موتور دقیقاً مانند قبل عمل خواهند کرد .
توضیح در مورد سخت افزار
میکروکنترلرها AVR این پروژه از نوع Atmega16 انتخاب شده است که دارای فضای حافظ بیشتر و EEPROM می باشد .نمایشگر این پروژه از نوع LCD 4*20 با شماره
TS-2040-1 می باشد که دیتا شیت آن در فصل پایانی ارائه شده است .
در قسمت تغذیه از چهار دیود IN4007 استفاده شده و برای صافی آن از خازن 1000Uf و خازن عدسی 100nf استفاده شده است و از یک رکولاتور 7805 برای تثبیت ولتاژ 5 ولت در خروجی قرار گرفته است . نشان دهنده Power قرار دارد .
برای کنترل و مقداردهی از 4 میکروسوئیچ به همراه 4 مقاومت 10 کیلو اُهم که پزیری را صفر می کند و در عمل به این مقاومتها ، مقاومت های Pall down گویند .
یک مقاومت برای تنظیم کنتر است ، LCD بین پای 3 و زمین قرار دارد و یک مقاومت هم برای محدود کردن جریان سوئیچ رله ها است .
خصوصیات ATmega16 , ATmega16 L
• از معماری AVR RISC استفاده می کند .
– کارایی بالا و توان مصرفی کم .
– دارای 131 دستورالعمل با کارایی بالا که اکثراً تنها در یک کلاک سیکل اجرا میشوند .
– 32*8 رجیستر کاربردی .
– سرعتی تا 16 MIPS در فرکانس 16 MHZ
• حافظه ، برنامه و داد غیر فرّار
– 16K بایت حافظه FLASH داخلی قابل برنامه ریزی
پایداری حافظه FLASH : قابلیت 10000 بار نوشتن و پاک کردن (WRITE , ERASE)
– 1024 بایت حافظه داخلی SRAM
– 512 بایت حافظه EEPROM داخلی قابل برنامه ریزی.
پایداری حافظه EEPROM : قابلیت 100000 بار نوشتن و پاک کردن (WRITE , ERASE)
– قفل برنام FLASH و حفاظت داد EEPROM
• قابلیت ارتباط JTAG (IEEE Std.)
– برنامه ریزی برنام FLASH ، EEPROM ، FUSE BITS و LOCK BITS از طریق ارتباط JTAG
• خصوصیات جانبی
– دو تایمر – کانتر (TIMER / COUNTER) 8 بیتی با PRESCALER مجزا و مُد COMPARE
– یک تایمر – کانتر (TIMER / COUNTER) 16 بیتی با PRESCALER مجزا و دارای مُدهای COMPARE و CAPTURE
– 4 کانال PWM
– 8 کانال مبدل آنالوگ به دیجیتال 10 بیتی
8 کانال SINGLE – ENDED
دارای 7 کانال تفاضلی در بسته بندی TQFP
دارای دو کانال تفاضلی با کنترل گین 10x , 1x و 200x
– یک مقایسه کننده آنالوگ داخلی .
– WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی .
– قابلیت ارتباط با پروتکل سریال دوسیمه (TWO – WIRE)
– قابلیت ارتباط سریال (SERIAL PERIPHERAL INTERFACE) SPI به صورت MASTER یا SLAVE.
– USART سریال قابل برنامه ریزی
• خصوصیات ویژه میکروکنترلر
– POWER-ON RESET CIRCUIT و BROWN-OUT قابل برنامه ریزی .
– دارای اسیلاتور RC داخلی کالیبره شده .
– دارای 6 حالت
EXTENDED STANDBY , STANDBY , POWER – SAVE , IDLE , POWER-DOWN) SLEEP و (ADC NOISE REDUCTION
– منابع وقفه (ENTERRUBT) داخلی و خارجی .
– عملکرد کاملاً ثابت .
– توان مصرفی پایین و سرعت بالا توسط تکنولوژی CMOS
• توان مصرفی در 25°c , 3v , 1mhz برای ATMEGA16L
– حالت فعال (ACTIVE MODE) 1.1mA
– در حالت بی کاری (IDLE MODE) 0.35mA
– در حالت 1uA>:POWER-DOWN
• ولتاژهای عملیاتی (کاری)
– 27v تا 55v برای (Atmega16L)
– 4.5v تا 55v برای (Atmega16)
• فرکانسهای کاری
– 0MHZ تا 8MHZ برای (Atmega16L)
– 0MHZ تا 16MHZ برای (Atmega16)
• خطوط I/O و انواع بسته بندی
– 32 خط ورودی / خروجی (I/O) قابل برنامه ریزی .
– 40 پایه 44 , PDIP پایه TQFP و 44 پایه MLF
• ترکیب پایه ها
DEFFAULT VALUE DESCRIPTION BIT
NO. FUSE HIGT BYTE
1 (UNPROGRAMMED , OCD ENABLE) ENABLE OCD 7 OCDEN
0 ( PROGRAMMED , JTSG ENABLE ) ENABLE JTAG 6 JTAGEN
0 (PROGRAMMED , SPI PROG.ENABLE)
ENABLE SERIAL PROGRAM AND DATA DOWNLOADING 5 SPIEN
1 (UNPROGRAMMED , SPI PROG.ENABLE) OSCILLATOR OPTIONS 4 CKOPT
1 (UNPROGRAMMED , EEPROM NOT PRESER VED) EEPROM MEMORY IS PRESER VEDTHROUGH THE CHIP ERASE 3 EESAVE
0 (PROGRAMMED) SELECT BOOT SIZE 2 BOOTSZ1
0 (PROGRAMMED) SELECT BOOT SIZE 1 BOOTSZ0
1 (UNPROGRAMMED) SELECT PESET VECTOR 0 BOOTRST
FUSE HIGT BYTE
FUSE LOW BYTE
DEFFAULT VALUE DESCRIPTION BIT
NO. FUSE HIGT BYTE
1 (UNPROGRAMMED ) BROWN OUT DETECTOR TRIGGER LEVEL 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 (UNPROGRAMMED) SELECT CLOCK SOURCE 0 CKSEL0
فیوز بیت ها با پاک کردن (ERASE) میکرو تأثیری نمی بینند ولی می توانند با برنامه ریزی بیت LB1 قفل شوند .منطق 0 به معنای برنامه ریزی ریزی شدن و 1 به معنی برنامه
ریزی نشدن بیت است .
OCDEN : در صورتی که بیت های قفل برنامه ریزی نشده باشند برنامه ریزی این بیت به همراه بیت قسمتهای از میکرو امکان میدهد که در مودهای SLEEP کار کنند که این خود باعث افزایش مصرف سیستم می گردد .این بیت به صورت پیش فرض برنامه ریزی نشده (1) است .
JTAGEN : بیتی برای فعالسازی برنامه ریزی میکرو از طریق استاندارد ارتباطی (JTAG) IEEE که در حالت پیش فرض فعال است و میکرو می تواند از این ارتباط برای برنامه ریزی خود استفاده نماید .
SPIEN : در حالت پیش فرض برنامه ریزی شده و میکرو از طریق سریال SPI برنامه ریزی می شود .
CKOPT : انتخاب کلاک که به صورت پیش فرض برنامه ریزی نشده است . عملکرد این بیت به بیت های CKSEL بستگی دارد که در بخش کلاک سیستم (1) در انتهای همین فصل آمده است .
EESAVE : در حالت پیش فرض برنامه ریزی نشده و در زمان پاک شدن (ERASE) میکرو حافظه EEPROM پاک می شود ولی در صورتی که برنامه ریزی شود محتویات EEPROM در زمان پاک شدن میکرو محفوظ میماند .
BOOTSZ0 , BOOTSZ1 : برای انتخاب مقدار حافظه BOOT طبق جدول زیر
برنامه ریزی می شوند و در زمان برنامه ریزی شدن فیوز بیت BOOTRST اجرای برنامه از آدرس حافظه BOOT آغاز خواهد شد .
Boot reset Address Boot flash
Addresses Application flash
Addresses page Boot
size
BOOTSZ0 BOOTSZ1
0x1f80 0x1f80-1fff 0x0000-0x1f 7f 2 128
words 1 1
0x1f00 0x1f00-1fff
0x0000-0x1eff 4 256 words 0 1
0x1E00 0x1E00-x1fff 0x0000-x1Dff 8 512 words 1 0
0x1C00 0x1C00-x1fff 0x0000-0x1Bff 16 1024 words 0 0
جدول انتخاب مقدار حافظه BOOT توسط فیوز بیت های BOOTSZ 0,1
BOOTRST : بیتی برای انتخاب بردار ری ست BOOT که در حالت پیش فرض برنامه ریزی نشده و آدرس بردار ری ست $0000 است و در صورت برنامه ریزی آدرس بردار ری ست به آدرسی که فیوز بیت های BOOTSZ0 و BOOTSZ1 مشخص کرده اند تغییر می یابد .
RESET ADDRES BOOTRST
RESET VECTOR = APPLICATION RESET(ADDRESS $0000) 1(UNPROGRAMMED)
RESET VECTOR = BOOT LOADER RESET 0(PROGRAMMED)
جدول انتخاب آدرس بردار ریست توسط فیوز بیت BOOTRST
BOODLAVEL : زمانی که این بیت برنامه ریزی نشده (پیش فرض ) باشد اگر ولتاژ پایه VCC از 27v پایین تر شود ری ست داخلی میکرو فعال شده و سیستم را ری ست
می کند . زمانی که این بیت برنامه ریزی شده باشد اگر ولتاژ پایه VCC از 4v پایین تر شود ری ست داخلی میکرو فعال شده و میکرو را ری ست می کند
BODEN : برای فعال کردن عملکرد مدار BROWN-OUT این بیت بایستی برنامه ریزی شده باشد . این بیت به صورت پیش فرض برنامه ریزی نشده است .
BROWN – OUT DETECTION BOODEN , BODLEVEL
DISABLE 11
DISABLE 10
AT VCC = 2.7V 01
AT VCC = 4.0V 00
جدول انتخاب سطح ولتاژ برای مدار BROWN-OUT داخلی
SUT1, SUT0 : عملکرد این دو بیت برای انتخلب زمان START-UP .
CKSEL3 … CKSEL0 : عملکرد این بیت ها در انتهای همین فصل کاملاً
توضیح داده شده است . مقدار پیش فرض INTERNAL RC OSCILLATOR @ 1MHZ است .
کلاک سیستم
توضیع کلاک
کلاک سیستم میکرو طبق شکل زیر توضیع شده است .
کلاکCPU- CLKcpu
این کلاک برای انجام عملیات AVR به طور مثال رجیسترها استفاده میشود .توقف و به مکث بردن این کلاک باعث می شود که عملیات و محاسبات AVR انجام نگیرد .
کلاک CLK I/0 – I/0
این کلاک توسط بسیاری از ماژول های I/0 به طور مثال تایمرها ، کانترها ، SPI و USART استفاده می گردد.
کلاکFLASH CLKflash-
این کلاک عملیات ارتباطی با حافظه FLASH را کنترل می کند . کلاک FLASH معمولاً با کلاک CPU فعال می شود .
کلاک غیر همزمان تایمر –CLK ASY
با این کلاک تایمر / کانتر به صورت غیر همزمان توسط کریستال ساعت 32768 HZ کار می کند حتی اکر سیستم در حالت SLEEP باشد .
کلاک CLK ADC – ADC
ADC از یک کلاک جداگانه حساس استفاده می کند که باعث می شود کلاک های CPU و I/0 به حالت ایست (HALT) تا نویز حاصل از مدار دیجیتال داخلی کاهش یافته و در نتیجه عملیات تبدیل با دقت بیشتری انجام یابد .
منابع کلاک (CLOCK SOURCE)
میکرو دارای انواع منابع کلاک اختیاری است که می توان انواع آن را به وسیله بیت های قابل برنامه ریزی (FLASH FUSE BITS)FLASH انتخاب کرد . کلاک انتخاب شده به عنوان ورودی کلاک AVR در نظر گرفته شده و کلاک مناسب به هر قسمت سیستم
در تمام جداول فیوز بیت ها ، 0 به معنای بیت برنامه ریزی شده (PROGRAMMED) و 1 به معنای بیت برنامه ریزی نشده (UNPROGRAMMED) است .
هنگامی که CPU از مُد POWER-DOWN یا POWER-SAVE خارج میشود زمانی به نام زمان شروع (START_UP) برای رسیدن کریستال به شرایط پایدار ایجاد و سپس دستورات برنامه اجرا می شود و هنگامی که CPU از ریست شروع به کار میکند، تأخیری اضافه (DELAY) برای رسیدن ولتاژ به سطح پایدار ایجاد شده و سپس اجرای برنامه آغاز می شود . برای ایجاد زمانبندی های مذکور از اسیلاتور WATCHDOG استفاده می گردد.
اسیلاتور کریستالی (EXTERNAL CTYSTAL / CERAMIC SESONATOR)
در این حالت کریستال یا نوسانگر سرامیکی (CERAMIC RESONATOR) یا کریستال کوارتز (QUARTZ CRYSTAL) . فیوز بیت CKOPT می تواند برای دو حالت مختلف استفاده شود . زمانی که محیط بسیار نویزی باشد ، این بیت برنامه ریزی می شود که رنج وسیعی از فرکانسها را شامل می شود . برنامه ریزی نکردن CKOPT باعث کاهش مصرف شده و بر خلاف قبل رنج محدودی از فرکانسها را شامل می شود .
خازن های C1 و C2 برای کریستال ها و نوسانگرها بایستی یک مقدار باشند و مقادیر آنها بستگی به کریستال ، نوسانگر و نویزهای الکترومغناطیسی محیط دارد . برای نوسانگری های سرامیکی بایستی امقدار خازن هایی که توسط کارخانه پیشنهاد می گردد استفاده شود .
شکل اتصال کریستال به میکرو در
حالت اسیلاتور کریستالی
اسیلاتور کریستالی فرکانس پایین ( EXTERNAL_LOW FREQUENCY CRYSTAL )
برای استفاده از کریستال ساعت 32768KHZ فیوز بیت های CKSEL با 1001 برنامه ریزی می شوند و کریستال طبق شکل صفحه ی قبل به پایه های XTAL1 و XTAL2 متصل می شود .با برنامه ریزی کردن CKOPT می توان خازن های داخلی را فعال نمود و در نتیجه خازن های خارجی را برداشت . مقدار نامی خازن های داخلی 36PF است .
اسیلاتور RC خارجی EXTERNAL RC OCSILLATOR) (
فرکانس تقریبی توسط معادله f=1 / (3RC) به دست می آید . مقدار خازن بایستی حداقل 22PF باشد . با برنامه ریزی کردن فیوز بیت CKOPT کاربر می تواند خازن های داخلی 36PF را بین XTAL1 وGND راه اندازی کند و در نتیجه نیازی به خازن خارجی نیست .
اسیلاتور RC کالیبره شده داخلی (CALIBRA TED INTERNAL RC SCILLATOR)
اسیلاتور RC کالیبره شده ی داخلی ، کلاک های نامی داخلی 1 ، 2 ، 4 و 8MHZ را در ولتاژ 5v و 25 °C تولید می کند . این کلاک با برنامه ریزی کردن بیت های CKSEL می تواند به عنوان کلاک سیستم استفاده گردد که در این حالت نیازی به مدار خارجی نیست.
زمانی که از این مُد استفاده می گردد فیوز بیت CKOPT همیشه بایستی برنامه ریزی شده باشد .
NOMINAL RANGE (MHZ) CKSEL3..0
10 0001 (¹)
20 0010
40 0011
80 0100
برای میکرو به صورت پیش فرض این گزینه انتخاب شده است
کلاک خارجی (EXTERNAL CLOCK)
برای راه اندازی میکرو توسط کلاک خارجی پایه XTAL1 بایستی وصل شود . برای کار در ایم مُد بیت های CKSEL با 0000 برنامه ریزی می شوند . با برنامه ریزی کردن فیوز بیت CKOPT خازن داخلی 36PF بین پایه های XTAL1 و GND فعال می شود . در این مُد باید از تغییرات ناگهانی فرکانس کلاک خارجی برای اطمینان از انجام پایدار و صحیح عملیات میکرو کنترلر (MCU) جلوگیری کرد . تغییرات بیشتر از 2% در فرکانس کلاک خارجی ممکن است باعث رفتارهای غیر قابل انتظار میکرو شود .
زمانی که قصد تغییر فرکانس را دارید بایستی میکرو در حالت RESET نگه داشته شود .
اسیلاتور تایمر / کانتر
برای میکرو کنترلرهایی که دارای پایه TOSC1 و TOSc2 هستند ، کریستال ساعت 32768KHZ مستقیماً بین دو پایه قرار می گیرد و تایمر / کانتر 0 یا 2 به صورت آسنکرون از این دو پایه کلاک دریافت می کند .
پیکره بندی و کار با امکانات AVR در BASCOM
امکانات تمام میکروهای AVR قبل از استفاده بایستی پیکره بندی (CONFIG) شوند . در این فصل به پیکره بندی یا همان راه اندازی امکانات AVR پرداخته ایم . در ابتدا هر بخش رجیسترهای وسیله شرح داده شده اند و سپس نحوه پیکره بندی و دستورات مربوط به وسیله کاملاً تشریح شده است و از آنجا که ارائ مثال در یادگیری بسیار مفید است در انتها نیز مثالهایی برای درک بیشتر با کاربرد و نحو کار با وسیله آماده است . در این بخش سعی شده است که دستورات مربوط به امکانات AVR در کنار پیکره بندی قرار گیرد تا کاربر بتواند با مطالعه بخش مربوط به وسیله دلخواه بتواند به راحتی وسیله را راه اندازی و با آن کار کند .
پیکره بندی پورت ها
برای تعیین جهت پایه پورت ها از این پیکره بندی استفاده می نماییم . جهت یک پایه می تواند فرودی یا خروجی باشد .
Config portx = state
Config pi مقاله در مورد میکروکنترلر ها pdf .y = state
Yو X بسته به میکرو می تواند به ترتیب پایه های 0 تا 7 پورت های A,B,C,D,E,F باشند . State نیز میتواند یکی از گزینه های زیر باشد :
INPUT یا 0 : در این حالت رجیستر جهت داده پایه یا پورت انتخاب شده صفر (0) می شود و پایه یا پورت به عنوانه ورودی استفاده می شود .
OUTPUT یا 1 : در ایم حالت رجیستر جهت داده پایه یا پرت انتخاب شده یک (1) میشود و پایه یا پرت به عنوان خروجی استفاده می شود .

کلمات کلیدی :