اطلاعیه

Collapse
No announcement yet.

سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

    سلام عذرخواهی می کنم از اساتید محترم که مزاحم وقتتون میشم
    سوالی داشتم از خدمتتون
    1- من می خوام یک پروژه ساعت و تقویم فارسی با دماسنج و آلارم واسه ال سی دی گرافیکی درست کنم
    حالا می خواستم ببینم این پروژه که در زیر لینکشو می زارم چه جوری می تونم تبدیل به ال سی دی گرافیکی کنم؟!
    http://www.datasheet.blogfa.com/page/microproject.aspx
    ایا فقط من کانفیگ ال سی دی رو عوض کنم مثله حله؟ یا کارهای دیگه باید انجام بدم؟
    2- حالا اگه بخوام این پروژه رو خودم شروع کنم به انجام دادنش چکار کنم؟ برای ایسی ds1307 ایا به زبان سی نمونه وجود داره که قابل تنظیم باشه؟ بعدش با lm 35 برای دماسنج کار می کنم (فک نکنم چند خط بیشتر کد بخواد) حالا برای الارم چیکار کنم. ضمنا کل سایت رو هم گشتم ولی نمونه ای برای GLCD نبود!!

    ممنون میشم راهنماییم کنین :nerd:

    #2
    پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

    بابا کسی نیست به داده ما برسهههههه!! :read: :read: :read:
    اقا من یه کد ds1307 که مال ال سی دی کاراکتری بود رو برای ال سی دی گرافیکی تغییر دادم ولی همون اول به کانفیگش گیر میده نمیدونم چرا؟!؟!؟!؟!
    این کد یه نفر به دادم برسه
    (به dataport v controlport گیر میده)
    $regfile = "m32def.dat"
    $crystal = 8000000


    Declare Function M_kabise(byref Sal As Word)as Byte
    Declare Function Sh_kabise(byref Sal As Word)as Byte
    '-----------------------------------------------------
    Config Graphlcd = 128 * 64sed
    Dataport = Portd , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , Db3 = Portd.3 , Db2 = Portd.2 , Db1 = Portd.1 , Db0 = Portd.5
    Controlport = Portb , E = Portb.2 , Cd = Portb.0 , Ce1 = Portb.4 , Ce2 = Portb.5 , Reset = Portb.3

    Cursor Off
    '-----------------------------------------------------

    Config Sda = Porta.7
    Config Scl = Porta.6
    '****************************
    Const Ds1307w = &HD0
    Const Ds1307r = &HD1


    Dim _sec As Byte
    Dim _min As Byte
    Dim _hour As Byte
    Dim _year As Word
    Dim Weekday As Byte
    '--------------
    Dim M_day As Word
    Dim Sh_day As Word
    Dim M_year As Word
    Dim Sh_year As Word
    Dim M_month As Word
    Dim Sh_month As Word
    Dim Kabise As Byte
    Dim Kole_roz_m As Word
    Dim Kole_roz_sh As Word
    '-------------

    '********************************

    Dim Conter1 As Word
    Dim Conter2 As Word
    Dim Conter3 As Word
    Dim Conter4 As Word
    Dim Day_of_month(12) As Byte
    Day_of_month(1) = 31
    Day_of_month(2) = 28
    Day_of_month(3) = 31
    Day_of_month(4) = 30
    Day_of_month(5) = 31
    Day_of_month(6) = 30
    Day_of_month(7) = 31
    Day_of_month(8) = 31
    Day_of_month(9) = 30
    Day_of_month(10) = 31
    Day_of_month(11) = 30
    Day_of_month(12) = 31

    '----------------------

    Dim Temp1 As Integer
    Dim Temp2 As Integer
    Dim Temp3 As Word
    Dim Temp4 As Word
    Dim Temp5 As Byte

    '----------------------- keys
    Key_menu Alias Pinc.0
    Config Key_menu = Input
    Portc.0 = 1

    Key_incr Alias Pinc.1
    Config Key_incr = Input
    Portc.1 = 1

    Key_decr Alias Pinc.2
    Config Key_decr = Input
    Portc.2 = 1
    '-----------------------------------
    Dim Menu As Byte
    Dim Timer_1 As Word
    Dim S1 As String * 15
    Dim S As String * 10
    S1 = " Majid"
    Dim Blink_flag As Bit
    Dim Selection As Byte
    '------------------------------------


    Cls
    Locate 1 , 1 :
    Lcd S1
    Wait 3
    Cls
    Do
    Gosub Read_date_time
    Gosub M_to_sh

    Locate 1 , 1
    Lcd "TIME: " ; _hour ; ":" ; _min ; ":" ; _sec
    Locate 2 , 1
    Lcd "DATE: " ; Sh_year ; "/" ; Sh_month ; "/" ; Sh_day


    '---------------------------- WAIT AND READ KEY

    For Conter1 = 1 To 40000

    If Key_menu = 0 Then

    Waitms 100

    If Key_menu = 0 Then
    Cls
    Locate 1 , 1
    Lcd " MENU "
    Wait 1
    Gosub Menu
    End If

    Waitus 10

    End If

    Next

    '------------------------------
    Loop


    Menu:

    Selection = 1
    Cls
    Do

    Incr Timer_1
    If Timer_1 > 5 Then
    Timer_1 = 0
    Toggle Blink_flag
    End If

    S1 = "TIME: "
    '-----------------------------
    If Selection = 1 And Blink_flag = 0 Then

    S1 = S1 + " "
    Else

    S = Str(_hour)
    S = Format(s , "00&quot
    S1 = S1 + S

    End If
    S1 = S1 + ":"
    '------------------------------
    If Selection = 2 And Blink_flag = 0 Then

    S1 = S1 + " "
    Else

    S = Str(_min)
    S = Format(s , "00&quot
    S1 = S1 + S

    End If
    S1 = S1 + ":"
    '------------------------------
    If Selection = 3 And Blink_flag = 0 Then

    S1 = S1 + " "
    Else

    S = Str(_sec)
    S = Format(s , "00&quot
    S1 = S1 + S

    End If


    Locate 1 , 1
    Lcd S1


    S1 = "DATE: "
    '--------------------------------
    If Selection = 4 And Blink_flag = 0 Then

    S1 = S1 + " "
    Else

    S = Str(sh_year)
    S = Format(s , "0000&quot
    S1 = S1 + S

    End If
    S1 = S1 + "/"
    '---------------------------------
    If Selection = 5 And Blink_flag = 0 Then

    S1 = S1 + " "
    Else

    S = Str(sh_month)
    S = Format(s , "00&quot
    S1 = S1 + S

    End If
    S1 = S1 + "/"
    '----------------------------------
    If Selection = 6 And Blink_flag = 0 Then

    S1 = S1 + " "
    Else

    S = Str(sh_day)
    S = Format(s , "00&quot
    S1 = S1 + S

    End If

    Locate 2 , 1
    Lcd S1




    If Key_menu = 0 Then
    Waitms 100
    If Key_menu = 0 Then Incr Selection
    End If


    '-----------------------------------
    If Key_incr = 0 Then
    Waitms 100
    If Key_incr = 0 Then

    If Selection = 1 Then Incr _hour
    If Selection = 2 Then Incr _min
    If Selection = 3 Then Incr _sec
    If Selection = 4 Then Incr Sh_year
    If Selection = 5 Then Incr Sh_month
    If Selection = 6 Then Incr Sh_day

    End If

    End If
    '------------------------------------
    If Key_decr = 0 Then
    Waitms 100
    If Key_decr = 0 Then

    If Selection = 1 Then Decr _hour
    If Selection = 2 Then Decr _min
    If Selection = 3 Then Decr _sec
    If Selection = 4 Then Decr Sh_year
    If Selection = 5 Then Decr Sh_month
    If Selection = 6 Then Decr Sh_day

    End If

    End If

    '--------------------------------------
    If _hour > 100 Then _hour = 24
    If _min > 100 Then _min = 59
    If _sec > 100 Then _sec = 59

    If _hour > 24 Then _hour = 0
    If _min > 59 Then _min = 0
    If _sec > 59 Then _sec = 0
    If Sh_year > 1470 Then Sh_year = 1390
    If Sh_month > 12 Then Sh_month = 1
    If Sh_day > 31 Then Sh_day = 1


    If Sh_year < 1390 Then Sh_year = 1470
    If Sh_month < 1 Then Sh_month = 12
    If Sh_day < 1 Then Sh_day = 31
    '---------------------------------------


    Waitms 40

    If Selection > 6 Then Exit Do

    Loop

    Cls
    Locate 1 , 1
    Lcd " SAVEING"
    Wait 1
    Gosub Sh_to_m
    Gosub Setdate
    Gosub Settime

    Return


    Read_date_time:
    I2cstart ' Generate start code
    I2cwbyte Ds1307w ' send address
    I2cwbyte 0 ' start address in 1307
    I2cstart ' Generate start code
    I2cwbyte Ds1307r ' send address
    I2crbyte _sec , Ack
    I2crbyte _min , Ack ' MINUTES
    I2crbyte _hour , Ack ' Hours
    I2crbyte Weekday , Ack ' Day of Week
    I2crbyte M_day , Ack ' Day of Month
    I2crbyte M_month , Ack ' Month of Year
    I2crbyte _year , Nack ' Year
    I2cstop
    _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
    M_day = Makedec(m_day) : M_month = Makedec(m_month) : _year = Makedec(_year)
    M_year = 2000 + _year

    Return


    Setdate:

    _year = M_year - 2000
    M_day = Makebcd(m_day) : M_month = Makebcd(m_month) : _year = Makebcd(_year)
    I2cstart ' Generate start code
    I2cwbyte Ds1307w ' send address
    I2cwbyte 4 ' starting address in 1307
    I2cwbyte M_day ' Send Data to SECONDS
    I2cwbyte M_month ' MINUTES
    I2cwbyte _year ' Hours
    I2cstop
    Return


    Settime:
    _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
    I2cstart ' Generate start code
    I2cwbyte Ds1307w ' send address
    I2cwbyte 0 ' starting address in 1307
    I2cwbyte _sec ' Send Data to SECONDS
    I2cwbyte _min ' MINUTES
    I2cwbyte _hour ' Hours
    I2cstop
    Return



    M_to_sh:

    '----------------
    If M_kabise(m_year) = 0 Then
    Day_of_month(2) = 28
    Else
    Day_of_month(2) = 29
    End If
    '----------------

    Conter2 = M_month - 1
    Kole_roz_m = 0

    For Conter1 = 1 To Conter2
    Kole_roz_m = Kole_roz_m + Day_of_month(conter1)
    Next
    Kole_roz_m = Kole_roz_m + M_day

    '**********************************

    If Kole_roz_m > 79 Then

    Sh_year = M_year - 621
    Kole_roz_sh = Kole_roz_m - 79

    Else

    Sh_year = M_year - 622

    Temp4 = M_year - 1
    Temp5 = M_kabise(temp4)

    If Temp5 = 0 Then
    Kole_roz_sh = Kole_roz_m + 286
    Else
    Kole_roz_sh = Kole_roz_m + 287
    End If

    End If

    '**********************************

    Sh_month = 1

    '****************
    While Kole_roz_sh > 30

    If Sh_month < 7 Then
    Kole_roz_sh = Kole_roz_sh - 31
    Else
    Kole_roz_sh = Kole_roz_sh - 30
    End If

    Incr Sh_month

    Wend
    '***************
    '---------------
    If Kole_roz_sh = 0 Then

    Decr Sh_month
    If Sh_month < 7 Then
    Sh_day = 31
    Else
    Sh_day = 30
    End If
    Else
    Sh_day = Kole_roz_sh
    End If
    '---------------
    Return


    Sh_to_m:

    '------------------
    Kole_roz_sh = 0
    '------------------

    If Sh_month > 6 Then

    Kole_roz_sh = 186
    Temp4 = Sh_month - 7
    Temp4 = Temp4 * 30
    Kole_roz_sh = Kole_roz_sh + Temp4

    Else

    Temp4 = Sh_month - 1
    Temp4 = Temp4 * 31
    Kole_roz_sh = Kole_roz_sh + Temp4

    End If
    Kole_roz_sh = Kole_roz_sh + Sh_day

    '****************************
    If Kole_roz_sh > 286 Then

    M_year = Sh_year + 622
    Kole_roz_m = Kole_roz_sh - 286

    Else

    M_year = Sh_year + 621
    Kole_roz_m = Kole_roz_sh + 79

    End If
    '**************************
    Temp5 = M_kabise(m_year)

    If Temp5 = 0 Then
    Day_of_month(2) = 28
    Else
    Day_of_month(2) = 29
    End If

    '----------------

    For M_month = 1 To 12

    If Kole_roz_m < 31 Then Exit For
    Kole_roz_m = Kole_roz_m - Day_of_month(m_month)

    Next


    If Kole_roz_m > Day_of_month(m_month) Then

    Kole_roz_m = Kole_roz_m - Day_of_month(conter1)
    Incr M_month

    End If

    M_day = Kole_roz_m

    Return


    End




    Function M_kabise(byref Sal As Word)as Byte

    Local T1 As Integer
    Local T2 As Integer
    Local T3 As Integer
    Local B As Byte
    '=========================
    T1 = Sal Mod 4
    T2 = Sal Mod 100
    T3 = Sal Mod 400
    B = 0
    '=========================
    '------
    If T1 = 0 And T2 <> 0 Then
    B = 1
    End If
    '------
    If T2 = 0 And T3 = 0 Then
    B = 1
    End If
    '------
    M_kabise = B

    End Function


    Function Sh_kabise(byref Sal As Word)as Byte

    Local T1 As Integer
    Local B As Byte
    '==================
    T1 = Sal Mod 33
    B = 0
    '==================
    '------
    If T1 = 1 Or T1 = 5 Or T1 = 9 Or T1 = 13 Or T1 = 17 Or T1 = 22 Or _
    T1 = 26 Or T1 = 30 Then

    B = 1

    End If
    '------
    Sh_kabise = B

    End Function

    دیدگاه


      #3
      پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

      خب اشکالات کانفیگ رو خودم حل کردم
      ولی کلی خطای دیگه پیدا شد! :cry: :cry:
      کسی نمی خواد کمک من کنه! :angry:

      دیدگاه


        #4
        پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

        salam baradar errorato copy/paste kon inja file barnamaram upload kon lotfan ta bebinim moshkel kojast
        تشکر لازمه! دکمه رو فشار بده ديگه!!
        موفق باشيدددددد!!

        دیدگاه


          #5
          پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

          اقا ممنون اومدی کمک. اجرت با امام حسین(ع)

          این لینک فایل من
          http://uplod.ir/y4h485alqxdu/test.rar.htm
          برنامه من، خطاشو چه جوری بزارم

          $regfile = "m32def.dat"
          $crystal = 8000000
          $lib "glcdks108.lbx"
          $include "font8*8.font"




          Declare Function M_kabise(byref Sal As Word)as Byte
          Declare Function Sh_kabise(byref Sal As Word)as Byte
          '-----------------------------------------------------
          Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Enable = 2 , Cd = 0 , Ce1 = 4 , Ce2 = 5 , Reset = 3 Rd = 7
          Cursor Off
          Setfont Font8 * 8
          '-----------------------------------------------------

          Config Sda = Porta.7
          Config Scl = Porta.6
          '****************************
          Const Ds1307w = &HD0
          Const Ds1307r = &HD1


          Dim _sec As Byte
          Dim _min As Byte
          Dim _hour As Byte
          Dim _year As Word
          Dim Weekday As Byte
          '--------------
          Dim M_day As Word
          Dim Sh_day As Word
          Dim M_year As Word
          Dim Sh_year As Word
          Dim M_month As Word
          Dim Sh_month As Word
          Dim Kabise As Byte
          Dim Kole_roz_m As Word
          Dim Kole_roz_sh As Word
          '-------------

          '********************************

          Dim Conter1 As Word
          Dim Conter2 As Word
          Dim Conter3 As Word
          Dim Conter4 As Word
          Dim Day_of_month(12) As Byte
          Day_of_month(1) = 31
          Day_of_month(2) = 28
          Day_of_month(3) = 31
          Day_of_month(4) = 30
          Day_of_month(5) = 31
          Day_of_month(6) = 30
          Day_of_month(7) = 31
          Day_of_month(8) = 31
          Day_of_month(9) = 30
          Day_of_month(10) = 31
          Day_of_month(11) = 30
          Day_of_month(12) = 31
          '----------------------

          Dim Temp1 As Integer
          Dim Temp2 As Integer
          Dim Temp3 As Word
          Dim Temp4 As Word
          Dim Temp5 As Byte

          '----------------------- keys
          Key_menu Alias Pinc.0
          Config Key_menu = Input
          Portc.0 = 1

          Key_incr Alias Pinc.1
          Config Key_incr = Input
          Portc.1 = 1

          Key_decr Alias Pinc.2
          Config Key_decr = Input
          Portc.2 = 1
          '-----------------------------------
          Dim Menu As Byte
          Dim Timer_1 As Word
          Dim S1 As String * 15
          Dim S As String * 10
          S1 = " Majid"
          Dim Blink_flag As Bit
          Dim Selection As Byte
          '------------------------------------



          Cls
          Locate 1 , 1 :
          Lcd S1
          Wait 3
          Cls
          Do
          Gosub Read_date_time
          Gosub M_to_sh

          Locate 1 , 1
          Lcd "TIME: " ; _hour ; ":" ; _min ; ":" ; _sec
          Locate 2 , 1
          Lcd "DATE: " ; Sh_year ; "/" ; Sh_month ; "/" ; Sh_day


          '---------------------------- WAIT AND READ KEY

          For Conter1 = 1 To 40000

          If Key_menu = 0 Then

          Waitms 100

          If Key_menu = 0 Then
          Cls
          Locate 1 , 1
          Lcd " MENU "
          Wait 1
          Gosub Menu
          End If

          Waitus 10

          End If

          Next

          '------------------------------
          Loop


          Menu:

          Selection = 1
          Cls
          Do

          Incr Timer_1
          If Timer_1 > 5 Then
          Timer_1 = 0
          Toggle Blink_flag
          End If

          S1 = "TIME: "
          '-----------------------------
          If Selection = 1 And Blink_flag = 0 Then

          S1 = S1 + " "
          Else

          S = Str(_hour)
          S = Format(s , "00&quot
          S1 = S1 + S

          End If
          S1 = S1 + ":"
          '------------------------------
          If Selection = 2 And Blink_flag = 0 Then

          S1 = S1 + " "
          Else

          S = Str(_min)
          S = Format(s , "00&quot
          S1 = S1 + S

          End If
          S1 = S1 + ":"
          '------------------------------
          If Selection = 3 And Blink_flag = 0 Then

          S1 = S1 + " "
          Else

          S = Str(_sec)
          S = Format(s , "00&quot
          S1 = S1 + S

          End If


          Locate 1 , 1
          Lcd S1


          S1 = "DATE: "
          '--------------------------------
          If Selection = 4 And Blink_flag = 0 Then

          S1 = S1 + " "
          Else

          S = Str(sh_year)
          S = Format(s , "0000&quot
          S1 = S1 + S

          End If
          S1 = S1 + "/"
          '---------------------------------
          If Selection = 5 And Blink_flag = 0 Then

          S1 = S1 + " "
          Else

          S = Str(sh_month)
          S = Format(s , "00&quot
          S1 = S1 + S

          End If
          S1 = S1 + "/"
          '----------------------------------
          If Selection = 6 And Blink_flag = 0 Then

          S1 = S1 + " "
          Else

          S = Str(sh_day)
          S = Format(s , "00&quot
          S1 = S1 + S

          End If

          Locate 2 , 1
          Lcd S1




          If Key_menu = 0 Then
          Waitms 100
          If Key_menu = 0 Then Incr Selection
          End If


          '-----------------------------------
          If Key_incr = 0 Then
          Waitms 100
          If Key_incr = 0 Then

          If Selection = 1 Then Incr _hour
          If Selection = 2 Then Incr _min
          If Selection = 3 Then Incr _sec
          If Selection = 4 Then Incr Sh_year
          If Selection = 5 Then Incr Sh_month
          If Selection = 6 Then Incr Sh_day

          End If

          End If
          '------------------------------------
          If Key_decr = 0 Then
          Waitms 100
          If Key_decr = 0 Then

          If Selection = 1 Then Decr _hour
          If Selection = 2 Then Decr _min
          If Selection = 3 Then Decr _sec
          If Selection = 4 Then Decr Sh_year
          If Selection = 5 Then Decr Sh_month
          If Selection = 6 Then Decr Sh_day

          End If

          End If

          '--------------------------------------
          If _hour > 100 Then _hour = 24
          If _min > 100 Then _min = 59
          If _sec > 100 Then _sec = 59

          If _hour > 24 Then _hour = 0
          If _min > 59 Then _min = 0
          If _sec > 59 Then _sec = 0
          If Sh_year > 1470 Then Sh_year = 1390
          If Sh_month > 12 Then Sh_month = 1
          If Sh_day > 31 Then Sh_day = 1


          If Sh_year < 1390 Then Sh_year = 1470
          If Sh_month < 1 Then Sh_month = 12
          If Sh_day < 1 Then Sh_day = 31
          '---------------------------------------


          Waitms 40

          If Selection > 6 Then Exit Do

          Loop

          Cls
          Locate 1 , 1
          Lcd " SAVEING"
          Wait 1
          Gosub Sh_to_m
          Gosub Setdate
          Gosub Settime

          Return


          Read_date_time:
          I2cstart ' Generate start code
          I2cwbyte Ds1307w ' send address
          I2cwbyte 0 ' start address in 1307
          I2cstart ' Generate start code
          I2cwbyte Ds1307r ' send address
          I2crbyte _sec , Ack
          I2crbyte _min , Ack ' MINUTES
          I2crbyte _hour , Ack ' Hours
          I2crbyte Weekday , Ack ' Day of Week
          I2crbyte M_day , Ack ' Day of Month
          I2crbyte M_month , Ack ' Month of Year
          I2crbyte _year , Nack ' Year
          I2cstop
          _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
          M_day = Makedec(m_day) : M_month = Makedec(m_month) : _year = Makedec(_year)
          M_year = 2000 + _year

          Return


          Setdate:

          _year = M_year - 2000
          M_day = Makebcd(m_day) : M_month = Makebcd(m_month) : _year = Makebcd(_year)
          I2cstart ' Generate start code
          I2cwbyte Ds1307w ' send address
          I2cwbyte 4 ' starting address in 1307
          I2cwbyte M_day ' Send Data to SECONDS
          I2cwbyte M_month ' MINUTES
          I2cwbyte _year ' Hours
          I2cstop
          Return


          Settime:
          _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
          I2cstart ' Generate start code
          I2cwbyte Ds1307w ' send address
          I2cwbyte 0 ' starting address in 1307
          I2cwbyte _sec ' Send Data to SECONDS
          I2cwbyte _min ' MINUTES
          I2cwbyte _hour ' Hours
          I2cstop
          Return



          M_to_sh:

          '----------------
          If M_kabise(m_year) = 0 Then
          Day_of_month(2) = 28
          Else
          Day_of_month(2) = 29
          End If
          '----------------

          Conter2 = M_month - 1
          Kole_roz_m = 0

          For Conter1 = 1 To Conter2
          Kole_roz_m = Kole_roz_m + Day_of_month(conter1)
          Next
          Kole_roz_m = Kole_roz_m + M_day

          '**********************************

          If Kole_roz_m > 79 Then

          Sh_year = M_year - 621
          Kole_roz_sh = Kole_roz_m - 79

          Else

          Sh_year = M_year - 622

          Temp4 = M_year - 1
          Temp5 = M_kabise(temp4)

          If Temp5 = 0 Then
          Kole_roz_sh = Kole_roz_m + 286
          Else
          Kole_roz_sh = Kole_roz_m + 287
          End If

          End If

          '**********************************

          Sh_month = 1

          '****************
          While Kole_roz_sh > 30

          If Sh_month < 7 Then
          Kole_roz_sh = Kole_roz_sh - 31
          Else
          Kole_roz_sh = Kole_roz_sh - 30
          End If

          Incr Sh_month

          Wend
          '***************
          '---------------
          If Kole_roz_sh = 0 Then

          Decr Sh_month
          If Sh_month < 7 Then
          Sh_day = 31
          Else
          Sh_day = 30
          End If
          Else
          Sh_day = Kole_roz_sh
          End If
          '---------------
          Return


          Sh_to_m:

          '------------------
          Kole_roz_sh = 0
          '------------------

          If Sh_month > 6 Then

          Kole_roz_sh = 186
          Temp4 = Sh_month - 7
          Temp4 = Temp4 * 30
          Kole_roz_sh = Kole_roz_sh + Temp4

          Else

          Temp4 = Sh_month - 1
          Temp4 = Temp4 * 31
          Kole_roz_sh = Kole_roz_sh + Temp4

          End If
          Kole_roz_sh = Kole_roz_sh + Sh_day

          '****************************
          If Kole_roz_sh > 286 Then

          M_year = Sh_year + 622
          Kole_roz_m = Kole_roz_sh - 286

          Else

          M_year = Sh_year + 621
          Kole_roz_m = Kole_roz_sh + 79

          End If
          '**************************
          Temp5 = M_kabise(m_year)

          If Temp5 = 0 Then
          Day_of_month(2) = 28
          Else
          Day_of_month(2) = 29
          End If

          '----------------

          For M_month = 1 To 12

          If Kole_roz_m < 31 Then Exit For
          Kole_roz_m = Kole_roz_m - Day_of_month(m_month)

          Next


          If Kole_roz_m > Day_of_month(m_month) Then

          Kole_roz_m = Kole_roz_m - Day_of_month(conter1)
          Incr M_month

          End If

          M_day = Kole_roz_m

          Return


          End




          Function M_kabise(byref Sal As Word)as Byte

          Local T1 As Integer
          Local T2 As Integer
          Local T3 As Integer
          Local B As Byte
          '=========================
          T1 = Sal Mod 4
          T2 = Sal Mod 100
          T3 = Sal Mod 400
          B = 0
          '=========================
          '------
          If T1 = 0 And T2 <> 0 Then
          B = 1
          End If
          '------
          If T2 = 0 And T3 = 0 Then
          B = 1
          End If
          '------
          M_kabise = B

          End Function


          Function Sh_kabise(byref Sal As Word)as Byte

          Local T1 As Integer
          Local B As Byte
          '==================
          T1 = Sal Mod 33
          B = 0
          '==================
          '------
          If T1 = 1 Or T1 = 5 Or T1 = 9 Or T1 = 13 Or T1 = 17 Or T1 = 22 Or _
          T1 = 26 Or T1 = 30 Then

          B = 1

          End If
          '------
          Sh_kabise = B

          End Function

          دیدگاه


            #6
            پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

            :rolleyes:
            ویرایش برنامه یک نفر دیگه خیلی سخته
            خودتون بنویسید
            [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

            دیدگاه


              #7
              پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

              Khahesh mikonam baradar .
              sooti haye ghashangi dadi yade khodam oftadam .
              inham link barname tashih shode deghat ****d motevajeh mishid kojaharo avaz kardam mizaram be ohde khodetun
              :d
              www.avrmp.com/uploads/test.rar

              yek nokte dige man alan inja saat khabame dire bayad bekhabam ta jayeeke toonestam too 5 min be 1 error resoondam barnamaro
              age natoonestid moshkelo hal ****d man dobare farda sobh ke az khab pashodam ke mishe hodoode 11 shab shoma dobare yek search too barnamatoon mizanam va moshkel ro peyda mikonam error bayad marboot be yeki az dastoorate lcd bashe ke avazesh nakardid mesle baghiye ke man avaz kardam
              bebakhshid farsit type nemikonam key board nadaram .
              تشکر لازمه! دکمه رو فشار بده ديگه!!
              موفق باشيدددددد!!

              دیدگاه


                #8
                پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

                خیلی ممنون اومدین کمک
                من خب اونقدر مسلط نیستم که بخوام بنویسم (متاسفانه)
                اگه می تونید کمک کنید :cry:

                دیدگاه


                  #9
                  پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

                  نوشته اصلی توسط mahanb
                  Khahesh mikonam baradar .
                  sooti haye ghashangi dadi yade khodam oftadam .
                  inham link barname tashih shode deghat ****d motevajeh mishid kojaharo avaz kardam mizaram be ohde khodetun
                  :d
                  www.avrmp.com/uploads/test.rar

                  yek nokte dige man alan inja saat khabame dire bayad bekhabam ta jayeeke toonestam too 5 min be 1 error resoondam barnamaro
                  age natoonestid moshkelo hal ****d man dobare farda sobh ke az khab pashodam ke mishe hodoode 11 shab shoma dobare yek search too barnamatoon mizanam va moshkel ro peyda mikonam error bayad marboot be yeki az dastoorate lcd bashe ke avazesh nakardid mesle baghiye ke man avaz kardam
                  bebakhshid farsit type nemikonam key board nadaram .

                  مرسی الانم چک می کنم ببینم می تونم خطاشو بگیرم :cry2:

                  دیدگاه


                    #10
                    پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

                    من هر چی با این دستور lcd کار کردم خطاش برطرف نشد! :cry:

                    دیدگاه


                      #11
                      پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

                      برای آلارم با استفاده از سنسور دمای LM35 یه سری به تایپیک زیر بزن شاید یه جورایی بدردت بخوره

                      http://www.eca.ir/forum2/index.php?topic=60268.msg335716#msg335716

                      موفق باشی یا علی..
                      ماکه رفتیم خدمت (فعلا که 14 ماهش گذشت).........چون میگذرد غمی نیست....

                      http://tif00s.persiangig.com/image/MLX90614.jpg

                      دیدگاه


                        #12
                        پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

                        مرسی قربان، ولی تا برنامه ساعت راه نیوفته نمیتونم دماسنج رو راه بندازم .
                        ولی بازم ممنون، نگاهی میکنم

                        دیدگاه


                          #13
                          پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

                          من هر چی وایسادم هیچکی به داده من نرسید :angry: :angry:
                          اقای mahanb اگه اومدین وبرنامه رو چک کردین لطفا به فایل پروتئوس هم یه نگاهی بندازین ببینین من پایه ها رو درست وصل کردم یا نه
                          بعد اگه بخوام آلارم بزارم و دماسنج چطوری برنامه رو تغییر بدم؟ برای دماسنج از lm35 استفاده میکنم ولی تو پروتئوس هنوز نزاشتم، حالا lm35 رو به adc میکرو وصل کنم و مقدارش رو بخونم با همین دستور lcdat رو ال سی دی گرافیکی چاپ می کنه یا چیزه دیگه هم می خواد؟ برای الارم چیزی نمی دونم! :mrgreen:

                          مرسی :read:

                          دیدگاه


                            #14
                            پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

                            سلام
                            دوست عزیز برای اتصال سنسور دما باید پایه های تغذیه ADC رو وصل و بعد AREF را هم به +5 ولت وصل کنید.مقداری که از ADC می خونید باید تقسیم بر 2 کنید تا به درجه سانتیگراد تبدیل شود بعد روی ال سی دی نمایش دهید.به همین راحتی.
                            برای آلام هم می تونی از Buzzer استفاده کنید. اگر خواستید صدا بیشتر باشه باید آژیر دزدگیر بزارید و با رله آژیر رو سویچ کنید.
                            موفق باشید

                            دیدگاه


                              #15
                              پاسخ : سوال؟ال سی دی گرافیکی با ساعت و تقویم و دماسنج و الارم

                              سلام آقا صبح بخیر :د

                              ببخشید من توی یه کشور دیگه هستم اون موقع هم که جواب دادم رفتم خوابیدم اختلاف ساعت زیاد :د

                              ارور هارو گرفتید؟
                              متوجه شدید که دستورات الآ‌سیآ‌دی رو اولش عوض نکرده بودید؟ و من عوض کردم؟ گفتم شاید یکیش جا مونده باشه و برنامه فکر میآ‌کنه میخواید ازlcd 16*2 استفاده کنید بد میگه "control_lable" یعنیآ‌ پایآ‌های کنترل رو ندادید!
                              خوب برای lm35 باید به یک پای ADC بدید با یه مقاومت که مقدارش توی datasheet مقدارش هست ، برای آلارم هم میآ‌تونید از یه بیززر یا اگر میخواید صداهاآ‌ی زنگ متفاوت بگذارید از بلندگو استفاده کنید به هر پایهآ‌ هم میخواید میآ‌تونید وصلش کنید، حالا بگید ببینم ارور رو حل کردید یا نه؟
                              تشکر لازمه! دکمه رو فشار بده ديگه!!
                              موفق باشيدددددد!!

                              دیدگاه

                              لطفا صبر کنید...
                              X