Google Translate

جهت Ø¯Ø±ÙŠØ§ÙØª رايگان تازه هاي سايت شماره مويايل خود را به همراه نام Ùˆ نام خانوادگي به شماره 99009123812060 ارسال كنيد.
| · موتور همو پلار در 10 ثانيه | [ 5 نظر - 15974 مشاهده ] |
| · نصب برنامه در Slax | [ 9 نظر - 12253 مشاهده ] |
| · ورود به Ù…ØÙŠØ· Slax | [ 16 نظر - 12719 مشاهده ] |
| · خواندن ÙØ§ÛŒÙ„های MMC Ùˆ SD با ÙØ±Ù…ت FAT16 , FAT32 | [ 33 نظر - 26594 مشاهده ] |
| · رله کنترل ÙØ§Ø² Three Phase Monitor | [ 35 نظر - 30830 مشاهده ] |
تابلوروان: انیمیشن در تابلوروان توسط 74HC595
در مقالات قبلی تابلوروان شما با Ù†ØÙˆÙ‡ گسترش تابلو توسط Ù„Ú† آشنا
شدید. اما Ø§Ø³ØªÙØ§Ø¯Ù‡ از Ù„Ú† در طراØÛŒ خود Ù…ØØ¯ÙˆØ¯ÛŒØªÙ‡Ø§ÛŒÛŒ را نیز در Ù¾ÛŒ خواهد داشت. Ú©Ù‡ در
زیر به برخی از مهمترین انها اشاره شده است :
در نتیجه شما بدون در نظر Ú¯Ø±ÙØªÙ† سایر پایه های کنترلی Ùˆ همچنین خطوط متصل به ستون ها ØŒ برای یک تابلوی 16 در 64 Ú©Ù‡ از 8 عدد Ù„Ú† تشکیل شده باید 8 خط برای دیتا Ùˆ 8 خط نیز برای LE در نظر بگیرید، Ú©Ù‡ تا همین جا 16 خط یا دو پورت 8 بیتی میکروی شما مشغول میشود Ùˆ این دست شما را در طراØÛŒ ها خواهد بست. از طرÙÛŒ سیم بندی مدار نیز بسیار شلوغ میشود. تصویر 1
اما راه ØÙ„ این موضوع Ø§Ø³ØªÙØ§Ø¯Ù‡ از یک Ø´ÛŒÙØª رجیستر است. همانطور Ú©Ù‡ میدانید یک Ø´ÛŒÙØª رجیستر معمولا به یک خط ورودی کلاک نیاز دارید Ú©Ù‡ بصورت مشترک بین آنها Ø§Ø³ØªÙØ§Ø¯Ù‡ میشود Ùˆ یک ورودی دیتا!(مقایسه کنید با 8 خط دیتای مورد نیاز Ù„Ú†) از طرÙÛŒ در Ø´ÛŒÙØª رجیسترها شما یک خط خروجی دارید Ú©Ù‡ اضاÙÙ‡ کردن Ø´ÛŒÙØª رجیستر بعدی را بسیار آسان میکند Ùˆ کاÙÛŒ است بصورت پشت سر هم Ø´ÛŒÙØª رجیستر ها بسته شوند. در این صورت شما به هر تعداد Ú©Ù‡ Ø´ÛŒÙØª رجیستر هم داشته باشید Ùقط دوخط یا به عبارتی دو پایه از پورت های گرانبهای میکرو را Ø§Ø³ØªÙØ§Ø¯Ù‡ میکنید. تصویر2
در این مقاله شما با ساخت Ùˆ گسترش تابلوروان 24 در 24 از طریق Ø´ÛŒÙØª رجیستر 74595 آشنا میشوید Ùˆ همچنین با Ø§Ø³ØªÙØ§Ø¯Ù‡ از این تابلو به نمایش انیمیشن واقعی با Ú©Ù…Ú© از نرم Ø§ÙØ²Ø§Ø± آنلاین تبدیل انیمیشن به کد هگز تابلوروان خواهیم پرداخت. در این Ø´ÛŒÙØª رجیستر 5 پایه کنترلی داریم Ùˆ در ØØ§Ù„ÛŒ Ú©Ù‡ امکان راه اندازی ان Ùقط با 3 پایه بود من هر 5 پایه را به میکرو وصل کردم تا در توسعه های بعدی مدار Ùˆ برنامه دستمان باز باشد.(تصویر شماره 1)
Ø´ÛŒÙØª رجیستر 74595 دارای 16 پایه است(تصویر 2). این قطعه از دو بخش
تشکیل شده است، بخش ورودی شامل یک Ø´ÛŒÙØª رجیستر معمولی است Ú©Ù‡ اطلاعات را بصورت
سریال از پایه 14 Ø¯Ø±ÛŒØ§ÙØª کرده Ùˆ بصورت 8 خط موازی به قسمت بعدی منتقل میکند. بخش
اول دارای دو ورودی و یک خروجی دیگر نیز میباشد. پایه شماره 11 پایه ورودی کلاک است
Ùˆ پایه 10 پایه ریست است. همچنین پایه 9 خروجی سریال Ø´ÛŒÙØª رجیستر است Ú©Ù‡ برای اتصال
به Ø´ÛŒÙØªØ±Ø¬ÛŒØ³ØªØ± بعدی مورد نیاز خواهد بود.(تصویر 3) تصوبر 3
بخش دوم این Ø¢ÛŒ سی ØŒ در واقع یک Ù„Ú† 8 بیتی است. Ú©Ù‡ خطوط ورودی آن از طبقه قبل(Ø´ÛŒÙØª رجیستر) Ù…ÛŒ آیند، این طبقه به خروجی Ø´ÛŒÙØª رجیستر نیز متصل است Ú©Ù‡ 8 خط خروجی 74595 از طریق Ù„Ú† آن تهیه میشود. قاعدتا یک Ù„Ú† باید پایه ای جهت عمل Ù„Ú† کردن داشته باشد Ú©Ù‡ این پایه ورودی شماره 12 است Ùˆ تا زمانی Ú©Ù‡ بر روی این پایه لبه پایین رونده ای اعمال نشود Ù„Ú† اطلاعات را در خود ذخیره (Ù„Ú†) نمیکند. از طرÙÛŒ به جهت اینکه بتوان خروجی را نیز کنترل نمود Ùˆ در صورت لزوم خروجی قطع Ùˆ یا وصل نمود پایه شماره 13 Ú©Ù‡ به Ù„Ú† متصل است در نظر Ú¯Ø±ÙØªÙ‡ شده است.(تصویر 4) تصویر4
یکی از بزرگترین مزیتهای این Ø´ÛŒÙØª رجیستر داشتن همین بخش Ù„Ú† آن است Ú©Ù‡ در Ø¨ØØ« تابلوروان امکانات خوبی را برای شما ÙØ±Ø§Ù‡Ù… میکند. نقشه مدار تابلوروان را در زیر میتوانید مشاهده کنید. در صورتیکه تصویر را در ابعاد بزرگتر میخواهید میتوانید برروی تصویر زیر کلیک کنید. برای دانلود نقشه نیز میتوانید اینجا کلیک کنید. تصویر 5 برنامه Ùˆ نقشه طوری طراØÛŒ شده اند Ú©Ù‡ شما Ø¨Ø±Ø§ØØªÛŒ بتوانید نقشه را گسترش داده Ùˆ یا ØØªÛŒ کوچکتر کنید Ùˆ برنامه نیز با تغییر پارامترهایی Ú©Ù‡ شامل Total_frame تعداد ÙØ±ÛŒÙ…ها Ùˆ Width طول تابلو Ùˆ Height Ø§Ø±ØªÙØ§Ø¹ تابلو است در ابتدای برنامه خود بخود پیکربندی شده Ùˆ نیازی به تغییرات دیگری از سوی شما نیست! برنامه از دو سابروتین تشکیل شده Ùˆ یک روتین وقÙÙ‡. در روتین وقÙÙ‡ هر بار یکی دسته از ستونها در ماتریس ها ÙØ¹Ø§Ù„ میشود Ùˆ اطلاعات همان ستون نیز در Ø´ÛŒÙØª رجیستر ها قرار میگیرد. مثلا در یک Ù„ØØ¸Ù‡ ستون اول تمامی ماتریس ها Ùˆ بعد ستون 2 Ùˆ در اجرای بعدی ستون 3 Ùˆ ... اطلاعات هر ÙØ±ÛŒÙ… توسط سابروتین Readframe خوانده میشود Ùˆ درون آرایه Buf قرار میگیرد. این سابروتین با Ú¯Ø±ÙØªÙ† شماره ÙØ±ÛŒÙ… مورد نظر شما، اطلاعات را از جدول Ani خوانده Ùˆ در آرایه Buf ذخیره میکند Ùˆ اطلاعات این آرایه توسط روتین وقÙÙ‡ تایمر یک Refresh Ú©Ù‡ وظیÙÙ‡ Ø±ÙØ±Ø´ کردن ماتریس ها را برعهده دارد خوانده میشود. به عبارت دیگر هر چیزی Ú©Ù‡ در Buf قرار گیرد برروی تابلو نمایش داده میشود. از طرÙÛŒ برای هر ÙØ±ÛŒÙ… باید مقداری تاخیر نیز تا نمایش ÙØ±ÛŒÙ… بعدی ایجاد کرد. Ùˆ از آنجایی Ú©Ù‡ مقدار تاخیر Ùوق در انیمشن GIF تعری٠شده است این اطلاعات در جدول Dly قرار داده شده است Ùˆ ÙˆØ§ØØ¯ آن میلی ثانیه است Ùˆ وظیÙÙ‡ تابع framedelay نیز خواندن این تاخیر Ùˆ ایجاد آن میباشد. Ú©Ù‡ شما با دادن شماره ÙØ±ÛŒÙ… به آن ØŒ تاخیر مورد نیاز همان ÙØ±ÛŒÙ… را خواهید داشت. سورس برنامه :
$regfile = "m32def.dat"
$crystal = 8000000 $hwstack = 32 $swstack = 32 $framesize = 24 '---- this section from Gif Properties Const Total_frame = 2 Const Width = 24 Const Height = 24 '---- end of Gif Properties Const Number_of_matrix_in_row = Width / 8 Const Byte_in_col = Height / 8 Const Frame_size = Width * Byte_in_col Const Number_of_byte_in_8_col = Byte_in_col * 8 Declare Sub Readframe(byval Frame_number As Word) Declare Sub Framedelay(byval Frame_number As Word) ' Port A for COL refresh Config Porta = Output ' Port D for 74595 register Config Portd = Output 'Clock value: 15.625 kHz Config Timer0 = Timer , Prescale = 64 On Ovf0 Refresh Enable Timer0 ' enable the timer interrupt Enable Interrupts Sh_cp Alias Portd.3 Ds Alias Portd.4 St_cp Alias Portd.5 Mr Alias Portd.6 Oe Alias Portd.7 Col_port Alias Porta Dim Col As Byte Dim Buf(frame_size) As Byte Dim I As Byte Dim Matrix_counter As Word Dim Buf_idx As Word Dim Col_number_in_buf As Byte Dim Frame_count As Word Reset Mr Set Mr Reset Oe Do For Frame_count = 1 To Total_frame Readframe Frame_count Framedelay Frame_count Next Frame_count Loop End 'end program Sub Readframe(byval Frame_number As Word) Local Idx As Word Local Lookup_idx As Word Disable Timer0 Decr Frame_number 'Start of Frame in lookup table Lookup_idx = Frame_number * Frame_size For Idx = 0 To Frame_size Buf(idx) = Lookup(lookup_idx , Ani ) Incr Lookup_idx Next Idx Enable Timer0 End Sub Sub Framedelay(byval Frame_number As Word) Local D As Word D = Lookup(frame_number , Dly ) Waitms D End Sub Refresh: Reset Mr Set Mr Col_port = &H00 Set Oe Col_port = 2 ^ Col For Matrix_counter = 1 To Number_of_matrix_in_row Col_number_in_buf = Number_of_matrix_in_row - Matrix_counter Col_number_in_buf = Col_number_in_buf * Number_of_byte_in_8_col Buf_idx = Col * Byte_in_col Buf_idx = Buf_idx + Col_number_in_buf For I = 1 To Byte_in_col Shiftout Ds , Sh_cp , Buf(buf_idx) , 1 , 8 Incr Buf_idx Next I Next Matrix_counter Reset St_cp Set St_cp Reset Oe If Col < 7 Then Incr Col Else Col = 0 End If Return - HERE INSERT DATA  برنامه Ùوق جهت کامل شدن نیاز به اطلاعات یک تصویر انیمیشن دارد Ú©Ù‡ برای این مثال من همان ÙØ§ÛŒÙ„ پیش ÙØ±Ø¶ برنامه آنلاین تبدیل انیمیشن GIF به کد تابلوروان را انتخاب کردم. Ú©Ù‡ تمامی جداول لازم را به همراه پارامترهای لازم Ù…ØØ§Ø³Ø¨Ù‡ Ùˆ تولید میکند. این برنامه طول Ùˆ عرض تصویر Ùˆ تعداد ÙØ±ÛŒÙ…ها را مشخص کرده Ùˆ شما میتوانید آن را در برنامه خود وارد کنید Ùˆ سپس دو جدول ساخته شده Ú©Ù‡ یکی برای اطلاعات تصویر هر ÙØ±ÛŒÙ… Ùˆ دیگر تاخیر بین هر ÙØ±ÛŒÙ… است را تولید میکند Ú©Ù‡ کاÙÛŒ است در برنامه Ú©Ù¾ÛŒ کنید. نمونه کد تولید شده برای تصویر گربه شیطون(تصویر 6) را در زیر آوردم Ú©Ù‡ شما با مراجعه به آدرس http://www.hlachini.com/gifanimation2hex.wiz هر تصویر دیگر Ùˆ یا نمونه های موجود در برنامه را در تابلوی خود Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید. تصویر 6
کدهای برنامه :
'****************************************************Â
'* This Code Generate By : Hossein Lachini          * '* The GIF Animation to Hex Code for LED Sign Board * '* For to get more details visit :                  * '*                           www.HLachini.com       * '* Contact to me by : eLachini@Gmail.com            * '* Mobile/SMS :              +98 912 381 2060       * '**************************************************** ' Width  : 24 ' Height : 24 ' Toltal Frame  : 2 Ani: ' Frame 1 ' Delay : 500ms Data &H00, &H00, &H00 '........................ Data &H03, &H80, &H00 '......###............... Data &H05, &H00, &H00 '.....#.#................ Data &H0A, &H00, &H00 '....#.#................. Data &H12, &H00, &H00 '...#..#................. Data &H13, &H9F, &H80 '...#..###..######....... Data &H20, &HE0, &H60 '..#.....###......##..... Data &H20, &H00, &H18 '..#................##... Data &H20, &H00, &H04 '..#..................#.. Data &H40, &H41, &H08 '.#.......#.....#....#... Data &H43, &H40, &H10 '.#....##.#.........#.... Data &H42, &H48, &H20 '.#....#..#..#.....#..... Data &H43, &H90, &H20 '.#....###..#......#..... Data &H40, &H10, &H20 '.#.........#......#..... Data &H40, &H08, &H20 '.#..........#.....#..... Data &H40, &H10, &H20 '.#.........#......#..... Data &H40, &H10, &H20 '.#.........#......#..... Data &H20, &H08, &H10 '..#.........#......#.... Data &H20, &H00, &H08 '..#.................#... Data &H10, &H01, &H04 '...#...........#.....#.. Data &H0B, &H40, &H18 '....#.##.#.........##... Data &H06, &H60, &H60 '.....##..##......##..... Data &H03, &H9F, &H80 '......###..######....... Data &H00, &H00, &H00 '........................ ' Frame 2 ' Delay : 500ms Data &H00, &H00, &H00 '........................ Data &H1C, &H00, &H00 '...###.................. Data &H0A, &H00, &H00 '....#.#................. Data &H05, &H00, &H00 '.....#.#................ Data &H09, &H00, &H00 '....#..#................ Data &H09, &HCF, &HC0 '....#..###..######...... Data &H10, &H70, &H30 '...#.....###......##.... Data &H10, &H00, &H0C '...#................##.. Data &H10, &H00, &H02 '...#..................#. Data &H20, &H20, &H84 '..#.......#.....#....#.. Data &H21, &HA0, &H08 '..#....##.#.........#... Data &H21, &H22, &H10 '..#....#..#...#....#.... Data &H21, &HCC, &H10 '..#....###..##.....#.... Data &H20, &H14, &H10 '..#........#.#.....#.... Data &H20, &H12, &H10 '..#........#..#....#.... Data &H20, &H14, &H10 '..#........#.#.....#.... Data &H20, &H0C, &H10 '..#.........##.....#.... Data &H10, &H02, &H08 '...#..........#.....#... Data &H10, &H00, &H04 '...#.................#.. Data &H08, &H00, &H82 '....#...........#.....#. Data &H05, &HA0, &H0C '.....#.##.#.........##.. Data &H03, &H30, &H30 '......##..##......##.... Data &H01, &HCF, &HC0 '.......###..######...... Data &H00, &H00, &H00 '........................ Dly: Data 500%, 500%  امیدوارم این آموزش توانسه باشد به شما Ú©Ù…Ú© کرده باشد تا بهتر بتوانید از این ابزار Ù…Ùید Ú©Ù‡ سایت بسکام نیز آنرا در اپلیکیشن نوت 204(AN #204) خود معرÙÛŒ کرده Ùˆ به آدرس زیر در سایت خود معرÙÛŒ Ùˆ نصب کرده است: http://tools.mcselec.com/GIFdecode/index.php ما را با نظرات خود در توسعه Ùˆ قرار دادن Ù…Ø¨Ø§ØØ« Ùˆ نرم Ø§ÙØ²Ø§Ø±Ù‡Ø§ÛŒ Ù…Ùید راهنمایی نمائید.  کلمات کليدي : Schematic Circuit Code LED Sign Board 74HC595 GIF Animation BASCOM AVR ATmega32 میکرو کنترولر تابلوروان بسکام انیمیشن نرم Ø§ÙØ²Ø§Ø± آنلاین سورس نقشه شماتیک ماتریس ارسال شده در مورخه : پنجشنبه، 7 مرداد ماه ، 1389 توسط lachini
مرتبط با موضوع : مثال تابلو 16 در 128 با مبدل آنلاین [پنجشنبه، 11 شهريور ماه ، 1389] تابلو روان Ùˆ اندازه گیری دما با SMT160 [چهارشنبه، 3 شهريور ماه ، 1389] تابلوروان با میکرو 8051 [سه شنبه، 5 مرداد ماه ، 1389] نرم Ø§ÙØ²Ø§Ø± آنلاین تبدیل متن به کد هگز [چهارشنبه، 17 تير ماه ، 1388] تابلوروان توسط کیبورد Ùˆ LCD [پنجشنبه، 8 اسفند ماه ، 1387] تابلوروان قابل اتصال به پورت سریال [سه شنبه، 17 دي ماه ، 1387] تابلوروان 8 در 128 ÙØ§Ø±Ø³ÛŒ [چهارشنبه، 27 آذر ماه ، 1387]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ]
[ ارسال جوابیه ] |
امتیاز دهی به مطلب
تعداد آراء: 88 ![]() انتخاب ها
|
