Tổ chức bộ nhớ ngoài

Một phần của tài liệu đồ án môn học iii thiết kế và thi công mạch tổng đài nội bộ pabx 1 trung kế 4 thuê bao (Trang 46 - 49)

5. Kiến trúc vi điều khiển 8051

5.3.2. Tổ chức bộ nhớ ngoài

MCS-51 có bộ nhớ theo cấu trúc Harvard: phân biệt bộ nhớ chƣơng trình và dữ liệu. Chƣơng trình và dữ liệu có thể chứa bên trong nhƣng vẫn có thể kết nối với 64KB chƣơng trình và 64KB dữ liệu. Bộ nhớ chƣơng trình đƣợc truy xuất thông qua chân PSEN còn bộ nhớ dữ liệu đƣơc truy xuất thông qua chân WR hay RD .

Lƣu ý rằng việc truy xuất bộ nhớ chƣơng trình luôn luôn sử dụng địa chỉ 16 bit còn bộ nhớ dữ liệu có thể là 8 bit hay 16 bit tuỳ theo câu lệnh sử dụng. Khi dùng bộ nhớ dữ liệu 8 bit thì có thể dùng Port 2 nhƣ là Port I/O thông thƣờng còn khi dùng ở chế độ 16 bit thì Port 2 chỉ dùng làm các bit địa chỉ cao.

Port 0 đƣợc dùng làm địa chỉ thấp/ dữ liệu đa hợp. Tín hiệu /ALE để tách byte địa chỉ và đƣa vào bộ chốt ngoài.

Trong chu kỳ ghi, byte dữ liệu sẽ tồn tại ở Port 0 vừa trƣớc khi /WR tích cực và đƣợc giữ cho đến khi /WR không tích cực.Trong chu kỳ đọc, byte nhận đƣợc chấp nhận vừa trƣớc khi /RD không tích cực.

SVTH: Trần Minh Quân Trang 47 - Tín hiệu /EA tích cực ( = 0).

- Giá trị của bộ đếm chƣơng trình (PC – Program Counter) lớn hơn kích thƣớc bộ nhớ.

PCH: Program Counter High – PCL: Program Counter Low DPH: Data Pointer High – DPL: Data Pointer Low

Hình 5-8. Thực thi bộ nhớ chƣơng trình ngoài

+ Bộ nhớ chƣơng trình ngoài:

Quá trình thực thi lệnh khi dùng bộ nhớ chƣơng trình ngoài có thể mô tả nhƣ “Hình 3-15. Thực thi bộ nhớ chƣơng trình ngoài”. Trong quá trình này, Port 0 và Port

SVTH: Trần Minh Quân Trang 48 2 không còn là các Port xuất nhập mà chứa địa chỉ và dữ liệu. Sơ đồ kết nối với bộ nhớ chƣơng trình ngoài mô tả nhƣ “Hình 3-14. Các vùng nhớ trong AT89C51”.

Trong một chu kỳ máy, tín hiệu ALE tích cực 2 lần. Lần thứ nhất cho phép 74HC573 mở cổng chốt địa chỉ byte thấp, khi /ALE xuống 0 thì byte thấp và byte cao của bộ đếm chƣơng trình đều có nhƣng ROM chƣa xuất vì PSEN chƣa tích cực, khi tín hiệu ALE lên 1 trở lại thì Port 0 đã có dữ liệu là mã lệnh. ALE tích cực lần thứ hai đƣợc giải thích tƣơng tự và byte 2 đƣợc đọc từ bộ nhớ chƣơng trình. Nếu lệnh đang thực thi là lệnh 1 byte thì CPU chỉ đọc Opcode, còn byte thứ hai bỏ qua.

+ Bộ nhớ dữ liệu ngoài:

Bộ nhớ dữ liệu ngoài đƣợc truy xuất bằng lệnh MOVX thông qua các thanh ghi xác định địa chỉ DPTR (16 bit) hay R0, R1 (8 bit).

Quá trình thực hiện đọc hay ghi dữ liệu đƣợc cho phép bằng tín hiệu RD hay WR (chân P3.7 và P3.6).

+ Bộ nhớ chƣơng trình và dữ liệu dùng chung:

Trong các ứng dụng phát triển phần mềm xây dựng dựa trên AT89C51, ROM sẽ đƣợc lập trình nhiều lần nên dễ làm hƣ hỏng ROM. Một giải pháp đặt ra là sử dụng RAM để chứa các chƣơng trình tạm thời. Khi đó, RAM vừa là bộ nhớ chƣơng trình vừa là bộ nhớ dữ liệu. Yêu cầu này có thể thực hiện bằng cách kết hợp chân RD và chân PSEN thông qua cổng AND. Khi thực hiện đọc mà lệnh, chân /PSEN tích cực cho phép đọc từ RAM và khi đọc dữ liệu, chân RD sẽ tích cực.

+ Giải mã địa chỉ

Trong các ứng dụng dựa trên AT89C51, ngoài giao tiếp bộ nhớ dỡ liệu, vi điều khiển còn thực hiện giao tiếp với các thiết bị khác nhƣ bàn phím, led, động cơ, … Các thiết bị này có thể giao tiếp trực tiếp thông qua các Port. Tuy nhiên, khi số lƣợng các thiết bị lớn, các Port sẽ không đủ để thực hiện điều khiển. Giải pháp đƣa ra là xem các thiết bị này giống nhƣ bộ nhớ dữ liệu. Khi đó, cần phải thực hiện quá trình giải mã địa chỉ để phân biệt các thiết bị ngoại vi khác nhau. Quá trình giải mã địa chỉ thƣờng đƣợc thực hiện thông qua các IC giải mã nhƣ 74139 (2 -> 4), 74138 ( 3 -> 8), 74154 (4 ->

SVTH: Trần Minh Quân Trang 49 16). Ngõ ra của các IC giải mã sẽ đƣợc đƣa tới chân chọn chip của RAM hay bộ đệm khi điều khiển ngoại vi.

Một phần của tài liệu đồ án môn học iii thiết kế và thi công mạch tổng đài nội bộ pabx 1 trung kế 4 thuê bao (Trang 46 - 49)

Tải bản đầy đủ (PDF)

(101 trang)