PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC > Những câu hỏi thường gặp

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Những câu hỏi thường gặp Những lỗi cơ bản thường gặp khi làm việc với PIC hoặc những vấn đề cơ bản nhất thường được hỏi trong những năm qua

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-08-2007, 11:17 PM   #1
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Mới dùng PIC6F84A đã bị lỗi , nhờ giúp đỡ !

Mạch kết nối :

code

Mô phỏng trên proteus thì chạy nhưng ráp test thử thì không sáng LED
Nạp chương trình :
- open : 1led.HEX
- cài đặt osc là XT
- cuối cùng nhấn program All
Sau khi nạp hết thì hiện thông báo

Không bit lỗi do cách thức nạp bị sai ? hay do ráp mạch còn thiếu chỗ nào nữa . (Đo chân RB0 chả lên Volt nào cả )
Ah ! mà viết BSF PORTB,0 ; chỉ set bit0 của portB
nhưng khi mô phỏng lại cho ra kết quả
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2007, 09:15 AM   #2
cup_of_cafe
Nhập môn đệ tử
 
Tham gia ngày: Aug 2007
Bài gửi: 8
:
Khi bạn nạp file HEX thì bạn nạp dùng JDM ??? Có vẻ như bạn chưa hiểu lắm đến khái niệm mạch nạp, bạn dùng chính mạch trong Protus để chạy nạp dữ liệu???
Để nạp dữ liệu vào PIC, bạn phải dùng 1 bộ nạp chuyên dụng hoặc bộ debug như ICD chẳng hạn. Nếu bạn dùng ICD bạn có thể nạp và chạy luôn trên mạch. Dùng mạch nạp này bạn nạp file HEX do trình biên dịch PIC tạo ra và thực thi nó.
cup_of_cafe vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2007, 11:21 PM   #3
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Ah ! Chắc mình viết khó hiểu nên khiến cup_of_cafe hiểu nhầm . Ý của mình là
- code mình viết như trên , chắc ko có gì sai , vì đơn giản thôi mà
- Mình dùng MPLAB IDE để viết code & build all thì ko có lỗi , & tạo đc file *.HEX
- Mình nạp file này vào PIC với software Ic-Prog 1.05E(tất nhiên là wa mạch nạp , mình mua 75k đấy!)
Vấn đề là : tại sao lại có dòng thông báo "verify failed at address 0000H" ?
: nhấn OK , tháo PIC ra gắn vào test board , cho run nhưng LED ko sáng---> có phải chương trình chưa đc nạp vào PIC
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-08-2007, 12:00 AM   #4
namqn
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
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi Mr.Bi View Post
Ah ! Chắc mình viết khó hiểu nên khiến cup_of_cafe hiểu nhầm . Ý của mình là
- code mình viết như trên , chắc ko có gì sai , vì đơn giản thôi mà
- Mình dùng MPLAB IDE để viết code & build all thì ko có lỗi , & tạo đc file *.HEX
- Mình nạp file này vào PIC với software Ic-Prog 1.05E(tất nhiên là wa mạch nạp , mình mua 75k đấy!)
Vấn đề là : tại sao lại có dòng thông báo "verify failed at address 0000H" ?
: nhấn OK , tháo PIC ra gắn vào test board , cho run nhưng LED ko sáng---> có phải chương trình chưa đc nạp vào PIC
Đúng vậy, phần mềm báo là tại địa chỉ 0000h nội dung đã nạp được khác với nội dung cần nạp => chưa nạp được chương trình vào PIC.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2007, 11:23 PM   #5
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Mình dùng Winpic800 nạp vẫn có dòng thông báo trên ? Thế mới đau chứ !
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-08-2007, 01:08 AM   #6
thaithienanh
Đệ tử 7 túi
 
thaithienanh's Avatar
 
Tham gia ngày: Jul 2006
Bài gửi: 189
:
Send a message via Yahoo to thaithienanh
Thông báo đó đồng nghĩa với Winpic800 thậm chí chẳng thấy đuợc con PIC luôn -> PIC chưa ăn đuợc "món gì" vào bụng -> lắp vào mạch thì em led muốn nháy lắm mà anh PIC "đói bụng" quá hổng chịu cho nháy

Như vậy ở đây lỗi nằm ở phần Programer : có thể là do mạch nạp, kết nối, cấu hình winpic800.....

Bạn xem lại phần trao đổi giữa các thành viên ở luồng "thông tin mạch nạp phần mềm",..v..v.. để biết cách kiểm tra và khắc phục lỗi nhé

Thân.
__________________
_____________________________Tri nhân tri tự bất tri tâm_____________________________
_ _ _ _ _ _ _ _ Yêu mến tất cả anh em Picvietnam.com _ _ _ _ _ _ _ _
. . . . . . . . . . . . . . . . Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . .
thaithienanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-08-2007, 09:38 AM   #7
john_den
Đệ tử 1 túi
 
Tham gia ngày: Jul 2006
Bài gửi: 12
:
Cũng có thể là do chưa cắm điện nguồn vào mạch nạp....
john_den vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-08-2007, 01:11 AM   #8
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
- Mạch của mình giao tiếp PC wa COM--> chắc dùng nguồn của PC rùi
- Có khi nào mạch nạp mình mua bị fault ko nhỉ? Phải đưa cho ông chủ tiệm tét lại đã !
Thanks các cố vấn
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-08-2007, 02:24 AM   #9
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Đây , sơ đồ mạch nạp mà em đã mua
Vị trí chân khi cho vào socket

WinPic800 ko detect đc loại PIC --> PIC đã hỏng ? Con này em mua cùng với Mạch nạp luôn đó . Sao hỏng nhanh thế nhỉ ?

Mấy anh để ý dòng
0x0000: 3FFF 3FFF... dòng đầu tiên ý ! trong hình WinPic800 . Phía cuối của dòng này là những kí tự 'Lạ" ! Không phải là những dấu ?.?.?.?.?.
TẠi sao thế
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-08-2007, 03:25 AM   #10
abeo
Nhập môn đệ tử
 
Tham gia ngày: Feb 2007
Bài gửi: 5
:
Có thể bạn cắm nhầm chân con pic vào zif thì sao, giả dụ như cắm lộn ngược pic hay không đúng thứ thự chân.(cái này khiến bị lỗi đó).
Bình thường khi cắm chip vào và khởi đông winpic800 thì nó tự detect chip.
Cũng có thể bạn set jumper chưa đúng (có hai chế độ hoạt động của bộ nạp--pic 16f84 là loại 18 chân) thành ra chân MCLR không có tín hiệu.
Còn về mấy cái chữ không phải ?.?.? thì đó là mã ASCII của mấy số hex tương ứng ở cột bên trái.
abeo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-08-2007, 04:35 PM   #11
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Uh ! Đúng vậy , sau khi đem mạch lại cho ông chủ bán test thì ổng bày set Jump , bây giờ thì detect PIC đã có khả quan

Có phải với thông báo này , chương trình đã đc nạp vào PIC hay ko ? , Sao mình đo áp portB , chân nào cũng lên 5v .Trong khi code mình viết chỉ SET cho RBO thôi mà

Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-09-2007, 02:58 AM   #12
abeo
Nhập môn đệ tử
 
Tham gia ngày: Feb 2007
Bài gửi: 5
:
bạn đọc lại datasheet của con pic 84 đi (google cụm từ pic 16f84a và chọn link có cái mở đầu là [PDF]), hình như trong đó viết là trạng thái các chân port của con pic lúc reset là không xác định!, để cho chắc ăn bạn nên dùng lệnh:
movlw b'00000001'
movwf portb
abeo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-09-2007, 10:03 AM   #13
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
UH , đúng vậy abeo ah ! với MOVLW B'00000001'
MOVFW PORTB
thì ko có vấn đề gì xảy ra cả !
Về vấn đề DELAY , code của nó thế này :
DELAY CLRF COUNT; xóa thanh COUNT
HERE DECFSZ COUNT,1;giảm nhảy nếu chưa = 0
GOTO HERE
RETURN
Vấn đề là câu lệnh DECFSZ : tại sao lúc đầu ta đã CRLF nó rùi (tức giá trị của COUNT bây giờ = 0) , mà ta lại giảm nữa . Từ g.trị 0 thì giảm về mấy ? chẳng lẽ về giá trị âm ?
Thường thì trong 8051 , ban đầu ta gán cho COUNT = FFh , sau đó giảm về 0thì Bi thấy có lý .
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-09-2007, 02:07 AM   #14
abeo
Nhập môn đệ tử
 
Tham gia ngày: Feb 2007
Bài gửi: 5
:
do thanh ghi có 8 bit nên sau khi lệnh giảm xảy ra thì từ 00h sẽ về FFh và cứ như thế mãi nều không có điều kiện nhảy nếu bằng không (vốn là kiểm tra cờ zero, sau khi giảm mới kiểm tra),con pic không hiểu giá trị âm, (chỉ có thể định nghĩa bằng phần mềm), mình cũng là dân mới học nên cũng muốn giao lu với anh em cho nó tăng phần hiểu biết.
abeo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-09-2007, 12:01 PM   #15
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Hiểu rùi ! con PIC này thú vị ấy chứ nhỉ !
Hỏi abeo tiếp nhé : đây là đoạn code Bi viết cho led7d , dùng tra bảng
LOOP1 CLRF POINTER ; thanh ghi POINTER là thanh ghi đếm
LOOP2 MOVF POINTER,W
CALL TRA_BANG
MOVWF PORTB
CALL DELAY_1s
INCF POINTER
MOVLW D'10'
XORWF POINTER,W
BTFSS STATUS,Z
GOTO LOOP2
GOTO LOOP1
TRA_BANG ADDWF PCL
RETLW H'3F';so 0
RETLW H'06';so 1
RETLW H'5B';so 2
RETLW H'4F';so 3
RETLW H'66';so 4
RETLW H'6D';so 5
RETLW H'7D';so 6
RETLW H'07';so 7
RETLW H'7F';so 8
RETLW H'6F';so 9
END
Bi ko hiểu , mình sai logic chỗ nào nữa . nó chỉ đếm 0 , 1 ; rùi tự nhiên nhảy về lại 0 . Đau đầu cả buổi khuya !
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 07:54 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam