View Single Post
Old 24-05-2005, 04:13 AM   #3
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Học PIC trong 1 ngày

Phần thứ hai các bạn cần học, đó là khởi tạo PIC. Phần này là phần bắt buộc theo sau phần ghi chú, bởi vì chương trình dịch cần phải hiểu bạn đang làm việc với con PIC nào, làm việc với nó như thế nào?
Code:
;=======================================================
		TITLE 		"Mach test LED_1"
		PROCESSOR	P16F628A
		INCLUDE 	<P16F628A.inc>
		__CONFIG   	_CP_OFF	& _PWRTE_ON & _WDT_OFF &_HS_OSC

;=======================================================
Các bạn sẽ thấy rằng có một số từ khoá như sau:

TITLE: dùng để các bạn ghi chú thích tên chương trình. TITLE là ten chương trình chính. Cú pháp ghi TITLE như trên. Nhớ phải có dấu nháy kép khi viết tên chương trình.

PROCESSOR: dùng để khai báo dòng vi điều khiển mà các bạn sử dụng. Các bạn lưu ý, trong MPLAB quy định, không viết đầy đủ tên PIC16F628A mà chỉ viết P16F628A, vì trong chương trình dịch đã quy định như vậy.

INCLUDE: dùng để đưa thêm vào các file mà bạn viết trong chương trình. Mặc định, trong MPLAB đường dẫn đến thư mục chứa file P16F628A.inc đã có sẵn. Nếu bạn đặt file ở nơi khác không phải trong thư mục bạn đang làm việc, hoặc các file include khong phải là file .inc có sẵn của MPLAB, thì các bạn phải chỉ đường dẫn rõ ràng. Lưu ý rằng, để MPASM dịch được, các bạn phải đặt đường dẫn từ thư mục gốc đến hết tên file (kể cả phần mở rộng của file) không được quá 60 ký tự.

__CONFIG: dùng để thiết lập các chế độ hoạt động của PIC. Các bạn có thể xem để hiểu thêm về các chế độ hoạt động này trong tài liệu

PICmicro
Mid Range MCU Family
Reference Manual

Section 27. Device Configuration Bits
Table 27-1 page 27-7


Tài liệu này có thể download trên trang web của microchip www.microchip.com, keyword: MidRange Manual.

Mỗi directive để đặt chế độ, cách nhau một ký tự &.
Nếu ghi chế độ hoạt động vào đây, các chế độ hoạt động sẽ ở trạng thái mặc định khi khởi động.
Các bạn cũng có cách khác để đặt chế độ hoạt động bằng cách tác động trực tiếp vào các thanh ghi khởi tạo. Tuy nhiên, việc này là việc làm không cần thiết, khi chúng ta đã có các directive để viết tắt.

Như vậy, chúng ta đặt ở đây chế độ _CP_OFF, tức là khôngđặt chế độ bảo vệ source code khi nạp vào PIC, sau khi nạp vào sẽ có thể đọc ngược lại từ PIC ra. Chúng ta không cần bảo vệ chương trình này, để bạn có thể đọc ngược bằng IC-PROG và kiểm tra lại.

Chế độ _PWRITE_ON, tức là cho timer 0 chạy khi Power On Reset. Thực ra timer0 có chạy hay không cũng không quan trọng, vì nó chẳng liên quan gì đến công việc của chúng ta. Nếu sau này muốn dùng timer0, thì các bạn vẫn phải khởi tạo lại giá trị cho nó, chứ đâu thể sử dụng giá trị ngẫu nhiên của nó được, thành ra cứ để cho nó chạy, sau này cần dùng khỏi phải khởi tạo.

_WDT_OFF, tại thời điểm này, tôi tắt Watch Dog Timer vì lý do các bạn chưa nên tìm hiểu phần này vội.

_HS_OSC, chúng ta dùng thạch anh 10MHz, tức là chạy chế độ dao động HS. Tham khảo tại:

datasheet PIC16F628A
Section 14. Special Features of the CPU
14.2. Oscillator Configuration
Page 95
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn