بخشی از مقاله

میکروکنترلر


فهرست مطالب
عنوان صفحه
مقدمه 1
سير تكاملي ميكروكنترلرها 4
معماري داخلي ميكروكنترلرها 5
خانواده 8051 7
پيكر بندي پايه ها 12
تايمر 20
جريان و مقاومت در ميكرو كنترلرها 29
عملكرد تابلو روان 31
نحوه نمايش در تابلو به صورت ثابت 31
روش جاروب كردن 33
روش شيفت دادن 36
بررسي چگونگي نمايش بر روي دات ماتريكس 38
LED هاي دورنگ 40


زمان روشن بودن 40

مقدمه
ميكروكنترلر در واقع يك ريز پردازنده تك تراشه اي است كه شامل حافظه داده ، حافظه برنامه ، ورودي و خروجي سريال و موازي ، تايمرها ، وقفه هاي بيروني و داخلي مي باشد كه تمامي آنها روي يك تراشه واحد مجتمع شده اند و مي توان آن را به قيمتي كمتر از 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
در حالت شمارنده فركانس اعمالي به وسيله عنصر خارجي معلوم مي شود و در نتيجه مقدفركانس اصلي سيستم ميكروپرسسوري مي باشد مثلاً اگر كريستالي كه براي ميكروپرسسور قرار گرفته است 12MHZ باشد آنگاه ( در حالت تايمري ) فركانس داخلي يا كلاك شمارنده 1MHZاست0
در حالت تايمري با فرض فركانس 1MHZ براي كلاك شمارنده ( فركانس سيستم 12MHZ) و با فرض اينكه شمارنده در ابتدا با عدد 59536 بار شده باشد0 مدت زمان لازم براي فعال ش

دن پرچم سرريز به صورت زير مي باشد0
براي فعال شدن سرريز ، شمارنده بايد از عدد 59536 به 65535 ( يا FFFFH ) و سپس به 0000H برگردد كه در اين صورت تعداد پالس لازم براي اين تعداد شمارش برابر است با:شد (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

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید