مقاله در مورد میکروکنترلر ها

word قابل ویرایش
42 صفحه
9700 تومان
97,000 ریال – خرید و دانلود

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

چکیده :
سخت افزار این پروژه به طور کلی از یک میکروکنترلر Atmega16 از شرکت ATMEL و یک LCD 4*20 جهت نمایش عملکرد و ۴ رله در خروجی و چند قطعه دیگر جهت کارهای جانبی و تنظیمات سخت افزاری تشکیل شده است .

این پروژه جهت کنترل ۴ موتور مجزا با تنظیمات مجزا می باشد که توسط برنامۀ Bascom و به زبان Basic طراحی شده است .
جهت شناسایی این که کدام موتور باید روشن شود به صورت مقایسه ای برنامۀ ساعت نوشته شده است که هر لحظه تنظیمات ۴ موتور با ساعت چک می شود و هر کدام که با ساعت Set شود بدین ترتیب است که اگر ثانیه با ثانیه ساعت برابر شد برنامه به قسمت دقیقه می رود و اگر دقیقه برابر شد به قسمت ساعت رفته و آن را نیز مانند بقیه چک میکند و در صورت برابر

نام این پروژه HMI است که مخفف سه کلمۀ
Human Machine Interface
به معنی ماشین واسط انسانی است .

مقدمه :
امروزه با توجه به پیشرفت علم الکترونیک از میکروکنترلرها استفاده بیشتری می شود که این میکروکنترلرها دو مزیت بزرگ دارند : ۱ سادگی مدار از نظر سخت افزاری ۲ ارزان تمام شدن مدار .
میکروکنترلرها انواع مختلف و با زبان های برنامه نویسی مختلف از جمله Basic و C و…
می باشند که هر یک مزیتها و معایبی را دارند .

در این پروژه که جهت کنترل زمان روشن و خاموش شدن ۴ موتور در خروجی یا به طور کلی ۴ خروجی از میکروکنترلر AVR از نوع ATmega16 شرکت ATmel و توسط زبان Basic و در محیط Bascom طراحی شده است .

مختصری راجع به AVR
زبانهای سطح بالا یا همان (HIGH LEVEL LANGUAGES) HLL به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد برای میکرو کنترلرها (MCU) حتی برای میکروهای ۸ بیتی کوچک هستند . زبان برنامه نویسی BASIC و C بیشترین استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمبلی تولید می کنند . ATMEL ایجاد تحولی در معماری ، جهت کاهش کد به مقدار مینیمم را درک کرد که نتیجه این تحول میکرو کنترلرهای AVR هستند که علاوه بر کاهش و بهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری ( REDUCED RISC INSTRUCTION SET COMPUTER) انجام می دهند و از ۳۲ ریجیستر همه منظوره (ACCUMULATORS) استفاده می کنند که باعث شده ۴ تا ۱۲ بار سریعتر از میکروهای موزد استفاده کنونی باشند .
تکنولوژی حافظه کم مصرف غیر فرّار شرکت ATMEL برای برنامه ریزی AVR ها مورد استفاده قرار گرفته است در نتیجه حافظه های FLASH و EEPROM در داخل مدار قابل برنامه ریزی (ISP) هستند . میکروکنترلرهای اولیه AVR دارای ۱ ، ۲ ، ۸ کییوبایت حافظه FLASH و به صورت کلمات ۱۶ بیتی سازماندهی شده بودند .
AVR ها به عنوان میکروهای RISC با دستورات فراوان طراحی شده اند که باعث میشود حجم کد تولید شده کم و سرعت بالاتری به دست آید .

عملیات تک سیکل :
با انجام تک سیکل دستورات ، کلاک اسیلاتور با کلاک داخلط سیستم یکی می شود . هیچ تقسیم کننده ای در داخل AVR قرار ندارد که ایجاد اختلاف فاز کلاک کند . اکثر میکروها کلاک اسیلاتور به سیستم را با نسبت ۱:۴ یا ۱:۱۲ تقسیم می کنند که
خود باعث کاهش سرعت می شود . بنابراین AVR ها ۴ تا ۱۲ بار سریعتر و

مصرف
آنها نیز ۴-۱۲ بار نسبت به میکروکنترلرهای مصرفی کنونی کمتر است زیرا در تکنولژی CMOS استفاده شده در میکروهای AVR ، مصرف توان سطح منطقی متناسب با فرکانس است .
نمودار زیر افزایش (MILLION INSSTRUCTION PER SECONDS) MIPS را به علت انجام عملیات تک سیکل AVR (نسبت ۱:۱ ) در مقایسه با نسبتهای ۱:۴ و ۱:۱۲ دی دیگر میکروها را نشان می دهد .
نمودار مقایسه افزایش
MIPS/POWER Consumption در AVR با دیگر میکرو کنترلرها .

