You are on page 1of 19

ĐẠI HỌC THÁI NGUYÊN

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN


Cổng LPT
Giảng viên hướng dẫn : Th.S VŨ THÀNH VINH
Nhóm SV thực hiện:
1 - Hoàng Trọng Được
2 - Nguyễn Quang Hưng
3 - Nguyễn Quốc Việt
4 - Trần Văn Vụ
5 - Trần Đức Sơn

Thái Nguyên, tháng 2 năm 2011


LỜI NÓI ĐẦU

Lập trình cấu trúc là phương pháp tổ chức, phân chia chương trình
thành các hàm, thủ tục,chúng được dùng để xử lý dữ liệu nhưng lại tách rời
các cấu trúc dữ liệu.Thông qua các ngôn ngữ Foxpro,Turbo Pascal, Turbo C,
Turbo Assembler đa số những lập trình viên đã khá quen biết với phương
pháp lập trình này.
Với kiến thức Pascal mà chúng ta đã học được từ năm đầu tiên, học
phần này không phải chỉ giới thiệu về ngôn ngữ C đơn thuần mà còn giúp
chúng ta hiểu thêm rất nhiều kiến thức về ngôn ngữ lập trình C ứng dụng
trong Điện Tử Viễn Thông. Các thí dụ, ứng dụng của ngôn ngữ C trong kỹ
thuật đo lường và điều khiển, ghép nối với máy tính, kỹ thuật điện tử.
Trong quá trình thực hiện, do chưa có nhiều kinh nghiệm và lượng tài
liệu thu thập còn hạn hẹp nên chắc chắn bài tập của chúng em không tránh
khỏi thiếu sót. Vậy chúng em mong nhận được các ý kiến đóng góp của thầy
và các bạn.
Cuối cúng, chúng em xin được cảm ơn thầy giáo Vũ Thành Vinh đã
hướng dẫn tận tình cho chúng em để nhóm em hoàn thành bài tập này.

Em xin chân thành cảm ơn!


MỤC LỤC
LỜI NÓI ĐẦU ................................................................................2
TỔNG QUAN VỀ CỔNG MÁY IN LPT .............................................4
Trong 17 ® êng dÉn tÝn hiÖu th× cã 5 vµo, v× vËy viÖc
b¾t tay gi÷a m¸y tÝnh vµ m¸y in ® îc thùc hiÖn ch¼ng
h¹n nh khi m¸y in kh«ng cßn ®ñ chç trèng trong bé nhí
th× nã ® a ®Õn m¸y tÝnh mét tr¹ng th¸i (BUSY =1) tøc
lµ b¸o m¸y in ®ang bËn kh«ng nªn ® a d÷ liÖu ra n÷a. 10
1.4. Kỹ thuật lập trình ghép nối. ..........................................15
1.6. Ứng dụng ........................................................................17
Tài liệu tham khảo: ................................................................... 18
TỔNG QUAN VỀ CỔNG MÁY IN LPT

1.1. C¸c vÊn ®Ò c¬ b¶n vÒ giao tiÕp m¸y tÝnh:


