วันพฤหัสบดีที่ 4 มิถุนายน พ.ศ. 2558

การใช้งานโมดูลแสดงผลด้วย LED แบบ Dotmatrix ขนาด 8x8 โดย MAX 7219

MiniProject 010123120 Embedded System Design Lab นาฬิกาปลุก

การใช้งานโมดูลแสดงผลด้วย LED แบบ Dotmatrix ขนาด 8x8 โดย MAX 7219 (RED)

โมดูลแสดงผลด้วย LED แบบ Dotmatrix ขนาด 8x8 (แดง)

ที่มา http://alexiaelectronic.blogspot.com/
เป็นโมดูลที่แสดงผลด้วย Dotmatrix LED โดยใช้ไอซี MAX7219 ขับเคลื่อน LED ให้แสดงผล ซึ่งควบคุมการทำงานของวงจรด้วยสัญญาณเพียง 3 เส้น (DIN, CS, CLK) และสามารถต่อพ่วงโมดูลเพื่อเพิ่มพื้นที่ในการแสดงผลได้อีกด้วย

คุณสมบัติโมดูล
-    ใช้ไฟเลี้ยงวงจร 5V
-   ขนาดโมดูล 5x3.2 cm
-   แสดงผลด้วย Dot Matrix LED สีแดง ขนาด 8x8 ขับ LED ได้ 64 ดวง
-   โมดูลมีทั้งอินพุตและเอาต์พุตอินเตอร์เฟสสามารถต่อได้หลายโมดูล (Cascade) พร้อมกันได้

ไอซี MAX 7219
นำมาควบคุมการทำงานแผง LED แบบ Common Cathode (CC) ขนาด 8x8 และสามารถเชื่อมต่อไมโครคอนโทรลเลอร์ผ่านบัส SPI ได้
การส่งข้อมูลเข้าไปในไอซี MAX7219 เพื่อเขียนลงในรีจิสเตอร์แต่ละตัว จะใช้วิธีเลื่อนบิตตามจังหวะ CLK โดยใช้การส่งข้อมูลครั้งละขนาด 16 บิต และส่งบิต 15 เข้าไปก่อนตามลำดับ จนถึงบิต 0 ซึ่งรูปแบบการส่งข้อมูลแบบนี้สอดคล้องกับการทำงานของ SPI ในโหมด 0 โดยข้อมูลขนาด 16 บิตประกอบด้วย  8 บิตสูงเป็น Address ส่วนอีก 8 บิตต่ำเป็น Data สำหรับ Address จะมีดังนี้

รูปแสดงตำแหน่งของบิตในรีจิสเตอร์สำหรับคำสั่งและข้อมูลขนาด 16 บิต

ตารางแสดงที่อยู่ของรีจิสเตอร์ภายในของไอซี MAX7219
   ** X คือค่าอะไรก็ได้ ไม่มีผลต่อคำสั่ง 

สัญญาณควบคุมไอซี MAX 7219 (DIN, CS, CLK)

การใช้งานสำหรับแผง LED 8x8 โดยกำหนดค่าสำหรับรีจิสเตอร์ดังนี้
-   รีจิสเตอร์ “Decode Mode” (0x9)
เริ่มด้วยคำสั่ง Decode Mode ก่อน เพราะมีผลกับค่าที่กำหนดให้แต่ละหลัก สำหรับ Decode Mode จะเป็นการกำหนดว่าจะกำหนดเป็นรหัส BCD หรือไม่  ในการกำหนด Decode Mode จะกำหนดได้ตั้งแต่ 0x00 ถึง 0xFF โดยที่ 0x00 คือไม่มีการใช้ BCD และ 0xFF คือใช้ BCD ทุกหลัก ถ้าเป็น 0x3A ก็จะเป็น DIGIT 5, 4, 3, 1 ที่ใช้ BCD (00111010B) (เลข 1 ในแต่ละบิตแทนที่การใช้ BCD ในหลักนั้นๆ และ 0 คือไม่ใช้ BCD )

-    รีจิสเตอร์ “Digit 0” … “Digit7”
กำหนดค่าสำหรับสถานะติดดับของ LED จำนวน 8 ดวง ในแถวแนวนอนเดียวกัน ซึ่งกำหนดหลักไหนก็ส่ง Address ตามด้วย Data สำหรับ Data มีดังนี้

                                     
                                    -    รีจิสเตอร์ “Intensity” (0x0A)
สำหรับกำหนดความสว่างของไฟ LED โดยกำหนดค่าได้ตั้งแต่ 0-15 (0x00 - 0x0F) ก็จะสว่างจากน้อยไปมาก สว่างประมาณครึ่งหนึ่งจะเป็น 0x0A07 หรือ { 0x0A, 0x07 } สว่างต่ำสุดจะเป็น 0x0A00 หรือ { 0x0A, 0x00 }

-   รีจิสเตอร์ “Scan limit” (0x0B)
สำหรับการกำหนดว่าจะให้แสดงหลักไหนบ้าง มีค่าตั้งแต่ 0-7 (0x00 - 0x07) โดยที่ 0x00 จะแสดงแค่ DIGIT 0 เท่านั้น 0x04 จะแสดง DIGIT 0, 1, 2, 3, 4 และ 0x07 จะแสดง DIGIT 0, 1, 2, 3, 4, 5, 6, 7 หรือทุกหลักนั่นเอง

-    รีจิสเตอร์ “Shutdown” (0x0C)
สำหรับกำหนดการ Shutdown ซึ่ง 1 สำหรับ Normal และ 0 สำหรับ Shutdown เมื่อเข้าสู่ Shutdown Mode ขา Data (A-G และ DP) จะเป็น Low ส่วนขา DIGIT (DIGIT 0 - DIGIT 7) จะเป็น High

ไม่มีความคิดเห็น:

แสดงความคิดเห็น