|
|
|
|
|
سون سگمنت و AVR 7seg & AVR حرف اول 1 - یه چند وقتی بود که به علت پاره ای مشکلات عدیده ! این وبلاگ به حالت نیمه تعطیل در آمده بود. خب من هم منتظر بودم تا مشکلاتم کمی کمترشه،اما از اونجایی که مشکلات ماهیچ وقت تمومی نداره؛ منم از رو رفتم و گفتم با یه رویکرد جدید برگردم و از این به بعد حل بعضی از مشکلاتی که بهشون برخورد کردم (دقت کنید فقط بعضی از انواع مشکلات!) این جا بنویسم تا همه استفاده کنند . 2 – ... فعلا هیچی ... توضیحات اولیه تو یکی از کارهام لازم شده بود تا یک خروجی از میکرو، شامل یک عدد دو رقمی رو، روی سون سگمنت نشون بدم. بلاخره به این نتیجه رسیدم که به جای نوشتن برنامه و روشن کردن مستقیم هر کدام از سلول های سون سگمنت از یک درایور مثل 7447 استفاده کنم.اما چون این درایور یک رشته ی باینری 4 بیتی رو به عنوان ورودی می گیره و نمایش می ده، و از اون جایی که من هم یک خروجی باینری 8 بیتی رو توی یکی از پورت های میکرو کنترلر داشتم، مجبور شدم تا راهی برای حل این مشکل پیدا کنم. دو راه حل خیلی خیلی ساده به نظرم اومد که البته من از اولی استفاده کردم. این شکل کار خودمه. اینم بگم من با bascom کار می کنم . 1 – الف)بعد از نوشتن برنامه و انتخاب متغییر ها، این دستورات را برای به دست آوردن رقمهای یکان و دهگان به برنامه اضافه می کنیم : N1 = W Mod 10 N2 = W - N1 که w عدد اصلی و n1 رقم یکان و n2 رقم دهگان است . ب) رقم یکان که در 4 پایه ی اول پورت خروجی ایجاد می شود و مشکلی ندارد؛ برای به دست آوردن و تبدیل رقم دهگان به یک عد باینری 4 بیتی با 4 صفر در سمت راست، این چند خط را به برنامه اضافه می کنیم: If N2 = 10 Then N2 = 16 If N2 = 20 Then N2 = 32 If N2 = 30 Then N2 = 48 If N2 = 40 Then N2 = 64 If N2 = 50 Then N2 = 80 If N2 = 60 Then N2 = 96 If N2 = 70 Then N2 = 112 If N2 = 80 Then N2 = 128 If N2 = 90 Then N2 = 144 حال اعداد ما به خروجی مناسب تبدیل شده اند. آنها را با هم جمع کرده و به پورت خروجی می دهیم: N = N1 + N2 Portd = N اکنون غذای ما آماده است! نوش جان 2 – این راه حل به قطعات کمتری نیاز داره. تو این راه حل ما از ترفندی که توی نمایشگرهای مولتی پلکس استفاده می شه، استفاده می کنیم. مرحله ی الف را مجددا تکرار می کنیم . ب) حال 4 پایه ی اول پورت خروجی رو به یک 7447 وصل می کنیم. ج) خروجی 7447 رو به طور یکسان به پایه های a,b,c,d,e,f,g هر دو سون سگمنت وصل می کنیم. د) اما به جای وصل کردن هر دو پایهی آند مشترک سون سگمنت ها، هر کدام از این دو پایه را با یک ترانزیستور به پایه های 5 و 6 پورت خروجی وصل می کنیم. در پایان مقدار خروجی را با 16 برای روشن شدن پایه ی 5 و 32 برای روشن شدن پایه ی 6 و در نتیجه روشن شدن سون سگمنت مورد نظر جمع می کنیم . از آنجا که سرعت و فرکانس انجام این اعمال بسیار زیادتر از آن است که چشم ما توانایی تشخیص آن را داشته باشد، در هر لحظه هر دو سون سگمنت روشن دیده شده و عدد دو رقمی مورد نظر نیز، به روشنی قابل رویت است. حرف آخر همون که اول گفتم ! حسین تائب Hossein Taeeb
|
||