1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình ghép nối và điều khiển qua cổng LPT

26 1K 2
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập trình ghép nối & điều khiển qua cổng LPT
Tác giả Ngô Văn Thóc, Phạm Văn Tuyên, Tống Xuân Tuyền, Nguyễn Tiến Thương, Nguyễn Văn Tường
Trường học Đại học Thái Nguyên
Chuyên ngành Kỹ thuật lập trình chuyên dụng cho ĐTVT
Thể loại Tiểu luận
Năm xuất bản 2011
Thành phố Thái Nguyên
Định dạng
Số trang 26
Dung lượng 4,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình ghép nối và điều khiển qua cổng LPT

Trang 1

O~

KHOA CONG NGHE THONG TIN

DAI HOC THAI NGUYEN

Trang 2

KY THUAT LAP TRINH CHUYEN

DỤNG CHO ĐTVT

Chủ đề:Lập trình ghép nối & điều

khiến qua cong LPT

Thanh vién:

1 Ngô Văn Thóc

2 Phạm Văn Tuyên

3 Tống Xuân Tuyền

4 Nguyễn Tiến Thương

5 Nguyễn Văn Tường

Trang 4

LOI MO BAU:

Ngày nay với sự phát triển của khoa học kỹ thuật và công nghệ trên thế giới ở nhiều lĩnh vực khác nhau đang diễn ra Đặc biệt sự phát triển như vũ bảo của khoa học máy tính là một công cụ hỗ trợ đắc lực

và quan trọng trong các ngành Công nghệ thông tin và tự động hoá Nó

giúp con người lưu trữ, xử lý thông tin, tính toán, điều khiển Hơn thế nữa nó có thể nối kết với nhau tạo thành một mạng máy tính toàn cầu

để chia sẻ thông tin giữa các vùng trên thế giới

Và đúng như vậy, việc lập trình cho phần cứng và chip điều khiển

là điều không thể phủ nhận được, và tầm quan trọng của nó là rất lớn Và việc ghép nối với máy tính là điều bắt buộc,vì người ta dùng ghép nối để mở rộng cấu hình và khả năng ứng dụng của máy tính vào thực tế.VD:Có thể xây dựng các hệ đo lường hoàn toàn tự động có thể thực hiện việc giao tiếp từ 2 máy tính từ Châu lục này sang Châu lục

khác

Việc ghép nối máy tính với các thiết bị ngoại vi có nhiều cách lựa

chọn:

-Ghép nối máy in hay ghép nối cổng song song

-Ghép nối qua cổng RS 232 hay là cổng nối tiếp

-Ghép nối qua khe mở rộng trên bo mạch chủ

-Ghép nối qua cổng USB

Mỗi khả năng trên đều có ưu và nhược điểm, vì vậy tùy thuộc vào khả mục đích mà ta dùng cách nào Tuy nhiên ở đây chúng ta sẽ nghiên cứu bày về cách ghép nối song song Ứng dụng việc lập trình C trên dos để thực hiện giao tiếp Vì C là ngôn ngữ lập trình mạnh,gần gũi với

phần cứng và khả năng ứng dụng cao

Giới thiệu chung về cổng LPT:

Trang 5

A Mục đích sử dụng:

Trong quá trình lao động sản xuất, máy tính đã được sử dụng với

rất nhiều những mục đích khác nhau (soạn thảo văn bản, tính toán,

thiết kết, giả lập hoạt động của một số vấn đề thực tế, đo đạc, điều khiển các thiết bị ) Máy tính có ứng dụng nhiều như vậy do nó có thể ghép nối với các thiết bị ngoại vi (máy in, modem, một số mạch điều khiển ) Các thiết bị ngoại có thể kết nối với máy tính thông qua cổng nối tiếp (Serial port), cổng song song (Paralell port), cổng RS-232, cổng COM, cổng USB.ta sẽ nghiên cứu quá trình xuất nhập qua cổng song song (cổng LPT)

Cổng song song có 2 loại:

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

Đây là hình ảnh về cổng LPT

Trang 6

Ghép nồi song song ra công LPT

Cổng LPT 25 chân là loại cổng song song gồm có 4 đường điều khiển, 5 đường trạng thái và 8 đường dữ liệu Các chân trong cổng như

Trang 7

(chân số 25 chân) (ố cắm 36 chân)

Strobe

D0 D1

D2 D3 D4 D5 D6

Chức năng của các đường dẫn tín hiệu:

Strobe (1): Với một mức logic thấp ở chân này, máy tính thông

báo cho máy in biết có một byte đang sẵn sàng trên các đường dẫn tín

hiệu để được truyền

D0 đến D7: Các đường dẫn dữ liệu

Acknowledge: với một mức logic thấp ở chân này, máy in thông báo cho máy tính biết là đã nhận được kí tự vừa gửi và có thể tiếp tục nhận

Busy (bận - 11): máy in gửi đến chân này mức logic cao trong khi đang đón nhận hoặc in ra dữ liệu để thông báo cho máy tính biết là các

bộ đệm trong máy tính biết là các bộ đệm trong máy tính đã bị đầy hoặc

may in trong tran thai Off-line

Paper empty (hết giấy - 12): Mức cao ở chân này có nghĩa là

giấy đã dùng hết

Select (13): Một mức cao ở chân này, có nghĩa là máy in đang

trong trạng thái kích hoạt (On-line)

Trang 8

Auto Linefeed (tự nạp dòng): Có khi còn gọi là Auto Feed Bằng

một mức thấp ở chân này máy tính PC nhắc máy in tự động nạp một

dòng mới mỗi khi kết thúc một dòng

Error (có lỗi): Bằng một mức thấp ở chân này, máy in thông báo cho máy tính là đã xuất hiện một lỗi, chẳng hạn kẹt giấy hoặc máy in

đang trong trang thai Off-Line

Reset (dat lại): Bằng một mức thấp ở chân này, máy in được đặt lại trạng thái được xác định lúc ban đầu

Select Input: bằng một mức thấp ở chân này, máy in được lựa chọn bởi máy tính

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ố

Qua cách mô tả chức năng của từng tín hiệu riêng lễ ta có thể nhận thấy các đương dẫn dữ liệu có thể chia thành 3 nhóm:

- Các đường dẫn tín hiệu, xuất ra từ máy tính PC và điều khiển

máy tính, được gọi là các đường dẫn điều khiển

- Các đường dẫn tín hiệu, đưa các thông tin thông báo ngược lại từ

máy in về máy tính, được gọi là các đường dẫn trạng thái

- Đường dẫn dữ liệu, truyền các bit riêng lẽ của các ký tự cần in

Từ cách mô tả các tín hiệu và mức tín hiệu ta có thể nhận thấy là:

các tín hiệu Acknowledge, Auto Linefeed, Error, Reset và Select Input

kích hoạt ở mức thấp Thông qua chức năng của các chân này ta cũng hình dung được điều khiển cổng máy in

Đáng chú ý là 8 đường dẫn song song đều được dùng để chuyển

dữ liệu từ máy tính sang máy in Trong những trường hợp này, khi chuyển sang các ứng dụng để thực hiện nhiệm vụ đo lường ta phải chuyển dữ liệu từ mạch ngọa vi vào máy tính để thu thập và xử lý

Vì vậy ta phải tận dụng một trong năm đường dẫn theo hướng ngược lại, nghĩa là từ bên ngoài về máy tính để truyền số liệu đo lường Dưới đây đề cập chỉ tiết hơn đến các đặc tính một hướng và hai hướng

của các đường dẫn này

Để có thể ghép nối các thiết bị ngoại vi, các mạch điện ứng dụng trong đo lường và điều khiển với cổng song song ta phải tìm hiểu cách

Trang 9

- Thanh ghi dữ liệu

- Thanh ghi trang thai

= Thanh ghi diéu khién

Status Register Data Register

5S1|5z|s3|s4|%s|S6 7) (0 09 |D5|04 |B3 | 02 | D1 0o)

*, Đị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 nghi 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ủa cổng LPT2 là 278h, do đó địa chỉ của thanh ghi như

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:

Trang 10

0000h:0408h Địa chỉ cơ sở của

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

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

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 srR 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

* thiét lap dia chi trong bios

Có thể thiết lập được dia chi trong bios thông qua hai cách : Cách 1 : thiết lập thủ công trong mainboad

Khi bật máy tính, BIOS kiểm tra kế tiếp nhau các địa chỉ được ghi

trong bảng và khẳng định xem trên máy có trang bị một vài cổng song

Trang 11

unsigned int far *ptraddr; /* Pointer to location of Port Addresses */

unsigned int address; /* Address of Port */

*ptraddr++;

}

*,Ky 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

1

Trang 12

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

+ 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 znciude 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 poiner

+ 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 sruct 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),

Trang 13

+ 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

* 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

Sau đây là ví dụ : Hẹn giờ bật tắt bóng đèn 220V ~ 40W

13

Trang 14

Bộ đêm C1815 R470Ohm

a) Transistor C1815

Hinh dang va ki hiéu:

Trang 15

từ máy tính qua cổng USB)

b) Relay 5V DC

Trang 16

Với 1 và 2 là hai chân điều khiển, chân 1 nối với cực C của

C1815, chân 2 nối lên nguồn 5V DC Chân 3 và 4 thường trực nối nhau

qua khóa K Chân 3 và 5 được nối vào mạch bóng đèn 220V 40W

Điện thế điều khiển Relay vào chân 1 và 2 là 5V DC Relay đóng

ngắt tối đa dòng 25A - 250V AC (28V DC) qua chân 3 và 5

c) Trở 470Q

Ngày đăng: 02/03/2013, 16:56

HÌNH ẢNH LIÊN QUAN

Hình  trên  giới  thiệu  loại  ổ  cắm  25  chân  và  cách  bố  trí  các  chân - Lập trình ghép nối và điều khiển qua cổng LPT
nh trên giới thiệu loại ổ cắm 25 chân và cách bố trí các chân (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm