ساعت دیجیتال با آلارم قابل تنظیم (Mega8 + Lcd)

این پروژه ساعت دیجیتال با مبکروکنترلر AVR می باشد، میکرو به کار رفته در این پروژه ATmega8 است و برای ساعت از کریستال ساعت استفاده شده.

برای تنظیم ساعت و آلارم از یک کی پد 4×4 استفاده شده و یک خروجی بازر برای اعلام زمان هشدار به کار رفته.

این پروژه شامل فایل سورس برنامه نوشته شده در محیط کامپایلر بسکام (Bascom) و شماتیک مداری در محیط شبیه ساز پروتئوس و همچنین فایل مدار چاپی آن در محیط پروتل.

سورس کد این ساعت که در محیط بسکام نوشته شده:


$regfile = "m8def.dat"
$crystal = 8000000
Config Lcdpin = Pin , Db7 = Pinc.0 , Db6 = Pinc.1 , Db5 = Pinc.2 , Db4 = Pinc.3 , E = Pinc.4 , Rs = Pinc.5
Config Lcd = 16 * 2
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm =Clear Down , Compare B Pwm = Clear Down , Prescale = 64
Config Date = Ymd , Separator = / ' ANSI-Format
Config Clock = Soft
Config Kbd = Portd
Declare Sub Keypad
Dim Kbd As Byte , Tmp As String * 10 , I As Byte , Set_flag As Byte
Dim H As String * 3 , M As String * 3 , S As String * 3
Dim B As Byte , Alarm As String * 10 , Pwm As Byte
Date$ = "12/02/01"
Time$ = "23:59:50"
Enable Interrupts
Cursor Off
Pwm = 100
Do
Keypad
Waitms 100
If Alarm = Time$ Then
For I = 1 To 100
Pwm1a = Pwm
Waitms 100
Pwm1a = 0
Waitms 100
Pwm1a = Pwm
Waitms 100
Pwm1a = 0
Waitms 200
Locate 1 , 1 : Lcd "Time: " ; Time$ ; " "
Locate 2 , 1 : Lcd "Wake up "
Kbd = Getkbd()
Waitms 5
If Kbd = 15 Then Exit For
Next
End If
Locate 1 , 1 : Lcd "Time: " ; Time$ ; " "
Locate 2 , 1 : Lcd "Alarm: " ; Alarm ; " "
Loop
'read from keypad
'___________**************_____________***************
Sub Keypad
Kbd = Getkbd()
Waitms 5
Kbd = Lookup(kbd , Dta)
If Kbd = 10 Then
Set_flag = 1
Cls
Locate 1 , 1 : Lcd "Enter Time "
Elseif Kbd = 11 Then
Set_flag = 2
Cls
Locate 1 , 1 : Lcd "Enter Alarm Time"
Elseif Kbd = 22 And Pwm < 250 Then
Pwm = Pwm + 50
Locate 2 , 1 : Lcd "Vol=" ; Pwm ; " "
Waitms 500
Cls
Exit Sub
Elseif Kbd = 33 And Pwm > 0 Then
Pwm = Pwm - 50
Locate 2 , 1 : Lcd "Vol=" ; Pwm ; " "
Waitms 500
Cls
Exit Sub
Else
Set_flag = 0
Exit Sub
End If
Tmp = ""
Locate 2 , 1 : Lcd "Enter hour: "
Waitms 500
For B = 1 To 3
For I = 1 To 2
Kbd = Getkbd()
Waitms 5
Kbd = Lookup(kbd , Dta)
If Kbd >= 16 Then Decr I
If Kbd < 10 Then
Tmp = Tmp + Str(kbd)
If B = 1 And Tmp > "23" Then
I = 0
Tmp = ""
End If
If B > 1 And Tmp > "59" Then
I = 0
Tmp = ""
End If
Locate 2 , 13 : Lcd Tmp
Waitms 500
End If
If Kbd = 55 Then
B = 0
Exit Sub
End If
Next I
If B = 1 Then
H = Tmp
Locate 2 , 1 : Lcd "Enter min: "
Tmp = ""
Elseif B = 2 Then
M = Tmp
Locate 2 , 1 : Lcd "Enter sec: "
Tmp = ""
Elseif B = 3 Then
S = Tmp
If Set_flag = 1 Then
Locate 2 , 1 : Lcd "Set Time: "
Tmp = H + ":"
Tmp = Tmp + M
Tmp = Tmp + ":"
Tmp = Tmp + S
Time$ = Tmp
Elseif Set_flag = 2 Then
Locate 2 , 1 : Lcd "Set Alarm: "
Alarm = H + ":"
Alarm = Alarm + M
Alarm = Alarm + ":"
Alarm = Alarm + S
End If
Locate 2 , 1 : Lcd H ; ":" ; M ; ":" ; S ; " "
Wait 2
End If
Next B
End Sub
'lookup table
'___________**************_____________****************
Dta:
Data 1 , 2 , 3 , 22 , 4 , 5 , 6 , 33 , 7 , 8 , 9 , 44 , 10 , 0 , 11 , 55 , 16

در تلاشم که توضیحات کلی در باره این برنامه برای شما عزیزان بنویسم که راحت تر بتونید از اون استفاده کنید.

برای باز کردن این برنامه نیاز به کامپایلر بسکام دارید که از اینجا می توانید دانلود کنید.
در ادامه فایل های سورس برنامه و شماتیک مدار برای دانلود قرار داده شده است.

دانلود فایل های ضمیمه:

دانلود سورس برنامه و فایل Hex

دانلود فایل شمانیک پروتئوس

دانلود فایل مدار چاپی

همچنین می توانید پک قطعات مربوط به این پروژه رو از سایت تهیه فرمایید.

رمز فایل: www.ideaelec.com

دسته بندی : پروژه های آموزشی


۱۱ Comments

محمدرضا

اردیبهشت ۲۹, ۱۳۹۶ at ۶:۵۴ ب.ظ

با سلام خدمت مهندس
برنامه راجب ساعت دیجیتال با الارم که در سایت قرار دادید کبی کردم و در بسکام اجرا کردم و در این خط Config Clock = Soft این اخطار را میده bit defenition not found
,
not supported for the selected micto
در صورت امکان راهنمایی کنید

    hassan khani

    اردیبهشت ۲۹, ۱۳۹۶ at ۸:۱۷ ب.ظ

    سلام
    برنامه تست شده و اشکالی در اون دیده نشد.
    درصورتی که بخشی از برنامه رو تغییر دادید ممکنه اشکال از تغییرات ایجاد شده باشه
    در غیر این صورت از صحت عملکرد کامپایلرتون مطمئن شید.
    فایل سورس و هگز در مطلب اضافه شده می توانید مستقیم ازش استفاده کنید

      محمدرضا

      اردیبهشت ۳۰, ۱۳۹۶ at ۶:۱۱ ق.ظ

      مرسی از راهنمایتون مشکل برطرف شد
      گزینه دانلود شماتیک فعال نیس و عکس شماتیک هم کامل نیست در صورت امکان راهنمایی کنید

حجت

بهمن ۵, ۱۳۹۶ at ۲:۰۳ ب.ظ

با سلام
جسارتا امکانش هست در این برنامه تغییراتی هم بای الارم لحاظ بفرمایید؟؟
نمای شماتیک و مدار چاپی هم غیر فعال است
متشکر و منتظرم

    hassan khani

    بهمن ۵, ۱۳۹۶ at ۲:۲۶ ب.ظ

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

    شماتیک مربوط به پروژه به صورت عکس در متن وجود دارد.
    pcb مربوط به پروژه نیز در آینده تهیه و آپلود می شود.

مجيد

مرداد ۲۰, ۱۳۹۷ at ۶:۳۲ ب.ظ

فایل شبیه سازی پروتیوس ب صورت عکس اونم کامل نیست میتونیند فایل شبیه سازی پروتیوس و هم بزارید تا دانلود کنیم

مجيد

مرداد ۲۰, ۱۳۹۷ at ۷:۱۱ ب.ظ

دانلود فایل شمانیک پروتئوس فعال نیست

    hassan khani

    شهریور ۳, ۱۳۹۷ at ۱۰:۲۱ ق.ظ

    با سلام
    فایل شبیه سازی مدار اضافه شد.
    با proteus8 یا بالاتر اجرا میشه.

محمد

شهریور ۷, ۱۳۹۸ at ۹:۰۵ ب.ظ

سلام خروجی الارم توی برنامه در نظر گرفته شده

babaei

تیر ۹, ۱۴۰۰ at ۱۰:۴۹ ق.ظ

با سلام.لطفا فایل مدار چاپی را هم برای دانلود قرار دهید/ممنون

مهدی جمشیدیان

تیر ۱۷, ۱۴۰۰ at ۱۱:۴۵ ق.ظ

چرا اسم این پروژه رو آموزشی گذاشتید؟ با اجرای این پروژه کسی از آنچه در درون این میکروکنترلر اتفاق می افته مطلع میشه؟ کسی قادر میشه یه پروژه متفاوت با این میکروکنترلر طراحی و اجرا کنه؟ کسی به اینستراکشن های میکروکنترلر مسلط میشه؟ به نظر من این یک پروژه تجاری محض هستش

ارسال نظرات