فرکانس متر دیجیتالی با Pic16f8 دارای Lcd

فرکانس متر دیجیتالی با PIC16F8 دارای LCD

این پروژه رو به طور اتفاقی و کاملا نا خواسته طراحی کردم....داستانش مفصله. با این همه چیزه جالبی از آب در اومد... خودم که خیلی حال کردم. انشا الله که شما هم ازش لذت میبرین.


این پروژه بر مبنای دستور COUNT موجود در کامپایلر PICBASIC PRO طراحی شده است.این دستور برای اندازه گیری فرکانس سیگنالی است که به ورودی اعمال شده. این اندازه گیری در یک بازه زمانی معین انجام می شود. دستور فوق دارای سه پارامتر است. اول پایه ای که قرار است از آن نمونه برداری شود .دوم طول زمان نمونه برداری و سوم نام متغیری که عدد در آن ذخیره می شود.
کار مهم برنامه نویسی فقط یه لوپ کوچکه که تعین میکنه عدد روی LCD بر حسب هرتز باشه یا کیلو هرتز.
در ضمن برای اینکه مدار بتونه با شکل موج های ورودی سینوسی و مثلثی هم کار بکنه از یک اپ امپ استفاده کردم.این طبقه در اصل یک مدار تشخیص گذر از صفر است.
راستی یادم رفت بگم که این مدار با کریستال ۴ مگا هرتز می تونه فقط تا فرکانس ۲۵ کیلو رو نشون بده.
در ادامه کد های PICBASIC PRO رو مشاهده می کنید:
' LCD should be connected as follows:
' LCD PIC
' DB4 PortA.0
' DB5 PortA.1
' DB6 PortA.2
' DB7 PortA.3
' RS PortA.4 (add 4.7K pullup resistor to 5 volts)
' E PortB.3
' RW Ground
' Vdd 5 volts
' Vss Ground
' Vo 20K potentiometer (or ground)
' DB0-3 No connect

r var word
f var word
loop: f = 0
r = 0
count portb.0 , 1000 , f
if f > 1000 then khz
Lcdout $fe, 1 ' Clear LCD screen
Lcdout #f ' Display Freq.
lcdout $FE, $14
lcdout "Hz"

goto loop

khz: r = f // 1000
f = f / 1000
Lcdout $fe, 1 ' Clear LCD screen
Lcdout #f ' Display Freq.
lcdout "."
lcdout #r
lcdout $FE, $14
lcdout "KHz"
goto loop
فایل شبیه سازی شده با پروتوس رو از اینجا دانلود کنید.
کد های Hex رو هم از اینجا دانلود کنید.


بیشتر...
 

honest

عضو جدید
میشه لطف کنید برنامه این مدار رو با 8051 در اختیارم بذارید؟
 

Admin

مدیر کل سایت
عضو کادر مدیریت
مدیر کل سایت
به لينك «بيشتر» آخر متن مراجعه كنيد.
 
بالا