طراحی برای زبان های BASIC و C

 

زبان های BASIC و C بیشترین استفاده را در دنیای امروز بعنوان زبان های HLL دارند. تا امروزه معماری بیشتر میکروها برای زبان اسمبلی طراحی شده و کمتر از زبانهای HLL حمایت کرده اند .
هدف ATMEL طراحی معماری بود که هم برای زبان اسمبلی و هم زبان های HLL مفید باشد . به طور مثال در زبانهای C و BASIC می توان یک متغییر محلی به جای متغییر سراسری در داخل زیربرنامه تعریف کرد ، در این صورت فقط در زمان اجرا زیر برنامه مکانی از حافظه RAM برای متغییر اشغال می شود در صورتی که اگر متغییری به عنوان سراسری تعریف گردد در تمام وقت مکانی از حافظه FLASH ROM را اشغال کرده است .
برای دسترسی سریعتر به متغییرهای محلی و کاهش کد ، نیاز به افزایش رجیسترهای همه منظوره است . AVR ها دارای ۳۲ رجیستر هستند که مستقیماً به
( UNIT ARITHMETIC) LOGIC ALU) متصل شده اند ، و تنها در یک کلاک سیکل به این واحد دسترسی پیدا می کنند .سه جفت از این رجیسترها می توانند به عنوان رجیسترهای ۱۶ بیتی استفاده شوند .

کلیات پروژه و نحوه عملکرد :
این پروژه جهت زمان بندی مجزای ۴ موتور (یا هر خروجی دیگر )استفاده می شود که با تنظیم هر موتور می توان به طور مجزا از آن استفاده کرد و تنظیمات هر موتور با موتورهای دیگر کاملاً مجزا است .
در این پرژه پس از Initialize شدن و معرفی پرژه به صفحۀ اصلی می رسیم که در قسمت بالای صفحه ، ساعت آن قرار دارد که در هنگام روشن شدن در صورت تنظیم نکردن از ساعت ۱۲:۰۰:۰۰ شروع به شمارش می کند .
در قسمت زیرین نشانگر ساعت ، نشانگر وضعیت ۴ موتور قرار دارد که در صورتی که موتوری روشن باشد در جلوی آن کلمه ی ON و در صورتی که خاموش باشد کلمۀ OFF درج شده است .
در پایین صفحه LCD 4 گزینۀ TAB – UP – MENU – SAVE وجود دارد .
برای تنظیمات موتور و ساعت توسط گزینۀ TAB به صفحۀ بعد می رویم در صفحۀ بعد دو گزینه با نامهای Mode 1 و Mode 2 داریم که Mode 1 برای تنظیمات ساعت و Mode 2 برای تن

ظیمات ۴ موتور است و در صورتی که سوئیچ زیر هر گزینه را بفشاریم به آن MODE رفته و شروع به تنظیمات می کنیم به شرح زیر :
اگر Mode 1 برویم وارد مُد ساعت شده ایم و با کلید TAB روی هر قسمت از ساعت و دقیقه و ثانیه می رویم پس از این کار با گزینه Up شروع به تنظیم هر قسمت می کنیم و
با گزینۀ TAB به قسمت بعدی می رویم و در صورتی که بخواهیم تنظیمات ثبت شود توسط گزینۀ Save آن را ثبت می کنیم و توسط گزینۀ Esc به صفحۀ اصلی بر میگردیم . حال اگر به MODE 2 برویم وارد مُد تنظیمات ۴ موتور رفته ایم و با کلید TAB از ۴ موتور یکی را انتخاب کرده و توسط گزینۀ OK وارد تنظیمات آن موتور میشود که شامل دو گزینۀ Start و Time است که گزینۀ Start زمان روشن شدن و گزینۀ Time زمان خاموش شدن را مشخص می کند و برای تنظیمات آن نیز مانند تنظیمات ساعت توسط دو گزینۀ TAB و Up تنظیم می کنیم و توسط گزینۀ Save آن را قبول کرده و تنظیم می کنیم ، سپس توسط گزینۀ Esc از آن صفحه خارج و به صفحۀ قبل بر می گردیم و این عمل برای تنظیم ۴ موتور صورت می گیرد .
در پایان جا دارد این نکته نیز گفته شود که تنظیمات ثبت شده برای هر ۴ موتور در EEPROM ثبت می شود و در صورتی که تغذیۀ آن قطع شود و برای بار دوم روشن شود تنها باید ساعت تنظیم شود و تنظیمات موتور دقیقاً مانند قبل عمل خواهند کرد .

توضیح در مورد سخت افزار
میکروکنترلرها AVR این پروژه از نوع Atmega16 انتخاب شده است که دارای فضای حافظۀ بیشتر و EEPROM می باشد .نمایشگر این پروژه از نوع LCD 4*20 با شماره
TS-2040-1 می باشد که دیتا شیت آن در فصل پایانی ارائه شده است .
در قسمت تغذیه از چهار دیود IN4007 استفاده شده و برای صافی آن از خازن ۱۰۰۰Uf و خازن عدسی ۱۰۰nf استفاده شده است و از یک رکولاتور ۷۸۰۵ برای تثبیت ولتاژ ۵ ولت در خروجی قرار گرفته است . نشان دهنده Power قرار دارد .
برای کنترل و مقداردهی از ۴ میکروسوئیچ به همراه ۴ مقاومت ۱۰ کیلو اُهم که پزیری را صفر می کند و در عمل به این مقاومتها ، مقاومت های Pall down گویند .
یک مقاومت برای تنظیم کنتر است ، LCD بین پایۀ ۳ و زمین قرار دارد و یک مقاومت هم برای محدود کردن جریان سوئیچ رله ها است .

خصوصیات ATmega16 , ATmega16 L

• از معماری AVR RISC استفاده می کند .
– کارایی بالا و توان مصرفی کم .
– دارای ۱۳۱ دستورالعمل با کارایی بالا که اکثراً تنها در یک کلاک سیکل اجرا میشوند .
– ۳۲*۸ رجیستر کاربردی .
– سرعتی تا ۱۶ MIPS در فرکانس ۱۶ MHZ
• حافظه ، برنامه و دادۀ غیر فرّار
– ۱۶K بایت حافظه FLASH داخلی قابل برنامه ریزی
پایداری حافظه FLASH : قابلیت ۱۰٫۰۰۰ بار نوشتن و پاک کردن (WRITE , ERASE)
– 1024 بایت حافظه داخلی SRAM
– 512 بایت حافظه EEPROM داخلی قابل برنامه ریزی.
پایداری حافظه EEPROM : قابلیت ۱۰۰٫۰۰۰ بار نوشتن و پاک کردن (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 کانال مبدل آنالوگ به دیجیتال ۱۰ بیتی

۸ کانال SINGLE – ENDED
دارای ۷ کانال تفاضلی در بسته بندی TQFP
دارای دو کانال تفاضلی با کنترل گین ۱۰x , 1x و ۲۰۰x
– یک مقایسه کننده آنالوگ داخلی .
– WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی .

– قابلیت ارتباط با پروتکل سریال دوسیمه (TWO – WIRE)
– قابلیت ارتباط سریال (SERIAL PERIPHERAL INTERFACE) SPI به صورت MASTER یا SLAVE.
– USART سریال قابل برنامه ریزی
• خصوصیات ویژه میکروکنترلر
– POWER-ON RESET CIRCUIT و BROWN-OUT قابل برنامه ریزی .
– دارای اسیلاتور RC داخلی کالیبره شده .
– دارای ۶ حالت
EXTENDED STANDBY , STANDBY , POWER – SAVE , IDLE , POWER-DOWN) SLEEP و (ADC NOISE REDUCTION
– منابع وقفه (ENTERRUBT) داخلی و خارجی .
– عملکرد کاملاً ثابت .
– توان مصرفی پایین و سرعت بالا توسط تکنولوژی CMOS
• توان مصرفی در ۲۵°c , 3v , 1mhz برای ATMEGA16L
– حالت فعال (ACTIVE MODE) 1.1mA
– در حالت بی کاری (IDLE MODE) 0.35mA
– در حالت ۱uA>:POWER-DOWN
• ولتاژهای عملیاتی (کاری)
– ۲٫۷v تا ۵٫۵v برای (Atmega16L)
– 4.5v تا ۵٫۵v برای (Atmega16)
• فرکانسهای کاری
– ۰MHZ تا ۸MHZ برای (Atmega16L)
– 0MHZ تا ۱۶MHZ برای (Atmega16)
• خطوط I/O و انواع بسته بندی
– ۳۲ خط ورودی / خروجی (I/O) قابل برنامه ریزی .
– ۴۰ پایه ۴۴ , PDIP پایه TQFP و ۴۴ پایه 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

۰ (PROGRAMMED ) SELECT CLOCK SOURCE 2 CKSEL2
0 (PROGRAMMED ) SELECT CLOCK SOURCE 1 CKSEL1
1 (UNPROGRAMMED) SELECT CLOCK SOURCE 0 CKSEL0

فیوز بیت ها با پاک کردن (ERASE) میکرو تأثیری نمی بینند ولی می توانند با برنامه ریزی بیت LB1 قفل شوند .منطق ۰ به معنای برنامه ریزی ریزی شدن و ۱ به معنی برنامه
ریزی نشدن بیت است .
OCDEN : در صورتی که بیت های قفل برنامه ریزی نشده باشند برنامه ریزی این بیت به همراه بیت قسمتهای از میکرو امکان میدهد که در مودهای SLEEP کار کنند که این خود باعث افزایش مصرف سیستم می گردد .این بیت به صورت پیش فرض برنامه ریزی نشده (۱) است .
JTAGEN : بیتی برای فعالسازی برنامه ریزی میکرو از طریق استاندارد ارتباطی (JTAG) IEEE که در حالت پیش فرض فعال است و میکرو می تواند از این ارتباط برای برنامه ریزی خود استفاده نماید .
SPIEN : در حالت پیش فرض برنامه ریزی شده و میکرو از طریق سریال SPI برنامه ریزی می شود .
CKOPT : انتخاب کلاک که به صورت پیش فرض برنامه ریزی نشده است . عملکرد این بیت به بیت های CKSEL بستگی دارد که در بخش کلاک سیستم (۱) در انتهای همین فصل آمده است .
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

۰x0000-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 که در حالت پیش فرض برنامه ریزی نشده و آدرس بردار ری ست $۰۰۰۰ است و در صورت برنامه ریزی آدرس بردار ری ست به آدرسی که فیوز بیت های BOOTSZ0 و BOOTSZ1 مشخص کرده اند تغییر می یابد .
RESET ADDRES BOOTRST
RESET VECTOR = APPLICATION RESET(ADDRESS $0000) 1(UNPROGRAMMED)
RESET VECTOR = BOOT LOADER RESET 0(PROGRAMMED)
جدول انتخاب آدرس بردار ریست توسط فیوز بیت BOOTRST

BOODLAVEL : زمانی که این بیت برنامه ریزی نشده (پیش فرض ) باشد اگر ولتاژ پایه VCC از ۲٫۷v پایین تر شود ری ست داخلی میکرو فعال شده و سیستم را ری ست
می کند . زمانی که این بیت برنامه ریزی شده باشد اگر ولتاژ پایه VCC از ۴v پایین تر شود ری ست داخلی میکرو فعال شده و میکرو را ری ست می کند
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
با این کلاک تایمر / کانتر به صورت غیر همزمان توسط کریستال ساعت ۳۲۷۶۸ HZ کار می کند حتی اکر سیستم در حالت SLEEP باشد .
کلاک CLK ADC – ADC
ADC از یک کلاک جداگانه حساس استفاده می کند که باعث می شود کلاک های CPU و I/0 به حالت ایست (HALT) تا نویز حاصل از مدار دیجیتال داخلی کاهش یافته و در نتیجه عملیات تبدیل با دقت بیشتری انجام یابد .
منابع کلاک (CLOCK SOURCE)
میکرو دارای انواع منابع کلاک اختیاری است که می توان انواع آن را به وسیله بیت های قابل برنامه ریزی (FLASH FUSE BITS)FLASH انتخاب کرد . کلاک انتخاب شده به عنوان ورودی کلاک AVR در نظر گرفته شده و کلاک مناسب به هر قسمت سیستم
در تمام جداول فیوز بیت ها ، ۰ به معنای بیت برنامه ریزی شده (PROGRAMMED) و ۱ به معنای بیت برنامه ریزی نشده (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 )
برای استفاده از کریستال ساعت ۳۲٫۷۶۸KHZ فیوز بیت های CKSEL با ۱۰۰۱ برنامه ریزی می شوند و کریستال طبق شکل صفحه ی قبل به پایه های XTAL1 و XTAL2 متصل می شود .با برنامه ریزی کردن CKOPT می توان خازن های داخلی را فعال نمود و در نتیجه خازن های خارجی را برداشت . مقدار نامی خازن های داخلی ۳۶PF است .
اسیلاتور RC خارجی EXTERNAL RC OCSILLATOR) (
فرکانس تقریبی توسط معادله f=1 / (3RC) به دست می آید . مقدار خازن بایستی حداقل ۲۲PF باشد . با برنامه ریزی کردن فیوز بیت CKOPT کاربر می تواند خازن های داخلی ۳۶PF را بین XTAL1 وGND راه اندازی کند و در نتیجه نیازی به خازن خارجی نیست .

اسیلاتور RC کالیبره شده داخلی (CALIBRA TED INTERNAL RC SCILLATOR)
اسیلاتور RC کالیبره شده ی داخلی ، کلاک های نامی داخلی ۱ ، ۲ ، ۴ و ۸MHZ را در ولتاژ ۵v و ۲۵ °C تولید می کند . این کلاک با برنامه ریزی کردن بیت های CKSEL می تواند به عنوان کلاک سیستم استفاده گردد که در این حالت نیازی به مدار خارجی نیست.
زمانی که از این مُد استفاده می گردد فیوز بیت CKOPT همیشه بایستی برنامه ریزی شده باشد .

NOMINAL RANGE (MHZ) CKSEL3..0

۱٫۰ ۰۰۰۱ (¹)
۲٫۰ ۰۰۱۰
۴٫۰ ۰۰۱۱
۸٫۰ ۰۱۰۰
برای میکرو به صورت پیش فرض این گزینه انتخاب شده است

کلاک خارجی (EXTERNAL CLOCK)
برای راه اندازی میکرو توسط کلاک خارجی پایه XTAL1 بایستی وصل شود . برای کار در ایم مُد بیت های CKSEL با ۰۰۰۰ برنامه ریزی می شوند . با برنامه ریزی کردن فیوز بیت CKOPT خازن داخلی ۳۶PF بین پایه های XTAL1 و GND فعال می شود . در این مُد باید از تغییرات ناگهانی فرکانس کلاک خارجی برای اطمینان از انجام پایدار و صحیح عملیات میکرو کنترلر (MCU) جلوگیری کرد . تغییرات بیشتر از ۲% در فرکانس کلاک خارجی ممکن است باعث رفتارهای غیر قابل انتظار میکرو شود .
زمانی که قصد تغییر فرکانس را دارید بایستی میکرو در حالت RESET نگه داشته شود .
اسیلاتور تایمر / کانتر
برای میکرو کنترلرهایی که دارای پایه TOSC1 و TOSc2 هستند ، کریستال ساعت ۳۲٫۷۶۸KHZ مستقیماً بین دو پایه قرار می گیرد و تایمر / کانتر ۰ یا ۲ به صورت آسنکرون از این دو پایه کلاک دریافت می کند .
پیکره بندی و کار با امکانات AVR در BASCOM
امکانات تمام میکروهای AVR قبل از استفاده بایستی پیکره بندی (CONFIG) شوند . در این فصل به پیکره بندی یا همان راه اندازی امکانات AVR پرداخته ایم . در ابتدا هر بخش رجیسترهای وسیله شرح داده شده اند و سپس نحوه پیکره بندی و دستورات مربوط به وسیله کاملاً تشریح شده است و از آنجا که ارائۀ مثال در یادگیری بسیار مفید است در انتها نیز مثالهایی برای درک بیشتر با کاربرد و نحوۀ کار با وسیله آماده است . در این بخش سعی شده است که دستورات مربوط به امکانات AVR در کنار پیکره بندی قرار گیرد تا کاربر بتواند با مطالعه بخش مربوط به وسیله دلخواه بتواند به راحتی وسیله را راه اندازی و با آن کار کند .

 

پیکره بندی پورت ها
برای تعیین جهت پایه پورت ها از این پیکره بندی استفاده می نماییم . جهت یک پایه می تواند فرودی یا خروجی باشد .
Config portx = state
Config pinx.y = state
Yو X بسته به میکرو می تواند به ترتیب پایه های ۰ تا ۷ پورت های A,B,C,D,E,F باشند . State نیز میتواند یکی از گزینه های زیر باشد :
INPUT یا ۰ : در این حالت رجیستر جهت داده پایه یا پورت انتخاب شده صفر (۰) می شود و پایه یا پورت به عنوانه ورودی استفاده می شود .
OUTPUT یا ۱ : در ایم حالت رجیستر جهت داده پایه یا پرت انتخاب شده یک (۱) میشود و پایه یا پرت به عنوان خروجی استفاده می شود .

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 9700 تومان در 42 صفحه
97,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد