View Single Post
Old 17-01-2006, 05:53 PM   #12
ntc
Đệ tử 8 túi
 
ntc's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: HCM city
Bài gửi: 264
:
Send a message via Yahoo to ntc
Mấy cái bạn minhtienbk hỏi liên quan đến cái header file. Đây là cái file đính kèm mà bạn "include" vào chương trình thông qua lệnh "INCLUDE <.... .inc>". Nội dung của file này đại khái là dùng để định nghĩa và khai báo một số thông số liên quan đến vi điều khiển PIC, ví dụ như định nghĩa địa chỉ các thanh ghi chức năng. Và do mỗi vi điều khiển PIC được tổ chức sắp xếp theo một qui tắc riêng (ví dụ như địa chỉ các thanh ghi chức năng được sắp xếp khác nhau) nên mỗi vi điều khiển cần một cách định nghĩa hay một file header riêng (bạn dùng PIC16F84 thì phải "INCLUDE <p16f84.inc>, dùng PIC16F877 thì phải "INCLUDE <p16f877.inc>", ...)

Việc dung header file có nhiều tác dụng

Thứ nhất, khỏi phải tốn thì giờ đi định nghĩa lại mấy thanh ghi.

Thứ hai, người viết chương trình sẽ cảm thấy thân thiện hơn trong việc lập trình cho vi điều khiển PIC. VÍ dụ, nếu không sử dụng header file, muốn đưa một giá trị nào đó vào thanh ghi TRISA, bạn phải tra coi cái địa chỉ của thanh ghi TRISA là bao nhiêu, rồi sau đó mới thao tác trên thanh ghi TRISA dựa vào địa chỉ đó. Như vậy đoạn mã lệnh sẽ rất tối nghĩa. Khi đã đính kèm header file, bạn chỉ việc sử dụng cái "tên" TRISA một cách tự nhiên mà không cần quan tâm tới việc địa chỉ của nó là bao nhiêu. Bên cạnh đó đoạn mã lệnh sẽ trở nên thân thiện và dễ hiểu hơn.

Như vậy thực chất PORTA, TRISA, ... chỉ là những cái tên dùng để thay thế cho địa chỉ của các thanh ghi chức năng đó.

Tóm lại

Thứ nhất, không phải là không cần định nghĩa, mà các định nghĩa này đã được thực hiện trong cái header file.

Thứ hai, khi đã đính kèm header file, bạn cứ viết chương trình và sử dụng nó một cách thoải mái, cứ như là đã được "mặc định" như bạn nói.
__________________

ntc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn