برگزیده های پرشین تولز

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

m_kh_m

کاربر تازه وارد
تاریخ عضویت
18 آگوست 2007
نوشته‌ها
157
لایک‌ها
0
با سلام

دوستان برنامه برای میکروکنترلر می خواستم که فرکانس یک موج مربّعی رو بتونه برای ما مشخّص کنه.

لطفاً عجله کنید فوری است.

در ضمن تا جایی که امکانش هست به زبان بیسیک ( مثلاً با BASCOM ) نوشته شده باشد.

با اجازه ... .

تا بعد ... .
 

shockley

Registered User
تاریخ عضویت
28 نوامبر 2005
نوشته‌ها
287
لایک‌ها
4
به زبان C با شبیه سازی :)
 

فایل های ضمیمه

  • fm.png
    fm.png
    11.2 KB · نمایش ها: 22
  • Frequency_meter.zip
    71.4 KB · نمایش ها: 61

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
خدمت شما

با کامپایلر BASCOM AVR نوشته شده !
برای میکروکنترلر ATMEGA16 با فرکانس کریستال 8 مگ

نحوه اتصال LCD به میکرو که دقیقاً تو دستور LCD CONFIG مشخصه فقط پایه RW ال سی دی رو باید زمین کنید
سیگنال مربعی رو هم باید به پایه 2 میکرو یا همون T1 اعمال کنید
تو سطر اول LCD فرکانس سیگنال رو نشون میده و تو سطر دوم LCD هم پریود سیگنال رو نشون میده

:)

اینم کد :

PHP:
$regfile = "m16def.dat"
$crystal = 80000000

Config Timer0 = Timer , Prescale = 256

Config Timer1 = Counter , Edge = Rising

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pinc.0 , Db5 = Pinc.1 , Db6 = Pinc.2 , Db7 = Pinc.3 , E = Pinc.5 , Rs = Pinc.4

Enable Interrupts

Enable Timer0

Enable Counter1

On Timer0 Showt

On Counter1 Showc

Dim B As Word
Dim I As Byte
Dim A As Word
Dim C As Single
Dim Ahmad As Word

Cursor Off

Do
Loop

End

Showc:
Incr B
Return

Showt:
Timer0 = 6

Incr I

If I = 125 Then
   Stop Timer1
   Stop Timer0

   A = B * 65536
   A = A + Counter1
   C = 1 / A

   Cls
   Lcd "F = " ; A ; "  HZ"
   Locate 2 , 1
      Lcd "T = " ; C ; "S"
   Locate 2 , 12
      Lcd "          "

   B = 0 : I = 0

   Counter1 = 0

   Start Timer1

   Start Timer0

End If

Return
 

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
رضا جان تا ما رفتیم یه چایی بخوریم بگردیم شما دست به کار شدی
ای ول !
 

shockley

Registered User
تاریخ عضویت
28 نوامبر 2005
نوشته‌ها
287
لایک‌ها
4
شرمنده می فرمایید :D

آقا برنامه ی فرکانس متر شما دقیق تره، چون از 2 تا تایمر استفاده کردید و هم اینکه تایمری که در مد کانتر کار می کنه، 16 بیتیه. در حالیکه من 1 ثانیه با تاخیر نرم افزاری ایجاد کردم و تایمر صفر هم 8 بیتیه :blush:
 

m_kh_m

کاربر تازه وارد
تاریخ عضویت
18 آگوست 2007
نوشته‌ها
157
لایک‌ها
0
سلام به تمام دوستان

ما را شرمنده کردید با این همه لطف :blush:

واقعاً ممنونتونم

فقط یه چیزی این ها کاملاً چک شدن دیگه

البتّه محض احتیاط پرسیدم ها:happy:

باز هم ممنون

با اجازه ... .

تا بعد ... .
 

shockley

Registered User
تاریخ عضویت
28 نوامبر 2005
نوشته‌ها
287
لایک‌ها
4
بله تست شده است، فقط Pull-up روی پایه ی T0 فراموش نشه.
 
بالا