BÀI TẬP NHÓM LẬP TRÌNH GHÉP NỐI ĐIỀU KHIỂN QUA CỔNG LPT

26 490 0
BÀI TẬP NHÓM LẬP TRÌNH GHÉP NỐI ĐIỀU KHIỂN QUA CỔNG LPT

Đ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

KHOA CÔNG NGH THÔNG TINỆ Đ I H C THÁI NGUYÊNẠ Ọ Ọ BÀI T P NHÓMẬ Thái nguyên 2-2011 K THU T L P TRÌNH CHUYÊNỸ Ậ Ậ D NG CHO ĐTVTỤ Ch đ :L p trình ghép n i & đi uủ ề ậ ố ề khi n qua c ng LPTể ổ Thành 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ễ ườ 2 M c l c:ụ ụ Tiêu đ Trangề L i m đ u …………………………………………………….ờ ở ầ 4 Gi i thi u chung v LPT ……………………………………………… ớ ệ ề 4 Phân tích thi t k ……………………………………………………….ế ế 14 1. S đ kh i …………………………………………………… ơ ồ ố 14 2. Các linh ki n s d ng trong m ch ………………………….ệ ử ụ ạ 14 3. M ch nguyên lýạ 16 4. L u đư ồ 17 5. L p trình cài đ tậ ặ 19 6. K t qu ế ả 24 K t lu n và h ng phát tri nế ậ ướ ể 24 Tài li u tham kh o 25ệ ả 3 L I M Đ U:Ờ Ở Ầ 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:ớ ệ ề ổ 4 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).ổ B. C u trúc c ng song song:ấ ổ 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.ế ạ Đây là hình nh v c ng LPTả ề ổ 5 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ể ườ ạ ườ ữ ệ ổ ư sau: Hình trên gi i thi u lo i c m 25 chân và cách b trí các chânớ ệ ạ ổ ắ ố 6 Tín hi u các chân trên c m 25 và 36 chân đ trong tr ng h p c nệ ở ổ ắ ể ườ ợ ầ thi t có th so sánhế ể 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ộ ệ ế ộ ệ ị ầ ặ máy in trong tr n thái 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)ạ ạ 7 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 tr ng thái Off-Line.ạ Reset (đ t 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 chi 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ườ ề ể ớ ổ ả ể 8 trao đ i v i các thanh ghi thông qua cách s p x p và đ a ch các thanhổ ớ ắ ế ị ỉ ghi cũng nh ph n m m.ư ầ ề Các đ ng d n c a c ng song song đ c n i v i ba thanh ghi 8bit khácườ ẫ ủ ổ ượ ố ớ nhau: - Thanh ghi d li uữ ệ - Thanh ghi tr ng tháiạ - Thanh ghi đi u khi nề ể *. Đ 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ị ỉ ủ ổ ị ỉ ủ ư 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:ủ ẽ ư ữ ị ỉ ư 9 Đ 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 Tín hi u máy inệ BUSY ACK PAPER EMPTY SELECT ERROR IRQ X X 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 Tín hi u máy inệ X X DIR IRQ Enabl e SELECTIN INIT 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. * . thi t l p đ a ch trong biosế ậ ị ỉ Có th thi t l p đ c đ a ch 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ả ẳ ị ị ộ ổ 10 [...]... được nối với cổng dữ liệu của LPT qua điện trở 470Ω Cực C được nối vào một chân điều khiển của Relay (Chân số 1) Cực E nối Mass (Mass và nguồn 5V DC được lấy trực tiếp từ máy tính qua cổng USB) b) Relay 5V DC 15 Hình dạng Kí hiệu Sơ đồ chân thực tế 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. .. Luận Và Hướng Phát Triển 25 Cổng LPT (line printer 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... address = *ptraddr; if (address == 0) printf("No port found for LPT% d ",a+1); else printf("Address assigned to LPT% d is %Xh ",a+1,address); *ptraddr++; } } *.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... 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. .. cổng chỉ có thể giao tiếp với các thiết bị ngoại vi ở gần Hướng phát triển bài tập: Lập trình hẹn giờ cho 8 bóng đèn 220V 40W riêng lẻ Do thời gian chuẩn bị không nhiều và khả năng có hạn nên nhóm xin được nghiên cứu phát triển sau Tài Liệu Tham Khảo 1 http://www.alldatasheet.com 2 http://dientuvietnam.net 3 Giáo trình Lập trình C - Khoa CNTT – Thái Nguyên 4 Mạng Internet 26 ...song Các cổng song song được BIOS tìm thấy sẽ được sắp xếp theo các tên mà DOS đã chỉ định là: LPT1 , LPT2 … Cách 2 : thiết lập bằng ngôn ngữ lập trình Ví dụ: đọc địa chỉ của printer port qua BIOS #include #include void main(void) { unsigned int far *ptraddr; /* Pointer to location of Port Addresses... Đ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ở 470Ω 16 Tác dụng: phân cực cho transistor C1815 và hạn chế dòng điện đi vào LPT 3 Mạch nguyên lý:  Giải thích hoạt động của mạch: Như sơ đồ nguyên lý trên ta thấy: Khi dữ liệu được đưa ra chân D0 – D7 (Lập trình xuất dữ liệu ra tất cả các chân cùng một lúc), dòng điện từ LPT sẽ... 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), 12 + 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... 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 - 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... 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ì . 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. 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 ề ổ 5 C ng LPT 25 chân là lo i c ng song song g m có 4 đ ng đi uổ ạ. 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ó

Ngày đăng: 23/10/2014, 19:50

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan