[Giúp] Main Pic của em bị gì vậy kì vậy?

cuong_lx

Gà con
Hình như nó bị nhiễu thì phải, pó tay.

http://www.youtube.com/watch?v=XImOtcXlPFM

Cắm nguồn 9 VDC trước rồi bật công tắc thì nó chạy bình thường
Rồi bật công tắc trước cắm nguồn vào thì LED chạy tùm lum
Lúc LED đang chạy tùm lum thì ấn RESET cũng ko có tác dụng, hên xui thì đc chắc cỡ 1% là đc. Chỉ có nước bật/tắt công tắt thì nó mới chạy lại bình thường
Ngoài ra, lúc cắm nạp, sau khi đèn báo nạp xong là LED lại chạy tùm lum. Ko giống chuơng trình mình viết, ấn RESET cũng như ko. Phải rút dây nạp ra khỏi Main rồi chờ 1-3 s cắm lại thì LED mới chạy bình thường. :mad:


Còn đây là chường trình nạp:

// Timer 0
#include<htc.h>
__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF & LVP_OFF & DEBUG_OFF); //1st config. Word
__CONFIG(BOR4V_BOR21V); //2st config. Word
#define _XTAL_FREQ 4000000
void main()
{
ANSEL =0;
ANSELH=0;
TRISA=0X00;
PORTA=0X00;
TRISD=0;
T0CS=0;
PSA=0;
PS2=1;
PS1=1;
PS0=1;
TMR0=0;
T0IE=1; // Cho Phep Ngat, Timer 0 interrupt enable//
GIE=1;
while(1);

}
void dem()
{
int i;
for(i = 0;i<5000;i++)
{}
}
void interrupt isr()
{
if(T0IE&&T0IF)
{


PORTD^=0X01;
dem();
PORTD^=0x02;
dem();
PORTD^=0x04;
dem();
PORTD^=0x08;
dem();
PORTD^=0X10;
dem();
PORTD^=0x20;
dem();
PORTD^=0x40;
dem();
PORTD^=0x80;
dem();


T0IF=0; // Clear Timer0 Interrupt Flat
TMR0=0X00;
}
}


Mọi người chỉ giúp mình đang gặp vấn đề gì?
 

honghiep

Cố Vấn CLB
Staff member
Mình nghĩ bạn nên đặt PORTD=0xFF ngay sau khai báo TRISD=0x00. Và bạn thử kiểm tra các đường nối từ nút reset đến PIC
 
Top