فی گوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

فی گوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

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

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

 

مقدمه
میکروکنترلر در واقع یک ریز پردازنده تک تراشه ای است که شامل حافظه داده ، حافظه برنامه ، ورودی و خروجی سریال و موازی ، تایمرها ، وقفه های بیرونی و داخلی می باشد که تمامی آنها روی یک تراشه واحد مجتمع شده اند و می توان آن را به قیمتی کمتر از 2 دلار تهیه نمود0 بر اساس تخمین های زده شده به طور متوسط تعداد 35 میکرو کنترلر در وسایل خانگی یک خانواده متوسط آمریکایی وجود دارد0 بیش از 34 درصد میکروکنترلرها در اتوماسیون اداری نظیر چاپگرهای لیزری ، دستگاه های نمابر تلفنهای هوشمند و نظایر آنها به کار برده می شوند0 بیش از یک سوم میکروکنترلرها در لوازم خانگی الکترونیکی به کار برده شده اند0 در این دسته بندی تولیداتی نظیرCD player ، تجهیزات صوتی hi-fi ، بازیهای ویدیویی ، ماشین لباسشویی ، دستگاههای پخت و پز و نظایر آنها قرار دارند0
بازار تجهیزات مخابراتی ،ادوات نظامی و تجهیزات مربوط به اتومبیل ها بخش باقیمانده از سهم کاربرد میکروکنترلرها را به خود اختصاص داده اند0
میکروکنترلرها به طور معمول با استفاده از زبان اسمبلی مربوطه ، برنامه ریزی می شده اند0 میکروکنترلرهای ساخت تولید کنندگان مختلف ، زبانهای اسمبلی متفاوتی دارند0 زبان اسمبلی شامل عبارتهای کوتاهی برای دستورالعمل ها است به خاطر سپردن این عبارتها مشکل است ونیز برنامه های تهیه شده برای یک میکروکنترلر برای سایر انواع دیگر میکروکنترلرها قابل استفاده نمی باشد0 سختی کار با زبان اسمبلی به خصوص در پیاده سازی پروژه های پیچیده ، متداولترین شکایتی است که در رابطه با برنامه ریزی میکروکنترلرها مطرح می شود0 راه حل این مسئله ، استفاده از زبانهای سطح بالا می¬باشد0 با این کار ، عملیات برنامه ریزی ساده تر گشته ، برنامه خواناتر و انعطاف پذیرتر شده و پشتیبانی از آن نیز ساده تر می گردد0 برای اغلب میکرو کنترلرها کامپایلرهای C و BASIC متفاوتی موجود می باشند0 کامپایلرهای BASIC معمولا‌ً به صورت مفسر بوده و کدهای حاصل از آنها کند می باشند0
یکی دیگراز معایب زبان BASIC این است که اغلب کامپایلرهای BASIC ساختیافته نیستند در نتیجه برنامه سازی با آن کار دشواری می باشد0 در این پروژه از یک کامپایلر حرفه ای C با تمام قابلیتهای آن جهت برنامه ریزی میکرو کنترلر خود استفاده خواهیم کرد0 AT89C2051 متعلق به خانواده استاندارد میکروکنترلرهای 8051 می باشد0 AT89C2051 یک مدار مجتمع 20 پایه می باشد که از لحاظ کد، کاملاً سازگار با برادر بزرگترش 8051 است0 این مدار مجتمع دارای یک درگاه سریال¬، 15 بیت ورودی / خروجی موازی ، 2 عدد تایمر / شمارنده ، 6 منبع وقفه ، 128 بایت حافظه RAM برای داده ها و 2 کیلو بایت حافظه فلش قابل برنامه ریزی مجدد برای ذخیره کردن برنامه می باشد0 دلایل زیادی برای انتخاب AT89C2051 وجود دارد¬، از آن جمله می توان به سازگاری کامل آن با خانواده 8051 و سهولت پاک کردن و برنامه ریزی مجدد آن ، اشاره کرد0 برای این مدار مجتمع نیازی به استفاده از اشعه ماوراء بنفش جهت پاک کردن حافظه برنامه نیست0 حافظه را می توان با استفاده از یک مدار برنامه ریزی کننده ارزان قیمت پاک کرده و مجدداً آن را برنامه ریزی نمود0 از دلایل دیگر انتخاب AT89C2051 کوچکی و ارزان بودن آن است0
سیستم های میکرو کامپیوتری:
اصطلاح میکروکامپیوتربرای توصیف سیستمی به کار می رود که شامل یک ریز پردازنده، حافظه برنامه، حافظه داده و یک ورودی / خروجی ( I / O ) است0 برخی از سیستم های میکرو کامپیوتری شامل اجزاء اضافی نظیر تایمرها ، شمارنده ها و مبدل های آنالوگ به دیجیتال هستند0 با این تفاسیر می توان گفت که تمام موارد ، از یک سیستم کامپیوتر بزرگ که دارای چندین هارددیسک ، فلاپی درایو و چاپگر است ، تا یک سیستم کامپیوتری تک تراشه¬ای ، در زمره سیستم¬های میکرو کامپیوتری به حساب می¬ آیند0

سیر تکاملی میکرو کنترلرها
اولین میکروکنترلرها در اواسط دهه 1970 ساخته شدند0 این میکروکنترلرها در ابتدا پردازنده های ماشین حساب بودند که دارای حافظه برنامه کوچکی از نوع ROM ، حافظه داده بسیار محدود از نوع RAM و تعدادی درگاه ورودی / خروجی بودند0
با توسعه فناوری سیلیکون ، میکروکنترلرهای 8 بیتی قو یتری ساخته شدند0
در این میکروکنترلرها علاوه بر بهینه شدن دستور العمل ها ، تایمر/ شمارنده روی تراشه¬، امکانات وقفه و کنترل بهینه شدن خطوط I / O نیز به آنها اضافه شده است0 حافظه موجود بر روی تراشه هنوز هم محدود می باشد و در بسیاری موارد کافی نیست0 یکی از پیشرفتهای قابل توجه در آن زمان، قابلیت استفاده از حافظه EPROM قابل پاک شدن با اشعه ماوراء بنفش روی تراشه بود0 این قابلیت ، زمان طراحی و پیاده سازی محصول را به طور محسوسی کاهش داد و نیز برای اولین بار امکان استفاده میکروکنترلرها را در کاربردهایی که حجم تولید پایینی دارند ، فراهم ساخت0
خانواده 8051 در اوایل دهه 1980 توسط شرکت اینتل معرفی گردید0 از آن زمان تا کنون ، 8051 یکی از محبوبترین میکروکنترلرها بوده و بسیاری از شرکتهای دیگر نیز به تولید آن اقدام کرده اند0 در حال حاضر مدل های مختلفی از 8051 وجود دارد که در بسیاری از آنها امکاناتی نظیر مبدل آنالوگ به دیجیتال ، حجم نسبتاً بزرگ از حافظه برنامه و حافظه داده ، مدولاتور عرض پالس ( PWM ) در خروجیها و حافظه فلش ( flash ) که امکان پاک کردن و برنامه ریزی مجدد آن توسط سیگنال های الکتریکی وجود دارد ، تعبیه شده است0
میکروکنترلرها اکنون به سمت 16 بیتی شدن در حرکت هستند0 میکروکنترلرهای 16 بیتی، پردازنده هایی با کارآیی بالا ( نظیر پردازش سیگنال های دیجیتال ) می باشند که در کنترل فرآیند های بلادرنگ و در مواردی که حجم زیادی از عملیات محاسباتی مورد نیاز است ، به کار برده می شوند0
بسیاری از میکروکنترلرها 16 بیتی ، امکاناتی نظیر حجم زیاد حافظه برنامه و حافظه داده ، مبدل های آنالوگ به دیجیتال چند کانالی ، تعداد زیادی درگاه I / O ، چندین درگاه سریال ، عملکردهای بسیار سریع ریاضی و منطقی و مجموعه دستورالعمل های بسیار قدرتمند با قابلیت پردازش سیگنال را دارا می باشند0

 

معماری داخلی میکرو کنترلرها
ساده¬ترین معماری میکرو کنترلر، متشکل از یک ریزپردازنده، حافظه و درگاه ورودی/ خروجی است 0 ریز پردازنده نیز متشکل از واحد پردازش مرکزی ( CPU ) و واحد کنترل (CU ) است 0
CPU در واقع مغز یک پردازنده است و محلی است که در آنجا تمامی عملیات ریاضی و منطقی ، انجام می شود0 واحد کنترل ، عملیات داخلی ریز پردازنده را کنترل می کند و سیگنال های کنترلی را به سایر بخشهای ریز پردازنده ارسال می کند تا دستور العمل های مورد نظر انجام شوند0
حافظه بخش خیلی مهمی از یک سیستم میکروکامپیوتری است 0 ما می توانیم بر اساس به کار گیری حافظه آن را به دو گروه دسته بندی کنیم : حافظه برنامه و حافظه داده 0 حافظه داده ، تمام کد برنامه را ذخیره می کند0 این حافظه معمولاً از نوع حافظه فقط خواندنی (ROM ) می باشد0 انواع دیگری از حافظه ها نظیر EPROM و حافظه های فلش ( EPROM ) برای کاربردهایی که حجم تولید پایینی دارند و همچنین هنگام پیاده سازی برنامه به کار می روند0 حافظه داده از نوع حافظه خواندن / نوشتن ( RAM ) می باشد0 در کاربردهای پیچیده که به حجم بالایی از حافظه RAM نیاز داریم ، امکان اضافه کردن تراشه های حافظه بیرونی به اغلب میکروکنترلرها وجود دارد0
درگاههای ورودی / خروجی ( I / O ) به سیگنال های دیجیتال بیرونی امکان می دهند که با میکروکنترلر ارتباط پیدا کند0 درگاههای I /O معمولاً به صورت گروههای 8 بیتی دسته بندی می شوند و به هر گروه نیز نام خاصی اطلاق می شود0 به عنوان مثال ، میکروکنترلر 8051 دارای 4 درگاه ورودی / خروجی 8 بیتی می باشد که
P3 . P2 . P1 . P0 نامیده می شوند 0 در تعدادی از میکروکنترلرها ، جهت خطوط درگاه I /O قابل برنامه ریزی می باشد0 لذا بیت های مختلف یک درگاه را می توان به صورت ورودی یا خروجی برنامه¬ریزی نمود0 در برخی دیگر از میکروکنترلرها ( ازجمله میکروکنترلرهای خانواده 8051 ) درگاه¬های I / O به صورت دو طرفه می باشند0 هر خط از درگاه I / O این گونه میکروکنترلرها را می توان به صورت ورودی و یا خروجی مورد استفاده قرار داد0 معمولاً ، این گونه خطوط خروجی ، به همراه مقاومتهای pull-up بیرونی به کار برده می شوند 0

 

خانواده 8051
خانواده 8051 یک خانواده میکرو کامپیوتر ( میکروکنترلر ) 8 بیتی تک تراشه ای استاندارد است که بسیار محبوب و عامه پسند می باشد و توسط سازندگان مختلف با قابلیت های متفاوت تولید می گردد0 آی سی استاندارد اصلی که اولین عضو این خانواده می باشد ، 8051 است که یک میکروکنترلر 40 پایه می باشد0 هم اکنون این آی سی با پیکر بندی های مختلف موجود می باشد0 80C51 نوع CMOS و کم مصرف این خانواده است0 8751 دارای حافظه برنامه از نوع EPROM است که عمدتاً در هنگام پیاده سازی به کار برده می شود0
89C51 نیز دارای حافظه فلش قابل برنامه ریزی و پاک شدن (PEROM) است لذا بدون نیاز به پاک کردن با اشعه ماوراء بنفش می توان حافظه برنامه را برنامه ریزی کرد0 8052 عضو بهینه شده این خانواده می باشد و حافظه RAM آن بیشتر بوده و تعداد تایمر / شمارنده آن نیز بیشتر است0 انواع مختلفی از خانواده 40 پایه وجود دارد که دارای مبدل های آنالوگ به دیجیتال ، مدولاتورهای عرض پالس و نظایر آن هستند0 در بخش پایین خانواده 8051 ، میکرو کنترلرهای 20 پایه قرار دارند که از لحاظ کد ، سازگاری کاملی با انواع 40 پایه دارند0 این ادوات 20 پایه برای کاربردهایی با پیچیدگی کمتر که نیاز به خطوط I /O کمتری دارند و نیز برای کاربردهایی که باید مصرف توان کمتری داشته باشند ( مثل سیستم های قابل حمل ) ساخته شده اند0
آی سی های AT89C2051 و AT89C1051 ( ساخت شرکت Atmel ) چنین میکروکنترلرهایی هستند که از لحاظ کد سازگاری کاملی با خانواده 8051 دارند و مصرف توان آنها نیز کمتر است0 جدول 1-1 فهرستی از مشخصات برخی از اعضای خانواده 8051 را ارائه می کند دلایل انتخاب AT89C2051 عبارتند از قیمت ارزان ، توان مصرفی کم ، حجم کوچک (20 پایه) و قابلیتهای زیاد اطلاعات کاملتر در مورد این میکروکنترلرها را می توانید از برگه مشخصات آنها که توسط سازندگان ارائه می شوند استخراج کنید0

 

 

 

 

 

 

 

معماری خانواده 8051
8051 یک میکروکنترلر 8 بیتی با مصرف کم و قابلیت زیاد است0 تعداد زیادی از اعضا خانواده 8051 دارای معماری مشابهی هستند و هر یک از اعضا با اعضای دیگر سازگار می باشند0 قابلیتهای میکروکنترلر 8051 استاندارد به شرح زیر می باشد:
• 4 کیلو بایت حافظه برنامه
• 8 ×256حافظه داده رم
• 32 خط I /O قابل برنامه ریزی
• دو عدد تایمر / شمارنده 16 بیتی
• 6منبع وقفه
• درگاه UART سزیال قابل برنامه ریزی
• قابلیت اتصال به حافظه بیرونی
• بسته بندی 40 پایه استاندارد
انواع دارای EPROM این خانواده ( مثلاً 8751 ) برای پیاده سازی و طراحی به کار برده می شوند و حافظه برنامه آنها را می توان توسط منبع نور ماوراء بنفش پاک کرد0 چیدمان پایه های 8051 استاندارد ، در شکل 1-1 نشان داده شده است0

آی سی AT89C2051 یکی از اعضای ساده تر خانواده 8051 می باشد و برای کاربردهایی که پیچیدگی کمتری دارند ، طراحی شده است0 این آی سی دارای 2 کیلو بایت حافظه فلش قابل برنامه ریزی (PEROM) است که با استفاده از دستگاه برنامه ریزی کننده مناسب می توان این حافظه را پاک کرده ومجدداً برنامه ریزی نمود0 AT89C2051 دارای 128 بایت RAM و 15 خط I / O قابل برنامه ریزی است0 کدی که برای این مدار مجتمع نوشته شود ، روی 8051 استاندارد بدون نیاز به هر گونه تغییری ، کار می کند0 همان گونه که در شکل 2-1 نشان داده می شود ، مدار مجتمع AT89C2051 درون محفظه ای 20 پایه قرار داده شده است0

پیکر بندی پایه ها
توضیحات مربوط به پایه های مختلف به شرح زیر می باشد:
RST
این پایه ورودی ریست می باشد0 این ورودی باید در شرایط عادی ، در وضعیت صفر منطقی قرار گیرد0 قرار دادن پایه RST در وضعیت « 1 » منطقی به مدت حداقل دو سیکل ماشین موجب ریست شدن می شود0 وصل کردن یک خازن و یک مقاومت بیرونی به این پایه موجب می شود که آی سی در هنگام روشن شدن ریست شود ( به شکل 3-1 و 4-1 توجه کنید )0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P3.0
این پایه ، یک پایه I / O دو طرفه است ( بیت صفر درگاه 3 ) و دارای مقاومت
Pull – up داخلی است0 اگر از این آی سی به عنوان UART جهت دریافت داده های سریال استفاده شود ، آنگاه پایه مذکور به عنوان ورودی دریافت داده (RXD) عمل خواهد کرد0

 

P3.1
این پایه ، یک پایه ورودی / خروجی دو طرفه است ( بیت 1 درگاه 3 ) و دارای مقاومت pull-up داخلی است0 هرگاه از این آی سی به عنوان UART برای ارسال سریال داده ها استفاده شود ، آنگاه این پایه ، مشابه خروجی ارسال داده (TXD) عمل خواهد کرد0

 

XTAL 2 و XTAL 1
برای عملکرد نوسان ساز داخلی ، باید به این دو پایه ، کریستال بیرونی وصل شود0 معمولاً مطابق شکل 3-1 و 4-1 دوخازن 33 پیکو فارادی نیز به همراه کریستال وصل می شوند0 سیکل ماشین از تقسیم کردن فرکانس کریستال به عدد 12 به دست می آید ، لذا با کریستال 12 مگاهرتزی ، سیکل ماشین یک میکرو ثانیه خواهد بود0 بسیاری از دستورالعمل ها در یک سیکل ماشین انجام می شوند0
P3.2
این پایه ، یک پایه ورودی / خروجی دو طرفه است (بیت 2 درگاه 3) و دارای مقاومت pull-up داخلی است 0 در ضمن این پایه ، پایه وقفه بیرونی شماره صفر (INT0) نیز می باشد0

 

P3.3
این پایه یک پایه ورودی / خروجی دو طرفه است ( بیت 3 درگاه 3 ) و دارای مقاومت pull-up داخلی است0 در ضمن این پایه ، پایه وقفه بیرونی شماره 1 (INT1) نیز می باشد0
P3.4
این پایه ، یک پایه ورودی / خروجی دو طرفه است (بیت 4 درگاه 3 ) و دارای مقاومت pull-up داخلی است0 در ضمن این پایه ورودی شمارنده صفر (T0) نیز می باشد0
P3.5
این پایه ، یک پایه ورودی / خروجی دو طرفه است(بیت 5 درگاه 3 ) و دارای مقاومت pull-up داخلی است0 در ضمن این پایه ، ورودی شمارنده 1 نیز می باشد0
GND
پایه زمین
P3.6
این پایه ، یک پایه ورودی / خروجی دو طرفه است0 این پایه در AT89C2051 قابل دسترسی نیست0 در آی سی 8051 استاندارد این پایه ، به عنوان پایه نوشتن در حافظه (WR) بیرونی نیز به کار برده می شود0
P3.7
این پایه ، یک پایه ورودی / خروجی دو طرفه است ( بیت 7 درگاه 3 ) در آی سی 8051استاندارد ، این پایه به عنوان پایه خواندن داده ها از حافظه بیرونی (RD) نیز به کار برده می شود0

P1.0
این پایه که بیت صفر درگاه یک می باشد ، یک پایه ورودی / خروجی دو طرفه می باشد0 در آی سی های 20 پایه ، این پایه دارای مقاومت pull-up داخلی نیست0 همچنین در آی سی های 20 پایه ، به عنوان ورودی مثبت مقایسه گر آنالوگ (AIN0) نیز به کار برده می شود0
P1.1
این پایه که بیت 1 درگاه 1 می باشد ، یک پایه ورودی / خروجی دو طرفه می باشد0 در آی سی های 20 پایه ، این پایه دارای مقاومت pull-up داخلی نیست 0 همچنین در آی سی های 20 پایه ، به عنوان ورودی منفی مقایسه گر آنالوگ (AIN1) نیز به کار برده می شود0
P102 تا P1.0
این پایه ها ، باقیمانده پایه های ورودی / خروجی دو طرفه درگاه1 می باشند 0 این پایه ها دارای مقاومت pull-up داخلی هستند0
VCC
ولتاژ تغذیه
P0.0 تا P0.7
این پایه ها ، هشت پایه ورودی / خروجی درگاه صفرآی سی 8051 استاندارد هستند0 این پایه ها دارای مقاومت pull-up داخلی نیستند0 پایه های P0.0 تا P0.7 به منظور ایجاد بیت های پایین آدرس ) A0 تا A7 ) و داده ، در طی خواندن از حافظه برنامه بیرونی و یا در طی دستیابی به حافظه داده بیرونی ، به کار برده می شوند0

 

P2.0 تا P2.7
این پایه ها ، هشت پایه ورودی / خروجی درگاه 2 آی سی 8051 هستند0 این پایه ها دارای مقاومت pull-up هستند0 پایه های P2.0 تا P2.7 به منظور ایجاد بیت های بالای آدرس ( A8تا A15 ) در طی خواندن از حافظه برنامه بیرونی و یا در طی دستیابی به حافظه داده بیرونی ، به کار برده می شوند0

 

EA / VPP
پایه EXTERNAL ACCESS در 8051 استاندارد می باشد0 به منظور اجرای برنامه داخلی میکروکنترلر ، پایه EA باید به VCCوصل شود0 همچنین در طی عملیات برنامه ریزی باید به این پایه ، ولتاژ برنامه ریزی کننده را اعمال کرد0

 


PSEN
پایه PROGRAM STORE ENABLE در 8051 استاندارد موجود می باشد0 این پایه در هنگامی که میکروکنترلرها کدها را از حافظه بیرونی اجرا می کند ، فعال می شود0
ALE / PROGE
پایه ADDRESS LATCH ENABLE در 8051 استاندارد موجود می باشد0 این پایه برای ضبط بایت پایین آدرس در طی دسترسی به حافظه خارجی ، به کار برده می شود0

تایمر(کانتر)
همان طور که می دانیم تایمرها یا کانترها از یک سری فلیپ فلاپ تشکیل شده اند که می توانند به صورت سنکرون و یا آسنکرون باشد0 برای بررسی موضوع مدار زیر را که شمارنده آسنکرون می باشد در نظر بگیرید که در آن خروجی های Q0 الی Q3 به عنوان ارقام اصلی این شمارنده در نظر می گیریم که در این صورت خروجی این شمارنده می تواند از Q3Q2Q1Q0 = 0000 الی Q3Q2Q1Q0 = 1111 تغییر کرده و مجدداً با پالس بعدی کلاک ورودی خروجی شمارنده به صفر برسد اما همزمان با این عمل چون Q3 از یک به صفر می رسد مقدار Q4 نیز یک می گردد ، یعنی یک شدن Q4 می تواند بیان کننده این مطلب باشد که شمارنده به حداکثر مقدار خود رسیده و سپس صفر شده است که اصطلاحاً به آن سرریز شمارنده می گویند0 یعنی در آن مدار خروجی های Q0 الی Q3 به عنوان ارقام شمارش و خروجی Q4 بیان کننده سرریز شمارنده می باشد0
اگر کلاک اعمالی به این شمارنده یک مقدار معین و مشخص باشد در این صورت می توان با در نظر گرفتن مدت زمان سرریز شمارنده زمان های مشخص و معین ایجاد کرد یا اصطلاحاً با این شمارنده زمان را اندازه گیری نمود که در این حالت از شمارنده به عنوان تایمر استفاده کرده ایم0
اما اگر پالس اعمالی به ورودی کلاک شمارنده به وسیله عنصر خارجی ( نظیر عبور یک قطعه از مقابل چشم الکترونیک و ایجاد یک پالس ورودی کلاک ) تعیین شود در این صورت از این مدار به صورت شمارنده یا کانتر استفاده کرده ایم0

 

عملکرد تایمر( کانتر)
عملکرد هر یک از تایمرهای 8051 را می توان به صورت بلوک شکل (2) نشان داد که می توان از آن ، هم به عنوان تایمر و هم شمارنده استفاده کرد0

 

 

 

 

 


همان طور که دیده می شود شمارنده دارای 16 بیت ورودی است که با آن می توان عدد دلخواه را ابتدا در شمارنده قرار داد و همچنین 16 بیت خروجی که عدد شمارنده را نشان می دهد و حداکثر مقدار آن برابر FFFFH یا 65535 می باشد و بعد از FFFFH خروجی به 0000H بر می گردد و در این لحظه بیت سرریز شمارنده فعال می شود ( یک می شود ) 0
منبع ساعت یا ورودی CLOCK این شمارنده می تواند داخلی و با فرکانس معین باشد( به وسیله اسیلاتور داخلی میکروکنترلر ) که در این حالت از شمارنده به عنوان تایمر استفاده می شود0 اما برای حالت شمارنده ورودی کلاک به وسیله پالس های اعمالی توسط عنصر خارجی تأمین می¬شود ( نظیر قطع و وصل شدن یک میکروسوئیچ به وسیله یک قطعه یا عبور یک قطعه از مقابل چشم الکترونیکی و ایجاد پالس و اعمال آن به ورودی کلاک ) برای شمارش حوادث بیرونی به عنوان کانتر استفاده می شود0
در حالت شمارنده فرکانس اعمالی به وسیله عنصر خارجی معلوم می شود و در نتیجه مقدار مشخص و حتی ثابتی نیست اما در حالت تایمری فرکانس اعمالی به مدار شمارنده 1 /12 فرکانس اصلی سیستم میکروپرسسوری می باشد مثلاً اگر کریستالی که برای میکروپرسسور قرار گرفته است 12MHZ باشد آنگاه ( در حالت تایمری ) فرکانس داخلی یا کلاک شمارنده 1MHZاست0
در حالت تایمری با فرض فرکانس 1MHZ برای کلاک شمارنده ( فرکانس سیستم 12MHZ) و با فرض اینکه شمارنده در ابتدا با عدد 59536 بار شده باشد0 مدت زمان لازم برای فعال شدن پرچم سرریز به صورت زیر می باشد0
برای فعال شدن سرریز ، شمارنده باید از عدد 59536 به 65535 ( یا FFFFH ) و سپس به 0000H برگردد که در این صورت تعداد پالس لازم برای این تعداد شمارش برابر است با:
(65535-69536)+1=6000 اما از آنجایی که مدت زمان لازم برای یک پالس 1µ S می باشد (f=1MHZ) پس مدت زمان لازم برای فعال شدن بیت سرریز برابر است با:
6000×1µS= 6msec
اگر فرکانس اصلی سیستم 6MHZ باشد برای تولید مدت زمان 20msec ( مدت زمان لازم برای فعال شدن پرچم سرریز ) عددی که باید در شمارنده قرار گیرد به صوررت زیر می باشد0
= 6MHZ / 12 = 0.5 MHZ فرکانس تایمر
= 1/0.5MHZ = 2 مدت زمان لازم برای یک پالس سرریز
= 20 ms/2 µs = 1000 تعداد پالس های لازم برای یک پالس سرریز
یعنی شمارنده باید با عدد ( -1000 ) یا ( D8F0H ) پر می شود0

 

ثبات حالت تایمر (TMOD) و کنترل تایمر (TCON)
ثبات حالت تایمر (TMOD) :
این ثبات که جزو ثبات های SFR با آدرس بایت 89H است بیت آدرس پذیر نبوده و شامل 8 بیت جهت تعیین وضعیت تایمرهای شماره صفر و یک میکروکنترلر می باشد0 ( 4 بیت با ارزش برای تایمر یک و 4 بیت کم ارزش برای تایمر صفر)
که اکنون به به توضیح هر یک از این بیت ها می پردازیم:

 


GATE
(بیت 7) : اگر این بیت 1 باشد در این صورت تایمر فقط وقتی که 1NT1 فعال باشد کار می کند (برای حالتی به کار می رود که بخواهیم فاصله زمانی بین دو پالس را اندازه بگیریم)0 اگر این بیت صفر باشد کار عادی تایمر انجام می شود0
C/T (بیت6): اگر این بیت یک باشد به صورت شمارنده عمل می کند ( که در این حالت فرکانس مدار تایمر شماره 1 میکروکنترلر به وسیله عنصر خارجی تعیین می شود ) این فرکانس به پایه 15 میکروکنترلر ) T1 یا P3.5 ) اعمال می گردد و اگر این بیت صفر باشد ورودی CLOCK شمارنده به فرکانس داخلی آی سی وصل شده و تایمر به صورت زمان سنج یا تایمر عمل می کند0 بیت¬های M1.M0 : به حالت شمارنده معروفند که باعث می شود تا تایمر یکی از 4 حالت زیر را پیدا کند0
برای تطبیق یا 8048 که تایمر به صورت 13 بیتی عمل می کند M1M0 = 00 تایمر به صورت 16 بیتی عمل می کند M1M0 = 01 تایمر به صورت 8 بیتی با بار شدن خود به خودM1M0 = 10 تایمردو قسمت می¬شود وهر تایمر به صورت دو تایمر8 بیتی عمل میکندM1M0 = 11
که نمایش عملکرد بلوکی تایمر در هر یک از چهار مد بالا به صورت زیر است 0

 

 

 

 

 

 

 

 

 

 

 


حال به تشریح هر یک از حالتهای زیر می پردازیم :
حالت ( M1M0 = 00 ) 0 : در این حالت تایمر ( شمارنده ) به یک شمارنده 13 بیتی تبدیل می شود که جهت سازگاری 8051 با میکروکنترلر قبل از آن 8048 می باشد که دراین حالت 5 بیت کم ارزش تایمر (TLX) به همراه 8 بیت باارزش تایمر (THX) تشکیل یک تایمر 13 بیتی می دهد و از 3 بیت با ارزش بایت کم ارزش تایمر استفاده نمی شود0
حالت (M1M0=01) 1: در این حالت تایمر ( شمارنده ) به صورت یک شمارنده 16 بیتی عمل کرده که با آمدن پالس تایمر شروع به افزایش می کند و در هنگام گذر از FFFFH به 0000H پرچم سرریز تایمر را فعال (1 ) می کند و تایمر به شمردن ادامه می دهد که وظیفه برنامه نویس است که با توجه به فعال شدن TFX تصمیم لا زم را اتخاذ کند0
حالت (M1M0=10)2 : در این حالت بایت با ارزش تایمر به عنوان یک مقدار برای بارگیری مجدد و بایت کم ارزش تایمر ( شمارنده ) به عنوان یک شمارنده 8 بیتی عمل می کند که هنگام گذر عدد از FFH به 00Hبیت سرریز را یک می کند و همزمان با یک کردن پرچم سرریز محتوای 8 بیت با ارزش تایمر ( THX ) به بایت کم ارزش ( TLX ) که نقش شمارنده را بازی می کند منتقل می گردد و دیگر لازم نیست درهر بار سرریز برنامه نویس این کار را انجام می دهد0
لذا بر عهده برنامه نویس است که قبلاً عدد مناسب را در THX قرار دهد0 ( به اصطلاح عدد دهی شود )
حالت ( M1M0=11)3 : حالت تایمر تفکیک شده در این حالت تایمر صفر به دو تایمر مجزای 8 بیتی تبدیل می شود که یکی تایمر 8 بیتی TL0 در گذر از FFH به 00H پرچم TF0 را فعال می کند و تایمر دوم ( 8 بیت دوم ) همان بایت باارزش تایمر صفر یا TH0 می باشد که در گذر از FFH به 00H بیت سرریز تایمر یا TF1 را فعال می کند یعنی در این مد پرچم سرریز تایمر یک نمی تواند از آن استفاده کند0
تذکر: در این مد اگر چه TF1 در اختیار تایمر شماره 1 نیست اما تایمر 1 می تواند به عنوان یک شمارنده عمل کند ولی دیگر TF1 را متأثر نمی کند0
TF0 و TF1( پرچم های سرریز دو تا یمر یا TFX ) دو بیت از بیت¬های ثبات کنترلی تایمر (TCON) بوده که به توضیح آن می پردازیم0

 

 

 

فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد

تعداد صفحات این مقاله  44  صفحه

پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید

 


دانلود با لینک مستقیم


دانلود مقاله میکروکنترلر
نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.