Ðề tài: 8051 và PIC
View Single Post
Old 19-08-2006, 06:44 PM   #2
newuser
Đệ tử 4 túi
 
Tham gia ngày: Feb 2006
Bài gửi: 66
:
Điểm đầu tiên là cách định trang chương trình. Ở 8051, khi cần gọi (CALL) Subroutine hay nhảy đến một nhãn nào đó, ta có thể dùng các lệnh như LCALL hay LJMP là có thể chuyển đến bất kỳ vị trí nào trong bộ nhớ chương trình. Còn P16F877A thì có khác, bộ nhớ chương trình chia làm 4 pages, mỗi trang 2K bộ nhớ chương trình, trong mã lệnh của các lệnh GOTO hay CALL thì địa chỉ chỉ có 11 bit tương ứng với 2^11=2048 địa chỉ nhảy. Như thế PC không thể trỏ đến đủ 8K địa chỉ của bộ nhớ chương trình được. Lúc mới tập viết chương trình PIC, tôi rất sợ chương trình vượt quá ... 2K
theo datasheet của PIC6F877A, ta có thể chọn trang chương trình bởi các bit PCLATH<4:3>, lý thuyết rõ ràng là như thế nhưng khi viết chương trình thì mới thấy sao lắm nhiêu khê vì cứ mỗi lần CALL hay GOTO thì lại phải pagesel Label một lần, hoặc là phải mở file .lst lên xem chương trình nó thuộc trang nào? và thế là mỗi khi thêm chương trình ta lại phải kiểm tra ...
Các bạn có phương án gì hay hơn không, để việc viết chương trình nhẹ nhàng hơn như lúc ta viết cho 8051 ý ?
newuser vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn