nexpay

1 سوال در مورد ميکروکنترلر و سون سگمنت 4 تايي

شروع موضوع توسط v.noor ‏14 ژانویه 2006 در انجمن برق و الکترونیک

  1. v.noor

    v.noor کاربر تازه وارد

    تاریخ عضویت:
    ‏18 مارس 2005
    نوشته ها:
    5
    تشکر شده:
    0

    سلام خدمت همه دوستان

    من يک سوال در مورد وصل کردن ميکروکنترلر به يک سون سگمنت 4 تايي دارم. البته ببخشد من در کار با ميکروکنترلر تقريبا تازه کار و آماتور هستم.!

    سون سگمنت 4 تايي 12 پايه دارد (5614) که 8 پايه آن مربوط به 8 قسمت! سون سگمنت است و 4 پايه هم بر فرض کاتد مشترک بودن پايه اي است که گراند بخشي که ميخواهيم روشن شود به آن متصل ميشود. (البته اگه اشتباه نکنم، چون با تست کردن اونا رو پيدا کردم. شايدم من دارم اشتباه ميکنم!)

    حالا سوال من اينه: چطور ميشه عدد 1234 رو روي اين چهار تا نشان داد؟ راستش من هر چي فکر کردم ديدم اگه عدد 1 رو روي يکي درست کنم و پايه کاتد اونو اکتيو کنم براي يکي ممکنه اما اگه بخوام براي عدد دوم پايه دوم رو هم اکتيو کنم قسمت هاي عدد اولي با دومي قاطي ميشه. خلاصه اينکه اگه راهنمايي کنيد بسيار ممنون ميشم.

     
  2. Electronics Art

    Electronics Art کاربر فعال برق و الکترونیک کاربر فعال

    تاریخ عضویت:
    ‏9 جولای 2005
    نوشته ها:
    1,374
    تشکر شده:
    16
    محل سکونت:
    تبریز
    سلام دوست عزیز :)
    خیلی خوش اومدی :happy:

    خوب این سگمنتهای 4 تایی یا 6 تایی یا 8 تایی بر اساس تکنیک مالتی پکسینگ کار میکنند
    یعنی شما هر لحظه اطلاعات مورد نظر خود را مثلاً از چهار تا پایه پورت P1 میکرو کنترلر به دکودر 7447
    ( برای کاتد مشترک ) می فرستید و دکودر بعد از دکود کردن اطلاعات اعداد را بر روی پایه های a تا g سگمنتها
    قرار میدهد و شما با استفاده از چهار تا پایه دیگر پورت P1 در هر لحظه فقط آند یک سگمنت را به Vcc وصل میکنید
    ( فرض بر آند مشترک بودن ) حال بر تکیه بر خطای دید انسان و انتخاب هر سون سگمنت در یک لحظه عدد مورد
    نظر را بر روی سون سگمنت مورد نظر نشان میدهیم به عکس زیر نگاه کن من در این مدار با استفاده از پورت P1 میکرو و یک دکودر 7447 و یک سگمنت چهار تایی آند مشترک عدد 1234 را بر روی سگمنتها نشان داده ام
    همون طور که رو عکس نوشتم برای تامین جریان سگمنتها باید از چهار تا ترازیستور استفاده کنی برای هر سگمنت یکی تا جریان مورد نیاز از طریق ترازیستورها تامین بشه چون میکرو نمیتونه این جران رو تامین کنه و آسیب می بینه
    خروجی میکرو رو به بیس ترازیستور میزنی و کلکتور ترازیستور رو به Vcc و امیتر رو به آند سگمنت وصل میکنی البته یک مقاوت یک کیلو به بیس و یک مقاومت یک کیلو به امیتر وصل میکنی که مقاومت امیتر بستگی به نور سگمنتها داره این مدار ترازیستوری رو برای هر چهار تا سگمنت تکرار میکنی

    [​IMG]

    برنامه اسمبلی رو هم در زیر مشاهده میکنی :
    PHP:
    $MOD51
    ORG 0H
    MAIN
    :
    MOV P1,#01H
    SETB P1.4
    CALL DELAY
    MOV P1
    ,#02H
    SETB P1.5
    CALL DELAY
    MOV P1
    ,#03H
    SETB P1.6
    CALL DELAY
    MOV P1
    ,#04H
    SETB P1.7
    CALL DELAY
    JMP MAIN

    DELAY
    :
    MOV R0,#0FH
    LOOP2:
    MOV R1,#0FFH
    LOOP1:
    DJNZ R1,LOOP1
    DJNZ R0
    ,LOOP2
    RET
    END
    توضیحات برنامه :
    برای نوشتن عدد 1 در سگمنت SEG 1 باید معادل هگز عدد 1 با طول هشت بیت یعنی 01H رو در روی پورت P1
    بنویسی و بلافاصله پایه آند اون سگمنت رو که در اینجا به پایه P1.4 وصل شده یک کنی
    برای نوشتن عدد 2 در سگمنت SEG 2 باید معادل هگز عدد 3 با طول هشت بیت یعنی 02H رو در روی پورت P1
    بنویسی و بلافاصله پایه آند اون سگمنت رو که در اینجا به پایه P1.5 وصل شده یک کنی
    برای نوشتن عدد 3 در سگمنت SEG 3 باید معادل هگز عدد 3 با طول هشت بیت یعنی 03H رو در روی پورت P1
    بنویسی و بلافاصله پایه آند اون سگمنت رو که در اینجا به پایه P1.6 وصل شده یک کنی
    برای نوشتن عدد 4 در سگمنت SEG 4 باید معادل هگز عدد 4 با طول هشت بیت یعنی 04H رو در روی پورت P1
    بنویسی و بلافاصله پایه آند اون سگمنت رو که در اینجا به پایه P1.7 وصل شده یک کنی
    البته بین فاصله نوشتن هر عدد در روی پورت باید یک تاخیر کوچولو ایجاد کنی تا میکرو قاط نزنه
    این تاخیر در برنامه با ساب روتین DEALY ایجاد شده که بین نوشتن هر عدد فراخوانی میشه
    در آخر هم باید برنامه رو در یک حلقه بسته قرار بدی تا همیشه عدد 1234 در خروجی نمایش داده بشه

    اگه سوالی برات پیش اومد بگو جواب بدم :happy:
     
  3. v.noor

    v.noor کاربر تازه وارد

    تاریخ عضویت:
    ‏18 مارس 2005
    نوشته ها:
    5
    تشکر شده:
    0

    دوست عزيز، سلام
    از لطف شما بسيار سپاسگزارم. توضيحات شما بسيار کامل و مفيد بود

    با تشکر فراوان
    :)

     
  4. Electronics Art

    Electronics Art کاربر فعال برق و الکترونیک کاربر فعال

    تاریخ عضویت:
    ‏9 جولای 2005
    نوشته ها:
    1,374
    تشکر شده:
    16
    محل سکونت:
    تبریز
    خواهش میکنم :) قابلی نداشت :happy:
     
  5. Persianit

    Persianit Registered User

    تاریخ عضویت:
    ‏19 ژوئن 2005
    نوشته ها:
    910
    تشکر شده:
    16
    محل سکونت:
    پای کامپیوتر
  6. Electronics Art

    Electronics Art کاربر فعال برق و الکترونیک کاربر فعال

    تاریخ عضویت:
    ‏9 جولای 2005
    نوشته ها:
    1,374
    تشکر شده:
    16
    محل سکونت:
    تبریز
    :blink: :blush: :happy: :D :) :rolleyes: :eek:
     
  7. ali.ahvaz

    ali.ahvaz Registered User

    تاریخ عضویت:
    ‏1 آگوست 2012
    نوشته ها:
    467
    تشکر شده:
    60
    محل سکونت:
    کهکشان راه شیری-کره زمین-قاره آسیا-((ایران)) - ...
    دوستان شماره پایه های سون سگمنت 4 تایی با نقطه ( dot ) چی هست ؟
    لطفا روش تست رو پیشنهاد ندید !!
     
  8. mhsnrah

    mhsnrah Registered User

    تاریخ عضویت:
    ‏28 آگوست 2007
    نوشته ها:
    338
    تشکر شده:
    41
    محل سکونت:
    تهران
    [​IMG]
     
    ali.ahvaz از این نوشته تشکر کرده است.
  9. AMIRHE007

    AMIRHE007 کاربر تازه وارد

    تاریخ عضویت:
    ‏23 نوامبر 2015
    نوشته ها:
    1
    تشکر شده:
    0
    سلام برنامه سون سگمنت چهارتایی با استفاده از basecom رو خواستم که از عدد 1 تا 255 رو بشماره (نیازی به کانتر نیست میخوام اعداد باینری رو برام بنویسه تو سگمنتا )
    این برنامه در بیسکام باید به صورتی نوشته شه که سگمنت اول همیشه صفر باشه و بقیه سگمنتا اعداد باشند
    برنامه اش هم تا حدودی نوشتم ولی اشتباه زیاد داره(عکس)
    Untitled.jpg
    اگه ممکنه برام برنامه رو به ایمیلم ارسال کنید ممنون
    ezati 16@yahoo.com
     
zarpopخرید بک لینک عسل طبیعی و گرده گل ایرانیfootbal