PDA

View Full Version : Nạp chương trình nhưng không hoạt động


khangspkt
12-04-2009, 07:07 PM
Em sử dụng mạch easypic của ThiênMinh.
Pickit 2.50 và mplap dectect và nạp được, winpic800 v3.61 không detect được.

Chương trình đầu tiên nạp lấy file hex từ mikroElektronika, led_blinking=> chạy tốt
file hex lấy như sau (giữa 2 ==== trên và đuwosi)

=======================================
:100000000428FF3FFF3FFF3F031383168601FF30A5
:100010008312860086090B30FC00FF30FB00FF30A6
:10002000FA00FC0B14281B28FB0B17281A28FA0BC4
:100030001728142811283330FB00FF30FA00FB0B7F
:1000400022282528FA0B22281F288830FA00FA0BCC
:100050002728000000000A282C28FF3FFF3FFF3F11
:02400E007A3FF7
:00000001FF
=================================

Disasembly như sau
===========================
ORG 0004

BCF STATUS, 0x6
BSF STATUS, 0x5
CLRF PORTB
MOVLW 0xff
BCF STATUS, 0x5
MOVWF PORTB
COMF PORTB, F
MOVLW 0xb
MOVWF 0x7c
MOVLW 0xff
MOVWF 0x7b
MOVLW 0xff
MOVWF 0x7a
DECFSZ 0x7c, F
GOTO 0x14
GOTO 0x1b
DECFSZ 0x7b, F
GOTO 0x17
GOTO 0x1a
DECFSZ 0x7a, F
GOTO 0x17
GOTO 0x14
GOTO 0x11
MOVLW 0x33
MOVWF 0x7b
MOVLW 0xff
MOVWF 0x7a
DECFSZ 0x7b, F
GOTO 0x22
GOTO 0x25
DECFSZ 0x7a, F
GOTO 0x22
GOTO 0x1f
MOVLW 0x88
MOVWF 0x7a
DECFSZ 0x7a, F
GOTO 0x27
NOP
NOP
GOTO 0xa
GOTO 0x2c
===========================

Chương trình đơn giản e viết => nạp vào không hoạt động.

==========================
processor 16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC

;================================================= ===================
org 0x04

cblock 20h
d1
d2
d3
endc

bsf STATUS, RP0 ;bank 1
movlw b'00000000' ;set PortB all outputs
movwf TRISB
bcf STATUS, RP0 ;select bank 0

Loop
movlw 0xff
movwf PORTB ;on
call delay
movlw 0x00
movwf PORTB ;off
goto Loop ;lap lai

delay ;1999996 cycles
movlw 0x11
movwf d1
movlw 0x5D
movwf d2
movlw 0x05
movwf d3
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d3, f
goto Delay_0

;4 cycles
goto $+1
goto $+1
return
end
====================================

Em chỉ mới tập tành học pic nên chỉ làm vài thí nghiệm đơn giản thôi.
Nhờ anh em chỉ giúp lỗi ở chỗ nào mà chương trình em viết ko hoạt động.

Khi nạp chương trình của em thì led có sáng hơn 1 tí, nhưng ko chớp tắt. Nhưng imporrt file hex trên vào program memory, nạp lại thì chạy tốt, chớp tắt rõ ràng.

Không biết em có phạm lỗi căn bản nào không?

namqn
12-04-2009, 07:12 PM
Sau khi ghi 0x00 ra port B, bạn cũng phải delay thì mới thấy tác dụng của lệnh này, nếu không thì vòng lặp sẽ ghi 0xFF ra port B ngay sau đó, làm cho bạn có "cảm giác" lệnh ghi 0x00 ra port B không có tác dụng.

Thân,

khangspkt
12-04-2009, 07:48 PM
Cảm ơn anh Nam, em khắc phục được rồi.

1. còn nguyên nhân mà winpic800 không nhận có lỗi gì ko anh.
Detect thi báo lỗi hardware no respond

2. còn khi em chuyên trong debuger ở mplap sang pickit2 (thay vì mplap sim) thì báo lỗi này

PK2Error0028: Unable to enter debug mode
PICkit 2 Ready

nếu debug được trong bước này thì có thuận tiện gì ko anh?

namqn
12-04-2009, 08:27 PM
Cảm ơn anh Nam, em khắc phục được rồi.

1. còn nguyên nhân mà winpic800 không nhận có lỗi gì ko anh.
Detect thi báo lỗi hardware no respond

2. còn khi em chuyên trong debuger ở mplap sang pickit2 (thay vì mplap sim) thì báo lỗi này

PK2Error0028: Unable to enter debug mode
PICkit 2 Ready

nếu debug được trong bước này thì có thuận tiện gì ko anh?
Nếu kit của bạn là kit này:
http://www.mcuvietnam.com/web/?frame=products&id=193

thì nó không tương thích với WinPic800.

Câu hỏi thứ hai bạn nên nhờ nhà sản xuất hỗ trợ (vì họ mới biết PICkit 2 tích hợp có thể debug PIC của bạn hay không, và cần thao tác ra sao).

Thân,

dienbk36
06-02-2010, 09:18 AM
bạn ơi,cho minh hỏi 1 chút,mình mới học pic ,mình đang viet chuong trình trên mplab ,chương trình báo lỗi ,nhưng mình không biết mplab có chức năng phát hiện lỗi ở chỗ nào như AVRSTUDIO không bạn nhỉ,nếu có các bạn chỉ dùm mình với,thanks