ايران ويج

نسخه‌ی کامل: تغییر برنامه ساعت
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
سلام

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

یعنی می خوام اتصالات و ... همون باشه و فقط برنامش تغییر کنه

خودم تا یه جاهایی پیش رفتم اما آخرش اونی که می خواستم نشد Biggrin

اون کلیدی که برای شمارش گذاشته رو میخوام بجای پالس ساعت کار کنه ... یعنی هر فشار کلید به منزله یک پالس یا همون یک ثانیه شناخته بشه

همچنین بهتره بجای دستور If در کلید از دستور Debounce استفاده بشه تا فقط یکبار عمل کنه

ثانیه ها هم داخل میکرو شمرده میشن و روی سون سگمنت فقط دقیقه و ساعت باید نشون داده بشه

مثلا اون قسمت مربوط به دقیقه و ساعت رو تغییر دادم وشده این :

کد:
If N > 9 Then
N = 0
Incr M
If M > 5 Then
M = 0
Incr V
If V > 9 Then
V = 0
Incr T
Else
If T = 2 And V > 3 Then
T = 0
V = 0

End If
End If
End If
End If


برای ثانیه هم باید یه چیزی تعریف بشه مثل S :

کد:
Debounce pinb.0 , 1 , www, sub

www:
Incr S
If S > 59 Then
Incr N
S = 0
End If

حالا یکی زحمتشو بکشه و برنامه رو تغییر بده ... جاهای اضافیشو هم پاک کنه Biggrin

سون سگمنتش هم کاتد مشترکه
(۱۲-اردیبهشت-۱۳۹۲, ۱۲:۳۹:۴۰)رسول نوشته است: [ -> ]زیاد سخت نبودا Biggrin
اینجا برای کسی پروژه انجام نمیدیمBiggrin
اگه میخواید هزینه دارهBiggrin

کد:
$regfile = "m8def.dat"
$crystal = 4000000
Config Portd = Output
Config Portc = Output
Config Pinb.0 = Input
Config Pinb.2 = Input

Dataport Alias Portd
Comm Alias Portc


Dim A As Byte , B As Byte , C As Word , D As Word , N As Byte , M As Byte , V As Byte , T As Byte , Hh As Byte , S As Byte

Declare Sub Q
Declare Sub W
Declare Sub E
Declare Sub K
Declare Sub X

Do
Call E
Call Q
Call K
If S > 0 Then
N = N + 1
S = 0
End If
If M = 6 Then
V = V + 1
M = 0
N = 0
End If
If T = 6 Then
N = 0
M = 0
T = 0
V = 0
End If
Loop
'=============================================================================
Sub K
If Pinb.0 = 1 Then
Incr S
Call X
End If
If Pinb.2 = 1 Then
N = 0
M = 0
T = 0
V = 0
S = 0
Call X
End If
Do
Loop Until Pinb.0 = 0
Do
Loop Until Pinb.1 = 0
End Sub



'========================================================================
Sub E
If N > 9 Then
N = 0
Incr M
If M > 9 Then
M = 0
Incr V
If V > 9 Then
V = 0
Incr T
If T > 9 Then
T = 0
End If
End If
End If
End If
End Sub

'======================================================================
Sub Q
Comm = &B0111 : A = N : Call W
Comm = &B1011 : A = M : Call W
Comm = &B1101 : A = V : Call W
Comm = &B1110 : A = T : Call W

End Sub
'======================================================================
Sub W
Dataport = Lookup(a , Sa)
Waitms 4
Dataport = &H00
End Sub
'========================================================================
Sub X
   For Hh = 1 To 2

   Call E
      Call Q
   Next
End Sub
'=============================================================================
Sa:
Data &B00111111 , &B00000110 , &B01011011 , &B01001111
Data &B01100110 , &B01101101 , &B01111101 , &B00000111
Data &B01111111 , &B01101111
5 تومن میشهBiggrin
بهزاد جون تستش کردم ... همون کاری که من کرده بودم رو کردین Biggrin

من جور دیگه ای خواسته بودم

ثانیه شمار رو نباید سگمنت نشون بده


اصلا اون برنامه رو ولش کن

یه برنامه جدید می خوام با این مشخصات Biggrin

سگمنت چهارتایی (آند یا کاتد فرقی نداره)

ثانیه داخل میکرو شمرده بشه و روی سگمنت فقط دقیقه و ساعت نمایش داده بشه

نکته مهم اینکه برنامه تایمر و ... نیاز نداره و ثانیه ها با یک کلید خارجی باید وارد میکرو بشن

یعنی فشردن هربار کلید به منزله یک ثانیه برای میکرو شناخته بشه
ثانیه رو نشون نمی ده الان برای تست گفته بودمBiggrin یادم رفت بگم چی کار کنید درست بشهBiggrin
تو لوپ اصلی یه همچین چیزی هست
کد:
If S > 0 Then
N = N + 1
S = 0
End If
اینو به این تغییر بدید
کد:
If S > 59 Then
N = N + 1
S = 0
End If

قرار بود اینو بزارم بعد 5 تومن بگیرمBiggrin
برای همین نزاشته بودمBiggrin
یادم اومدBiggrin
-
تا پولو ندادید خودتون کد هارو نگاه نکنیدBiggrin
مگه نمی دونید خدا نگاهتون میکنهBiggrin
بازم همون دوغ و همون لیوانه Biggrin

یا بعبارتی همون گوجه و همون کبابه Biggrin

هنوز که تیک عصبیش رفع نشده!! Biggrin

فیلمشو ببین ... میخوام وقتی کلید زده شد دیگه اونطوری خاموش روشن نشه و کلا روشن باشه !!!
(۱۴-اردیبهشت-۱۳۹۲, ۱۰:۲۷:۴۱)رسول نوشته است: [ -> ]بازم همون دوغ و همون لیوانه Biggrin

یا بعبارتی همون گوجه و همون کبابه Biggrin

هنوز که تیک عصبیش رفع نشده!! Biggrin

فیلمشو ببین ... میخوام وقتی کلید زده شد دیگه اونطوری خاموش روشن نشه و کلا روشن باشه !!!
سرعت میکرو رو زیاد کنBiggrin
نه مشکل از فرکانس نبود

هر جوری هم عوضش میکنم باز لرزش داره

مشکل از داخل برنامست

به نظرم مشکل باید در این قسمت باشه:

کد php:
Sub W
Dataport 
Lookup(Sa)
Waitms 4
Dataport 
= &H00
End Sub 
(۱۴-اردیبهشت-۱۳۹۲, ۱۴:۲۱:۱۰)رسول نوشته است: [ -> ]نه مشکل از فرکانس نبود

هر جوری هم عوضش میکنم باز لرزش داره

مشکل از داخل برنامست

به نظرم مشکل باید در این قسمت باشه:

کد php:
Sub W
Dataport 
Lookup(Sa)
Waitms 4
Dataport 
= &H00
End Sub 
نه مشکل این نیست اگه این مشکل داشت خود عدد ها گیر میکرد شما بین هر نمایش وقفه زیاد داری
(البته ممکن هست از اینم باشه فعلا بعدی هارو بگو به اینم میرسیم)
-
اگه هیچ پالسی اعمال نکنی هم پرش داره؟(دکمه ها رو نزنی)
-
الان سرعت میکرو چقدره؟
(۱۴-اردیبهشت-۱۳۹۲, ۱۴:۳۰:۴۱)behzady نوشته است: [ -> ]اگه هیچ پالسی اعمال نکنی هم پرش داره؟(دکمه ها رو نزنی)

نه نداره

نقل قول: الان سرعت میکرو چقدره؟

1000000
(۱۴-اردیبهشت-۱۳۹۲, ۱۴:۳۵:۲۸)رسول نوشته است: [ -> ]
(۱۴-اردیبهشت-۱۳۹۲, ۱۴:۳۰:۴۱)behzady نوشته است: [ -> ]اگه هیچ پالسی اعمال نکنی هم پرش داره؟(دکمه ها رو نزنی)

نه نداره

نقل قول: الان سرعت میکرو چقدره؟

1000000
مشکل اینجاست
کد:
Sub K
If Pinb.0 = 1 Then
Incr S
Call X
End If
If Pinb.2 = 1 Then
N = 0
M = 0
T = 0
V = 0
S = 0
Call X
End If
Do
Loop Until Pinb.0 = 0
Do
Loop Until Pinb.1 = 0
End Sub
اون لوپ ها وایمیسه تا پالس قطع بشه یه فکری باید براش بکنیم
(۱۴-اردیبهشت-۱۳۹۲, ۱۴:۳۹:۱۱)behzady نوشته است: [ -> ]اون لوپ ها وایمیسه تا پالس قطع بشه یه فکری باید براش بکنیم

تا شب وقت داری بری روش فکر کنی وگرنه Biggrin
صفحه‌ها: 1 2 3