اطلاعیه

Collapse
No announcement yet.

چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم

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

    چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم

    سلام
    چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم
    این سگمنتها با ایسی7448 به میکرو اتصال دارنن درواقع 4پایه یک پورت اشغال میشه ،،منها برنامه نویسیشو بلد نیستم کسی میتونه کمک کنه؟؟؟
    این میکرو ساعت دیجیتال با کمک 1307 هست

    #2
    پاسخ : چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم

    سلام
    دیتاشیت!

    دیدگاه


      #3
      پاسخ : چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم

      نوشته اصلی توسط rozeh
      سلام
      دیتاشیت!
      اتصالشونو بلدم منتها نمی دونم چطور تو بسکام برنامشو بنویسم(مالتی پلکس کردن)
      از روی دیتاشیت میکرو ای وی آر؟؟؟؟؟؟

      دیدگاه


        #4
        پاسخ : چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم

        نوشته اصلی توسط gmaissam
        اتصالشونو بلدم منتها نمی دونم چطور تو بسکام برنامشو بنویسم(مالتی پلکس کردن)
        از روی دیتاشیت میکرو ای وی آر؟؟؟؟؟؟
        من C کار میکنم.
        فکر کنم کامل توضیح داده شده توی این پست:

        http://www.eca.ir/forum2/index.php?t...1635#msg371635

        دیدگاه


          #5
          پاسخ : چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم

          نوشته اصلی توسط rozeh
          من C کار میکنم.
          فکر کنم کامل توضیح داده شده توی این پست:

          http://www.eca.ir/forum2/index.php?t...1635#msg371635
          کامل نبود

          دیدگاه


            #6
            پاسخ : چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم

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




            $regfile = "m32def.dat"
            $crystal = 11059200
            $lib "ds1307clock.lib"
            '------------------------ 7segment -----------------------------------------------
            Config Portb = Output
            Config Portc.2 = Output
            Config Portc.3 = Output
            Config Portc.4 = Output
            Config Portc.5 = Output
            '------------------------ ds 1307 -----------------------------------------
            'configure the scl and sda pins
            Config Sda = Portc.1
            Config Scl = Portc.0
            'address of ds1307
            Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
            Const Ds1307r = &HD1
            Dim I As Byte
            Dim Seco As Byte , Sec1 As Byte , Sec2 As Byte , Sec3 As Byte
            Dim Mine As Byte
            Dim Mine1 As Byte
            Dim Mine2 As Byte
            Dim M As Byte
            Dim *** As Byte
            Seco = 1
            Gosub Ds1307s
            Gosub Ds1307m
            Do
            For I = 0 To 3

            If I = 0 Then
            Portc.3 = 1
            Portc.2 = 0
            Portb = Lookup(sec2 , 7seg)
            End If
            If I = 1 Then
            Portc.2 = 1
            Portc.3 = 0
            Portb = Lookup(sec3 , 7seg)
            End If
            If I = 2 Then
            Portc.4 = 0
            Portc.5 = 1
            Portb = Lookup(mine1 , 7seg)
            End If
            If I = 3 Then
            Portc.5 = 0
            Portc.4 = 1
            Portb = Lookup(mine2 , 7seg)
            End If
            Gosub Ds1307
            If Seco > 59 Then Seco = 0
            Seco = Makedec(seco)
            Sec2 = Seco / 10
            Sec3 = Seco Mod 10
            If Mine > 59 Then Mine = 0
            Mine = Makedec(mine)
            Mine1 = Mine / 10
            Mine2 = Mine Mod 10
            Loop

            Ds1307:
            I2cstart ' Generate start code
            I2cwbyte Ds1307w ' send address
            I2cwbyte 0 ' start address in 1307
            I2cstart ' Generate start code
            I2cwbyte Ds1307r ' send address
            I2crbyte Seco , ack
            I2crbyte Mine , Ack 'sec
            I2cstop
            Return

            Ds1307s:
            If Seco > 59 Then Seco = 0
            Seco = Makebcd(seco)
            I2cstart ' Generate start code
            I2cwbyte Ds1307w ' send address
            I2cwbyte 0 ' starting address in 1307
            I2cwbyte Seco
            I2cstop
            Return
            Ds1307m:
            If Mine > 59 Then Mine = 0
            Mine = Makebcd(mine)
            I2cstart ' Generate start code
            I2cwbyte Ds1307w ' send address
            I2cwbyte 0 ' starting address in 1307
            I2cwbyte Mine
            I2cstop
            Return
            End
            7seg:
            Data &H3F , &H06 , &H5B , &H4F , &H66 , &H6D , &H7D , &H07 , &H7F , &H6F

            دیدگاه


              #7
              پاسخ : چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم

              سلام

              راستش را بخواهی من خیلی وقته بسکام کار نکردم دستور زبانش درست یادم نیست

              ولی میتونم کمکت کنم خودت بنویسی
              ابتدا مشترک هر سون سگمنت را به یک پین میکرو وصل کنید (مثلا B0 to B5) . البته پیشنهاد میکنم با ترانزیستور و یا یک ULN2003 این کار را انجام بدی

              ورودی 7448 را به 4 بیت میکرو بده (A0 to A3)

              حال مقداری که میخواهی هر سون سگمت نشون بده را روی پورت A قرار بده و مشترک همون سون سگمنت را روشن کن و مشترک بقیه سون سگمنت ها را خاموش کن

              مثلا برای عدد 5 روی سون سگمنت اول اینطور بنویس (اگه از ULN برای مشترک ها استفاده میکنی باید مقدار را معکوس بدی چون ULN خروجی صفر به ازای ورودی یک میده و خروجی High impedance در حالت ورودی صفر میده پس بهتره خروجیش را پول پ کنی)
              PORTA = 5
              PORTB = 1

              حالا این کار را با سرعت و به ترتیب انجام بده مثلا برای عدد 951623 این کار را انجام بده

              کد:
              do
              
              PORTA = 9
              PORTB = 1
              
              waitms 5
              
              
              PORTA = 5
              PORTB = 2
              
              waitms 5
              
              PORTA = 1
              PORTB = 4
              
              waitms 5
              
              PORTA = 6
              PORTB = 8
              
              waitms 5
              
              PORTA = 2
              PORTB = 16
              
              waitms 5
              
              PORTA = 3
              PORTB = 32
              
              waitms 5
              
              loop
              اگه دیدید لرزش داره یعنی خاموش و روشن شدنش مشخصه waitms 5 را کمتر کنید
              اگه در نوشتارم در بیسیک اشتباه کردم عذر خواهی میکنم اگه به زبان C میخواستید بهتر میتونستم راهنمایی کنم
              موفق باشید
              امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

              دیدگاه


                #8
                پاسخ : چطور میتونم 6تا سون سگمنت کاتد مشترک کوچک رو برنامه نویسی رفرش کنم

                نوشته اصلی توسط abbas1371sa
                سلام

                راستش را بخواهی من خیلی وقته بسکام کار نکردم دستور زبانش درست یادم نیست

                ولی میتونم کمکت کنم خودت بنویسی
                ابتدا مشترک هر سون سگمنت را به یک پین میکرو وصل کنید (مثلا B0 to B5) . البته پیشنهاد میکنم با ترانزیستور و یا یک ULN2003 این کار را انجام بدی

                ورودی 7448 را به 4 بیت میکرو بده (A0 to A3)

                حال مقداری که میخواهی هر سون سگمت نشون بده را روی پورت A قرار بده و مشترک همون سون سگمنت را روشن کن و مشترک بقیه سون سگمنت ها را خاموش کن

                مثلا برای عدد 5 روی سون سگمنت اول اینطور بنویس (اگه از ULN برای مشترک ها استفاده میکنی باید مقدار را معکوس بدی چون ULN خروجی صفر به ازای ورودی یک میده و خروجی High impedance در حالت ورودی صفر میده پس بهتره خروجیش را پول پ کنی)
                PORTA = 5
                PORTB = 1

                حالا این کار را با سرعت و به ترتیب انجام بده مثلا برای عدد 951623 این کار را انجام بده

                کد:
                do
                
                PORTA = 9
                PORTB = 1
                
                waitms 5
                
                
                PORTA = 5
                PORTB = 2
                
                waitms 5
                
                PORTA = 1
                PORTB = 4
                
                waitms 5
                
                PORTA = 6
                PORTB = 8
                
                waitms 5
                
                PORTA = 2
                PORTB = 16
                
                waitms 5
                
                PORTA = 3
                PORTB = 32
                
                waitms 5
                
                loop
                اگه دیدید لرزش داره یعنی خاموش و روشن شدنش مشخصه waitms 5 را کمتر کنید
                اگه در نوشتارم در بیسیک اشتباه کردم عذر خواهی میکنم اگه به زبان C میخواستید بهتر میتونستم راهنمایی کنم
                موفق باشید
                ممنون
                ببینید این عدد ثابته..مشکل من با ساعته که نمی دونم چطور باید ستش کنم

                دیدگاه

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