Chân Reset phải được nối với tín hiệu Reset chung của toàn hệ thống khiReset các cổng được định nghĩa là cổng vào để không gây ra sự cố cho các mạch điều khiển.Tín hiệu CS được nối với m
Trang 2Chân Reset phải được nối với tín hiệu Reset chung của toàn hệ thống (khiReset các cổng được định nghĩa là cổng vào để không gây ra sự cố cho các mạch điều khiển).
Tín hiệu CS được nối với mạch tạo xung chọn thiết bị để đặt mạch 8255 vào một địa chỉ cơ sở nào đó Các tín hiệu địa chỉ A0, A1 sẽ chọn ra 4 thanh ghi bên trong 8255: một thanh ghi để ghi từ điều khiển (CWR – control word register) cho hoạt động của 8255 và 3 thanh ghi khác ứng với các cổng
là PA, PB, PC để ghi đọc dữ liệu theo bảng:
(của VXL)
Hướng chuyển sốliệu với VXL
điều khiển
D0 ÷ D7→ thanh ghi điều khiển
thái trở kháng cao
Không có trao đổi
số liệu
Tính linh hoạt của vi mạch này thể hiện ở khả năng lập trình Ta có thể đặt các mode hoạt động thông qua thanh ghi điều khiển
Các chân D0 đến D7 tạo nên kênh dữ liệu 2 hướng có độ rộng 8 bit Tất
cả dữ liệu khi truy nhập ghi hoặc đọc được dẫn qua kênh dữ liệu này.Trạng thái logic ghi/đọc được nhận biết qua các tín hiệu điều khiển ,
Trao đổi thông tin với 8255 chỉ có thể được tiến hành khi CS =
Trang 30 Khi RD= 0 dữ liệu của cổng được chọn được đưa ra kênh dữ liệu và cóthể được sử dụng bởi các vi mạch khác Khi WR = 0, thì moi việc xảy ra ngược lại.
Các bit địa chỉ A0 và A1 cùng với các tín hiệu ghi đọc báo cho biết sẽ truy nhập lên cổng nào
Sơ đồ khối mô tả chức năng của 8255:
Trang 4- Từ điều khiển định nghĩa cấu hình cho các cổng PA, PB, PC.
- Từ điều khiển lập/xoá từng bit ở đầu ra của PC
- Tuỳ theo từ lệnh được ghi vào thanh ghi điều khiển khi khởi động của
vi mạch mà ta có các PortA,B,C hoạt động ở:
+ Các chế độ 0, 1, 2 khác nhau
+ Chiều trao đổi dữ liệu khác nhau, tức PortA, B, C là cổng ra hay vào
1.2.1- Từ điều khiển định nghĩa cấu hình cho các cổng:
1.2.2- Thanh ghi từ điều khiển việc thiết lập/ xóa bit ra PCi:
Trang 51.2.3- Các chế độ làm việc:
Chip 8255A có 3 chế độ làm việc:
•
Chế độ 0: Vào ra cơ sở (còn gọi là vào ra đơn giản)
Trong chế độ 0, 8255 cho một khả năng xuất và nhập dữ liệu đơn giản qua 3 cổng A,B,C PA, PB, PC được sử dụng độc lập với nhau, 3 đường dây đều được dùng để trao đổi số liệu hoặc thông tin về điều khiển và trạng thái một cách bình đẳng với nhau và tuỳ ý lựa chọn
Chế độ 1:
Trong chế độ này các cổng A và B có thể được dùng như các cổng đầuvào hoặc đầu ra với các khả năng bắt tay Tín hiệu bắt tay được cấp bởi cácbit của cổng C
- Xuất dữ liệu ra trong mode 1
Cổng PA, PB có tín hiệu đối thoại tương tự nhau Tín hiệu ,
báo rằng bộ đệm ra đã đầy cho ngoại vi biết CPU đã ghi dữ liệu vào cổng để chuẩn bị đưa ra
Tín hiệu này thường nối với tín hiệu của thiết bị nhận
Tín hiệu , là tín hiệu của ngoại vi cho biết nó đã nhận được
dữ liệu từ các cổng PA, PB
Tín hiệu INTRA, INTRB là tín hiệu yêu cầu ngắt từ PA, PB INTEA, INTEB là tín hiệu của một mạch lật bên trong 8255 để cho phép hoặc cấm yêu cầu ngắt INTRA hoặc INTRB của PA hoặc PB INTEA được lập/xoá thông qua bit PC6 INTEB được lập/xoá thông qua bit PC2
Trang 6Khi làm việc ở chế độ xuất thông tin mode 1, thanh ghi trạng thái của
8255 cung cấp các thông tin phản ánh trạng thái hiện hành của mình
Sơ đồ ghép nối của 8255 ở mode 1:
(Output Bufer A full): Báo hiệu bộ đệm cổng ra A đã đầy
(Output Bufer B full): Báo hiệu bộ đệm cổng ra B đã đầy
INTEA ( Interrupt Enable For PortA): cho phép PA chạy ở chế độ ngắt.INTEB ( Interrupt Enable For PortB): cho phép PB chạy ở chế độ ngắt.INTRA ( Interrupt PortA ): PA ngắt
INTRB ( Interrupt PortB ): PB ngắt
Nội dung thanh ghi trạng thái của 8255 ở mode 1 cho huớng ra:
Trang 7- Nhận dữ liệu vào trong mode 1
Khi nhận dữ liệu vào trong mode 1 các cổng PA, PB có tín hiệu đối thoại tương tự nhau:
STB ( cho phép chốt dữ liệu) Khi dữ liệu đã sẵn sàng trên kênh PA, PB ngoại vi phải dùng STB để báo cho 8255 biết để chốt dữ liệu vào cổng PA hoặc PB Sau khi 8255 chốt được dữ liệu do thiết bị ngoại vi đưa đến, nó đưa ra tín hiệu IBF (In Buffer full) để báo cho ngoại vi biết
Nội dung thanh ghi trạng thái của 8255 ở mode 1 cho hướng vào:
•
Chế độ 2:
Vào/ra 2 chiều Trong chế độ này chỉ riêng cổng PA có thể được địnhnghĩa thành cổng vào ra 2 chiều với các tín hiệu bắt tay do các bit của cổng
PC đảm nhiệm Lúc này cổng PB có thể làm việc ở chế độ 0 hoặc 1
Chế độ này chỉ dùng cho cổng PA với vào/ra 2 chiều và các bit PC3 ÷ PC7 dùng làm tín hiệu giao tiếp
Mạch logic của 8255 ở mode 2 và các tín hiệu giao tiếp:
Trang 8Cổng PB có thể làm việc ở mode 1 hoặc mode 0 tuỳ theo bit điều khiển trong thanh ghi CWR.
INTRA: yêu cầu ngắt cho dữ liệu 2 chiều vào/ra
INTE 1, INTE 2: là 2 tín hiệu của 2 mạch lật bên trong 8255 để cho phép hoặc cấm yêu cầu ngắt của PA, các bit này được lập xoá bởi PC6 và PC4.Khi dùng 8255 trong chế độ bus 2 chiều để trao đổi dữ liệu theo cách thăm dò, phải kiểm tra xem bit IBFA có bằng 0 (đệm vào rỗng) hay không trước khi dùng lệnh IN để nhận dữ liệu từ cổng PA
Khi làm việc ở chế độ truyền thông tin 2 chiều của mode 2, thanh ghi trạng thái của 8255 cung cấp các thông tin phản ánh trạng thái hiện hành củamình
Nội dung thanh ghi trạng thái:
Trang 9
Chương II:
GHÉP NỐI 8255 VỚI VI XỬ LÝ
Trang 102.1-Ghép nối với 8086:
VD: Thiết kế sơ đồ ghép nối 8255 với 8086 và viết chương trình đọc từ cổng PA, đưa ra PB, rồi cộng thêm 5 và đưa ra PC
Giải:
Địa chỉ cơ sở của 8255 ở sơ đồ trên là F00h
Địa chỉ các thanh ghi
Trang 11Theo sơ đồ trên, địa chỉ cơ sở của 8255 là 4000h tương đương với địa chỉ củathanh ghi PA là 4000h, PB là 4001h, PC là 4002h và CWR là 4003h.
Xét những ví dụ sau:
VD1: Hãy tìm từ điều khiển của 8255 cho các cấu hình sau:
Trang 12VD2: Viết một chương trình để gửi 55H và AAH đến cổng liên tục.
ghi từ điều khiển
Trang 13unsigned char x,y,k,a;
xdata unsigned char PA _at_ 0x00;xdata unsigned char PC _at_ 0x02;xdata unsigned char CREG _at_ 0x03;
Trang 14{
x=0x80;
for(j=0;j<8;j++){ PA=x;delay(); x=x>>1;
}x=0x01;
for(j=0;j<8;j++){
PA=x;delay(); x=x<<1;
}}
Trang 15y=y>>1;y=y|0x08;
}}
Trang 16Chương III:
GHÉP NỐI 8255 VỚI THIẾT BỊ NGOẠI VI
3.1- Ghép nối với LCD:
; Ghi các lệnh và dữ liệu tới LCD không có kiểm tra cờ bận.
; Giả sử PA của 8255 được nối tới D0 - D7 của LCD và
; IB - RS, PB1 = R/W, PB2 = E để nối các chân điều khiển LCD
Trang 17ACALL CMDWRT ; Ghi lệnh này ra LCD
; Chương trình con ghi lệnh CMDWRT ra LCD
liệu của LCD
xuống thấp
Trang 18MOVX @R0, A ; Kích hoạt các chânRS, R/W,
liệu của LCD
cao xuống thấp
NOP NOP
cao xuống thấp
liệu của LCD
RET
; Ghi các lệnh và dữ liệu tới LCD có sử dụng kiểm tra cờ bận.
; Giả sử PA của 8255 được nối tới D0 - D7 của LCD và
Trang 19; PB0 = RS, PB1 = R/W, PB2 = E đối với 8255 tới các chân điều khiển LCD
; Chương trình con ghi lệnh NCMDWRT có hiển thị cờ bận
trạng thái LCD
Trang 20MOV R0, # CNTPORT ; Nạp địa chỉ thanh ghi điều khiển
RS
dữ liệu của LCD
Trang 21MOV A, #00000000B ; Đặt RS=0, R/W=0, E=0 cho xung cao xuống thấp
LCD
RET ; Chương trình con ghi dữ liệu mới NDATAWRT sử dụng cờ bận
trạng thái LCD
RS
Trang 22MOVX @R0, A ; Xuất thông tin tới các chân
dữ liệu của LCD
Một đặc tính duy nhất của cổng C là các bit có thể được điều khiển riêng rẽ Chế
độ BSR cho phép ta thiết lập các bit PC0 - PC7 lên cao xuống thấp như hình sau:
Trang 23Xét ví dụ sau để biết chế độ này hoạt động như thế nào: