اطلاعیه

Collapse
No announcement yet.

سون سگمنت مالتی پلکس

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

    سون سگمنت مالتی پلکس

    با عرض سلام خدمت دوستان گرامی
    میخواستم بدونم از دوستان کسی سورس کد زبان c برای راه اندازی دو سون سگمنت 4 تائی که جواب داده باشه و سخت افزار کمتری بخواد رو در اختیار داره یا نه؟
    من رو یه مدار با at89s51 دارم کار میکنم که نیاز دارم دو عدد سون سگمنت 4 تائی مالتی پلکس رو ران کنم.با استفاده از دو پورت میکرو یکی به عنوان بارگذار مقادیر سگمنت به صورت مشترک(p2) و دیگری جهت فراهم کردن زمین برای هر کدوم از 8 عدد سگمنت(p3) این کار رو انجام دادم.مشکلم اینه که پورتی که باید زمین رو بسازه(p3) به جای ولتاژ صفر یا حداقل نزدیک به اون در حد 4.3 ولتاژ داره.ولتاژ p2 در حد 4.4 هست که بسیار خوبه اما با کم کردن 4.3 از اون تنها 0.1 ولت دو سر سگمنتها میافته که خیلی کمه.
    البته من با استفاده از 8 مقاومت 10 اهمی و اتصال اونها به پایه های پورت 2 و Vcc ولتاژ پورت 2 رو به 4.9 رسوندم اما بازم اختلاف ولتاژ دو پورت کفایت نمیکنه.
    حالا سوال من اینه که چرا ولتاژ p3 اینقدر بالاست در صورتی که هفت 0 منطقی و تنها یک 1 منطقی در این پورت در حال گردش هست؟
    و در نهایت راه حل نرم افزاری یا اگه نشد سخت افزاری برای افزایش اختلاف ولتاژ بین این دو پورت میخوام.
    من به زبان c برنامشو نوشتم و فقط کد و شماتیک یک سگمنت 4 تائی رو میذارم که راحت تر بتونید بررسی کنید و اگه مشکلی هست به بنده بفرمایید.اینم بگم که تو پروتئوس از نظر روشنائی سگمنت ها هیچ مشکلی نداره.
    در خصوص کد برنامه توضیح بدم که در متغیرهای a1 تا a4 مقادیر 1و2و3و4 به صورت سون سگمنتی ذخیره شده که دیگر نیاز به مبدل bcd به سون سگمت نباشد.
    برای ایجاد تاخیر به منظور صفر و یک شدن پورت p3 هر بار تا 1100 شمرده میشود
    خیلی خیلی لطف میکنید اگه کمکم کنید چون بدجور کارم گیره اینه.سپاسگزارم.
    کد و شماتیک در پست بعدی موجود است.

    #2
    پاسخ : سون سگمنت مالتی پلکس

    #include <reg51.h>
    main()
    {
    char a1=0x06,a2=0x5b,a3=0x4f,a4=0x66;
    int i;
    while(1)
    {
    for(i=0;i<1100;i++)
    {
    P3=0x01;
    P2=a1;
    }
    for(i=0;i<1100;i++)
    {
    P3=0x02;
    P2=a2;
    }
    for(i=0;i<1100;i++)
    {
    P3=0x04;
    P2=a3;
    }
    for(i=0;i<1100;i++)
    {
    P3=0x08;
    ;P2=a4
    {
    {
    {

    شماتیک پروتئوس
    http://abovethedream.host22.com/files/Shematic_proteus.DSN
    شماتیک عکس
    http://abovethedream.host22.com/files/Shematic_image.JPG
    فایل hex
    http://abovethedream.host22.com/files/7segment_mpx_cc.hex

    دیدگاه


      #3
      پاسخ : سون سگمنت مالتی پلکس

      اولاً از اینکه سوالتونو کامل و واضح پرسیدید تشکر میکنم.
      بعضیا میان همینجوری پست میزنن: " آقا یه مدار ساختم کار نمیکنه چکار کنم؟ " (یعنی در این حد !!)
      و اما جواب شما اینه که :
      با یک پین میکرو نمیتوانید جریان لازم برای 8 عدد "سگمنت احتمالی" را تامین کنید
      و حتماً باید از ترانزیستور در پایه مشترک هر "سون سگمنت" استفاده کنید.
      فقط باید در بیس هر ترانزیستور یه مقاومت 1K قرار بدید و برای هر سگمنت هم یک مقاومت سری 330 اهم.
      در ضمن در مورد مدارهایی که جریان کشی و مالتیپلکس نوری مطرح هست به پروتیوس زیاد اتکا نکنید و عملی تست کنید.
      اصلاً همین مداری که شما بستی اصولاً همین قدر هم که کار میکنه نباید کار کنه.
      چونکه شما از پکیج کاتد مشترک استفاده کردی ولی داری به پایه های مشترک 1 میدی!(سوتی دادی) ولی تو عین ناباوری شب مدارت تو پروتیوس کارمیکنه !
      اینو تصحیح کن و مدارو عملی ببند و نتیجه رو اینجا بگو.

      دیدگاه


        #4
        پاسخ : سون سگمنت مالتی پلکس

        با سلام خدمت دوست عزیزم جناب hobbyist
        خیلی ممنون از اینکه وقت گذاشتی و پست رو خوندی و حتی از مدار تست گرفتی که ما رو شرمنده کردی واقعا.
        در مورد بستن ترانزیستور برای جریان کشی حتما یه بار مدار رو اونجور که گفتی دستی می بندم و تست می گیرم تا نتیجشو ببینم.اونوقت اگه جواب داد مدارش شلوغ نمیشه؟ چون میخوام pcb مدار رو هم بزنم میترسم نتونم تک لایه درش بیارم نظر شما چیه؟
        یکی از دوستان میگفت به جای اینکه از منبع تغذیه 5 ولتی استفاده کنی از یه منبع 9 ولتی(از این باتری کتابی ها) استفاده کن بعد با یک رگولاتور 7805 تغذیه 5 ولت میکرو رو بساز بعد خروجی میکرو (سگمنت ها) رو با خود منبع 9 ولت به وسیله مقاومت pull up کن اونوقت میشه اختلاف پتانسیل دو سر سگمنت ها را کاملا زیاد کرد.نظر شما در مورد این روش چیه؟آیا این کار عملی هست یا به مشکل بر میخوره؟
        در مورد برنامه که گفته بودید به پایه های مشترک 1 دارم میدم مسئله اینه که اون یک بین 4 تا پایه زمین سون سگمنت ها با فرکانس بسیار بالا داره میچرخه و نمیذاره سگمتی که نوبت ران شدنش نیست ران بشه.البته میشد به جای اینکه یه 1 واسه چرخیدن بذاریم یه 0 گذاشت که اونم جواب میده منتها من چون فکر کردم با چرخیدن یک 1 در بین 3 تا 0 ولتاژ پایین تر میاد این روش رو انتخاب کردم.در هر صورت چون سرعت خیلی بالاست فرق نمیکنه که 1 بین پایه ها بچرخه یا 0 هر دو مدل جواب میده.اگه شما جور دیگه سگمنت رو ران میکنید بگید شاید مفید باشه.
        بازم سپاسگزار از کمک و توجهتون.
        موفق باشید.

        دیدگاه


          #5
          پاسخ : پاسخ : سون سگمنت مالتی پلکس

          نوشته اصلی توسط logicman
          در مورد بستن ترانزیستور برای جریان کشی حتما یه بار مدار رو اونجور که گفتی دستی می بندم و تست می گیرم تا نتیجشو ببینم.اونوقت اگه جواب داد مدارش شلوغ نمیشه؟ چون میخوام pcb مدار رو هم بزنم میترسم نتونم تک لایه درش بیارم نظر شما چیه؟
          میتونی تک لایه در بیاری. یعنی در آوردم که میگم! اصلاً خود مقاومت بعنوان جامپر عمل میکنه و سیم کشی رو راحت تر.

          یکی از دوستان میگفت به جای اینکه از منبع تغذیه 5 ولتی استفاده کنی از یه منبع 9 ولتی(از این باتری کتابی ها) استفاده کن بعد با یک رگولاتور 7805 تغذیه 5 ولت میکرو رو بساز بعد خروجی میکرو (سگمنت ها) رو با خود منبع 9 ولت به وسیله مقاومت pull up کن اونوقت میشه اختلاف پتانسیل دو سر سگمنت ها را کاملا زیاد کرد.نظر شما در مورد این روش چیه؟آیا این کار عملی هست یا به مشکل بر میخوره؟
          من اینجوری تا حالا نبستم.این روش اصولی نیست ولی در بعضی مواقع جواب میده.
          لینک پایین رو ببین، دو تا مدار یکی با روشی که من گفتم و دیگری با روشی که دوستتون گفته.
          روش دوم رو تست کنید(با مقاومت 10کیلو) اگر جواب نداد روش من حتماً جواب میده.
          http://www.kmitl.ac.th/~kswichit/clock/clock.htm

          در مورد برنامه که گفته بودید به پایه های مشترک 1 دارم میدم مسئله اینه که اون یک بین 4 تا پایه زمین سون سگمنت ها با فرکانس بسیار بالا داره میچرخه و نمیذاره سگمتی که نوبت ران شدنش نیست ران بشه.البته میشد به جای اینکه یه 1 واسه چرخیدن بذاریم یه 0 گذاشت که اونم جواب میده منتها من چون فکر کردم با چرخیدن یک 1 در بین 3 تا 0 ولتاژ پایین تر میاد این روش رو انتخاب کردم.در هر صورت چون سرعت خیلی بالاست فرق نمیکنه که 1 بین پایه ها بچرخه یا 0 هر دو مدل جواب میده.اگه شما جور دیگه سگمنت رو ران میکنید بگید شاید مفید باشه.
          بنظرم شما در درک مالتیپلکس زمانی یک کم دچار سوء تفاهم شده اید. اصلاً گرفتن ولتاژ پایه های مشترک موضوعیتی نداره!
          چون اونها سیگنالهای گذرا با فرکانس بالا هستند.
          مخلص کلوم اینکه وقتی میخواهید از کاتد مشترک استفاده کنید باید 0 رو بچرخونید.

          عملی تست کنید و نتیجه رو اعلام کنید تا ما هم یه چیزی یاد بگیریم

          دیدگاه


            #6
            پاسخ : سون سگمنت مالتی پلکس

            چه کردی برادر؟

            دیدگاه


              #7
              پاسخ : سون سگمنت مالتی پلکس

              با سلام خدمت جناب hobbyist و بقیه دوستان هرچند که دیر شده(از بس گرفتار شدم یادم رفت جواب بذارم) ولی برای بقیه دوستان که شاید بخوان این کار رو انجام بدن و سون سگمنت مالتی پلکس راه اندازی کنن و برای تشکر از آقای hobbyist که بنده رو کمک فرمودند این پست رو میذارم.
              واقعیت اینه که یک سون سگمنت سبز رنگ نیاز به جریان بیشتری از یک سون سگمنت قرمز رنگ داره و از طرفی نور سون سگمنت قرمز در روشنائی بسیار بهتر و واضح تر از سون سگمنت سبز هستش و من هم در مداری که بحث شد از سون سگمنت سبز استفاده میکردم که با تغییر اون به سون سگمنت قرمز مشکل حل شد.البته باز هم نیاز به پول پ هستش که هم با مقاومت(روشی که خودم گفتم)و هم با ترانزیستور(روشی که جناب hobbyist گفتند) جریان تقویت میشه و نور به بهترین حالت خودش میرسه.نتیجه اینکه در مداری که با یه باطری ساده و جریاندهی کم میخواید ببندبد و قصد دارید تعداد زیادی سگمنت یا led رو روشن کنید توصیه من اینه که از led و سون سگمنت قرمز به جای هر رنگ دیگه استفاده کنید.led قرمز به ولتاژی حدود 2 ولت برای روشن شدن نیاز داره در حالی که led سبز به 3 ولت نیاز خواهد داشت.

              دیدگاه

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