بخش هفتم آموزش AVR : نحوه کار با نرم افزارهای Proteus و CodeVision

مقدمه : 

در بخش گذشته با معماری و ساختار میکروکنترلر Atmega32 آشنا شدیم. گفتیم مهمترین بخش میکروکنترلر Atmega32 که با آن سر و کار داریم رجیسترها هستند. رجیسترها کنترل و تنظیمات تمام بخش های میکروکنترلر را بر عهده دارند و باید به خوبی با نحوه عملکرد آنها آشنا شد. گفتیم که در Atmega32 به تعداد ۶۴ رجیستر برای کنترل مجموعه سیستم میکروکنترلر وجود دارد که در قسمت SRAM حافظه قرار دارد. با تنظیم و مقدار دهی به این رجیسترها در برنامه میتوان برنامه های مختلف را راه اندازی و اجرا نمود . هر چه بیشتر با این رجیسترها کار کرده و مسلط به برنامه ریزی آنها باشید بهتر میتوانید برنامه نویسی کرده و از امکانات میکروکنترلر حداکثر استفاده را ببرید.  بعد از رجیسترها ، فیوز بیت ها نیز بخش مهمی از میکروکنترلر می باشد که همانند رجیسترها کنترل و تنظیمات بخش های دیگری از میکروکنترلر نظیر فرکانس کلاک میکرو و … را بر عهده دارد. در این فصل ابتدا با نرم افزارهای Proteus و CodeVision آشنا خواهید شد و مثال عملی گفته شده در فصل قبل را شبیه سازی و پیاده سازی خواهیم کرد و سپس با فیوز بیت ها و تنظیمات آن آشنا خواهید شد.

 


معرفی کلی نرم افزارهای Proteus و CodeVision

PROTEUS8.1

پروتئوس ( Proteus ) نرم‌افزاری برای شبیه سازی مدارات الکترونیک ، بخصوص مدارات مبتنی بر میکروکنترلر  می باشد . اصلی ترین کار این نرم افزار شبیه سازی است اما قابل استفاده برای کشیدن بردهای PCB هم بوده و برای این کار هم محیطی مجزا در نظر گرفته شده . کتابخانه های بسیاری از قطعات الکترونیک جهت طراحی و شبیه سازی مدارات الکترونیکی در این نرم افزار موجود است . این نرم افزار محصول شرکت Lab center Electronics می باشد .

کاربردهای این نرم افزار عبارتند از :

  • شبیه سازی مدارات آنالوگ و دیجیتال
  • تست و آنالیز مدارات با استفاده از ابزار اندازه گیری مجازی مانند اسیلوسکوپ ، مولتی متر ، فانکشن ژنراتور و….
  • شبیه سازی تقریبا اکثر مدارات با میکرو کنترلرهای PIC ، AVR و برخی از میکروکنترلرهای ARM
  • امکان ایجاد و ویرایش قطعات الکترونیکی
  • طراحی بردهای PCB یک تا ۱۶ لایه

CodeVisionAVR

کدویژن ( CodeVision AVR ) یک نرم افزار کامپایلر زبان C است که برای برنامه نویسی ، برنامه ریزی ( پروگرام ) و عیب یابی ( debug ) کلیه میکروکنترلرهای AVR می باشد . این نرم افزار که دارای محیط برنامه نویسی توسعه یافته نیز می باشد ، بیشتر به علت تولید کدهای اتوماتیک توسط ساختار CodeWizard ( جادوگر کد ) مشهور شده است . این قابلیت دسترسی راحت به تنظیمات رجیسترهای میکروکنترلرهای AVR را فراهم می کند .

امکاناتی که این نرم افزار فراهم می کند به شرح زیر است :

  • کامپایلر استاندارد زبان C
  • پشتیبانی از تمام میکروکنترلرهای AVR
  • دارای قابلیت تولید خودکار برنامه ( CodeWizard )
  • پشتیبانی از اکثر پروگرامرهای AVR
  • پشتیبانی از ارتباط JTAG برای عیب یابی
  • و …

 


دانلود و نصب نرم افزارهای Proteus و CodeVision

بهترین و کامل ترین ورژن موجود برای نرم افزار Proteus ، نسخه ۸٫۱ و برای نرم افزار CodeVision نسخه ۲٫۵٫۳ می باشد که از لینک های زیر قابل دانلود و نصب می باشند . ( این ورژن ها روی ویندوز ۸ نیز نصب می شوند )

 

CodeVision AVR v2.05.3                Proteus Professional v8.1

 

تذکر : برای نصب نرم افزار ها حتما طبق راهنمای موجود در پوشه دانلود شده ، با دقت و مرحله به مرحله اقدام نمایید تا بعدا دچار مشکل نشوید .

 


مراحل کلی انجام یک پروژه میکروکنترلری

به طور کلی وقتی که قرار است یک پروژه با میکروکنترلرهای AVR انجام دهید ، بعد از مشخص شدن هدف پروژه و صرفه اقتصادی آن مراحل زیر به وجود می آید :

1- طراحی سخت افزار : در این مرحله می بایست بر اساس هدف پروژه و شرایط مکانی به کارگیری پروژه، نوع و مقدار تک تک المان های سخت افزار مورد نیاز طراحی و روی کاغذ آورده شود .

2- طراحی نرم افزار : در این مرحله ابتدا الگوریتم یا فلوچارت مورد نیاز رسم و سپس برنامه نویسی مورد نظر بر اساس آن نوشته می شود .

3- شبیه سازی : قبل از پیاده سازی عملی ، تست صحت عملکرد مدار در این مرحله توسط نرم افزارهای مناسب ( در اینجا Proteus و CodeVision ) صورت می گیرد .

4- پیاده سازی : پروگرام کردن میکروکنترلر و بستن مدار مورد نظر روی بردبرد در این مرحله صورت می گیرد .

5- تست و عیب یابی : با وصل منبع تغذیه به مدار ، تست و عیب یابی مدار در این مرحله صورت می گیرد

6- تولید ، ارتقا و بهبود : در نهایت بعد از بررسی مدار و اطمینان صحت عملکرد آن ، در این مرحله برای مدار مورد نظر فیبر مدار چاپی ( pcb ) تولید می شود. پشتیبانی پروژه که ارتقا و بهبود عملکرد مدار می باشد ، بعد از تولید پروژه و بازخورد مشتریان بوجود می آید .

 

تذکر : مراحل فوق بسیار مهم هستند و در پروژه های بزرگ میبایست به ترتیب و با دقت انجام گیرد .

 


مثال عملی شماره ۱

برنامه ای بنویسید که LED موجود روی PA.0 را ۴ بار در ثانیه به صورت چشمک زن روشن و خاموش کند . سپس آن را در نرم افزار Proteus شبیه سازی کرده و پس از اطمینان از عملکرد صحیح برنامه توسط نرم افزار CodeVision روی میکروکنترلر Atmega32 پیاده سازی نمایید .

