Giao d in vào/ra 24bit trên khe cm PC

Một phần của tài liệu Bai Giang Điều khiển sản xuất kết hợp máy tính (Trang 46 - 47)

B ng 4.6 Vùng đa ch ca card mr ng

5.3.2.Giao d in vào/ra 24bit trên khe cm PC

Vi m ch 8255 là m t vi m ch ghép n i ngo i vi, do v y nó r t thích h p cho vi c ghép n i tr c ti p lên 1 khe c m nào đó c a máy tính. Và t đó cho phép qu n lý các đ u vào/ra m t cách r t đ n gi n.

Hình 5.5. Module vào/ra 24 bit trên khe c m PC

Hình trên cho ta s đ ph i ghép 1 vi m ch 8255 v i khe c m PC c a máy tính, t đó cho phép ta qu n lý đ c 24 đ u vào/ra s . Ta th y r ng các tín hi u /IOR, /IOW, Reset đ c n i tr c ti p t khe c m t i vi m ch, đ ng th i bus d li u 8 bit c ng đ c đ a t i 8 đ ng d li u c a vi m ch thông qua b đ m. T đó ta có th th y r ng vi c qu n lý các đ u vào/ra là t ng đ i r dàng. Có th nói công vi c c n làm

đây là xây d ng m ch gi i mã đa ch cho đúng. Trên s đ đa ch c b n c a giao di n đ c thi t l p b i chuy n m ch DIP. V i chuy n m ch DIP này cho phép ta đ t đa ch c b n c a giao di n có th n m trong vùng: 000H đ n 3FCH. Tuy nhiên đ đa ch h p l thì ta ch có th ch n trong vùng 300H đ n 31CH. C th đây ta ch n đa ch c s là 300H. Sau đó, khi các đ ng đa ch A0, A1 thay đ i cho phép ta truy c p đ n các c ng A, B, C và thanh ghi đi u khi n c a vi m ch theo các đa ch :

300H : c ng A 301H : c ng B 302H : c ng C

303H : thanh ghi đi u khi n

Sau đây là ch ng trình vi t b ng ngôn ng C, cho phép ta có th trao đ i thông tin v i giao di n: /* Program: 24bit IO-8255

#include <conio.h> #include <stdio.h> #include <dos.h> void main() {

int basadr, porta, portb, portc, contrreg; int controlword, outbyte, inbyte; // t đa ch

basadr = 0x300; // a ch c s porta = basadr + 0; //C ng A

portb = basadr + 1; //C ng B portc = basadr + 2; //C ng C

contrreg = basadr + 3; //Thanh ghi đi u khi n

// t c ng A là c ng vào, c ng B và C là c ng ra: controlword =144 //Ghi controlword vào thanh ghi đi u khi n

controlword = 144;

outportb(contrreg,controlword); // c d li u t c ng A

inbyte = inportb(porta);

printf(“\n D li u đ c đ c c ng A là %d:”, inbyte); // t t t c các bit c ng B lên m c cao “1”

outbyte = 255; outportb(portb,outbyte); // t t t c các bit c ng C v “0” outbyte = 0; outportb(portc,outbyte); }

Một phần của tài liệu Bai Giang Điều khiển sản xuất kết hợp máy tính (Trang 46 - 47)