Title: ขอ Code pic 16f877a ติดต่อกับds1820 เเสดงผล 7 segment Post by: aekk on September 06, 2011, 11:53:25 PM ขอ Code pic 16f877a ติดต่อกับds1820 เเสดงผล 7 segmentสองหลักครับ ใช้ ccsนะครับ คือผมต้องการใช้ สวิตสามตัวเพื่อ up;down;settingครับ เพื่อที่จะให้เซ็ตค่าอุณหภูมิได้เป็นช่วงๆๆครับ ขอคำเเนะนำครับ
Title: Re: ขอ Code pic 16f877a ติดต่อกับds1820 เเสดงผล 7 segment Post by: gundam on September 07, 2011, 09:09:04 AM ผมก็ขอแนะนำคล้ายๆ กระทู้ก่อนน่านี้สำหรับหลักการทำงานนะครับ
แยกโปรแกรมการทำงานเป็น 2 ส่วน - ส่วนแรกก็แสดงผลออก 7Seg - ส่วนที่สองก็รับข้อมูลจาก ds1820 แล้วแสดงผลที่รับได้ออกพอร์ตอนุกรม ให้แสดงผลไปยัง PC โดยใช้โปรแกรม พวก Hyperterminal อ่านปุ่มกด up;down เพื่อ setting แล้วค่อยนำผลที่ได้ออก 7Seg Title: Re: ขอ Code pic 16f877a ติดต่อกับds1820 เเสดงผล 7 segment Post by: MicroX on September 07, 2011, 09:32:11 AM นี่เป็นตัวอย่างการใช้งาน DS 1820 ของหนังสือ PIC Works หน้า 274 ของ Appsofttech ยังไม่มีก็ไปหาซื้อนะครับ เล่มนี้ดีมากเลย
#include <16F877A.h> // header file for PIC16F877A #fuses HS,NOWDT,NOPROTECT,NOLVP // Configuration word #use delay(clock=20000000) // Change OSC here (default 20MHz) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) // Serial port #include "touch.c" // Module function for 1-wire bus (1) /************************************************************ ReadTemp_DS1820 */ //Description : Read Temperature (use RB0 read temp) void ReadTemp_DS1820(void) { byte i, buffer[9]; if (touch_present()) { // get present (reset) (2) touch_write_byte(0xCC); // Skip ROM (3) touch_write_byte (0x44); // Start Conversion delay_ms(200); // delay 200 ms (4) touch_present(); // get present (reset) (5) touch_write_byte(0xCC); // Skip ROM (6) touch_write_byte (0xBE); // Read Scratch Pad for(i=0; i<9;i++) // read 9 bytes (7) buffer = touch_read_byte(); } printf ("\r\nTemperature: %c%3.2f C", (buffer[1])?'-':' ', // ( 8 ) (float)buffer[0]/2); } /************************************************************* Main Functions */ void main(void) { while (TRUE) { ReadTemp_DS1820(); delay_ms(1000); } } /*************************** End of $Workfile: $ ******************************/ ส่วน "touch.c" เป็น Driver ของ CCS จะอยู่ใน C:\Program Files\PCWH v4.084\Drivers\ Title: Re: ขอ Code pic 16f877a ติดต่อกับds1820 เเสดงผล 7 segment Post by: aekk on September 10, 2011, 12:12:31 AM พี่ๆๆครับโทษทีนะครับผมมือใหม่มากๆๆครับ ผมพยยายามให้ ds1280 เเสดงผลออกsegmentไม่ได้สักทีอะครับ รบกวนขอcode หรือ เเนวทางด้วยครับ
Title: Re: ขอ Code pic 16f877a ติดต่อกับds1820 เเสดงผล 7 segment Post by: s_engine on September 10, 2011, 02:15:34 PM ด้านบนเลย ครับ
ทั้ง877a และ ds1820 ต่อเข้า คอมพิวเตอร์ แสดงผลทาง hiper terminal sim เอาก็ได้ครับ proteus ใช้ดีครับ Title: Re: ขอ Code pic 16f877a ติดต่อกับds1820 เเสดงผล 7 segment Post by: aekk on September 10, 2011, 05:33:42 PM ช่วยด้วยครับ ผมพยายามหลายๆๆรอบเเล้วครับ ส่งค่า ds1820 ออก segment ขอCode หรือเเนวทางครับ ???
Title: Re: ขอ Code pic 16f877a ติดต่อกับds1820 เเสดงผล 7 segment Post by: s_engine on September 17, 2011, 09:09:14 AM (http://ccspic.com/wp-content/uploads/2008/05/ds18s20.JPG)
http://ccspic.com/projeler/ds18b20-ve-ds1302-ile-lcd-termometre-saat.html (http://ccspic.com/projeler/ds18b20-ve-ds1302-ile-lcd-termometre-saat.html) |