CƠ SỞ LÝ THUYẾT VỀ LINH KIỆN THIẾT KẾ BỘ GIAO TIẾP
3.2.3. Chức năng các chân.
Vi điều khiển cĩ tất cả 40 chân cĩ chức năng như các đường xuất nhập. Trong đĩ cĩ 24 chân cĩ tác dụng kép, mỗi đường cĩ thể hoạt động như đường xuất nhập điều khiển hoặc là thành phần của các bus dữ liệu và địa chỉ để tải địa chỉ và dữ liệu khi giao tiếp với bộ nhớ ngồi.
Cấu trúc của port xuất nhập:
Hình 3.3. Mạch bên trong của các Port xuất nhập.
♦ Port 0 (từ chân 32 đến chân 39)
Port 0 là một port xuất / nhập song hướng cĩ cực máng hở 8 bit. Nếu được sử dụng như là một ngõ xuất thì mỗi chân cĩ thể kéo 8 ngõ vào TTL.
Port 0 cĩ hai chức năng: trong các thiết kế cỡ nhỏ, khơng dùng bộ nhớ mở rộng, port 0 làm nhiệm vụ xuất nhập. Trong các thiết kế lớn sử dụng bộ nhớ ngồi, port 0 làm bus địa chỉ và bus dữ liệu đa hợp.
Port 0 cĩ thể được định cấu hình để hợp kênh giữa bus địa chỉ và bus dữ liệu (phần byte thấp) khi truy cập đến bộ nhớ dữ liệu và bộ nhớ chương trình ngồi. Ở chế độ này, P0 cĩ các điện trở kéo lên (pull-up) bên trong.
Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình Flash, và xuất ra các byte code khi kiểm tra chương trình. Cần cĩ các điện trở kéo lên (pull- up) bên ngồi khi thực hiện việc kiểm tra chương trình.
♦ Port 1 (từ chân 1 đến chân 8)
Port 1 là một port xuất/ nhập song hướng 8 bit cĩ các điện trở kéo lên (pull- up) bên trong. Các bộ đệm ngõ ra của port 1 cĩ thể kéo hoặc cung cấp 4 ngõ nhập TTL. Khi mức 1 được viết vào các chân của port 1, chúng được kéo lên cao bởi các điện trở kéo lên nội và cĩ thể được dùng như là các ngõ nhập. Nếu đĩng vai trị là các ngõ nhập, các chân của port 1 (được kéo xuống thấp qua các điện trở bên ngồi) sẽ cấp dịng IIL do các điện trở kéo lên bên trong.
♦ Port 2 (từ chân 21 đến chân 28)
Port 2 là một port xuất/ nhập song hướng 8 bit cĩ các điện trở kéo lên bên trong.
Các bộ đệm ngõ ra của port 2 cĩ thể kéo hoặc cung cấp 4 ngõ vào TTL. Khi các mức 1 được viết vào các chân của port 2 thì chúng được kéo lên cao bởi các điện trở kéo lên nội và cĩ thể được dùng như các ngõ vào. Khi được dùng như các
Internal pull-up Read pin Read latch 8951 internal bus *
* Mở ra đối với Port 0 khi Port 0 giữ nhiệm vụ như Port xuất
Port pin Port latch D Q Write to latch
Port 2 phát ra byte cao của địa chỉ khi đọc từ bộ nhớ chương trình ngồi và khi truy cập bộ nhớ dữ liệu ngồi dùng các địa chỉ 16 bit (MOVX @DPTR). Trong ứng dụng này, nĩ dùng các điện trở pullup nội "mạnh" khi phát ra các mức 1. Khi truy cập bộ nhớ dữ liệu ngồi dùng các địa chỉ 8 bit (MOVX @RI), port 2 phát ra các nội dung của thanh ghi chức năng đặc biệt P2.
Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều khiển khi lập trình và kiểm tra Flash.
♦ Port 3 (từ chân 10 đến chân 17)
Port 3 là một port xuất/ nhập song hướng 8 bit cĩ điện trở kéo lên nội bên trong.
Các bộ đệm ngõ ra của port 3 cĩ thể kéo hoặc cung cấp 4 ngõ vào TTL. Khi các mức 1 được viết vào các chân của port 3 thì chúng được kéo lên cao bởi các điện trở pullup nội và cĩ thể được dùng như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port 3 (được kéo xuống qua các điện trở bên ngồi) sẽ cấp dịng IIL do cĩ các điện trở pullup bên trong.
Port 3 cũng cung cấp các chức năng của các đặc trưng đặc biệt như được liệt kê dưới đây:
Bảng 3-1. Các chức năng chuyển đổi trên Port 3
Chân Tên Các chức năng chuyển đổi
P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RxD TxD T0 T1
Port nhập nối tiếp Port xuất nối tiếp Ngắt T0 bên ngồi Ngắt T1 bên ngồi
Ngõ vào Timer/Counter 0 Ngõ vào Timer/Counter 1 Xung ghi bộ nhớ dữ liệu ngồi Xung đọc bộ nhớ dữ liệu ngồi
Các ngõ tín hiệu điều khiển:
RST (chân 9)
Ngõ vào RST là ngõ vào xĩa chính (master reset) của 89S52 dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống. Khi ngõ vào này được đưa lên mức 1 tối thiểu 2 chu kỳ máy, các thanh ghi bên trong 89S52 được nạp lại các giá trị thích hợp cho việc khởi động lại hệ thống.
ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy cập bộ nhớ ngồi. Chân này cũng là ngõ nhập xung lập trình (PROG) khi lập trình Flash.
Khi hoạt động bình thường, ALE được phát với một tỷ lệ khơng đổi là 1/6 tần số bộ dao động và cĩ thể được dùng cho các mục đích timing và clocking bên ngồi. Tuy nhiên, lưu ý rằng một xung ALE sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngồi.
Nếu muốn, hoạt động ALE cĩ thể cấm được bằng cách set bit 0 của SFR tại địa chỉ 8EH. Nếu bit này được set, ALE chỉ được hoạt động khi cĩ một lệnh MOVX hoặc MOVC. Ngược lại, chân này được kéo lên cao bởi các điện trở kéo lên “nhẹ”. Việc set bit cấm ALE khơng cĩ tác dụng khi bộ vi điều khiển đang ở chế độ thi hành ngồi.
PSEN
PSEN (Program Store Enable) là xung đọc bộ nhớ chương trình ngồi. Khi AT89C51 đang thi hành mã (code) từ bộ nhớ chương trình ngồi, PSEN được kích hoạt hai lần mỗi chu kỳ máy, nhưng hai hoạt động PSEN sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngồi.
/Vpp EA
EA(External Access Enable) phải được nối với GND để cho phép thiết bị đọc code từ bộ nhớ chương trình ngồi cĩ địa chỉ từ 0000H đến FFFFH. Tuy nhiên, lưu ý rằng nếu bit khĩa 1 (lock-bit 1) được lập trình, EA sẽ được chốt bên trong khi reset.
EA phải được nối với Vcc khi thi hành chương trình bên trong. Chân này cũng nhận điện áp cho phép lập trình Vpp=12V khi lập trình Flash (khi đĩ điện áp lập trình 12V được chọn).
XTAL1 và XTAL2
XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại đảo được cấu hình để dùng như một bộ dao động trên chip.
Cĩ thể sử dụng thạch anh hoặc một mạch cộng hưởng gốm được sử dụng bên ngồi như hình vẽ: GND XTAL2 Y 1 CRY STAL 1 2 XTAL1 C2 1 2 C1,C2:30pF-40pF C1 1 2
Hình 3.4. Mạch kết nối thạch anh cho 89S52
GNDNC NC XTAL1 EXTERNAL OSCILLATOR SIGNAL XTAL2
Hình 3.5. Kết nối xung clock từ bên ngồi
Khơng cĩ yêu cầu nào về duty cycle của tín hiệu xung ngồi, vì ngõ nhập nối với mạch tạo xung nội là một flip-flop chia đơi, nhưng các chỉ định về thời gian mức cao và mức thấp, các mức áp tối đa và tối thiểu phải được tuân theo.