Trích:
Nguyên văn bởi nhong
Em làm bài tập pic đầu tiên với 16F877A bật tắt đèn led.
đầu tiên em cho nháy 1s một thì thấy nó nháy loạn cả lên rồi kết thúc bằng sáng trơ ra hoặc tắt ngóm(sau khoảng 4-5s) mà có lúc cả chân RB6 chân nó cũng sáng nữa(em chỉ cho nó nháy chân RB7 thôi) là sao?
sau đó em sửa cho nháy 2s một, nhưng khi nạp vào con pic rồi chạy thì thấy thằng led nó cứ sáng trơ ra chứ chẳng bật tắt gì cả là sao các bác.
với cả khi nạp cho pic mà cắm nhầm chiều vào mạch nạp thì có nguy hiểm không, rồi em cho verify trong winpic800 thì luôn bị lỗi(lúc program xong verify thì không sao cả), lại phải erase đi rồi program lại , như thế có hại ko. lỗi thế này
Error: verifying address0x000000 verified:0x3FFF Read:0x3000
cuối cùng: khi nạp mới 1 con thì phải erase hết đi rồi mới program lại hả các bác
em xin cám ơn.
code viết trong ccs như này(code trong luồng ccs for pic thôi, chỉ thay nháy 1s một thành nháy 2s một và chỉnh clock từ 10 thành 4mhz thôi)
Code:
#include<16F877A.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
main()
{
while(true)
{
output_high(PIN_B7);
delay_ms(2000);
output_low(PIN_B7);
delay_ms(2000);
}
}
PS/ nút reset làm việc tốt ạ  vì khi ấn reset thì nó trở về trạng thái đầu, tất nhiên là vẫn lỗi như trên^^
|
Theo hiện tượng bạn đã mô tả, có thể PIC được kích hoạt chế độ nạp chương trình ở điện áp thấp (LVP). Bạn nên thêm NOLVP vào directive #fuses.
Nếu cắm PIC ngược chiều vào socket trên mạch nạp thì còn tùy thuộc vào việc các chân của socket tại những vị trí ngược chiều đó có gây hư hại gì cho PIC hay không. Bạn chưa cho biết mạch nạp gì, socket được kết nối ra sao, thì không thể có câu trả lời chắc chắn.
Xóa chip trước khi nạp chip là thao tác cần thiết, một số phần mềm tự động thực hiện xóa chip trước khi nạp (và việc này cũng có thể được cấu hình bật/tắt), WinPic800 là phần mềm thuộc loại này.
Về lỗi verify của bạn, có lẽ mạch nạp của bạn không tốt lắm.
Thân,