Pages: [1]   Go Down
Print
Author Topic: ช่วยดู Code ทางนี้ให้หน่อยครับ  (Read 9244 times)
0 Members and 4 Guests are viewing this topic.
banthom
Guest
« on: November 30, 2009, 08:30:50 PM »

ผมได้ลองต่อวงจรตามรูปในโปรแกรม Proteus และลองเขียน Code ง่าย ๆ เป็นการจำลอง Traffic Light ซึ่งเมื่อ Run ในโปรแกรม Proteus แล้วก็ใช้งานได้เป็นปกติ ไฟจะติดตามที่ต้องการ คือ แดง---->เขียว---->เหลือง และก็วนไปแบบนี้เรื่อย ๆ แต่ปัญหาคือ เมื่อผมลองต่อวงจรใช้งานจริง ๆ และก็อัด Code เข้า PIC12F629 ได้ตามปกติ แต่ผลปรากฎว่า เมื่อจ่ายไฟ (5v) แล้วไม่เป็นไปอย่างที่ต้องการเลยครับ คือไม่มีหลอด LED ดวงไหนติดเลยสักหลอด ลองแล้วลองอีกก็ทำไม่ติดสักทีครับ หลอดก็ไม่เสีย แต่พอลองใน Proteus กลับใช้งานได้ตามปกติ เลยไม่ทราบสาเหตุครับว่าเกิดจากอะไร แต่รับรองครับว่าต่อวงจรไม่ผิดและก็ PIC12F629 ไม่เสียครับ เพราะว่าลองเอา Code Remote ที่เคยทำไว้ลองอัดดูแล้วก็นำไปลองก็ใช้งานได้ตามปกติครับ



-------------------------------------------------
#include <12F629.h>
#fuses HS,NOWDT,NOPUT,NOPROTECT
#use delay (clock=4000000)

void main()
{ while(1)
   {  output_high(pin_A0);
      delay_ms(20000);
      output_low(pin_A0);
      delay_ms(100);
      output_high(pin_A2);
      delay_ms(15000);
      output_low(pin_A2);
      delay_ms(100);
      output_high(pin_A1);
      delay_ms(3500);
      output_low(pin_A1);
      delay_ms(100);
     }
}
-----------------------------------------
ไม่ทราบว่าผมผิดพลาดไปตรงใหนครับ ช่วยแก้ปัญหาให้ผมทีครับ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #1 on: November 30, 2009, 10:27:14 PM »

ดูจากโปรแกรมแล้วคุณใช้ clock 4MHz
ต้องใช้เป็น #fuses XT ครับ
Logged
banthom
Guest
« Reply #2 on: December 01, 2009, 01:26:02 AM »

ขอบคุณมากครับอาจารย์ที่ให้ข้อคิด ผมได้แก้ไข Code ใหม่เป็นดังนี้

---------------------------------------------------------------------------------------------------------------
#include <12F629.h>
#FUSES NOWDT, INTRC, NOCPD, NOPROTECT, NOMCLR, NOPUT, NOBROWNOUT, BANDGAP_HIGH
#use delay(clock=4000000)

void main()
{ while(1)
   {  output_high(pin_A0);
      delay_ms(30000);
      output_low(pin_A0);
      delay_ms(100);
      output_high(pin_A2);
      delay_ms(25000);
      output_low(pin_A2);
      delay_ms(100);
      output_high(Pin_A1);
      delay_ms(5000);
      output_low(Pin_A1);
      delay_ms(100);
     }
}
------------------------------------------------
ใช้งานได้ตามที่ต้องการแล้วครับ
Logged
Pages: [1]   Go Up
Print
 
Jump to: