نمايش ساعت و تاريخ بر روي تابلوروان - توسط ميكرومنترلر ATmega8
 

 

دوست گرامي ، در اين مدت كه از شروع آموزش ساخت تابلوروان گذشته شما به يك فرد صاحب نظر در زمينه تابلوروان تبديل شده‌ايد. و استقبال خوب شما دوستان باعث شده كه هم اكنون اين سايت به معتبرترين سايت در زمينه مباحث تابلوروان تبديل شود. بطوريكه اگر شما كلمه تابلو روان  را در گوگل Google جستجو كنيد، اولين گزينه معرفي شده از سوي اين موتور جستجوي معتبر سايت بنده است. كه نشان ميدهد حتي Google هم اين سايت را بعنوان معتبرترين سايت در زمينه تابلوروان ميداند.

 

ساعت ديجيتال و تقويم بر روي تابلو روان توسط ATmega8 |  طراحي شده توسط مهندس لاچيني

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

در ميكروكنترولرهاي AVR بصورت سخت افزاري سيستم محاسبه ساعت و تقويم واقعي وجود دارد كه با استفاده از يك كريستال ساعت كه فركانس آن برابر 32768 Hz  است و به پايه هاي TOSC1 , TOSC2 ميكرو متصل ميشود زمان را محاسبه ميكند. و شما توسط دستورات بسكام براحتي ميتوانيد آنرا تنظيم كرده و يا مقدار ساعت و تاريخ را بخوانيد.همچنين از RTC جهت ايجاد وقفه يك ثانيه نيز ميتوان استفاده كرد.

من هم در برنامه خودم از وقفه يك ثانيه اين تايمر استفاده كردم. در اين برنامه از يك آرايه 25 تايي هم بعنوان بافر استفاده كردم. بدين شكل كه اطلاعات نمايشي مربوط به دات ماتريكس درون وقفه يك ثانيه محاسبه كرده و درون اين بافر ذخيره كردم. و سپس درون حلقه DO-LOOP مقادير آنرا بروي دات ماتريكس تابلوروان منتقل كردم.

به عبارت ديگر در حلقه اصلي برنامه فقط جاروب تابلوروان انجام ميشود و مانند برنامه هاي قبل محاسبه اطلاعات در آن انجام نميشود. و محاسبه اطلاعات در هر وقفه يك ثانيه انجام ميشود كه  به دليل اينكه احتمال تغيير ساعت و تاريخ در هر يك ثانيه يكبار است.

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

 

'*********************************************
'* This Program Writing By : Hossein Lachini *
'* Date & Clock with RTC on LED Sign Board   *
'* For to get more details visit :           *
'*                    www.HLachini.com       *
'* Contact to me by : eLachini@Gmail.com     *
'* Mobile/SMS :       +98 912 381 2060       *
'*********************************************
$regfile = "m8def.dat"
$crystal = 1000000

Config Portd = Output
Config Portb = Output
Config Portc = Output

Config Clock = Soft
Enable Interrupts
Time= "17:40:00"
Date= "11/18/07"

Declare Sub Sectic

Dim A As Byte
Dim Scan As Byte
Dim Index As Byte
Dim I As Byte
Dim S As Byte
Dim C As Word
Dim Buf(25) As Byte

Const Sc_wait = 1

Portc = &HFF

= _sec

 For Index = 0 To 3
  Buf(index + 11) = Lookup(index , Dot)
 Next Index


Do

 If S <> _sec Then Call Sectic
 Scan = &HFE
 For Index = 1 To 6

  Portd = Buf(index )
  Portc.= 1
  Portc.= 0

  Portd = Buf(index + 8)
  Portc.= 1
  Portc.= 0

  Portd = Buf(index + 16)
  Portc.= 1
  Portc.= 0

  Portb = Scan
  Rotate Scan , Left , 1
  Waitms Sc_wait
  Portb = &HFF

 Next Index



  Portd = Buf()
  Portc.= 1
  Portc.= 0

  Portd = Buf(15)
  Portc.= 1
  Portc.= 0

  Portd = Buf(23)
  Portc.= 1
  Portc.= 0

  Portc.= 0
  Waitms Sc_wait
  Portc.= 1



  Portd = Buf()
  Portc.= 1
  Portc.= 0

  Portd = Buf(16)
  Portc.= 1
  Portc.= 0

  Portd = Buf(24)
  Portc.= 1
  Portc.= 0

  Portc.= 0
  Waitms Sc_wait
  Portc.= 1



Loop

End                               'end program


Sub Sectic:

= _sec
= _sec Mod 15
If C < 8 Then

 For I = 0 To 3
  C = _sec Mod 2
  If C = 0 Then
   Buf(+ 11) = Lookup(, Dot)
  Else
   Buf(+ 11) = 0
  End If
 Next I

 For I = 0 To 4

  A = _hour / 10
  A = A * 5
  A = A + I
  Buf(+ 1) = Lookup(, Font)

  A = _hour Mod 10
  A = A * 5
  A = A + I
  Buf(+ 6) = Lookup(, Font)

  A = _min / 10
  A = A * 5
  A = A + I
  Buf(+ 15) = Lookup(, Font)

  A = _min Mod 10
  A = A * 5
  A = A + I
  Buf(+ 20) = Lookup(, Font)

 Next I

Else

 For I = 0 To 3
  Buf(+ 11) = Lookup(, Lin)
 Next I

 For I = 0 To 4
  A = _month / 10
  A = A * 5
  A = A + I
  Buf(+ 1) = Lookup(, Font)

  A = _month Mod 10
  A = A * 5
  A = A + I
  Buf(+ 6) = Lookup(, Font)

  A = _day / 10
  A = A * 5
  A = A + I
  Buf(+ 15) = Lookup(, Font)

  A = _day Mod 10
  A = A * 5
  A = A + I
  Buf(+ 20) = Lookup(, Font)
 Next I

End If

End Sub

Font:
Data &H00 , &H3E , &H41 , &H41 , &H3E             '0
Data &H00 , &H21 , &H7F , &H01 , &H00             '1
Data &H00 , &H23 , &H45 , &H49 , &H31             '2
Data &H42 , &H41 , &H51 , &H69 , &H46             '3
Data &H0C , &H14 , &H24 , &H7F , &H04             '4
Data &H72 , &H51 , &H51 , &H51 , &H4E             '5
Data &H1E , &H29 , &H49 , &H49 , &H06             '6
Data &H40 , &H47 , &H48 , &H50 , &H60             '7
Data &H36 , &H49 , &H49 , &H49 , &H36             '8
Data &H30 , &H49 , &H49 , &H4A , &H3C             '9
Dot:
Data &H00 , &H36 , &H36 , &H00 , &H00             ':
Lin:
Data &H00 , &H08 , &H08 , &H00 , &H00             '-
 

 

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

Í

جهت دانلود فایلهای فوق اینجا کلیک کنید.

حجم فایل : 38 کیلو بایت

فرمت فایل Zip

 

نمايش ساعت و تقويم بر روي تابلوروان طراحي شده توسط ميكروكنترولر ATmega8

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

 دوستان عزیز در صورت داشتن هر گونه سئوال و پیشنهادی شما میتوانید از طریق انجمن سایت به آدرس زیر با ما مطرح کنید:

http://www.hlachini.com/forum-1.html

 

اين سايت آمادگي دارد كه مشاوره ، طراحي ، ساخت پروژه هاي صنعتي و دانشگاهي را به انجام رساند. لذا ميتوانيد از طريق تلفن 09123812060 و يا ايميل با ما تماس حاصل كنيد.

جهت ادامه مطلب تابلو روان اینجا کلیک کنید.