اطلاعیه

Collapse
No announcement yet.

راه اندازی سون سگمنت با 74595 avr

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    راه اندازی سون سگمنت با 74595 avr

    سلام من می خوام سه تا سون سگمنت را با avr راه اندازی کنم توسط شیفت رجیستر 595 دیتا شیت را خوندم ولی نمی دونم چطور باید برنامه را بنویسم فقط دهگان و صدگان و یکان را جدا کردم اساتید اگر این کار را انجام دادین لطفا راهنماییم کنید البته من فقط بیسیک بلدم
    با تشکر

    #2
    پاسخ : راه اندازی سون سگمنت با 74595 avr

    سلام. در راهنمای نرم افزار بسکام دستور shiftout را مطالعه کن و با توجه به دیتاشیت 74595 حساسیت به لبه، پین تولید کننده کلاک، پین لچ و پین دیتا رو متصل کن. مقادیر مورد نیاز برای نمایش رو از نوع متغیر byte تعریف و از طریق یک پین شیفت کن.
    STM32 واقعا یه چیز دیگه است...

    دیدگاه


      #3
      پاسخ : راه اندازی سون سگمنت با 74595 avr

      ممنون از توضیحتون
      اینطور که من متوجه شدم
      MR باید به VCC وصل بشه .و oe به gnd وds دیتا

      ۳) ST_CP : پالس نمایش است و SH_CP : پالس حرکت
      یک جدول هم باید بسازیم برای کد های باینری
      حالا اگر سه تا سون سگمنت را بخواهیم درایو کنیم
      باید به هر 5 پایه فرمان بدیم یا فقط ds ,SH_ch, st_cp ؟
      اگر ممکنه در مورد شیفت اوت و نحوه برنامه نویسی توضیح بدین
      با تشکر

      دیدگاه


        #4
        پاسخ : راه اندازی سون سگمنت با 74595 avr

        وقت بخیر

        ممکنه این لینک مفید باشه مطالع کنید .

        http://www.ermicro.com/blog/?p=1050

        دیدگاه


          #5
          پاسخ : راه اندازی سون سگمنت با 74595 avr

          من یک جدول دیتا نوشتم برای سگمنت ها که با دستور lookup فراخوانی بشه و دهگان وصدگان هم جدا کردم کلا برنامه را تا اینجا که تونستم نوشتم مفهوم دستور شیفت اوت هم فهیمیدم فقط نمی دونم چه طور ازش استفاده کنم لطف کنید این و برام توضیح بدبن این برنامه که نوشتم:
          regfile = "m16def.da
          t"
          $crystal = 8000000
          '-----------------------------------------------------





          Config Pina.0 = Input
          Config Portc = Output
          Config Portd = Output




          Ds Alias Portc.0
          St Alias Portc.2
          Clock Alias Portc.1
          sp Alias Portc.3

          Do


          Temp = 555
          Sadgan = Temp / 100
          Temp = Temp Mod 100
          Dahgan = Temp / 10
          Yekan = Temp Mod 10

          Loop


          Data7seg:
          Data &B11000000 '0
          Data &B11111001 '1
          Data &B10100100 '2
          Data &B10110000 '3
          Data &B10011001 '4
          Data &B10010010 '5
          Data &B10000010 '6
          Data &B11111000 '7
          Data &B10000000 '8
          Data &B10010000 '9

          دیدگاه


            #6
            پاسخ : راه اندازی سون سگمنت با 74595 avr

            اولا بهتر بود برنامه رو در بین تگ Code قرار بدید! ثانیا برنامه شما خوبه، بعد از انجام محاسبات و رجوع به جدول Lookup دیتای این جدول بر روی پین دیتا باید شیفت بشه و پین کلاک نیز باید باشه.
            دستور به این شکل است:
            [code=text]SHIFTOUT Pin, Pclock, var, option, bits, delay[/code]
            در دستور فوق به جای Pin، پینی که به دیتای شیفت رجیستر متصل است باید متصل شود، pclock ، کلاک انتقال دیتا را مشخص می کند که بر روی کدام پین ست شده، var نام متغیر حاوی اطلاعات است بهتر است به جای جدول آن ها در یک آرایه قرار دهید. Option که از همه مهمتر است تعیین وضعیت انتقال دیتا است که به شرح ذیل است:

            0 >> ابتدا بیت پر ارزش حساس به لبه پایین رونده
            1 >> ابتدا بیت پر ارزش حساس به لبه بالا رونده
            2 >> ابتدا بیت کم ارزش حساس به لبه پایین رونده
            3 >> ابتدا بیت کم ارزش حساس به لبه بالا رونده

            که مقدار فوق بر اساس دیتاشیت 74595 به دست میاد.
            دو مقدار Bits و Delay هم اختیاری است برای شما می تواند 8 بیت باشد با تاخیر ارسال 100 میکروثانیه.

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

            [code=vb]
            'IN THE NAME OF ALLAH
            'CODE BY JAVAD MOOSAVI
            'TWO DIGIT 7SEG WITH 74595
            '********************************
            $regfile = "m16def.dat"
            $crystal = 8000000

            Dim Tmp As Integer
            Dim A As Integer
            Dim B As Integer
            Dim I As Byte
            Dim J As Byte


            Config Portb.0 = Output
            Config Portb.1 = Output
            Config Portb.2 = Output
            Config Portb.3 = Output
            Config Portb.4 = Output

            Tr1 Alias Portb.3
            Tr2 Alias Portb.4

            Clock Alias Portb.0
            Sdata Alias Portb.1

            'Getting data from e.g. a sensor

            Tmp = 57

            'Calculations here
            ''''''''&# 039;'''''''&#03 9;'''''''' '''''

            A = 5
            B = 7

            'Switch all segments off!
            Tr1 = 0
            Tr2 = 0

            Do
            'Assigning data to variables
            I = Lookup(a , Sevenseg)
            J = Lookup(b , Sevenseg)

            'Shifitng data out
            Shiftout Sdata , Clock , I , 0 , 8 , 100
            'Switch first segment on
            Tr1 = 1
            'Wait for refresh
            Waitms 50
            'Switch first segment off
            Tr1 = 0
            'Shift data for second segment
            Shiftout Sdata , Clock , J , 0 , 8 , 100
            'Switch second segment on
            Tr2 = 1
            'Wait for refresh
            Waitms 50
            'Switch second segment off
            Tr2 = 0

            Loop

            End
            Sevenseg:
            Data &B11000000 '0
            Data &B11111001 '1
            Data &B10100100 '2
            Data &B10110000 '3
            Data &B10011001 '4
            Data &B10010010 '5
            Data &B10000010 '6
            Data &B11111000 '7
            Data &B10000000 '8
            Data &B10010000 '9
            [/code]
            STM32 واقعا یه چیز دیگه است...

            دیدگاه


              #7
              پاسخ : راه اندازی سون سگمنت با 74595 avr

              ممنون از شما دوست واستاد گرامی منطق برنامه را متوجه شدم اما شما فقط به دو پایه آی سی پالس داده اید در صورتی که 595 سه پایه spو, st وds دارد که من جای پین اختصاص داده شده به پایه سوم را خالی میبینم یا من اشتباه می کنم ؟
              برای سه سون سگمنت می شه با دستور for به تعداد 10مرتبه استفاده کرد؟

              اضافه شده در تاریخ :
              من از این برنامه نتوانستم جواب بگیرم لطفا من را راهنمایی کنید

              دیدگاه

              لطفا صبر کنید...
              X