ايران ويج

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

می خواستم بدانم آیا میشه با میکروکنترلرهای AVR کورنومتری با دقت 0.001ساخت؟
کمترین زمانی که می شود با این نوع میکروکنترلرها ساخت چقدره؟
مهندس میشه ولی نمیشه رو LCD نمایش داد !

خود LCD زمان بیشتری می طلبه !!

این یه برنامه نمونه :

کد php:
$regfile "m32def.Dat"
$crystal 1000000

Config Lcdpin 
Pin Db4 Pinb.3 Db5 Pinb.2 Db6 Pinb.1 Db7 Pinb.0 Rs Pinb.6 Pinb.7

Config Lcd 
16 2
Cursor Off
Cls

Config Portd 
Input



Dim Hour 
As Byte Minute As Byte Second As Byte Ms As Byte

Yasaman
:

Do

    If 
Pind.0 1 Then :
      Goto 
Cornometr
    End 
If

    If 
Pind.2 1 Then :
      
Ms 0
      Second 
0
      Minute 
0
      Hour 
0

      Locate 1 
1
      Lcd Hour 
":" Minute ":" Second ":" Ms "         "
    
End If

Loop



Cornometr
:

 Do
   
Locate 1 1
   Lcd Hour 
":" Minute ":" Second ":" Ms  ;"         "

   
Incr Ms


   
If Ms 100 Then :
   
Incr Second
   Ms 
0
   End 
If

   If 
Second 60 Then :
   
Incr Minute
   Second 
0
   End 
If

   If 
Minute 60 Then :
   
Incr Hour
   Minute 
0
   End 
If

   If 
Hour 24 Then :
   
Hour 0
   End 
If

   If 
Pind.1 1 Then : Goto Yasaman
   End 
If

     If 
Pind.2 1 Then :
      
Ms 0
      Second 
0
      Minute 
0
      Hour 
0

      Locate 1 
1
      Lcd Hour 
":" Minute ":" Second ":" Ms     ;"         "
    
End If


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

درضمن من گفتم دقت 0.001 اما شما با دقت 0.01 نوشتید. در هر صورت ممنون.

یک سوال دیگه! هنگامی که کلید فشرده می شود، خود یک زمان کوتاهی می خواهد. من باید چی کار کنم که به محض اینکه کلید به پایین رفت، کورنومتر فعال بشه؟
خوب مهندس من یه نمونه دادم که رواتل کار دستتوت بیاد
بقیه اش با شماست !!!

با پایه های اینتراپت کلید رو وصل کن !!!
آیا استفاده از این کد منطقی است؟

کد:
$regfile = "attiny2313.dat"
$crystal = 6553500
'===============================================================================
Cursor Off
Config Timer1 = Timer , Prescale = 1
Config Portd = Output
Config Int0 = Rising
Config Int1 = Rising
Dim San As Byte , Da As Byte : Dim A As Byte : Dim B As Byte : Dim I As Byte
Dim Ooo As Byte : Dim Oo As Byte
San = 0 : Da = 0 : A = 0 : B = 0
'===============================================================================
  Enable Interrupts
  Enable Int0
  Enable Int1
  Enable Timer1
      On Timer1 P
      On Int0 Startit
      On Int1 Stopit
      Stop Timer1
      Cls
   A:
     'Stop Timer1
     'Timer1 = 0
   jmp A
End                                                         'end program


    Startit:
      Start Timer1
      Lcd "Please wait..."
    Return
P:
Incr San
If San > 99 Then : Incr Da : San = 0 : End If
If Da > 59 Then : Da = 0 : End If
Return


'End

Stopit:
    Stop Timer1
   Cls
Home
   Lcd Da ; "." ; San ; " Second(s)"

Return
اگه کد کار می کنه پس منطقیه !!!

کریستال با اون فرکانس رو از کجا گیر آوردی ؟؟؟
نمی شه از کریستال داخلی استفاده کرد؟
چرا نشه !

همه از کریستال داخلی استفاده می کنن ؟
شما چطور ؟


اون مقدار کریستالی که شما تو برنامه نوشتی غیر منطقی هستش و عملا چنین کریستالی وجود نداره !
اگه فیوزبیت ها رو تغییر ندادی کریستال تو برنامه رو بذار رو یک مگاهرتز !!
آخه میکرو به صورت فابریکی رو یک مگاهرتز داخلی فیوزبیتش تنظیم شده !!!
یعنی کریستال داخلی نمی شه6553500 باشه؟
صفحه‌ها: 1 2