ساخت LED ماتریسی با بسکام
دات ماتریس چیست:
آموزش اتصال دات ماتریس به میکروکنترلر، به احتمال زیاد شما هم با ماتریسی های led آشنا هستید. در واقع ماتریس های led آرایه ای از ledها هستند که مطابق شکل ادامه نوشته به هم وصل شده اند. که بیشتر برای نمایش اعداد و حروف روی آنها استفاده می شود. در این مقاله ما می خواهیم هم با ساختار آنها آشنا بشویم و هم روش اتصال آن به میکروکنترلر را یاد بگیریم.
برای شروع کار به شکل زیر خوب دقت کنید که چگونه آرایه ای از led ها به هم وصل شدن . و چگونه با اعمال ولتاژ می توان هر یک از این ال ای دی ها را روشن کرد ؟ خب اگر بخواهیم بخواهیم چندتا از ال ای دی را در یک ستون روشن کنیم چی ؟ یا اگر بخواهیم فقط چندتا از ال ای دی های یک ردیف روشن بشن باید چیکار کنیم؟
چگونه به دات ماتریس فرمان دهیم:
خب ما در شکل بالا 7 ردیف و 5 ستون داریم, که همانطور که می بینیم در هر ردیف آند همه ال ای دی ها به هم وصل هستن و در هر ستون ها هم کاتد ها بهم وصل هستن این روش سیم کشی قطعات که در ال ای دی ها و کی پدها استفاده می شود را اتصال ماتریسی گویند.
خب ما اگر الان به R1 ولتاژ 3 ولت(متناسب با ولتاژ کار ال ای دی ها) اعمال کنیم و C1 را به زمین وصل کنیم LED بالا سمت چپ روشن خواهد شد . خب اگر الان C1,C2,C3,C4,C5 را به زمین وصل کنیم کل ال ای دی های ردیف بالا روشن خواهد شد …. و برعکس این موضوع برای ستون ها هم صادق است. یعنی اگر به ستون اول را به زمین وصل کنیم و به R1 تا R7 ولتاژ 3 ولت اعمال کنیم کل ستون یک روشن خواهد شد .
پس تا الان بطور کلی با نحوه روشن شدن ال ای دی ها آشنا شدیم خب اگر بخواهیم روی ماتریس حرف C انگلیسی را بنویسیم چیکار باید انجام دهیم . برای درک این موضوع اول به شکل زیر با دقت نگاه کنید:
همانطور که در شکل ملاحظه می کنید. در هر سطر آند و در هر ستون کاتد همه LEDها به هم وصل شده اند. در نتیجه برای روشن کردن یک ال ای دی LED به عنوان مثال. برای روشن کردن LED متصل به سطر اول و ستون سوم, باید سطر اول را به ولتاژ مثبت و ستون سوم را به زمین وصل کرد.
اکنون نوبت آن است که نوشته ای را روی ماتریسی 8*8 شکل بالا نمایش دهیم. برای مثال فرض کنید می خواهید LED9 و LED18 را روشن کنیم و سایر LEDها خاموش باشند. می دانیم که برای روشن شدن LEDها باید سطر مربوط را یک و ستون مربوط را صفر کنیم, بنابراین دو سطر اول و دوم را یک و ستون اول و دوم را صفر می کنیم. نتیجه مطلوب حاصل نمی شود! چراکه به جای دو LED9 و LED18 انتخابی چهار ال ای دی LED شامل LED9, LED10, LED17 و LED18 روشن شده اند.
مشکل پیش آمده را با وضع یک قانون کلی حل می کنیم :
(در هر لحظه, فقط باید یکی از ستون های ماتریس فعال صفر باشد). به این ترتیب ابتدا ستون اول را, در حالی که سایر ستون ها یک هستند, صفر می کنیم و در همین حال سطر مربوط را یک قرار می دهیمو پس در این لحظه فقط LED شماره LED9 روشن می شود.
همین مراحل را برای روشن کردن ال ای دی LED شماره LED18 انجام می دهیم. برای اینکه هر دو LED9 و LED18 از چشم ناظر روشن به نظر برسند باید مرتبا ستون فعال (Active Column) را در طول ماتریس جابه جا کنیم و در زمان معین, اطلاعات مربوط را روی سطرها قرار دهیم. این عمل را اصطلاحا جاروب (Scan) می گویند.
حال پروژه را با کامپایلر بسکام پیادی سازی میکنیم
پروژه اول سلام میکنه مخفف اسم منو میزنه بعد اعداد بین 1 تا 9 میشماره و یک قلب نمایش می دهد.
کد پروژه :
</pre> $regfile = "m8def.dat" 'Definition of Asi $crystal = 1000000 'crstal Config Portb = Output 'گPort determination Config Portd = Output Sa Alias Portb 'sa>>portb '********************* Dim A As Byte Dim B As Byte Dim C As Byte 'motagher Dim D As Byte Dim E As Byte '********************* Do For C = 0 To 177 '0ta177..tadad harf^ For D = 0 To 9 '0to9 delay A = &B00000001 'on and rashtan A For B = 0 To 8 'radf B/portB 0to8 matres Sa = A 'A>>Sa E = C + B 'A bada rast Rotate A , Right Portd = Lookup(e , K) 'jadval K>>e and baresa to portD Waitms 2 Next B 'boro as avalB shoro con Next D 'boro as avalD shoro con Next C 'boro as avalC shoro con Loop End '*************************** K: '***Hi****** Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B10110101 Data &B10110111 Data &B10000101 Data &B10000101 Data &B10110101 Data &B10110101 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 '*****p.t******>>porya.tomane Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B00011111 Data &B01010001 Data &B00011011 Data &B01111011 Data &B01111011 Data &B01101011 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 '***1.2.3.4.5.6.7.8.9** Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11101111 Data &B11101111 Data &B11101111 Data &B11101111 Data &B11101111 Data &B11101111 Data &B11101111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11011011 Data &B11000011 Data &B11011111 Data &B11011111 Data &B11011111 Data &B11011111 Data &B11011111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11010101 Data &B11000001 Data &B11011111 Data &B11011111 Data &B11011111 Data &B11011111 Data &B11011111 Data &B11011111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11000011 Data &B11011111 Data &B10000011 Data &B10111111 Data &B10111111 Data &B10111111 Data &B10111111 Data &B10111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11100111 Data &B11011011 Data &B10111101 Data &B10100101 Data &B10000001 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11101101 Data &B11011011 Data &B11100111 Data &B11101111 Data &B11011111 Data &B10111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B10111011 Data &B11010111 Data &B11101111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11101111 Data &B11010111 Data &B10111011 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11100001 Data &B11101101 Data &B11100001 Data &B11111101 Data &B11111101 Data &B11111101 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 '****************** Data &B11111111 Data &B10101011 Data &B00000001 Data &B10101011 Data &B11101111 Data &B11101111 Data &B11111111 Data &B00000000 Data &B00000000 Data &B00000000 Data &B11000110 Data &B10101010 Data &B10010010 Data &B01000100 Data &B00111000 Data &B00000000 Data &B01000101 Data &B01110010 Data &B01110100 Data &B00000000 Data &B00000000 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 <pre>