ĐỒ ÁNThiết kế bộ điều khiển động cơ điện 1 chiều sử dụng cổng nối tiếp

18 285 0
ĐỒ ÁNThiết kế bộ điều khiển động cơ điện 1 chiều sử dụng cổng nối tiế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

Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh Lêi Nãi §Çu Ngµy nay, c¸c thiÕt bÞ m¸y mãc, hÖ thèng nh»m phôc vô ®êi sèng con ngêi trong sinh ho¹t còng nh trong s¶n xuÊt ph¸t triÓn nhanh vµ ngµy cµng th«ng minh. Së dÜ cã ®îc ®iÒu ®ã lµ nhê øng dông thµnh tùu cña khoa häc kü thuËt. Mét trong v« sè nh÷ng thµnh tùu cña khoa häc kü thuËt nãi chung, cña khoa häc kü thuËt ®iÖn tö nãi riªng lµ bé vi ®iÒu khiÓn, ghÐp nèi m¸y tÝnh. Trong c¸c thiÕt bÞ ®iÖn vµ ®iÖn tö d©n dông, c¸c bé vi ®iÒu khiÓn ®iÒu khiÓn c¸c ho¹t ®éng cña ti vi, m¸y giÆt, ®Çu ®äc laser, ®iÖn tho¹i, lß vi ba...trong hÖ thèng s¶n xuÊt tù ®éng, bé vi ®iÒu khiÓn ®îc sö dông trong rô bèt, d©y truyÒn tù ®éng,...c¸c hÖ thèng cµng th«ng minh th× vai trß cña hÖ vi ®iÒu khiÓn cµng quan träng. §©y lµ nãi ®Õn vi ®iÒu khiÓn, cßn ghÐp nèi m¸y tÝnh cã nã còng cã rÊt nhiÒu øng dông cã liªn quan ®Õn vi ®iÒu khiÓn. GhÐp nèi m¸y tÝnh víi m¸y in, m¸y quÐt, m¸y ¶nh, m¸y quay phim ... qua c¸c cæng ghÐp nèi cña m¸y tÝnh. Qua häc tËp vµ nghiªn cøu chóng em ®· t×m hiÓu vÒ ®Ò tµi : Thiết kế bộ điều khiển động cơ điện 1 chiều sử dụng cổng nối tiếp . §îc sù híng dÉn tËn t×nh cña thầy: VŨ TRUNG KIÊN, cïng c¸c thÇy gi¸o kh¸c trong bé m«n, em còng ®· n¾m v÷ng ®ù¬c cÊu t¹o, nguyªn lý ho¹t ®éng, c¸ch thøc lËp tr×nh vµ øng dông cña vi ®iÒu khiÓn trong ®o lêng, tù ®éng ho¸ nh»m n©ng cao kÕt qu¶ cña ®Ò tµi em ®· chän. Do thêi gian nghiªn cøu vµ kinh nghiÖm cßn h¹n chÕ nªn kh«ng tr¸nh khái nh÷ng thiÕu sãt. V× vËy, em rÊt mong sù gãp ý chØ b¶o cña c¸c thÇy c« vµ c¸c b¹n. Chóng em xin ch©n thµnh c¶m ¬n! Hµ Néi, Ngµy 26 Th¸ng 03 N¨m 2010 Gi¸o viªn híng dÉn :Vũ Trung Kiên Nhãm sinh viªn thùc hiÖn: Nguyễn Văn Công Bùi Huy Phương Vũ Đình Tiệp Líp : §iÖn Tö 4- K9 Khoa §iÖn Tö 1 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh PhÇn I: Giíi thiÖu chung vÒ ghÐp nèi m¸y tÝnh A. Giíi thiÖu Sù ph¸t triÓn cña ghÐp nèi m¸y tÝnh ®· më réng ®¸ng kÎ c¸c lÜnh vùc øng dông cña m¸y tÝnh, ®Æc biÖt lµ ®o lêng vµ ®iÒu khiÓn. Thùc tÕ cho thÊy, trong c¸c c«ng ty xÝ nghiÖp ®· ứng dông kü thuËt ghÐp nèi rÊt nhiÒu, VÝ Dô: Nh÷ng ®iÒu khiÓn CNC, d©y truyÒn c«ng nghÖ s¶n xuÊt xi m¨ng, ®iÒu khiÓn c¸c thiÕt bÞ kh¸c nhau như nh÷ng phÇn cøng vµ ch¬ng tr×nh do ngêi sö dông viÕt, ng«n ng÷ giao tiÕp lµ: Pascal, C++, ASM, VB, VB.net...cã kh¶ n¨ng ghÐp nèi m¸y tÝnh cã ®é chÝnh x¸c cao, thêi gian thu nhËp sè liÖu ng¾n vµ quan träng lµ møc thu thËp vµ xö lý c¸c kÕt qu¶. §Ò tµi, ®o ®iÖn ¸p mét chiÒu hiÓn thÞ trªn mµn h×nh LCD vµ trªn m¸y tÝnh d¹ng ®å thÞ lµ mét ®Ò tµi t¬ng ®èi khã vµ cã nhiÒu øng dông trong ngµng ®iÖn tö vµ mé sè ngµnh kh¸c. B. Sù giao tiÕp gi÷a m¸y tÝnh vµ c¸c khèi ghÐp nèi. I. M¸y tÝnh vµ c¸c khèi ghÐp nèi. Nh chóng ta ®· biÕt cÊu tróc cña mét m¸y tÝnh ®îc chia lµm 3 phÇn chÝnh: Khèi xö lý trung t©m CPU lµm nhiÖm vô thu thËp vµ xö lý mỗi d÷ liÖu. Khèi nhí (Memory): Lu tr÷ c¸c lo¹i d÷ liÖu kh¸c nhau ®a vµo lÊy vµ lÊy ra ë CPU. Khèi vµo ra (I/O): Lµm nhiÖm vô t¬ng thÝch víi c¸c thiÕt bÞ bªn ngoµi vµ ®êng Bus trong m¸y tÝnh. Trong m¸y tÝnh hiÖn nay thêng cã c¸c thiÕt bÞ ngo¹i vi sau: Mµn H×nh, bµn phÝm, chuét, loa, m¸y in.... Víi c¸c thiÕt bÞ ngo¹i vi ®ã, m¸y tÝnh ®Òu cã khèi xö lý t¬ng øng, vÝ dô: Khèi ghÐp gi÷a bus m¸y tÝnh víi mµn h×nh lµ card mµn h×nh (VGA), khèi ghÐp gi÷a bus m¸y tÝnh víi loa lµ soundcard... th«ng thêng c¸c m¸y tÝnh thÕ hÖ hiÖn nay th× c¸c khèi ghÐp nèi cho c¸c thiÕt bÞ ngo¹i vi th«ng dông nµy ®Òu ®îc tÝch hîp trªn mét b¶n m¹ch chÝnh gäi lµ Mainboard. Tuy nhiªn m¸y tÝnh kh«ng chỉ dõng l¹i ë ghÐp nèi víi m¸y in, mµn h×nh, loa,..mµ nã cßn ®îc øng dông v« cïng réng r·i trong nhiÒu lÜnh vùc. Nhê c¸c cæng ghÐp nèi RS232, LPT, cæng USB, c¸c khe c¨m më réng...mµ chóng ta cã thÓ t¹o ra c¸c phÇn cứng cã thÓ ghÐp nèi v¬i m¸y tÝnh díi sù ®iÒu khiÓn cña c¸c phần mÒm. Néi dung cña m«n häc nµy lµ chóng ta ®i vµo nghiªn cöu c¸c cæng, các khe c¾m më réng cña m¸y tÝnh, ®ể tõ ®ã ta cã thÓ chÕ t¹o ra c¸c khèi ghÐp nèi phôc vô trong nhiÒu lÜnh vùc trong c«ng nghiÖp nh lµ đo lêng vµ ®iÒu khiÓn. Khoa §iÖn Tö 2 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh 1. C¸c d¹ng tin trao ®æi cña m¸y tÝnh a. D¹ng sè (Digital) §©y lµ mét chuçi c¸c bit 0 vµ 1 ®îc biÓu diÔn theo hÖ ®Õm nh: nhị ph©n, hÖ thËp lôc ph©n... C¸c tÝn hiÖu nµy cã thÎ ë d¹ng nèi tiÕp hoÆc song song vµ møc cã thÎ lµ RS hoÆc TTL... b. D¹ng ch÷ (Text) §©y biÓu diÔn cña c¸c ký tù díi d¹ng sè, trªn thÕ giíi hiÖn nay th«ng dông lµ biÓu diÔn c¸c ký theo m· ASCCII. Theo c¸ch nµy th× c¸c ký tù ®îc biÓu diÔn b»ng c¸c chÝnh lµ đọc bit 0,1 trªn hÖ thËp lôc ph©n, vÝ dô: M· ký tù A lµ 41h. D¹ng tÝn hiÖu nµy cã thÓ coi lµ t×n hiÖu sè. c. D¹ng t¬ng tù (Analog) §©y lµ c¸c dßng ®iÖn hay ®i ện ¸p biÕn ®æi liªn tôc theo thêi gian. §iÓn h×nh lµ ®¹i lîng vËt lý thu thËp tõ c¸c bé c¶m biÕn (sensor). Muèn xö lý ®îc c¸c tÝn hiÖu nµy, m¸y tÝnh (khèi ghÐp nèi) ph¶i chuyÓn nã sang d¹ng sè b»ng c¸c bé biÕn ®æi ADC. d. D¹ng ©m tÇn §©y lµ d¹ng tæng hîp cña nhiÒu tÝn hiÖu t¬ng tù v¬i tÝn hiÖu sè với c¸c biªn ®é kh¸c nhau. Còng cã thÎ coi ®ây lµ mét d¹ng cña tÝn hiÖu Analog. 2. C¸c d¹ng th«ng tin trao ®æi cña m¸y tÝnh Trong qu¸ tr×nh göi tin tõ c¸c thiÕt bÞ ngo¹i vi vµo m¸y tÝnh cã c¸c d¹ng tÝn hiÖu sau: Tin vÒ tr¹ng th¸i cña thiÕt bÞ ngo¹i vi Tin m¹ng d÷ liÖu cÇn trao ®æi. Trong qu¸ tr×nh ngîc l¹i. Tin vÒ d÷ liÖu trao ®æi. Tin mang lÖnh ®iÒu khiÓn 3. C¸c ph¬ng thøc trao ®æi tin cña m¸y tÝnh Trao ®æi theo ch¬ng tr×nh (Assembly, Pascal, C++, VB, VB.net...) Trao ®æi trùc tiÕp víi c¸c khèi nhí (DMA – Direct Memory Access) a. ChÕ ®é trao ®æi tin theo ch¬ng tr×nh §©y lµ chÕ ®é trao ®æi tin trong ®ã m¸y tÝnh trao ®æi víi c¸c thiÕt bÞ ngo¹i vi b»ng c¸c lÖnh vµo ra. LÖnh dÞch chuyÓn d÷ liÖu gi÷a c¸c thanh ghi. Cô thÓ: Trong ng«n ng÷ Asembly c¸c lÖnh ®îc lÖnh dµnh cho trao ®æi IN, OUT, MOV. Trong ng«n ng÷ Pascal: §äc mét byte d÷ liÖu: X:=PORT[®Þa chØ] §a mét byte d÷ liÖu: PORT[®Þa chØ]: =y; §äc mét byte d÷ liÖu: OUTPORT(®Þa chØ, y) Trong chÕ ®é trao ®æi theo ch¬ng tr×nh cã 3 ph¬ng ph¸p: Khoa §iÖn Tö 3 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh • Ph¬ng ph¸p trao ®æi ®ång bé. ë ph¬ng ph¸p nµy, m¸y tÝnh sÏ tiÕn hµnh trao ®æi tin ngay v ới thiÕt bÞ ngoµi khi khëi ®éng xong mµ kh«ng cÇn biÕt tr¹ng th¸i cña tr¹ng th¸i ®êng d©y còng nh thiÕt bÞ ngoµi. §Ó cã thÓ thùc hiÖn ®îc ph¬ng ph¸p nµy th× yªu cÇu lµ: + Tèc ®é trao ®æi tin cña thiÕt bÞ ngoµi lín h¬n tèc ®é trao ®æi tin cña m¸y tÝnh. + ThiÕt bÞ ngoµi cÇn ph¶i ë tr¹ng th¸i s½n sµng ngay khi m¸y tÝnh khëi ®éng xong. + Ph¬ng ph¸p nµy cã u ®iÓm lµ tèc ®é trao ®æi tin nhanh nhng cã nhîc ®iÓm lµ dÔ bÞ mÊt tin khi thiÕt bÞ ngoµi cha ë tr¹ng th¸i s·n sµng. • Ph¬ng ph¸p kh«ng ®ång bé Trong ph¬ng ph¸p nµy, tríc khi trao ®æi tin, m¸y tÝnh tiÕn hµnh ®äc, kiÓm tra tr¹ng th¸i cña thiÕt bÞ ngoµi, nªn thiÕt bÞ ngoµi ®· ë tr¹ng th¸i s½n sµng th× tiÕn hµnh trao ®æi tin cßn ngîc l¹i sÏ chê. Ngoµi ra trong qu¸ tr×nh trao ®æi, nÕu tin bÞ lçi th× yªu cầu truyÒn l¹i. Ph¬ng ph¸p nµy cã ®é tin cËy cao nhng tèc ®é chËm h¬n ph¬ng ph¸p ®ång bé. • Ph¬ng ph¸p trao ®æi ng¾t ch¬ng tr×nh Ph¬ng ph¸p nµy lîi dông ®îc u ®iÓm, kh¾c phôc ®îc nhîc ®iÓm cña hai ph¬ng ph¸p trªn: + Khi thiÕt bÞ ngoµi cã yªu cÇu trao ®æi sÏ göi tin tÝn hiÖu theo yªu cÇu (ng¾t) ®Õn m¸y tÝnh. + M¸y tÝnh dõng ch¬ng tr×nh ®ang phôc vô (nÕu thiÕt bÞ ngoµi ®ang yªu cÇu cã møc yªu tiªn cao h¬n) vµ nhí l¹i dõng ®ång thêi göi tÝn hiÖu x¸c nhËn, yªu cÇu thiÕt bÞ ngoµi trao ®æi tin. + M¸y tÝnh vµ thiÕt bÞ ngoµi trao ®æi tin theo ch¬ng tr×nh (gäi lµ ch¬ng tr×nh con phôc vô ng¾t). + KÕt thóc qu¸ tr×nh trao ®æi tin, m¸y tÝnh trë l¹i ch¬ng tr×nh tõ ®iÓm dõng. + Ph¬ng ph¸p trao ®æi theo ng¾n ch¬ng tr×nh kh¾c phôc ®îc nhîc ®iÓm cña hai ph¬ng ph¸p ®ång bé vµ kh«ng ®ång bé, nã cho phÐp tËn dông tèi ®a thêi gian lµm viÖc cña m¸y tÝnh. b. Trao ®æi MDA. §©y lµ ph¬ng thøc trao ®æi trùc tiÕp víi khèi nhí cña m¸y tÝnh mµ kh«ng th«ng qua CPU. Khi ®ã CPU sÏ ë tr¹ng th¸i treo nhêng quyÒn ®iÒu khiÓn bï cho ghÐp nèi. ThiÕt bÞ ngoµi vµ khèi nhí cña m¸y tÝnh sÏ tiÕn hµnh trao ®æi (®äc/ghi d÷ liÖu). Sau khi qu¸ tr×nh kÕt thóc sÏ nhêng l¹i quyÒn ®iÒu khiÓn Bus cho CPU. Khoa §iÖn Tö 4 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh PhÇn II: ghÐp nèi truyÒn tin nèi tiÕp I. Kh¸i NiÖm VÒ TruyÒn Tin Nèi TiÕp . 1. Kh¸i niÖm TruyÒn tin nèi tiÕp lµ ph¬ng thøc truyÒn tin trong ®ã c¸c bit mang th«ng tin ®îc truyÒn kÕ tiÕp nhau trªn 1 ®êng dÉn vËt lý . T¹i 1 thêi ®iÓm phÝa bªn truyÒn vµ bªn nhËn chØ cã thÓ truyÒn ( hoÆc nhËn) 1 bit . ¦u ®iÓm cña truyÒn tin nèi tiÕp : + TiÕt kiÖm ®êng dÉn + Cã kh¶ n¨ng truyÒn ®i xa Nhîc ®iÓm + Tèc ®é chËm h¬n c¸c thiÕt bÞ thêng ph¶i cã khèi chuyÓn ®æi nèi tiÕp song song, song song nèi tiÕp khi sö dông ph¬ng ph¸p nµy ®Ó trao ®æi tin . 2. C¸c ph¬ng thøc truyÒn tin nèi tiÕp Cã 3 ph¬ng thøc truyÒn tin nèi tiÕp : + Ph¬ng thøc ®ång bé : C¸c byte chøa c¸c bit th«ng tin ®îc truyÒn liªn tiÕp trªn ®êng truyÒn vµ chØ ®îc ng¨n c¸ch ( ph©n biÖt ) nhau b»ng bit ®ång bé khung (SYN). H×nh 1 + Ph¬ng thøc kh«ng ®ång bé : C¸c byte chøa c¸c bit th«ng tin ®îc chøa trong 1 khung. 1 khung ®îc b¾t ®Çu b»ng 1 bit start, tiÕp theo lµ c¸c bit mang th«ng tin, kÕ tiÕp lµ c¸c bit kiÓm tra ch½n lÎ vµ kÕt thóc lµ 1 bit stop . Kho¶ng c¸ch gi÷a c¸c khung lµ c¸c bit dõng bÊt kú , khi ®ã ®êng truyÒn ®îc lÊy lªn møc cao (h×nh 2 ). + Ph¬ng thøc lai : Đ©y lµ ph¬ng thøc kÕt hîp cña hai ph¬ng ph¸p trªn , trong ®ã c¸c bit trong 1 khung ®îc truyÒng theo ph¬ng thøc kh«ng ®ång bé cßn c¸c byte ®îc truyÒn theo ph¬ng thøc ®ång bé H×nh 1 H×nh 2 Khoa §iÖn Tö 5 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh II. Cæng Nèi TiÕp 1. Giíi thiÖu Cæng nèi tiÕp RS232 lµ 1 giao diÖn phæ biÕn réng r·i nhÊt , ta cßn gäi lµ cæng com 1 ,com2 , ®Ó tù do cho c¸c øng dông kh¸c nhau , gièng nh cæng m¸y in , cæng nèi tiÕp RS232 còng ®îc dö dông rÊt thuËn tiÖn trong viÖc ghÐp nèi m¸y tÝnh víi c¸c thiÕt bÞ ngo¹i vi . ViÖc truyÒn d÷ liÖu qua cæng RS232 ®îc tiÕn hµnh theo c¸ch nèi tiÕp nghÜa lµ c¸c bit d÷ liÖu ®îc göi ®i nèi tiÕp víi nhau trªn 1 ®êng dÉn . 2. CÊu tróc cæng nèi tiÕp Ý nghÜa c¸c ch©n tÝn hiÖu nh sau : Møc tÝn hiÖu trªn c¸c ch©n cña cæng nèi tiÕp thêng n»m trong kho¶ng -12v _ +12v C¸c bit d÷ liÖu ®îc ®¶o ngîc l¹i . møc ®iÖn ¸p ë møc logic 1 : -12v _ -3v møc ®iÖn ¸p ë møc logic 0 : +3v _ +12v tr¹ng th¸i tÜnh trªn ®êng dÉn cã møc ®iÖn ¸p -12v b»ng tèc ®é baund ta thiÕt lËp tèc ®é truyÒn d÷ liÖu c¸c gi¸ trÞ th«ng thêng lµ : 300, 600, 1200, 2400,4800, 9600… 3. ĐÞa chØ c¸c cæng nh sau : Com1: ®Þa chØ c¬ b¶n lµ : 3F8H Com2: ®Þa chØ c¬ b¶n lµ : 2F8H Com3: ®Þa chØ c¬ b¶n lµ : 3E8H Com4: ®Þa chØ c¬ b¶n lµ : 2E8H Khoa §iÖn Tö 6 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh Sù trao ®æi c¸c ®êng dÉn tÝn hiÖu : Trªn m¸y tÝnh cã mét vi m¹ch ®¶m b¶o viÖc truyÒn (nhËn) d÷ liÖu th«ng qua cæng nèi tiÕp, vi m¹ch ®ã gäi lµ UART ( bé truyÒn nhËn nèi tiÕp kh«ng ®ång bé ) . UART ®Ó ®iÒu khiÓn sù trao ®æi th«ng tin gi÷a m¸y tÝnh vµ c¸c thiÕt bÞ ngo¹i vi , phæ biÕn nhÊt lµ vi m¹ch 8250 cña h·ng NSC hoÆc c¸c thiÕt bÞ tiÕp theo , nh 16C550 , bé UART cã 10 thanh ghi ®Ó ®iÒu khiÓn tÊt c¶ chøc n¨ng cña viÖc nhËp vµo xuÊt ra d÷ liÖu theo c¸ch nèi tiÕp . 4. C¸c thanh ghi ®iÒu khiÓn . a) Thanh ghi ®iÒu khiÓn modem(3F8 +4) D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 LOOP OUT2 OUT1 RTS DTR D0=1 : ®a DTR=0 D0=0 : ®a DTR =1 D1=1: ®a RTS =0 D1=0: ®a RTS =1 OUT1 , OUT2 ®iÒu khiÓn ®Çu ra phô b) Thanh ghi tr¹ng th¸i modem(3F8+6) RLSD RI DSR CTS RLSD1 RI1 DSR1 CTR1 Thanh ghi nµy nhiÖm vô th«ng b¸o vÒ tr¹nh th¸i c¸c ®êng dÉn b¾t tay ®iÒu chó ý ë thanh ghi nµy lµ : D4, D5 ,D6 chÝnh lµ lèi vµo cña c¸c ®êng dÉn CTS , DSR , RI ®· ®îc ®¶o . c) Thanh ghi ®iÒu khiÓn ®êng truyÒn( 3F8+3) C7 C6 C5 C4 C3 C1, C0 : ®Æt sè bit trong mçi tõ 00: 5 bit 01: 6 bit 10 : 7 bit 11: 8 bit C2 : c¸c bit dõng 0 : 1 bit dõng 1: 1,5 bit dõng C3 : bit kiÓm tra ch½n lÎ 0 : kh«ng kiÓm tra 1 : cã kiÓm tra C4 : lo¹i ch½n lÎ 0: bit lÎ Khoa §iÖn Tö 7 C2 C1 C0 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh 1: bit ch½n C5 : stick bit 0: kh«ng cã stick bit 1: stick bit C6 : ®Æt break 0: normal output 1: göi 1 break C7 ( DLAB) : bit ph©n chia truy nhËp cho c¸c thanh ghi cïng ®Þa chØ d) Thanh ghi tr¹ng th¸i ®êng truyÒn (3F8+5) 0 S6 S5 S4 S3 S2 S1 S0 S0=1: Khi cã 1 byte míi nhËn ®îc S1=1: Khi ký tù tríc kh«ng ®îc ®äc ký tù míi ®Õn sÏ xo¸ ký tù cò trong bé ®Öm S2=1: Khi cã lçi ch½n lÎ S3=1: Khi cã lçi khung truyÒn S4=1 : Khi cã gi¸n ®o¹n ®êng truyÒn S5=1 : Khi bé truyÒn rçng cæng nèi tiÕp cã thÓ truyÒn nhËn S6=1: Khi bé ®Öm truyÒn rçng S7=0: Kh«ng sö dông e) Thanh ghi cho phÐp ng¾t ( 3F8+1) D7 D6 D5 D4 D3 D2 D1 D0 D0=1 : Cho phÐp ng¾t khi nhËn 1 ký tù D1=1 : Cho phÐp ng¾t khi bé ®Öm truyÒn rçng D2=1: Cho phÐp ng¾t khi thay ®æi tr¹ng th¸i ®êng truyÒn D3=1: Cho phÐp ng¾t khi thay ®æi tr¹ng th¸i modem D4=0 D5=0 D6=0 D7=0 f) Thanh ghi nhËn d¹ng ng¾t ( 3F8+2) D7 D6 0 0 D5 0 D4 0 D2 D1 D0 Møc u tiªn 0 1 0 1 Khoa §iÖn Tö 1 0 D3 D2 D1 D0 0 Nguån g©y ĐÆt l¹i ng¾t ng¾t Kh«ng kiÓm tra ng¾t Cao nhÊt Lçi ®êng nhËn d÷ liÖu Đäc thanh ghi 8 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh tr¹ng th¸i ®êng truyÒn Đäc thanh ghi ®Öm 1 0 0 Thø 2 Cã d÷ liÖu nhËn 0 1 0 Thø 3 0 0 0 Thø 4 Thanh ghi ®Öm truyÒn rçng Các trạng thái modem Đọc thanh ghi trạng thái modem g) Thanh ghi chøa sè chia tèc ®é baud (byte thÊp - ®Þa chØ c¬ së ) thanh ghi nµy gåm cã 8 bit , chøa phÇn thÊp sè chia cña tèc ®é baud . sè chia tèc ®é baud tÝnh theo c«ng thøc : sè chia tèc ®é baud = 1843200/( 16*tèc ®ä baud cÇn thiÕt lËp ) h) Thanh ghi chøa sè chia tèc ®é baud( byte cao – 3F8+1) i) Thanh ghi ®Öm ®äc viÕt ( 3F8) iii. Nèi ghÐp 8051 víi RS232 ChuÈn RS232 kh«ng t¬ng thÝch víi møc logic TTL, nªn cÇn bæ sung thªm mét bé ®iÒu khiÓn ®êng truyÒn, ch¼ng h¹n nh chip MAX232 ®Ó chuyÓn ®æi c¸c møc ®iÖn ¸p RS232 vÒ c¸c møc TTL vµ ngîc l¹i. Do vËy nèi ghÐp 8051 víi ®Çu nèi RS232 th«ng qua chip MAX232. a. Ch©n RxD vµ TxD cña 8051 8051 cã hai ch©n ®îc dïng chuyªn cho truyÒn vµ nhËn d÷ liÖu nèi tiÕp. Hai ch©n nµy lµ RxD vµ TxD vµ lµ mét phÇn cña cæng P3 (®ã lµ P3.0 vµ P3.1 t ¬ng øng). P3.0 lµ ch©n sè 10 cña 8051, cßn P3.1 lµ ch©n sè 11. C¸c ch©n nµy t¬ng thÝch víi møc logic TTL. Do vËy cÇn cã thªm mét bé ®iÒu khiÓn ®êng truyÒn ®Ó chóng t¬ng thÝch víi RS232. Bé ®iÒu khiÓn nh vËy cã thÓ lµ chip MAX232. b. Bé ®iÒu khiÓn ®êng truyÒn MAX232 V× RS232 kh«ng t¬ng thÝch víi c¸c bé vi xö lý vµ vi ®iÒu khiÓn hiÖn nay nªn ta cÇn mét bé ®iÒu khiÓn ®êng truyÒn (bé chuyÓn ®æi ®iÖn ¸p) ®Ó chuyÓn ®æi c¸c tÝn hiÖu RS232 vÒ c¸c møc ®iÖn ¸p TTL ®îc c¸c ch©n TxD vµ RxD cña 8051 chÊp nhËn. Mét vÝ dô cña bé chuyÓn ®æi nh vËy lµ chip MAX232 cña h·ng Maxim. Bé MAX232 chuyÓn ®æi tõ c¸c møc ®iÖn ¸p RS232 vÒ møc TTL vµ ngîc l¹i. Mét ®iÓm m¹nh kh¸c cña chip MAX232 ®ã lµ dïng ®iÖn ¸p cña ©n RxD cña ®Çu nèi DB cña RS232. Bé ®iÒu khiÓn ®êng R1 còng cã g¸n R1in vµ R1out trªn c¸c ch©n sè 13 vµ 12 t¬ng øng. Ch©n R1in (ch©n sè 13) lµ ë phÝa RS232 ® MAX232 cã g¸n T1in vµ T1out trªn c¸c ch©n sè 11 vµ 1 t¬ng øng. Ch©n T1in lµ ë phÝa TTL vµ ®îc nèi tíi ch©n RxD cña bé vi ®iÒu khiÓn, cßn T1out lµ ë phÝa RS232 ®îc nèi tíi ch©n TxD ®Çu nèi DB cña RS232 vµ ch©n R1 out (ch©n sè 12) lµ ë phÝa TTL vµ ®îc nèi tíi ch©n RxD cña bé vi ®iÒu khiÓn, ch©n TxD bªn ph¸t ®îc nèi víi RxD cña bªn thu vµ ngîc l¹i. MAX232 cÇn cã 4 tô ®iÖn gi¸ trÞ tõ 1 ®Õn 22µF. gi¸ trÞ thêng dïng lµ 22µF. Khoa §iÖn Tö 9 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh PhÇn III: Néi dung ®Ò tµi I. Ch¬ng tr×nh ®iÒu khiÓn b»ng VB 1. Form chÝnh Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load With Me.SerialCOM .PortName = "COM1" .BaudRate = 9600 .Parity = IO.Ports.Parity.None .Open() End With Me.ButtonStop.Enabled = False Me.ButtonStart.Enabled = True Me.RadioButton5V.Checked = True Me.ChonNguonDC() Khoa §iÖn Tö 10 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh End Sub Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress Me.SerialCOM.Write(Convert.ToChar(e.KeyChar)) End Sub Public Sub UpDateStatus() ' Update các thông số cổng COM đưa tới Status bar Dim ParityTemp As String = "?" Dim StopbitTemp As String = "?" Select Case Me.SerialCOM.Parity Case IO.Ports.Parity.None ParityTemp = "N" Case IO.Ports.Parity.Odd ParityTemp = "O" Case IO.Ports.Parity.Even ParityTemp = "E" Case IO.Ports.Parity.Mark ParityTemp = "M" Case IO.Ports.Parity.Space ParityTemp = "S" End Select Select Case Me.SerialCOM.StopBits Case IO.Ports.StopBits.One StopbitTemp = "1" Case IO.Ports.StopBits.Two StopbitTemp = "2" End Select Me.StatusLabel.Text = Me.SerialCOM.PortName + "-" + Me.SerialCOM.BaudRate.ToString + "-" + Me.SerialCOM.DataBits.ToString + "-" + ParityTemp + "-" + StopbitTemp End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Me.LabelTimer.Text = Date.Now.ToLongTimeString Me.LabelDate.Text = Date.Now.ToLongDateString Me.UpDateStatus() End Sub Private Sub ChonNguonDC() If Me.RadioButton5V.Checked Then Me.SerialCOM.Write("#5") ' Nguồn 5V ElseIf Me.RadioButton12V.Checked Then Me.SerialCOM.Write("#1") ' Nguồn 12V Else Me.SerialCOM.Write("#2") ' Nguồn 24V End If End Sub Private Sub RadioButton5V_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton5V.CheckedChanged Me.ChonNguonDC() End Sub Private Sub RadioButton12V_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton12V.CheckedChanged Me.ChonNguonDC() Khoa §iÖn Tö 11 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh End Sub Private Sub RadioButton24V_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton24V.CheckedChanged Me.ChonNguonDC() End Sub Private Sub ButtonStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonStart.Click Me.SerialCOM.Write("R") Me.ButtonStart.Enabled = False Me.ButtonStop.Enabled = True End Sub Private Sub ButtonStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonStop.Click Me.SerialCOM.Write("Q") Me.RadioButton5V.Checked = True Me.ButtonStart.Enabled = True Me.ButtonStop.Enabled = False End Sub Private Sub ButtonDung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDung.Click Me.SerialCOM.Write("Q") End Sub Private Sub ButtonChay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonChay.Click Me.SerialCOM.Write("R") Me.ButtonStart.Enabled = False Me.ButtonStop.Enabled = True End Sub Private Sub ButtonTang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonTang.Click Me.SerialCOM.Write("T") Me.ButtonStart.Enabled = False Me.ButtonStop.Enabled = True End Sub Private Sub ButtonGiam_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGiam.Click Me.SerialCOM.Write("G") End Sub Private Sub ButtonDao_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDao.Click Me.SerialCOM.Write("D") End Sub Private Sub ButtonSetting_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSetting.Click FormSetting.Show() End Sub Private Sub LabelAbout1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click Form2.Show() Khoa §iÖn Tö 12 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh End Sub Private Sub LabelAbout2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LabelAbout1.Click Form2.Show() End Sub Private Sub ButtonExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonExit.Click If MessageBox.Show("Are you sure you want to exit now ? ", "(^_o)D&A Pro(o_^) !", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then Me.Close() End If End Sub End Class 2.Form setting Public Class FormSetting Private Sub FormSETTING_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ComboBoxPortName.Text = Form1.SerialCOM.PortName Me.ComboBoxBaudRate.Text = Form1.SerialCOM.BaudRate Me.ComboBoxDataBit.Text = Form1.SerialCOM.DataBits Select Case Form1.SerialCOM.Parity Case IO.Ports.Parity.None Me.ComboBoxParity.Text = "None" Case IO.Ports.Parity.Odd Me.ComboBoxParity.Text = "Odd" Case IO.Ports.Parity.Even Me.ComboBoxParity.Text = "Even" Case IO.Ports.Parity.Mark Me.ComboBoxParity.Text = "Mark" Case IO.Ports.Parity.Space Me.ComboBoxParity.Text = "Space" End Select Me.ComboBoxStopBit.Text = Form1.SerialCOM.StopBits End Sub Private Sub ButtonOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonOK.Click Form1.SerialCOM.Close() With Form1.SerialCOM .PortName = Me.ComboBoxPortName.Text .BaudRate = Convert.ToInt32(Me.ComboBoxBaudRate.Text) .DataBits = Convert.ToInt16(Me.ComboBoxDataBit.Text) Select Case Me.ComboBoxParity.Text Case Is = "None" Khoa §iÖn Tö 13 Trêng §H C«ng NghiÖp Hµ Néi ghÐp Nèi M¸y TÝnh Form1.SerialCOM.Parity = IO.Ports.Parity.None Case "Odd" Form1.SerialCOM.Parity = IO.Ports.Parity.Odd Case "Even" Form1.SerialCOM.Parity = IO.Ports.Parity.Even Case "Mark" Form1.SerialCOM.Parity = IO.Ports.Parity.Mark Case "Space" Form1.SerialCOM.Parity = IO.Ports.Parity.Space End Select .StopBits = Convert.ToInt16(Me.ComboBoxStopBit.Text) End With Form1.SerialCOM.Open() Form1.StatusLabel.Text = Me.ComboBoxPortName.Text & "-" & Me.ComboBoxBaudRate.Text & "-" & Me.ComboBoxParity.Text & "-" & Me.ComboBoxDataBit.Text & "-" & Me.ComboBoxStopBit.Text Me.Close() End Sub Private Sub ButtonDefault_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDefault.Click Me.ComboBoxPortName.Text = "COM1" Me.ComboBoxBaudRate.Text = "9600" Me.ComboBoxDataBit.Text = "8" Me.ComboBoxParity.Text = "None" Me.ComboBoxStopBit.Text = "1" End Sub Private Sub ButtonCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCancel.Click Me.Close() End Sub End Class II. Ch¬ng tr×nh vi ®iÒu khiÓn #include #include bit PWM,k; unsigned char dem=0; unsigned char ch; unsigned int phantram_PWM=20; void delay(unsigned long int t) { unsigned long int i,j; for (i=0;i[...]... TMOD = 0x20; TH1= -3; //Toc do 9600 baud SCON=0x50; SCON=0x50; TR1 =1; TI = 1; //Timer 1 che do 2 while (1) { tangtoc(); giamtoc(); ch = _getkey(); chonchedo(ch); ch = '@'; // hienthi((30-phantram_PWM) /10 ,(30-phantram_PWM) %10 ); } } Khoa §iÖn Tö 16 Trêng §H C«ng NghiÖp Hµ Néi Iii S¬ Đå Nguyªn Lý Khoa §iÖn Tö 17 ghÐp Nèi M¸y TÝnh Trêng §H C«ng NghiÖp Hµ Néi IV Sơ Đồ Mạch In: Khoa §iÖn Tö 18 ghÐp Nèi M¸y... 8 BIT TU NAP TH0=0X9B;// nap gia tri 15 5 ma hex TL0=0X9B; EA =1; TR0 =1; ET0 =1; } */ void ngat_timer0(void) interrupt 1/ /tao xung PWM { TR0=0; TF0=0; dem++; if (dem>=phantram_PWM) { PWM =1; } else { PWM=0; } if (dem==30) dem=0; TR0 =1; } // HAM DUNG DONG CO void stopdc() { P0_0=0; P0 _1= 0; } unsigned char chieu() { k=!k; if (k= =1) { P0 _1= PWM; P0_0=0; } if (k==0) { P0 _1= 0; P0_0=PWM; } return(k); } unsigned... Nèi M¸y TÝnh Form1.SerialCOM.Parity = IO.Ports.Parity.None Case "Odd" Form1.SerialCOM.Parity = IO.Ports.Parity.Odd Case "Even" Form1.SerialCOM.Parity = IO.Ports.Parity.Even Case "Mark" Form1.SerialCOM.Parity = IO.Ports.Parity.Mark Case "Space" Form1.SerialCOM.Parity = IO.Ports.Parity.Space End Select StopBits = Convert.ToInt16(Me.ComboBoxStopBit.Text) End With Form1.SerialCOM.Open() Form1.StatusLabel.Text... unsigned long int i,j; for (i=0;i

Ngày đăng: 01/10/2015, 08:48

Từ khóa liên quan

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

Tài liệu liên quan