Tài liệu Ứng dụng KIT 8051 dùng để chuyển đổi A/D-D/A, chương 6 ppt

6 357 0
Tài liệu Ứng dụng KIT 8051 dùng để chuyển đổi A/D-D/A, chương 6 ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

Chương 6: CẤU TRÚC CỔNG XUẤT NHẬP Mạch bên trong của một chân port mô tả ngắn gọn trong hình 4.3. Khi ghi lên một chân của cổng, dữ liệu được chốt vào bộ chốt. Chốt lái một transitor thường nối với chân của cổng. Nhờ đó có thể kéo được 4 tải LS ở các cổng Port 1, 2 , 3 và 8 tải LS ở Port. Lưu ý Port 0 có điện trở kéo lên, ngoại trừ khi dùng nó với chức năng vừa là bus đòa chỉ, vừa là bus dữ liệu ngoại. Tùy theo đặc tính bên trong của tải mà ta có thể thêm vào điện trở kéo lên bên ngoài. D Chốt Bus nội của 8051 Vcc Đọc Đọc chốt chân Châ n Por t Ghi Chốt Hình 4.3 Sơ đồ mạch port Việc đọc chốt được phân biệt làm hai, đó là đọc từ chốt và đọc từ chân. Sự phân biệt này nhằm chống trường hợp chập mạch do quá tải gây nên. Lệnh đọc một bit cổng (ví dụ MOV C, P1.1) sẽ đọc chân của cổng. Trong trường hợp này, chốt phải được giữ ở mức cao, nếu không FET sẽ dẫn và ngõ ra xuống mức thấp. Tất cả các chốt của port đều được set khi reset hệ thống. Như vậy các chân chốt đều được dùng như ngõ vào mà không cần phải set chốt. Tuy nhiên, nếu đã xóa chốt (ví dụ CLEAR P1.1) không thể đọc dữ liệu đúng từ chân port trừ khi set chốt trở lại. IV – TỔ CHỨC BỘ NHỚ Hầu hết các bộ nhớ các vi xử lý đều dựa theo cấu trúc Von Neuman về phân chia vùng nhớ cho chương trình và dữ liệu. Điều này cho phép chương trình được lưu giữ trong đóa và chỉ load vào bộ nhớ mỗi khi thi hành. Do đó dữ liệuchương trình đều nằm trong RAM. Đối với vi điều khiển thì khác, CPU được coi là hệ thống máy tính. Nó là trung tâm của thiết bò điều khiển. Nó bò giới hạn về bộ nhớ. Chương trình điều khiển nằm trong ROM. Vì lý do này mà bộ nhớ của vi điều khiển 8051 dựa theo cấu trúc Harvard để phân chia vùng chương trình (code mã lệnh) và dữ liệu. Như đã mô tả ở bảng 4.2 cả hai vùng mã lệnh và dữ liệu đều nằm ở bộ nhớ nội. Tuy nhiên cả hai cũng có thể mở rộng ra bộ nhớ ngoài, có thể lên đến 64Kb cho vùng đòa chỉ. Bộ nhớ nội gồm có ROM nội (chỉ đối với 8051/8052) và RAM ngoại. RAM chia thành nhiều vùng: vùng dành cho mục đích nào đó, vùng có thể truy xuất bit, các khối (bank) thanh ghi, và các thanh ghi đặc biệt. Có hai điều đáng lưu ý ở đây: (a) các thanh ghi và các cổng xuất nhập đều được phân chia đòa chỉ và có thể truy xuất chúng như những vùng khác. (b) stack thường được phân chia vào RAM nội hơn là vùng nhớ ngoài. Đây là một đặc điểm của vi điều khiển. Hình 4.4 mô tả bộ nhớ của 8031 (không có ROM nội) Hình 4.5 mô tả chi tiết về vùng nhớ dữ liệu nội. Các vùng nhớ được mô tả dưới đây. Vùng tổng quát Vùng RAM này chiếm 80 bytes từ đòa chỉ 30H đến đòa chỉ 7FH. Vùng nhớ 32 bytes bên dưới cũng có thể được dùng như vùng này mặc dù nó được dùng cho mục đích khác. Bất kỳ vò trí nào trong vùng này đều có thể truy xuất tự do bằng đòa chỉ trực tiếp hoặc gián tiếp. Ví dụ để đọc nội dung byte nhớ nội của đòa chỉ 5FH vào thanh ghi ACC, ta dùng lệnh sau: MOV A, 5FH ; Lệnh này chuyển một byte dữ liệu sử dụng đòa chỉ trực tiếp để xác đònh đòa chỉ nguồn (5FH). RAM nội cũng có thể được truy xuất bằng đòa chỉ gián tiếp thông qua R0 và R1 (chỉ hai thanh ghi này mà thôi). Ví dụ lênh sau sẽ thực hiện công việc giống như ví dụ trên MOV R0, 5FH ; MOV A, @R0 ; Lệnh đầu tiên nạp giá trò 5FH cho thanh ghi R0. Lệnh thứ hai dùng chuyển dữ liệu được chỉ ra bởi R0 và thanh ghi tích luỹ (ACC). FFFF FFFF Vùng Vùng mã lệnh dữ liệu FF Truy xuất Truy xuất thông qua RD và WR PSEN 0000 0000 Vùng nhớ nội Vùng nhớ ngoài Hình : 4.4 Tóm tắt vùng nhớ 8031 Vùng nhớ có khả năng truy xuất bit: 8051 có tất cả 210 vò trí có thể truy xuất bit. Trong đó có 128 bits (16 bytes) từ đòa chỉ 20H đến 2FH và các bit thuộc các thanh ghi chức năng. Khả năng truy xuất bit bằng các phần mềm là một điểm mạnh của vi điều khiển. Bits có thể được set, clear, and, or, v.v… bằng một lệnh đơn. Vùng nhớ này có thể truy xuất như bytes hoặc bit. Ví dụ để set bit 67H ta dùng lệnh sau: SETB 67H ; So với bộ nhớ bit là bit có trọng số lớn nhất của bytes 2CH, do đó ta cũng có thể set nó bằng lệnh sau: MOV A, 2CH ; ORL A, #10000000B ; MOV 2CH, A ; Hơn thế nữa các I/O ports của 8051 có thể truy xuất bit, làm đơn giản việc xuất nhập từng bit. Vùng nhớ này có thể xuất nhập từng byte tùy theo lệnh. Các ngăn thanh ghi (Register banks): 32 butyes nằm ở cuối vùng RAM nội là các ngăn thanh ghi. Tập lệnh của 8051 chỉ truy xuất 8 thanh ghi trong vùng này, từ R0 đến R7. Tại một thời điểm chỉ truy xuất được một ngăn thanh ghi mà thôi. Các thanh ghi này có đòa chỉ mặc đònh 00H đến 07H khi reset hệ thống (bank 0). Lệnh sau đây đọc nội dung byte nhớ có đòa chỉ 05H vào thanh ghi tích luỹ. MOV A, R5 ; Lệnh trên chỉ chiếm một bute sử dụng đòa chỉ thanh ghi. Dó nhiên công việc trên có được thực hiện bằng một lệnh hai bytes sử dụng đòa chỉ trực tiếp: MOV A, 05H ; Rõ ràng lệnh sử dụng thanh ghi R0 đến R7 ngắn hơn và nhanh hơn so với lệnh tương đương sử dụng đòa chỉ trực tiếp. Các ngăn thanh ghi có thể thay đổi bằng cách set lại thanh ghi trạng thái chương trình (PSW.3 PSW.4) trong chương trình. Giả sử sau khi cho phép sử dụng bank 3 thanh ghi R5 lúc này có đòa chỉ 20H. Lệnh sau ghi nội dung thanh ghi ACC vào vò trí 18H(R3) MOV R3, A; . nhớ cho chương trình và dữ liệu. Điều này cho phép chương trình được lưu giữ trong đóa và chỉ load vào bộ nhớ mỗi khi thi hành. Do đó dữ liệu và chương. Chương 6: CẤU TRÚC CỔNG XUẤT NHẬP Mạch bên trong của một chân port mô tả ngắn gọn trong hình 4.3. Khi ghi lên một chân của cổng, dữ liệu được

Ngày đăng: 24/12/2013, 14:15

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan