การเชื่อมต่อ DS1820 และแสดงผลออก 7 segments
โดยใช้ Hitech PIC - C ร่วมกับ MPLAB-ICD ตอนที่ 2

HITECH PIC-C สามารถเลือก run program ได้สองแบบคือ run ที่ DOS program ของเค้าเลย หรือว่าจะใช้ร่วมกับ MPLAB-IDE แต่ในที่นี้ผมต้องการใช้กับ MPLAB-ICD ก็เลยใช้ร่วมกับ MPLAB-IDE วิธีการติดตั้งให้ MPLAB-IDE รู้จัก HITECH PIC-C ก็เคยอธิบายไปแล้วนะครับ ลองไปอ่านดูครับ

หลักการทำงานของโปรแกรมจะทำการวน loop อ่านค่าอุณหภูมิจาก DS1820 ไปเรื่อยๆ เมื่อทำการอ่านค่ามาแล้วก็จะตรวจสอบดูว่า ค่าดังกล่าวนั้น Error หรือไม่ ถ้าค่าดังกล่าว Error ก็จะทำการเริ่มต้นอ่านใหม่ แต่ถ้าค่าที่ได้ถูกต้องก็จะทำการแปลง แล้วเก็บไว้ใน memory จะมีการ Interrupt เกิดขึ้นอยู่ 1 อย่างใน โปรแกรมนี้ ซึ่งก็คือ Timer1 interrupt โดยจะทำหน้าที่ Refresh หน้าจอของ 7 segments อยู่ตลอดเวลา โดยจะทำการอ่านค่าที่ต้องแสดงผลจาก memory ที่เก็บค่าอุณหภูมิที่ทำการแปลงค่าเรียบร้อยแล้ว Flow Chart การทำงานสามารถดูได้จาก รูปข้างล่างครับ

เกือบลืมไปครับ ว่าจะแนะนำเรื่องการใช้ HITECH PIC-C หน่อยครับ ก็จะเอาจากประสบการณ์ที่ใช้มาเล่าให้ฟังนะครับ เท่าที่ลองเล่นๆดูแล้วก็ยอมรับว่าเขียนสะดวกกว่า assembly จริงๆ ครับ สำหรับภาษา C เพราะเรื่อง memory มันจะจัดการให้ทุกอย่าง modules ต่างๆ ก็ทำการแปลงเป็น libery ทำให้สะดวกเวลาเอา code จาก modules ต่างๆ มารวมกัน ไม่เหมือนกับ assembly ที่ต้องแก้โน่นแก้นี่เยอะทีเดียวครับ ถ้าจะเอา module ไปใช้งานอื่น แต่เรื่องขนาดของ memory ที่ compiled แล้วก็ต้องทำใจครับ เพราะขนาด code ก็จะใหญ่กว่า code ที่เขียนด้วย assembly แน่นอนครับ ในงานนี้ผมก็นำเอา code ที่เค้าเขียนๆกันไว้เป็น lib แล้ว ไม่ว่าจะเป็น 7 segments, 1 wire communication ตัวเองเขียน code นิดหน่อยครับ ยอมรับครับ สะดวกครับ แต่ถ้าถึงแม้จะสะดวกยังงัย ผมก็ยังต้องใช้ MPLAB-ICD กับ LOGIC ANALYZER ครับ ไม่งั้นคงใช้เวลาเขียนนานเลยครับ เพราะถ้า Timing ที่ส่งให้กับ DS1820 ไม่แม่นแล้วละกัน ติดต่อไม่ได้เลยครับ งมอยู่นานทีเดียว ได้ LA กับ ICD มาช่วยนี่ทำให้เร็วขึ้นเยอะครับ สำหรับ การติดต่อกับ DS1820 ก็เคยบอกไปเมื่อตอนที่ 1 แล้วครับว่า ต้องระวังเรื่อง TIMING ให้มากๆเลยครับ ไม่งั้น มันไม่ยอมตอบเอาดือ้ๆเลยครับ

 

สำหรับ SOURCE CODE ก็ DOWNLOAD ได้ที่นี่เลยครับ

DOWNLOAD HERE !!!

 

BACK