Tr¶i qua mét thêi gian dµi tõ ph¸t minh ®Çu tiªn ra m¸y tÝnh
cho ®Õn nay, m¸y tÝnh ®· kh«ng ngõng n©ng cao vµ ph¸t triÓn
qua nhiÒu thÕ hÖ. Tuy nhiªn hÇu hÕt m¸y tÝnh ®ang phæ biÕn
hiÖn nay ®Òu cã nguån gèc xuÊt ph¸t tõ hä PC (Personal
Computer). §Çu tiªn lµ kiÓu m¸y PCXT do h·ng IBM chÕ t¹o víi bé
xö lý (CPU) 8088 cña h·ng Intel. §©y lµ hÖ thèng xö lý d÷ liÖu 16
bit nhng dïng bus d liÖu 8 bit. TiÕp theo ®ã lµ m¸y AT ra ®êi víi
bé xö lý 80286 cã tÝnh n¨ng h¬n h¼n chip 8088 cña m¸y PCXT.
Nã cã kh¶ n¨ng t¹o ra bé nhí ¶o, ®a nhiÖm vô, tèc ®é nhanh, ®é
tin cËy cao vµ dïng bus d÷ liÖu 16 bit. §a nhiÖm (Multitasking) lµ
kh¶ n¨ng thùc hiÖn mét lóc nhiÒu nhiÖm vô.
C«ng viÖc nµy thùc hiÖn ®îc nhê ho¸n chuyÓn nhanh theo sù
theo dâi cña CPU ®Õn c¸c ch¬ng tr×nh mµ nã ®ang n¾m quyÒn
®iÒu khiÓn. ViÖc nµy ®îc thùc hiÖn ngay bªn trong CPU céng víi
mét vµi gióp ®ì cña hÖ ®iÒu hµnh. Bé nhí ¶o (Virtual Memory)
cho phÐp m¸y tÝnh lµm viÖc víi mét bé nhí dêng nh lín h¬n nhiÒu
so víi bé nhí vËt lý hiÖn cã: C«ng viÖc nµy thùc hiÖn ®îc nhê mét
phÇn mÒm vµ sù thiÕt kÕ phan cøng cùc kú tinh x¶o.
Ngµy nay c¸c m¸y AT 386, 486, Pentium dïng chip CPU lÇn lît
lµ 80386, 80486, P5 lµ kÕt qu¶ cña tr×nh ®é kü thuËt vµ c«ng
nghÖ hiÖn ®¹i. Ch¬ng tr×nh mét bé nhí lín h¬n tæ tiªn lµ: 8088
hay 80286 cïng víi nhiÒu chøc n¨ng míi, thªm n÷a lµ tèc ®é vi xö
lý kh«ng ngõng ®îc n©ng cao ®é réng cña data bus còng më
réng lªn 32bit råi 64 bit víi Pentium.
1.2. C¸c ph¬ng ph¸p ®iÒu khiÓn vµo ra.
a/ Vµo ra ®iÒu khiÓn b»ng ch¬ng tr×nh.
ThiÕt bÞ ngo¹i vi ®Òu ghÐp víi Bus hÖ thèng vi xö lý
th«ng qua c¸c phÇn thÝch øng vÒ c«ng nghÖ chÕ t¹o vµ
logic. ThÝch øng vÒ c«ng nghÖ chÕ t¹o lµ ®iÒu chØnh møc
c«ng nghÖ s¶n xuÊt thiÕt bÞ ngo¹i vi vµ c«ng nghÖ s¶n xuÊt
cña m¹ch trong hÖ vi x lý. ThÝch øng vÒ Logic lµ nhiÖm vô
t¹o tÝn hiÖu ®iÒu khiÓn ngo¹i vi tÝn hiÖu trªn bus hÖ thèng.
Trong hÖ vi xö lý mét vïng nhí dïng lµm n¬i chøa ®Þa
chØ cæng vµo ra vµ CPU xuÊt hoÆc nhËp d÷ liÖu tõ c¸c
cæng vµo ra nµy c¸c lÖnh xuÊt nhËp In/Out Lóc nµy cæng
vµo ra ®îc xem nh thanh ghi ngoµi, chóng ®îc viÕt vµo hoÆc
®äc ra nh « nhí Ram qua hai lÖnh trªn. §Ó ph©n biÖt híng
xuÊt hoÆc nhËp d÷ liÖu tõ cæng vµo ra CPU ph¸t ra tÝn hiÖu
®iÒu khiÓn ®äc hoÆc viÕt. §Ó ph©n biÖt vïng nhí víi thiÕt
bÞ vµo ra CPU ph¸t ra tÝn hiÖu ®iÒu khiÓn IO/M. Khi cã c¸c
lÖnh nµy th× c¸c lÖnh In/Out míi cã t¸c dông.
Ngoµi c¸c lÖnh qui chiÕu bé nhí, còng nh kh¶ n¨ng trao
®æi d÷ liÖu gi÷a thiÕt bÞ ngo¹i vi vµ hÖ vi xö lý. Lóc ®ã vµo
ra ®îc g¸n nh mét ®Þa chØ « nhí cña bé nhí. C¸c thanh ghi
liªn quan tíi cæng vµo ra ®îc xem nh ng¨n nhí. Khi bé vi xö lý
gäi ®Þa chØ vµ xung ®iÒu khiÓn ®äc hay viÕt bé nhí kh«ng
cÇn x¸c ®Þnh n¬i gëi lµ bé nhí hay thiÕt bÞ vµo ra. Nã chØ
hái n¬i göi d÷ liÖu vµo trong kho¶ng thêi gian cho phÐp. Bé
logic bªn ngoµi sÏ gi¶i m· ®Þa chØ kÕt hîp víi xung MR, MW,
®Ó chän thiÕt bÞ mµ kh«ng ph©n biÖt ng¨n hay thiÕt bÞ
vµo ra.
b/ Vµo ra ®iÒu khiÓn b»ng ng¾t.
Với ph¬ng ph¸p ®iÒu khiÓn vµo ra b»ng ch¬ng tr×nh,
CPU ph¶i liªn tôc kiÓm tra tr¹ng th¸i cña thiÕt bÞ ngo¹i vi
®Õn khi s½n sµng, ®ã lµ sù l·ng phÝ thêi gian cña CPU vµ
ch¬ng tr×nh dµi vµ phøc t¹p. Khi bé vi xö lý cã nhiÒu thiÕt
bÞ ngo¹i vi CPU kh«ng ®¸p øng yªu cÇu cña chóng. Cã thÓ
®¸p øng yªu cÇu ngo¹i vi nhanh chãng vµ kh«ng theo tr×nh
tù nh ®Þnh tríc nhê c¬ cÊu ng¾t CPU.
Nhê tÝnh chÊt ®¸p øng tøc thêi cña vi xö lý khi cã yªu
cÇu ng¾t tõ thiÕt bÞ ngo¹i vi do ®ã c¸c ng¾t thêng ®îc dïng
ë nh÷ng trêng hîp yªu cÇu ®¸p øng nhanh, thêi gian tr¶ lêi
ng¾n, thùc hiÖn ë bÊt kú thêi ®iÓm nµo. Khi ®ã CPU ph¶i
chuyÓn ®Õn ch¬ng tr×nh con, yªu cÇu ng¾t ë cuèi bÊt kú
lÖnh nµo trong ch¬ng tr×nh chÝnh. C¸c ch¬ng tr×nh con
phôc vô ng¾t cã thÓ lu tr÷ néi dung c¸c thanh ghi vµ kh«i
phôc l¹i khi thùc hiÖn xong ch¬ng tr×nh phôc vô ng¾t vµ tríc
khi trë l¹i ch¬ng tr×nh chÝnh.
Giao tiÕp víi m¸y tÝnh lµ trao ®æi d÷ liÖu gi÷a mét
m¸y tÝnh víi mét hay nhiÒu thiÕt bÞ ngo¹i vi.
Theo tiªu chuÈn s¶n xuÊt, m¸y tÝnh giao tiÕp víi ngêi sö
dông b»ng hai thiÕt bÞ:
- Bµn phÝm ®Ó nhËp d÷ liÖu
- Mµn h×nh ®Ó hiÓn thÞ
Ngoµi ra nhµ s¶n xuÊt cho ta nhiÒu c¸ch giao tiÕp kh¸c
th«ng qua c¸c cæng nh lµ c¸c ngâ giao tiÕp:
- Giao tiÕp qua cæng COM (nèi tiÕp)
- Giao tiÕp qua cæng Parallel(song song)
Tïy theo trêng hîp cô thÓ mµ chän c¸ch giao tiÕp thÝch
hîp.
1.3. Tæng quan vÒ cæng LPT (Line Printer Terminal).
IBM PC cho phÐp sö dông ®Õn 3 cæng song song cã tªn lµ
LP1, LP2 vµ LP3. KiÓu giao tiÕp song song ®îc dïng ®Ó truyÒn d÷
liÖu gi÷a m¸y tÝnh vµ m¸y in. Kh¸c víi c¸ch giao tiÕp qua Port
Com, ë c¸ch giao tiÕp nµy d÷ liÖu ®îc truyÒn song song cïng mét
lóc 8 bit. V× thÕ nã cã thÓ ®¹t tèc ®é cao. Connector cña Port
nµy cã 25 ch©n bao gåm 8 ch©n d÷ liÖu vµ c¸c ®êng tÝn
hiÖu b¾t tay (Handshaking). TÊt c¶ c¸c ®êng Data vµ tÝn hiÖu
®iÒu khiÓn ®Òu ë møc logic hoµn toµn t¬ng thÝch v¬i møc TTL.
H¬n n÷a, ng¬i lËp tr×nh cã thÓ ®iÒu khiÓn cho phÐp hoÆc
kh«ng cho phÐp c¸c tÝn hiÖu t¹o Interrupt tõ ngâ vµo nªn viÖc
giao tiÕp ®¬n gi¶n vµ dÔ dµng. Tuy nhiªn, giao tiÕp víi møc
logic TTL nªn kho¶ng c¸ch truyÒn bÞ h¹n chÕ so víi c¸ch truyÒn
qua Port Com, ®ång thêi c¸p truyÒn còng phøc t¹p h¬n. §ã lµ nh-
îc ®iÓm cña c¸ch giao tiÕp nµy.
Cæng m¸y in LPT - Line Printer Terminal

* S¬ lîc vÒ giao tiÕp qua cæng m¸y in LPT:


a/ Khái niệm:
Cổng song song ( Parallel Port) là tập hợp các đường tín hiệu mà vi xử lí
hoặc là CPU dùng để trao đổi dữ liệu với các thiết bị, thành phần khác. Điển hình
nhất của loại giao diện này là dùng để giao tiếp với máy in, modems, keyboards và
màn hình,.. Cổng song song truyền nhiều bít một lần, trong khi cổng nối tiếp chỉ
truyền một bít một ở một thời điểm (nhưng có thể truyền 2 chiều ở cùng một thời
điểm).
Cổng song song của PC ban đầu có 8 đường ra, 5 đường vào và 4 đường vào
ra. Những đường này là đủ để giao tiếp với nhiều dạng của các thiết bị ngoại vi. Ở
nhiều máy tính mới hơn, 8 đường ra có thể thực hiện chức năng như là đường Input
để đạt giao tiếp với tốc độ cao với máy scaner, thiết bị và các thiết bị khác gửi dữ
liệu tới PC.
Cổng song song đã được thiết kế như là một cổng máy in.
Cổng song song có 2 loại:
- Ổ cắm 36 chân
- Ổ cắm 25 chân
Ngày nay, loại ổ cắm 36 chân không còn được sử dụng, hầu hết các máy tính
PC đều trang bị cổng song song 25 chân nên ta chỉ cần quan tâm đến loại 25 chân.
Cổng song song dùng nhiều tài nguyên của hệ thống. Tất cả các cổng dùng
một dãy địa chỉ, cho dù số lượng và vị trí của các địa chỉ thay đổi. Nhiều cổng có
một mức IRQ (Interrupt request) xác định, và các cổng ECP có thể có một kênh
DMA xác định. Các tài nguyên dành cho một cổng không thể dùng cho các thành
phần khác của hệ thống, các cổng song song khác.
Địa chỉ (Addressing)
Cổng song song chuẩn dùng ba địa chỉ liền nhau, thường là một trong 3 dãy
sau:
3BCh, 3BDh, 3Eeh
378h, 379h, 37Ah
278h, 279h, 27Ah
Địa chỉ đầu tiên trong dãy là địa chỉ gốc (base address) của Port thương được
gọi là địa chỉ thanh ghi Dữ liệu (Data register) hoặc là địa chỉ của cổng.
Địa chỉ thứ 2 là địa chỉ của thanh ghi trạng thái (Status register).
Địa chỉ thứ 3 là địa chỉ của thanh ghi Điều khiển (Control register).

Các cổng EPP và cổng ECP dành một số địa chỉ bổ sung cho mỗi cổng.
EPP thêm 5 thanh ghi tại địa chỉ Base address + 3 tới Base address + 7, còn
ECP thêm 3 thanh ghi tại địa chỉ base address + 400h tới base address + 402h.

Các ngắt (Interrupt)


Phần lớn các cổng song song có khả năng phát hiện tín hiệu ngắt từ thiết bị
ngoại vi. Thiết bị ngoại vi có thể dùng ngắt để thông báo rằng đã sẵn sàng để nhận
byte hoặc có một byte để truyền.
Để dùng ngắt, cổng song song phải có một mức yêu cầu ngắt (Interrupt
request - IRQ) xác định.
Theo qui ước LPT1 dùng IRQ7 và LPT2 dùng IRQ5. Thế nhưng IRQ5 được
dùng bởi nhiều card âm thanh, và bởi vì các mức IRQ không được dùng bởi các
thành phần hệ thống nào rất là hiếm trong hệ thống, thậm chí IRQ7 có thể được
dành cho các thiết bị khác. Một vài cổng cho phép chọn các mức IRQ khác 2 mức
trên.
Rất nhiều driver máy in hoặc nhiều ứng dụng và thiết bị khác truy nhập cổng
song song không yêu cầu ngắt cổng song song. Nếu không chọn mức báo ngắt cho
cổng song song thì cổng này vẫn hoạt động trong hầu hết các trường hợp rất là hiệu
quả và bạn có thể dành mức báo ngắt IRQ cho công việc khác.
Công dụng: Thường dành riêng cho cắm máy in. Tuy nhiên đối với những
máy in thế hệ mới hầu hết cắm vào cổng USB thay vì cổng COM hay LPT.
Nhận dạng: Là cổng dài nhất trên mainboard.
b/ M« t¶ c¸c ®êng dÉn tÝn hiÖu:
Cæng m¸y in cã tÊt c¶ 17 ®êng dÉn bao gåm 12 ®êng dÉn
ra vµ 5 ®êng dÉn vµo. C¸c ®êng d÷ liÖu tõ D0 - D7 lµ nh÷ng ®-
êng dÉn mét chiÒu vµ lµ ®êng dÉn ra. C¸c ®êng tÝn hiÖu vµo ra
cã chèt.

+ Ch©n sè 1(STROBE) STR (Out): Ch©n ra, khi m¸y tÝnh ®a


