۰۲-اسفند-۱۳۸۵, ۱۹:۳۳:۴۲
با سلام خدمت دوستان محترم
من نیاز به یک برنامه ساده ی ساعت با پیکره بندی confog clock=soft,gosub=sectic دارم.
یک برنامه پیدا کردم اما بعضی از جاهای برنامه رو سر در نمیارم :
وقتی با بسکام شبیه سازیش می کنم همیشه تو زیر برنامه ی scan باقی می ماند!!
مثلاً با شروع برنامه نمی دونم چطور به برنامه sectic وارد می شود؟
پیشاپیش از راهنماییتون ممنونم
من نیاز به یک برنامه ساده ی ساعت با پیکره بندی confog clock=soft,gosub=sectic دارم.
یک برنامه پیدا کردم اما بعضی از جاهای برنامه رو سر در نمیارم :
کد:
$regfile = "M8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , _
Db7 = Portc.3 , Rs = Portc.4 , E = Portc.5
Cls
Cursor Off
Config Clock = Soft , Gosub = Sectic
Disable Interrupts
Config Portd = &B00000111
Dim S As Byte , Mi As Byte , H As Byte , Y As Word , Mo As Byte , D As Byte , _
Slc As Byte , Flag As Bit
Declare Sub First
Declare Sub Second
Slc = 0 : Y = 1385 : Mo = 1 : D = 1 : S = 0 : Mi = 0 : H = 12 : Flag = 0
'*************************************************************************
Scan:
If Pind.0 = 1 Then Incr Slc
If Slc = 5 Then Slc = 0
If Pind.2 = 1 Then
Flag = 0
Goto Waitls
End If
On Slc Goto Hour , Minute , Year , Month , Day
Goto Scan
'*************************************************************************
Waitls:
Enable Interrupts
Do
If Pind.0 = 1 Then
Flag = 1
Goto Scan
End If
Loop
'*************************************************************************
Sectic:
If Flag = 0 Then Gosub Show
Incr S
If S > 59 Then
S = 0
Incr Mi
Locate 1 , 14
Lcd " "
If Mi > 59 Then
Mi = 0
Incr H
If H > 23 Then
H = 1
Incr D
End If
End If
End If
If Mo < 7 Then Call First
If Mo => 7 Then Call Second
Return
'*************************************************************************
Show:
Cursor Off
Cls
Lcd "Date " ; Y ; "/" ; Mo ; "/" ; D
Lowerline
Lcd "Time " ; H ; ":" ; Mi ; ":" ; S
Return
End 'end program
'=========================================================================
'=========================================================================
Hour:
If Pind.1 = 1 Then Incr H
If H => 24 Then H = 0
Lcd "Hour: " ; H
Waitms 400
Cls
Goto Scan
'-------------------------------------------------------------------------
Minute:
If Pind.1 = 1 Then Incr Mi
If H => 60 Then Mi = 0
Lcd "Minute: " ; Mi
Waitms 400
Cls
Goto Scan
'-------------------------------------------------------------------------
Year:
If Pind.1 = 1 Then Incr Y
If Y = 1400 Then Y = 1385
Lcd "Year: " ; Y
Waitms 400
Cls
Goto Scan
'-------------------------------------------------------------------------
Month:
If Pind.1 = 1 Then Incr Mo
If Mo = 13 Then Mo = 1
Lcd "Mount: " ; Mo
Waitms 400
Cls
Goto Scan
'-------------------------------------------------------------------------
Day:
If Pind.1 = 1 Then Incr D
If D = 32 Then D = 1
Lcd "Day: " ; D
Waitms 400
Cls
Goto Scan
'_________________________________________________________________________
Sub First:
If D > 31 Then
D = 1
Incr Mo
End If
End Sub First
Sub Second:
If D > 30 Then
D = 1
Incr Mo
If Mo > 12 Then
Mo = 1
Incr Y
End If
End If
End Sub Second
وقتی با بسکام شبیه سازیش می کنم همیشه تو زیر برنامه ی scan باقی می ماند!!
مثلاً با شروع برنامه نمی دونم چطور به برنامه sectic وارد می شود؟
پیشاپیش از راهنماییتون ممنونم