Ngâm cứu cái taplenh.pdf với các tiêu chuẩn mà bác fall đưa ra.
Tại cũng có tiêu chuẩn khác rồi. Bổ sung mấy ý của bác fall.
Chương trình đầu tay.
Code:
;;================================================|=================================================
;; Tên chương trình : Hướng đẫn học Pic
;; Mã số kiểm tra :
;; Người thực hiện : qmk
;; Ngày cập nhật : 31/12/2005
;; Phiên bản : Writing
;; Mô tả phần cứng :
;; - Pic16F88
;; - Tần số Xtal : 4MHz
;; - Xem tài liệu thiết kế phần cứng đi kèm
;;------------------------------------------------|-------------------------------------------------
;; Mô tả chương trình:
;; - Các thông tin về cập nhật chương trình xem ở cuối chương trình
;;
;;------------------------------------------------|-------------------------------------------------
;; Thỏa thuận bản quyền:
;; - Bản quyền phần mềm này thuộc về người viết chương trình...
;;================================================|=================================================
;Region CẤU HÌNH BỘ BIÊN DỊCH - COMPILER CONFIGURATION
TITLE "Hướng dẫn học Pic"
PROCESSOR PIC16F88
;; __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC
include <P16F88.inc>
;/Region
;;================================================|=================================================
ORG 0x0000
GOTO MAIN
ORG 0x0005
;;================================================|=================================================
;Region CHƯƠNG TRÌNH CHÍNH - MAIN PROGRAM
MAIN
banksel TRISB ;; Bank select (Một iMacro của trình biên dịch?)
clrf TRISB ;; TRISB = 0 Out, =1 In (Tri State)
banksel PORTB
bsf PORTB,0 ;; rb0 = 1
goto $ ;; Vòng lặp vô tận
;/Region
END ;; Trình biên dịch tự động dừng khi gặp lệnh này
Chương trình này có mấy warning có vẻ bất thường:
Warning[215] D:\TESTF88\MAIN.ASM 21 : Processor superseded by command line. Verify processor symbol.
Message[302] D:\TESTF88\MAIN.ASM 35 : Register in operand not in bank 0. Ensure that bank bits are correct.
Warning[205] D:\TESTF88\MAIN.ASM 43 : Found directive in column 1. (END)
Dòng 35 là:
clrf TRISB ;; TRISB = 0 Out, =1 In (Tri State)
Ngoài ra khi để dòng này nó sẽ báo lỗi:
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC
Error[126] D:\TESTF88\MAIN.ASM 24 : Argument out of range (not a valid config register address)
Không hiểu lệnh này mâu thuẫn với cấu hình Device trong MPlab thế nào.