فهرست مطالب:

نحوه اتصال MAX7219 LED ماتریس LED 8x8 با میکروکنترلر ATtiny85: 7 مرحله
نحوه اتصال MAX7219 LED ماتریس LED 8x8 با میکروکنترلر ATtiny85: 7 مرحله

تصویری: نحوه اتصال MAX7219 LED ماتریس LED 8x8 با میکروکنترلر ATtiny85: 7 مرحله

تصویری: نحوه اتصال MAX7219 LED ماتریس LED 8x8 با میکروکنترلر ATtiny85: 7 مرحله
تصویری: معرفی ماژول صفحه نمایش ال ای دی دات ماتریکس هشت در هشت 2024, نوامبر
Anonim
نحوه اتصال MAX7219 LED ماتریس LED 8x8 با میکروکنترلر ATtiny85
نحوه اتصال MAX7219 LED ماتریس LED 8x8 با میکروکنترلر ATtiny85

کنترلر MAX7219 توسط Maxim Integrated ساخته شده است ، جمع و جور ، درایو ورودی/خروجی سریال معمولی درایور صفحه نمایش است که می تواند میکروکنترلرها را به 64 LED جداگانه ، نمایشگرهای LED عددی 7 قسمتی تا 8 رقم ، نمایشگرهای نواری ، و غیره را شامل شود تراشه یک رمزگشای BCD-B ، مدارهای چندگانه اسکن ، درایورهای بخش و رقم و یک RAM استاتیک 8 × 8 است که هر رقم را ذخیره می کند.

استفاده از ماژول های MAX7219 با میکروکنترلرها مانند ATtiny85 یا در مورد ما Tinusaur Board بسیار مناسب است.

مرحله 1: سخت افزار

سخت افزار
سخت افزار
سخت افزار
سخت افزار

ماژول های MAX7219 معمولاً به این شکل هستند. آنها از یک طرف یک گذرگاه ورودی و از طرف دیگر گذرگاه خروجی دارند. این به شما امکان می دهد 2 یا چند ماژول ، یعنی یکی پس از دیگری ، به منظور ایجاد تنظیمات پیچیده تر ، زنجیره دیزی کنید.

ماژول هایی که ما استفاده می کنیم قادرند با استفاده از 5 جهنده کوچک در یک زنجیره به هم متصل شوند. تصویر زیر را مشاهده کنید.

مرحله 2: Pinout و Signals

ماژول MAX7219 دارای 5 پین است:

  • VCC - قدرت (+)
  • GND-زمین (-)
  • DIN - ورودی داده
  • CS - انتخاب تراشه
  • CLK - ساعت

این بدان معناست که ما برای کنترل ماژول به 3 پین در طرف میکروکنترلر ATtiny85 نیاز داریم. آنها خواهند بود:

  • PB0 - متصل به CLK
  • PB1 - متصل به CS
  • PB2 - متصل به DIN

این برای اتصال به ماژول MAX7219 و برنامه ریزی آن کافی است.

مرحله 3: پروتکل

پروتکل
پروتکل

ارتباط با MAX7219 نسبتاً آسان است - از یک پروتکل همزمان استفاده می کند ، بدین معنی که برای هر بیت داده ای که ارسال می کنیم یک چرخه ساعت وجود دارد که نشان دهنده وجود آن بیت داده است.

به عبارت دیگر ، ما 2 دنباله موازی به بیت ها ارسال می کنیم - یکی برای ساعت و دیگری برای داده ها. این کاری است که نرم افزار انجام می دهد.

مرحله 4: نرم افزار

نرم افزار
نرم افزار

نحوه عملکرد این ماژول MAX7219 به شرح زیر است:

  • ما در ثبت داخلی آن بایت می نویسیم.
  • MAX7219 داده ها را تفسیر می کند.
  • MAX7219 LED های ماتریس را کنترل می کند.

این بدان معناست که ما مجبور نیستیم دائماً آرایه LED ها را روشن کنیم تا آنها را روشن کنیم - کنترلر MAX7219 از آن مراقبت می کند. همچنین می تواند شدت LED ها را مدیریت کند.

بنابراین ، برای استفاده راحت از ماژول های MAX7219 ما به کتابخانه ای از توابع برای خدمت به این منظور نیاز داریم.

ابتدا ، ما برای نوشتن در رجیسترهای MAX7219 به برخی از توابع اساسی نیاز داریم.

  • نوشتن یک بایت برای MAX7219.
  • نوشتن یک کلمه (2 بایت) به MAX7219.

عملکردی که یک بایت به کنترلر می نویسد به این شکل است:

void max7219_byte (uint8_t data) {for (uint8_t i = 8؛ i> = 1؛ i--) {PORTB & = ~ (1 << MAX7219_CLK)؛ // CLK را روی LOW if (data & 0x80) // ماسک MSB داده PORTB | = (1 << MAX7219_DIN)؛ // DIN را روی HIGH else PORTB & = ~ (1 << MAX7219_DIN) تنظیم کنید؛ // DIN را روی LOW PORTB | = (1 << MAX7219_CLK) تنظیم کنید ؛ // CLK را روی HIGH data << = 1 تنظیم کنید؛ // شیفت به چپ}}

اکنون که می توانیم بایت ها را به MAX7219 ارسال کنیم ، می توانیم دستورات را ارسال کنیم. این کار با ارسال 2 بای - 1 برای آدرس ثبت داخلی و دوم برای داده هایی که می خواهیم ارسال کنیم انجام می شود.

در کنترلر MAX7219 بیش از ده ها ثبت وجود دارد.

ارسال یک فرمان یا یک کلمه ، اساساً ارسال 2 بایت متوالی است. تابع پیاده سازی آن بسیار ساده است.

void max7219_word (آدرس uint8_t ، داده uint8_t) {PORTB & = ~ (1 << MAX7219_CS) ؛ // CS را روی LOW max7219_byte (آدرس) تنظیم کنید ؛ // ارسال آدرس max7219_byte (داده) ؛ // ارسال داده ها PORTB | = (1 << MAX7219_CS] ؛ // CS را روی HIGH PORTB & = ~ (1 << MAX7219_CLK) تنظیم کنید؛ // CLK را روی LOW تنظیم کنید}

در اینجا مهم است که خطی را که سیگنال CS را به HIGH باز می گردانیم - این پایان دنباله را مشخص می کند - در این مورد ، پایان فرمان مهم است. یک تکنیک مشابه هنگام کنترل بیش از یک ماتریس متصل به زنجیره استفاده می شود. مرحله بعدی ، قبل از شروع و خاموش و روشن کردن LED ها ، راه اندازی اولیه کنترلر MAX7219 است. این کار با نوشتن مقادیر خاصی در رجیسترهای خاص انجام می شود. برای راحتی ، هنگام کدگذاری آن می توانیم دنباله مقداردهی اولیه را در یک آرایه قرار دهیم.

uint8_t initseq = {0x09، 0x00، // Decode-Mode Register، 00 = بدون رمزگشایی 0x0a، 0x01، // Intensity Register، 0x00.. 0x0f 0x0b، 0x07، // Scan-Limit Register، 0x07 برای نمایش همه خطوط 0x0c ، 0x01 ، // ثبت نام خاموش ، 0x01 = عملکرد عادی 0x0f ، 0x00 ، // ثبت نام تست ، 0x00 = عملکرد عادی} ؛

ما فقط باید 5 دستور بالا را به ترتیب به عنوان آدرس/جفت داده ارسال کنیم. مرحله بعدی - روشن کردن یک ردیف LED.

این بسیار ساده است - ما فقط یک فرمان می نویسیم که بایت اول آدرس (از 0 تا 7) و بایت دوم 8 بیت است که نشان دهنده 8 LED در ردیف است.

void max7219_row (آدرس uint8_t ، داده uint8_t) {if (address> = 1 && address <= 8) max7219_word (آدرس ، داده) ؛ }

لازم به ذکر است که این فقط برای 1 ماتریس کار می کند. اگر ماتریس های بیشتری را در یک زنجیره متصل کنیم ، همه آنها داده های یکسانی را نشان می دهند. دلیل این امر این است که پس از ارسال فرمان ، سیگنال CS را به HIGH باز می گردانیم که باعث می شود همه کنترلرهای MAX7219 در زنجیره چسبیده و آخرین فرمان را نشان دهند.

توصیه شده: