ZPCF8591.TXT โปรแกรมตัวอย่างสำหรับชิพ PCF8591 (4 Channel 8-Bit A/D & 1 Channel 8-Bit D/A) (กันยายน 2459 โดย อนันต์ ภูกิตติกุล) ชิพ PCF8591 เป็นชิพที่มี A/D จำนวน 4 ช่อง และ D/A จำนวน 1 ช่อง อยู่ในตัวเดียวกัน โดยจะมีความละเอียดที่ 8-Bit เหมาะแก่การใช้งานมาก ในการติดต่อกับชิพนี้จะใช้สายสัญญาณเพียง 2 เส้น คือ Clockและ Data หรือที่เรียกว่า I2C Bus การนำไปใช้งานในส่วนของ A/D นั้น สามารถเลือกได้ว่าจะให้เป็นอินพุตแบบไหนซึ่งสามารถเลือกได้ 4 แบบ คือ 1. Single ended inputs 2. Differential inputs 3. Single ended and Differential mixed 4. Two differential inputs ซึ่งสามารถเลือกให้เหมาะแก่การใช้งานแต่ละประเภทได้ แต่ในโปรแกรมตัวอย่างจะเป็นแบบ Single ended inputs โปรแกรมตัวอย่างนี้เขียนไว้สำหรับชิพ PCF8591 โดยต่อกับบอร์ด SLAB-51 เนื้อหาของโปรแกรม ก็จะอ่านค่าจากสัญญาน Analog โดยใช้โหมด A/D แบบ Single Ended และส่ง ข้อความออกทาง Serial RS232 ซึ่งจะแสดงค่าเป็นข้อมูลที่อ่านได้เป็น Volt โดยจะแสดงข้อความทุก ๆ 500 mSec และยังนำค่า Analog ที่อ่านได้จาก CH0 ส่งออกไปยัง D/A ด้วย ซึ่งจะต้อง ใช้ Volt meter วัดที่ Analog out(ขา 15)ก็จะได้แรงดันที่ Analog out เปลี่ยนแปลงไปตามค่าของ Analog in CH0 การต่อชิพ PCF5891 กับ MCU จะใช้ขาสัญญานดังนี้ ขา SDA ต่อกับ MCU P1.0 ขา SCL ต่อกับ MCU P1.1 ส่วนขา Analog Input CH0 - CH3 ก็ให้ต่อกับตัว VR 10K ที่ต่อเป็นวงจร Voltage-Divider และขา Vref ก็ต่อกับ +5V ส่วน Address A0,A1,A2 ต่อลง GND รายละเอียดการทำงานของโปรแกรมจะมีฟังก์ชั่นหลักที่ใช้งานอยู่ 2 ฟังก์ชั่นคือ unsigned char ADC(unsigned char channel) จะใช้สำหรับอ่านค่า Analog โดยการใส่ค่า Channel ที่ต้องการอ่านเข้าไปในฟังก์ชั่น ส่วนอีกฟังชั่นก็คือ void DAC(unsigned char dat) ใช้สำหรับส่งค่า Analog ออกทางขา Analog out (ขา 15) การใช้งานก็เพียงใส่ข้อมูลเข้าไปในฟังก์ชั่น