Trích:
mình có thể thay thanh ghi DATAOUT trong chương trình bạn viết bằng thanh ghi FSR, sau đó mình muốn truy cập đến thanh ghi nào, mình chỉ cần cấp địa chỉ lên FSR rồi chạy lại INDF lấy dữ liệu xuất ra PORTD được chứ ?
|
Mình viết vậy cho dễ hiểu. Bạn thử lại xem như thế nào.
Trích:
nhân đây, mình muốn hỏi bạn về PSP. Chân CS\ của P16F877A có thể dùng như chân ALE trong 8051 không ? đặt trường hợp bus dữ liệu và bus địa chỉ dùng chung như Port0 của 8051 ấy , ví dụ như mình muốn lấy data trong DS12887 ở một địa chỉ nào đó, mình phải thiết lập cho PORTD là output, rồi đưa địa chỉ ra đó, tiếp theo là kéo chân CS\ từ HIGH-->LOW để chốt địa chỉ, sau đó lại chuyển PORTD thành input rồi đọc dữ liệu? Hồi trước mình làm với 8051 nên không để ý chuyện này vì 8051 có lệnh hỗ trợ giao tiếp với bộ nhớ ngoài.PIC cũng có định địa chỉ gián tiếp, không biết nó có giúp mình trong trường hợp này không nhỉ???
|
Hìhì, PIC còn biết chút chút, còn 8051, phải nói là ... mù 8051. Mình không tìm hiểu thực sự nghiêm túc 8051. Với lại, gần 2 năm chưa đụng tới nó rồi.
Còn về DS12887, nó có 2 chế độ giao tiếp BUS, đó là giao tiếp BUS theo Motorola hoặc Intel. Nếu theo cách giao tiếp BUS của Intel, nó chỉ xem chân CS là chân để chọn chip (Chip Select), ngoài ra không có chức năng nào khác. Nếu chọn cách giao tiếp của Motorola, chân CS (của DS12887) tương ứng với chân ALE thì phải. Mình không để ý kĩ lắm, vì cứ dựa vào giản đồ xung mà viết chương trình thôi. Chọn đại một cái (Motorola hay Intel), rồi dựa vào cái giản đồ xung tương ứng mà "chế" code thôi.
Cái này gọi là "vô chiêu thắng hữu chiêu" phải không nhẩy.
Bản thân chức năng cái chân CS của PSP trong PIC chỉ dùng để chọn chip thôi.
Bạn cứ thử những ý tưởng của mình, rồi thông báo kết quả cho mọi người biết nhá. Cũng có thể ứng dụng PSP để giao tiếp với DS12887. Bạn thử xem sao.
