PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   MPASM (http://www.picvietnam.com/forum/forumdisplay.php?f=34)
-   -   Sườn chương trình cơ bản bằng MPASM (http://www.picvietnam.com/forum/showthread.php?t=18)

falleaf 24-05-2005 11:26 PM

Sườn chương trình cơ bản bằng MPASM
 
1 Attachment(s)
Code:

;===================================================================================================
; Ten chuong trinh        : Mach test den LED_1
; Nguoi thuc hien        : Falleaf
; Ngay thuc hien        : 23/05/2005
; Phien ban        : 1.0
; Mo ta phan cung        : Dung PIC16F628A - thach anh 10MHz
;                : LED giao tiep voi PORTB
;                : Cuc am cua LED noi voi GND
;                : RB0 - RB7 la cac chan output
;---------------------------------------------------------------------------------------------------
; Ngay hoan thanh        : 23/05/2005
; Ngay kiem tra        : 23/05/2005
; Nguoi kiem tra        : Doan Hiep
;---------------------------------------------------------------------------------------------------
; Chu thich                        : Mo ta cac diem khac nhau cua cac phien ban khac nhau
;                                : hoac cac chu thich khac
;                                : vd, dung che do Power On Reset, PORTB = 00000000
;                                : hoac, chuong trinh viet cho PIC Tutorial
;                                : hoac, chuong trinh nay hoan toan mien phi va co the dung cho
;                                : moi muc dich khac nhau
;===================================================================================================

                                        TITLE                "Mach test LED_1"
                                        PROCESSOR        PIC16F628A
                                        INCLUDE        <P16F628A.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

;===================================================================================================


chuchinh 18-05-2006 04:44 PM

Thực sự là em copy nguyên cả code này vào mà nó cứ báo lỗi:
Make: The target "E:\Test\test1\test1.o" is out of date.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F628A "test1.asm" /l"test1.lst" /e"test1.err"
Warning[215] E:\TEST\TEST1\TEST1.ASM 24 : Processor superseded by command line. Verify processor symbol.
Message[302] E:\TEST\TEST1\TEST1.ASM 38 : Register in operand not in bank 0. Ensure that bank bits are correct.
Loaded E:\Test\test1\test1.COD.
BUILD SUCCEEDED: Mon May 01 15:32:03 2006
Là do gì hả bác???
Thành thật xin lỗi vì post bài này ở 2 nơi, nhưng đang bức xúc vì vừa bắt đầu đã bị out ngay.

namqn 18-05-2006 06:02 PM

Cái warning cho biết việc chọn bộ xử lý tại dòng lệnh có mức ưu tiên cao hơn (nghĩa là nó sẽ là bộ xử lý được dùng để biên dịch), bạn phải kiểm tra để đảm bảo nó đúng là bộ xử lý bạn muốn dùng.

Cái message cho biết thanh ghi bạn đang thao tác không nằm ở bank 0, bạn phải tự có các lệnh chuyển bank thanh ghi thích hợp.

Nhưng chương trình đã được biên dịch thành công, bạn còn muốn gì nữa?

Thân,

chuchinh 19-05-2006 12:57 PM

Ồ, em đã nhìn thấy dòng này:
BUILD SUCCEEDED: Mon May 01 15:32:03 2006
Xin lỗi vì em là newbie mà, chỉ vừa mới nhập môn thôi.
Sau khi đọc hướng dẫn học PIC trong một ngày nên em áp dụng luôn bằng cách down MPASM và copy code của các bác vào chạy chứ chưa làm gì khác cả. Việc có warning + message khiến em khó hiểu: phải chăng đầu chương trình mình đều phải khai báo PROCESSOR ... và nó luôn có cái warning này. Còn cái message thì sao, em đã khai báo BANKSEL TRISB như các bác rồi mà, nghĩa là mình đã chuyển vùng làm việc về bank 1, sau đó có lệnh chuyển về bank 0.
Có phải là chương trình này đúng nhưng khi có một thao tác không theo tuần tự bộ nhớ thì nó sẽ có các warning hay message, nếu vậy thì khi bị lỗi thật làm sao phân biệt được nhỉ?
Không hiểu nên hỏi lung tung, mong các bác thứ lỗi.
Cảm ơn bài viết của bác Hiệp thật rõ ràng và dễ hiểu.

falleaf 19-05-2006 03:06 PM

Cho dù em có khai báo BANKSEL thì nó vẫn warning/message, nghĩa là vẫn nhắc em coi lại, nếu em đã khai báo rồi thì thôi, nếu em chưa khai báo thì em bổ sung. Anh lưu ý, vì trình dịch nó không thể hiểu, và không thể bắt người viết chương trình viết dòng BANKSEL ngay trước khi tương tác thanh ghi. Có thể người ta chuyển BANK trước đó rồi, đến đó người ta không cần chuyển nữa.

Cái nguy hiểm là chuyển qua BANK1, nhưng sau đó lại không chuyển ngược lại BANK0, thì khi làm việc với các thanh ghi của BANK0, nó lại hoàn toàn không thông báo gì cả.

Như vậy, em đừng lo lắng về việc nó thông báo, mặc dù em đã có lệnh BANKSEL.

Coi như đó là một lời nhắc nhở, và chính xác nó là lời nhắc nhở.

Chúc vui.

ntc 19-05-2006 03:15 PM

Mình có giải thích một số vấn đề liên quan tại chỗ này.

Bạn tham khảo thêm.

http://www.picvietnam.com/forum//sho...p?t=238&page=6

:D

chuchinh 19-05-2006 03:28 PM

Bây giờ thì em đã hiểu, cảm ơn bác. Chiều nay em sẽ đi mua một con PIC16F628A về lắp mạch chạy luôn. Hy vọng em sẽ sử dụng được PIC trong thời gian sớm nhất!


Múi giờ GMT. Hiện tại là 12:24 PM.

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