PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 13-03-2011, 10:56 PM   #1
TANDEM
Đệ tử 2 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 40
:
Kích thước file .HEX và bộ nhớ chương trình của Pic16F877A

Em có một thắc mắc này muốn hỏi các huynh:
Hiện em đang viết chương trình bằng CCS cho Pic16F877A. Khi biên dịch xong thì kích thước file .HEX là 6KB, mà chương trình của em sau khi viết và biên dịch xong có thể file .HEX lên tới 15KB. Vậy có thể nạp vào Pic16F877A được không? Xin cảm ơn các bác!
TANDEM vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-03-2011, 10:01 PM   #2
Delfy_Coltech
Đệ tử 4 túi
 
Delfy_Coltech's Avatar
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
:
Program Memory của PIC6F877A là 14KB.
--> Bạn phải giới hạn HEX file chương trình nhỏ hơn 14KB thôi!
__________________
Mechatronics Department
University of Engineering and Technology, VNUH.
Delfy_Coltech vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-03-2011, 01:19 AM   #3
TANDEM
Đệ tử 2 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 40
:
Xin cảm ơn bác Delfy_Coltech! Em đọc tài liệu thì thấy rằng bộ nhớ chương trình của Pic16F877A chỉ có 8KB. Em chưa hiểu tại sao lại là 14KB? Mong bác giải thích giúp!
TANDEM vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-03-2011, 01:42 AM   #4
TANDEM
Đệ tử 2 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 40
:
Cảm ơn các bác! Em đã hiểu:
8K (word) *14=114688 (bit) /8 (bit) /1024=14K (byte)
TANDEM vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-03-2011, 09:06 AM   #5
Delfy_Coltech
Đệ tử 4 túi
 
Delfy_Coltech's Avatar
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
:
Thumbs up

Trích:
Cảm ơn các bác! Em đã hiểu:
8K (word) *14=114688 (bit) /8 (bit) /1024=14K (byte)
Không cần tính toán, datasheet đã chỉ rõ (bạn xem hình dưới)

Tuy nhiên, ở đây mình có sự nhầm lẫn. Dung lượng PM là 14.3Kbytes. Nhưng không có nghĩa là nó chỉ lưu được 14.3Kb HEX file.
Vì sao bạn biết ko? Bởi vì file HEX của bạn khi biên dịch nó không chỉ có nguyên dữ liệu chương trình mà nó còn bao gồm vùng vector ngắt, vùng địa chỉ bộ nhớ, vùng config bit... (Hiện tại CCS và MPLAB đều dịch ra file HEX theo định dạng Intel HEX32).

Ví dụ file HEX của bạn có dung lượng 15Kb, thì khi nạp vào PIC bạn dùng PicKit2 đọc lại bộ nhớ sẽ thấy, dung lượng thực được lưu vào chỉ khoảng 30%-50% bộ nhớ thực của PIC.

Nên cứ yên tâm nhé!

Bạn tìm đọc thêm về cấu trúc HEX file, sẽ ngộ ra nhiều điều hay ho đấy! ^^
Hình Kèm Theo
File Type: png PIC16F877A.png (39.1 KB, 10 lần tải)
__________________
Mechatronics Department
University of Engineering and Technology, VNUH.

thay đổi nội dung bởi: Delfy_Coltech, 15-03-2011 lúc 09:13 AM. Lý do: Attach file
Delfy_Coltech vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam