شمارنده دو رقمی با 8051 و زبان اسمبلی

با سلام خدمت دوستان

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

با استفاده از میکرو ۸۰۵۱ و زبان اسمبلی یک شمارنده دو رقمی می خواهم که یک کلید برای شروع شمارش داشته باشه و بعد از فشار دادن کلید هر یک ثانیه یک واحد به شمارنده اضافه بکنه و تا به عدد ۹۹ رسید شمارنده ریست شود و دو باره با فشار دادن کلید میکرو شروع به شمارش کند.

نوع فایل: ZIP

پسورد: mc8051.blogfa.com  (به کوچک بودن حروف دقت نمایید).

دانلود

چشمك زن با وقفه 0 بيروني Interrupt

با سلام خدمت دوستان

دوست عزيزي گفته بود كه يك برنامه مي خوام كه هر وقت يك وقفه بيروني براي ميكرو صادر شد ميكرو يك LED را روشن و خاموش كند.

برنامه به زبان اسمبلي

نقشه مدار:

چشمك زن با وقفه

براي نمايش تصوير با وضوح بيشتر اينجا كليك كن

راه اندازي استپ موتور با 8051  (STEPER MOTOR)

امروز مي خوام در مورد STEPER MOTOR و نحوي اتصال اون به ميكرو 8051 رو به شما آموزش بدم همراه با برنامه و مدار اون. استپ موتور با آيسي راه انداز L298 مي باشد.

ابتدا جدول حركت استپ موتور:

خلاف جهت ساعت

سيم پيچ D

سيم پيچ C

سيم پيچ B

سيم پيچ A

پله

در جهت ساعت

0

0

0

1

1

0

0

1

0

2

0

1

0

0

3

1

0

0

0

4

اصول راه اندازي استپ موتور به اينگونه مي باشد:

ادامه نوشته

ماشین حساب ساده با 8051

با عرض سلام خدمت تمامی دوستان

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


يكي از دوستان گفته بود كه يه كمي درباره متغييرها و پايه RST توضيح بدم! كه منم يه توضيح مختصر دادم

توضيح برنامه:

در ابتداي برنامه من اومدم چند تا متغيير تعريف كردم يعني مثلا من گفتم مي خوام كه A1 همون خونه 40H باشه به جاي اينكه تو برنامه بيام و بنويسم 40H فقط نام متغيير يعني A1 رو مي نويسم.

حال اين متغير هاي براي چي هستند؟

متغير هاي A1,A2, براي براي نگهداري اولين، دو عدد وردي ما هستند و B1,B2‌ هم براي نگهداري دومين، دو عدد ورودي ما هستند. از همه مهم تر متغير POL هست كه خونه 20H مي باشد و همتنطور كه مي دانيم از رنج 20 تا 2F محدود بيتي و باتي هستند يعني اينكه ما هم مي تونيم به عنوان بيت و هم بايت ازش استفاده كنيم كه من از بيت دوم آن POL.1=20H.1 استفاده كرده ام. حال وظيفه اين بيت چيست؟ اين برنامه مي تونه تا حداكثر دو عدد از ورودي بخونه براي عمليات قبل از جمع يا تفريق و دو عدد هم بعد از جمع يا تفريق. حالا شايد شما بخواهيد 1 رو بعلاوه 23 كنيد مي بينيم كه عدد 1 يك عدد تك رقمي ميباشد كه نه دو رقمي وظيفه اين بيت POL1 در اينجا اينكه اگه ما يك عدد 1 راوارد كردم و بعد كليد + يا – را زديم اين بيت 1 مي شود و ديگه اجازه نميده كه عدد بعدي در A2 قرار بگيره يعني عدد 2 ميره تو B1 و عدد 3 هم ميره تو B2 . اين از وظيفه POL

متغير هاي TEMP1 , TEMP2  هم متغيير هاي موقت ما هستند كه اعداد ورودي به صورت موقت درونشون نگداري ميشه يعني اينكه شما همون جمع بالا رو در نظر بگيريد مگه اولين دو عدد ما همون 01 نميشه خوب دومين عد ما يعني 23 هست كه 2 با ارزش تر از 3 هست و اولين رقمي هم هست كه ميكرو دريافت ميكنه حالا من اومدم و اين دو عدد كه هر كدوم تو يه ثبات 8 بيتي بود رو تركيب كردم يعني عدد 23 رو تو يه ثبات جاي دادم كه اين كار رو شما مي تونيد به كمك دستور SWAP و دستور ORL انجام دهيد. به اين صورت كه اواين رقم ما 2 هست پس به كمك SWAP اون به سمت چپ يعني نيبل با ارزش انتقال ميديم حالا عدد 3 رو با اون OR مي كنيم و نيجيه اون يك عدد BCD فشرده خواهد شد. كه از TEMP1 ,TEMP2 براي اين كار استفاده كرديم.

يه نكته مهم:

وقتي ما دو عدد BCD فشرده رو با هم جمع مي كنيم ممكنه كه ديگه حاصل جمع ما BCD‌ نباشه كه براي اينكار از دستور DA   A استفاده مي كنيم اين دستور به طور اتوماتيك عدد 6 رو به نيبل پايين يا بالا اضافه ميكنه تا عدد به BCD تبديل بشه.

براي تفريق هم همين مشكل ممكنه پيش بياد كه بايد 6 واحد از نيبل پايين يا بالا كم كنيم كه من با گذاشتن يه شرط براي اون اگه BCD‌نبود به كمك دستور DEC يعني 6 تا از اين دستور مي تونيم اين كار ور انجام بديم.

در ضمن اگر نتيجه حاصل تفريق ما يك عد منفي بود 8051 اين حاصل تفريق رو به صورت متمم 2 رها مي كنه كه ما مي تونيم به كمك پرچم CY=1  به منفي بودن حاصل تفريق پي ببريم. يعني اينكه اگه CY=1 شد CPU اين عدد رو به صورت ممتم 2 رها مي كنه و ما به كمك اين پرچم خودمون بايد درستش كنيم يعني ابتدا ما اين عدد رو متمم مي كنيم كه دستور CPL اين كار رو انجام ميده و بعد از اون هم بايد يك واحد بهش اضافه كنيم كه با دستور  INC‌اين كا رو انجام ميديم ويك LED رو هم روشن مي كنيم كه نشان دهند منفي بودن نتيجه عمليات بوده.

در مورد پايه RST : اين پايه با مدار ريستي كه دورش براي ريست كردن دستي ميكرو هست. مثل همون دكمه ريست كامپيوتر هست.!

ماشين حساب ساده دو رقمي با 8051

براي وضوح بيشتر روي عكس يا اينجا كليك كنيد

دانلود فايلها (حجم ۷۲ كيلو بايت)

پسورد: mc8051.blogfa.com

اتصال کیبورد 4×4 و ال سی دی به 8051 (keyboard and LCD)

سلام

اين برنامه را به درخواست يكي از دوستان نوشتم:

عملكرد برنامه: با استفاده از يك كيبورد 4*4 و يك نمايشگر ال سي دي و اتصال آن به 8051 مي خواهيم با وارد كردن هر عددي از كيبورد آن عدد روي ال سي دي نمايش داده شود.

اتصال كيبورد و ال سي دي به 8051

براي وضوح بيشتر روي عكس يا اينجا كليك كنيد.

 دانلود برنامه و مدار

برنامه به زبان اسمبلي و از كامپايلر Keil و پروتيوس 7.2 استفاده شده. ميكرو استفاده شده 89c51 مي باشد.

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

با تشكر

تولید اعداد طبیعی با چهار بیت و نمایش روی 4 تا 7 سگمنت

با عرض سلام خدمت تمامی دوستان

این همه دانلود می کنید و وبلاگ رو میگردید یه نظر هم بدید!!!