tÝn hiÖu nµy ra th× nã b¸o cho m¸y in ®äc d÷ liÖu vµo ®Ó in.
Xung t¸c ®éng ë møc thÊp.
+ Ch©n 2 - 9 (DATA): C¸c ch©n ra d÷ liÖu cña m¸y tÝnh.
+ Ch©n 10 ( ACK) Mức thấp: Ch©n vµo ®Ó b¸o cho m¸y
tÝnh biÕt lµ d÷ liÖu ®· nhËn ®îc vµ yªu cÇu m¸y tÝnh gëi d÷
liÖu tiÕp theo.
+ Ch©n 11 (BUSY) Mức cao: Ch©n vµo ®Ó b¸o cho m¸y
tÝnh biÕt lµ m¸y in ®ang bËn kh«ng thÓ nhËn tiÕp d÷ liÖu tõ
m¸y tÝnh gửi ra. Ch©n nµy t¸c ®éng ë møc cao.
+ Ch©n 12 (PAPER EMPTY) PE: Ch©n vµo ®Ó b¸o cho m¸y
tÝnh biÕt lµ m¸y in hÕt giÊy. Ch©n nµy t¸c ®éng ë møc cao.
+ Ch©n 13 (SELECT): Ch©n vµo ®Ó b¸o m¸y tÝnh
®ang ë tr¹ng th¸i lùa chän. Ch©n nµy t¸c ®éng ở møc cao.
+ Ch©n 14 (AUTOFEED): Ch©n ra t¸c ®éng ë møc thÊp. Khi
t¸c ®éng th× m¸y tù ®éng dÞch thªm mét dßng sau khi in.
+ Ch©n 15 (ERROR): Ch©n vµo t¸c ®éng møc thÊp ®Ó b¸o
m¸y in ®ang bÞ lçi.
+ Ch©n 16 (INIT): Ch©n ra t¸c ®éng møc thÊp ®Ó ®Æt l¹i
m¸y in.
+ Ch©n 17 (SLCTIN): Ch©n ra t¸c ®éng møc thÊp ®Ó b¸o
m¸y in ®a d÷ liÖu vµo.
+ Ch©n 18 - 25 (GROUND-GND): Lµ ch©n nèi mass.
Trong 17 ®êng dÉn tÝn hiÖu th× cã 5 vµo, v× vËy viÖc b¾t tay
gi÷a m¸y tÝnh vµ m¸y in ®îc thùc hiÖn ch¼ng h¹n nh khi m¸y in
kh«ng cßn ®ñ chç trèng trong bé nhí th× nã ®a ®Õn m¸y tÝnh mét
tr¹ng th¸i (BUSY =1) tøc lµ b¸o m¸y in ®ang bËn kh«ng nªn ®a d÷
liÖu ra n÷a.
c/ Sơ đồ, chức năng của các chân.
Cổng LPT là loại cổng rất dễ sử dụng.Thông thường loại cổng này chỉ dùng
để ghép nối với máy in. Sơ đồ ghép nối song song như hình sau:
Với số lượng đường dẫn nhiều, một số phép thử trở nên đặc biệt đơn giản.
Điểm đáng chú ý là khi tiến hành ghép nối cổng song song cần hết sức thận trọng.
Do các đường dẫn tương thích TTL không được bảo vệ chống quá tải, nên khi tiến
hành ghép nối ta cần chứ ý tới những quy tắc an toàn sau đây:
- Thiết bị chỉ được phép đấu nối với cổng song song khi máy tính ở trạng thái
ngắt điện.
- Các lối vào chỉ được phép tiếp nhận điện áp giữa 0V và 5V.
- Các lối ra không được phép ngắn mạch hoặc đấu nối với các lối ra khác và
các lối ra không được phép nối với các nguồn tín hiệu điện áp không biết rõ thông
số.
d/ Địa chỉ các thanh ghi.
Cổng LPT có ba thanh ghi có thể truyền dữ liệu và điều khiển máy in. Địa chỉ
cơ sở của các thanh ghi cho tất cả cổng LPT (line printer) từ LPT1 đến LPT4 được
lưu trữ trong vùng dữ liệu của BIOS.
- Thanh ghi dữ liệu được định vị ở offset 00h.
- Thanh ghi trạng thái ở 01h.
- Thanh ghi điều khiển ở 02h.
Thông thường, địa chỉ cơ sở của LPT1 là 378h. Do đó, địa chỉ của các thanh
ghi lần lượt như sau:

Thanh ghi dữ liệu 378h


Thanh ghi trạng thái 379h
Thanh ghi điều khiển 37Ah

Địa chỉ cổng LPT2 là 278h, do đó địa chỉ của thanh ghi như sau:

Thanh ghi dữ liệu 278h


Thanh ghi trạng thái 279h
Thanh ghi điều khiển 27Ah
Với các địa chỉ LPT3, LPT4 đều tương tự. Tuy nhiên trong một số trường
hợp, địa chỉ của cổng LPT có thể khác do quá trình khởi động của BIOS. BIOS sẽ
lưu trữ các địa chỉ này như sau:

Địa chỉ Chức năng


0000h:0408h Địa chỉ cơ sở của LPT1
0000h:040Ah Địa chỉ cơ sở của LPT2
0000h:040Ch Địa chỉ cơ sở của LPT3

Định dạng các thanh ghi như sau:


Thanh ghi dữ liệu (hai chiều):

Thứ tự bít 7 6 5 4 3 2 1 0
Tín hiệu máy in D7 D6 D5 D4 D3 D2 D1 D0
Chân số 9 8 7 6 5 4 3 2
Thanh ghi trạng thái máy in (chỉ đọc):

Thứ tự bít 7 6 5 4 3 2 1 0
PAPER
Tín hiệu máy in BUSY ACK SELECT ERROR IRQ X X
EMPTY
Chân số 11 10 12 13 15 - - -

Thanh ghi điều khiển máy in:

Thứ tự bít 7 6 5 4 3 2 1 0
IRQ SELEC
Tín hiệu máy in X X DIR INIT
Enable TIN AUTOFEED STROBE
Chân số - - - - 17 16 14 1

X: không sử dụng
IRQ Enable: yêu cầu ngắt cứng; 1 = cho phép; 0 = không cho phép
Chú ý rằng chân BUSY được nối với cổng đảo trước khi đưa vào thanh ghi
trạng thái, các bit SELECTIN , AUTOFEED và STROBE được đưa qua cổng đảo
trước khi đưa ra các chân của cổng máy in.
Thông thường tốc độ xử lý dữ liệu của các thiết bị ngoại vi như máy in chậm
hơn PC nhiều nên các đường ACK , BUSY và STR được sử dụng cho kỹ thuật bắt
tay. Khởi đầu, PC đặt dữ liệu lên bus sau đó kích hoạt đường STR xuống mức thấp
để thông tin cho máy in biết rằng dữ liệu đã ổn định trên bus. Khi máy in xử lý
xong dữ liệu, nó sẽ trả lại tín hiệu ACK xuống mức thấp để ghi nhận. PC đợi cho
đến khi đường BUSY từ máy in xuống thấp (máy in không bận) thì sẽ đưa tiếp dữ
liệu lên bus.
e/ Sù trao ®æi víi c¸c ®êng tÝn hiÖu
C¸c ®êng dÉn tÝn hiÖu cña cæng m¸y in ®îc s¾p xÕp
thµnh 3 thanh ghi: Thanh ghi d÷ liÖu, thanh ghi tr¹ng th¸i vµ
thanh ghi ®iÒu khiÓn. Th«ng qua 3 thanh ghi nµy cho phÐp trao
®æi th«ng tin gi÷a m«i trêng ngoµi vµ bé nhí m¸y tÝnh.
- §Þa chØ thanh ghi d÷ liÖu víi ®Þa chØ c¬ b¶n cña cæng
m¸y in 378h.
- §Þa chØ thanh ghi tr¹ng th¸i lµ 379h.
- §Þa chØ thanh ghi ®iÒu khiÓn lµ 37Ah.
Muèn truy xuÊt d÷ liÖu qua cæng m¸y in th× ta ph¶i biÕt ®îc
®Þa chØ c¬ b¶n cña c¸c thanh ghi d÷ liÖu gäi lµ ®Þa chØ c¬ b¶n
cña cæng m¸y in.
§Þa chØ c¬ b¶n cña cæng m¸y in LPT1 lµ 378h ®Þa chØ c¬
b¶n cña cæng m¸y in LPT2 lµ 278h.
f/ ChuÈn giao diÖn song song qua IEEE 1284 LPT:
ChuÈn nµy qui ®Þnh giao diÖn song song gia m¸y tÝnh PC vµ
thiết bÞ ngo¹i vi vÒ c¸c vÊn ®Ò sau:
- N¨m chÕ ®é truyÒn d÷ liÖu.
- Ph¬ng ph¸p nhËn biÕt vµ tho¶ thuËn chÕ ®é truyÒn .
- Giao diÖn vËt lý .
- Giao diÖn ®iÖn.
ChuÈn IEEE quy ®Þnh 5 chÕ ®o truyÒn tuú theo híng vµo,
ra hoÆc hai chiÒu:
- ChØ truyÒn ra: Hay cßn gäi lµ chÕ ®é t¬ng thÝch
(Centronics). §©y lµ chÕ ®é giao tiÕp song song c¬ b¶n .
- ChØ truyÒn vµo: ë tr¹ng th¸i nµy cã thÓ truyÒn mét trong
hai chÕ ®é:
+ ChÕ ®é Nibble: ChÕ ®é nµy truyÒn song song 4 bit b»ng
c¸c ®êng tÝn hiÖu tr¹ng th¸i .
+ ChÕ ®é Byte: ChÕ ®é nµy truyÒn song song 8 bit qua ®-
êng d÷ liÖu. Giao diÖn song song cña chÕ ®é nµy cßn ®îc goi lµ
cæng hai chiÒu.
- TruyÒn hai chiÒu: Bao gåm hai chÕ ®é lµ EPP (Enhanced
Parallel Port) vµ ECP (Extended Capability Port).
+ ChÕ ®é EPP cßn ®¬c gäi lµ cæng song song c¶i tiÕn ,®îc
c¸c thiÕt bÞ kh¸c m¸y in sö dông .
+ ChÕ ®é ECP cßn ®îc goi lµ cæng cã kh¶ n¨ng më réng, ®îc
c¸c m¸y in vµ m¸y quÐt thÕ hÖ míi sö dông.
g. Kết luận
Cổng LPT (paralell port) là cổng song song dễ sử dụng. Trong 25 chân tín
hiệu, cổng có 8 chân dữ liệu, 4 chân điều khiển, 4 chân trạng thái nên việc xuất
nhập dữ liệu qua cổng trở nên dễ dàng. Chính vì vậy, nó có thể sử dụng cả cho
những người dùng không chuyên nghiệp.
Tuy nhiên, tốc độ truyền của cổng không cao và khoảng cách truyền không
lớn. Nên cổng chỉ có thể giao tiếp với các thiết bị ngoại vi ở gần.
Muốn nhập/xuất dữ liệu

1.4. Kỹ thuật lập trình ghép nối.


- Ngôn ngữ lập trình C là một ngôn ngữ mệnh lệnh được phát triển từ
đầu thập niên 1970 bởi Ken Thompson và Dennis Ritchie.Từ đó,ngôn ngữ này đã
lan rộng ra nhiều hệ điều hành khác và trở thành một những ngôn ngữ phổ dụng
nhất. C là ngôn ngữ rất có hiệu quả và được ưa chuộng nhất để viết các phần mềm
hệ thống,mặc dù nó cũng được dung cho việc viết cac ứng dụng. Ngoài ra, C cũng
thường được dung làm phương tiện giảng dạy trong khoa học máy tính mặc dù
ngôn ngữ này không được thiết kế dành cho người nhập môn.
- C là một ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần giống phần
cứng và nó giống ngôn ngữ Assembler hơn hầu hết các ngôn ngữ bậc cao.C đôi khi
được đánh giá như là “có khả năng di động”, cho thấy sự khác nhau quan trọng
giữa nó và ngôn ngữ bậc thấp như la Assembler, đó là việc mã C có thể được dich
và thi hành trong hầu hết các máy tính, hơn hẳn các ngôn ngữ hiện tại trong khi đó
Assembler chỉ có thể chạy trong một số máy tính đặc biệt. Vì vậy C được xem là
ngôn ngữ bậc trung.
- C đã được tạo ra với một mục tiêu là làm cho nó thuận tiện để viết các
chương trình lớn với số lỗi ít hơn trong mẫu hình lập trình thủ tục mà lại không đặt
gánh nặng lên vai người viết ra trình dịch C, là những người bề bộn với các đặc tả
phức tạp của ngôn ngữ.
- C có thêm những chức năng sau:
+ Một ngôn ngữ cốt lõi đơn giản, với các chức năng quan trọng: xử lý hàm
hay việc xử lý tập tin sẽ được cung cấp bởi các bộ thư viện các thủ tục.
+ Tập trung trên mẫu hình lập trình thủ tục, với các phương tiện lập trình theo
kiểu cấu trúc.
+ Một hệ thống kiểu đơn giản nhằm loại bỏ nhiều phép toán không có ý nghĩa
thực dụng.
+ Dùng ngôn ngữ tiền xử lý, tức là các câu lệnh tiền xử lý C, cho các nhiệm
vụ như là định nghĩa các macro và hàm chứa nhiều tập tin mã nguồn (bằng cách
dùng câu lệnh tiền xử lý dạng #include chẳng hạn).
+ Mức thấp của ngôn ngữ cho phép dùng tới bộ nhớ máy tính qua việc xử
dụng kiểu dữ liệu pointer.
+ Số lượng từ khóa rất nhỏ gọn.
+ Các tham số đưa vào các hàm bằng giá trị, không bằng địa chỉ.
+ Hàm các con trỏ cho phép hình thành một nền tảng ban đầu cho tính đóng
và tính đa hình.
+ Hổ trợ các bản ghi hay các kiểu dữ liệu kết hợp do người dùng từ khóa định
nghĩa struct cho phép các dữ liệu liên hệ nhau có thể được tập hợp lại và được điều
chỉnh như là toàn bộ.
- Một số chức năng khác mà C không có (hay còn thiếu) nhưng có thể tìm
thấy ở các ngôn ngữ khác bao gồm:
+ An toàn kiểu.
+ Tự động Thu dọn rác.
+ Các lớp hay các đối tượng cùng với các ứng xử của chúng (xem thêm
OOP).
+ Các hàm lồng nhau.
+ Lập trình tiêu bản hay Lập trình phổ dụng.
+ Quá tải và Quá tải toán tử.
+ Các hỗ trợ cho đa luồng, đa nhiệm và mạng.
- Mặc dù C còn thiếu nhiều chức năng hữu ích nhưng lý do quan trọng để C
được chấp nhận vì nó cho phép các trình dịch mới được tạo ra một cách nhanh
chóng trên các nền tảng mới và vì nó cho phép người lập trình dễ kiểm soát được
những gì mà chưong trình (do họ viết) thực thi. Đây là điểm thường làm cho mã C
chạy hiệu quả hơn các ngôn ngữ khác. Thường thì chỉ có ngôn ngữ ASM chỉnh
bằng tay chạy nhanh hơn (ngôn ngữ C), bởi vì ASM kiểm soát đưọc toàn bộ máy.
Mặc dù vậy, với sự phát triển các trình dịch C, và với sự phức tạp của các CPU
hiện đại, C đã dần thu nhỏ khoảng cách khác biệt về vận tốc này.
Một lý do nữa cho việc C được xử dụng rộng rãi và hiệu quả là do các trình
dịch, các thư viện và các phần mềm thông dịch của các ngôn ngữ bậc cao khác lại
thường được tạo nên từ C
1.5. Xuất nhập bằng ngôn ngữ C.
Ngôn ngữ lập trình C hỗ trợ một số hàm làm nhiệm vụ xuất, nhập dữ liệu
với các thiết bị ngoại vi.
Turbo C cung cấp hàm xuất dữ liệu qua cổng LPT là:
Outport(0x378,dữ liệu)
Và hàm nhập dữ liệu là:
Inport(0x378,dữ liệu)
Các hàm import và outport nằm trong thư viện <dos.h>
- Int inport (int portid).
- Unsigned char inportb (int portid).
- Void outport (int portid, int value).
- Void outportb (int portid, unsigned char value).
Như vậy, để xuất nhập dữ liệu qua cổng LPT1 thì ta cần định địa chỉ của
portid là 378h ứng với thanh ghi dữ liệu, 379h ứng với thanh ghi trạng thái (chỉ
dọc), 37Ah ứng với thanh ghi điều khiển.
Các giá trị nhập vào được chuyển thành các giá trị nhị phân và được truyền ra
các chân ứng với bít nhị phân tương ứng…

1.6. Ứng dụng


- PhÇn cøng ®îc x©y dùng trªn c¬ së giao tiÕp qua LPT nªn
tèc ®é truyÒn d÷ liÖu còng rÊt cao. Víi viÖc giao tiÕp víi LPT nªn
viÖc l¾p r¸p phÇn cøng còng dÔ dµng vµ thuËn tiÖn.
- Ngoµi viÖc dïng ®Ó kÕt nèi víi thiÕt bÞ ngo¹i vi, cæng LPT
cßn cã rÊt nhiÒu tÝnh n¨ng kh¸c. Mét trong nh÷ng tÝnh n¨ng ®ã
lµ thÓ dïng cæng LPT ®Ó kÕt nèi 2 PC víi nhau.
D÷ liÖu cã thÓ trao ®æi trùc tiÕp gi÷a 2 PC qua c¸c cæng
song song víi nhau. Muèn vËy, c¸c ®êng ®iÒu khiÓn bªn nµy ph¶i
®îc kÕt nèi víi c¸c ®êng tr¹ng th¸i bªn kia.
Tài liệu tham khảo:
1. Lập trình ghép nối máy tính trong windows của - Ngô Diên Tập
(Nhà xuất bản khoa học và kỹ thuật )

2. Cấu trúc máy tính của - Trần Quang Vinh


(Nhà xuất bản ĐHQG Hà Nội)
3. Kỹ thuật ghép nối máy tính – Ngô Diên Tập

4. Đo lường và điều khiển máy tính của - Ngô Diên Tập

6. Một số trang web về điện tử - viễn thông.


http://dientuvietnam.net
http://www.diendandientu.com
http://dtvt.org
NHẬN XÉT CỦA GIẢNG VIÊN:
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
…………………………….

You might also like