Trích:
Nguyên văn bởi spirit
Cách tốt nhất để xem sự khác nhau giữa 8051 và Pic là download datasheet của pic về và mở quyển sách "Vi xử lí" của tác giả Hồ Trung Mỹ(bán ở đại học Bách Khoa Tphcm) ra mà xem.
Theo mình biết thì có 1 số những điểm khác sau :
1> Bank thanh ghi:bình thường đối với 8051 ta chỉ sử dụng bank 0 là đủ rồi (trừ trường hợp biến quá nhiều) còn đối với Pic việc cần thiết chuyển bank thanh ghi thích hợp đối với các thanh ghi
2> Timer không có sự khác nhau mấy có chăng chỉ là thanh ghi thiết lập mà thôi
3> Watchdog Timer bất kì con vi điều khiển nào cũng có nhưng thấy Pic nói nhiều nhất(ý kiến chủ quan)
4> Địa chỉ vector ngắt của Pic luôn luôn và chỉ một : 0x04 còn 8051 mỗi ngắt có 1 vector riêng
5> Stack của Pic chỉ có 8 level do đó không có các lệnh Push,Pop như 8051
Và cần lưu ý điều này khi sử dụng ngắt,lạnh call,goto tránh trường hợp tràn Stack.
6> Pic có ít lệnh hơn(35 lệnh) nên tích hợp nhiều chức năng bên trong hơn (ADC,PSP,CCP,PWM...).Do Pic có ít lệnh nên viết chương trình cho Pic mang tính nghệ thuật hơn.
7> Rom của Pic chia làm nhiều trang mỗi trang 256 byte do PCL quản lí từng trang và PCLATH quản lí vị trí trang do đó cần cẩn thận sử dụng bảng tránh trường hợp 1 phần bảng nằm ở trang này phần còn lại nằm ở trang khác
Trên đây là ý kiến chủ quan của mình xin các cao thủ đóng góp thêm
|
4> Tùy loại PIC: PIC10F không hỗ trợ ngắt, PIC12 (lệnh 14-bit) và PIC16 có 1 vectơ ngắt, PIC18 có 2 vectơ ngắt.
5> stack của PIC là hardware stack, PIC16 có 8 mức, PIC18 có 31 mức. stack của 8051 là software stack.
6> Sự khác biệt giữa kiến trúc RISC và CISC.
7> Chỉ những PIC thuộc dòng cơ bản mới có Flash được phân trang, PIC18 có không gian địa chỉ Flash phẳng, không có vấn đề về phân trang (dùng các lệnh truy xuất bảng có thể truy xuất toàn bộ không gian địa chỉ Flash).
Thân,