حل :

مرحله اول : طراحی سخت افزار خواسته شده

Mesal1Atmega32

 مرحله دوم : طراحی نرم افزار خواسته شده

#include <mega32.h>

#include <delay.h>

void main(void)

{

DDRA.0=1;

while(1){

PORTA.0=1;

delay_ms(250);

PORTA.0=0;

delay_ms(250);

}

}

 

مرحله سوم : شبیه سازی توسط نرم افزارهای Proteus و CodeVision

در این مرحله همیشه ابتدا به نرم افزار پروتئوس مراجعه کرده و سخت افزار طراحی شده را رسم می نماییم . سپس به نرم افزار کدویژن مراجعه کرده و نرم افزار مربوطه را کامپایل و می سازیم ( Build ) . سپس برنامه ساخته شده توسط کدویژن را در نرم افزار پروتئوس اضافه ( add ) می کنیم و مدار را شبیه سازی ( Run ) می کنیم . در صورت جواب گرفتن در این مرحله به مرحله پیاده سازی خواهیم رفت .

 


شروع به کار با نرم افزار پروتئوس

پس از نصب نرم افزار بر روی آیکون آن در صفحه دسکتاپ کلیک کرده تا نرم افزار باز شود . زمانی که نرم افزار باز شد با پنجره شکل زیر مواجه می شوید . در این مرحله بر روی آیکون آبی رنگ ISIS موجود در نوار ابزار بالایی که در شکل زیر نیز مشخص شده است ، کلیک کنید تا Schematic capture برای رسم مدار باز شود .

ProteusOpen

برای انتخاب المان های مداری باید روی آیکون P کلیک کنید تا صفحه جدیدی بنام Pick Devices باز شود .

ProteusPickFromLibrary

در این صفحه هر المانی نیاز داشته باشید را تایپ کرده و سپس روی نام قطعه دابل کلیک می کنید تا قابل استفاده گردد . برای این مثال یک Atmega32 و یک led نیاز داریم . آنها را تایپ کرده و روی نام آنها دابل کلیک کرده و در نهایت پنجره Pick Devices را با کلیک بر روی Ok می بندیم . مراحل اجرای کار را در زیر مشاهده می کنید .

ProteusPickAtmega32

ProteusPickLED

مشاهده می کنید زیر آیکون P قطعاتی که انتخاب کرده بودیم آورده شده است . با کلیک بر روی آنها میکرو و LED را درون کادر آبی رنگ صفحه اصلی در محل مناسب خود قرار داده و مدار را تکمیل می کنیم . به یک زمین ( Ground ) نیز احتیاج داریم که آن را با کلیک بر روی آیکون Terminals Mode موجود در نوار ابزار سمت چپ و سپس کلیک بر روی GROUND انتخاب کرده و در جای مناسب خود قرار می دهیم .

ProteusGround

در نهایت نوبت به سیم کشی مدار می رسد . زمانی که نشانگر ماوس را در محل سیم کشی روی پایه(پین) های LED یا میکروکنترلر می برید ، مداد سبز رنگی ظاهر می شود ، در همین حال کلیک کنید و سیم کشی مدار را به صورت شکل زیر تکمیل نمایید .

ProteusCompleteCircuit

بعد از تکمیل مدار آن را از منوی File و گزینه Save با نام مناسب در یک پوشه جدید ذخیره نمایید . برای اینکه برنامه را بتوان بر روی آی سی ریخته و سپس اجرا کرد میبایست ابتدا باید فایلی که از نرم افزار CodeVision تولید می شود را داشته باشیم . بنابراین در این مرحله به سراغ نرم افزار کد ویژن رفته و پس از نوشتن برنامه برای شبیه سازی عملکرد مدار باز خواهیم گشت .

 


شروع به کار با نرم افزار CodeVision AVR

codevision-area

پس از نصب و اجرای این نرم افزار برای شروع پروژه ی جدید باید مراحل زیر با دقت و به ترتیب طی شود :

1- ابتدا ممکن است آخرین پروژه ای که کار کرده اید باز باشد آن را از مسیر File و سپس Close All ببندید .

codevision1

2- از منوی File گزینه New را انتخاب کرده و سپس در پنجره باز شده ، Source را انتخاب و Ok کنید.

codevision2

3- فایل untitled.c باز می شود . در این مرحله می بایست از منوی File و سپس Save as آن را با نام مناسب در همان پوشه ای که فایل پروتئوس قرار دارد ، ذخیره کنید.

codevision3

4- از منوی File گزینه New را دوباره انتخاب کرده اما این بار در پنجره باز شده ، Project را انتخاب و  Ok کنید.

codevision4

5- پنجره ای مبنی بر اینکه آیا می خواهید از CodeWizard استفاده کنید یا خیر ؟ باز می شود آن را No کنید.

codevision5

6- پنجره Project Configure باز می شود که در این مرحله می بایست فایل ذخیره شده با پسوند .C در مرحله ۳ را با زدن دکمه Add به پروژه اضافه نمود .

codevision6

7- در این مرحله به سربرگ C Compiler رفته و در قسمت Chip نوع چیپ را روی Atmega32 قرار می دهیم و در قسمت Clock فرکانس کلاک را روی فرکانس کاری میکرو تنظیم می کنیم ( برای atmega32 کلاک در حالت default روی ۱MHZ باید قرار گیرد ) . در نهایت پنجره Project Configure را Ok کرده و کار پروژه جدید پایان می یابد .

CodeVisionProject

 

این مطلب را از دست ندهید :  دانلود ویرایش جدید جزوه آموزش کاربردی میکروکنترلرهای AVR از ۰ تا ۱۰۰

* پروژه جدید ساخته شده است حالا باید برنامه دلخواه به زبان C را در این مرحله نوشت . پس در اینجا برنامه نوشته شده مثال شماره ۱ را تایپ می کنیم . بعد از نوشتن برنامه در محیط کدویژن می بایست از منوی Project گزینه Build را انتخاب کنید تا برنامه کامپایل و ساخته شود . در صورت بروز error باید ابتدا آنها را برطرف کرده تا برنامه ساخته شود . ساخت برنامه بدین معنی است که فایلی با پسوند Hex ساخته میشود که این فایل به زبان میکرو است و میتوان آن را روی میکرو پروگرام کرد یا برای شبیه سازی در proteus به کار برد .

 

CodeVisionMesal1

حال نوبت به شبیه سازی پروژه در پروتئوس می رسد.

