Các từ điều khiển khởi đầu:

Một phần của tài liệu BÀI GIẢNG KỸ THUẬT VI XỬ LÝ (Trang 103 - 104)

DIV nguồn (Unsigned Divide)

i, Các từ điều khiển khởi đầu:

PIC 8259 có tất cả 4 từ điều khiển khởi đầu là ICW1 – ICW4. Trong khi lập trình cho 8259 khơng phải lúc nào ta cũng cần dùng cả 4 từ điều khiển khởi đầu đó (tức là ghi tất cả chúng). Tuỳ theo các trường hợp ứng dụng cụ thể mà có lúc ta cần ghi liên tiếp cả 4 từ điều khiển khởi đầu nhưng có lúc ta chỉ cần ghi 2 hoặc 3 từ điều khiển khởi đầu (trong số đó) là đủ. Thứ tự và điều kiện ghi các từ điều khiển khởi đầu ICW vào 8259 được thực hiện theo lưu đồ sau:

ICW1

Như đã biết, PIC 8259 chỉ có một đường địa chỉ vào (A0), trong khi đó nó có rất nhiều thanh ghi điều

khiển và trạng thái tương đương (tương ứng) với các cổng. Tuy nhiên để phân biệt các thanh ghi trong đó (trong 8259) thì đầu vào địa chỉ A0 và thứ tự ghi sẽ giúp ta phân biệt ra cá thanh ghi khác nhau bên trong 8259 để ghi dữ liệu cho các từ điều khiển. Ví dụ, A0 = 0 là dấu hiệu để nhận biết rằng ICW1 được (ghi) đưa vào thanh ghi có địa chỉ chẵn trong PIC, cịn khi A0 = 1 thì các từ điều khiển ICW2, ICW3 và ICW4 sẽ được (ghi) đưa vào các thanh ghi có địa chỉ lẻ trong PIC.

Khi giới thiệu từng thanh ghi cụ thể với ý nghĩa các bit dữ liệu, ta còn ghi rõ thêm cả giá trị A0 tương ứng cho mỗi ICWi đó.

Bit D0 của ICW1 (IC4) quyết định 8259 sẽ được nối với hệ vi xử lý nào. Để làm việc với hệ 16, 32 bit (8088/x86) thì trong ICW1 nhất thiết phải có IC4 = 1 (tức là ta ln cần đến từ điều khiển khởi đầu ICW4), còn đối với hệ vi xử lý 8 bit (như khi xử dụng 8080/8085) thì ta phải có IC4 = 0 (và như vậy các bit của ICW4 sẽ vị xố về 0).

Hình vé: Lưu đồ ghi các từ điều khiển khởi đầu cho PIC 8259

ICW1(2)=0?ICW1 ICW1 T F ICW2 ICW3 ICW1(1)=1? ICW4 Sẵn sàng nhận các yêu cầu ngắt T F

Các bit cịn lại của ICW1 định nghĩa cách thức làm tác động của xung yêu cầu ngắt (tác động theo sườn hay theo mức) tại các chân yêu cầu ngắt IRQi của 8259 và việc bố trí các mạch PIC 8259 khác trong hệ làm việc đơn lẻ hay theo chế độ nối tầng.

Khi sử dụng 8259 trong hệ 16 – 32 bit (8088/x86), bit D2 (ADI) có thể nhận các giá trị tuỳ ý, nó chỉ có ý nghĩa khi làm việc với hệ 8 bit nên thường được chọn là 0.

Nếu chỉ sử dụng 1 vi mạch PIC 8259 trong hệ, đặt bit D1 = 1 (SNGL (S) = 1). Còn nếu có nhiều mạch PIC nối tầng trong hệ thống thì bit D1 của ICW1 trong các mạch PIC phải được xoá về 0.

Bit D3 (LTIM) được dùng để xác lập trigger theo mức hay trigger theo sườn xung. Trong chế độ trigger theo mức, chương trình ngắt (yêu cầu ngắt) được yêu cầu mỗi khi xuất hiện mức điện áp cao trên lối vào yêu cầu ngắt IRQ. Trong chế độ trigger theo sườn xung, tín hiệu yêu cầu ngắt trên các lối vào IRQ phải được chuyển từ mức thấp lên mức cao và duy trì ở mức cao cho đến khi chương trình con phục vụ ngắt thực hiện. Vì vậy có thể nói bit này quy định cách thức tác động của xung yêu cầu ngắt là theo mức hay theo sườn (dương).

Khi hoạt động trong hệ 16 – 32 bit thì khơng cần quan tâm tới các bit D5, D6 và D7 do đó thường đặt chúng bằng 0 cho đơn giản.

Ngày nay, thường sử dụng bộ vi xử lý 8088 hoặc cao hơn khi xây dựng các hệ vi xử lý nên có thể sử dụng giá trị: 0000 1010 để ghi cho ICW1.

ICW2

Trong một hệ vi xử lý 16 – 32 bit, từ điều khiển khởi đầu này được dùng để (cho phép) chọn kiểu ngắt (số hiệu ngắt N) tương ứng với các bit T7 – T3 cho các đầu vào yêu cầu ngắt. Các bit T2 – T0 được 8259 tự động gán giá trị tuỳ theo đầu vào yêu cầu ngắt IRQi cụ thể. Thực chất chúng có ý nghĩa như sau: Toàn bộ các bit của ICW2 sẽ báo cho

8259 biết số hiệu ngắt phải gửi (đi) ra bus dữ liệu để đáp ứng tín hiệu yêu cầu ngắt IRQ0. Để đáp ứng các yêu cầu ngắt khác (IRQ1 – IRQ7), 8259 sẽ tự động cộng chỉ số lối vào với giá trị cơ sở này (“không trừ”) và gửi kết quả cho 8088 dùng làm số hiệu ngắt cho các tín hiệu yêu cầu ngắt đó. Do các ngắt có số hiệu ngắt từ 0 – 31 hoặc là các ngắt chuyên dụng hoặc là để dự trữ nên số 32 (20h) là số ngắt thấp nhất cho các ứng dụng mở rộng của người sử dụng. Giả sử, cho ICW2 = 0010 0000 = 32d, 8259 sẽ gửi số hiệu ngắt này lên bus dữ liệu

Hình vẽ: Thanh ghi khởi đầu ICW1

0

0 xx xx xx 11 LTIMLTIMADIADISNGLSNGLIC4IC4

Một phần của tài liệu BÀI GIẢNG KỸ THUẬT VI XỬ LÝ (Trang 103 - 104)