برگزیده های پرشین تولز

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

v.noor

کاربر تازه وارد
تاریخ عضویت
18 مارس 2005
نوشته‌ها
5
لایک‌ها
0

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

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

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

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

 

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
سلام دوست عزیز :)
خیلی خوش اومدی :happy:

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

k99mrm.png


برنامه اسمبلی رو هم در زیر مشاهده میکنی :
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:
 

v.noor

کاربر تازه وارد
تاریخ عضویت
18 مارس 2005
نوشته‌ها
5
لایک‌ها
0

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

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

 

Electronics Art

کاربر فعال برق و الکترونیک
کاربر فعال
تاریخ عضویت
9 جولای 2005
نوشته‌ها
1,374
لایک‌ها
18
به نقل از v.noor :

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

خواهش میکنم :) قابلی نداشت :happy:
 

ali.ahvaz

Registered User
تاریخ عضویت
1 آگوست 2012
نوشته‌ها
475
لایک‌ها
63
محل سکونت
شیراز
دوستان شماره پایه های سون سگمنت 4 تایی با نقطه ( dot ) چی هست ؟
لطفا روش تست رو پیشنهاد ندید !!
 

mhsnrah

Registered User
تاریخ عضویت
28 آگوست 2007
نوشته‌ها
340
لایک‌ها
41
محل سکونت
تهران

AMIRHE007

کاربر تازه وارد
تاریخ عضویت
23 نوامبر 2015
نوشته‌ها
1
لایک‌ها
0
سن
30
سلام برنامه سون سگمنت چهارتایی با استفاده از basecom رو خواستم که از عدد 1 تا 255 رو بشماره (نیازی به کانتر نیست میخوام اعداد باینری رو برام بنویسه تو سگمنتا )
این برنامه در بیسکام باید به صورتی نوشته شه که سگمنت اول همیشه صفر باشه و بقیه سگمنتا اعداد باشند
برنامه اش هم تا حدودی نوشتم ولی اشتباه زیاد داره(عکس)
Untitled.jpg
اگه ممکنه برام برنامه رو به ایمیلم ارسال کنید ممنون
ezati [email protected]
 
بالا