Giáo trình Đo lường và điều khiển bằng máy tính
Mục tiêu:
- Hiểu cấu trấu giao tiếp máy tính với thiết bị ngoại vi.
- Hiểu giao tiếp qua khe ISA và PCI.
- Ý thức học tập, nghiên cứu cao
- Chính xác, cẩn thận, tỉ mỉ khi thiết kế mạch giao tiếp qua khe cắm.
1. Các khái niệm cơ bản và điều khiển bằng máy tính
Mục tiêu:
- Trình bày được cấu trúc giao tiếp máy tính với thiết bị ngoại vi.
1.1. Định nghĩa và phân loại giao tiếp
Giao tiếp là tiếp xúc giữa các cổng của máy tính với dây cáp của thiết bị
ngoài, qua đó chúng có thể nhận dạng và trao đổi dữ liệu với nhau.
Giao tiếp được phân loại như sau:
- Giao tiếp qua khe ISA
- Giao tiếp qua khe PCI
- Giao tiếp qua cổng song song
Giao tiếp qua cổng SPP
Giao tiếp qua cổng EPP
Giao tiếp qua cổng ECP
- Giao tiếp qua cổng nối tiếp (COM)
1.2. Các hình thức điều khiển bằng máy tính
Có hai hình thức điều khiển chính bằng máy tính
- Điều khiển trực tiếp
Là các điều khiển trực tiếp từ máy tính qua các thiết bị ngoài bằng cách
kết nối trực tiếp các thiết bị này với may tính.
- Điều khiển gián tiếp
Là các điều khiển khi thiết bị ngoài và máy tính không kết nối trực tiếp
với nhau, các thiết bị ngoài này được điều khiển bởi máy tính thông qua các
phương tiện gián tiếp. Có nghĩa là các thiết bị ngoài và máy tính được kết nối
với nhau thông qua một hệ thống mạng như LAN hay Internet.
2. Giao tiếp qua khe ISA
Mục tiêu:
- Trình bày được giao tiếp qua khe ISA và PCI.
- Chính xác, cẩn thận, tỉ mỉ khi thiết kế mạch giao tiếp qua khe cắm.9
2.1. Sơ đồ chân rãnh cắm ISA
Rãnh cắm thông dụng nhất là rãnh cắm ISA (Industry Standard
Architecture) do IBM đưa ra năm 1980 do máy 8086 XT (Extender Techology),
sau đó là ISA 16 bit cho máy AT (Advanced Techology) và trở thành chuẩn AT
Bus. Hiện nay các mainboard P4 không còn rãnh cắm này tuy nhiên việc nghiên
cứu rãnh cắm ISA cẫn là cần thiết. Rãnh cắm ISA có màu đen trên mainboard
gồm 2 phần, phần đầu 62 chân, mỗi hàng có 31 chân dùng cho trao đổi dữ liệu 8
bit, phần thứ 2 36 chân, mỗi hàng 18 chân dùng hỗ trợ thêm khi cần dữ liệu 16
bit. Sơ đồ chân rãnh cắm được mô tả như hình bên dưới:
3. Giao tiếp qua khe PCI
3.1. Các đặc điểm của khe cắm PCI
Rãnh cắm PCI (Peripheral Component Interconnect) có màu trắng trên
mainboard cho phép giao tiếp ngoại vi 32 hay 64 bit vận tốc nhanh đến 132
Mbyte/s sp với rãnh cắm ISA 16 bit có bận tốc 0 ÷ 5 Mbyte/s.13
Nhờ vận tốc cao nên rãnh PCI thường dùng cho card mà hình, sau đó nó
được sử dụng để cho các card khác như card mạng, modem nội, âm thanh và
dần dần các mainboard đời mới không dành chỗ cho rãnh ISA nữa.
Các hãng như Advantech, Data Translation cũng đã sản xuất card giao
tiếp ngoại vi cho máy tính dùng rãnh PCI.
Rãnh PCI 64 bit có hai hàng tiếp điểm, mỗi bên 94 tiếp điểm phía A là
phía linh kiện còn phía B là phía hàn. Do tính chất phức tạp của tuyến và vận tốc
tín hiệu lớn nên việc tự ráp card giao tiếp PCI khó thực hiện mà phải dùng card
chính hãng.
Năm 1998 các hãng Compaq, Hewlett – Packerd, IBM phối hợp đưa ra
chuẩn PCI-X (PCI Express) có đặc tính tốt hơn.
Tuyến PCI 32 bit sử dụng chung 32 đường địa chỉ data ADO – 31, pha địa
chỉ so tín hiệu FRAME# điều khiển, sau đó là một hay nhiều pha dữ liệu. Tuyến
PCI 64 bit dùng 64 đường ADO – 63 cho địa chỉ và dữ liệu.
Có 2 loại tuyến PCI mức tín hiệu 5V và mức tín hiệu 3,3V
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Giáo trình Đo lường và điều khiển bằng máy tính
thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thời gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của các thiết bị tham gia và của cả đường truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 kBd (chiều dài cho phép 30 – 50 m). 1.3. Đặc tính chống nhiễu Khả năng chống nhiễu của các cổng nối tiếp cao. Cổng nối tiếp là một phần của PC ngay khi nó mới ra đời. Với mỗi cổng COM hoặc COMM trong PC là một cổng nối tiếp không đồng bộ được điều khiển bởi các UART. Mỗi cổng COM có thể có giao diện RS-232, RS-485 hoặc cổng có thể để dành cho một modem trong hoặc thiết bị khác. Mỗi PC có thể có các dạng khác nhau của các cổng nối tiếp như USB, Fire wire, và I2C nhưng chúng dùng các giao thức khác nhau và yêu cầu các thành phần khác nhau. 2. Cấu trúc cổng COM Mục tiêu: - Trình bày được về chuẩn giao tiếp cổng COM. 2.1. Sơ đồ chân kiểu cổng DB-9 Chân D-9 Tên tín hiệu Chiều Ý nghĩa CD, Carrier detect, phát Phát giác có tín hiệu trên 1 Nhập giác sóng mang đường dây 2 RD, RXD, nhận dữ liệu Nhập Nhập dữ liệu nối tiếp 3 TD, TXD, truyền dữ liệu Xuất Xuất dữ liệu nối tiếp 4 DTR, Data terminal Ready Xuất DTE sẵn sàng kết nối 5 SG, Signal ground Mass 39 6 DSR, Data set ready Nhập Modem sẵn sàng kết nối RTS, Request to send DTE sẵn sàng trao đổi 7 Xuất dữ liệu CTS, Clear to send Modem sẵn sàng trao đổi 8 Nhập dữ liệu RI, Ring Indicator Modem phát giác tín 9 Nhập hiệu chuông 2.2. Sơ đồ chân cổng kiểu DB-25 Chân D-25 Tên tín hiệu Chiều Ý nghĩa 2 TD, TXD, truyền dữ liệu Xuất Xuất dữ liệu nối tiếp 3 RD, RXD, nhận dữ liệu Nhập Nhập dữ liệu nối tiếp DTE sẵn sàng trao đổi 4 RTS, Request to send Xuất dữ liệu CTS, Clear to send Modem sẵn sàng trao đổi 5 Nhập dữ liệu 6 DSR, Data set ready Nhập Modem sẵn sàng kết nối 7 SG, Signal ground Mass CD, Carrier detect, phát Phát giác có tín hiệu trên 8 Nhập giác sóng mang đường dây 20 DTR, Data terminal Ready Xuất DTE sẵn sàng kết nối RI, Ring Indicator Modem phát giác tín 22 Nhập hiệu chuông 2.3. Sơ đồ kết nối cổng COM Tín hiệu truyền nối tiếp dưới dạng các bit, số bit trong một giây được gọi là baud, vận tốc truyền thông dụng là 300, 600, 1200, 2400, 4800, 9600, 19200 baud. Nếu dùng vận tốc 9600 baud và khung truyền 8, E, 2 (8 bit dữ liệu, 1 bit kiểm tra chẵn, 2 bit stop) thì truyền một byte chiếm 12 bit vậy một 40 giây truyền được 800 byte, thời gian truyền 1 bit là ~ 0,1msec. Các modem đời mới có thể đạt tốc độ 56000 baud, tuy nhiên các vi mạch truyền nối tiếp có thể đạt tốc độ cao hơn đến 115200 baud (vi mạch 16550) 230400 baud (16C650) vì vậy các modem phải nén tín hiệu trước khi truyền trên đường. Kết nối giữa máy tính (DTE) và modem (DCE) thực hiện theo nguyên tắc các chân cùng tên nối với nhau. Còn khi kết nối DTE và DTE thường dùng sơ đồ sau: Khi DTE cần truyền dữ liệu thì DTR tích cực đưa về DSR cho biết phía nhận sẵn sàng, đưa về CD cho biết đã nhận được sóng mang của modem ảo. Hai DTE có cùng khung truyền nên RTS và CTS nối với nhau. Đôi khi có thể bỏ đường nối DTR với DSR và CD. Khi kết nối DTE với DCE, do vận tốc truyền khác nhau, cần điều khiển lưu lượng. Có hai cách là dùng phần cứng và phần mềm. Khi dùng phần cứng sử dụng hai dây RTS và CTS. Nếu DTE muốn truyền sẽ cho RTS tác động, nếu DCE chấp nhận sẽ gởi trở về CTS và máy tính sẽ gởi dữ liệu, nếu máy tính không nhận được CTS sẽ không gởi dữ liệu. Điều khiển lưu lượng bằng phần mềm dùng hai ký tự Xon và Xoff. Khi modem muốn máy tính ngừng truyền sẽ gởi đi ký tự Xoff (ASCII 19) còn khi modem rảnh nó sẽ gởi ký tự Xon (ASCII 17). Việc trao đổi dữ liệu của máy tính được thực hiện thông qua vi mạch UART (Universal Asynchronous Receiver Transmitter) còn với vi điều khiển hay PLC thì có các vi mạch chuyên dụng hoặc được tích hợp trong vi xử lý. Các máy tính đời mới dùng công nghệ ASIC sử dụng chip đa năng làm nhiều nhiệm vụ giao tiếp nối tiếp, song song, cổng trò chơi, điều khiển đĩa, tuy nhiên phần giao tiếp nối tiếp thiết kế tương hợp với các vi mạch UART rời. Các loại vi mạch UART thường gặp là 8250, 8250A, 16450, 16550, 16650, 16750, 6402. Các cổng nối tiếp được đánh số COM 1, COM 2, COM 3, COM 4. Bảng sau cho địa chỉ gốc cổng COM và các thông tin khác. 41 3. Mạch giao tiếp nối tiếp Mục tiêu: - Thực hiện kết nối 2 máy tính qua cổng nối tiếp - Chính xác, cẩn thận, tỉ mỉ khi thực hiện giao tiếp qua cổng nối tiếp. 3.1. Mạch chuyển đổi RS-232 Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng điều khiển, đo lường... Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật được sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính. Nó là một chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là 2 thiết bị , chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12.5 đến 25.4m, tốc độ 20kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt. Ý nghĩa của chuẩn truyền thông nối tiếp nghĩa là trong một thời điểm chỉ có một bit được gửi đi dọc theo đường truyền. Có hia phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và RS232C. Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng còn RS232C hiện vẫn được dùng và tồn tại thường được gọi là tên ngắn gọn là chuẩn RS232. Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi là cổng Com. Chúng được dùng ghép nối cho chuột, modem, thiết bị đo lường...Trên main máy tính có loại 9 chân hoặc lại 25 chân tùy vào đời máy và main của máy tính. Việc thiết kế giao tiếp với cổng RS232 cũng tương đối dễ dàng, đặc biệt khi chọn chế độ hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp. + Khả năng chống nhiễu của các cổng nối tiếp cao. + Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện. + Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp. + Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +- 12V. Hiện nay đang được cố định trở kháng tải trong phạm vi từ 3000 ôm - 7000 ôm. + Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ +-3V đến 12V. 42 + Tốc độ truyền nhận dữ liệu cực đại là 100kbps ( ngày nay có thể lớn hơn). + Các lối vào phải có điện dung nhỏ hơn 2500pF. + Trở kháng tải phải lớn hơn 3000 ôm nhưng phải nhỏ hơn 7000 ôm. + Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232 không vượt qua 15m nếu chúng ta không sử model. + Các giá trị tốc độ truyền dữ liệu chuẩn : 50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400....5660 0,115200 bps. Cổng RS232 trên PC Hầu hết các máy tính cá nhân hiện nay đều được trang bị ít nhất là 1 cổng Com hay cổng nối tiếp RS232. Số lượng cổng Com có thể lên tới 4 tùy từng loại main máy tính. Khi đó các cổng Com đó được đánh dấu là Com 1, Com 2, Com 3...Trên đó có 2 loại đầu nối được sử dụng cho cổng nối tiếp RS232 loại 9 chân (DB9) hoặc 25 chân (DB25). Tuy hai loại đầu nối này có cùng song song nhưng hai loại đầu nối này được phân biệt bởi cổng đực (DB9) và cổng cái (DB25). Ta xét sơ đồ chân cổng Com 9 chân: Trên là các kí hiệu chân và hình dạng của cổng DB9 Chức năng của các chân như sau: + chân 1 : Data Carrier Detect (DCD) : Phát tín hiệu mang dữ liệu. + chân 2: Receive Data (RxD) : Nhận dữ liệu. + chân 3 : Transmit Data (TxD) : Truyền dữ liệu. + chân 4 : Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi bộ phận khi muốn truyền dữ liệu. + chân 5 : Singal Ground ( SG) : Mass của tín hiệu. + chân 6 : Data Set Ready (DSR) : Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu. + chân 7 : Request to Send : yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu. + chân 8 : Clear To Send (CTS) : Xóa để gửi ,bô nhận đặt đường này lên mức kích hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu. + chân 9 : Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận tín hiệu rung chuông. 43 Còn DB28 bây giờ hầu hết các main mới ra đều không có cổng này nữa. Nên tôi không đề cập đến ở đây. Mạch chuẩn giao RS232 dùng IC Max232 Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi. Max232 là IC của hãng Maxim. Đây là IC chay ổn định và được sử dụng phổ biến trong các mạch giao tiếp chuẩn RS232. Giá thành của Max232 phù hợp (12K hay 10K) và tích hợp trong đó hai kênh truyền cho chuẩn RS232. Dòng tín hiệu được thiết kế cho chuẩn RS232 . Mỗi đầu truyền ra và cổng nhận tín hiệu đều được bảo vệ chống lại sự phóng tĩnh điện ( hình như là 15KV). Ngoài ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ. Mạch giao tiếp như sau : Đây là mạch giao tiếp 1 kênh dùng Max232. Còn giao tiếp 2 kênh thì tương tự. Mạch này được sử dụng khá nhiều trong chuẩn giao tiếp RS232. Mạch chuẩn giao tiếp RS232 dùng DS275 Đây cũng là IC của hãng Maxim. DS275 được dùng trong các mạch giao tiếp của chuẩn RS232 nhưng do nó chỉ là bán song công và dùng trong các thiết kế công suất nhỏ. 44 Mạch giao tiếp khá đơn giản. Do bán song công nên trong các ứng dụng ít được dùng. Mạch chuẩn giao tiếp RS232 dùng transistor Mạch sử dụng 2 transistor để giao tiếp RS232. 3.2. Lập trình điều khiển nối tiếp đơn giản /* Chương trình truyền nối tiếp dùng ngôn ngữ C 45 /* Xuất kỳ tự nhận được ra màn hình và đọc ký tự từ bàn phím gởi nối tiếp */ #include #include #include #define PORT1 0x3F8 /* COM 1 0x3F8 */ /* COM 2 0x2F8 */ /* COM 3 0x3E8 */ /* COM 4 0x2E8 */ void main (void) { int C; int ch; outportb (PORT1 + 1, 0); /* Cấm ngắt Port 1 */ /* Đặt cấu hình PORT 1 */ outportb (PORT1 + 3, 0x80); /* SET DLAB ON */ outportb (PORT1 + 0, 0x03); /* Set Baud rate - Divisor Latch Low Byte */ /* Default 0x03 = 38,400 BPS */ /* 0x01 = 115,200 BPS */ /* 0x02 = 56,700 BPS */ /* 0x06 = 19,200 BPS */ /* 0x0C = 9,600 BPS */ /* 0x18 = 4,800 BPS */ /* 0x30 = 2,400 BPS */ outportb (PORT1 + 1 , 0x00); /* Set Baud rate - Divisor Latch Hight Byte */ outportb (PORT1 + 3 , 0x03); /* 8 Bits, No Parity, 1 Stop Bit */ outportb (PORT1 + 2 , 0xC7); /* FIFO Control Register */ outportb (PORT1 + 4 , 0x0B); /* Turn on DTR, RTS, and OUT2 */ printf (“\n. Press ESC to quit \n”); do { c = inportb (PORT1 + 5); /* Xem có nhận được ký tự không. */ if (c & 1) {ch = inportb (PORT1); printf (“%c” ch);} /* Xuất ký tự ra màn hình */ if (kbhit ()) {ch = getch (); /* Đọc phím bấm */ outportb (PORT1, ch);} /* Gởi ký tự */ } while (ch != 27); } /* Chương trình giao tiếp nối tiếp dùng ngắt*/ #include #include #include #define PORT1 0x2E8 #define INTVECT 0x08 /* Com Port’s IRQ here */ 46 int bufferin = 0; int bufferout = 0; char ch; char buffer [1025]; void interrupt (*oldport1isr) (); void interrupt PORT1INTO () /* Interrupt Service Routine (IRS) for PORT 1 */ { int c; do {c = inportb (PORT1 + 5); if (c & 1) {buffer [bufferin] = inportb (PORT1); bufferin++; if (bufferin == 1024) bufferin = 0;} } while (c & 1); outportb (0x20, 0x20); } void main (void) { int c; outportb (PORT1 + 1 , 0); oldport1isr = getvect (INTVECT); /* cất vectơ ngắt cũ */ setvect (INTVECT, PORT1INT); /* đặt vectơ ngắt mới */ /* COM 1 - 0x0C */ /* COM 2 - 0x0B */ /* COM 3 - 0x0C */ /* COM 4 - 0x0B */ outportb (PORT1 + 3 , 0x80); /* SET DLAB ON */ outportb (PORT1 + 0 , 0x03); /* Set Baud rate - Divisor Latch Low Byte */ /* Default 0x03 = 38,400 BPS */ /* 0x01 = 115,200 BPS */ /* 0x20 = 56,700 BPS */ /* 0x06 = 19,200 BPS */ /* 0x0C = 9,600 BPS */ /* 0x18 = 4,800 BPS */ /* 0x30 = 2,400 BPS */ outportb (PORT1 + 1, 0x00); /* Set Baud rate - Divisor Latch Hight Byte */ outportb (PORT1 + 3, 0x03); /* 8 Bits, No Parity, 1 Stop Bit */ outportb (PORT1 + 2, 0xC7); /* FIFO Control Register */ outportb (PORT1 + 4, 0x0B); /* Turn on DTR, RTS, and OUT2 */ outportb (0x21, (inportb (0x21) & 0xF7)); /* Set Programmable Interrupt Controller */ /* COM 1 (IRQ4) - 0xEF */ /* COM 2 (IRQ3) - 0xF7 */ /* COM 3 (IRQ4) - 0xEF */ 47 /* COM 4 (IRQ3) - 0xF7 */ outportb (PORT1 + 1 , 0x01); /* Ngắt khi thu */ printf (“\n Press ESC to quit \n”); do { if (bufferin ! == bufferout) {ch = buffer [bufferout]; bufferout++; if (bufferout == 1024) bufferout = 0; printf (“%C”, ch);} if (kbhit ()) {c = getch (); outportb (PORT 1, c);} } while (c ! = 27); outportb (PORT 1 + 1 , 0); /* Turn off interrupts - Port 1 */ outportb (0x21, (inportb (0x21) 0x08)); /*MASK IRQ using PIC */ /* COM 1 (IRQ4) - 0x10 */ /* COM 2 (IRQ3) - 0x08 */ /* COM 3 (IRQ4) - 0x10 */ /* COM 4 (IRQ3) - 0x08 */ setvect (INTVECT, oldport 1 isr); /* hồi phục vectơ ngắt cũ */ } 3.3. Giới thiệu mạch chuyển AD qua cổng nối tiếp Chuyển đổi AD dùng cổng nối tiếp 9600, 8, E, 1 Chương trình sau viết bằng ngôn ngữ C minh họa hoạt động của mạch. 48 /* Chương trình đổi AD nối tiếp */ #include #include #include #define PORT1 0x3F8 #define INTVECT 0x0C int bufferin = 0; int bufferout = 0; unsigned char ch; char buffer [1025]; void interrupt (*oldport1isr) (); void interrupt PORT1INT /*IRS cho PORT1 */ { int c; do {c = inportb(PORT1 +5); if (c & 1) {buffer[bufferin] = inportb(PORT1); bufferin++; if (bufferin == 1024) {bufferin = 0;}} } while (c & 1); outportb (0x10, 0x20); } void main (void) { int c; outportb (PORT1 + 1, 0); /* Cấm ngắt port 1 */ oldport1isr = getvect (INTVECT); setvect (INTVECT, PORT1INT); /*PORT 1 - Đặt chế độ*/ outportb (PORT1 + 3, 0x80); /* SET DLAB ON */ outportb (PORT1 + 0, 0x0C); /* đặt Baud rate 9600 BPS */ outportb (PORT1 + 1, 0x00); outportb (PORT1 + 3, 0x03); /* 8 bits, No Parity, 1 Stop Bit */ outportb (PORT1 + 2, 0xC7); /*FIFO Control Register*/ outportb (PORT1 + 4, 0x0B); /*Cho DTR, RTS, và OUT2 ON*/ outportb (0x21, (inportb (0x21) & 0xEF); outportb (PORT1 + 1, 0x01); /* Interrupt khi nhận data */ printf (“\n\chương trình đổi ADC nối tiếp. Nhấn ESC để thoát \n”); do { if (bufferin ! == bufferout) {ch = buffer[bufferout]; bufferout++; if (bufferout == 1024) {bufferout = 0;} print(“%u\n”, ch); printf(“%f volts\n”, (float) ch/256*5);} 49 if (kbhit () {c = getch(); outportb(PORT1, c);} } while (c != 27); outportb (PORT1 + 1, 0); outportb (0x21, (inportb (0x21) 0x20)); setvect (INTVECT, oldport1isr); } 50 TÀI LIỆU THAM KHẢO - TS Nguyễn Đức Thành. Đo lường và Điều khiển bằng máy tính. NXB: ĐH HCM. Năm 2006 - Ngô Diên Tập. Đo lường và Điều khiển bằng Máy tính. NXB : Khoa học và Kỹ Thuật Hà Nội.
File đính kèm:
- giao_trinh_do_luong_va_dieu_khien_bang_may_tinh.pdf