3.3. Ghép nối qua cổng máy in Cổng song song thường được dùng để giao tiếp PC với đối tượng đk bên ngoài nhờ đặc điểm: lập trình đơn giản, dễ kết nối. Tuy nhiên nhược điểm là khoảng cách truyền ngắn do tính chống nhiễu kém 3.3.1. Vài nét cơ bản về cổng máy in (LPT) Dữ liệu truyền song song nên còn gọi là cổng song song Tất cả các đường dẫn tín hiệu tương thích TTL Ngoài các đường dẫn dữ liệu một chiều còn có các đường tín hiệu bắt tay Bố trí chân ở cổng máy in của PC như trang bên
Chân nối cổng máy in
1
Bố trí chân ở cổng máy in chân
Ký hiệu
In/Out
1
STROKE
OUT
2
D0
OUT
3
D1
OUT
4
D2
OUT
5
D3
OUT
6
D4
OUT
7
D5
OUT
8
D6
OUT
9
D7
OUT
10
ACK
IN
11
BUSY
IN
12
PE
IN
Mô tả chức năng
2
Bố trí chân ở cổng máy in (cont’) chân
Ký hiệu
In/Out
13
SLCT
OUT
14
AF
OUT
15
ERROR
OUT
16
INIT
OUT
17
SLCTIN
OUT
18-25
GND
Mô tả chức năng
Khi trao đổi thông tin với máy in, các đường tín hiệu vào ra (ngoài D0 đến D7) có những chức năng xác định, ví dụ: - INIT=0: Reset lại máy in - Một xung low ở STROKE sẽ ghi dữ liệu được gửi từ PC vào bộ nhớ máy in - PE=0 cho biết máy in hết giấy -…
3
3.3.2. Các thanh ghi ở cổng LPT
Các PC thường có 2 cổng máy in LPT1: có địa chỉ cơ bản là 378H LPT2 có địa chỉ cơ bản là 278H Việc giao tiếp với cổng máy in được thực hiện qua 3 thanh ghi Thanh ghi dữ liệu (chiều dữ liệu từ PC ra máy in): Địa chỉ: địa chỉ cơ bản +0 Nhận dữ liệu để xuất ra ngoài, dữ liệu được chốt D7 D6 D5 D4 D3 D2 D1 D0 Các bit dữ liệu D0D7
4
3.3.2. Các thanh ghi ở cổng LPT (cont’)
Thanh ghi trạng thái (chiều dữ liệu từ máy in vào PC): Địa chỉ: địa chỉ cơ bản +1 Nhận tín hiệu từ ngoài vào và có 5 tín hiệu Chú ý mức logic của chân busy ngược lại với bit D7 của thanh ghi trạng thái nghĩa là nếu chân 11 có mức điện áp 5V thì bit D7 của thanh ghi trạng thái có mức logic 0 D7 D6 D5 D4 D3
0
0
0
ERROR SLCT PE ACK BUSY
5
3.3.2. Các thanh ghi ở cổng LPT (cont’)
Thanh ghi điều khiển (chiều dữ liệu từ PC ra máy in): Địa chỉ: địa chỉ cơ bản +2 Có 4 đường để điều khiển Chú ý các chân bị đảo mức tín hiệu
D7 D6 D5 D4 D3 D2 D1 D0 STROKE AUTO FEED INIT SLCTIN IRQ-enalbe 6
3.3.3. Ứng dụng dùng cổng LPT để thu thập dữ liệu và điều khiển Các lệnh đọc và ghi dữ liệu ra cổng máy in trong ngôn ngữ lập trình pascal Xuất dữ liệu ra thanh ghi : port [địa chỉ]= dữ liệu; Đọc dữ liệu từ thanh ghi của cổng máy in vào PC và chứa vào biến có tên là v_name: v_name= port [địa chỉ]; Ví dụ: muốn các chân 2-8 ở cổng máy in (địa chỉ cơ bản 378H) có mức điện áp 5V (tương ứng với bít D0-D6 của thanh ghi dữ liệu có mức logic 1) và chân 9 có mức điện áp 0V (bit D7 của thanh ghi dữ liệu có mức logic 0): port[$378]=$7F; Xuất dữ liệu từ máy tính ra thiết bị ngoại vi thông qua cổng máy in: có thể dùng thanh ghi dữ liệu (8 bit) hoặc thanh ghi điều khiển ( chỉ có 5 bít) Đọc dữ liệu từ ngoại vi vào máy tính: chỉ thông qua thanh7
3.3.3. Ứng dụng dùng cổng LPT để thu thập dữ liệu và điều khiển (cont’)
Ghi trạng thái (tối đa chỉ 5 bit), làm cách nào để đọc vào nhiều hơn 5 bit? ---> đa hợp IC 74LS257
8
9
IC 74LS245 : bộ đệm dữ liệu 2 chiều
10
11
Bài tập 1: Thiết kế sơ đồ kết nối với cổng máy in và viết chương trình điều khiển cho 8 led sáng dần rồi tắt dần Bài tập 2: Thiết kế sơ đồ kết nối card giao tiếp qua cổng máy in có 8 digital inputs và 8 digital output, viết chương trình đọc xuất dữ liệu và hiển thị lên màn hình Bài tập 3: Thiết kế mạch giao tiếp với máy tính qua cổng máy in để đo và điều khiển nhiệt độ 2 kênh.
12