برای شبیه سازی دوباره به نرم افزار پروتئوس باز می گردیم . در نرم افزار Proteus ، روی میکروکنترلر دابل کلیک کرده تا پنجره Edit Component باز شود. در این پنجره در قسمت Program File روی آیکون پوشه ( Browse ) کلیک کنید تا پنجره انتخاب فایل باز شود . حالا میبایست به مسیر برنامه ای که در کدویژن نوشتید بروید و در آنجا داخل پوشه Exe شده و فایل با پسوند Hex را انتخاب کنید .

ProteusEditComponent

بعد از انتخاب فایل hex با دیگر تنظیمات کاری نداشته و پنجره Edit Component را و Ok میکنیم . با این کار برنامه نوشته شده به زبان C در نرم افزار کدویژن به داخل آی سی میکروکنترلر در نرم افزار پروتئوس ریخته می شود . حال برای شبیه سازی مدار روی دکمه Play پایین صفحه کلیک کرده تا شبیه سازی آغاز و مدار Run شود . مشاهده می کنید که led هر ثانیه چهار بار روشن و خاموش می شود .

 ProteusRun

 

مرحله چهارم : پیاده سازی مدار

در این مرحله ابتدا میکروکنترلر را توسط پروگرامر و نرم افزار کدویژن ، برنامه ریزی ( Program ) کرده و سپس مدار را بر روی برد برد می بندیم .

 


پروگرام کردن میکرو توسط نرم افزار CodeVision

بعد از وصل کردن و روشن کردن پروگرامر خود به پورت مربوطه روی PC یا لپ تاپ و نصب فایل درایور مربوطه (برخی از پروگرامرها برای راه اندازی نیاز به Driver مخصوص دارند) مراحل زیر برای پروگرام کردن را در نرم افزار CodeVision اجرا کنید :

1- ابتدا از منوی Setting ، گزینه Programmer را انتخاب می کنیم .

programm1

2- از لیست موجود می بایست نوع پروگرامر را همان مدل پروگرامری که خریداری کرده اید ، انتخاب کنید . ( برای من Stk500 )

programm2

3- در قسمت Communication Port می بایست آن پورتی که پروگرامر به آن وصل است را تنظیم کرد . اگر پورتی که پروگرامر به آن وصل است را نمی دانید کافیست به قسمت Device Manager در Control Panel مراجعه کرده و سپس در قسمت Port&LPT نام پروگرامر و پورت Com آن مشخص است .

4- میکروکنترلر را روی پروگرامر در جای مناسب و در جهت صحیح قرار می دهیم .

5- از منوی Tools ، گزینه Chip Programmer را انتخاب می کنیم .

programm3

6- با زدن دکمه Program All ، پروگرام آغاز می شود .

programm4

7- در پیغامی که هنگام پروگرام ظاهر می شود از ما میخواهد تا فایلی برای ریختن دیتا درون EEPROM معرفی کنید ، چون ما فایلی نداریم پس گزینه Cancel را انتخاب می کنیم .

 

نکته مهم : دقت کنید که حتما تیک گزینه Program Fuse Bit زده نشده باشد تا فیوزبیت های میکروکنترلر در حالت default بدون تغییر بماند .

 

* بعد از پروگرام کردن میکروکنترلر کافی است آن را وسط بردبرد قرار داده و led را بین پایه ۴۰ و زمین ( در جهت صحیح ) متصل نماییم و بقیه مدار را به صورت مدار حداقلی که در فصل قبل به آن اشاره کردیم ببندیم . بنابراین مداری مشابه شکل زیر را خواهیم داشت .

 ۲۰۱۵-۰۳-۰۱-۰۴۷_۱

 مرحله پنجم : تست و عیب یابی

در صورت رعایت دقیق همه مراحل گفته شده با وصل منبع تغذیه مناسب مدار بدون هیچ مشکلی کار خواهد کرد .

 مرحله ششم : تولید ، ارتقا و بهبود

در این مثال ساده ، هدف یادگیری بود و برنامه نیازی به تولید ، ارتقا و بهبود ندارد .

 


واحد کنترل کلاک سیستم در میکروکنترلر Atmega32

همانطور که قبلا نیز گفتیم این واحد وظیفه تامین کلاک ورودی و پخش آن به تمامی واحد های میکروکنترلر را بر عهده دارد . شکل زیر بلوک دیاگرام این واحد را برای میکروکنترلر Atmega32 نشان می دهد. این واحد به کلی توسط فیوز بیت ها ( Fuse Bits ) تنظیم و کنترل می شود و در معماری AVR برای تنظیم و کنترل این واحد رجیستر خاصی در نظر گرفته نشده است .

Atmega32ClockUnit

همانطور که در شکل مشاهده می کنید منابع کلاک توسط یک مالتی پلکسر ، پالس لازم را به واحد کنترل کننده کلاک ارسال می کند. در واقع کلاک لازم جهت راه اندازی سیستم می تواند تنها یکی از منابع زیر باشد و امکان استفاده همزمان از آنها وجود ندارد.

  • اسیلاتور RC ( خازن – مقاومت ) خارجی
  • کلاک خارجی
  • کریستال اسیلاتور خارجی
  • کریستال اسیلاتور فرکانس پایین خارجی
  • اسیلاتور RC داخلی

بعد از وارد شدن پالس کلاک به واحد کنترل کلاک ، تقسیمی از کلاک وارد شده به کلیه واحدهای میکرو کنترلر می رود . همانطور که در شکل نیز مشاهده می کنید ، پالس CLKCPU به هسته مرکزی ( CPU ) و SRAM اعمال می شود. پالس CLKADC ، کلاک لازم را جهت واحد مبدل آنالوگ به دیجیتال فراهم می کند . پالس CLKFLASH کلاک لازم را بر ای حافظه Flash و eeprom داخلی فراهم می سازد. پالس CLK/IO برای تولید پالس ماژول های ورودی و خروجی نظیر USART، SPI ، شمارنده ها و وقفه ها بکار برده می شود.پالس CLKASY برای راه اندازی آسنکرون تایمر یا کانتر دو برای استفاده از فرکانس ۳۲.۷۶۸KHz اسیلاتور RTC است . در این شکل همچنین نحوه اتصال واحد تایمر Watchdog نیز نشان داده شده است . تایمر سگ نگهبان از یک اسیلاتور مجزای داخلی استفاده می کند که پالس کلاک مورد نیاز خود را تامین کرده و احتیاجی به منبع ورودی کلاک ندارد .

 


فیوز بیت ها در میکروکنترلرهای AVR :

فیوز بیت ها قسمتی در حافظه فلش هستند که با تغییر آنها امکانات میکروکنترلر نظیر تنظیم منبع کلاک میکرو ، روشن و خاموش کردن امکان JTAG و … را میتوان کنترل کرد . میکرو کنترلر های AVR بسته به نوع قابلیتی که دارند دارای فیوز بیت های متفاوتی هستند . در میکروکنترلرهای AVR حداکثر سه بایت برای این منظور در نظر گرفته می شود . توجه کنید که برنامه ریزی فیوزبیت ها باید قبل از قفل ( Lock ) تراشه صورت گیرد . برای اینکه بدانید میکروکنترلری که با آن کار می کنید دارای چه ویژگی و چه فیوز بیت هایی می باشد ، به قسمت System Clock & Clock Options در Datasheet آن میکرو مراجعه نمایید.


فیوز بیت ها در میکروکنترلر Atmega32 :

میکروکنترلر ATMEGA32 دارای ۲ بایت ( ۱۶ بیت ) فیوز بیت ( Fuse Bit ) می باشد که ۸ بیت کم ارزش آن Low Byte و ۸ بیت دیگر آن High Byte نامگذاری شده است . در شکل زیر نام ، عملکرد و پیش فرض این فیوز بیت ها را مشاهده می کنید .

Atmega32LowfuseBit

Atmega32HighfuseBit

نکته : در تمام جداول مربوط به فیوز بیت ها ، ۰ به معنای بیت برنامه ریزی شده (PROGRAMMED) و ۱ به معنای بیت برنامه ریزی نشده (UNPROGRAMMED) می باشد.

 

در ادامه به معرفی و بررسی هر یک از فیوز بیت های فوق می پردازیم

 

این مطلب را از دست ندهید :  بخش چهارم آموزش AVR : ساختار میکروکامپیوتر و تفاوت آن با میکروکنترلر

فیوز بیت های تنظیم کلاک

فیوز بیت CKOPT میتواند برای دو حالت مختلف استفاده شود . یعنی زمانی که محیط پر نویز باشد و زمانی که از کریستال خارجی استفاده شود این بیت برنامه ریزی می شود (۰) در بقیه حالت نیازی به برنامه ریزی این بیت نیست (۱). همچنین فیوز بیت های CKSEL0 تا CKSEL3 برای تنظیم منبع کلاک میکرو می باشد و بسته به منبع ورودی کلاک به یکی از صورت های جدول زیر باید برنامه ریزی شود. فیوز بیت های SUT0 و SUT1 نیز زمان راه اندازی (Start-up) را در هنگام متصل کردن منبع تغذیه تعیین می کنند . که این زمان در هر یک از حالت های جدول زیر متفاوت است .

 

Atmega32FuseBits

نوسان ساز با کریستال خارجی

برای استفاده از کریستال خارجی،باید فیوز بیت های CKSEL3.0 را بین ۱۰۱۰ تا ۱۱۱۱ برنامه ریزی کنیم . پایه های خارجی XTAL1 و XTAL2 طبق شکل زیر توسط دو خازن عدسی (خازن های بالانس) با مقادیر یکسان به یک کریستال با فرکانس حداکثر تا ۱۶ مگاهرتز متصل می گردند.

Atmega32ExternalOsciبنابراین در حالتی که از کریستال خارجی استفاده می شود ، مدار فوق می بایست به میکرو متصل گردد و تنظیمات فیوز بیت ها طبق جدول زیر بر اساس فرکانس کاری مورد نیاز میکرو انجام شود .

Atmega32ExternalFrq

خازن های C1 و C2 را معمولا ۲۲PF انتخاب می کنند . وظیفه این خازن حذف نویز الکترومغناطیس اطراف کریستال می باشد که طبق جدول فوق با توجه به کریستال استفاده شده تعیین می شوند. در PCB برای حذف نویز ، معمولا بدنه کریستال خارجی را به زمین وصل می کنند اما نباید بدنه کریستال حرارت بیند زیرا ممکن است به آن آسیب برسد.

هنگام استفاده از کریستال خارجی بهتر است با فعال کردن بیت CKOPT دامنه نوسان اسیلاتور را حداکثر کرد. در این حالت اسیلاتور بصورت Rail-to-Rail عمل می کند یعنی مثلا اگر تغذیه میکروکنترلر ۵ ولت باشد حداکثر دامنه پالس ساعت نیز ۵ ولت خواهد بود. این حالت برای محیط های پر نویز مانند کارخانه های صنعتی بسیار مناسب است . البته فعال کردن این فیوز بیت به اندازه چند میلی آمپر جریان مصرفی میکروکنترلر را افزایش می دهد .

نکته : در میکروکنترلرهای بدون پسوند L اگر بخواهیم از کریستال ۱۶MHZ استفاده کنیم باید فیوز بیت CKOPT فعال گردد در غیر اینصورت حداکثر کریستال خارجی ممکن برای اتصال به میکرو ۸MHZ خواهد بود.

زمان Start-up برای استفاده از کریستال خارجی توسط فیوز بیت های SUT0 و SUT1 طبق جدول زیر تعیین می گردد.منظور از زمان Start-up مدت زمانی است که طول میکشد به محض وصل شدن تغذیه به میکروکنترلر و پایدار شدن نوسانات کریستال اسیلاتور خارجی ، میکروکنترلر Reset شده و برنامه را شروع به اجرا کند . این مدت زمان در حدود چند میلی ثانیه می باشد که توسط جدول زیر قابل تنظیم است .

 SUTime1

نوسان ساز با کریستال فرکانس پائین

منظور از کریستال فرکانس پائین ، استفاده از کریستال ساعت ( ۳۲۷۶۸ هرتز ) می باشد . در صورتی که فیوز بیت های CKSEL 3..0 به صورت ۱۰۰۱ برنامه ریزی شوند پالس ساعت سیستم از کریستال خارجی فرکانس پایین استفاه می کند. در این حالت اگر فیوز بیت CKOPT فعال شود خازن داخلی بین دو پایه XTAL1 و XTAL2 فعال می گردد. با فعال شدن این خازن که مقدار آن ۳۶pF است ، احتیاجی به قرار دادن خازن های C1 و C2 نیست و میتوان مستقیما این کریستال را روی دو پایه XTAL1 و XTAL2 نصب کرد . همچنین زمان Start-up مورد نیاز میکرو در این حالت ، طبق جدول زیر تعیین می شود.

 

SUTime2

نوسان ساز با RC خارجی

از اسیلاتور RC خارجی در کاربردهایی که به تغییرات زمان و فرکانس حساسیت نداشته باشیم استفاده می کنیم . در این حالت مدار زیر باید به میکرو متصل شود که در آن فرکانس نوسانات اسیلاتور از رابطه ( ( F = 1 / 3RC بدست می آید و مقدار خازن C حداقل باید 22pF باشد .


ExtRC

بنابراین در حالتی که از کریستال خارجی استفاده می شود ، مدار فوق می بایست به میکرو متصل گردد و تنظیمات فیوز بیت ها طبق جدول زیر بر اساس فرکانس کاری مورد نیاز میکرو انجام شود .

ExtRC

در این حالت اگر فیوز بیت CKOPT فعال شود خازن 36pF داخلی بین دو پایه XTAL1 و GND فعال می گردد و در نتیجه میتوان مقدار 36pF را در محاسبات لحاظ نمود ( C+36 ) یا حتی میتوان خازن C خارجی را حذف نمود. همچنین زمان Start-up مورد نیاز میکرو در این حالت ، طبق جدول زیر تعیین می شود.

SUTimeExtRC

نوسان ساز با اسیلاتور RC کالیبره شده داخلی

اسیلاتور RC کالیبره شده داخلی می تواند فرکانس های ثابت 1MHZ ، 2MHZ ، 4MHZ و 8MHZ را در شرایط تغذیه +5v و در دمای 25 درجه ایجاد نماید. فرکانس کاری این اسیلاتور به شدت به ولتاژ تغذیه، درجه حرارت محیط و مقدار بایت رجیستر OSSCAL وابسته می باشد.

از آنجایی که این نوع نوسان ساز به دما و ولتاژ وابسته است پیشنهاد می کنیم در موقع استفاده از تبادل سریال USART و دیگر پروتکل ها و برنامه هایی که به زمان بسیار وابسته هستند از کریستال خارجی استفاده کنید.

 

این مطلب را از دست ندهید :  آشنایی با سروو موتور و راه اندازی آن با AVR

نکته : فیوزبیت های میکروکنترلر ATmega32 به طور پیش فرض توسط کارخانه طوری تنظیم شده است که از اسیلاتور کالیبره شده داخلی با فرکانس 1MHZ استفاده می کند .
زمانی که اسیلاتور داخلی استفاده می شود نیازی به قرار دادن اسیلاتور خارجی نیست و پایه های XTAL1 و XTAL2 آزاد گذاشته می شود و همچنین در این نوسان ساز، نباید فیوز بیت های CKOPT فعال باشد. مقدار فرکانس این اسیلاتور توسط فیوز بیت های CKSEL3.0 طبق جدول زیر تعیین می شود.

 

IntRC

زمان Start-up میکرو نیز توسط فیوز بیت های SUT0 و SUT1 طبق جدول زیر تنظیم می گردد.

SUTimeIntRC

رجیستر کالیبراسیون OSCCAL

OSCCAL

در صورت استفاده از اسیلاتور RC کالیبره شده داخلی در هر بار که میکروکنترلر Reset می شود ، مقدار رجیستر OSCCAL خوانده شده و اسیلاتور به طور خودکار تنظیم می گردد. در حالت پیش فرض مقدار این رجیستر طوری تنظیم شده است که اسیلاتور RC روی ۱ مگاهرتز کار کند . کاربرد این رجیستر برای کاهش خطای اسیلاتور RC داخلی در شرایط مختلف است اما اگر از شرایط تغذیه +۵v و یا دمای ۲۵c استفاده گردد این خطا به ۱۰% کاهش می یابد . با نوشتن مقدار ۰x00 کمترین و با نوشتن مقدار ۰xFF در این رجیستر بیشترین فرکانس ممکن برای کالیبراسیون انتخاب می گردد . تنظیم دقیق این کالیبراسیون در فرکانس های به جز ۱ ، ۲ ، ۴ و ۸ مگاهرتز خیلی تضمینی نیست . شکل زیر درصد تغییرات این رجیستر را در حالت تنظیم آن روی مقادیر مختلف نشان می دهد .

 OSCCAL2

 

نوسان ساز با کلاک خارجی

در صورت تنظیم فیوز بیت های CKSEL3..0 به صورت “۰۰۰۰” میکروکنترلر AVR پالس کلاک ورودی خود را از یک منبع خارجی دریافت می کند . در این حالت پایه XTAL2 بدون اتصال بوده و پایه XTAL1 به منبع تولید پالس دیجیتال متصل می شود . با فعال نمودن فیوز بیت CKOPT نیز میتوان خازن ۳۶ پیکوفارادی بین پایه XTAL1 با زمین را فعال کرد . نحوه اتصال کلاک خارجی به میکرو را در شکل زیر مشاهده می کنید .

 ExtClk

در این حالت نیز فیوز بیت های SUT1 و SUT2 طبق جدول زیر می باشند .

SUTimeEXt

 


تنظیمات دیگر فیوز بیت ها

  • فیوز بیت EESAVE : مقدار پیش فرض آن ۱ بوده و برای اینکه آیا در هنگام پاک کردن ( Erase ) میکرو حافظه EEPROM پاک شود یا نه ، از این فیوز بیت استفاده می شود . اما زمانی که مقدار این بیت را صفر کنیم ، محتویات EEPROM در هنگام پاک کردن ( Erase ) میکرو حفظ می شود . این بیت بطور پیش فرض غیرفعال است.
  • فیوز بیت JTAGEN : این فیوز بیت که به صورت پیش فرض در حالت برنامه ریزی شده می باشد ، برای فعال کردن ارتباط JTAG می باشد . برنامه ریزی شدن این فیوز بیت در حالت پیش فرض باعث شده است تا پورت C برای ارتباط I/O واحد ورودی/خروجی در دسترس نباشد . برای آزاد کردن پورت C می بایست این فیوز بیت را از حالت برنامه ریزی خارج نمود .
  • فیوز بیت OCDEN (On Chip Debug Enable) : زمانیکه فیوز بیت ارتباط دهی JTAG فعال شده باشد و همچنین برنامه میکروکنترلر را قفل نکرده باشیم می توان با فعال کردن فیوزبیت OCDEN برنامه میکروکنترلر را به طور آنلاین در حین اجرا توسط مدار واسطی که از ارتباط سریال JTAG استفاده می کند توسط نرم افزار مشاهده کرد. به این نوع آنالیز امولاتور (Emulator) یا شبیه ساز سخت افزاری گفته می شود. همچنین برنامه ریزی شدن این بیت به قسمتهایی از میکرو امکان می دهد که در مدهای SLEEP کار کنند. درهر صورت فعال کردن این بیت مصرف توان میکرو کنترلر را افزایش می دهد. این بیت بصورت پیش فرض برنامه ریزی نشده (۱) است.

 

  • فیوز بیت SPIEN : با فعال کردن این فیوز بیت می توان میکرو را از طریق ارتباط دهی سریال SPI برنامه ریزی کرد. این فیوز بیت بطور پیش فرض فعال است.
  • فیوز بیت های BOOTSZ0 و BOOTSZ1 : این دو بیت، مقدار حافظه اختصاص داده شده BOOT را طبق جدول زیر تعیین می کنند. در زمان برنامه ریزی شدن فیوز بیت BOOTRST اجرای برنامه از آدرس حافظه BOOT آغاز خواهد شد.

Atmega32FuseBootsz

  • فیوزبیت BOOTRST : این بیت برای انتخاب بردار Reset است اگر غیر فعال باشد آدرس بردار RESET از $۰۰۰۰ است و اگر این بیت فعال شود به آدرسی که فیوز بیت های BOOTSZ0 و BOOTSZ1 مشخص کرده اند تغییر می یابد.
  • فیوز بیت BODEN : مدار BROWN-OUT آشکارساز ولتاژ تغذیه است که اگر از ۲.۷ یا ۴ ولت کمتر شود میکروکنترلر را ریست می کند. برای فعال کردن این مدار، باید فیوزبیت BODEN فعال گردد. این فیوز بیت بطور پیش فرض غیرفعال است.
  • فیوز بیت BODLEVEL : اگر فیوزبیت BODEN فعال و فیوز بیت BODLEVEL غیرفعال باشد با کاهش ولتاژ VCC کمتر از ۲.۷ ولت میکروکنترلر ریست می شود اما اگر فیوز بیت BODLEVEL را فعال کنیم آنگاه با کاهش ولتاژ VCC کمتر از ۴ ولت میکروکنترلر ریست می شود. مطابق جدول زیر سطح ولتاژ BROWN-OUT تعیین می شود. فیوز بیت BODLEVEL بصورت پیش فرض غیر فعال است.

Atmega32FuseBOD 

 


تنظیم فیوز بیت ها در نرم افزار کدویژن

بار دیگر به نرم افزار CodeVision بر می گردیم. در شکل زیر محیط Chip Programmer و کاربرد قسمت های مختلف آن را برای تنظیمات Fuse Bits و Lock Bits میکروکنترلر Atmega32 مشاهده می کنید . با تنظیم کردن این پنجره و سپس پروگرام کردن میکروکنترلر تغییرات مورد نظر در آن اعمال می شود . همچنین در شکل زیر تنظیمات فیوز بیت ها را در حالت default میکروکنترلر atmega32 در حالت ۱Mhz داخلی ( با پروگرامر Stk500 ) ، مشاهده می کنید. با تغییر این تیک ها میتوان فیوزبیت ها را برنامه ریزی نمود .

توجه : تنها یکبار فیوزبیت ها را به طور صحیح برنامه ریزی کرده و سپس تیک گزینه Program Fuse Bits را بردارید تا احیانا و اشتباها آنها را تغییر ندهید . اگر احیانا تغییر کرده باشد می توانید مجددا به صورت شکل زیر ( ۱MHz داخلی ) درآورید.

 Atmega32_Default_FuseBits

 


تنظیم پروتئوس در حالت استفاده از کریستال خارجی

فرض کنید فیوز بیت ها را طوری تنظیم کرده ایم که در حالت کریستال خارجی کار کند . در این صورت برای استفاده از کریستال خارجی در شبیه سازی با تایپ کردن عبارت crystal ، آن را از کتابخانه انتخاب و به میکرو وصل می کنیم . همچنین دو عدد خازن ۲۲ یا ۲۷ پیکوفاراد را نیز به صورت شکل زیر متصل می نماییم . بعد از اتصال مدار روی کریستال دابل کلیک کرده و فرکانس کار آن را انتخاب می کنیم . در اینجا ما فرکانس کریستال را ۱۶ مگاهرتز فرض کردیم .

Proteus_ExtCrystal

سپس برای تنظیمات راه اندازی میکرو بوسیله کریستال خارجی ابتدا روی میکرو دابل کلیک کرده تا پنجره تنظیمات میکرو باز شود سپس می بایست بر اساس فرکانس کاری کریستال خارجی ، قسمت فیوز بیت ها را تنظیم کرده و سپس در قسمت بعد فرکانس کریستال متصل شده به میکرو را به صورت شکل زیر وارد نمایید .

Proteus_ExtCrystal2

 حال با انجام مراحل فوق میکروکنترلر روی کریستال ۱۶ مگاهرتز تنظیم شده و با play کردن مدار در پروتئوس شبیه سازی آغاز می شود .


با کلیک بر روی تصویر زیر به بخش بعدی آموزش AVR بروید

next-image



در صورتی که این مطلب مورد پسندتان بود لایک و اشتراک گذاری فراموش نشود.

 

39+

کاربرانی که این مطلب را پسندیده اند:

  • avatar
  • avatar
  • avatar
  • avatar
این مطلب را با دوستانتان به اشتراگ بگذارید

دیدگاه (42)

  • مهمان پاسخ

    بسیار عالی و کامل بود

    ۲۵/۱۲/۱۳۹۳ در ۱۵:۴۲
    • محمد حسین پاسخ

      متشکر از حسن نظرتان

      ۱۱/۰۴/۱۳۹۴ در ۱۳:۲۲
  • علی پاسخ

    خیلی کامل و جامع بووود!

    ۲۵/۰۴/۱۳۹۴ در ۱۷:۵۱
    • محمد حسین پاسخ

      متشکر از حسن نظرتان

      ۱۵/۰۶/۱۳۹۴ در ۲۳:۱۱
  • نبوغ پاسخ

    قابل تقدیر است واقعا….

    ۱۷/۰۵/۱۳۹۴ در ۱۴:۵۰
    • محمد حسین پاسخ

      متشکر نظر لطفتونه

      ۱۷/۰۵/۱۳۹۴ در ۲۱:۵۳
  • علی پاسخ

    جای بسی تشکر دارد من که رشته ام این نبود در حد بیش از نیاز متوجه شدم

    ۱۵/۰۶/۱۳۹۴ در ۲۲:۳۰
    • محمد حسین پاسخ

      مرسی از حسن نظرتون اصن هدف اینه که کسایی که الکترونیک علاقه دارن بتونن یاد بگیرن

      ۱۵/۰۶/۱۳۹۴ در ۲۳:۱۲
  • Pouria پاسخ

    سلام.آقا الحق استادی.محشر بود.

    ۲۴/۰۷/۱۳۹۴ در ۱۴:۲۴
    • محمد حسین پاسخ

      سلام دوست عزیز خییلی ممنوووونم امیدوارم مورد استفاده و استقبال قرار گرفته باشد

      ۲۴/۰۷/۱۳۹۴ در ۱۶:۵۱
  • tdkhakpur پاسخ

    اقا حسین دمت گرم عالی مطالب سایتتون .
    در مورد ارتباط با ای سی یو خودرو الگو یا نمونه ای دارید بزارید اگه مطلب هم باشه ممنونت میشیم

    ۲۸/۰۸/۱۳۹۴ در ۱۱:۳۱
    • محمد حسین پاسخ

      خیلی ممنونم دوست عزیز…یه فایلی دارم امیدوارم بدرد بخوره لطفا ایمیل بزنید فایلو بفرستم براتون…

      ۰۲/۰۹/۱۳۹۴ در ۱۹:۳۴
  • نینا م پاسخ

    سلام خیلی ممنون

    من یه مشکل دارم همین اول بعد از نوشتن برنامه build رو که می زنم این ارور میاد:
    the project must contain at least one source file
    چیکار باید بکنم؟

    ۰۶/۰۹/۱۳۹۴ در ۰۹:۱۱
    • محمد حسین پاسخ

      سلام خواهش میکنم … همانطور که در بالا گفته شد ، باید از منوی Project وارد قسمت Project Configure شده و در صفحه باز شده بوسیله Add ، فایل با پسوند c را به پروژه اضافه کنید…

      ۰۶/۰۹/۱۳۹۴ در ۰۹:۳۰
  • سعید پاسخ

    عالی بود. عزیز یه سوالی داشتم طریقه تغیر در برنامه نوشته شده و تعویض آن با برنامه اصلی در میکرو در محیط پروتوس چه جوریه مثلا تغیر در تایم یا تغیر اسمی که در lcd نمایش داده میشود ؟ لطف میکنید اگه راهنمایم کنید

    ۱۷/۱۱/۱۳۹۴ در ۱۱:۰۸
    • محمد حسین پاسخ

      ممنونم دوست عزیز
      اگه درست متوجه سوالتون شده باشم ، زمانی که فایل hex را در پروتئوس روی آی سی تنظیم کرده باشید ، هر تغییری که در کدنویسی در نرم افزار کدویژن اعمال کنید و سپس Build کنید مستقیما روی پروتئوس دیده می شود. تنها راه تغییر برنامه در نرم افزار کدویژن است.

      ۱۷/۱۱/۱۳۹۴ در ۱۱:۲۴
  • hameddd پاسخ

    با عرض سلام و خسته نباشید
    من 3 تاسوال داشتم
    1.اینکه میگن atmega32 و atmega16 یکین و فقط میزان حافظشون فرق داره درسته؟منی که تازه شروع کردمو برنامه هام زیاد حافظه اشغال نمیکنه میتونم به جای 32 از مدل 16 استفاده کنم؟قیمت های این دوتا چنده؟
    2. چه پروگرامری بخرم و قیمتش تو بازار چنده؟
    3. محیط برنامه نویس کدویزن من فونتش کوچیکه آیا میتونم سایز فونتمو افزایش بدم یا نه؟

    ببخشید اگه سوالاتم زیاد شد
    مشتاقانه منتظر جوابتونم
    با تشکر

    ۱۱/۱۲/۱۳۹۴ در ۰۶:۰۷
    • محمد حسین پاسخ

      سلام ممنونم دوست عزیز
      1. بله درسته میتونید قیمت هاشون هم زیاد تفاوتی نداره
      2. یکی از انواع پروگرامرهای USB
      3. بله از منوی Setting قسمت Editor و در تب Text

      ۱۱/۱۲/۱۳۹۴ در ۰۹:۰۶
  • hameddd پاسخ

    سلام خیلی ممنون از پاسختون آقا محمد حسین
    یه سوال دیگه در مورد پروگرامر داشتم
    اینکه میگن بعضیاشون نیاز به تغذیه جداگانه داره(12ولت) و اگه از کریستال خارجی استفاده کنی مشکل ساز میشه
    یه پروگرامر خوب که تغذیش روتین باشه(5ولت) و این مشکل کریستالم نداشته باشه میتونین معرفی کنید؟
    stk500 یو اس بیه اما در اصل پورتش com بوده که بعدا تبدلش کردن به usb و ممکنه کامپیتر نشناسه…

    ۱۲/۱۲/۱۳۹۴ در ۰۷:۰۸
    • محمد حسین پاسخ

      سلام خواهش میکنم پروگرامرهای USB مثل stk500 و USBasp تغذیش از خود پورت USB تامین میشه و بیشترشون هم جا برای کریستال داره

      ۱۲/۱۲/۱۳۹۴ در ۱۶:۱۴
  • hameddd پاسخ

    با عرض سلام وخسته نباشید
    آقا محمد حسین اگه میشه آموزش طراحی pcb با پروتئوس و همچنین ساختشو بزارید لطفا

    ۱۹/۱۲/۱۳۹۴ در ۰۹:۰۴
    • محمد حسین پاسخ

      سلام دوست عزیز ممنونم از پیشنهادتون حتما سعی میکنم در آینده بزارم

      ۱۹/۱۲/۱۳۹۴ در ۱۷:۵۶
  • hameddd پاسخ

    سلام
    آقا من یه پروگرامرusb aspگرفتم ولی توی کد ویزن همچین پروگرامری نیست
    باید چیکار کنم؟
    چجوری پروگرامرو برا کد ویزن تعریف کنم؟

    ۲۴/۱۲/۱۳۹۴ در ۱۵:۰۰
    • محمد حسین پاسخ

      سلام دوست عزیز روش پروگرام کردن با پروگرامر USBasp متفاوت می باشد و از درون کدویژن نیست. شما باید بعد از Build شدن برنامه و ساخته شدن فایل hex ، با استفاده از نرم افزار دیگری به نام ProgISP فایل هگز مربوطه را پروگرام نمایید.

      ۲۴/۱۲/۱۳۹۴ در ۱۶:۳۴
  • hameddd پاسخ

    سلام
    تشکرات فراوانننننننننننننننن محمد حسین

    ۲۶/۱۲/۱۳۹۴ در ۱۲:۴۲
  • حامد پاسخ

    سلام
    آقا محمد حسین من چن روزه پروگرام که میکنم
    خطا میده chip enable program error
    میگن فیوزبیت های میکرو قاطی شده
    در صورتی که من فقط jtagen رو یکی دو بار فعال و غیر فعال کردم تا بتونم از portc به عنوان خروجی استفاده کنم
    بعدش اول portaاصلا کار نکرد بعدشم کل میکرو دیگه پرو گرام نشد

    لطفا راهنماییم کنید؟؟؟؟؟؟؟؟؟؟
    پروگرامرم usb asp با progisp 1.72

    ۱۴/۰۱/۱۳۹۵ در ۱۴:۰۰
    • MHosein پاسخ

      سلام دوست عزیز وقتی این خطا رو میده که ارتباط سخت افزاری با میکرو برقرار نباشه شاید با قرار دادن کریستال خارجی دلخواه روی پروگرامر و default کردن فیوز بیت ها مشکل حل شود در غیر این صورت اگر فیوز بیت ها Read نشود احتمال خرابی میکرو وجود دارد

      ۱۴/۰۱/۱۳۹۵ در ۱۴:۳۲
  • حامد پاسخ

    سلام
    من بازم اومدم شرمنده هی سوال میپرسما
    آقا من یه ولت متر درس کردم با adc
    خوب جواب میده ولی برا اعداد بزرگتر از 2.56 (منطق 1 میشه) همون 2.56 ولت نشون میده و بیشتر نمیشه چیکار کنم؟

    ۱۸/۰۱/۱۳۹۵ در ۱۶:۰۳
    • محمد حسین پاسخ

      سلام دوست عزیز این پروژه و بسیاری پروژه های دیگه داخل بسته آموزشیمون وجود داره که متونید تهیه کنید. برای اینکه ولت متر بسازید باید جوری تقسیم مقاومتی ایجاد کنید که رنج ولتاژ اندازه گیری متغیر باشه مثلا 0 تا 20 ولت رو به 0 تا 2.56 ولت تبدیل بکنه. چون میکرو فقط میتونه از 0 تا VREF رو اندازه گیری کنه…

      ۱۸/۰۱/۱۳۹۵ در ۱۸:۱۳
  • علی پهلوان پاسخ

    با سلام . سپاس فراوان من که رشته ام این نبود در حد ی که می خواستم متوجه شدم – پهلوان

    ۱۸/۰۲/۱۳۹۵ در ۱۷:۵۴
  • Nrezaie پاسخ

    سلام
    ممنون بابت آموزشتون
    من پروتئوس رو طبق راهنما نصب کردم ولی وقتی باز میکنم خود به خود بعد از چند دقیقه بسته میشه! چکارش کنم؟

    ۱۸/۰۳/۱۳۹۵ در ۰۷:۵۱
    • MHosein پاسخ

      سلام دوست عزیز مشکل از کرک نرم افزار پروتئوس می باشد که در پروتئوس 8.1 که روی سایت نیز وجود دارد مشکل بسیار کمتر شده است اما به طور کامل رفع نشده است. لطفا از نسخه موجود در سایت استفاده نمایید یا از یک سایت معتبر آخرین نسخه نرم افزار را دانلود و نصب نمایید شاید مشکل به طور کامل بر طرف شود.

      ۱۸/۰۳/۱۳۹۵ در ۱۰:۳۵
  • HOJABRCR7 پاسخ

    سلام مهندس…. دو تا سوال دارم ازت
    اول بگو چرا از کد ویزارد استفاده نکردی؟؟؟ همون اولین اموزش رو با کد ویزارد میزاشتی بهتر نبود؟؟؟
    سوال دوم من اینه که من پروگرم رو به کامپیوتر وصل کردم و با برنامه های دیگه میتونم میکرو رو پروگرم بکنم.اما وقتی میخوام با خود کد ویژن برنامه رو پروگرم بکنم ارور زیر رو میده….
    the communication port COM1 is also used by the terminal
    فقط یک پورت دارم و اون هم COM1 هستش که گفته ترمینال داره ازش استفاده میکنه.من چندین جای usb دارم ولی یک پورت بیشتر نمیاره برای انتخاب…چه کنم مهندس؟؟؟ 🙁

    ۱۰/۰۴/۱۳۹۵ در ۱۱:۳۲
    • ادمین الکترو ولت پاسخ

      کدویزارد در این مثال ساده پیچیدگی کار رو بیشتر میکنه…شماره پورت رو تغییر بدید در کنترل پنل ویندوزتون امکان تغییر شماره پورت COM هستش

      ۲۹/۱۲/۱۳۹۵ در ۰۵:۵۹
  • یسنا پاسخ

    سلام توضیحات کاملی بود خسته نباشید.
    من موقع کار با تایمر atmega16 به یک مشکل عجیب برخوردم که اینجا نمیتونم توضیحش بدم ، اگه مایلید توضیحات کامل رو براتون ایمیل کنم .سؤالم خیلی سادست اما هیچ جا چیزی پیدا نکردم.ممنون میشم راهنماییم کنید.

    ۱۰/۰۴/۱۳۹۵ در ۲۰:۰۵
    • شجاع داودی پاسخ

      سلام دوست عزیز ممنونم
      لطفا از طریق ایمیل یا تلگرام در ارتباط باشید

      ۱۱/۰۴/۱۳۹۵ در ۰۶:۰۹
  • HOJABRCR7 پاسخ

    محمد حسین جان چرا جواب نمیدی؟؟؟
    یک سوال جدید هم دارم
    ایا میشه فیوز بیت ها رو تو کد ویزارد برنامه ریزی کرد؟؟؟من که هر چی گشتم هیچین چیزی تو کد ویزارد نبود…چه کنم؟؟؟

    ۱۱/۰۴/۱۳۹۵ در ۱۰:۴۱
    • ادمین الکترو ولت پاسخ

      خیر فیوز بیت ها در AVR بخش جداگانه ای از برنامه به حساب می آید و نمیشه داخل برنامه اونها رو تنظیم کرد

      ۲۹/۱۲/۱۳۹۵ در ۰۵:۵۷
  • HOJABRCR7 پاسخ

    من دقیقا مدار بالا رو با همین تنظیمات به شکل کامل تو پروتئوس بستم ولی تو پروتئوس وقتی مدار رو اجرا میکنم مدار کار میکنه اما کریستال هیچ کارست.یعنی led همش چشمک میزنه ولی انگار کریستال فرکانس رو تامین نمیکنه.فرکانس کریستال رو از 16 مگا اوردم رو .00001 مگا ولی باز هم هیچ تغییری نمیکنه.کریستال رو جدا هم کردم ولی باز هم مدار بدرستی کار میکنه.انگار کریستال این وسط الکی هستش….مشکل چیه؟؟؟؟

    ۱۱/۰۴/۱۳۹۵ در ۱۱:۰۲
    • ادمین الکترو ولت پاسخ

      پروتئوس برنامه شبیه سازی است در عمل اگه کریستال نباشه مدار کار نمیکنه

      ۲۹/۱۲/۱۳۹۵ در ۰۵:۵۶
  • مرتضی پاسخ

    سلام و خسته نباشید و تشکر از مطلبتون.یه سوال در زمینه وقفه ها داشتممیخواستم بدونم چطور میشه، یه وقفه از همون ابتدای برنامه کار کنه؟مثلا میخواستم داخل پروتئوس، زمانیکه کلید از همون ابتدا، فعاله،  لامپ، چشمک بزنه.  در حالیکه فقط زمانی چشمک زدن رو شروع میکنه که کلید در حین اجرای برنامه زده بشه.  نه از همون اول.

    ۲۷/۱۲/۱۳۹۵ در ۱۷:۵۹
    • ادمین الکترو ولت پاسخ

      سلام ممنونم این کار شدنی هستش شما برنامتون رو بررسی و اصلاح کنید

      ۲۹/۱۲/۱۳۹۵ در ۰۵:۵۵

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

16 + چهار =