یکی از دوستان يه برنامه درخواست کرده بود با عملکرد زیر:

 با استفاده از چهار بیت (چهار تا کلید) بتوانیم اعداد ۰ تا ۹ را ایجاد کرده و بعدا طی چهار مرحله یکی یکی این اعداد را به سون سگمنت ها بفرستیم.یعنی اینکه اگر ما اولین عدد را عدد ۱ وارد کردیم این عدد روی با ارزش ترین سون سگمنت قرار بگیرد. بعد اگر عدد دوم مثلا ۳ را وارد کردیم روی سون سگمنت ۲ نمایش داده بشه و اگر عدد ۸ را وارد کردیم روی سگمت ۳ و اگر ۷ را وارد کردیم روی سگمنت ۴ و بعد اگر عدد پنجم را وارد کردیم این عدد جایگزین سگمن اولی شود. ۱۳۷۸

تولید اعداد طبیعی با چهار بیت و نمایش روی 4 تا 7 سگمنت

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

من برنامه رو به دو صورت نوشتم:

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

دانلود   پسورد: mc8051.blogfa.com

دومي: عملكرد اين مدار به اين گونه هست كه وقتي شما بيت ها را براي عدد مورد نظز تنظيم كرديد بايد كليدي به نام enter را بزنيد تا عدد نمايش داده شود. و بعد از اينكه دستان را از روي اين كليد برداشتيد دوباره ميكرو منتظر مي ماند تا شما عدد را با بيت ها بسازيد و بعد دوباره اين كليد را فشار دهيد.

دانلود   پسورد:  mc8051.blogfa.com 

کدام زبان و کدام میکروکنترلر

با عرض سلام خدمت دوستان

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

نظر خودتان در اين پست ثبت كنيد.

زبان ‍C

زبان بيسيك

زبان اسمبلي

ميكرو 8051

ميكرو PIC

ميكرو AVR

نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟

شمارنده 4 رقمي (اسمبلي 8051)

با عرض سلام خدمت دوستان

برنامه درخواستي دوست عزيزي به شرح زير مي باشد:

من ميخوام يه برنامه بنويسم كه يه عدد ثابت مثل 1300 رو در ابتدا روي 4 تا سون سگمنت نشون بده و بعد هر يك ثانيه يكبار يكي به اون اضافه كنه.
ممنون ميشم اگه كمك كنيد.ضمنا من با 8951 كار ميكنم.

شمارنده 4 رقمي (اسمبلي 8051)

براي مشاهد تصوير با وضوح بيشتر روي عكس يا اينجا كليك كنيد.

از  Proteus 7.2 Professional و كامپايلر keil استفاده شده است.

نوع فايل: ZIP

دانلود فایلها ==> لینک دانلود اصلاح شد.

دانلود از سرور جدید

پسورد: www.mc8051.blogfa.com  (به كوچك بودن حروف دقت نماييد)

فركانس 1 هرتز

سلام

يكي از دوستان كه تازه وارد يه برنامه خواسته كه يك LED روي يكي از پايه هاي 8051 وصله به مدت .5 ثانيه روشن باشد و .5 ثانيه خاموش.

دوست عزيز برنامه رو برات نوشتم همراه با فايل هاي شبيه سازي در پروتيوس من از اين برنامه ها استفاده كرده ام:

از كامپايلر 8051IDE براي راحتي شما استفاده كردم.

برنامه هم با Proteus 7.2 Professional مي باشد.

دانلود برنامه

 

شمارنده سه رقمی همراه با بوق

با عرض سلام خدمت تمامی دوستان

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

{من ازت کمک میخوام راجب شمارنده با 8051. میخوام هر 10 نفر که میشمره یه بوق 4 ثانیه بزنه بعدش دوباره بره عدد بعد.مرسی}

من هم درخواست دوست عزیزمان را به شکل زیر انجام دادم.

شمارنده سه رقمي همراه با بوق

براي مشاهد تصوير با وضوح بيشتر روي عكس يا اينجاكليك كنيد.

نمايش برنامه در قالب txt

دریافت کد هگز در قالبtxt

دریافت كليه فايل ها