lanhchanh
27-12-2012, 09:38 PM
Chào các bác, em đang gặp phải tình huống lạ này về con PIC12F629. Đó là viết code bằng HTC, mô phỏng trên Protues thì chạy ngon lành. Nhưng khi nạp cho con PIC thực tế, nạp vẫn được. Nhưng khi cấp nguồn, mạch hoạt động lúc được, lúc không (cấp vài lần thì được 1 lần hoạt động).
Em cũng kiểm tra kỹ phần nguồn rồi, 5VDC và không bị chập chờn.
Đây là code của em, em chỉ test trên mạch led chớp tắt thôi:
#include<htc.h>
#include<pic12f629.h>
__CONFIG(FOSC_INTRCIO & WDTE_OFF & PWRTE_OFF & MCLRE_ON & BOREN_OFF & CP_OFF & CPD_OFF);
#define _XTAL_FREQ 4000000
bit x;
void main()
{
x=0;
CMCON = 0x07; // Shut off the Comparator
VRCON = 0x00; // Shut off the Voltage Reference
TRISIO = 0x01; // GP0 input, rest all output
WPU = 1;
GPPU = 0;
GPIO = 0x00; // Make all pins 0
while(1)
{
if(!GP0||x)
{
x=1;
GP1=1;
GP2=1;
__delay_ms(500);
GP2=0;
__delay_ms(500);
}
}
}
Em gặp lỗi này lần đầu luôn đấy, không biết có phải là do con PIC bị lỗi không các bác nhỉ?
Cám ơn các bác đã đọc.
Em cũng kiểm tra kỹ phần nguồn rồi, 5VDC và không bị chập chờn.
Đây là code của em, em chỉ test trên mạch led chớp tắt thôi:
#include<htc.h>
#include<pic12f629.h>
__CONFIG(FOSC_INTRCIO & WDTE_OFF & PWRTE_OFF & MCLRE_ON & BOREN_OFF & CP_OFF & CPD_OFF);
#define _XTAL_FREQ 4000000
bit x;
void main()
{
x=0;
CMCON = 0x07; // Shut off the Comparator
VRCON = 0x00; // Shut off the Voltage Reference
TRISIO = 0x01; // GP0 input, rest all output
WPU = 1;
GPPU = 0;
GPIO = 0x00; // Make all pins 0
while(1)
{
if(!GP0||x)
{
x=1;
GP1=1;
GP2=1;
__delay_ms(500);
GP2=0;
__delay_ms(500);
}
}
}
Em gặp lỗi này lần đầu luôn đấy, không biết có phải là do con PIC bị lỗi không các bác nhỉ?
Cám ơn các bác đã đọc.