PDA

View Full Version : Các lý do làm cho PIC bị reset ???


Jerry
16-08-2007, 04:16 PM
Tớ thử viết 1 chương trình bằng hợp ngữ cho PIC, chương trình chỉ đơn giản là hiển thị chữ A lên LCD. Modul điều khiển LCD là modul tớ đã viết chuẩn và đã chạy trong một số mạch phần cứng khác mà tớ làm. Tuy nhiên trên thực tế thì màn hình LCD hiển thị chữ A lên trong vài giây rồi lại tắt, rồi lại tiếp tục hiển thị, rồi lại tắt. Cứ nhấp nha nhấp nháy như thế. Tớ cho rằng lý do là phần mềm bị reset. Nhưng nguyên nhân do đâu và cách khắc phục thế nào? Rất cần mọi người giúp đỡ. Chương trình của tớ như sau:


; Các khai báo cần thiết về chân cổng, port... đã thực hiện đúng ở đây

MainProg:
clrwdt
movlw 0x80
call WriteCommand
movlw 'a'
call WriteData
goto MainProg


Tớ định nghĩa các bit cấu hình như sau:
Osscillator: XT
Watchdog timer: on
Power up timer: on
Brown out detect: on
Low voltage program: Disable
Code protect: on

hanspkt
16-08-2007, 10:32 PM
Tớ định nghĩa các bit cấu hình như sau:
Osscillator: XT
Watchdog timer: on
Power up timer: on
Brown out detect: on
Low voltage program: Disable
Code protect: on

bạn định nghĩa "Watchdog timer: on" là bị reset phải rồi

namqn
16-08-2007, 10:37 PM
bạn định nghĩa "Watchdog timer: on" là bị reset phải rồi
Trong vòng lặp chính bạn Jerry có lệnh clrwdt để định kỳ xóa WDT, do đó ý kiến của bạn chưa hẳn chính xác.

Về phía bạn Jerry, trong 2 chương trình con mà bạn gọi trong vòng lặp chính thì có chương trình con nào có thời gian delay lớn hơn thời gian đã cài đặt cho WDT không?

Thân,

ham hoc
08-05-2011, 10:21 AM
các anh ơi cho em hỏi: khi em mô phỏng quét led trên proteus, reset pic bằng công tắc thì chạy ngon. mạch chạy đúng theo ý mình khi reset nhưng khi nạp vào mạch thật và cũng reset bằng công tắc thì dãy led lại ko thay đổi trạng thái gì cả. anh nào biết thì giải thích giúp em với.thanks

ladykiller
20-11-2011, 11:45 PM
goto $ thì nó mới hiện hẳn chủ A chứ Goto mainprog thì nó nhảy là đúng rồi, nó nhảy là do LCD không đáp ứng kịp chứ không phải do pic reset
^^