Giao tiếp ngoại vi 8255A và ứng dụng bộ chuyển đổi A-D & D-A cho vi điều khiển 8051

MỤC LỤC

GIAO TIẾP NGOẠI VI 8255AGIAO TIẾP NGOẠI VI 8255A

Chức năng của khối này là kiểm sốt tất cả các sự truyền đạt bên trong và bên ngồi của từ điều khiển và dữ kiện. Nú nhận ngừ vào từ tuyến địa chỉ và sự điều khiển của CPU, phát ra các lệnh cần thiết cho cả hai nhóm A và B. Khi 8255 được lập trình ở mode 1 hay 2, các tín hiệu điều khiển được cung cấp có thể được dùng để yêu cầu ngắt quãng CPU.

Tín hiệu yêu cầu ngắt quãng phát ra từ cửa C có thể bị cấm hay cho phép bằng cách set hay reset flip-flop INTE tương ứng, dùng chức năng set/reset bit của cửa C. Chức năng này cho phép CPU cấm hay cho phép các thiết bị I/O đã xác định ngắt quãng CPU mà không làm ảnh hưởng các thiết bị khác trong cấu trúc ngắt quãng. OBF FF được set bởi cạnh lên của xung WR từ CPU và bị reset bởi ACK = 0 do ngoại vi (tức là ở mức không tích cực).

Các bit ở phần thấp cửa C (C0-C3) có thể truy xuất dùng chức năng bit set/reset thay truy xuất như nhóm 3 bằng cách ghi ra cửa C. Đọc nội dung cửa C cho phép người lập trình kiểm tra trạng thái của mỗi thiết bị ngoại vi thay chiều chương trình tương ứng.

TểM TẮT TẬP LỆNH

Một vài lệnh xác định trực tiếp trên thanh ghi như thanh ghi tích luỹ, con trỏ dữ liệu …do đó không cần đến các bit địa chỉ. Làm thế nào để nhận dạng một biến, nếu địa chỉ của nó được xác định, tính tốn, thay đổi khi chương trình đang chạy. Thanh ghi và địa chỉ trực tiếp không thể dùng vì tốn hạng địa chỉ phải được nhân biết trong thời gian biên dịch.

Lệnh kiểm tra dùng giá trị 80H chứ không phải giá trị 7FH vì việc xảy ra sau việc dịch chuyển gián tiếp. Địa chỉ tương đối (offset) là một số 8 bit có dấu được cộng vào thanh ghi đếm chương trình để chỉ ra địa chỉ của lệnh tiếp theo phải thi hành. Định vị chỉ số dùng một thanh ghi cơ sở (PC hoặc DPTR) và một thanh ghi làm offset (ACC) tạo ra một địa chỉ sẽ bị tác động bởi các lệnh JMP hoặc MOVC.

Bất kỳ byte nhớ nào cũng đều có tể tăng, giảm bằng định vị trực tiếp mà không cần thông qua thanh ghi tích luỹ. Các lệnh logic biểu diễn các tốn tử luận lý như AND, OR, EA-OR và NOT … Các lệnh này trên từng bit của byte dữ liệu. Các lệnh dịch chuyển dữ liệu thao tác trên bộ nhớ ngồi đều chiếm hai chu kỳ máy và dùng thanh ghi tích luỹ làm tốn hạng nguồn hoặc đích.

MOVC dùng thanh ghi đếm chương trình cũng như con trỏ dữ liệu kàm thanh ghi nền và thanh ghi tích luỹ làm offset. Có một số lệnh điều khiển dòng chương trình, chúng gồm các lệnh gọi chương trình con và trả về từ một chương trình con hoặc rẽ nhánh có điều kiện và không có điều kiện. Những khả năng này có thể được cải tiến hơn nữa khi sử dụng 3 mode định vị trong các lệnh rẽ nhánh chương trình.

Giống như lệnh JMP, lệnh CALL đưôc trình biên dịch của Intel dùng khi người lập trình không quan tâm đến địa chỉ được biên dịch. Hai bytes được xác định trong vùng tốn hạng của lệnh và lệnh nhảy sẽ thi hành nếu hai bytes này khác nhau. Ký hiệu dollars “$” là một ký hiệu đặt biệt của trình biên dịch thay thế cho địa chỉ của lệnh hiện thời.

GIỚI THIỆU VỀ KIT VI ĐIỀU KHIỂN 8051

Nếu sai thì nhập lại, nếu đúng thì nhấn phím tăng địa chỉ để nạp các dữ liệu tiếp theo. • Sau khi nhập dữ liệu của một chương trình tại địa chỉ 4000, để vi điều khiển thực hiện chương trình này hãy nhấn ohím “P”. Nếu muốn thực hiện chương trình tại địa chỉ 4000 hãy nhấn phím tăng địa chỉ, khi đó trên màn hình sẽ xuất hiện thêm dấu “=”.

• Nếu chương trình lưu tại địa chỉ khác với địa chỉ 4000 thì trước khi nhấn phím tăng địa chỉ hãy đánh địa chỉ của chương trình đó vào bằng các phím nhập dữ liệu. • Dùng để xem nội dung các thanh ghi, trước tiên nhấn phím “R” và sau đó nhấn phím thập phân tương ứng từ “6” cho đến “F”. Chương trình sẽ bị ngừng sau khi nhấn phím “I”, nếu nhấn “I” thêm lần nữa hệ thống sẽ được đặt lại trạng thái mặc định ban đầu tương đương với reset máy bằng phím.

Nếu nhấn phím “G” để thực hiện cả chương trình tại địa chỉ chứa trong cặp thanh ghi PC, ta nhấn phím “T” chương trình sẽ được thực hiện từng lệnh tại địa chỉ chứa trong PC. * Chú ý: nếu nhấn phím “G” không thông qua phím “P” và các phím khác thì chương trình mặc nhiên sẽ thực hiện tại địa chỉ 4000. Có dung lượng 16KB sử dụng 2 EPROM 2764, chương trình hệ thống chứa ở EPROM thứ nhất, EPROM thứ 2 chưa sử dụng được thiết kế ở dạng socket.

Hệ thống sử dụng Led loại Anode chung nên muốn đoạn nào sáng thì bit dữ liệu tương ứng với đoạn đó bằng 1.  Cách 1: khi gởi các dữ liệu mới ra địa chỉ C000H thì dữ liệu này sẽ hiển thị ở Led 1, dữ liệu trước đó của các led sẽ dịch sang trái theo chiều mũi tên trong hình 3. Bên cạnh đó 8279 còn cho phép gởi dữ liệu trực tiếp đến bất kỳ led nào trong 8 led – tổ chức của led không có gì thay đổi địa chỉ gởi dữ liệu vẫn là C000H nhưng mỗi led còn có thêm 1 địa chỉ điều khiển như trong hình 4.

Địa chỉ điều khiển của led phải gởi ra địa chỉ C001H trước khi gởi dữ liệu ra địa chỉ C000H. • Nếu không ấn phím thì sau khi thực hiện xong chương trình sẽ trở về chương trình chính với nội dung thanh ghi A =FFH. Chương trình này nếu có ấn phím hoặc không ấn phím đều trở về chương trình sau khi thực hiện xong và phải chú ý cất dữ liệu trong các thanh ghi khi gọi chương trình con này.

Bảng đồ nhớ của 2 IC 8255
Bảng đồ nhớ của 2 IC 8255

THIẾT KẾ PHẦN CỨNG

Sau đó kết quả của quá trình chuyển đổi sẽ xếp hàng ở đường dẫn dữ liệu D0 ÷ D7. Do tần số làm việc tương đối cao, ta sử dụng bộ đa hài tạo sóng xuống dùng Trigger Schmitt theo công nghệ TTL. Ta sử dụng OP-AMP LM 358 để lập lại điện ỏp nhằm phối hợp tổng trở với ngừ vào REF+ của ADC 0809: đồng thời cung cấp mức áp chuẩn để đưa vào REF+ để tạo cỏc mức logic ở ngừ ra tương ứng.

Vì vậy khi ghi một dữ liệu vào vùng nhớ của 0809 tức chọn kênh của nó. Trong quá trình thực hiện chuyển đổi vi điều khiển sẽ đọc giá trị EOC tại PCO. Nếu EOC = 1: hồn thành quá trình chuyển đổi, vi điều khiển sẽ đọc dữ liệu lưu trữ vào RAM để xử lý.

Khi có ấn phím PC1 = 0, được đưa vào vi điều khiển để báo chọn kênh. Dòng này có chiều chạy vào Iout của DAC 0808 và có cường độ thay đổi theo tỉ lệ với data ở ngã vào. Tín hiệu DAC 0808 tạo ra dòng nên còn phải có mạch chuyển dòng thành áp dùng LM324.

Sơ đồ nguyên lý card chuyển đổi A/D – D/A
Sơ đồ nguyên lý card chuyển đổi A/D – D/A

THIẾT KẾ PHẦN MỀM

    LCALL DISPLAY – 1 ; Hiển thị số kênh chọn ở LED LCALL CHUYENDOI ; Gọi chương trình chuyển đổi LCALL OUT ; Gọi chương trình xuất ra D/A. LCALL DECODE ; Gọi chương trình giải mã 7 đoạn LCALL DISPLAY – 2 ; Gọi chương trình hiển thị dữ liệu vừa chuyển đổi. Tuy vậy đề tài vẫn còn rất nhiều thiếu sót, vì thế em rất mong được sự đóng góp chân thành của quý thầy cô để đề tài ngày càng trở nên phong phú và hồn thiện.