تبلیغات
control - مقاله کامل راه اندازی سون سگمنت با میکرو AVR
درباره وب سایت

ارتباط با ما:


mehdi400v@yahoo.com
آرشیو وب سایت
نویسندگان
موضوعات
لینک دوستان
آمار وب سایت
  • بازدیدهای امروز :
  • بازدیدهای دیروز :
  • كل بازدیدها :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • كل مطالب ارسال شده:
  • آخرین بازدید :
  • آخرین بروز رسانی :
ورود به پروژه


سون سگمنت ها قطعاتی هستند که در آنها از ‪ 8LED‬استفاده شده است . ‪ 7LED‬مربوط به نمایش می باشد ویکی‬ ‫دیگر از آنها مربوط به ممیز است .‬
‫سون سگمنت ها چون از ‪ LED‬تشکیل شده و ‪ LED‬ها ساختاری چون آند و کاتد دارند لذا آنها را به دو دسته آند‬ ‫مشترک و کاتد مشترک دسته بندی می کنند . اگر از داخل آند ها به هم متصل باشند آند مشترک و اگر کاتد ها به‬ ‫هم متصل باشند کاتد مشترک می باشند .‬









سون سگمنت ها قطعاتی هستند که در آنها از ‪ 8LED‬استفاده شده است . ‪ 7LED‬مربوط به نمایش می باشد ویکی‬ ‫دیگر از آنها مربوط به ممیز است .‬
‫سون سگمنت ها چون از ‪ LED‬تشکیل شده و ‪ LED‬ها ساختاری چون آند و کاتد دارند لذا آنها را به دو دسته آند‬ ‫مشترک و کاتد مشترک دسته بندی می کنند . اگر از داخل آند ها به هم متصل باشند آند مشترک و اگر کاتد ها به‬ ‫هم متصل باشند کاتد مشترک می باشند .‬






‫به جدول زیر دقت کنید ( کد زیر برای عدد 4 می باشد ‬.)

G F E D C B A سگمنت
کاتد مشترک
1 1 0 0 1 1 0 کد باینری
B &



G F E D C B A سگمنت
آند مشترک
0 0 1 1 0 0 1 کد باینری
B &


نکته : با توجه به جدول؛ ‪ A‬از کمترین ارزش و ‪ G‬از بیشترین ارزش برخوردار است .‬

نکته : در سون سگمنت آند مشترک برای روشن شدن هر ‪ LED‬باید آن را صفر کنیم .‬

نکته : در سون سگمنت کاتد مشترک برای روشن کردن هر ‪ LED‬باید آن را یک کنیم .‬



‫جدول زیر هگز اعداد و حروفی که می توان روی یک سون سگمنت نمایش داد را نشان می دهد‬

HEX a b c d e f g db Dig it
H3F & 1 1 1 1 1 1 0 0 0
H06 & 0 1 1 0 0 0 0 0 1
H5B & 1 1 0 1 1 0 1 0 2
H4F & 1 1 1 1 0 0 1 0 3
H66 & 0 1 1 0 0 1 1 0 4
H6D & 1 0 1 1 0 1 1 0 5
H7D & 1 0 1 1 1 1 1 0 6
H07 & 1 1 1 0 0 0 0 0 7
H7F & 1 1 1 1 1 1 1 0 8
H6F & 1 1 1 1 0 1 1 0 9
H77 & 1 1 1 0 1 1 1 0 A
H7C & 0 0 1 1 1 1 1 0 B
H39 & 1 0 0 1 1 1 0 0 C
H5E & 0 1 1 1 1 0 1 0 D
H79 & 1 0 0 1 1 1 1 0 E
H71 & 0 1 1 1 0 0 0 0 F
    u 4 c e l e    



شکل زیر نحوه اتصال دو مدل سون سگمنت را نشان می دهد‬:

نکته
در سون سگمنت آند مشترک پایه کنترل باید یک شود و در کاتد مشترک پایه کنترل باید صفر(زمین) شود‬. ‫که در شکل بالا. ‫آن را به خوبی لحاظ کردیم‬.
regfile = "m16def.dat"
$crystal = 1000000
Config Portd = Output
Do
Portd = &B0111111
Waitms 320
Portd = &B0000110
‫023 ‪Waitms‬‬
‫‪Portd = &B‬‬1011011
‫320 ‪Waitms‬‬
‫‪Loop‬‬
‫‪End‬‬
‫مثال بالا یک مدار ساده برای روشن و راه اندازی یک سون سگمنت کاتد مشترک است . دقت شود که پورتی که‬ ‫سون سگمنت به ان متصل میشود را به عنوان خروجی در نظر بگیریم .‬ ‫
دقت شود برای روشن شدن هر ‪ LED‬و در نهایت سون سگمنت علاوه بر وا رد کردن کدهای باینری می توان از‬ ‫کدهای هگز نیز استفاده کرد بر فرض کدهای باینری همان مثال بالا را در نظر بگیرید :‬

‫‪ Portd = &H3F‬کد هگز‬ ‬ ‫‫ 0111111 ‫ Portd = &B‬ کد باینری‬ ‬
‫‪ Portd = &H06‬کد هگز‬ ‬ ‫‫ 0000110 ‫ Portd = &B‬ کد باینری‬ ‬

حال که توانستیم یک سون سگمنت را راه اندازی کنیم از طریق برنامه نویسی های گوناگون روش های دیگر و‬ ‫ساده تر را برای راه اندازی یک سون سگمنت بررسی می کنیم .‬

برنامه نویسی از طریق دستور کاربردی ‪ LOOKUP‬برای راه اندازی سون سگمنت‬


‫ فرم کلی این دستور :                        ( ‪VAR = LOOKUP ( value , lable‬‬

‫‪ Lable‬ : برچسبی است که به آنجا پرش می کند .‬
‫‪ : Value‬اندیس داده است که مقدارش را برمی گرداند بر فرض 0=‪ value‬اولین داده جدول را برمی گرداند و‬ ‫‪ ، value=n‬داده ‪n‬ام را بر می گرداند تعداد اندیس ها و مقدار داده برگشتی به ترتیب نهایتا می تواند 552 و‬ ‫53556 با شد .‬

مثال :‬

‫"‪$regfile = "m16def.dat‬‬ ‫1000000 = ‪$crystal‬‬
‫‪Config Portd = Output‬‬
‫‪Dim A As Byte‬‬
‫:‪D‬‬
‫‪Do‬‬
‫(‪Portd = Lookup(a , Lable‬‬
‫‪Incr A‬‬
‫380 ‪Waitms‬‬
‫3=‪lA‬‬
‫‪Loop Un‬‬
‫0=‪A‬‬
‫‪jmp d‬‬
‫‪End‬‬
‫:‪Lable‬‬
‫‫‪Data &B‬‬0111111,‫‪&B‬‬0000110,‫‪&B‬‬1011011
 
‫مثال بالا را دقت کنید یک متغیر ‪ A‬تعریف کردیم به عنوان کانتر تا دیتا ها را به ترتیب فرا خوانی کند و برای ما‬ ‫بشمارد .حلقه ‪ DO_LOOP‬که به ترتیب یک واحد از طریق دستور ‪ Incr a‬در حلقه زیاد می کند و دستور‬ ‫‪ LOOKUP‬که دیتای مورد نظر را با توجه به دستور برنامه به ‪ lable‬پرش کرده و با توجه به ‪ A‬در ‪ Lookup‬و‬ ‫اینکه مقدار ان در ابتدا صفر است اولین دیتا را که به صورت باینری هم در قسمت ‪ Lable‬تعریف کردیم فرا خوانی‬ ‫کرده وبر روی پورت ‪ D‬می ریزد و سپس یک واحد به ‪ A‬اضافه شده و با تو جه به حلقه این بار دومین مقدار را‬‫خوانده و بر می گرداند و روی ‪ PORTD‬می ریزد . و این کار ادامه دارد تا زمانی که 3=‪ A‬شود چون برای حلقه‬ ‫شرط گذاشتیم لذا به محض 3 شدن مقدار ‪ ، A‬از حلقه خارج می شود ، در خط بعد 0=‪ A‬شده و دستور ‪، Jmp d‬‬ ‫خط برنامه به  :‪ D‬پرش می کند و دوباره به همین ترتیب ....!‬ ‫

 در اینجا به جای این که‬ ‫تک ، تک هر عدد را به صورت کد در بیارید از یک تراشه به نام 7447 که یک مبدل ‪ BCD‬به سون سگمنت است‬ ‫استفاده می کنیم لذا هم کار با آن ساده تر است و هم خطوط برنامه نویسی کمتری داریم و نیاز به کدکردن به‬ ‫صورت دستی نداریم .‬

 
7447 ‪IC‬‬ : ‫کار را برای ما بسیار ساده کرده از طریق این مبدل کافی است در ورودی عدد دلخواه بر فرض 5‬ ‫را بدهیم و در خروجی آن کد این عدد را که مربوط به سون سگمنت است را بگیریم .‬

نکته :
برای راه اندازی سون سگمنت های کاتد مشترک از مدل 8447 ‪ IC‬استفاده می شود .‬ ‫شکل زیر نحوه اتصال 7447 را به میکرو ویک سون سگمنت آند مشترک نشان می دهد .‬

‫‪‫"‪$regfile = "m16def.dat‬‬
‫1000000 = ‪$crystal‬‬
‫‪Config Portd = Output‬‬
‫‪Dim A As Byte‬‬
‫:‪D‬‬
‫‪Do‬‬
‫‪Incr A‬‬
‫‪Portd = A‬‬
‫500 ‪Waitms‬‬
‫‫‪Loop Un‬‬ 9=‪lA‬‬
‫0=‪A‬‬
‫‪jmp d‬‬
‫‪End‬‬


گاهی لازم است که از چند سون سگمنت در کنار هم استفاده کنید لذا چندین راه وجود دارد :‬

‫1_ با توجه به تعداد پورت های میکرو به هر پورت یک سون سگمنت متصل کنید و جدا جدا و پشت سر هم برای‬ ‫هر پورت برنامه راه اندازی سون سگمنت را بنویسید که کاری بیهوده و وقت گیر است و همچنین همه پورت های‬ ‫میکرو اشغال می شود و مانع از این می شود که از پورت ها ی دیگر استفاده شود . که ما هم این راه را به هیچ‬ ‫وجه توصیح نمی کنیم .‬

‫2_ رفرش کردن سون سگمنت ها )مالتی پلکس کردن( در این روش هر تعداد سون سگمنتی که داریم را با‬ ‫توجه به پایه های دیتاهای آنها می آییم و این پایه ها را به هم وصل می کنیم و پایه ای که زمین می کردیم یا ‪VCC‬‬ ‫به عنوان پایه کنترل به صورت جدا به پورت میکرو اتصال داده و با صفر و یک کردن این پایه ها هر سون سگمنتی‬ ‫که بخواهیم را روشن می کنیم .‬

مانند شکل زیر : (مدار داخلی تمام سون سگمنت های چند تایی مانند شکل زیر می باشد‬)

$regfile = "m16def.dat"
$crystal = 1000000
Config Portd = Output
Config Portb = Output
Do
Portb.0 = 0: Portb.1 = 1: Portb.2 = 1: Portb.3 = 1
Portd = &H06
Waitms 1
Portb.0 = 1: Portb.1 = 0: Portb.2 = 1: Portb.3 = 1
Portd = &H5B
Waitms 1
Portb.0 = 1: Portb.1 = 1: Portb.2 = 0: Portb.3 = 1
Portd = &H4F
Waitms 1
Portb.0 = 1: Portb.1 = 1: Portb.2 = 1: Portb.3 = 0
Portd = &H66
Waitms 1
Loop


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

‫خوب حالا چه بهتر که مدار بالا را با 8447 ببندیم به برنامه و شکل زیر توجه کنید :‬


$regfile "m8def.dat"
$crystal = 8000000
Config Portb = Output
Config Portd = Output
Do
Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 1
Portb.0 = 0
Portd = 1
Waitms 1
Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 1
Portb.1 = 0
Portd = 3
Waitms 1
Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 1
Portb.2 = 0
Portd = 6
Waitms 1
Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 1
Portb.3 = 0
Portd = 4
Waitms 1
Loop
End

نکته:
سون سگمنت مورد استفاده در شکل بالا کاتد مشترک می باشد لذا طبق همین پایه های کنترل آن را برنامه‬ ‫ریزی کریم.
(پایه های کنترل همان پایه های 1،2،3 و 4 روی سگمنت می باشند)

نکته :
8447 تراشه راه انداز سگمنت های کاتد مشترک می باشد .

‬‫نکته :
زمان صفر و یک کردن پایه های کنترل (در این مثال ‪ (portb‬دقت شود که ابتدا تما م پورت ها یک باشند و‬ ‫بعد به صورت مرحله به مرحله ‪    pin‬مورد نظر را صفر کنید و در مرحله بعد دوباره همه را یک و به همین ترتیب تا‬ ‫آخر ، این موضوع بسیار مهم است زیرا در غیر این صورت ممکن دچار مشکل شوید و جواب دلخواه را نگیرید.‬

‫‫مثال : در این مثال ما عدد 4631 را روی سون سگمنت آند مشترک از طریق IC 7447 یرای شما به نمایش‬ گذاشتیم‬.
 
$regfile "m8def.dat"
$crystal = 8000000
Config Portb = Output
Config Portd = Output
Do
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 0
Portb.0 = 1
Portd = 1
Waitms 1
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 0
Portb.1 = 1
Portd = 3
Waitms 1
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 0
Portb.2 = 1
Portd = 6
Waitms 1
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 0
Portb.3 = 1
Portd = 4
Waitms 1
Loop
End
 
 
 


‫مدار ها یی که ما در اینجا تا به حال طراحی کردیم مدار هایی هستند که در برنامه ‪ proteuse‬طراحی شده و جواب‬ ‫گرفتیم اما اگر بخواهیم به صورت عملی چنین مداری را به ببندید دچار مشکل شده و با افت جریان مواجه می شوید‬ ‫لذا برای تامین جریان مورد نظر برای سون سگمنت ها باید آنها را با ترانزیستور اتصال دهید که ما در زیر یک نمونه‬ ‫از این مدار را برای شما قرار دادیم .‬
‫مقاومت های موجود در مدار زیر همگی ‪ 20k‬می باشند .‬



طبقه بندی: الکترونیک،
ارسال توسط مهدی میرحسینی | تاریخ : جمعه 9 آبان 1393 | نظرات ()
عناوین آخرین مطالب ارسالی
صفحات دیگر