PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Những câu hỏi thường gặp (http://www.picvietnam.com/forum/forumdisplay.php?f=54)
-   -   Hỏi về MPLAB (http://www.picvietnam.com/forum/showthread.php?t=678)

chipchipvn 15-10-2006 06:01 PM

Hỏi về MPLAB
 
Xin lỗi các anh, em mún hỏi về cách sử dụng MPLAB. Híc, em không biết sao mà em đã copy mã của bác F vào rùi nhưng mừ RUN thì không thấy gì hết cả. Các bác có thể cho em xin tài liệu hướng dẫn MPLAB được không ạ! Cảm ơn.

namqn: Bạn nói rõ hơn là bạn muốn làm gì với MPLAB. Tài liệu của MPLAB thì vào Microchip download bản mới nhất (dùng chức năng tìm tài liệu để tìm các tài liệu sau: DS51281, DS51519).

falleaf 15-10-2006 10:09 PM

MPLAB không cần dùng Mã gì cả, anh Nam đã nhắn rồi.

Chỉ khi nào các bạn cần nhúng các trình dịch khác vào như C30 hoặc những cái mà nó không cho, thì mới cần phải nhúng vào bẻ khóa.

Chúc vui

chipchipvn 16-10-2006 12:14 AM

Ý em là, em có xem bài "học PIC trong một ngày" của bác F, em dùng MPLAB để soạn CODE ( thực ra là em chép từ bài của bác F) sau đó thử Debug trước khi convert thành file hex để đưa vào Proteus làm giả lập! Nhưng mà khi em dùng MPLAB SIM để debug thì chẳng thấy có hiện tượng chi cả :(, em không hiểu làm sao để biết code mình đúng hay sai đây! Nếu nạp vào Proteus thì chỉ nhận được một thông báo "lạnh lùng" "FATAL: [U1] Program or EEPROM data has invalid address [1000] for this device". Cảm ơn các anh đã giúp đỡ!

falleaf 16-10-2006 12:46 AM

Em dùng đoạn code nào? em gửi lại đoạn code đó lên cho mọi người xem luôn nhé.

Chúc vui

chipchipvn 16-10-2006 06:09 PM

Hix, em dùng y chang đoạn CODE của bác F, chỉ thay đổi thành con P16F877A, em đã thêm cả header files và linker files. Nhưng mừ khi Build thì lại báo lỗi sau " Processor superseded by command line. Verify processor symbol." Xin lỗi vì làm phiền các bác nhưng em thiệt chả bít làm sao T_T

;================================================= =======
TITLE "Mach test LED_1"
PROCESSOR P16F877A
INCLUDE <P16F877A.inc>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC

;================================================= ======
ORG 0x0000
GOTO MAIN


ORG 0x0005

MAIN
BANKSEL TRISB ; bank select
CLRF TRISB ; trisb = 00000000
; portb = output
BANKSEL PORTB
BSF PORTB, 0 ; rb0 = 1
; RB0 = 5V
GOTO $ ; dung chuong trinh tai day
; vong lap tai cho^~
; khong bao gio ket thuc
END. ; lenh bat buoc de ket thuc
;================================================= ===============================

namqn 16-10-2006 06:46 PM

Trích:

Nguyên văn bởi chipchipvn (Post 5491)
Hix, em dùng y chang đoạn CODE của bác F, chỉ thay đổi thành con P16F877A, em đã thêm cả header files và linker files. Nhưng mừ khi Build thì lại báo lỗi sau " Processor superseded by command line. Verify processor symbol." Xin lỗi vì làm phiền các bác nhưng em thiệt chả bít làm sao T_T

;================================================= =======
TITLE "Mach test LED_1"
PROCESSOR P16F877A
INCLUDE <P16F877A.inc>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC

;================================================= ======
ORG 0x0000
GOTO MAIN


ORG 0x0005

MAIN
BANKSEL TRISB ; bank select
CLRF TRISB ; trisb = 00000000
; portb = output
BANKSEL PORTB
BSF PORTB, 0 ; rb0 = 1
; RB0 = 5V
GOTO $ ; dung chuong trinh tai day
; vong lap tai cho^~
; khong bao gio ket thuc
END. ; lenh bat buoc de ket thuc
;================================================= ===============================

Đó không hẳn là lỗi đâu. MPLAB chỉ nhắc cho bạn biết là nó sẽ dùng thông tin về bộ xử lý ở dòng lệnh (được thiết lập bằng lệnh mênu Configure>Select Device) thay vì dùng thông tin mà bạn mô tả trong tập tin nguồn. Bạn có thể kiểm tra bộ xử lý đang được chọn cho MPLAB bằng cách nhìn vào dòng trạng thái của MPLAB, ở vị trí thứ ba từ trái sang.

Nếu bạn chọn bộ xử lý tương thích với bộ xử lý được mô tả trong tập tin nguồn thì chương trình dịch ra sẽ chạy tốt.

Thân,

chipchipvn 16-10-2006 07:19 PM

^^, cảm ơn bác Nam nhìu, em đã làm được rùi :D, nhưng bác ơi, cho em hỏi thêm 1 chút nữa! Em nghe bác F bảo là học PIC cần mạch nạp, cht nạp... Em mún hỏi là liệu em có thể không dùng mấy cái đó vội mà dùng Proteus để học được không ạ. Có bất lợi gì không? Em xin cảm ơn bác.

namqn 16-10-2006 09:11 PM

Trích:

Nguyên văn bởi chipchipvn (Post 5497)
^^, cảm ơn bác Nam nhìu, em đã làm được rùi :D, nhưng bác ơi, cho em hỏi thêm 1 chút nữa! Em nghe bác F bảo là học PIC cần mạch nạp, cht nạp... Em mún hỏi là liệu em có thể không dùng mấy cái đó vội mà dùng Proteus để học được không ạ. Có bất lợi gì không? Em xin cảm ơn bác.

Học trên mạch thực tế là cách học tốt nhất. Tuy nhiên, nếu bạn chưa có điều kiện thì vẫn có thể học trên các bộ mô phỏng. Các bộ mô phỏng có một điểm mạnh là cho phép bạn theo dõi nội dung các thanh ghi trong bộ xử lý, thực hiện từng lệnh mã máy. Nhưng các bộ mô phỏng cũng có điểm yếu là không có khả năng mô phỏng một số hiện tượng trong thực tế.

Thân,

chipchipvn 17-10-2006 03:58 PM

Hức, bác Nam ơi, em lại phải làm phiền bác rùi! MPLAB xong rùi nhưng khi em chuyển qua bên Proteus giả lập lại báo lỗi, bác xem hộ em với, em chả hiểu nó nói gì nữa. Sau khi em nap file hex vào rồi chạy thử nó báo lỗi sau
[U1] Loading HEX file '..\..\..\..\Documents and Settings\Administrator\My Documents\test-copy.hex'.
FATAL: [U1] Program or EEPROM data has invalid address [1000] for this device

Real Time Simulation failed to start

Real Time Simulation FAILED.

hức, bài này em đã post ở chỗ khác nhưng hình như bác không thấy. Em xin lỗi nhưng em bí quá làm liều bác ạ.

namqn 17-10-2006 06:33 PM

Trích:

Nguyên văn bởi chipchipvn (Post 5525)
Hức, bác Nam ơi, em lại phải làm phiền bác rùi! MPLAB xong rùi nhưng khi em chuyển qua bên Proteus giả lập lại báo lỗi, bác xem hộ em với, em chả hiểu nó nói gì nữa. Sau khi em nap file hex vào rồi chạy thử nó báo lỗi sau
[U1] Loading HEX file '..\..\..\..\Documents and Settings\Administrator\My Documents\test-copy.hex'.
FATAL: [U1] Program or EEPROM data has invalid address [1000] for this device

Real Time Simulation failed to start

Real Time Simulation FAILED.

hức, bài này em đã post ở chỗ khác nhưng hình như bác không thấy. Em xin lỗi nhưng em bí quá làm liều bác ạ.

Ok, đã đọc post đó của bạn nhưng bận quá nên chưa trả lời.

Bạn kiểm tra lại xem mã .hex được dịch ra có nằm lọt vào không gian địa chỉ bộ nhớ Flash của chip hay không. Dùng một phần mềm nào đó như WinPic800 để load tập tin .hex vào, và xem mã chương trình nằm ở vùng nhớ nào. Kiểm tra cả bộ nhớ chương trình lẫn EEPROM, chọn đúng chip sẽ được dùng trong Proteus khi mở WinPic800.

Thân,

chipchipvn 17-10-2006 07:35 PM

Vâng, cảm ơn bác. Em sẽ thử ngay mặc dù chưa bít cái winpic800 là cái gì cả :d

chipchipvn 18-10-2006 07:24 AM

Hức, bác ơi, em đã kiểm tra lại bộ nhớ như lời bác nói, chỉ từ 0x00 đến 0x13 thui, chắc là nằm trong bộ nhớ Flash rùi. nhưng nó vẫn báo lỗi như thế ( mặc dù có thay đổi chút đỉnh)

Warning: [U1] CFGWORD2 not implemented
FATAL: [U1] Program or EEPROM data has invalid address [2000] for this device

Real Time Simulation failed to start

Real Time Simulation FAILED.

Sau đó em quay qua phần Help để xem hướng dẫn thì nó bảo add file source code (ten_file*.asm) của mình vào, em làm theo thì nó lại bảo kiếm không ra file ten_file*.COD, hức, đúng là không có file COD thật. Làm sao cho MPLAB tạo ra file COD cho mình hả bác. Hức, em xin lỗi nhưng mới tập tọng vào nghề hỏi hơi nhìu, bác thông cảm cho em.
Híc, mấy bữa nay mắc cái Proteus chạy không được nên không biết làm tiếp thế nào Y_Y

spirit 18-10-2006 12:33 PM

Trích:

Nguyên văn bởi chipchipvn (Post 5547)
Hức, bác ơi, em đã kiểm tra lại bộ nhớ như lời bác nói, chỉ từ 0x00 đến 0x13 thui, chắc là nằm trong bộ nhớ Flash rùi. nhưng nó vẫn báo lỗi như thế ( mặc dù có thay đổi chút đỉnh)

Warning: [U1] CFGWORD2 not implemented
FATAL: [U1] Program or EEPROM data has invalid address [2000] for this device

Real Time Simulation failed to start

Real Time Simulation FAILED.

Sau đó em quay qua phần Help để xem hướng dẫn thì nó bảo add file source code (ten_file*.asm) của mình vào, em làm theo thì nó lại bảo kiếm không ra file ten_file*.COD, hức, đúng là không có file COD thật. Làm sao cho MPLAB tạo ra file COD cho mình hả bác. Hức, em xin lỗi nhưng mới tập tọng vào nghề hỏi hơi nhìu, bác thông cảm cho em.
Híc, mấy bữa nay mắc cái Proteus chạy không được nên không biết làm tiếp thế nào Y_Y

Câu Error trên của Proteus là dữ liệu bị sai ở địa chỉ 2000H do đó có thể bạn chọn chip mô phỏng bị sai so với cấu hình bạn chọn con Pic trong chương trình của mình.
Mình đã sử dụng Proteus cũng được 1 tháng rùi nhưng chưa bao giờ thấy hiện tượng như bạn nêu trên.
Bạn nên đưa hình ảnh mô phỏng trên Proteus và Source Code lên đây luôn đi
mình sẽ giúp bạn từng bước (nếu có thể).
Anh Namqn bận lắm do đó mình sẽ trả lời giúp bạn.

chipchipvn 18-10-2006 04:30 PM

Cảm ơn bạn, đây là CODE của mình nhưng mình chạy với MPLAB SIM không có vấn đề nên mình nghĩ là do không biết xài Proteus thui!

;================================================= ==============
;Chuong trinh dieu khien LED bat tat
;An 1 cai LED sang, an tiep LED tat
;================================================= ==============
Title "LED_2"
Processor p16f88
Include <p16f88.inc>
;================================================= ===============
ORG 0x0000

Goto Main
ORG 0x0005

Main
banksel TRISB
clrf TRISB
movlw 2h
movwf TRISB
Goto Check
Check
Btfsc PORTB,1
Goto Check
Call Switch
Switch
btfss PORTB,0
bsf PORTB,0
bcf PORTB,0
Return
End

Còn đây là file *.DSN dùng trong Proteus của mình, mình không chụp hết được cả cái mạch ^^

http://s19.quicksharing.com/v/6517024/test02.DSN.html

Còn con Chip thì mình dùng 16F88 trong Proteus, mình không biết nó sai ở đâu nữa.
Cảm ơn spirit!

spirit 18-10-2006 05:28 PM

Hello chipchipvn,đọc sơ qua mã nguồn bạn viết ở trên thấy rằng nó không tối ưu.Để tối nay mình về sẽ test lại giùm bạn và trả lời bạn trong thời gian sớm nhất.
Mình nghĩ bạn nên học và viết cho Pic 16F877A luôn đi bởi vì chức năng của nó là nhất trong dòng 16F và trên PICVIETNAM có rất nhiều bài ứng dụng cho nó( bạn có thể search ).
Còn học nó như thế nào thì trên diẽn đàn cũng đã nói rất nhiều,bạn chịu khó tìm kiếm nhé.
Khi học Pic thì cố gắng làm trên mạch thật bởi vì Proteus nhiều lúc mô phỏng chạy được nhưng khi đưa trên mạch thật thì bó phép(vì các điều kiện bên ngoài không lý tưởng...).

Về mạch nạp thì bạn có thể mua mạch nạp của PICVIETNAM để ủng hộ(giá rất sinh viên).Về mạch thực hành thì bạn có thể thiết kế cho riêng mình.
Nếu ngại làm thì bạn có thể mua mạch của lớp học PIC ở Hà Nội do anh BINHANH làm.Khoảng 400k thôi nhưng vừa nạp và thục hành luôn.

Chúc bạn có nhiều niềm vui khi hoc Pic.


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam