تماس با ما

فید خبر خوان

نقشه سایت

بزرگترین سایت مقالات الکترونیک و مطالب مرتبط با الکترونیک


دسته بندی سایت

پیوند ها

آمار بازدید سایت

آمار بازدید

  • بازدید امروز : 32
  • بازدید دیروز : 199
  • بازدید کل : 1307267

شمارنده پالس


گاهی اوقات لازم است تا برای یک سیستم تعدادی پالس با تعداد مشخص را شمرده و سپس در یک عدد خاص دستگاهی را فعال کرده و یا کار دیگری انجام دهیم و نیز لازم است تا فاصله زمانی بین دو پالس را همچنین تنظیم نماییم .

در این صورت ما میتوانیم از این مدار استفاده نماییم.

مدار در صورتی کار خواهد نمود که هم تعداد پالس و هم فاصله زمانی آن تنظیم شده باشد. تنظیمات در حافظه eeprom دستگاه ذخیره خواهد شد.

ورودی فتوکوپلر را میتوان به منبع پالس متصل نمود و اگر ابتدا دکمه INCR را فشرده نگه داریم بوسیله SET میتوان رقم مورد نظر را افزایش و اگر دکمه DECR را فشرده نگه داریم بوسیله SET میتوان رقم مورد نظر را کاهش داد.

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

حداکثر فاصله زمانی بین دو پالس پیاپی را میتوان با فشرده نگه داشتن DELAY تنظیم نمود. با فشردن این دکمه عدد تاخیر نمایش داده خواهد شد و با رها نمودن ، عدد مربوط به تعداد نشان داده خواهد شد.

حال برای افزایش رقم باید علاوه بر DELAY دکمه INCR را نیز نگه داشته و با SET افزایش دهیم و برای کاهش باید علاوه بر DELAY دکمه DECR را نیز نگه داشته و با SET تنظیم نماییم.

شماتیک:

سورس برنامه :

 

NAME : Pulse Counter
VER : 2.0
DESIGN : ESMAEIL MOHAMMAD ZADEH
DATE : 1388/10/12
TEL : 09139545140
E-MAIL :Esmaeil_AVR@GMAIL.COM
*************************************
$regfile = "m8def.dat"
$crystal = 8000000
CONFIGURATIO
Config Int0 = Falling : Enable Int0
On Int0 Int0_isr
Config Int1 = Falling : Enable Int1
On Int1 Int1_isr
Config Timer1 = Timer , Prescale = 64
Enable Ovf1 : On Ovf1 Tim : Start Timer1
I/O
Config Portd.0 = Output : Config Portd.1 = Output
Config Pind.4 = Input : Config Pind.5 = Input
Config Portc.5 = Output : Config Portb = Output
Config Portb.7 = Output : Config Pind.6 = Input
VAR
Dim Yek As Byte , Dah As Byte , I As Byte , S As Byte , Del As Byte
Dim Pulse As Byte , Num As Byte , Num2 As Byte , A As Byte
Dim Enum As Eram Byte , Edel As Eram Byte
SUB PROGRAM
Declare Sub Separate
RENAME
Dig1 Alias Portd.0 : Dig2 Alias Portd.1
Rel Alias Portc.5
In_cr Alias Pind.4 : De_cr Alias Pind.5
Dp Alias Portb.7 : Delay_ Alias Pind.6
CONST
Const Dig1 = &B00000001 : Const Dig2 = &B00000010
LOAD EEPROM
If Enum = 255 Then Enum = 0
Num = Enum
If Edel = 255 Then Edel = 0
Del = Edel
For I = 1 To 3
Portd = &B00000011
Portb = &HBF
Waitms 400
Portd = &B00000000
Waitms 400
Next I
-------------------------------- MAIN -----------------------------------------
Begin:
Enable Interrupts : Disable Timer1 : S = 0
Pulse = 0 : Rel = 0 : Dp = 1
Waitms 20
Del = Edel
Num = Enum
Num2 = Num
Do
A = Num2
Call Separate
Yek = Lookup(yek , Dta)
Portd = Dig2
Portb = Yek
Waitms 2

Dah = Lookup(dah , Dta)
If Dah <> &HC0 Then
Portd = Dig1
Else
Portd = &H00
End If
Portb = Dah
Waitms 2

If Del <> 0 Then
If S = Del Then Goto Begin delay time
End If

If Num <> 0 Then
If Pulse = Num Then Rel = 1
End If

If Delay_ = 0 Then Goto Delay_isr
Loop
End

Delay_isr:
Do
A = Del
Call Separate
Yek = Lookup(yek , Dta)
Portd = Dig2
Portb = Yek
Dp = 0
Waitms 2

Dah = Lookup(dah , Dta)
If Dah <> &HC0 Then
Portd = Dig1
Else
Portd = &H00
End If
Portb = Dah

Waitms 2
Loop Until Delay_ = 1
Goto Begin

---------------------------------- SUB PROGRAM --------------------------------
Sub Separate
Dah = A / 10
Yek = Dah * 10
Yek = A - Yek
End Sub

Int0_isr:

If Num <> 0 And Del <> 0 Then
S = 0 : Enable Timer1 : Start Timer1
If Rel = 0 Then
Pulse = Pulse + 1
Num2 = Num - Pulse
If Num2 = 255 Then Num2 = 0
End If
End If
Return

Int1_isr:

Pulse = 0
If Delay_ = 1 Then
If In_cr = 0 Then
Waitms 10
Num = Num + 1
If Num > 99 Then Num = 0
Num2 = Num
Waitms 5
Enum = Num
Elseif De_cr = 0 Then
Waitms 10
Num = Num - 1
If Num = 255 Then Num = 99
Num2 = Num
Waitms 5
Enum = Num
End If
Else
If In_cr = 0 Then
Waitms 10
Del = Del + 1
If Del > 99 Then Del = 0
Waitms 5
Edel = Del
Elseif De_cr = 0 Then
Waitms 10
Del = Del - 1
If Del = 255 Then Del = 99
Waitms 5
Edel = Del
End If
End If
Return

Tim:
Incr S
Start Timer1
Return

Dta:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90

END

 

  انتشار : ۷ آبان ۱۳۹۴               تعداد بازدید : 675

دانلود جزوه سیستم های دیجیتال 1 دانشگاه صنعتی همدان استاد دوست محمدی

جزوه سیستمهای دیجیتال 1 برای دانلود دانشگاه: صنعتی همدان استاد: مهندس دوست محمدی فرمت: PDF پی دی اف کیفیت: بسیار عالی تعداد صفحات: 108 حجم: 33.7 مگابایت رشته: مهندسی برق دانلود نمونه ...

پاورپوینت فرش ایران در دوره صفویه

پاورپوینت فرش ایران در دوره صفویه

عنوان پاورپوینت:دانلود پاورپوینت فرش ایران در دوره صفویهفرمت: پاورپوینت قابل ویرایشتعداد اسلاید: 44تم زیبا و متناسب با موضوعپاورپوینت کامل و آماده ارائهفهرست مطالب:چکیدهدوره های فرشبافی عصر صفویهصفو یه که بود ؟ از کجا آمدقالي بافي در عصر صفويه طرح ترنج دار قالي موج دريا ... ...

دانلود جزوه مدار 1 استاد وحدت پناه دانشگاه جندی شاپور

دانلود جزوه مدار 1 استاد وحدت پناه دانشگاه جندی شاپور

جزوه مدارهای الکتریکی 1 آماده برای دانلود مشخصات دانشگاه: صنعتی جندی شاپور استاد: سعید وحدت پناه سال: 96 تعداد صفحات: 262 فرمت: پی دی اف PDF کیفیت: عالی حجم: 7 مگابایت نوع جزوه (تایپی یا دست نویس): تایپی با عکس ... ...

اگر به یک وب سایت یا فروشگاه رایگان با فضای نامحدود و امکانات فراوان نیاز دارید بی درنگ دکمه زیر را کلیک نمایید.

ایجاد وب سایت یا
فروشگاه حرفه ای رایگان

پرفروش ترین ها


    پر بازدید ترین های فورکیا


    مطالب تصادفی

    • کاربرد و عملکرد فیبر نوری
    • چطور برخورد دهنده بزرگ هادرون (LHC) کار می کند؟
    • الگوریتم ضرب کننده Booth و پیاده سازی آن با زبان VHDL
    • مشخصه های فنی دوربین Panasonic Lumix DMC G۱
    • صفحه نمایش LCD

    تمام حقوق مادی و معنوی این وب سایت متعلق به "" می باشد