تبلیغات
الکترونیک وبرق صنعتی - ایجاد حرکت در تابلو روان - حرکت به چپ در تابلو روان با جاروب ستونی
 
درباره وبلاگ




مدیر وبلاگ : رامین آذری
آپلود عکس
نویسندگان
صفحات جانبی
نظرسنجی
رشته تحصیلی شماچیست؟










آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :


.....
.....

.....
..... .....
.....
.....
..... 

آگهی انجمن بهترین وبلاگ

انجمن آگهی بهترین کد قالب وبلاگ

افزایش امتیاز وبلاگ

جایزه ویژه : تبدیل وبلاگ به سایت
وبلاگSponsered By :

قالب کد وبلاگ قالب وبلاگ



..... .....
..... ..... .....
..... .....

جاوا اسكریپت

..... ..... آپلود عکس .....
دانلود آهنگ جدید
الکترونیک وبرق صنعتی
صفحه نخست             تماس با مدیر           پست الکترونیک               RSS                  ATOM

در این جلسه چگونگی ایجاد حرکت دادن متون و تصاویر را در تابلو روان می‌آموزیم، البته برنامه تابلو روان بسته به اینکه شما در سخت افزار خود از چه روشی جهت جاروب ماتریس LED استفاده کرده باشید فرق خواهد کرد. معمولاً اگر از جاروب ستونی استفاده کنید نوشتن برنامه برای حرکت متن بصورت افقی ساده تر است و در جاروب سطری نوشتن برنامه برای حرکت عمودی ساده تر خواهد بود. البته شما فرد خوش شانسی هستید چون مداری که در ابتدای این بحث به شما برای تست عملی معرفی شد، قابلیت اجرای جاروب سطری و ستونی را با توجه به ساختار حقیقتاً ساده خود دارد.

sبرای ساخت مدار فوق اینجا کلیک کنید.

من برای شروع بحث، برنامه حرکت متن را در مدارات تابلو روان با جاروب سطری آغاز میکنم. همانطور که میدانید در این روش در جدول گلایف اطلاعات هر کاراکتر بصورت ستونی ذخیره شده و ما در هر لحظه فقط یک ستون را فعال میکنیم و سایر ستون ها غیر فعال هستند.

sجهت مطالعه روش جاروب ستونی اینجا کلیک کنید.

حالا تصور کنید که ما بجای اینکه در این روش ابتدا اطلاعات ستون اول را در محل اصلی خود یعنی همان ستون اول نمایش دهیم، در ستون دوم نمایش دهیم و همینطور سایر اطلاعات را به اندازه یک ستون جابجا نمایش دهیم، چه اتفاقی می‌افتد؟ بله، متن به نمایش در خواهد آمد ولی بصورت افقی به اندازه یک ستون جابجا شده. اساس کار حرکات افقی ( چپ و راست ) در تابلوهای روان با جاروب ستونی هم همین است. به برنامه زیر دقت کنید.

ForS =0 To 4
ForRefresh =1 To 10
Scan= &B00000001
ForCol =0 To 4
Index =S + Col
Portb = Lookup(Index , Gelayof)
Portd =Scan
Waitus250
RotateScan , Left
Portd =&H00
Next Col
NextRefresh
NextS

همانطور که می‌بینید این برنامه از سه حلقه For-Next تو در تو تشکیل شده، دو حلقه درونی صرفاً به نمایش اطلاعات می‌پردازند. حلقه داخلی یکبار تمام ستونها را جاروب میکند. حلقه وسط این کار را تا ده مرتبه تکرار میکند تا متن به اندازه کافی دیده شود و حلقه خارجی هر بار محل خواندن اطلاعات از جدول گلایف را به اندازه یک بایت (یک ستون) جابجا میکند. که باعث به حرکت درآمدن متن در تابلو میشود.

دقت کنید که ما در دستور Lookup آدرس خواندن اطلاعات را از متغییر Index میخوانیم، که این متغییر هم مقدارش توسط جمع زدن مقادیر Col و S محاسبه میشود که Col ستون در حال جاروب شدن بر روی ماتریس LED را نشان میدهد و S محل شروع خواندن مقادیر در جدول گلایف است.

خوب برنامه را اجرا کنید. تعجب کردید... یک کاراکتر عجیب غریب که مثل دنباله به کاراکتر اصلی شما چسبیده و به دنبال آن حرکت میکنه. این موجود ناشناخته از کجا پیداش شد؟! نمیتونید این مطلب به گردن میکروکنترلر بیچاره بیندازید. چون اون بجز اجرای بی چون چرای دستورات شما هیچکار دیگری نمیکنه. پس باید بکار خود شک کنیم. بله دوباره به سراغ برنامه میرویم و آنرا با دقت بیشتری بررسی میکنیم. زمانی که مقدار متغییرS یک میشود یعنی لحظه‌ای کاراکتر به اندازه یک ستون بر روی ماتریس LED جابجا میشود مقدار متغییرIndex برابر با 5 خواهد شد ( البته در زمانی که مقدار متغییر Col برابر با 4 است ). و در دستور بعدی توسط فرمان Lookup میکرو به سراغ برداشتن بایت ششم ذخیر شده در جدول Gelayof میرود. در حالی که ما این جدول را تا 5 بایت تعریف کردیم و عملاً در مکان ششم هیچ متغییری توسط ما تعریف نشده و محتویات آن ناحیه نامشخص است.

برای تولید کدهای گلایف مورد نظر خود از نرم افزار آنلاین و رایگان آن استفاده کنید. برای استفاده بر روی لینک زیر کلیک کنید:

http://www.hlachini.com/text2hex.wiz

Gelayof:
Data &B10000011
Data &B11110101
Data &B11110110
Data &B11110101
Data &B10000011

و باعث میگردد که شما آن موجود غریبه را مشاهده کنید. برای رفع این مشکل باید به انتهای جدول گلایف به اندازه ابعاد ماتریس اضافه کنیم و مقادیری را در آن قرار دهیم که زمان نمایش چیزی بر روی تابلو روان نمایان نشود.( در این برنامه تمامی خانه ها یک میشوند ).

Gelayof:
Data &B10000011
Data &B11110101
Data &B11110110
Data &B11110101
Data &B10000011

Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111

خوب دوباره برنامه را اجرا میکنیم، البته این بار با جدول گلایف جدید. به نظر میرسد که دیگر مشکلی وجود ندارد و ما توانستیم آن غول بی شاخ و دم که پشت سر متن اصلی حرکت می‌کرد را از بین ببریم. اما هنوز یک ایراد کوچک در تابلو باقی مانده آنهم این است که هنگام نمایش حرکت به سمت چپ کاراکتر A یکدفعه بصورت کامل ظاهر می‌شود و سپس به تدریج از سمت چپ تابلو روان خارج میشود. در حالیکه بهتر این هست که کمی برای خود کلاس بگذارد و به تدریج از سمت راست تابلو روان ظاهر شود و از سوی دیگر خارج.

برای انجام این کار بهترین کار قرار دادن یک فضای خالی در ابتدای کاراکتر در جدول گلایف است که ابعاد این فضا به اندازه ابعاد ماتریس LED تابلو روان میباشد. که در تابلوی ما این مقدار به اندازه یک کاراکتر است. پس جدول گلایف به شکل زیر تغییر میکند.

Gelayof:
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111

Data &B10000011
Data &B11110101
Data &B11110110
Data &B11110101
Data &B10000011

Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111

البته عجله نکنید چون اگر همین الان برنامه را اجرا کنید خواهید دید که کاراکترA به آرامی از سمت راست وارد میشود( همانطور که انتظار داشتیم ) ولی به محض اینکه بصورت کامل وارد شد یکدفعه مخفی شده و دوباره این حرکت را تکرار میکند. خوب علت این قضیه این هست که ما هنوز به برنامه جاروب این تغییر در ابعاد جدول گلایف را اطلاع ندادیم. بله باید در حلقه For-Next اول مقدار نهایی متغییر S را از 4 به 9 افزایش دهیم ( به اندازه طول اضافه شده به جدول گلایف ). و دستورات مربوط به جاروب به شکل زیر در خواهند آمد.

ForS =0 To 9
ForRefresh =1 To 10
Scan= &B00000001
ForCol =0 To 4
Index =S + Col
Portb = Lookup(Index , Gelayof)
Portd =Scan
Waitus250
RotateScan , Left
Portd =&H00
Next Col
NextRefresh
NextS

متن کامل برنامه حرکت به سمت چپ در تابلو روان با جاروب ستونی :

'*********************************************
'* This Program Writing By : Hossein Lachini *
'* Scroll to Left on the LEDSigne Board *
'* For to get more details visit : *
'*
www.HLachini.com *
'* Contact to me by :
eLachini@Gmail.com *
'*********************************************

$regfile = "m8def.dat"
$crystal = 8000000

Config Portb =Output
Config Portd =Output

Dim Col As Byte
Dim Scan As Byte
Dim Refresh As Byte
Dim Index As Byte
Dim S As Byte


Do
ForS =0 To 9
ForRefresh =1 To 10
Scan= &B00000001
ForCol =0 To 4
Index =S + Col
Portb = Lookup(Index , Gelayof)
Portd =Scan
Waitus250
RotateScan , Left
Portd =&H00
Next Col
NextRefresh
NextS
Loop
End 'end program

Gelayof:
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111

Data &B10000011
Data &B11110101
Data &B11110110
Data &B11110101
Data &B10000011

Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111

من جهت سهولت کار شما کدهای فوق به همراه فایل Hex برنامه را جهت دانلود در سایت قرار دادم.

Í

جهت دانلود فایلهای فوق اینجا کلیک کنید.

حجم فایل : 1،04 کیلوبایت

فرمت فایل Zip