ZPCF8574.TXT เป็นโปรแกรมตัวอย่างสำหรับควบคุมการทำงานของชิพ PCF8574A (กันยายน 2459 โดย อนันต์ ภูกิตติกุล) ชิพ PCF8574A เป็นไอซีขยายพอร์ตขนาด 8บิต ซึ่งสามารถนำมาใช้เป็นอินพุตหรือเอาท์พุตก็ได้ โดยชิพตัวนี้จะใช้การติดต่อแบบ I2C Bus ซึ่งทำให้ประหยัดพอร์ตในการเชื่อมต่อกับ MCU เพราะใช้สายสัญญาณเพียง 2เส้น และสามารถเชื่อมต่อกันได้ถึง 8 ตัว ในบัสเดียวกัน โดยการตั้งแอดเดรส ให้แตกต่างกัน โปรแกรมตัวอย่างนี้เขียนไว้สำหรับควบคุมชิพ PCF8574A โดยจะใช้ชิพตัวนี้ในการควบคุมบอร์ด Ex-Relay V3.0 ซึ่งชิพ 1 ตัว สามารถควบคุมบอร์ด Ex-Relay ได้ 2บอร์ด ในการทำงานจะสามารถต่อกันได้พ่วงกัน สูงสุดคือ 16 บอร์ด ในการเขียนโปรแกรมควบคุมจะใช้บอร์ด SLAB-51 เป็นตัวควบคุม โดยโปรแกรมนี้จะ สั่งงานให้ Ex-Relay ติดเรียงกันไปตั้งแต่ตัวที่ 1 - 8 แล้วก็ดับทั้งหมด โดยจะทำงานเรียงตามแอดเดรส 0-7 คือเมื่อแอดเดรส 0 ทำงานเสร็จก็จะต่อด้วย แอดเดรส 1 เรียงกันไปเรื่อยๆ การเชื่อมต่อตามโปรแกรมนี้จะใช้บอร์ด Ex-Relay ต่อกับ SLAB-51 ผ่านทาง 3B PORT(1) โดยจะใช้ P3.3 เป็นขา SCL และ ใช้ P3.5 เป็นขา SDA ฟังก์ชั่นในการทำงานจะเป็นฟังก์ชั่นย่อยในการติดต่อกับ I2C Bus ส่วนฟังก์ชั่นหลักที่จะนำมาใช้งานก็คือ void xxwr(unsigned char addr,dat) จะใช้ในการสั่งงานการทำงาน ของบอร์ด Ex-Relay ซึ่งจะยกตัวอย่างจากการทำงานในฟังก์ชั่นเมน คือ void main (void) { unsigned char x,i,j; // ประกาศตัวแปร while (1) { for(i=0;i<=7;i++){ // กำหนดแอดเดรส x = 0xfe; // กำหนดค่าเริ่มต้น for (j=0;j<=7;j++) { xxwr(i,x); //ส่งแอดเดรสและข้อมูลไปควบคุม PCF8574A dmsec (100); // หน่วงเวลา x <<= 1; // เลื่อนข้อมูลทีละบิต } xxwr(i,0xff); // กำหนดให้ Relay ที่แอดเดรส i ดับหมด } } }