Trưởng lão PIC bang
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
|
Trích:
Nguyên văn bởi hatnang87
Em cũng gặp vấn đề gần giống thế, kèm thêm vấn đề với nạp icsp. Em đã trình bày bên clb thức trắng cùng dientuvietnam, tuy nhiên chưa có lời giải. Bây giờ em xin trình bày lại cho các anh giúp đỡ, em đã loay hoay mấy ngày nay chưa được.
1.Em nạp pic 16f877a theo kiểu icsp bằng mạch nạp p2g của pnlab thì vấn đề như sau:
- Em dùng dây nối vào chân nạp ở demo board của anh Bình Anh cho thì ok, vì vậy mà nạp được chip 16f690.
- Em cũng cắm như thế, dùng dây nối câu ra board trắng để nạp 16f877a, chân nguồn và đất thì xác định đúng rồi, chân gần chân đất nối với chân 40, chân tiếp nối chân 39, chân đầu tiên phía kia là MCLR thì nối vào chân 1, ở đó có dùng trở 10k nối lên nguồn 5v lấy luôn ở chân nguồn kia dùng chung.
Lúc đầu thì em thêm con tụ 33p nối đất nhưng không thấy nhận chip, loay hoay mãi em bỏ chân nối đất ở tụ ra thì bất ngờ nó nhận chip, em nạp được 1 lần sau đó tháo bớt dây ra, chỉ dùng dây nguồn và đất cho tiện, nhưng bây giờ lại không nạp được nữa! Em mắc giống ở ICSP guide rồi, cũng đảo qua chân 39,40 nhưng chưa được.
Em đã đo thử thì nguồn đủ (5,2V luôn), chân 1 thì lại là -0,15
--->các bác xem hộ em sao vậy nhỉ?
|
"chân gần chân đất" là chân nào, của cái gì?
"con tụ 33p" nối vào đâu?
ICSP Guide nào?
Bạn không cho biết sơ đồ mạch (ngay cả trường hợp nhà sản xuất đã có tài liệu thì bạn cũng nên đưa link, nếu không thì bạn post ảnh chụp của sơ đồ mạch).
Thử chẩn bệnh phần cứng mà đọc xong mô tả của bạn tôi hoàn toàn không hình dung được bạn nối cái gì vào đâu, và làm theo hướng dẫn nào.Tôi cho là hiếm có ai có khả năng chẩn bệnh kiểu này.
Trích:
Nguyên văn bởi hatnang87
2. Em làm cái mạch led chạy như trong tutorial của pvn, nạp bình thường (không nạp icsp nữa), cắm vào board, kiểm tra tiếp xúc tốt, cắm thạch anh ghi là 20.000, 2 con tụ ghi 33 (chắc là tụ 33p và thạch anh 20Mhz)-->không hiện tượng!
Em dùng que đo kiểm tra, điện áp ra ở các chân portB chỉ có 0,6V là cùng, chẳng led nào sáng. Em đo thử ở thạch anh thì kì lạ thay, led sáng!! Cứ mỗi lần em dí que đỏ vào chân thạch anh hay tụ thì nó lại sáng và chạy, nói chung thành ra mình điều khiển nó chạy chứ không phải do lập trình luôn! (Hôm nay em nối thạch anh và tụ chắc chắn hơn nên ban đầu nó sáng ngay led đầu tiên sau đó tịt! Hơ tay trên con pic thôi là nó chạy đúng luôn! )
Các bác xem hộ em. Nói chung lập trình là form chuẩn (em copy ở tut của anh chính, có chỉnh sửa chút) nên chắc không có vấn đề
;Su dung vi dieu khien microchip: PIC16F877A
title “delay_ms.asm”
processor 16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;Mo ta chuong trinh: chuong trình rotate led, dich phai
;Mo ta phan cung: 8 LED duoc gan vao PORTB thong qua cac dien tro, cac
; thanh phan di kem bao gom thach anh, mach reset va nguon
;================================================= ============================
;Khoi tao cac bien
cblock 0x20count1 ;cac bien dung cho chuong trinh delay
counta
countb
endc
;================================================= ==============
;Bat dau chuong trinh chinh
org 0
main
;Khoi tao PORTB
bsf STATUS,RP0 ;chon bank 1
clrf TRISB ;toan bo PORTB la output
bcf STATUS,RP0 ;chon bank 0 de lam viec
movlw 0x80
movwf PORTB ;bat led dau tien o portB
loop ;vong lap chinh
call delay100ms
rrf PORTB,1 ;dich phai thanh ghi PORTB, ket qua ghi vao thanh ghi PORTB
goto loop
;====================
;chuong trinh con
delay100ms
movlw 0xC8
movwf count1
d1
movlw 0xC7
movwf counta
movlw 0x01
movwf countb
delay
decfsz counta,1
goto $+2
decfsz countb,1
goto delay
decfsz count1,1
goto d1
return
END ; ket thúc chuong trình
|
Thạch anh 20 MHz cần dùng cấu hình _HS_OSC chứ không phải _XT_OSC.
Thân,
|