تماس با ما

فید خبر خوان

نقشه سایت

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

    امروز پنجشنبه ۲۶ تیر ۱۴۰۴


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

    پیوند ها

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

    آمار بازدید

    • بازدید امروز : 65
    • بازدید دیروز : 362
    • بازدید کل : 1309997

    شمارنده معکوس 6 رقمی


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

    برای تنظیم ابتدا دکمه ستاره "*" را چند ثانیه نگه دارید تا وارد مرحله تنظیم شویم ، سپس میتوان توسط صفحه کلید رقم مورد نظر را وارد نمود.

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

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

    بعد از متوقف شدن میتوان دکمه مربع "#" را چند ثانیه فشرده نگه دارید تا عدد تنظیم شده اول مجدداً بارگزاری و آماده شمارش شود.

     

     

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

    شماتیک:

    سورس برنامه:

     

    *****************************************
    Name : Counter 6 Digit
    Ver : 2.0
    Designer : Esmaeil Mohammad Zadeh
    Mobile : 09139545140
    Date : 1390/7/ 21
    *****************************************
    $regfile = "m32def.dat" : $crystal = 8000000 : Enable Interrupts

    Config Kbd = Portd : Config Clock = Soft , Gosub = Sectic
    Declare Sub Show

    Config Portc = Output : Seg Alias Portc
    Config Porta = Output : Disp Alias Porta
    Config Pinb.0 = Input : Triger Alias Pinb.0
    Config Portb.1 = Output : Rel Alias Portb.1
    Config Portb.3 = Output : Dp Alias Portb.3
    Dim Flag As Bit
    Dim A As Byte , I As Byte , L As Byte , X As Byte , Key As Byte
    Dim Num As Long , Eprom As Long
    Dim Num_str As String * 6 , Dig As String * 6 , Dig1 As String * 1
    Dim E_num As Eram Long , Eeprom As Eram Long
    *******************************************************
    Begin:
    Flag = 0 : Dp = 1 : Num = E_num : Eprom = Eeprom
    Main:
    Key = Getkbd()
    Key = Lookup(key , Keybd)
    If Key = 10 Then
    _sec = 0
    Do
    Key = Getkbd()
    If _sec => 2 Then Goto Esmaeil
    Call Show
    Loop Until Key > 11
    End If
    If Key = 11 Then
    _sec = 0
    Do
    Key = Getkbd()
    If _sec => 2 Then
    Rel = 0 : Num = Eprom : Waitms 3
    E_num = Num
    End If
    Call Show
    Loop Until Key > 11
    End If
    Call Show
    Debounce Triger , 1 , Decrease , Sub
    If Num = 0 Then : Rel = 1 : Else : Rel = 0 : End If

    jmp Main
    *******************************************************
    Sub Show
    For I = 1 To 6
    Num_str = Str(num) : L = Len(num_str)
    If L < 6 Then
    A = 6 - L : Dig = String(a , 48) 48 = Ascii Code "0"
    Num_str = Dig + Num_str
    End If
    Dig = Mid(num_str , I , 1)
    A = Val(dig)
    Seg = Lookup(i , Dta2)
    Disp = Lookup(a , Dta)
    Waitms 1
    Next I
    End Sub
    *******************************************************
    Decrease:
    If Num > 0 Then Decr Num
    Waitms 2
    E_num = Num
    Return
    *******************************************************
    Esmaeil:
    Num = 0 : X = 0 : _sec = 0 : Flag = 1
    Do
    Key = Getkbd()
    Seg = &HFF : Disp = &HBF
    Loop Until Key > 11
    Edit:
    Key = Getkbd()
    Call Show
    If _sec => 10 Then Goto Begin
    If Key > 11 Then Goto Edit
    Key = Lookup(key , Keybd)
    _sec = 0
    Select Case Key
    Case 10:
    Waitms 4
    E_num = Num : Waitms 4
    Eeprom = Num : Goto Begin
    Case 11 :
    If X <> 0 Then
    Num = 0 : X = 0
    Else
    Goto Begin
    End If
    Case Else:
    Incr X
    If X <= 6 Then
    Dig1 = Str(key ) : Dig = Str(num)
    Dig = Dig + Dig1 : Num = Val(dig)
    End If
    End Select
    Do
    Key = Getkbd()
    Call Show
    Loop Until Key > 11
    JMP Edit
    *******************************************************
    Sectic:
    If Flag = 1 Then Toggle Dp
    Return

    Keybd:
    Data 1 , 6 , 7 , 10 , 2 , 5 , 8 , 0 , 3 , 4 , 9 , 11
    Dta:
    Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90
    Dta2:
    Data &H00 , &H01 , &H02 , &H04 , &H08 , &H10 , &H20
    END

     

     

      انتشار : ۷ آبان ۱۳۹۴               تعداد بازدید : 716
    دانلود جزوه مدار 1 دانشگاه شهید بهشتی استاد حق جو

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

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

    کتاب طراحی مدارهای RF، تئوری و کاربردهای راینهولد لودویگ به صورت PDF و به زبان انگلیسی در 656 صفحه

    کتاب طراحی مدارهای RF، تئوری و کاربردهای راینهولد لودویگ به صورت PDF و به زبان انگلیسی در 656 صفحه

    فرکانس رادیویی (کوته‌نوشت به انگلیسی: RF) به محدوده ای از نوسانات در بازهٔ ۳۰ کیلوهرتز تا ۳۰۰ گیگاهرتز گفته می‌شود که معادل است با بسامد موج‌های رادیویی و جریان‌های متناوبی که حامل سیگنال‌های رادیویی هستند. آراِف معمولاً بیشتر از کارکردهای مکانیکی، به کارکردهای الکتریکی ... ...

    کتاب داستانی افسانه های مشرق زمین

    کتاب داستانی افسانه های مشرق زمین

    کتاب بسیار زیبای افسانه های مشرق زمین در 108 صفحه با فرمت pdf   این کتا ب قدیمی از کتابخانه شخصی اینجانب انتخاب و آماده استفاده کاربران عزیز شده است : منصوررخشانی ... ...

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

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

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


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


      مطالب تصادفی

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

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