سلام دوستان ببخشیدمن دارم یک برنامه ای مینویسم که توی اون ابتدا باید ساعت رو تعریف کنم این ساعت باید قابلیت این وداشته باشه که کاربر بتونه اونو عوض کنه تا اینجامشکلی نیست حالا میخوام زمان روشن و خاموش کردن یک دستگاه رو بدم بصورت پیش فرض اولیه این زمانها رو توی برنامه دادم امامیخوام مثلا با گذاشتن کلید روی برد این مدار بتونم زمانهای روشن و خاموش کردن دستگاه قابل تغییر باشه ( ثانیه و دقیقه و ساعت قابل کاهش وافزایش ) متاسفانه مدام این تغییرات روی ساعت اولیه تاثیر میزاره اگه راهنمایی کنید ممنون میشم سورس برنامه رو نذاشتم چون خیلی طولانی بود و فکر کردم شایدوقت خوندنشو نداشته باشید واصلا جواب ندید در ضمن من با بیسیک برنامه رو نوشتم ممنون میشم راهنمایی کنید
اطلاعیه
Collapse
No announcement yet.
تغییر زمان برای روشن وخاموش کردن یک دستگاه
Collapse
X
-
پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه
شما باید دو تا ساعت تعریف کنید و شرطی رو بزارید که اگه با هم برابر شدند کای رو انجام بده
باید برنامه رو بزاری تا بدونم تو برنامه چی کار کردی و کمکت کنم :read:آدلان پایا متخصص در حوضه ربات های پرنده
https://adlanpaya.ir/
-
پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه
مرسی که پاسخگو هستید برنامه به شکل زیر
$regfile = "m8def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Portd.1 = Input
Reset Pind.1
Config Lcdpin = Pin , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7 , E = Pinb.2 , Rs = Pinb.3
Config Portd.7 = Output
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Int0 = Falling
Config Int1 = Falling
'====================='
Declare Sub Timenow
Declare Sub Hoshmand
Declare Sub Adjusttime
'=========================='
Dim T As Word
Dim Second As Byte , Minute As Byte , Hour As Byte
Dim Second1 As Byte , Minute1 As Byte , Hour1 As Byte
Dim Second2 As Byte , Minute2 As Byte , Hour2 As Byte
Dim Cash As String * 2
Dim Tmode As Byte
Dim Blk As Bit
Dim Cash1 As String * 2
Dim Tmode1 As Byte
Dim Blk1 As Bit
Dim Cash2 As String * 2
Dim Tmode2 As Byte
Dim Blk2 As Bit
Enable Interrupts
Enable Int0
On Int0 Setmode
Enable Int1
On Int1 Setmode1
'==============================='
Second = 00 : Minute = 30 : Hour = 11
Second1 = 00 : Minute1 = 00 : Hour1 = 12
Second2 = 00 : Minute2 = 00 : Hour2 = 14
Tmode = 0 : Tmode1 = 0 : Tmode2 = 0
'==================================='
Do
Debounce Pind.0 , 1 , Timenow , Sub
Debounce Pind.1 , 1 , Hoshmand , Sub
Debounce Pind.4 , 1 , Adjusttime , Sub
If Hour = Hour1 Then
If Minute = Minute1 Then
If Second = Second1 Then
Set Portd.7
End If
End If
End If
If Hour = Hour2 Then
If Minute = Minute2 Then
If Second = Second2 Then
Reset Portd.7
End If
End If
End If
Loop
'======================'
Sub Hoshmand
Home
T = Getadc(3)
T = T / 4
Home
Locate 2 , 10
Lcd "T:" ; T ; "'c"
Waitms 500
If T > 25 Then Set Portd.7
If T < 24 Then Reset Portd.7
End Sub
'=========================='
Sub Adjusttime
Cls
Locate 1 , 1
Cash1 = Str(hour1)
Lcd Format(cash1 , "00" ":"
Cash1 = Str(minute1)
Lcd Format(cash1 , "00" ":"
Cash1 = Str(second1)
Lcd Format(cash1 , "00": Lcd " time on"
Locate 2 , 1
Cash2 = Str(hour2)
Lcd Format(cash2 , "00" ":"
Cash2 = Str(minute2)
Lcd Format(cash2 , "00" ":"
Cash2 = Str(second2)
Lcd Format(cash2 , "00": Lcd " time off" :
End Sub
'=========================='
Setmode1:
If Blk2 = 1 Then
Toggle Blk2
Select Case Tmode2
Case 1:
Home : Locate 2 , 7 : Lcd " "
Case 2 :
Home : Locate 2 , 4 : Lcd " "
Case 3 :
Home : Locate 2 , 1 : Lcd " "
End Select : End If
If Pinc.2 = 1 Then
Waitms 30
If Pinc.2 = 1 Then
Incr Tmode2
End If
If Tmode2 > 4 Then Tmode2 = 0
End If
If Pinc.1 = 1 Then
Waitms 30
If Pinc.1 = 1 Then
Select Case Tmode2
Case 1 : Second2 = 0
Case 2 : If Minute2 < 59 Then Incr Minute2
Case 3 : If Hour2 < 23 Then Incr Hour2
End Select
End If
End If
If Pinc.0 = 1 Then
Waitms 30
If Pinc.0 = 1 Then
Select Case Tmode2
Case 1 : Second2 = 0
Case 2 : If Minute2 > 0 Then Decr Minute2
Case 3 : If Hour2 > 0 Then Decr Hour2
End Select
End If
End If
If Blk1 = 1 Then
Toggle Blk1
Select Case Tmode1
Case 1 : Home : Locate 1 , 7 : Lcd " "
Case 2 : Home : Locate 1 , 4 : Lcd " "
Case 3 : Home : Locate 1 , 1 : Lcd " "
End Select : End If
If Pinc.2 = 1 Then
Waitms 30
If Pinc.2 = 1 Then
Incr Tmode1
End If
If Tmode1 > 4 Then Tmode1 = 0
End If
If Pinc.1 = 1 Then
Waitms 30
If Pinc.1 = 1 Then
Select Case Tmode1
Case 1 : Second1 = 0
Case 2 : If Minute1 < 59 Then Incr Minute1
Case 3 : If Hour1 < 23 Then Incr Hour1
End Select
End If
End If
If Pinc.0 = 1 Then
Waitms 30
If Pinc.0 = 1 Then
Select Case Tmode1
Case 1 : Second1 = 0
Case 2 : If Minute1 > 0 Then Decr Minute1
Case 3 : If Hour1 > 0 Then Decr Hour1
End Select
End If
End If
Return
'=============================='
Setmode:
If Pinc.2 = 1 Then
Waitms 30
If Pinc.2 = 1 Then
Incr Tmode
End If
If Tmode > 4 Then Tmode = 0
End If
If Pinc.1 = 1 Then
Waitms 30
If Pinc.1 = 1 Then
Select Case Tmode
Case 1 : Second = 0
Case 2 : If Minute < 59 Then Incr Minute
Case 3 : If Hour < 23 Then Incr Hour
End Select
End If
End If
If Pinc.0 = 1 Then
Waitms 30
If Pinc.0 = 1 Then
Select Case Tmode
Case 1 : Second = 0
Case 2 : If Minute > 0 Then Decr Minute
Case 3 : If Hour > 0 Then Decr Hour
End Select
End If
End If
Return
'==========================='
Sub Timenow:
Locate 1 , 1
Cash = Str(hour)
Lcd Format(cash , "00" ":"
Cash = Str(minute)
Lcd Format(cash , "00" ":"
Cash = Str(second)
Lcd Format(cash , "00": Lcd " time now"
Locate 1 , 9
Lcd " - "
If Blk = 1 Then
Select Case Tmode
Case 1 :
Home : Locate 1 , 7 : Lcd " "
Case 2 :
Home : Locate 1 , 4 : Lcd " "
Case 3 :
Home : Locate 1 , 1 : Lcd " "
End Select
Waitms 995
Incr Second
End If
Toggle Blk
If Second > 59 Then
Incr Minute : Second = 0 : End If
If Minute > 59 Then
Incr Hour : Minute = 0 : End If
If Hour > 23 Then
Hour = 0 : End If
If Pinc.2 = 1 Then
Waitms 30
If Pinc.2 = 1 Then
Incr Tmode
End If
If Tmode > 4 Then Tmode = 0
End If
If Pinc.1 = 1 Then
Waitms 30
Select Case Tmode
Case 1 : Second = 0
Case 2 : If Minute < 59 Then Incr Minute
Case 3 : If Hour < 23 Then Incr Hour
End Select
End If
End Sub
دیدگاه
-
پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه
از کجا اطلاعات رو دریافت میکنه تو برنامه که کی پد تعریف نشدهآدلان پایا متخصص در حوضه ربات های پرنده
https://adlanpaya.ir/
دیدگاه
-
پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه
راستش حوصله خوندن کد رو نداشتم . مخصوصا که با بیسیک هم بود .
ولی شما باید یه جایی برای ذخیره اعداد ساعت و دقیقه و ثانیه جدا در نظر بگیری مثلا روی خود EEProm میکرو و بعد بیای در برنامه کلیدها رو طوری برنامه ریزی کنید که مثلا کلید اول مشخص کنه شما کدوم عدد رو می خوای تغییر بدی و کلید دوم اونو تغییر بده و کلید سوم ثبتش کنه همه تغییرات در متغییر باشه و بعد از زدن ثبت بیاد متغییر ها رو در حافظه دائمی ذخیره کنید .
سپس می تونی در حلقه برنامه یا توسط یه تایمر (بسته به دقت مورد نیاز ) سر زمان های خاصی متغییر ها رو دوباره از حافظه فراخونی کنید و سپس از آی سی ساعت هم در متغییر های دیگه ای ساعت رو بریزید و سپس با هم مقایسه کنید و اگر مقایسه ok بود مثلا فلان پین فعال بشه .
نمی دونم منظورتون همین بود یا نه . امیدوارم کمکی کرده باشم .- به دنبال فرصت عمری تباه کردم ! فرصت جوانی ام بود من اشتباه کردم .
دیدگاه
-
پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه
ممنون مردنامرئی اره برنامه رو درست متوجه شدید پس شما نظرتوناینه که توی eeprom ذخیره کنم ؟اخه قرار هروقت خواستم بتونم ساعت خاموش روشن شدن دستگاه رو عوض کنم از طرفی ساعت هم که تغییر میکنه تا جایی که من میدونم توی eeprom معمولا اطلاعات ثابت رو ذخیره میکنند
دیدگاه
-
پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه
تا جایی که من میدونم توی eeprom معمولا اطلاعات ثابت رو ذخیره میکنند
دوست عزیز شما زمانی رو که باید تنظیم بشه و سر اون ساعت مثلا یه رله رو فعال کنی رو باید توی EEprom ذخیره کنی . ساعت که خودش باید اصلا از آی سی ساعت استفاده کنی . نکنه شما ساعت رو خودت شمارش می کنی ؟ در میکرو ؟ آی سی ساعت اگر نداشته باشی در هنگام خاموش و روشن شدن یا قطعی برق سیستم شما کلا بهم میریزه .
اگر آی سی ساعت نداری بذار و اعداد ساعت تنظیمی رو در eeprom می زاری و در یک حلقه (بسته به دقت مورد نیاز ) بر اساس زمانی مشخص ساعت رو از آی سی ساعت دریافت می کنید و اعداد خودتون رو هم از EEprom سپس با هم مقایسه می کنید اگر مساوی یا از هم رد شده بودند (بخاطر قطعی احتمالی برق ) عمل مورد نظرتون رو انجام می دید .- به دنبال فرصت عمری تباه کردم ! فرصت جوانی ام بود من اشتباه کردم .
دیدگاه
-
پاسخ : تغییر زمان برای روشن وخاموش کردن یک دستگاه
سلام اینم ؛ کنترل کننده کولر ؛ با دمای قابل تنظیم + نمایش ساعت و تاریخ :
http://ir02x6.persiangig.com/sch/coolerc.rar/download- اَللّهُمَّ عَجِّل لِوَلیِّکَ الفَرَج -
ارتباط با من : ir02x6
طراحی و ساخت انواع منابع تغذیه سوئیچینگ - SMPS Designer
دیدگاه
دیدگاه