تبلیغات
مرجع تخصصی برق و الکترونیک - نمایش ساعت و تاریخ بر روی تابلوروان - توسط میكرومنترلر ATmega8
مرجع تخصصی برق و الکترونیک
Electronic And Power Community Reference

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

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

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

  • نحوه نمایش ساعت و تقویم در تابلوروان آشنا میشوید.
  • چگونگی كار با سیستم RTC در میكروهای AVR.
  • استفاده از یك بافر نمایش.
  • استفاده از دات ماتریس 8 در 8 جهت فونت 5 در 7!.
  • و . . .

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

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

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

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

'
$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

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

آرشیو مطالب
نظر سنجی
رشته ی شما چیست؟








صفحات جانبی
پیوند های روزانه





در صورتی که مایل به دریافت مطالب جدید در ایمیلتان هستید میتوانید با ثبت نام در فرم بالا از مقالات و پروژه های رایگان هر هفته بهرمند شوید. current.mihanblog.com