شمارنده صعودی دو رقمی ۰ تا ۹۹ و نمایش آن در ۷-seg

در این مطلب می خواهیم برنامه یک شمارنده صعودی دو رقمی بدون کنترل را طراحی کنیم و آن را به ۷-seg متصل کنیم تا اعداد را نمایش دهد. برنامه را با استفاده از نرم افزار Bascom می نویسیم و از میکرو ATmega32 استفاده می کنیم،

همچنین دو عدد ۷-seg معمولی به میکرو متصل می کنیم به این صورت که هر کدام از ۷-seg ها به پورت مجزا متصل می شود، این کار از جهت برنامه نویسی بسیار ساده و آسان است ولی مشکلات خود را نیز دارد.

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

 

مطابق همیشه اولین کاری که باید قبل از برنامه نویسی انجام داد بستن سخت افزار است. بنابراین برای این کار ما یکی از ۷-seg ها را به پورت A و دیگری را به پورت B متصل می کنیم.(این کار اختیاری است و شما می توانید ۷-seg ها را به پورت دیگری وصل کنید.)

ترتیب اتصال پایه ها مطابق مطلب قبلی (برنامه شمارنده صعودی ۰ تا ۹ و نمایش آن در ۷-seg) می باشد. بنابراین به این صورت که پایه a نمایشگر اول(یکان) به PortA.0  و به همین ترتیب پایه g نمایشگر اول(یکان) به PortA.6 میکرو متصل می کنیم همچنین پایه a نمایشگر دوم(دهگان) به PortB.0 و به همین ترتیب پایه g نمایشگر دوم(دهگان) به PortB.6 میکرو متصل می کنیم.

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

 

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

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

همچنین باید در این قسمت دو پورت مربوط به ۷-seg را به عنوان خروجی تعریف نمود.

 

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

یک متغیر به نام x تعریف کرده ایم که همان عدد ما است و متغیر z نیز به عنوان متغیر میانی می باشد.

 

شروع برنامه اصلی و انجام شمارش و نمایش آن

برای جداسازی رقم یکان از دهگان روش های مختلفی وجود دارد ولی یکی از ساده ترین روش ها، روشی است که ما در اینجا از آن استفاده کرده ایم به صورتی که ابتدا عدد را بر ۱۰ تقسیم می کنیم و در متغیر دهگان ذخیره می کنیم(توجه داشته باشید، زمانی که عدد بر ۱۰ تقسیم می شود قسمت اعشاری دارد ولی به دلیل اینکه ما متغیر dahgan را از نوع بایت(byte) تعریف کرده ایم قسمت اعشاری عدد را حذف و فقط قسمت صحیح عدد تقسیم شده را در داخل متغیر dahgan ذخیره می کند.)

سپس متغیر dahgan را در ۱۰ ضرب و سپس حاصل را از عدد اصلی کم می کنیم.

به طور مثال زمانی که شمارنده به ۵۷ می رسد متغیرها به صورت زیر مقدار دهی می شوند:

x=57

dahgan=5

z=50

yekan=7

 

و در نهایت جدول دیتای خروجی نوشته می شود.

 



[ برچسب ها ] : , , , , , , , , ,
ارسال شده در : بخش الکترونیک
نظر شما در مورد اين پست چيست ؟

دیدگاه خود را به ما بگویید.

 
 
  دکتری تخصصی برق الکترونیک
طراح مدارهای الکترونیکی
برنامه نویس انواع میکروها
مشاوره و اجرای لینک های وایرلس
پیاده سازی سیستم های مبتنی بر شبکه
E_mail: electronic@sabzelco.ir
Tel: 09150462401
توسعه دهنده برنامه های سمت سرور

طراحی و برنامه نویسی سایت و پرتال های حرفه ای

E_mail: computer@sabzelco.ir
Tel: 09371974233