دوست گرامي ، در اين مدت كه از شروع آموزش ساخت تابلوروان گذشته شما به يك فرد صاحب نظر در زمينه تابلوروان تبديل شدهايد. و استقبال خوب شما دوستان باعث شده كه هم اكنون اين سايت به معتبرترين سايت در زمينه مباحث تابلوروان تبديل شود. بطوريكه اگر شما كلمه تابلو روان را در گوگل Google جستجو كنيد، اولين گزينه معرفي شده از سوي اين موتور جستجوي معتبر سايت بنده است. كه نشان ميدهد حتي Google هم اين سايت را بعنوان معتبرترين سايت در زمينه تابلوروان ميداند.
در اين مقاله شما با :
در ميكروكنترولرهاي 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
S = _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.3 = 1
Portc.3 = 0
Portd = Buf(index + 8)
Portc.4 = 1
Portc.4 = 0
Portd = Buf(index + 16)
Portc.5 = 1
Portc.5 = 0
Portb = Scan
Rotate Scan , Left , 1
Waitms Sc_wait
Portb = &HFF
Next Index
Portd = Buf(7 )
Portc.3 = 1
Portc.3 = 0
Portd = Buf(15)
Portc.4 = 1
Portc.4 = 0
Portd = Buf(23)
Portc.5 = 1
Portc.5 = 0
Portc.1 = 0
Waitms Sc_wait
Portc.1 = 1
Portd = Buf(8 )
Portc.3 = 1
Portc.3 = 0
Portd = Buf(16)
Portc.4 = 1
Portc.4 = 0
Portd = Buf(24)
Portc.5 = 1
Portc.5 = 0
Portc.2 = 0
Waitms Sc_wait
Portc.2 = 1
Loop
End 'end program
Sub Sectic:
S = _sec
C = _sec Mod 15
If C < 8 Then
For I = 0 To 3
C = _sec Mod 2
If C = 0 Then
Buf(i + 11) = Lookup(i , Dot)
Else
Buf(i + 11) = 0
End If
Next I
For I = 0 To 4
A = _hour / 10
A = A * 5
A = A + I
Buf(i + 1) = Lookup(a , Font)
A = _hour Mod 10
A = A * 5
A = A + I
Buf(i + 6) = Lookup(a , Font)
A = _min / 10
A = A * 5
A = A + I
Buf(i + 15) = Lookup(a , Font)
A = _min Mod 10
A = A * 5
A = A + I
Buf(i + 20) = Lookup(a , Font)
Next I
Else
For I = 0 To 3
Buf(i + 11) = Lookup(i , Lin)
Next I
For I = 0 To 4
A = _month / 10
A = A * 5
A = A + I
Buf(i + 1) = Lookup(a , Font)
A = _month Mod 10
A = A * 5
A = A + I
Buf(i + 6) = Lookup(a , Font)
A = _day / 10
A = A * 5
A = A + I
Buf(i + 15) = Lookup(a , Font)
A = _day Mod 10
A = A * 5
A = A + I
Buf(i + 20) = Lookup(a , 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
توجه داشته باشيد كه در تصوير مدار ساخته شده تعدادي مقاومت بين لچ ها و دات ماتريكس قرار گرفته كه شما نيز ميتوانيد اين مقاومتهاي 330 اهمي را در مدار خود استفاده كنيد.
دوستان عزیز در صورت داشتن هر گونه سئوال و پیشنهادی شما میتوانید از طریق انجمن سایت به آدرس زیر با ما مطرح کنید:
http://www.hlachini.com/forum-1.html
اين سايت آمادگي دارد كه مشاوره ، طراحي ، ساخت پروژه هاي صنعتي و دانشگاهي را به انجام رساند. لذا ميتوانيد از طريق تلفن 09123812060 و يا ايميل با ما تماس حاصل كنيد.
جهت ادامه مطلب تابلو روان اینجا کلیک کنید.