امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
برنامه تبديل تاريخ ميلادي به شمسي به زبان اسمبلي 8051
نویسنده پیام
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #1
برنامه تبديل تاريخ ميلادي به شمسي به زبان اسمبلي 8051
این برنامه تاریخ میلادی را به تارخ شمسی تبدیل کرده و به زبان اسمبلی 8051 نوشته شده است. این برنامه تاریخ میلادی را به تارخ شمسی تبدیل کرده و به زبان اسمبلی 8051 نوشته شده است (سال 1378) و حدود 850 بایت حافظه FLASH میکرو را اشغال میکند ضمنا 8 بایت از حافظه RAM و 2 بیت از آن را بعنوان چرکنویس اختیار میکند.

برای وارد کردن اطلاعات تاریخ میلادی کافیست اطلاعات مورد نظر شامل روز و ماه و 2 رقم اول سال میلادی را به فرمت BCD در خانه های مورد نظر و با همان اسامی یعنی DAY,MONTH,YEAR در RAM وارد نمائید که در ابتدای برنامه اسمبلی مورد نظر نیز تاریخ 2007/12/13 بعنوان مثال و برای تست بصورت زیر وارد شده است:

کد php:
mov YEAR,#07h
mov MONTH,#12h
mov DAY,#13h 
سه خط دستور فوق میبایست در برنامه اصلی کاربر حذف شده وبجای آن بعنوان مثال خروجی قرائت تاریخ از RTC قرار گیرد که تقریبا تمامی آی سی های RTC اعداد تاریخ وزمان را به فرمت (Binary-Coded Decimal(BCD ارائه میدهندونیازی به نوشتن روتین های تبدیل فرمت نیست.

سابروتین تبدیل تاریخ میلادی به شمسی در برنامه اسمبلی با نام CONVERT_DATE بوده و اطلاعات تبدیل شده را در همان آدرسهای ورودی مینویسد ضمن آنکه این اطلاعات در رجیسترهای R5,R6,R7 نیز کپی شده است.
کاربر میتواند آدرس های اختصاص یافته در این برنامه را مطابق برنامه اصلی خود تغییر دهد. همچنین اطلااعات تاریخ شمسی به فرمت BCD بوده و به راحتی قابل نمایش بر روی LCD یا نمایشگر طرحتان میباشد در صورتیکه نیاز به تبدیل فرمت این اطلاعات باشید میتوانید از سابروتین (BTOH (BCD TO HEX که درانتهای برنامه اسمبلی موجود است استفاده نمائید(این سابروتین در برنامه تبدیل مورد نیاز نیست).
برنامه فوق تا سال 1399 شمسی را محاسبه کرده و برای سالهای 1400 شمسی به بالاتر اگر دو رقم قرن یعنی 14 مد نظر نباشد بازهم بدرستی محاسبه میکند که میتوان عدد قرن رادر زمان نمایش اطلاعات شمسی روی صفحه نمایش به انتهای آن صوری اضافه نمود.(چند خط اضافه اسمبلی میخواهد)[بیشتر آی سی های RTC همظاهرا فقط 2 رقم اول یعنی سال را نگهداری و ارائه میدهند)
برنامه با نام MILADY TO SHAMSY در فایل ارسالی موجود است ضمنا یک برنامه ویژوال هم از یک سایت برای تبدیل تاریخ هابه یکدیگر اخذ کردم که برای تست و چک مثالهای دلخواه برنامه اسمبلی خیلی مناسب است که آدرس سایت متأسفانه یادم نیست (که حواله بدهم) از نویسنده آن اقای مهرداد حقیقی تشکر میکنم.
ضمنا در نوشته دیگری برخی از موارد ونکات تبدیل تاریخ ها به یکدیگر را ارسال خواهم نمود.


موفق باشید
سید مصطفی موسوی ویری - مهندس - فارغ التحصیل سال 1372 از دانشکده الکترونیک دانشگاه پلی تکنیک تهرآن


فایل‌(های) پیوست شده
.zip   Milady TO Shamsy Files.zip (اندازه: 46.19 KB / تعداد دفعات دریافت: 234)
(آخرین ویرایش در این ارسال: ۲۲-مهر-۱۳۹۱, ۱۸:۱۱:۵۳، توسط babyy.)
۲۲-آذر-۱۳۸۶, ۰۹:۳۳:۴۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig, t3r!p3000


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  برنامه تبدیل تاریخ میلادی به شمسی به زبان اسمبلی AVR وC ha_60 3 9,368 ۱۵-فروردین-۱۳۹۳, ۱۱:۱۰:۲۷
آخرین ارسال: lord_viper
  ساعت با تايمر لجوج ، ترموستات و نمايش تاريخ شمسي با AVR ha_60 8 13,571 ۲۰-خرداد-۱۳۹۲, ۱۸:۰۸:۳۱
آخرین ارسال: sky_man847
  بازی شطرنج با انواع میکروکنترلرهای avr ، pic و 8051 omid_phoenix 11 15,995 ۲۳-مهر-۱۳۹۱, ۰۰:۴۹:۴۶
آخرین ارسال: omid_phoenix
  رابط IDE برای میکروی 8051 ha_60 1 3,087 ۲۴-آذر-۱۳۸۶, ۰۹:۰۵:۳۲
آخرین ارسال: ha_60

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS