ZMAX7219.TXT - โปรแกรมตัวอย่างสำหรับชิพ MAX7219 8x8 LED Matrix Display Controller (เมษายน 2549 โดย อนันต์ ภูกิตติกุล) ชิพ MAX7219 หนึ่งตัวสามารถใช้ขับ 7 Segment ได้ถึง 8 หลัก ติดต่อกับ MCU ได้ด้วยสายสัญญาณเพียง 3 เส้น (Serial Interface) ทำให้ประหยัด PORTของ MCU ในการใช้งาน และยังไม่ต้องเขียนโปรแกรมสแกนทีละหลัก เพราะ เพียงส่งข้อมูลออกไปตัวชิพก็จะทำงานให้ได้เองตามคำสั่ง ซึ่งชิพตัวนี้มีความสามารถพิเศษหลายอย่าง เช่น - สามารถปรับความสว่างของ 7 Segment ได้ถึง 16 ระดับ - ตัวชิพสามารถต่อกันแบบ Cascade ได้ทำให้สามารถแสดงผลได้มากกว่า 8 หลัก โปรแกรมตัวอย่างนี้เขียนไว้สำหรับชิพ MAX7219 โดยต่อกับบอร์ด SLAB-51 และตัว 7 Segment Display ก็จะเป็นรุ่น DP-708 ซึ่งจะต่อกับ SLAB-51 ผ่านทาง 3BIT PORT (2) ตัวอย่างการแสดงผลจะเป็นการสั่งให้ Display แสดงผลทีละ Segment โดยเริ่มตั่งแต่ G -> F -> E -> D -> C -> B -> A -> DP แล้วตามด้วยการแสดงผลเป็นตัวเลข 0 - 9 และตัวอักษร A - F การต่อชิพ MAX7219 กับ MCU ผ่านทาง 3BIT PORT(2) จะต่อขาสัญญาณดังนี้ ขา CLK ต่อกับ MCU P1.0 ขา LOAD ต่อกับ MCU P1.1 ขา DIN ต่อกับ MCU P1.4 คำสั่งในการทำงานต่างๆ ดูได้จากตัวโปรแกรม และเพื่อให้เข้าใจได้ยิ่งขึ้นควรดูควบคู่ไปกับ DATASHEET ด้วย โดยตัวโปรแกรมจะมีฟังก์ชั่นในการสั่งงานอยู่ 3 ฟังก์ชั่นคือ - void mxset (void) เป็นฟังก์ชั่นที่ใช้กำหนดรูปแบบการแสดงผลคือ mxbyte (0x0f,0); เป็นคำสั่งสำหรับทดสอบการแสดงผล mxbyte (0x0c,1); เป็นคำสั่ง Shutdown Display โดยถ้าเป็น 1 จะแสดงผลปกติ แต่ถ้าเป็น 0 จะไม่แสดงผล ซึ่งมีประโยชน์สำหรับใช้งานในโหมดประหยัดพลังงาน mxbyte (0x09,0); เป็นคำสั่งในการกำหนดว่าจะให้มีการถอดรหัสข้อมูลหรือไม่ mxbyte (0x0a,5); เป็นคำสั่งที่ใช้ในการปรับความสว่างของ Display สามารถกำหนดค่าได้ 16 ระดับ(0 - F) mxbyte (0x0b,7); เป็นคำสั่งว่าให้สแกน Display จำนวนกี่หลัก ดังในตัวอย่างจะเป็น 8 หลัก (Digit0 - Digit7) - void mxbyte(void) เป็นฟังก์ชั่นที่ใช้ส่งข้อมูลไปยังตัวชิพทีละไบต์ - void mxload(void) เป็นฟังก์ชั่นที่ใช้สำหรับสั่งให้ตัวชิพส่งข้อมูลออกไปยัง Display ทั้ง 8 หลัก