بازگشت   پی سی سیتی > تالار علمی - آموزشی و دانشکده سایت > دانشگاه ها > فنی و مهندسی

فنی و مهندسی در این زیر تالار به بحث و گفتگو در مورد رشته های فنی و مهندسی پرداخته میشود

پاسخ
 
ابزارهای موضوع نحوه نمایش
  #11  
قدیمی 10-20-2008
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض تایمر ها در 8051

تایمر ها در 8051
تایمر ها از اجزاء پر کاربرد پروژه های 8051 می باشند.کار اصلی تایمر شمارش تعداد سیکل های کریستال می باشد.چون هر دوره تناوب کریستال در کسری از ثانیه رخ می دهد بنابراین می توان برای شمارش زمان سپری شده ، از آن استفاده کرد .
8051 دارای دو عدد تایمر 16 بیتی می باشد که با نامهای تایمر یک و تایمر صفر شناخته شده اند .هر تایمر در حقیقت از دو ثبات 8 بیتی با نام TH و TL ساخته شده است .از تایمر ها در 4 مود کاری می توان استفاده کرد:
مود 00 که از تایمر به عنوان یک شمارشگر 13 بیتی استفاده می کند .
مود 01 از تایمر به عنوان شمارشگر 16 بیتی استفاده می کند .
مود 02 به عنوان شمارشگر 8 بیتی با راه اندازی خودکار استفاده می کند.(AutoReload)
مود 03 تایمر را به دو تایمر 8 بیتی تقسیم می کند که به آن حالت تسخیر شده می گویند.

در 4 مود کاری بالا مود های یک و دو بیشترین کاربرد را در انجام پروژه ها دارند .تایمر 16 بیتی مود 01 می تواند از مقدار 0000 تا FFFFH بشمارد پس از رسیدن به مقدار FFFF تایمر پرچم خود را (TF) را یک می کند و مجددا از مقدار 0000 شروع به شمارش می کند.

در مود 2 که همان حالت AutoReload است تایمر به عنوان یک شمارشگر 8 بیتی از مقدار 00 تا FFh می شمارد البته در این مود می توان برای تایمر تعیین کرد که چه مقدار بشمارد فرضا در برنامه ای احتیاج به این پیدا می کنیم تا تایمر یک وظیفه ای را هر 100 میکرو ثانیه انجام دهد در این حالت از مود 2 استفاده می کنیم . مقدار اولیه شمارش را در ثبات TH قرار می دهیم .و سپس پس از راه اندازی تایمر این مقدار در ثبات TL قرار می گیرد و تایمر از مقدار تعیین شده تا FFh می شمارد . پس از رسیدن TL به FFh تایمر پس از یک کردن TF ، مجددا مقدارموجود در TH را در ،م کپی کرده و به همین ترتیب شمارش ادامه می یابد .

تایمر ها دارای دو ثبات با نامهای TCON وTMOD هستندثبات ،TMOD برای مقدار اولیه دادن به تایمر مورد استفاده قرار می گیرند و ثبات TCON برای کنترل تایمر مورد استفاده قرار می گیرد ثبات TMOD همیشه باید قبل از راه اندازی تایمر مقدار دهی شود.شکل ثبات TMOD به صورت زیر است:

TMODیک ثبات 8 بیتی است که به دو قسمت 4 بیتی (nible) تقسیم می شود نیبل بالا برای تایمر 1 و نیبل پایین برای تایمر 0 مورداستفاده قرار می گیرد .اختلاف دو نیبل در همین است و غیر از این کاملا با هم مشابهند .
بیت Gate ، می توان گفت که یک نوع راه انداز تایمر است . این بیت مشابه کلید روشن و خاموش عمل می کند در صورتی که مقدار این بیت را یک قرار دهیم کنترل تایمر از طریق پالس ورودی به پایه ی INT1 صورت می گیرد یکی از کاربرد های این بیت اندازه گیری پالس خارجی اعمال شده به پایه ی INT1 می باشد.
بیت C/T نوع کارکرد تایمر را تعیین می کند که آیا تایمر برای شمارش تعداد پالس کریستال خارجی متصل به پایه T1 یا T0 مورداستفاده قرار گیرد یا برای شمارش تعداد پالس های کریستال مدار میکرو که آن هم به پایه های 18 و 19 متصل است .در حالت اول می گویند که تایمر به عنوان کانتر (شمارنده اتفاقات) عمل می کند و در حالت دوم می گویند که تایمر در حالت شمارش گر زمان کار می کند .در صورتی که بیتc/T را یک کنیم تایمر به عنوان کانتر و در صورتی که این بیت را صفر کنیم تایمر به عنوان شمارشگر واحد زمان به کار گرفته می شود.

بیتهای M1و M0 هم مود کاری را که قبلا بررسی کردیم تعیین می کند .ابتدا مود مورد نظر را تعیین می کنیم سپس مقدار معادل آن در مبنای دو را در بیتهای M1, M2 قرار می دهیم .

یک مثال برای اینکه تایمر 1در حالت AutoReload و به عنوان تایمر (شمارش گر زمان) مورد استفاده قرار گیرد :

معدل این کار دستور زیر است:

کد:
Mov Tmod,#00100000b
مرحله بعدی استفاده از تایمر تعیین چگونگی روشن و خاموش کردن تایمر است.
ثبات دیگری که در مورد تایمر مورد استفاده قرار می گیردثبات TCON است بیتهای این ثبات در شکل زیر مشخص می باشند.

بیت TF:قبلا هم در مورداین بیت صحبت کردیم هنگامی که تایمر شروع به شمارش کرد بسته به مودی که برای کار در آن تنظیم شده است پس از رسیدن به مقدار نهایی (FFh یا FFFFh یا1FFFh ) قبل از اینکه مجددا از صفر شروع به شمارش کند بیتTF را یک می کند تا نشان دهد که مقدار فعلی در دور دوم شمارش است و قبلا یک بار شمارش کامل شده است .
این بیت به صورت سخت افزاری یک می شود و ما باید به صورت نرم افزاری قبل از پایان دور دوم شمارش آن را صفر کنیم .
TF1 برای تایمر یک و TF0 پرچم شمارش برای تایمر صفر است.

بیت TR: بیت کنترل راه اندازی نامیده شده است .در صورتی که این بیت را یک کنیم تایمر شروع به شمارش می کند و در صورتی که این بیت صفر شود تایمر متوقف می شود. مانند TF، ،TR1 برای کنترل تایمر 1 و TR0 برای کنترل راه اندازی تایمر 0 مورد استفاده قرار می گیرد.

4 بیت بعدی این ثبات برای عملیات وقفه کاربرد دارد که انشاالله در مبحث وقفه ها به صورت کامل توضیح خواهیم داد .
اکنون روش کار با تایمر را به صورت الگوریتم در می آوریم تا بهخاطر سپردن آن آسانتر شود.

1.از کدام تایمر استفاده خواهیمکرد؟
2.مود کاری تایمر را تعیین کنید.
3.تایمر مورد نظر شماست یا شمارنده
3.ثبات TMOD را با معادل دودوئی آن بار گذاری کنید.
4.در صورتی که از AutoReload استفاده می کنید TH را با مقدار اولیه مناسب بار کنید.
5.تایمر را راه اندازی کنید .
7.منتظر یک شدن TF بمانید .


مثال:
برنامه ای بنویسید که یک پالس با دوره تناوب 200 میکرو ثانیه بر روی پایه ی P1.0 تولید کند.


حل:
دوره تناوب پالس 200 میکرو ثانیه عنوان شده است یک پالس در نصف دوره تناوب در حالت high و در نصف دیگر در حالت low قرار دارد . نصف دوره تناوب 100 میکرو ثانیه است و چون پالس متقارن است ما فقط به نصف دوره تناوب احتیاج داریم بنابراین مود تایمر را 2 یعنی حالت autoReload و مقدار اولیه را -100 در نظر می گیریم.
برای اینکه بفهمید چرا -100 ،توجه کنید که ما می خواهیم که تایمر 100 واحد بشمارد در حالت AutoReload چون تایمر 8 بیتی است حداکثر مقدار شمارش FFh است بنابراین :
TH=FFh-100d=9Bh
اما -100 هم دقیقا مشابه مقدار بالا است .بنابراین اگر ما به جای -100 مقدار 9Bh را در TH قرار می دادیم نیز نتیجه فرقی نمی کرد.

در این مثال فرقی نمی کند که از کدام تایمر استفاده کنیم .در حقیقت تایمر ها هیچ تفاوتی با هم ندارند .
کد:
Mov TMOD,#00100000b

Mov TH1,#-100
Setb TR1
Wait :jnb Tf1,wait
ClR TF1
CPL p1.0
Sjmp wait
همانطور که مشاهده می کنید قبل از پایان دور دوم شمارش مقدار TF باید صفر شود.
منبع:دانشگاه کردستان
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست



پاسخ با نقل قول
جای تبلیغات شما اینجا خالیست با ما تماس بگیرید




  #12  
قدیمی 10-20-2008
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض سير تكاملي ميكرو كنترلرها

سير تكاملی ميكرو كنترلرها
تاریخچه میکروکنترلرها
اولين ميكرو كنترلرها در اواسط دهه 1970 ساخته شدند. اين ميكرو كنترلرها در ابتدا پردازنده هاي ماشين حساب بودند كه داراي حافظه برنامه كوچكي از نوع ROM ، حافظه داده از نوع RAM و تعدادي درگاه ورودي/خروجي بودند.
با توسعه فناوري سيليكون ، ميكرو كنترلرهاي 8 بيتي قويتري ساخته شدند. در اين ميكرو كنترلرها علاوه بر بهينه شدن دستورالعمل ها، تايمر/شمارنده روي تراشه، امكانات وقفه و كنترل بهينه شده خطوط I/O نيز به آنها اضافه شده است. حافظه موجود بر روي تراشه هنوز هم محدود مي باشد و دربسياري موارد كافي نيست.يكي از پيشرفتهاي قابل توجه در آن زمان، قابليت استفاده از حافظة EPROM قابل پاك شدن با اشعه ماورا بنفش، روي تراشه بود. اين قابليت، زمان طراحي و پياده سازي محصول را بطور محسوسي كاهش داد و نيز براي اولين بار امكان استفاده از ميكرو كنترلر ها را در كاربردهايي كه حجم توليد پاييني دارند، فراهم ساخت.
خانواده8051 در اوايل دهه 1980 توسط شركت اينتل معرفي گرديد. از آن زمان تاكنون8051 يكي از

محبوبترين ميكرو كنترلرها بوده و بسياري از شركتها ديگر نيز به توليد آن اقدام كرده اند. در حال حاضر

مدل هاي مختلفي از 8051 وجود دارد كه در بسياري از آنها امكاناتي نظير مبدل آنالوگ به ديجيتال حجم

نسبتاً بزرگ از حافظه برنامه و حافظه داده، مدولاتور عرض پالس (PWM) در خروجيها و حافظه فلش

Flash)) كه امكان پاك كردن و برنامه ريزي مجدد آن توسط سيگنالهاي الكتريكي وجود دارد، تعبيه شده است.
ميكرو كنترلرها اكنون به سمت 16 بيتي شدن در حركت هستند. ميكرو كنترلرهاي 16 بيتي، پردازنده هايي با كارايي بالا (نظير پردازش سيگنالهاي ديجيتال ) مي باشند كه در كنترل فرايندهاي بلادرنگ و در مواردي كه حجم زيادي از عمليات محاسباتي مورد نياز است، به كار برده مي شوند.
بسياري از ميكرو كنترلرهاي 16 بيتي، امكاناتي نظير حجم زياد حافظه برنامه و حافظه داده، مبدل هاي آنالوگ به ديجيتال چند كانالي، تعداد زيادي درگاه I/O، چندين درگاه سريال، عملكردهاي بسيار سريع رياضي و منطقي و مجموعه دستورالعمل هاي بسيار قدرتمند با قابليت پردازش سيگنال را دارا مي باشند.
معماري داخلي ميكرو كنترلرها
ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركزي (CPU) و واحد كنترل (CU)است.
CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد نظر انجام شوند.
حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.
درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.
خانواده 8051
خانواده 8051 يك خانواده ميكرو كامپيوتر (ميكرو كنترلر ) 8 بيتي تك تراشه اي استاندارد است كه بسيار محبوب و عامه پسند مي باشد و توسط سازندگان مختلف با قابليت هاي متفاوت توليد مي گردد. اين آي سي استاندارد اصلي كه اولين عضو اين خانواده مي باشد، 8051 است كه يك ميكرو كنترلر 40 پايه مي باشد.
هم اكنون اين آي سي با پيكربندي هاي مختلف موجود مي باشد. 80C51 نوع cmos و كم مصرف اين خانواده است. 8751 داراي حافظه برنامه از نوع EPROM است كه عمدتاً در هنگام پياده سازي به كار برده مي شود.
89c51 نيز داراي حافظه فلش قابل برنامه ريزي و پاك شدن (PEROM) است لذا بدون نياز به پاك كردن با اشعه ماورابنفش ، مي توان حافظه برنامه را برنامه ريزي كرد.8052 عضو بهينه شده اين خانواده مي باشد و حافظه RAM آن بيشتر بوده و تعداد تايمر/شمارنده آن نيز بيشتر است. انواع مختلفي از خانواده 40 پايه وجود دارد كه داراي مبدل هاي آنالوگ به ديجيتال ، مدولاتورهاي عرض پالس و نظاير آن هستند. در بخش پايين خانواده 8051 ، ميكرو كنترلر هاي 20 پايه قرار دارند كه از لحاظ كد ، سازگاري كاملي با انواع 40 پايه دارند و اين ادوات 20 پايه براي كاربردهايي با پيچيدگي كمتر كه نياز به خطوط I/O كمتري دارند و نيز براي كاربردهايي كه بايد مصرف توان كمتري داشته باشند (مثل سيستم هاي قابل حمل)،ساخته شده اند.
آي سي هاي AT89C2051 و AT89C1051 (ساخت شركت Atmel)چنين ميكرو كنترلرهايي هستند كه از لحاظ كد سازگاري كاملي با خانواده 8051 دارند و مصرف توان آنها نيز كمتر است.
خانواده 8051
8051 يك ميكرو كنترلر 8 بيتي با مصرف كم و قابليت زياد است. تعداد زيادي از اعضاي خانواده 8051 داراي معماري مشابهي هستند و هر يك از اعضا با اعضاي ديگر سازگار مي باشند . قابليت هاي ميكرو كنترلر 8051 استاندارد به شرح زير مي باشد:
· 4 كيلو بايت حافظه برنامه
· 8*256 حافظه داده RAM
·32 خط I/O قابل برنامه ريزي
· دو عدد تايمر / شمارنده 16 بيتي
· 6 منبع وقفه
· درگاه UART سريال قابل برنامه ريزي
· قابليت اتصال به حافظه بيروني
· بسته بندي 40 پايه استاندارد
منبع
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست



پاسخ با نقل قول
  #13  
قدیمی 10-20-2008
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض ميکرو کنترلرها و پروسسورها

ميکرو کنترلرها و پروسسورها

ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركز (CPU) و واحد كنترل (CU)است.
CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد نظر انجام شوند.
حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.


درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.

میکرو کنترلر AVR به منظور اجرای دستورالعملهای قدرتمند در یک سیکل کلاک(ساعت) به اندازه کافی سریع است و می تواند برای شما آزادی عملی را که احتیاج دارید به منظور بهینه سازی توان مصرفی فراهم کند.

میکروکنترلر AVR بر مبنای معماری RISC(کاهش مجموعه ی دستورالعملهای کامپیوتر) پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب می کند.

به کارگرفتن حافظه از نوع Flash که AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است.

یک میکرو AVR می تواند با استفاده از یک منبع تغذیه 2.7 تا 5.5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود.

میکروهای AVR در هرجا که باشند با 1.8 ولت تا 5.5 ولت تغذیه می شوند البته با انواع توان پایین (Low Power)که موجودند.

راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است:

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

توان مصرفی پایین:

* توان مصرفی پایین آنها برای استفاده بهینه از باتری و همچنین کاربرد میکرو در وسایل سیار و سفری طراحی شده که میکروهای جدید AVR با توان مصرفی کم از شش روش اضافی در مقدار توان مصرفی ، برای انجام عملیات بهره می برند.
* این میکروها تا مقدار 1.8 ولت قابل تغذیه هستند که این امر باعث طولانی تر شدن عمر باتری می شود.
* در میکروهای با توان پایین ، عملیات شبیه حالت Standby است یعنی میکرو می تواند تمام اعمال داخلی و جنبی را متوقف کند و کریستال خارجی را به همان وضعیت شش کلاک در هر چرخه رها کند!

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

* قابلیت دوباره برنامه ریزی کردن بدون احتیاج به اجزای خارجی
* 128 بایت کوچک که به صورت فلش سکتور بندی شده اند
* داشتن مقدار متغیر در سایز بلوکه ی بوت (Boot Block)
* خواندن به هنگام نوشتن
* بسیار آسان برای استفاده
* کاهش یافتن زمان برنامه ریزی
* کنترل کردن برنامه ریزی به صورت سخت افزاری

راههای مختلف برای عمل برنامه ریزی:

موازی یا Parallel :

* یکی از سریعترین روشهای برنامه ریزی
* سازگار با برنامه نویس های(programmers) اصلی

خود برنامه ریزی توسط هر اتصال فیزیکی:

* برنامه ریزی توسط هر نوع واسطه ای از قبیل TWI و SPI و غیره
* دارا بودن امنیت صد درصد در بروزرسانی و کدکردن

ISP:

* واسطه سه سیمی محلی برای بروزرسانی سریع
* آسان و موثر در استفاده

واسطه JTAG :

* واسطه ای که تسلیم قانون IEEE 1149.1 است و می تواند به صورت NVM برنامه ریزی کند یعنی هنگام قطع جریان برق داده ها از بین نروند.استفاده از فیوزها و بیتهای قفل.
* بیشتر برای دیباگ کردن آنچیپ و به منظور تست استفاده می شود

مقايسه avr با 8051
مقایسه ما با تمام میکروهای 8 بیتی هست یعنی در مجموع میشه گفت AVR یه رقیب قدرتمند برای بقیه میکروهای قوی است و یه انقلاب بزرگ هم به شمار میره. هنوز هیچ میکرویی به سرعت بالای AVR در محاسبات دست پیدانکرده .در ضمن AVR قادره که محاسبات 16 بیتی رو هم انجام بده. شهار ATMEL هم اینکه شما پول یه میکرو 8 بیتی رو میدید ولی میتونید از قایلیتهای یک میکرو 16 بیتی استفاده کنید.
AVR از معماری RISC با تعداد دستورالعمل بالا بهره میبره که دربین میکروها کم نظیر هست. اکثر دستورالعمل های آن باوجود زیاد بودن تعداد دستورالعملها در یک سیکل انجام میشه.
این میکرو از مدهای کاهش توان به خوبی بهره برده و تایید کننده آن زیاد بودن مدهای کاهش توان آن و استفاده از تقسیم کلاک به صورت نرم افزاری است که در کمتر میکرویی دیده میشه.
AVR حتی برعکس میکروهای دیگه هیچ تقسیم کلاکی انجام نمیده(مثلا 8051 کلاک رو بر 12 و PIC که یه میکرو قدرتمند هست کلاک رو بر 4 تقسیم میکنه). این امر که AVR کلاک رو تقسیم نمیکنه موجب کاهش مصرف انژی و افزایش MIPS شده.

تکنولوژی بکار رفته در AVR موجب شده که حتی میتوان از آن در محیط های صنعتی و پر نویز براحتی از آن استفاده کرد(به گفته خود ATMEL والا هنوز خودم یه تست دقیق انجام ندادم ولی اون رو با یه فیبر یه رو و با یه کابل LCD تقریبا 20 سانتی و یا استفاده از باتری ماشین در کنار شمع پیکان غیر انژکتوری تست کردم ولی فقط در فاصله تقریبا 5-6 سانتی از اون صفحه LCD قاتی میکرد ولی نمیدونم میکرو هم ریست میشد یا نه .در ضمن قسمت تغذیه فقط از یک 7805 تشکیل شده بود. و این آزمایش هم برای خودم و هم برای چند تا از دوستانم که کارهای صنعتی انجام میدادن شگفت آور بود). اما به دلیل اینکه هنوز هیچ کسی اون رو تابه حال در محیط صنعتی تست نکرده و به دلیل اطمینان بالای PIC هیچ کسی دوست نداره اعتبار خودش رو به خطر بندازه.
یه جا یه مهندسه میگفت توی یه محط صنعتی که حتی کامپیوتر ریست میکرده PIC به خوبی کار خودشو انجام میداده!!!!!!!!!!

در ضمن AVR مجهز به آخرین امکانات مثل تایمر واچ داگ و برون اوت دیتکتور و مبدل های ADC و PWM است.
یکی از مهمترین بخشی که کمتر در هر میکرویی دیده میشه مقایسه کننده آنالوگ با گین 1 و 10 و 200 و .. است که بسته به میکرو فرق میکنه.
این مقایسه کننده میتونه تو ورودی مبدل ADC قرار بگیره . این بخش برای بعضی طراحان خیلی مهمه و اونا رو مجذوب خودش کرده.


خانواده میکروکنترلرهای AVR شامل طیف گسترده ای از آی سی ها است که از 8 پایه شروع و به 64 پایه ختم می شود. اما در بین این طیف گسترده تعدادی استفاده عمومی تری دارند مانند ATMEGA32 . که در تمام مثالهای آورده شده از این آی سی استفاده شده است .

مشخصات سخت افزاری ATMEGA32 :

شکل ظاهری و پایه ها:

ATMEGA32 در سه نوع بسته بندی PDIP با 40 پایه و TQFP با 44پایه و MLF با 44 پایه ساخته میشود که در بازار ایران بیشتر نوع PDIP موجود میباشد .

ATMRGA32 دارای چهار پورت 8بیتی ( 1 بایتی ) دارد که علاوه بر اینکه بعنوان یک پورت معمولی میتوانند باشند کارهای دیگری نیز انجام میدهند . بطور مثال PORTA میتواند بعنوان ورودی ADC (تبدیل ولتاژ آنالوگ به کد دیجیتال ) استفاده شود که این خاصیت های مختلف پورت در برنامه ای که نوشته میشود تعیین خواهد شد .
ولتاژ مصرفی این آی سی از 4.5 V تا 5.5V میتواند باشد .
فرکانس کار هم تا 16MHz میتواند انتخاب شود که تا 8MHz نیازی به کریستال خارجی نیست و در داخل خود آی سی میتواند تامین شود . فرکانس کار از جمله مواردی است که باید در برنامه تعیین شود . لازم به ذکر است که این فرکانس بدون هیچ تقسیمی به CPU داده میشود . بنابراین این خانواده از میکروکنترلرها سرعت بیشتری نسبت خانواده های دیگر دارند .
پایه ی شماره 9 نیز ریست سخت افزاری میباشد و برای عملکرد عادی آی سی نباید به جایی وصل شود و برای ریست کردن نیز باید به زمین وصل میشود .
پایه های 12 , 13 نیز برای استفاده از کریستال خارجی تعبیه شده است .


ساختار داخلی ATMGA32 :
برنامه ای که برای میکروکنترلر در کامپیوتر نوشته میشود وقتی که برای استفاده در آی سی ریخته میشود ( توسط پروگرامر مخصوص آن خانواده ) در مکانی از آن آی سی ذخیره خواهد شد بنام ROM . حال در ATMEGA32 مقدار این حافظه به 32KB ( 32 کیلوبایت ) میرسد .
در این آی سی مکانی برای ذخیره موقت اطلاعات یا همان RAM هم وجود دارد که مقدارش 2KB است .
در RAM اطلاعات فقط تا زمانی که انرژی الکتریکی موجود باشد خواهد ماند و با قطع باتری اطلاعات از دست خواهند رفت . به همین منظور در ATMEGA32 مکانی برای ذخیره اطلاعات وجود دارد که با قطع انرژی از دست نخواهند رفت . به این نوع حافظه ها EEPROM گفته میشود که در این آی سی مقدارش 1KB است و تا 100,000 بار میتواند پر و خالی شود .

نرم افزار
نرم افزار مورد نیاز برای برنامه نویسی :
حال میخواهیم طرز نوشتن برنامه برای میکروکنترلرهای خانواده ی AVR را شروع کنیم . پس برای اینکار نیاز به یک نرم افزار داریم که بتوانیم در آن برنامه ی خود را بنویسیم . یکی از نرم افزارهای قدرتمند برای انجام دادن اینکار نرم افزاریسیت بنام Bascom AVR . در این نرم افزار همانطور که از نامش معلوم است برنامه باید بزبان Basic که زبانی با سطح بالا (HLL) است نوشته شود . همچنین این نرم افزار دارای شبیه ساز داخلی برای تست کردن برنامه نوشته شده است که یکی از ویژگیهای این نرم افزار میباشد .

تحلیل برنامه

حال به توضیح تک به تک قسمتها میپردازیم :

۱:در قسمت معرفی آی سی از کلمه کلیدی $Regfile برای معرفی استفاده شده است . این دستور به این صورت است که باید بعد ازآن کلمه معرف آی سی مورد استفاده را در جلوی آن وارد کنیم . البته برای هر آی سی کلمه ی مخصوصی وجود دارد که برای ATMEGA32 باید کلمه ی M32def.dat را تایپ کرد . البته باید توجه داشت که این کلمه باید داخل یک جفت کوتیشن ( گ + Shift ) قرار گیرد :
$Regfile = “M32def.dat”

۲: در قسمت بعدی که تعیین فرکانس کاری است کلمه کلیدی $Crystal باید نوشته شود و آنرا باید مساوی با فرکانس کار بر حسب هرتز قرار داد :
$Crystal = 1000000

۳: حال به بخش معرفی سخت افزار رسیدیم . در این برنامه چون پورت B باید بتواند جریان بیرون دهد و سخت افزار خارجی ای که همان LED است را روشن کند بعنوان خروجی تعریف میشود . همیشه برای معرفی سخت افزار از کلمه کلیدی Config اسفاده میشود . پس برای خروجی کردن پورت B مینویسیم :
Config Portb = output

۴: چون در این برنامه نیازی به تعریف متغیری نبود به بخش برنامه اصلی میرویم و در این قسمت عددی را به پورت B خواهیم فرستاد تا طبق آن LED ها روشن شوند . البته ذکر این نکته لازم است که اگر بخواهیم عددی را در مبنای دودویی بنویسیم ابتدا باید &B را نوشته و بعد ععد مورد نظر را تایپ کنیم و همینطور برای نوشتن در مبنای هگز که &H تایپ میشود و اگر هیچکدام از کلمات ذکر شده را ننویسیم عدد در مبنای دسیمال محسوب میشود .

۵: در آخر برنامه نیز از کلمه کلیدی END برای مشخص نمودن پایان برنامه استفاده شده است .

LCD :
در کل دو نوع LCD وجود دارد . یکی از آنها را LCD کارکتری گویند که فقط قابلیت نمایش حروف و اعداد و کارکترهایی همچون ؟ و ! و غیره را دارد و نوع دیگر LCD گرافیکی است که قابلیتهای LCD گرافیکی بعلاوه ی نمایش تصویر در آن جمع شده اند . هدف ما در اینجا کار با LCD کارکتری خواهد بود .

معرفی LCD کارکتری :
LCD های کارکتری خود به چند نوع دیگر از لحاظ اندازه تقسیم بندی میشوند . که از LCD هایی با 1 سطر و 1 ستون آغاز میشوند تا اندازهایی مثل 4 سطر و 40 ستون که البته تمام آنها از 16پایه تشکیل شده اند.


برای راه اندازی LCD توسط AVR نیازی به دانستن جزئیات طرز کار LCD نیست . برای کار با LCD علاوه بر پایه های تغذیه و CONTRAST ( تنظیم روشنایی ) که باید مانند شکل مداری پایین بایاس شوند نیاز به 6 پایه ی دیگر است که عبارتند از پایه های :
RS , E , DB4 , DB5 , DB6 , DB7 .

تحلیل برنامه :

۱:برای تعیین نوع LCD از کلمات کلیدی Config و بعد از آن Lcd استفاده شده و آنها را مساوی نوع LCD مورد استفاده قرار میدهیم که در اینجا نوع مورد استفاده دارای 2 سطر و 16 ستون میباشد. پس بصورت زیر خواهیم نوشت :
Config Lcd = 16*2

۲: در مرحله ی بعد ترتیب وصل کردن پایه ها را معرفی خواهیم کرد و برای اینکار پایه هایی از LCD را که برای راه اندازی آن استفاده میشود و قبلا نیز گفته شده بود را مساوی پایه هایی از میکروکنترلر قرار میدهیم که میخواهیم به آنها وصل شود و البته این نوع راه اندازی توسط AVR را که تنها با شش پایه صورت میگیرد را نوع راه اندازی PIN میگویند . پس طبق سخت افزار نشان داده شده بصورت زیر خواهیم نوشت :
Config Lcdpin = pin , Rs = porta.0 , e = porta.1 , db4 = porta.2 , db5 = porta.3 , db6 = porta.4 , db7 = porta.5
( به علامت , بین بخشها دقت کنید . )

۳: بعد از انجام کارهای بالا که جزو بخش معرفی سخت افزار محسوب میشوند به سراغ برنامه اصلی میرویم که کار آن نمایش متن روی LCD است و برای انجام اینکار از کلمه کلیدی LCD و در جلوی آن متنی که باید نمایش داده شود استفاده میکنیم و باید توجه داشت که متن را باید داخل کوتیشن قرار داد .

۴: در انتهای برنامه نیز END را مینویسیم .

نحوه ی کامپایل برنامه و پروگرام کردن IC

کامپایل برنامه نوشته شده :
بعد از نوشتن برنامه باید آنرا کامپایل کرد تا اگر اشتباهی در تایپ کلمه ای وجود داشته باشد برای اصلاح آن اخطار داده شود و فایلهای از جمله فایل هگز که برای پروگرام کردن نیاز است ابجاد گردند . برای کامپایل برنامه همانطور که در تصویر بخش اول نمایش داده شده است باید از دکمه ی F7 استفاده کرد . با انجام اینکار برنامه ی ما کامپایل خواهد شد .
پروگرام کردن IC :
بعد از کامپایل برنامه نوبت به آن رسیده است که با نحوه ریختن برنامه داخل IC یا باصطلاح پروگرام کردن آشنا شوید . پس نیاز است که یک دستگاه پروگرامر مختص به خانواده AVR داشته باشید . برای پروگرام کردن میکروکنترلرهای خانواده AVR انواع مختلفی پروگرامر که از استانداردهای خاصی پیروی میکنند وجود دارد که مصرف عمومی تر را پروگرامهای نوع STK200/300 دارند که البته دارای مدار بسیار ساده ایست و برای پروگرام کردن از کابل LPT ( پرینتر ) استفاده میکند و در بازار هم بیشتر این نوع پروگرامر یافت میشود .
هنگامیکه میخواهیم کار پروگرام کردن را شروع کنیم ابتدا باید پروگرامر را به کامپوتر وصل نموده و بعد از توسط محیطی از نرم افزار Bascom AVR نوع آنرا برای کامپیوتر معرفی کنیم ( اینکار فقط یکبار انجام شود کافیست ) . برای شناساندن پروگرامر به کامپیوتر از منوی Option گزینه Programmer را انتخاب میکنیم :

بعد از انتخاب این گزینه کادر نمایش داده شده که در قسمت نمایش داده شده توسط خط قرمز نوع پروگرامر را انتخاب میکنیم :
بعد از انجام تنظیمات بالا میتوان آی سی را پروگرام کرد . به این صورت که
گزینه Program را انتخا ب میکنیم . بعد از انتخاب این گزینه کادر زیر باز خواهد شد که با کلیک روی آیکون مربوط آی سی پروگرام میشود .
همچنین دستگاههایی برای تست برنامه نوشته شده وجود دارند که روی آنها تمام وسایل مورد نیاز مانند LCD و Keypad و ... قرار دارد و کاربرمیتواند با سیم بندی ای که براحتی توسط کابلهای مخصوصی انجام میدهد پورتهای آی سی را به سخت افزارهای جانبی اتصال دهد و برنامه خود را مورد آزمایش قرار دهد . به این دستگاهها Emulator میگویند.

منبع http://www.iranwebco.com/ftopict-91.html
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست



پاسخ با نقل قول
  #14  
قدیمی 12-21-2008
idhowen idhowen آنلاین نیست.
تازه وارد
 
تاریخ عضویت: Dec 2008
نوشته ها: 1
سپاسها: : 0

0 سپاس در 0 نوشته ایشان در یکماه اخیر
پیش فرض

ba salam man 1 barname be zabane assembly roye at8s52 mikhastam be insoorat ke
vaghti voroodie at89s52 1 adade 8 biti bashad angah in be dahdahi tabdil shode va dar khorooji be andazeye an adade dahdahi puls ijad kond mamnoon misham komakam konid
پاسخ با نقل قول
  #15  
قدیمی 12-21-2008
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض

نقل قول:
نوشته اصلی توسط idhowen نمایش پست ها
ba salam man 1 barname be zabane assembly roye at8s52 mikhastam be insoorat ke
vaghti voroodie at89s52 1 adade 8 biti bashad angah in be dahdahi tabdil shode va dar khorooji be andazeye an adade dahdahi puls ijad kond mamnoon misham komakam konid
سلام دوست عزیز خوش اومدی
متاسفانه من نمیتونم کمکی بهت بکنم چون تخصصی در این زمینه ندارم و سوال و خواسته شما هم طوری هست که نشه به راحتی از اینترنت چیزی جستجو و پیدا کرد که بدم خدمتتون
اگر سوالی که یک دانشجوی ترم اول نرم افزار بتونه جواب بده دارین بفرمایین من در خدمتم
سوال قبلیتون اینجا میمونه اگر دوستی کسی پاسخشو دونست جواب میده میتونین شما میتونین با مشترک شدن در این بحث با کلیک بر روی لینک : http://p30city.net/subscription.php?...cription&t=862
در صورت نوشته شدن مطلب جدید در این تاپیک توسط ایمیل مطلع شوید...
موفق باشید
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست



پاسخ با نقل قول
پاسخ


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
اچ تی ام ال غیر فعال می باشد



اکنون ساعت 12:08 PM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.



Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)


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




  پیدا کردن مطالب قبلی سایت توسط گوگل برای جلوگیری از ارسال تکراری آنها