You are on page 1of 281
NGO DIEN TAP mn LO wh DU Rat | i — } — | | = us : _—-| NHA XUAT BANI |e Ly KHOA HGC VA KY THUAT Ng6 Dién Tap DO LUGNG VA DIEU KHIEN BANG MAY TINH NHA XUAT BAN KHOA HOC VA KY THUAT HA NOI - 1996 LOI NOI DAU Vise ting dung may vi tink vao ky thuét do ling va diéu khién da dem lai nhiug két qua déy tinh wu viét. Cac thiét bi, hé théng do lung va didu khién ghép néi voi miy tinh c6 dé chinh xac cao, théi gian thu thép sé liéu ngain, nhung con ding quan tam hon li nue dé tur déng hoi trong viée thu thap va xtt ly cde két qua do, ké csi vige lap bang théng ké cing nhu in ra két qua. Cuéh séch nay dugc bién soan nhatm gidi thiéu nguyén Ly hoat déng cua cae mach do luéng vé diéu khién ghép néi voi may tink, Hang tram vi du minh hoa sé gitip cho ban doc dé dang lim quen dan véi céc mach dién tu don gian dén phic tap, tt viée ty tién hanh lap rap dén co thé lam chit nhing hé théng do luéng va diéu khién phite tap. Dé cae hé thong do ludug va diéu khién ghép noi voi may tinh hoat chuong trinh duc nap vao may tinh. Cac chuong trink ding cho cac hé théng do liéug vi diéu khién sé duoc trinh bay riéng trong ingt cuén sich ‘khi cuéh sdch nay cde chuong trinh minh hoa dive gidi thigu déu vidt bang QBasic. Theo céch nghi ctia ching t6i, voi ngén ngit nay ban doc sé de dang lam quen, nhitug déng thoi cing dti kha nang dé mink hoa suf hoat dong ctia mach dién. Cite chuong trinh minh hoa niy duge gidi thiéu trude hét nhém muc dich doc hién, nén dé trénh su hiéu lim, nhimng Idi chi thich trong chitong trinh duoc viét bang tiéng Viét co déu; va chung ta déu biét BASIC khong thé hiéu duge cdc chit co dau nay; nén khi go chuong trinh vao may tinh ta phai bé di ede dais. Sau khi dé lim chii duge Aé thong, ta c6 thé ding cae céng cu lap trinh khac (chang han C++ ; DELPHI...) dé tao ra nhitng sin pham phan mém co chat lugng va hinh thue trinh bay trén man hinh tot hon. déng duoc thi ngoai phén mach diéu con cdn eo m ic con trong Mic di da danh théi gian thich dang nhung khéng trénh khoi mét sb in c6 thé con sot Ini trong cudn séch. Rat mong ban doc gan xa chi’ dén cho. Thir tit gop y xin gtii vé Nha xuat ban Khoa hoc va Ky thuat, 70 Phé Tran Hung Dao, Ha ni. Tie gia muc Lyc Trang G Loi noi dau 3 © Muc luc 4 GC Chuong 1. Giao dién cui may tinh trong do luéng 7 va diéu khién @ 1.1 Céng ghép ndi vai may in 7 = 1.1.1. Vai nét co ban vé cng ghép néi vai may in 7 - 1.1.2 Trao déi vai cac duéng dan tin hiéu 9 = 1.1.3. Chuang trinh kiém tra cong may in 12 + 1.1.4 Médun co sé vao/ ra diing cho céng may in 18 @ 1.2 Cng néi tiép RS 232 22 * = 1.2.1 Vai nét co ban vé céng néi tiép 22 - 1.2.2 Sy trao déi véi duéng dan ai ligu 25 - 1.2.3 BG gui néi tiép 30 - 1.2.4 B6 phat nhn khéng déng bé van nang COP 6402 32 - 1.2.5 Médun co sé vao/ ra 8 bit khéng cé nguén phu 37 - 1.2.6 Médun co sd vao/ ra 8 bit vai MAX 232 41 - 12.7 Médun co sé vao/ ra 8 bit cach ly vé dién 45 @ 1.3 Ranh cam trong may tinh PC 48 - 1.3.1 Susp x8p chan trén ranh cAm 48 - 1.3.2 Giai ma dia chi va néi bus dif liéu 53 Cl Chuong 2. Cac mach sé 60 @ 2.1 Quan ly theo bit 60 © 2.2. Ghép néi kiéu role 62 © 2.3 Bé diéu khién mini theo chuong trinh da nhé (SPS) 67 © 2.4 Vimach ghép néi 8243 79 -2.4.1 Mé6ta 79 -2.4.2 16 I6ira TTL voi 8243 82 - 2.4.3 Médun vao/ ra 32 bit 86 @ 2.5 Giao dién vao/ ra trén ranh cam PC 94 ". 2.5.1. Vimach ghép néi 8255 94 - 2.5.2 Giao dién vao/ ra 24 bit trén ranh cam PC 97 - 2.5.3 Giao dién vao/ ra 48 bit trén ranh cam PC @ 2.6 Cac b6 dém van nang - 2.6.1 Vi mach 46m 8253 - 2.6.2 Ghép ndi bd dém véi ranh cm trong may tinh PC - 2.6.3 Médun dém 6 céng ndi tiép va céng song song - 2.6.4 Nhiing Ung dung ctla vi mach dém 8253 - BO d&m xung 16 bit - B6 dém xung 32 bit - BG dém tan sé 16 bit fém tan s67 chir sé - B6 dém tan sé thap v6i d6 chinh xac cao - Bd so day dan ghita - BS phat xung lap trinh dugce - Béng hé role lap trinh duge - Thiét bi kiém tra phan dng - Do dién dung i - Diéu khién vong quay - BO bign adi D/A 16 bit - BO téng hgp tan so © Chuong 3. Cac mach diéu khién vdi bé bién déi A/D © 3.1. Ghép ndi bé bién déi A/D 8 bit 1 kénh truc tiép vao céng néi tiép © 3.2 BO bién déi A/D 8 bit 1 kénh voi ADC 0804 - 3.2.1 Cac théng sé ky thuat va cach lam viéc - 3.2.2 Cach tao ra cdc dai do khac nhau - 3.2.3 Médun bién déi A/D 8 bit véi dai do chuyén déi duge © 3.3 Médun bién déi A/D 8 bit 8 kénh ding vi mach ADC 0809 @ 3.4 Médun bién déi A/D 12 bit 1 kénh ding vi mach ICL 7109 © 3.5 Ghép néi médun bién dai A/D 12 bit 8 kénh truc tiép vao céng néi tiép @ 3.6 Cac tng dung cia bé bién déi WD - 3.6.1 Do dong dién - 3.6.2 Do dién ap vi phan - 3.6.3 Do dién tra - 3.6.4 Bo dién dung - 3.6.5 Do tan sé - 3.6.6 Do nhiét d6 - 3.6.7. Thiét bi tu ghi y(t) 99 100 100 110 114 128 128 129 129 130 132 133 135 136 138 139 140 142 143 153 153 157 187 159 164 172 173, 179 188 188 189 191 193 194 195 200 6 1 Chuang 4. Cac mach diéu khién vi b6 bién adi D/A © 4.1. CAch hoat déng cua bé bién déi D/A © 4.2 BG bién déi D/A 8 bit AD 7524 © 4.3 BO bién déi D/A & bit ZN 426 7 © 4.4 Bé bién déi D/A 12 bit AD 7545 4.5 Nhitng ting dung cua b6 bién déi DIA - 4.5.1 Médun bién déi D/A 12 bit - 4.5.2. BO phat cdi bao hiéu diéu khién bang tay vi tinh - 4.5.3 BO nguén lap trinh duge - 4.5.4 Nguén déng [4p trinh duge - 4.5.5 BG d&t dé khudch dal lap trinh dugc + 4.5.6 Mach tich phan lap trinh dugc. + 4.5.7 BG tao ham lap trinh duge - 4.5.8 Médun dé vé dudng dac trung Chuang 5. Su ghép néi bus & céng néi tiép RS 232 @ 5.1 Phan cing @ 5.2 Phan mém : @ 5.3 Cac médun bus khac nhau - 5.3.1 Médun bus v6i 8 Ii ra TTL - 5.3.2 Médun bus véi 8 Idi ra ghép néi quang - 5.3.3 Médun bus véj 8 Idi ra dung véi role - 5.3.4 Médun bus véi 8 Idi vao TTL - 5.3.5 Médun bus véi 8 Idi vao ghép Adi quang - 5.3.6 Médun bus véi mét Idi vao analog - 5.3.7 Médun bus v6i tam’I6i vao analog - 5.3.8 Médun bus véi 24 dudng d&n vao/ ra - 5.3.9 Médun bus vdi bé dém 8253 - 5.3.10 Médun bus véi mat Idi ra analog 06. Phu luc Phu luc 1. Théng sé cila mét s6 khuéch dai thuat toan Phy luc 2. Vai nét vé QBASIC Phu luc 3. M@t s6 loairanh c&m trong may tinh PC 7. Tai liéu tham khao 207 208 208 210 att 212 212 214 215 216 218 219 220 221 224 224 231 234 235 236 238 240 242 244 246 248 251 254 256 256 265 271 279. 1 GIAO DIEN CUA MAY TINH 7 Chugng 1 GIAO DIEN CUA MAY TINH : TRONG BO LUONG VA DIEU KHIEN 1.1 CONG GHEP NOI VOI MAY IN “1.1.1 VAINET CO BAN Vii CONG GHEP NOI VOI MAY IN Céng néi véi may in hay thuéng goi la giao dién Centronics c6 le khéng c6 gi xa la déi véi ngudi st dung may tinh. Viéc néi méy in véi méy tinh dugc thuc hién qua 6 cém‘ an 6 phia sau may tinh. Nhung day khéng chi la ché néi véi may in ma | a sit -dung.n tinh vAo muc dich do hitng va didu khiéa thi vide ghép ne hign qua 6 cém nay. Qua céng nay di ligu duge truyén di song song, nén adi khi con “Auge goi la céng ghép néi song song va téc 46 truyén dit ligu cing dat dén mite lén dang ké. T&t cd cdc duéng dan cia céng nay déu tuong thich TTL, nghia 1a ching déu cung cép mt mic dién Ap nam giita 0 va 5 V. Do dé ta con can phai luu ¥ la écae 6 cdc dutng dan Idi vao céng nay khéng duge dt céc mite dién 4p qua lén. Sy sap xép cdc chan ra d céng méy in véi tat cd cdc dudng dAn duge mé ta trén hinh 1.1. Ta thay ré la bén canh 8 bit dit liéu con co nhiing dudng dan tin hiéu khdc, téng céng ngudi sti dung cé thé trao déi mét céch riéng biét véi 17 duéng dan, bao gém 12 duéng dan ra va 5 dudng d&n vao. Béi vi tam duong dAn di ligu DO - D7 khéng phai la dudng dan hai chiéu trong Lat ca cae loai may tinh, nén sau day ta sé thdy 1a DO - D7 chi co thé duge sit dung nhy la léi—ra. Céc 1éi ra khéc nita la STROBE, AUTOFEED (AF), INIT va SELECT IN (SLCTIN). Khi trao déi thong tin vdi mdy in, cdc dudng dan nay c6 nhiing chitc nang xdc dinh. Thi du, INIT = 0 thyc hién mét qué trinh khdi dng lai (Reset) 6 may in, cén STROBE cé nhiém vy ghi cdc bit di ligu da duge giti tu may in bang mét xung Low vao trong bé nhé cua may in. DO _LUONG VA DIEU KHLEN BANG MAY TINH 43 4A lo ° 920000000000 25 14 Chan Ky hiéu Vao/Ra Mé ta 1 STROBE Léira (Output) UJ: Byte duge in 2 DO Léi ra Duséng dit liu DO 3 D1 Loi ra Duong dit liéu D1 4 D2 Loi ra Dudng dit ligu D2 5 D3 Léi ra DuGng dit liéu D3 6 D4 Léi ra Dudng dit liéu D4 7 D5 Léi ra Dung dit liéu D5 8 D6 Léi ra Dusng dit ligu D6 9 D7 Léi ra > Dudng dit liéu D7 10 ACK Léi vao (Input) Acknowledge (xac nhan) 11 BUSY Léi vao 1: May in ban 12 PE Léi vao Hét gidy 13 SLCT Léi vao Select (lua chon) 14 AF Léi ra Auto Feed (tu nap) 15 ERROR Léi vao Error (Léi) 16 INIT Léi ra 0: Dat lai may in 17 SLCTIN Léi ra Select in 18 GND Noi dat 19 GND 20 GND 21 GND 22 GND 23 GND 24 GND 25 GND Hinh 1.1 Bé tri chan 6 céng may In ctla may tinh PC. 1 GIAO DIEN CUA MAY TINH 9 Céng may in cing cé nhiing duéng dan Iéi vao, nhé vay ma sy bat (chéo) tay gitfa may tinh va may in dude thuc hién. Chang han, khi ma may in khéng cén di ché trong bé nhé thi miiy in sé giti dén may tinh mét bit trang thai (BUSY = 1); diéu dé co nghia 1a may in tai thai diém nay dang ban, khéng nén giti thém cac byte di liéu khac dén nita. Khi hét gidy 6 may in thi may tinh sé théng bao 1a PAPER EMPTY (PE). Dudng dan 1éi vao tiép theo la: ACKNOWLEDGE (ACK), SELECT (SLCT) va ERROR. Téng céng may tinh PC co 5 1éi vao hudng tdi may in. 1.1.2 TRAO DOI VOI CAC DUONG DAN TIN HIRU Datenregister (Basicaddress) bs fs ([[osJor]os]oe[oufoo] Tosh gle A# Ker Datenbit Do (Pin 2) Datenbit D1 (Pin.3) Datenbit D2 (Pin 4) Datenbit 03 (Pin 5) Datenbit 04 (Pin 6) Datenbit DS (Pin 7) Datenbit 06 (Pin 6) Datenbit D7 (Pin 9) Statusregister (Basicaddresst1) if LS [orfow[oeToo[os[o[o[o] Tel! “tage ERROR (Pin 15) SLCT (Pin 13) PE (Pin 12) ACK (Pin 10) <} BUSY (Pin 11) STROBE (Pin 1) AUTO FEED (Pin 14) INIT (Pin 16) SLCTIN (Pin 17) IRQ-Enable Controlregister (Basicaddress+2) Hinh 1.2 Thanh ghl 6 céng may in ctia may tinh PC. 10 DO LUONG VA DIEU KHIEN BANG MAY TiNH Tat ca cdc dung dan tin hiéu vita duge gidi thiéu cho phép trao déi qua céc dia chi bé nhé cia may tinh PC. 17 duéng dan cia céng may in sdp xép thanh ba thanh ghi: ghi dif ligu, ghi trang thai va ghi diéu khién. Hinh 1.2 chi ra su sdp xép cia cdc duéng dan tin hiéu téi cdc bit dir ligu riéng biét cua thanh ghi. Dia chi dau tién dat dén duge cha céng may in duge xem nhu 1a dia chi co ban. 6 cdc may tinh PC duge ché tao gan day dia chi co ban cia céng méy,in dude sAp xép nhu sau: LPT1 (Céng may in thit nhat) => Bia chi co ban = 378 (Hex) hoac la 3BC (Hex) 6 may tinh Laptop LPT2 (Céng may in thtthai) => Biachicoban=278(Hex) Dia chi co ban déng nhat véi thanh ghi dit ligu. Thanh ghi trang thai duge dat téi dudi dia chi co ban + 1. G day cdn cht y rang mic légic cua BUSY (chan 11) dude sdp xép ngugc véi thanh ghi trang thai. Thanh ghi diéu khién véi bén dudng dan Idi ra cha n6 dat dudi dia chi “dia chi co ban + 2". G day lai cdn chu ¥ téi su ddo ngude cia céc tin hiéu STROBE, AUTOFEED va SLCTIN. Cac dia chi co ban cia céng mdy in cia may tinh PC duge dat 6 nhiing dia chi b6 nhé xdc dinh va cé thé duge doc ra bang chuong trinh duéi day. Dia chi cd ban cha LPT1 dung nhu gid tri 16 bit trong cdc dia chi 408 (hex) va 409 (hex). Ca hai dia chi tiép sau: 40A (hex) va 40B (hex) chita dung dia chi co ban cha LPT2. ‘Program: BASADR * Function: Chuong trinh nay théng bdo dja chi co ' ban cla hai cng méy in dau tién LPT1 va LPT2 CLS (ene e---F------- Dia chi co ban cia LpT1-------------- basadr.low = PEEK (&H408) 1, GIAO DIEN CUA MAY TINH : ret basadr.high = PEEK (&H409 basadr.lpt1 = basadr.low + 256 * basadr.high IF basadr.1lpt1 = 0 THEN PRINT "LPT1: khéng t6n tai" ELSE : PRINT "LPT1: Dia chi co ban 1a"; Hexs (basadr.lpt1); *(hex)" END IF ee Dja chi co ban ctia LPT2 ------------- basadr.low = PEEK (&H40A) basadr.high = PEEK (&H40B) basadr.1pt2 = basadr,low + 256 * basadr.high IF basadr.lpt2 = 0 THEN PRINT "LPT2: kh6ng t6n tai" ELSE PRINT "LPT2: Dia chi co ban 1a" HEXS (basadr.1pt2); "(hex)" END IF END Khi ta muén trao déi véi thanh ghi trong mét ngén ngi lap trinh thi cdch tét nhat 1a hic bat dau chuong trinh ta thuc hién mét su khdi tao dé khang dinh cdc dia chi thanh ghi. Trong QBasic su khdi tao nay duge viét nhu sau: basadr = &H378 REM Basicaddress datreg = basadr REM Dateneregister startreg = basadr + 1 REM Statusregister contrreg = basadr +2 REM Controlregister C&c dung dan tin hiéu riéng biét cho phép lap trinh nhu duéi day: Ghi lén Dateneregister: OUT datreg, outhyte Doc tit Statusregister: inbyte = INP (startreg) Ghi lén Controlregister: OUT contrreg, outbyte 12 BO LUONG VA DIEU KHIEN BANG MAY TINH CAc outbyte va inbyte chtta dung cdc sé trong hé dém mudi nam trong khoang 0 dén 255. Ta c6 thé thong bdo mau bit tuong tng cia outbyte va inbyte qua gid tri cla cdc bit di liéu riéng biét. Mudn thé ta can biét rang DO chiém gia tri 1a 2°, D1 chiém gia tri la 21, D2 chiém gid tri la 22 v. v. Khi ma thanh ghi trang thai chia gid tri da doc vao inbyte = 125 thi cdc bit dit liéu sau dugc phép théng bao: D7=1 => 128 D6é=0 => + 0 D5 =0 => + Q D4=1 => + 16 D3=1 => + 8 D2=0 > + 0 D1i=0 => + 0 DO=0 => + O0=> Téngsé = 128+ 16+8= 152 Noi cach khdc: BUSY 1a Low (mtic thép), ACK 1a Low, PE 14 Low, SLCT 1a High (mic cao), ERROR 1a High. 1.1.3 CHUONG TRINH KIEM TRA CONG MAY IN Duéi day xin gidi thiéu m6t chuong trinh viét bang QBasic cho phép trao déi véi tat cd cdc dutng dAn cha céng’ may in mét cach riéng biét. Chuong trinh nay cé tén 1A LPTEST.BAS. Néu nhu ban doc chua co kinh nghiém 1am quen véi QBasic thi trudc khi thiti nghiém chuong trinh nay nén doc thém phan phu luc 2 6 cuGi sdch . Dia chi co ban cua céng méy in cé thé duge théng bdo bing chusng trinh cé ten BASADR.BAS. Chuong trinh LPTTEST duge viét nhu sau: - Program: LPTTEST ’ Punction: Chuong trinh kiém tra dé trao d6i vdi “tat ca cde duéng dan 4 céng méy in 1. GIAO DIEN CUA MAY TINH 13 COLOR 9, 15 CLS aS = Chuong trinh kiém tra céng may in a = LEN (a$): b = (86 - a)/ 2-1 LOCATE 1, B: PRINT CHR$ (201); STRING (a + 2, CHR$ (205)); CHRS$ (187) LOCATE 2, b: PRINT CHRS$ (186) LOCATE 2, b + 2: PRINT a$ LOCATE 2, a + b +2: PRINT CHRS (186) LOCATE 3, b: PRINT CHRS (200); STRINGS (a + 2, CHRS (205)); CHRS (188) PRINT LOCATE 5,15:PRINT “ Dia chi co ban cla céng may in (Hex) :378" basadr = &H378 datreg = basadr 'Datenregister statreg = basadr + 1 ‘Statusregister contrreg = basadr + 2 "Controlregister LOCATE 7, 10: PRINT "Cdc duéng dan 161i ra" 7 LOCATE 7, 50: PRINT "Cac dudéng dan 168i vao" LOCATE 8, 10: PRINT "-----------~----- ie LOCATE 8, 50: PRINT "------------ 9 9 LOCATE 9, 10: PRINT "Dudng d&n dt 1i€u DO =" LOCATE 9, 50: PRINT “ERROR =" LOCATE 10, 10: PRINT "Duéng dan dt 1liéu D1 =" LOCATE 10, 50: PRINT "SLCT =" LOCATE 11, 10: PRINT "Dudng d&n dt liéu =" LOCATE 11, 50: PRINT "PE =" LOCATE 12, 10: PRINT "Dudng dan Di 1iéu b3 =" LOCATE 12, 50: PRINT "ACK =" LOCATE 13, 10: PRINT "Duéng ddan Di liéu D4 =" LOCATE 13, 50: PRINT "BUSY =" LOCATE 14, 10: PRINT "Dudéng d&n Di 1liéu D5 =" LOCATE 15, 10: PRINT "Duéng’ dan Di 1lidéu D6 LOCATE 16, 10: PRINT "Duéng dan Dt& 1i@u D7 14. DO LUONG VA DIEU KHIEN BANG MAY TINH LOCATE 17, 10: PRINT "STROBE =“ LOCATE 18, 10: PRINT "AUTO FEED =" LOCATE 19, 10: PRINT "INIT =" LOCATE 20, 10: PRINT "SLCTIN =" PRINT LOCATE 22, 1: PRINT "Hudéng d4n:" LOCATE 22,15: PRINT CHR$(24) ;CHR$(25);":Lyachon 1éira" LOCATE 22, 35: PRINT "ESC: Két thtc" LOCATE 22, 50: PRINT “Fl: pao 16i ra ” LOCATE 23, 1: PRINT "--------- " Tat cA duéng dan 16i ra dat bing 1--- FOR i = 9 TO 20 LOCATE i, 30: PRINT 1 NEXT OUT datreg,, 255: OUT contrreg, (31 XOR 11 ZEILE = 9: spalte = 10 DO Doc déng hién tai (cét 10 d&n 24) vao nhu 1a text$ "text$ : FOR i = 0 TO 14" textS = text$ + CHR$ (SCREEN (ZEILE, spalte + i)) NEXT test$ : m6 ta ddo- COLOR 15, 0: LOCATE ZEILE, spalte PRINT text$ COLOR 0, 15 ‘Su xuat dit liéu ‘tiép theo tré lai binh thuéng' DO tastes = INKEYS ’Chd a&n phim inbyte-INP (statreg) “Docvao thanhghi trangthdi FOR i = 3 TO 7 LOCATE 6 + i, 60 IF i < 7 THEN PRINT (inbyte AND 2 * i)) \ 2 “i ‘ef 1=7 THEN PRINT (inbyte AND 2*i)\2*i) XOR1 1 GIAO DIEN CUA MAY TINH : 15 NEXT LOOP UNTIL taste$ <> " " © an n--- = Két thic vong lap (Phim d& nh&n)---------- LOCATE ZEILE,’ spalte PRINT text$ SELECT CASE ASC (RIGHTS (taste$, 1) CASE 27: EXIT DO ‘Phim ESC CASE 59 “Phim Fl LOCATE ZEILE, 30 PRINT VAL (CHR$ (SCREEN (ZEILE, 31))) XOR 1 CASE 72: IF ZEILE >.9 THEN ZEILE = ZEILE - 1 ‘Phim mii tén lén CASE 80: IF ZEILE < 20 THEN ZEILE = ZEILE + 1 ‘Phim mii tén xudng END SELECT --Xudt di 1iéu--- d.byte 0 FOR i = 9 TO 16 d.byte = d.byte + VAL (CHR$ (SCREEN (I, 31))) *2° (4 - 9) NEXT OUT datreg, d.byte "Xudt Datenbyte s.byte = 0 FOR i = 17 TO 20 s.byte = s.byte + VAL (CHR$ (SCREEN (i, 31)) *2* (4-17) NEXT s.byte = s.byte XOR 11 'Chi y phép dado ! OUT contrreg, s.byte 'xudt ra Controlregister LOOP END Sau khi khéi dng chudng trinh, man hinh sé duge trinh bay nh trén hinh 1.3 16 DO LUONG VA DIEU KHIEN BANG MAY TINH c— Chuong trinh kiem tra cong may in | Dia chi co ban cua cong may in (Hex): 378 Duong dan loi ra Duong dan loi vao Duong_danDu_liewDO = 1 ERROR = 1 Duong_danDu_lieuD1 = 1 SLCT =4 Duong_dan Du_lieu D2 1 PE = 0 Duong_dan Du_lieu D3 = 1 ACK =4 Duong_dan Du_lieuD4 == 1 BUSY = 0 Duong_dan Du_lieu D5 7 Duong_danDu_lieuD6 == 4 Duong_dan Du_lieu D7 = 1 STROBE 1 AUTO FEED 1 INIT 1 SLCTIN 1 Huong_dan: d:Lua_chon_loi_ra ESC: Ket_thuc F1:Dao_loi_ra Hinh 1.3 Trinh bay trén man hinh cua chudng trinh LPTTEST. Bang phim mii tén ta co thé lua chon mét dudng dan dit liéu hoac la mét bit diéu khién va dao ngu¢e lai bang phim F1. Gidng nhu céc bit duse mé ta trén man hinh, chung cing xuat hién 6 céng may in cla may tinh PC. Diéu d6 c6 nghia 1a bang su xdc nhan cia phim F1 mic hién tai cla tat ca cdc duéng dan di liéu va dudng dan diéu khién duge dua ra. Déng thi, cdc bit trang thai du¢e hoi lai va chi ra trén man hinh. Ung dung: Diéu khién may in. Mot tng dung cua chuong trinh LPTTEST 1a ding dé gui mat van ban ra may in. Binh thudng thi cai gi ma cé thé nhin thay trong su voi va clia may tinh PC thi 6 day ta cé thé cho vao tiing bit mot. 1. GIAO BIEN CUA MAY TINH 17 Buéc D7 | D6 |} D5 | D4 | D3} D2} D1} Do} (Hex) 1 Bat may in 2 Chuong trinh LPTTEST bat dau 3 Xép sét ma ASCII cia “T” 4 Cac xung STROBE am o f1 Jo ja fo fa jo fo $54 5 Xép sét ma ASCII cia “e” 6 Cae xung STROBE 4m o J1 J1 Jo Jo Ji Jo Ja $65 7 Xép sat ma ASCII eta “5” . § Cac xung STROBE 4m o }1 Ja fa fo fo ja 1 | $73 9 Xép sat ma ASCII cita “t” 10 Cac xung STROBE 4m Oe lt 0st 010) | 674 11 Xép sat FF 12 Cae xung STROBE am 0 }0 Jo Jo ji ji fo 44 json 13 Xép sat FF 14 Cac xung STROBE 4m OOO 060) Ore o4 15 Xép sat ma ASCII cita“ 0” 16 -Cac xung STROBE am o 71 fo fo }1 ja fa fa [gar sp st ma ASCII cita “K” 18 Cac xung STROBE 4m 6 }1 Jo fo {a fo [a [a [s4B 19 Xép st FF 20 Cac xung STROBE am 00) 10/027 1 114} 02 10-1 Si0c Thi du ta cdn phai in ra ti "Test" va trén dong tiép theo 1a chit "OK". Tung bude dién ra la trudc hét ta xép st ma ASCII cia cdc chit cai da gap d cdc dudng dan dif liéu, sau dé bang mét xung Am STROBE cae dit liéu duge chuyén giao sang may in. Tw do ta suy ra rang sau khi khéi déng chuong trinh bit diéu khién STROBE cé mite cao (High) nén ta nhan dude mét xung 4m STROBE qua viéc dao hai lan bang phim F1. Sau d6 theo cach nay tu "Test" sé dude giti di, tiép theo la day diéu khién cho viée bat dau mot dong méi. Day la cac day diéu khién CARRIAGE RETURN (lui vé dau dong, viét tat la CR) va LINE FEED (xudng dong, viét tat la LF). Sau day ta cé thé giti di ma ASCII cia 18 DO LUONG VA DIEU KHIEN BANG MAY TINH Bang thong ké trén day mét lan nila tom tat cdc bude riéng biét. 1.14 MODUN CO SO 8 BIT VAO/ RA DUNG CHO CONG MAY IN Trong muc truéc ta da thay trong sé 17 dung dan 1éi vao chi c6 5 dudng duge si dung nhu Ia 1éi vao. Tat nhién bang mét mach phy thém khong may tén kém ta cing co thé doc vao nhiéu hon la 5 bit. Trén hinh 1.4 chi ra sd dé mach cha mét médun don gian ma ta c6 thé néi truc tiép véi céng may in. Médun nay cé thé giji ra 8 bit cing nhu-doc vao 8 bit qua céng may in. 16 SRSERR LIL ese |} Hinh 1.4 $0 dé cla médun co sé dung cho céng may in. Cac dudng dan diz liéu di téi bé dém 74HC245, vi mach nay tach ra cdc dit liéu da dén cha may tinh PC tit médun ghép néi. Dé doc vao 8 bit 1. GIAO DIEN CUA MAY TINH 19 diz tiéu, vi mach 74HC257 duge st dung, vi mach nay chia 4 bd quét dong (dén kénh, multiplexer) vdi hai 16i vao va mot Idi ra. Nh vay mot chu trinh doc vao duge chia lam hai nua. Chan ra SEL = 0 c6 tac dung lam cho cdc bit diy liéu DO, D1, D2 va D3 dén dude may tinh PC, trong khi SEL = 1 cdc bit cdn lai 1a D4, D5, D6 va D7 sé duge doc vao. Bit diéu khién INIT co tac dung chuyén mach déi voi SEL. Nguén nuéi cho médun nay lay dién 4p +5 V ti vi mach 6n dp 7805 ma dién ap Idi vao cua né c6 thé dude lay tir bd pin 9 V hoac b6 nan dién tit nguén dién ludi 50 Hz. Dong dién tiéu thy chi cd mA. Ngoai 8 16i vao va Idi ra con cé mét bit c6 thé doc vao qua duéng dan trang thai va nhé bit diéu khién STROBE mét bit c6 thé duge doc ra. Tat ca cdc dudng dan di liéu dan dén mét dau ndi 32 chan det dé co thé ghép ni cdc phan cig riéng lé véi médun nay. Mot sé phan cing khac nhau sé duge lan lugt gidi thiéu sau nay. Hinh 1.5 S&p xép linh kién trén médun co sé dung cho céng may in. So dé sap xép linh kién cla médun co sd dung cho céng may in nhu mé ta trén hinh 1.5, con mach in tuong tng nhu trén hinh 1.6. Néu nhu 20 BO LUONG VA DIEU KHIEN BANG MAY TINH ban doc muén ty lam thi khi vé mach nén luu y 1a dong chit (C) DITA 96 trén mat han linh kién phai nam dung chiéu. [© _(@o\Ta' 96 LPT Hinh 1.6 So dé mach in ctla médun co sé dung cho céng may in. Dé lap rap mach nay ta can co nhiing linh kién sau: Linh kién ban dan: C2, C3, C4: 100 nF IC1: 7805 Diét ban dan: 1C2: 74HC245 D1: 1N 4001 13: 74HC 257 Phich cdm: Ty dign: K1: det 32 chan Cl: 100 pF /35 V K2: 25 chan Viée trao déi véi médun co sd dude thuc hién trong QBasic rat don gian. Khi can dua cdc dit liéu ra thi ta ding lénh OUT register-address, outbyte. Dia chi thanh ghi co thé la dja chi cua cdc thanh ghi di liéu hoac 1a cua cdc thanh ghi diéu khién. Bién outbyte chita dung mét con s6 trong hé dém mudi nam trong khoang 0 dén 255. 21 Thi du: OUT&H378, 128 Lénh nay truy nhap lén thanh ghi dit liéu cha céng may in. 6 6 cém 32 chan det cua médun co sé sé xuat hién cdc bit dit liéu sau: D7 = 1, D6 = 0, D5 = 0, D4 = 0, D3 = 0, D2 = 0, D1 = 0, DO=0. Chu trinh doc vao duge hinh thanh mét cach phtte tap hon va chuong trinh duéi day sé lam s4ng té hon nhan xét nay. ‘ Unterprogram: lese. lpt ‘ Punction: Chuong trinh nay dec vao mot byte qua ' céng méy in. K&t qua déing trong bién tinh theo ' byte ‘Hardware: Médun co sé ding cho <éng méy in da * trinh bay 6 chuong 1 : -Set up céng m4y in- basard = &H378 ‘Basicaddress cia céng m4y in datreg = basadr ’Datenregister statreg = basadr.+ 1 ‘Statusregister contrreg = basadr + 2 ‘Controlregister OUT contrreg, INP(contrreg) AND(255 - 4) ‘init = 0 inbytel = INP(statreg)’Doc vao ti D0,D1,D2,va D3 OUT contrreg, INP (contrreg) OR 4 eared inbyte2 = INP(statreg) ‘Doc vao ti D4,D5,D6,va D7 * inbytel: Statusregister bit 4 (SLCT) 1a DO ‘ Statusregister bit 5 (PE) 1a Di 22 BO LUONG VA DIEU KHIEN BANG MAY TINH Statusregister bit 6 (ACK) 1A D2 Statusregister bit 5 (BUSY) la /D3 ‘ inbyte2: Statusregister bit 4 (SLCT) 1a D4 af Statusregister bit 5 (PE) 1a DS i Statusregister bit 6 (ACK) 1a D6 id Statusregister bit 5 (BUSY) 1a /D7 inbyte = (((inbyte XOR 128) AND &HFO) /16) + ((inbyte2 XOR 128) AND &HFO) END SUB Viée si dung mét chugng trinh con co uu diém 1a trong chudng trinh chinh chi can co mét lénh riéng 1é da cé thé doc vao 8 bit dit liéu. Trong QBasic, viéc goi ra duge tién hanh bang lénh cal/ Jese.Ipt (inbyte). Sau do bién inbyte sé chtta con sé trong hé dém muii cia cdc bit dit liéu da doc vao. Khi cht ¥ téi chuong trinh con mét cdch chi tiét hon, ta sé thay thuce ra la hai byte sé dude doc vao. Sau dé cdc bit dit liéu cé gia tri con can phai duge phan loai va sap xép lai. Dong thai phai chu ¥ 1a hic nay diéu kién nhu INIT = 0 duge thuc hién. Lénh OUT contrreg INP (contrreg) AND (255 - 4) dat INIT lén Low (thap) dé khong gay anh huéng dén cdc bit khdc trong thanh ghi diéu khién. Dé dat duge diéu nay, trudc hét néi dung hién thdi cla thanh ghi diéu khién dugc doc vao sau do duge dat bang mét lién két AND (VA) véi (255 - 4) INIT thanh miic Low (thap). 1.2 CONG NOI TIEP RS 232 1.2.1 VAINET CO BAN VE CONG NOI TIEP Céng néi tiép RS-232 la giao dién phé bién rong rai nhat. Nguoi dang may tinh PC con goi cae céng nay la COM. 1, cbn COM 2 dé tu do cho cde ting dung khac. Gidng nhu céng may in, céng néi tiép RS-232 cing duge_stt dung m6t cach r&t thudn tién cho muc dich do hiong va digukhién. Viéc truyén dit ligu qua céng RS-232 duge tién hanh theo cAch néi tiép, nghia 1a cdc bit di ligu dude giti di néi tiép nhau trén mot duing 1. GIAO DIEN CUA MAY TINH 23 +dan. Trude hét, loai truyén nay cé kha nang ding cho nhiing khoang cach ln hon, béi vi ede kha nang gay nhiéu 1a nhé dang ké hon khi ding mét cong song song. Viéc dung céng song song cé mot nhuge diém dang ké la cap truyén ding qua nhiéu sgi, va vi vay rat dat tién. Hon nia, mic tin hiéu nam trong khoang 0 - 5 V da té ra khong thich tng v6i khoang cach ln. Céng néi tiép RS 232 khéng phai 1a mot hé thong bus, no cho phép dé dang tao ra lién' két duéi hinh thie diém véi diém giita hai may can trao déi thong tin voi nhau. Mét thanh vién thi 3 khéng thé tham gia vao cuéc trao déi thémg tin nay. Trén hinh 1.7 1a su bé tri chan cua phich cam RS 232 6 may tinh PC. 1 13 a. = 14 25 6 9 Chan (loai | Chan Qoai Chite ning 9 chan) 25 chan) 1 8 DCD - Data Carrier Detect Léi vao 2 3 RxD - Receive Data Léi vao 3 2 TxD - Transmit Data Léi ra 4 20 DTR - Data Terminal Ready Léira 5 7 GND - Néi dat 6 6 DSR - Data Set Ready Léi vao vi 4 RTS - Request to Send Léi ra 8 5 CTS - Clear to Send Léi vao 9 22 RI - Ring Indicator Léi vao Hinh 1.7 Sp xép chan cua céng ni tiép 6 may tinh PC. 24 BO LUONG VA DIEU KHIEN BANG MAY TINH Ti hinh vé ta thay 6 cdm néi tiép RS 232 c6 téng cong 8 dudng dan chua ké duéng néi dat. Trén thuc té c6 hai loai phich cdm, m6t loai co 9 chan va mét loai 25 chan. Ca hai loai nay déu co chung mét dac diém khae han v voi cong may in are sché néi vdi may in 6 ney tinh PC la 6 cam, Viéc truyén di liéu xay ra 6 trén én hai dudng dan. Qua chan c4m ra TxD (Transmit Data), may tinh gui cac dit ligu cla né dén may kia. Trong khi d6 cdc dit ign ma may tinh nhan dude, lai duge dan dén chan néi Rx RxD (Receive Data). Cac tin hiéu khac déng vai tré nhu 1a nhiing tin hiéu hé tro khi trao déi théng tin va vi thé khong phai trong moi ung dung déu dung dén. : Viéc truyén du liéu Mic tin hiéu trén chan ra RxD tuy thuéc vao dutng din TxD va théng thudng nam trong khoang - 12 V dén + 12 V. Cac bit dit liéu dude gui dao ngugc lai. Mic dién ap déi véi mic High nam gitia - 3 V va - 12 V va mic Low nam giifa + 3 V va + 12 V. Trén hinh 1.8 mé ta mét dong dif ligu dién hinh cia mot byte di liéu trén céng néi tiép RS 232. 6 trang thai tinh trén dudng d4n cé dién 4p - 12 V, Mét bit khdi dong (Startbit) sé md dau viéc truyén di liéu. Tiép dé 1a cac bit di liéu riéng lé sé dén, trong dé nhiing bit gid tri thdp sé dude gui trudc tién. Con sé cua cac bit dit liéu thay déi gitta nam va tam. 6 cudi cha dang div liéu con co mét bit ding (Stopbit) dé dat trd lai trang thai ldi ra (- 12 V). Bang téc d6 baud (doc 1a bd) ta thiét lap téc dé truyén dit liéu. Cac gia tri thong thudng 1A 300; 600; 1.200; 2.400; 4.800; 9.600 va 19.200 baud. Ky hiéu baud tuong ting véi sé bit dugc truyén trong mét gidy. Chang han nhu khi téc dé baud bang 9.600 co nghia 1a c6 9.600 bit di ligu duge truyén trong mdi giay. Tu dé ta suy ra rang con co mét bit bat dau va mét bit ding duge giti kém theo véi mét byte dit ligu. Nhu vay véi méi mét byte da cé 10 bit dude giti. Nhd vay ma cé thé ude doan mét cach dé dang ludng dit liéu cuc dai da dude truyén. Véi tée dd 9.600 baud cho phép truyén nhiéu nhat 14 960 byte méi giay. Qua cdch Use 1. GIAO DIEN CUA MAY TINH 25 tinh don gidn nay ta cing thay duoc mét nhuge diém khéng nhé cia cong truyén néi tiép 1a toe d6 truyén di liéu bi han ché. Startbit Stopbit tev LOW DO D1 |D2]D3 |04 OS |D6 | D7 -12V HIGH Aeee dee Ocred | 07 0 230 > 10tus<— T= 1/ fraud —— 1,04ms + Hinh 1.8 Dang dif liéu trén céng RS 232 véi téc dé 9.600 baud. Con mét vadn 4é niia 14 khuén mau (Format) truyén dit liéu cdn phai duge thiét lap nhu nhau ca 6 bén gti va cing nhu 6 bén nhan. Céc théng sé truyén cé thé dugc thiét lap trén may PC bang cdc cau lénh trén (cn goi 1a trong) DOS. Ngay ca tren WINDOWS cing cé nhiing chugng trinh riéng dé st dung. Khi dé cdc théng sé truyén dit liéu nhu: téc dé baud, sé bit dit liéu, sé bit ding, bit chan 1é (parity) co thé duge thiét lap mét cach rat don gian. 1.2.2. SY TRAO DOI CUA DUONG DAN TIN HIEU Cing nhu 4 céng may in, cac dudng dan tin hiéu riéng biét cing cho phép trao déi qua cac dia chi trong may tinh PC. Trong truéng hgp nay, ngudi ta thudng sit dung nhiing vi mach cé mic dé tich hgp cao dé co thé hgp nhat nhiéu chic nang trén mét chip. O may tinh PC thudng co mét_bé phat/ nhan khéng déng b6 van nang (goi tat 1a UART: Universal Asynchronous Receiver/Transmitter) dé diéu khién sy trao d6i thong tin gitta may tinh va cde thiét bi ngoai vi. Phé bién nhat 1a vi mach 8250 cua hang NSC hodc cdc thé hé tiép theo, chang han nhu 16C550. Bo UART nay cé 10 thanh ghi dé diéu khién tat cA cdc chite nang cia viéc nhap vao va xuat ra dif ligu theo cdch néi tiép. Lién quan dén néi dung 26 BO LUONG VA DIEU KHIEN BANG MAY TINH cia cudn sach nay chi dé cap dén hai diéu dang quan tam. Do 1a thanh ghi diéu khién-médem va thanh ghi trang thai-médem. Su sap xép cua cac thanh ghi nay nhu sau: Thanh ghi diéu khién-médem (dia chi co ban +4) Bit 0: DTR (Léi ra) Gia tri 1 Bitl: RTS (Léi ra) Gia tri 2 Thanh ghi trang thdi-médem (dja chi co ban +6) Bit4: CTS (Léi vao) Bit5: DSR (Lei vao) Gia tri 32 Bité: RI ° (Léi vac) Gia tri 64 Bit 7; DCD (Léi vay) Gia tri 128 Lai cing gidng nhu 6 céng ghép néi vi may in, cdc thanh ghi duge trao déi qua 6 nhé trong vung vao/ ra (Input/ Output).-Dia chi dau tién cé thé toi duce cia céng ndi tiép duge goi 1a dia chi co ban (Basic Address). Cac dia chi ghi tiép theo dude dat tdi bang viéc cong thém sd thanh ghi da gap cua bo UART vao dia chi co ban. Dia chi co ban cua céng néi tiép cha may tinh i c6 thé tom tat trong bang cdc dia chi sau: COM 1 (céng néi tiép thi nhat) Diachicoban = 3F8 (Hex) COM 2 (céng néi tiép tht hai) Diachicoban = 2F8 (Hex) COM 8 (céng néi tiép tht ba) Diachicoban = 38 (Hex) COM 4 (céng néi tiép thi tw) Dia chicoban = 2E8 (Hex) Trong QBasic cac tin hiéu qua céng giao dién néi tiép RS 232 c6 thé dude trao déi nhu sau: basadr = &H2F8 REM Basicaddress COM2 DTR dat 14-12 V: OUT (basadr + 4), INP (basadr + 4) AND (256 - 1) DTR dat la- 12 V: OUT (basadr + 4), INP (basadr + 4) OR 1 DTR dat la - 12 V: OUT (basadr + 4), INP (basadr + 4) AND (256 - 2) DTR dat la - 12V: OUT (basadr + 4), INP (basadr + 4) OR 2 DCD héi lai: level of ded = (INP (basadr + 6) AND 16)/16 1. GIAO DIEN CUA MAY TINH 27 level of ded = (INP (basadr + 6) AND 32)/32 level of ded = (INP (basadr + 6) AND 64)/ 64 DCD hdi lai: level of ded = (INP (basadr + 6) AND 128)/ 128 Duong nhién trong hau hét cdc ting dung cia giao dién néi tiép khéng doi héi phai lap trinh cho tat cA cdc dutng dan mot cach riéng biét. Dung cho muc dich nay da cé cdc chip théng minh duge ding 6 phia bén nhan va bén gifi. Sau dé phai ké dén la trong QBasic c6é nhiing lénh rat don gidn phu hop véi bién ban truyén RS 232. Chang han nhu c6 hai may tinh PC ghép néi véi nhau qua céng néi tiép thi chi céin cé mét lénh dé giti mét byte di liéu dung khuén mau téi bén gui. _ Bang lénh OPEN COM giao dién néi tiép sé dude mé. Bang PRINT va INPUT cac dit liéu c6 thé duge giti va duge doc. Cu phap hoan chinh cia lénh dude miéu ta mét cach day di trong bang duéi day: OPEN “COMn”: Options1 Options2” [{ FOR Mode / AS [#] Dateinr% LEN= Sentencelength % n Céng mé dé truyén dit liéu: 1 = COM1; 2 = COM2 v.v Option1 Cée théng sé truyén diz liéu hay duge st dung nhat (Baud) [ ,{[Parity] [,[Daten] [,[Stop]]]] O Baud la téc dé truyén dif liéu tinh ra baud cua thiét bi dude mé: : 75; 110; 150; 300; 600; 1200; 2400; 4800; 9600; 19200 O Parity chi ra 1a tinh chan lé can phai duge kiém tra nhw thé nao: N (khong kiém tra) E (chan) O (é) s (ky tu tréng) M (dénh dau) PE (cé kiém tra ldi) O Daten (dt liéu) 14 con sd cha cdc bit dir liéu trén byte: 5, 6,7,8 O Stop 1a sé cha bit Stop: 1; 1,5; 2 Thong thudng thiét lap: 300 baud, chan, 7 bit dif liéu, 1 Stopbit 28 Option2 Mode BO _LUONG VA DIEU KHIEN BANG MAY TiNH Mét danh sdch cde tham sé it dude st dung hon, cdc tham sé nay duge ngan cach bang du phay: Option. Mé ta ASC BIN CD{m} CS{m] DS{m] LF OPIm] RB[n) RS TBin) Khi md may trong ma ASCII Khi mé may trong ma nhi phan Khang dinh thii gian chd 16i déi voi dutng dan Data-Carrier-Detect DCD (bang mili piay: ms) Khang dinh thdi gian chd 1di déi voi duéng dan Clear-To-Send (CTS) bang mili giay (ms) Khang dinh thai gian ché 16i déi voi dung dan Data-Set-Ready (DS) bang mili gidy. (ms) Gui mot ky tu xudng dong sau mot ky tu hai vé dau dong Khang dinh OPEN COM cén phai chi bao lau cho dén khi tat ca cdc lién két truyén dit liéu da mé (bang mili giay) Khang dinh kich thuée bé dém bén nhan (bang byte) Nén lai su xudt hién cha mot yéu cfu giti Khang dinh kich thuéc cha bd dém truyén (bang byte) INPUT, OUTPUT: hoac RANDOM (Sw thiét lap tiéu chuan) ¢ INPUT chi ra rang giao dién da mé dé nap dit liéu vao mét cach tuan tu. . * OUTPUT chi ra rang giao dién da md dé xuét dit liu ra mét céch tuan tu. « RANDOM chi ra rang giao dién da mé trong kiéu 1. GIAO DIEN CUA MAY TINH 29 (mode) truy nhap truc tiép. Dateine% M6t sé nguyén nam giita 1 va 255 d&c trung cho kénh truyén dit liéu, cho dén lic né van mé. Dé daicdu% D6 ldn bé dém trong mode truy nhap truc tiép (mac dinh la 128 byte) Thi du: OPEN “COM2: 19200, N, 8, 1, CS0, DSO” FOR RANDOM AS #1 Lénh nay mé cdng néi tigép COM2 véi 19.200 baud, khéng cé bit kiém tra chan lé (parity), tam bit dit liéu, m6t bit ding nhu la kénh truyén dit liéu véi s6 1. Qua viéc mé giao dién bang lénh OPEN ca hai dudng dan RTS va DTS duge chuyén sang + 12 V. Véi khuén mau truyén da dugc thiét lap, bay gid cdc di liéu cd thé dude doc vao va dua ra. Viée git dit ligu tuan theo lénh PRINT #, ky higu $. Ta phai chui ¥ 1a khéng bao gid duge phép quén lap déu cham phay 6 cudi cua lénh ! Bdi vi néu khong thi mét ky tu tha hai, cu thé la CR (Carriage Return) sé duge giti kém. Dau chdm phay sé ngan lai ky tu CR. Ky hiéu $ co thé 1a mot ky tu nao dé tw bé ky ty IBM. Lénh INPUT $ (n, #1) doc n byte qua giao dién néi tiép. Gia tri duge doc vao 1a mot xau va c6 thé duge bién déi bang lénh ASC (String $) thanh mau bit tuong tng. Dé doc vao m6t gia tri dién ap cua mét b6 bién déi A/D thi can cé lénh sau: u = ASC (INPUT $) 1, #1)). Bién u sau d6 chtta mdt gid tri bing sé nam giita 0 va 255; (Thong thudng, ky hiéu dién 4p dugc viét bang U, nhung 6 day dién 4p dudc xem nhu mit bién. nén ding ky hiéu u!). Bang PRINT#1, CHR$( ); cho phép gui mét mau bit truc tiép qua céng néi tiép. Cac thi du duéi day sé minh hoa rd hdn cdc tng dung cia lénh PRINT#1: Thi du: XY 30 DO _LUONG VA DIEU KHIEN BANG MAY TINH Lénh Mau bit duoc gti Ghi chu D7 D6 D5 D4 D3 D2 D1 DO PRINT #1,° A”, 0 1:0 0 0 0 0 1 MAaASCII cia A PRINT #1," a”, oO 1 1 0 0 0 0 1 MaASCII ctaa PRINT #1, CHR$(65) 0 1 0 0 0 GD GB 1 cd gid tri 65 PRINT #1, CHR§(0) OF Ors On Oat Or Oe OieO) aco piacere Gd. PRINT #1, CHR$(255) 1 1 1 1 1 1 1 1 ¢cé gid tri 255 PRINT #1, CHR$(15) Oe OO Ole) co mia tris: G6 cuéi cha mét chudng trinh, trong dé da ding lénh OPEN dé mé giao dién néi tigp, thi lai khong duoc quén lénh déng CLOSE. Lénh CLOSE sé dong giao dién néi tiép va sau dé dudng dan DTR va RTS lai dude dat trdé lai mite LOW (- 12 V). 1.2.3 BO GUI NOI TIEP Hinh 1.9 chi ra mét bé gui néi tiép don gian, bé nay gui 8 bit di liéu ké sat song song qua giao dién néi tiép téi may tinh PC. Khuén mau truyén dit liéu 1a bit khdi déng (Startbit), 8 bit di ligu, mot bit ding (Stopbit) khong cé parity, 9.600 baud. ~ 6 day dé néi véi may tinh PC cdn cé hai dudng dan. Léi ra cia bo gui ndi tiép duge dan téi téi chan ra RxD cia may tinh PC. Déng thdi hai chan mass duge néi voi nhau. Bang mach dién don gian nay, tuy tig trudng hgp, cé thé cho phép theo mét phuong cach don gian hdi lai dién dp cia bd bién aéi A/D hoac mau bit diéu khién. Mach dién cé thé dude mé ta nhu sau: Nguén nuéi dude lay truc tiép ti hai day dan RTS va DTR. Khi hai giao dién déu da duge mé dudng din co dién ap + 12 V va méi dutng dan co thé cung cdp mot dong trén 5 mA. Bé én Ap 78L05 tao ra mat dién 4p + 5 V én dinh. GO chan 2 cia bé dém nhi phan 74HC161 c6 mét tin hieu vdi tdn sé 9.600 Hz. nghia 1a dung bang téc dé baud. G Idi ra QD... QA cua bé dém nhi phan thay déi tir 0000 luc ban dau véi su gilt nhip cua trang thai logic cha ching phi hop véi hé thong sé nhi phan réi dat dén 1111. Su gitt nhip tiép theo dan tré lai trang thai dém 0000 1. GIAO DIEN CUA MAY TINH 31 va cudc chdi lai bat dau tir dau. Cac Idi ra cha bd dém dan dén cac li vao dia chi A, B, C cua hai bé quét dong cia vi mach loai 74HC151. Cac 1di vao DO... D7 cha né duge truyén qua ké tiép nhau sang léi ra y. Bit khéi dong mé dau cuéc truyén dif liéu. Sau day cdc Bit dit lidu 44 duge dat truéc 6 chuyén mach DIP duge dan téi léi ra y va nhé vay dén dude may tinh PC. ae racsa ol 4/6 Tend | foseoorte Hinh 1.9 Bé gifi néi tiép. Sau khi mot byte di liéu day du da dugc truyén 1a tiép dén bit dig, bit nay duce giti cho dén khi bo dém 74HC161 Iva chon lai bit khdi dong 6 trang thai dém 0011 (3 dec.). Ca hai diét cung véi dién trd 10 kQ tao nén mét céng HOAC (OR), céng nay ké tiép hai 1éi ra cia bd quét dong. Céng HOAC nay 1a can thiét bdi vi 106i ra QD cia bd dém luén luén chi kich hoat mét bé quét déng, trong khi 16i ra kia luu lai trong trang thai dién tré cao. 32 BO LUONG VA DIEU KHIEN BANG MAY TINH Dé doc vao cdc byte dit liéu, tat nhién 1a trong méi ngon ngit }ap trinh ta cé thé viét mot chuong trinh tuong ting. Mét kha nang khac dé giao tiép truce quan (Visualization) 1a dung cac chudng trinh chay trong WINDOWS. Khi dé cé thé thiét lap tat ca cac théng sé truyén mét cach thuan tién. Cac dit liéu nhan duge sé duge mé ta trén man hinh nhu la Xéu . Chang han nhu khi ta thiét lap 6 b6 gui néi tiép mau bit véi gia tri 65 (dec.) thi trén man hinh sé hién lén chit A. 1.2.4 BO PHAT NHAN-KHONG DONG BO VAN NANG CDP 6402 2 & TRC A csi cLs2 ses, PL CRU O7IN D6IN OSIN O4IN O3IN o2IN D1IN DOIN TETTTT TT 1 2 3 « 5 6 7 . 2 40 ev 12 a2 14 43 16 a7 yittttttt ag aetga / TEAL, Serial Output “ TBRE s BERRINSSsSeseeaessss Y 33 3 Serial Input Hinh 1.10 Bé tri chan cla UART CDP 6402. Nhiing tinh chat sau dac trung cho vi mach CDP 6402 O Cong suat tiéu thu khong dang ké: 7,5 mW 6 3,2 MHz va Vee = 5 V. OQ Tée dé baud: dén 200 kBaud khi dién ap ngudn nudi la +5 V. dén 400 kBaud khi dién 4p nguén nuéi ja + 10 V. Q Dién ap nguén nudi tx 4 V dén 10,5 V. O Dat khuén mau truyén dit liéu bang phan cting. GO Su dung don gian. G Gia thanh gan 10 USD (nam 1996). 1. GIAO DIEN CUA MAY TINH 33 Nhu 6 trong muc truéc da dé cap dén, dé truyén dit ligu qua giao din néi tiép dA cé cdc chip dude tich hop 6 mde dé cao. Mét linh kién loai nay la b6 UART CDP 6402 cua hang HARIS. B6 UART (Universal Asynchronous Receiver/ Transmitter) nay chtia trén cing chip mét bd gui va bé nhan néi tiép hoat déng hoan toan déc lap voi nhau. Bé giti n&i tiép truyén di sau mét xung khdi déng céc dit liéu xép ké sét qua mét dudng dan t6i bd nhan va gui kém theo mat cach tu dng cdc bit khdi dong va bit ding. Bén bé nhAn lai c6 duge cde dit ligu da néi tiép dén aé su dung song song. Diém dang luu y 6 vi mach nay la khuén mau truyén dit liéu c6 thé duge thiét lap truéc bang phan cting qua cdc mitc légic 6 cdc chan. Nhd vay ma vi mach nay cé thé duge si dung mét cach van nang. Bang dudi day mé ta chic nang cla cdc chan riéng biét: Chan Ky hiéu M6 ta 1 VDD Cuc duong cia nguén nudi 2 NC Khong ding 3 GND Mass, Dat, 0V 4 RRD Receive Register Disable Khi tin higu nay dan dén mic High thi cac dudng dan di ra DOOUT dén D7OUT chuyén sang trang thai dién tré cao 5 D7 OUT Cc bit dit liéu da dén theo cach néi tiép 8 chan 6 Dé OUT 20 sé xuat hién theo cdch song song 6 cdc Idi ra 7 D5 OUT ba trang thai (tristate): DTOUT dén DOOUT. 8 D4 OUT 9 D3 OUT 10 D2 0UT a3 D1 OUT 12 DO OUT 13 PE Parity Error: Sai s@ chan 1é 34 14 15 16 17 18 19 20 FE OE SFD RRC . DRR DR BO LUONG VA DIEU KHIEN BANG MAY TINH Mét miic légic 1 6 chan nay bdo hiéu 1a bit chan 1é da duoc lap trinh khéng déng nhat véi bit nhan dugc. Néu nhu bit chan lé khéng duoc kich hoat thi chan nay nam 6 mtic Low Sai sé Framming Muc High 6 chan nay bao hiéu 1a bit ding dau tién la khéng cé gia tri. FE git nguyén High cho én khi nhan duoc mét bit dimg co gia tri. Sai sé Overrun. OE sau do tré nén High, néu nhu mét byte méi da dude nhan. Truéc khi byte ci duge doc ti thanh ghi nhan. Status Flag Disable. . Mét mic cao 6 chan nay cé nghia 1a cae 1éi ra PE, FE, OE, DE va TBRL tré nén cé dién tré cao. Receiver Register Clock 6 RRC, tin hiéu git nhip cia bé nhan néi tiép dudgc dan dén. Tan sé cn phai duge thiét lap 6 gid tri 16 lan lén hon téc 46 Data Received Reset Mét xung Low 6 chan nay dat DR (Data Received) tré lai Low. Data Received DR = 1 bdo hiéu la cdc dit liéu da duge nhan mét cach day di va cé mat 6 cac 16i ra D7OUT dén DOOUT. Truéc khi mét byte dit liéu cé gid tri tiép theo c6 thé dude bdo hiéu, tin higu DR can phai dude dat lai bang mét xung 4m 6 DRR (chan 18). Receiver Register Input G chan nay tin hiéu Iéi vao néi tiép dude dan dén. 1. GIAO DIEN CUA MAY TINH. 35 21 22 23 24 25 26 27 28 29 30 31 32 33 34 MR TBRE TBRL TRE TRO DOIN DIN D2IN D3IN D4IN D5IN D6IN D7IN CRL Master Reset V6i mite High, viéc Reset linh kién sé duge thuc hién. PE, FE, OE va DR duge dat lai, trong khi TRE, TBRE va TRO duce dat lén mic cao. Transmitter Buffer Register Empty MOét miic cao 6 chan nay bdo hiéu 1a thanh ghi cia bd gui dang tréng va san sang tiép nhan diz liéu mdi. Transmitter Control Register Load Mot xung Low sé xod dé giti di cdc bit diy liéu. Bang sudn duong cdc dit liéu xép ké sat, song song D7IN dén DOIN sé dugc truyén vao thanh ghi cha bé gui va sau do duge gti dén bén nhan theo cach néi tiép voi bit khdi dong va bit dimg. Transmitter Register Empty Mét mitic cao bao hiéu 1a linh kién da lam xong viée gti Transmitter Register Output. Cac bit dit ligu xép ké sat song song DOIN dén D7IN duge giti bao gém bit khdi dong va bit ditng qua dudng dan TRO tdi bén nhan. Cac bit dix liéu 6 cdc 16i vao nay duge gui truc tiép dén noi nhan. * DOIN 1a LSB « D7IN 1a MSB Control Register Load: Nap thanh ghi diéu khién. Mét mic High nap cdc bit diéu khién vao thanh ghi diéu khién. 35 aa i 40 PL : cae Sia ea “EPE TRC DO LUONG VA DIEU KHIEN BANG MAY TINH cLs2 (CLS! PL EPE SBS DATA PARITY STOP Bist Bis 2) Bis LE(ODD) | LE 4S CHAN 1 CHAN 15 -ocoo DISABLED =| LE 15 LE 1 CHAN CHAN --coKim-- oo cooo- 5 5 5 5 5 0 0 0 0 0 QO DISABLED Q DISABLED }.5 0 LE 1 0 LE Ls 9 CHAN 1 0 CH. a i 8 8 8 8 8 8 fo ooo DISABLED | DISABLED 1,5 LE 1 LE CHAN CHAN o-e-csio COC OD OD Oo oO CO!iD- GO e -li-coxxlo-Qorm x} 1 1 0 0 0 0 1 DISABLED 1 1 x 1 Transmitter Register Clock G.TRC cé tin hiéu git nhip cia bé giti ndi tiép. h'Tan s6 cau phai due thiét lap lon hon tée dd baud 16 lan DISABLED 1 1, GIAO DIEN CUA MAY TINH 37 1.2.5 MODUN CO SG VAO/ RA 8 BIT KHONG CO NGUON NUOI PHU Duéi day 14 mét mach co kha nang hoat déng nhu 1a médun ghép néi véi giao dién néi tiép cia méy tinh PC dé nhap va xudt dit liéu tu 8 tin hiéu TTL. Médun nay co kha nang ghép néi véi b6 bién déi A/D, bd bién déi D/A, khéi dém va céc b6 phan ngoai vi khée va nhd vay cho phép né duge sti dung mét cach van nang. Dac biét 4 day phai nhdn manh 1a médun khéng ddi hdi cé nguén nudéi phu. Nguén nudi cho médun nay duge ldy truc tiép ti giao dién RS 232 6 may tinh PC. Mach dién doi héi dong dién tiéu thu cd mili ampe. Ngoai ra cdn cé thé ghép néi thém véi c4c mach phu tro, nén dong tiéu thu téng céng cuc dai cd 10 mA. Trén hinh 1.11 chi ra so dé dién cua médun. Hinh 1.11 So dé mach cla médun co sé ding cho céng néi tiép khéng cn nguén nuéi phy. Hat nhan cha mach dién nay 1a vi mach UART CDP 6402, linh kién nay ddi héi r&t it cdc linh kién phy 6. mach ngoai. Nguén nudi duge lay ra ti hai dudng tin hiéu DTR va RTS. Dién dp khi 6 trang thai khong” qué tai 1A + 12 V di qua hai diét dén 1di vao cua bd én 4p LM 2936 cia hang NSC. Vi mach én 4p nay c6 hai wu diém néi bat: dong tiéu thy cha vi mach nay chi c3 100 pA, cén su khdc nhau nhé nhat giita dién ap Yi vao va Idi ra c6 thé dat dén 0,2 V. Nhé vay vi mach LM 2936 cé thé duge xem 1a da dude du tinh truéc dé ding cho mach dién nay. Tin hiéu gitt nhip ding cho UART dugc lay ra tix mét b6 dao déng bao gém mét bd 38 BO LUONG VA DIEU KHIEN BANG MAY TINH dao bang trigger Schmitt, mét tu dién va mét dién tré nhu minh hoa trén hinh J.11. Véi cdc gid tri cha tu dién va dién tré nhu ghi-trén hinh vé, tan sé tuong tig cd 153 kHz. Mét su déng chinh chinh xdc dé cé dude tan sé 153.600 Hz dude thuc hién bang trimmer TR1. Tan sé da due thiét lap tuong tng vdi 16 lan téc dé baud cé gid tri 9.600 baud. Cac bit di liéu da nhan duge tu may tinh PC qua dudng dan TxD 6 6 cdm 9 chan dat dén médun co sd. Bdi vi tin hiéu nay cé mite dién Ap nam gitia + 12 V va - 12 V. Con médun co sé lam viée giita mic dién 4p 0 V va 5 V nén can cé mét su thich ung vé dién ap. Ngudi ta cho tin hiéu truyén qua dién tré R2 t6i didt én Ap ZD1 (4,7 V) dé han ché bién do dién ap cuc dai xuéng dudi + 5 V. Nhé vay ma 6 1éi vao cla bé dao tiép theo mtc dién dp tré lai tuong thich TTL. Léi ra néi tiép TRO cha bd UART duge dan qua mét b6é dao dén chan ra RxD 6 phich cdm 9 chan. Dé noi ghép véi may tinh PC khéng duge phép ding mét cap néi médun 0 véi cdc duéng dan tin hiéu bat chéo, ma nén dung cap néi 1:1. Viéc lap rap b6 UART tién hanh theo cach thong thudng. Déi vii viée truyén dit liéu cdc mach cha bit diéu khién CLS1 = 1, CLS2 = 1, PI = 1, EPE = 0 va SBS = 0 chi ra cdc khuén mau du liéu sau day: 8 bit dit ligu, mot bit khdi dong, mt bit dimg, khéng co bit chan 1é. Khuén mau nay cing phai dude thiét lap bén may tinh PC vi néu khéng thi bd UART sé nhan duge nhiing dit liéu sai. Nhé co C6 va R3 ma ci méi lan bat dién vao may lai xay ra su dat lai (Power-On-Reset). Cac dit liéu 16i ra D7OUT dén DOOUT cing nhu byte dit ligu da dude giti D7IN dén DOIN cé mat 6 6 cdm 32 chan det. Mach 6 chan ra DDR (chan 18) 1 rat dang quan tam. Dé hiéu dude ta can chu y: Khi cdc du liéu da nhan dugc mét cach day du thi tin hiéu DR chuyén sang mic High. Chi khi nao nhan dude mét xung Low 6 DDR thi DR méi duce dat tré lai mttc Low. Xung 4m nay dugc lay ra tit byte dit liéu tdi tiép sau day. Muén thé ngudi ta sti dung bit khdi déng, bjt nay sau bé dao sé cd mttc Low dang can cé. Trén hinh 1.12 va 1.13 mé ta su sap xép linh kién va so dé mach in cia médun co sd. CAc linh kién can thiét cho mach dugc liét ké nhu sau day: L._GIAO DIEN CUA MAY TINH 39 [oO ° dks | cm # dre te) 10" o} oft D xt at cI | a) a aet= Q QI Hinh 1.12. Sap xép linh kién tran médun co sd ding cho céng néi tiép khéng can nguén nudi phy. Linh kién ban dan: Tu dién: 11: CDP 6402 ch 1lnF 1C2: 74HC14 C2, C4,C5: 100 nF 1C3: LM 29362-5.0 C3, C6: 10 uF /16V (hodc 78L05) Dién trd: Didét ban dan: Rl: 68k D1, D2: 1N 4148 R2: 10k aoa aay R3: 1kQ Phich cam: TRI: 5kQ K1: det 32 chan K2: 9 chan 40 BO_LUONG VA lo! (C) DITA‘ 86 ComvCcC @| Hinh 1.43 So dé mach in cla madun co sd ding cho céng ndi tip khéng can nguén nudi phu. Médun cd s6 nay 6 thé trao déi vai may tinh PC nhu thé nao ? Trong QBasic céng viée nay dude thuc hién mét edch rat don gian. Bang lénh PRINT #1, CHR $ (outbyte), mét mau bil mong mudn sé dén duce cic dujng dan 1di ra D7OUT dén DOOUT cia médun co sd. Bién outbyte chtta dung mét con sé trong hé dém mudi nam giita 0 va 255. Viée mé ta chi tiét vé van dé nay da dude dé cap dén 6 trén day. Chidan: Diéu kién dé doe vao mét byte dit liéu 14 mét xung Low 6 tin hiéu TBRL. Bang swén diong cha xung gitt nhip cac dit liéu xép ké sat song song D7IN dén DOIN duge chuyén vao | thanh ghi bén giti vA sau day duoc giti néi tiép vdi bit khdi déng va bit diing téi may tinh PC. Viée doc vao cha cac bit di ligu xép ké sdt song song D7IN dén DOIN dién ra sau lénh inbyte = ASC (INOUT $ (1, #1)). Sau dé bién inbyte chita dung gia tri cua cdc byte dw liéu nhu 1a mot gid tri trong hé dém mudi. 1. GIAO DIEN CUA MAY TINH 41 Tin hiéu nay cing co mat 6 6 cém 32 chan det. Chuong trinh dang lam thi du duéi day mét ln nita lam sang td hon viéc trao déi théng tin giifa may tinh PC va médun co sd dién ra nhu thé nao. ‘ Program: COMBSP - Function: Chuong trinh nay ding lam thi dy minh * hoa mét cdéch ré rang hon xem médun co sé ding cho ' giao dién néi tiép 6 myc 1,2,5 dén 1,2,7 cd thé ‘ duge trao déi tir m4y tinh PC nhu thé nao ? ' Hardware: Can cé mét médun co sé ding cho giao * aién néi tiép nhu 6 mic 1,2,5 dén 1,2,7 OPEN “com2: 9600,N8,1,CS,DS" FOR’ RANDOM AS #1 * CLS PRINT "Ban hay cho véo con sé hé dém 10 cla byte” PRINT “dit liéu dugc dua ra (0... 255)” INPUT outbyte = = Xudt ra cdc byte dt PRINT #1, CHRS (outbyte); Két thiic viéc xudt dt Bay gis di liéu ducc doc vao outbyte = outbyte AND (255 - 1) PRINT #1, CHR$ (outbyte); outbyte = outbyte OR 1 PRINT #1, CHR$ (outbyte); lated Doc vao cdc byte di liéu ------------ inbyte = ASC (INPUTS (1, #1)) PRINT "Bit dit 1iéu d& dec vao 1a:", inbyte END 1.2.6 MODUN CO S6 VAO/ RA 8 BIT VOI MAX 232 Trong muc nay sé gidi thiéu mét médun cd sé khac nita dé ghép ndi vdi giao dién néi tiép cha may tinh PC. Médun nay tudng thich hoan 42 BO _LUONG VA DIEU KHIEN BANG MAY-TINH toan véi 6 cdm 32 chan det 6 médun trinh bay trong muc 1.2.5. O day, médun nay ciing cho phép ca doc vao cing nhu dua ra 8.tin hiéu TTL qua giao dién néi tiép cua may tinh PC. Sy khac nhau so véi médun trudc day la 6 nhiing théng sé ky thuat da duce cai tién. EEE EEERES s39908 sebea 2 z § g 3 828 SEERRES Hinh 1.14 So dé mach cua médun co sé dung cho céng néi tiép vdi MAX 232. Médun co sé trén hinh 1.14 cé chtta vi mach MAX 232 cha hang MAXIM dé thich ting tin hiéu 6 mic (+ 12 V, - 12 V) trén giao dién RS 232. Vi mach nay nhan mtic RS 232 da duge gui tit may tinh PC va bién déi tin hiéu nay thanh tin hiéu TTL, dé réi sau dé dan tdi bo UART CDP 6402. Tin hiéu tit bd UART duoc bién déi thanh mic + 12 W/- 12 V va gui téi may tinh PC. Theo cach nay khoang cach gitta may tinh PC va médun co sé c6 thé dat dén trén 20 m. Mét uu diém khéc nita cha médun co sé 1a kha nang thiét lap téc dé baud. Muén thé, trong mach L_GIAO DIEN CUA MAY TINH : 43 da sit dung bé dém nhi phan 74HC4060, b6 dém nay cé nhiing 1éi vao phu thém dé néi true tiép véi mot bé céng hudng thach anh, oI oe miso a is =] fla cs - _— OS 2) ell | | Bet @ “iF @° 7 8 @® @s «) @s oO ee 8 2 Hinh 1.15 Sp xép linh kién trén médun co sé ding cho céng néi tiép v6i MAX 232. Bang viéc thay déi vi tri mét cu néi (Jumper) c6 thé dat mét cach chinh xde cdc gid tri 2.400; 4.800; 9.600 va 19.200 baud. Mét su tinh chinh bd sung bang mt trimmer 6 day la khong cdn thiét. Can chu y rang tan so 6 chan 17 va 40 cua b6 UART can phai,tuong ting véi 16 lan téc d6 baud. Chang han nhu 6 Idi ra Q4 (cua IC] 74HC4060) c6 cde xung vung géc vai tan sé 4,9152 MHz : 24 = 307.200 Hz. Tan s6 nay tng véi 16 lan téc d6 baud 19.200 baud. Nguén nuéi duge thiét ké vdi bd én Ap 7805 dé co duge dién ap 5 V 6n dinh 4 Idi ra. Con 6 101 vao cdn cé mét dién 4p trén 7,5 V, dién 4p nay cé thé lay tit mot b6 ndn dong hodc ta mét bé pin 9 V. Trén hinh 1.15 va 1.16 1a so dé sdp xép linh kién va mach in cla médun. 44 DO LUONG VA DIEU KHIEN BANG MAY TINH [e, (C) DITA‘ 96 COMMAX © © Hinh 1.16 So dé mach in cla médun co sé ding cho céng néi tiép véi MAX 232. CAc linh kién can thiét cho mach dude liét ké dudi day: Linh kién ban dan: Tu dién: 7 ICl: 74HC4060 “c1,c2 22 pF IC2: CDP 6402 C3: 100 pF / 35 V IC3: 7805 C4, C5, C10, C13: 100 nF IC4: MAX 232 C6, C7, C8, C9, C11, C12: Dién trd: A ae Rl, R38: 1kQ R2: 10MQ Phich cém: K1: det 32 chan K2: 9 chan Diét ban dan: D1, D2: 1N 4148 ZD1: 4,7V L_GIAO DIEN CUA MAY. 45 1.2.7 MODUN CG SG VAO/ RA 8 BIT CACH LY VE MAT DIEN 232% Ka R 539093 2hhag a Hinh 1.17 $0 88 mach cla médun co sé dung cho céng néi tiép véi sucach ly vé dién. Trong muc nay mét médun khéc nita c6 thé néi véi giao dién noi tiép sé duge gidi thiéu. Su khac nhau co ban so véi cdc médun da gidi thiéu truéc day 1a su cach ly vé dién gitta may tinh PC va médun. Nhé cé linh kién ghép néi quang (optocoupler) ma tat ca cdc tin hiéu dén véi may tinh PC duge cach ly. Do vay ma khéng cé su ghép néi truc tiép vé mat dién gitta déi tudng do va may tinh PC. Néu khong ké dén tinh chat nay thi cé thé xem nhu médun nay da duge mé ta trong muc trén day, con so 46 dién dugc minh hoa trén hinh 1.17. Nhitng dac diém cia médun nay cé thé tém tat nhu sau: Q Thiét lap chinh xdc téc d6 baud bang bé céng hudng thach anh. Q Bén téc dé baud dat duge bang cau ndi: 2.400; 4.800; 9.600 va 19.200 baud. 46 DO _LUGNG VA DIEU KHIEN BANG MAY TINH Q Nguén nudi ding qua bé nan dién hoac bé pin 9 V. Q Ngan cach vé dién véi may tinh PC. Hinh 1.18 Sp xép cdc linh kign médun co sé vaol ra 8 bit cach ly vé dién. Cac linh kién can dung dé ldp rap mach 1a: Linh kién ban dan: Dién trd: 1eTe 74HC4060 R1, R38: 1kQ IC2: CDP 6402 R2: 10 MQ IC3: 7805 Ra: 4,7 kQ IC4: CNY 74-2 R5,R8: 1,5 kQ Tl: BC 557 Oe R7: 390 Q Ty dién: a C1, C2: 22 pF Didt ban dan: C8: 100 nF /35V D1: 1N 4001 C4, C5, C7, C8: 100 nF D2: 1N 4148 C6: 10 uF /16V Phich cdm: 1 GIAO DIEN CUA MAY TINH 47 Thach anh: K1: det 32 chan Ql: 4,9152 MHz K2: 9 chan [® (@)DITA‘ 96 CoMoPTO @| Hinh 1.19 So dé mach in médun co sé vao/ ra 8 bit cach ly vé din. Trén hinh 1.18 va 1.19 la su sép xép linh kién va mach in caa médun co sé; con trén hinh 1.20 la hinh dang bé ngoai cua céc médun co sd da dude gidi thiéu. 48 BO _LUONG Hindi 1.20. Hinh dang ben ngoai cia mét 83 médun cosd. 4.3 CAC RANH CAM TRONG MAY TINH PC 1.3.1 SU SAP XEP CHAN TREN RANH CAM Khi mot may tinh xuat xudng thi ca nha san xudt va nguoi dung déu ngam hiéu 1a cdu hinh chua han da hoan chinh, ma tay ting mue dich su dung co thé dua thém yao cac ban mach (card) ghép noi dé mé rong kha nang dap Ung cla may tinh. Bén trong may, ngodi cdc ranh cam ding cho card vao/ ra (/O), card man hinh, van con nhiing ranh L._GIAO_DIEN CUA MAY TINH 49 cam dé trong. Cac ranh cam nay dudc tiép tuc dung dé ghép néi cdc ban mach cdm thém vao véi may tinh PC 6 may tinh PC/XT ranh cdm trong may tinh chi c6 mét loai véi 46 rong bus 1a 8 bit va tuan theo tiéu chuan ISA (viét tat tx Industry Standard Architecture). Tu may tinh AT tré di viée bé tri chan trén ranh cdm tré nén phtic tap hdn, tuy theo tiéu chuan duge Iya chon khi ché tao may tinh. Cac loai ranh cam theo nhimng tiéu chuan khac nhau cé thé ké ra nhu sau: ° Q Ranh cam 16 bit theo chuan ISA (Industry Standard Architecture). Q Ranh cdm PS/2 voi 16 bit theo chuan MCA (Micro Channel Architecture). Q Ranh cdm PS/2 véi 32 bit theo chuan MCA {Micro Channel Architecture). Q Ranh cam 32 bit theo chuan EISA (Extended Industry Standard Architecture). Q Ranh cém 32 bit theo chuan VESA VLB (VESA Local Bus Standard). Q Ranh cd4m 32 bit theo chudn PCI (Peripheral Component Interconect-Standard). Cho dén nay phan én cdc card ghép néi dung trong ky thuat do ludng va diéu khién déu duoc ché tao dé dat vao ranh cdm theo chudn ISA, cho nén dudi day sé duge gidi thiéu chi tiét hon. Trong cdc truéng s cdc ranh cdm khae, ban doc cé thé xem hgp can tim hiéu chi tiét thém phan phu luc 3 4 cuéi sdch. Ranh cam theo chuan ISA: Thong thudng ranh cdm co 62 dudng tin hiéu dang cho muc dich thong tin véi mét card cdm vao. Vé co ban cdc dung tin hiéu nay duge chia ra thanh cdc dudng dan tin hiéu, dwéng dan dia chi va dudng dan diéu khién. Béi vi ngay ti cdc may tinh PC/ XT da san cé céc ranh cim 62 chan nay, trén d6 cé 8 dung dan di liéu, nén déi khi ngudi ta cing goi luén ranh cém 62 chan nay 1a ranh cam 8 bit. Chi nhiing card 8 bit mi dude cAm vao ranh nay. Bang duéi day chi ra su sap xép chan ra cua ranh cdm m6 rong 8 bit. 50, DO LUONG VA DIEU KHIEN BANG MAY TINH GND BOL AOL 7IOCHCK Reset BOo2 A02 D7 _| +5V Bos ‘A03 Dé IRQ2 Bo4 | A04 D5 -5V BOs ‘A05 D4 DREQ2 Bos ‘A06 D3 -12V BO7 A07 D2 Du tri Bos A08 Di +12V Bod ‘A09 DO GND B10 ‘Al0 /TOCHRDY /MEMW Bll All AEN /MEMR B12 Al2 A19 OW B13 A13 Al8 7IOR . B14 Aide Al DACKS Bis | ‘Al5 NG DREQ3 B16 ‘Al6 A15 /DACK1 B17 All__{_Al4 DREQ1 B18 Ais. | A13 /DACKO B19 Alg Al2 CLK B20 r az | an IRQ7 B21 Al Al0 TRQ6 B22 A22 Ag IRQS ~ B23 A238 AS IRQ4 B24 A24 AT IRQ3 B25 ‘A25 ae /DACK2 B26 A26 AS TC B27 AQ7 Aa ALE B28 | Ags A3 +5V R29 ‘A29 A2 osc B30 A30 Al GND _Ba1 [Last AO ‘| * L. GIAO DIEN CUA MAY TINH 51 Vé sau may tinh PC/ AT ra déi chung co thém mét ranh thu hai nam thang hang véi ranh 8 bit ké trén va c6 36 chan. Trén ranh nay cé chita cdc tin hiéu 16 bit. Nén khi cé thém ranh c&ém nay thi ngudi ta goi chung ca hai ranh la ranh cdm 16 bit. Cac ranh cAm ti 32 bit trd [én ding dé ghép thém vao nhiing card cé chat lugng r&t cao, va vi vay trong pham vi néi dung cia cuén sdch nay chua duge quan tam. Ranh cdm 16 bit bao gém ranh cdm 8 bit va cé thém mot ranh cam tha hai. Dudi day 1a su sap xép chan ra cua ranh cém tht hai: /MEM C816 | —_Do1 Col SBHE | /1-0 CS16 Doz Coz LA23 IRQ 10 D03 C03 LA22 IRQ 11 D04 C04 LA21 IRQ 12 DO5 C05) LA20 IRQ 13 DO6 coe LA19 IRQ DO7 C07 LA18 “T7DARK 4 DOs cos LA17 DRQO Dog cog 7MEMR 7DARK 5. D10 C10 7™MEMW. DRQ5 Dil Cll SD8 7TDARK 6 D12 C12 SD9 DRQ6 D13 C13 SD10 TDARK 7 i D4 C14 spi DRQ7 D15 C15 sD12 +5V D16 C16 sD13 /MASTER D17 C17 SD14 GND D18 C18 SD15 Kich thudéc lén nhat cia cdc card ISA 8 bit la: Q Chiéu cao 106,7 mm (hay 4,2 inhxo). Q Chiéu dai 333,5 mm (hay 13,13 inhxo). 52 DO LUONG VA DIEU KHIEN BANG MAY TINH O Chiéu day - ké ca linh kién - 12,7 mm (hay 0,5 inhxo). Con kich thuéc 1én nhat ca cdc card ISA 16 bit 1a: © Chiéu cao 121,92 mm (hay 4,8 inhxo). Chiéu dai 333,5 mm (hay 13,13 inhxo). © Chiéu day - ké c linh kign - 12,7 mm (hay 0,5 inhxo). Sy khac nhau giita hai kich thuéc nay chi 6 chiéu cao ma nguyén nhan la do vé ciia may tinh AT dugc thiét ké cao hon loai XT déi chut. ‘Tw céch sdp xép chan ra, ro rang 1a 62 dudng tin hiéu nam ca 6 mat han thiéc cing nhu mat sap dat linh kién. Do do cdc ban mach (card) cm thém vao bao gid ciing 1a nhitng card mach in hai mat. Bén canh 8 dudng dan dit liéu trén card cdn c6 20 dudng dan dia chi tu AO dén A19. Trong cuén sach nay cdc dutng dan diéu khién con lai cing it duge quan tam dén. Va khéng phai t&t cd cdc tin hiéu diéu khién ding dé tao nén mét card md réng déu duoc sti dung, nén thuéng thi ta cing chi cdn quan tam dén cc tin hiéu sau: Tin hiéu Huéng Mé ta Reset Ow ‘10R Léi ra Léi ra Léi ra Sau khi bat may tinh hoae sau khi ngat dién, dudng dan Reset sé kich hoat trong théi gian ngadn dé dua card da duge cdm vao dén mét trang thai ban ddu x4c dinh. Input / Output / Write Tin hiéu nay sé kich hoat khi truy nhap ghi Jén mét card mé réng. Mic thap chi ra rang cac dit ligu c6 gid tri dang chi dé dua ra 6 bus dit liéu. Cac dit liéu duge don nhan bang sudn trude. Input / Output / Read Mic thp eta dudng dan dia chi nay bdo hiéu su truy nhap doc trén mét card md rong. Trong thdi gian nay cdc dit liéu cé gid tri cén:phai s4p xép dé réi sau a6 duce dén 1. GIAO DIEN CUA MAY TINH 53 nhan bang suén truéec. AEN Léi ra Address Enable Duing dan diéu khién AEN ding dé phan biét chu trinh truy nhap DMA va chu trinh .truy nhap b6 xi ly. O mtic cao (High) DMA gidm sat qua bus dia chi va bus dit liéu; dung dan cé hiéu luc 6 mite thaép (Low). Duéng dan nay cdn phai dude st’ dung cho qua trinh gidi ma dia chi bdi card mé rong. 1.3.2 SY GIAI MA DIA CHi VA NOI BUS DU LIEU Ving vao/ ra cha m4y tinh PC da chiém giti 64 kByte cia bé nho téng céng véi dung lugng hang vai MByte tré lén. Vi vay, ving vao/ ra cua mét card mé réng khéng duge phép bao trim lén ving dia chi vao/ ra cua may tinh. Khi dua mét card mé rong vao sti dung, thi viée ddu tién la ta phai luu tam dén diém dang chu y nay. Bang duéi day sé chi ra su sap xép cua ving dia chi vao/ ra cla may tinh PC/AT. Dia chi (Hex) vao/ra Chic nang 000 - 01F Bé diéu khién DMA 1 (8232) 020 - 03F B6 diéu khién ngat (8259) 040 - 04H BO phat thai gian (8254) 060 - O6F Bo kiém tra ban phim (8242) 070 - O7F Déng hé thai gian thuc (MC 146818) 080 - OOF Thanh ghi trang DMA (LS 670) AO - OAF Bo diéu khién ngat 2 (8259) OCH - OCF B6 diéu khién DMA 2 (8237) OEO - OEF Dy trit cho mang mach chinh OF8 - OFF Bo déng xt 1¥ 80x87 1F0 - 1F8 Bé diéu khién dia cing 200 - 20F Céng dang cho tré choi (Game) 278 - 27F Céng song song 2 (LPT 2) 54 PO LUONG VA DIEU KHIEN BANG MAY TINH 2B0 - 2DF Card EGA 2 2E8 - 2EF Céng néi tiép 4 (COM 4) 2F8 - 2FF Céng néi tiép 2 (COM 2) 300 - 31F Dung cho card mé r6ng 320 - 32F Bo diéu khién dia citing 360 - 36F Céng néi mang (LAN) 378 - 37F Céng song song 1 (LPT 1) 380 - 38F Céng néi tiép déng bé 2 3A0 - 3AF Céng néi tiép déng bé 1 3BO0 - 3B7 Man hinh don sac 3C0 - 3CF Card EGA 3D0 - 3DF Card CGA 3E8 - 3EF Céng néi tiép 3 (COM 3) 3F0 - 3F7 B6 diéu khién dia mém 8F8 - 3FF Céng ni tiép 1 (COM 1) Tu bang nay ta thay ro rang 1a cdc dia chi 300 dén 31F (Hex.) da duge du tinh dé dang cho cdc card mé rong. Céc dung dan dia chi duge st dung déi véi ving nay 1a AO dén A9. Thong thudng thi cdc dia chi, ma duéi cac dia chi nay my tinh co thé trao déi véi card md réng, co thé dat duge 6 chinh trén card. Bay gid nhiém vu cua tam ban mach (card) dude gai vao la so sanh cdc dudng dan dia chi 6 m4y tinh véi cdc dia chi da dudc thiét lap xem c6 thong nhat khong va théng bdo su danh gid 6 mot bé diéu khién logic. Chi khi co sy thong nh&t mot cach chinh xe méi cé thé tién hanh su trao déi thong tin véi may tinh. Thong thudng thi trén mét card md réng cé nhiéu khéi chttc nang nhu: bé bién déi A/D, bé bién déi D/A, khéi xudt va nhap dit liéu sé, cdc khéi nay dude trao déi dudi nhitng dia chi khéc nhau ti may tinh. Trén hinh 1.21 chi ra mét mach giai ma dién hinh, ma ta sé con gap lai trén cde card md rong. Bo giai ma dia chi 74HC688 so sénh cdc duéng dan dia chi A2 dén AQ xem cé théng nhat véi cdc dia chi co ban dugce thiét lap trén card ma réng bang chuyén mach DIP. 74HC688 so sanh hai trong sé tam bit 1, GIAO DIEN CUA MAY TINH 55 xem c6 giéng nhau khong va khi cdc bit xép ké sat déng nhat sé tao ra mét tin hiéu Low 6 chan 19. Doe: Viet Bavisedresse + 2 Bastendresse + 3 Hinh 1.21 Mach gidi ma thudng dung trén mét card duge cm thém vao. Ngoai cai dé ra né con quy dinh vé quyén su dung mét 16i vao duge kich hoat /G. Ching nao ma chan ra nay cdn nam d mite High (cao) thi tin hiéu 16i ra cua bé so sanh van gity nguyén miic légic 1 déc lap voi muc légic xép ké sat. Binh thudng thi chan ra nay dude néi véi tin hiéu AEN. Chi khi tin higu nay dan dén mite thap thi cdc dit ligu c6 gid tri méi nam 6 trén bus. Do duge ché tao bang céng nghé CMOS ma déi véi cdc tin hiéu cha bus PC linh kién nay thuc té to ra la khong cé tai. Mach légic cha bé giai ma sinh ra tit cde dudng dan dia chi AO va Al tin hiéu danh gid cha bé so sdnh dia chi va hai tin hiéu OR, JOW 56 DO LUONG VA DIEU KHIEN BANG MAY TINH cdc tin hiéu lya chon déi véi cdc khéi chttc nang riéng biét. Vi thé bang cdc dia chi AQ va Al cho phép trao déi véi bén chite nang khac nhau khi doc vao hoac khi ghi, card md réng cing chiém bén dia chi. Mach légic cia b6 giai ma c6 chtta hai vi mach 74HCOO va 74HC138. Ba céng NAND lam cho bé dém bus 74HC245 sau day chi tré nén duge kich hoat (/G = 0) khi cdc diéu kién sau duge thuc hién: Tha nhat la card mé réng céim thém vao da trao déi duge (chan 19 cia vi mach 74HC688 bang khéng) va tht hai 1a mot chu trinh doc hoac la chu trinh ghi duge thuc hién (JRO = 0 hoac la IOW = 0). Khi ma chi mét diéu kién khéng duge thyc hién thi chan ra /G cha 714HC245 gitt nguyén 1a High va bé dém bus ding lai trong trang thai dién tré cao. G1 /G2A /G2B) © BA |Wo Nl W2 3 N45 NE 7 IOR Al AO ca pee fe 0 xX x x x x L 1 ie tt eae a - 1008) 0 0 OO Z 0 0 0 0 1 1 94 7 7 i 1 1 a os 0 0 0 i 0 7 1 0 1 eee et i ni 0 0 0 1 i 1 ea Q eee a. 1 1 Q 0 1 0 0 1 - iL PE oa 1 7 i 0 0 1 0 1 1 a z 1 uae - 4 1 0 Q 1 1 0 1 1 1 1 gee 5 90 ie ie 0 0 2 ei 1 1 1 ie i. oe af 0 Hinh 1.22, Bang chan ly cla vi mach gidi ma 74HC138 ten hinh 4.21. Ngoai ra, mach légic cha bé giai ma cn cé chtta mét linh kién dac biét nham lam gidm dang ké gid thanh cia b6 gidi ma. Vi mach 74HC138 cé chita mét bé gidi ma 1 trong 8 véi ba tin hiéu lua chon chip. Nhé mét con sé nhi phan, 6 linh kién nay ta cé thé chon dung léi ra tir trong sé tam Idi ra. Léi ra da dude lua chon sau dé sé nhan mtic Low, trong khi tat ca cdc léi ra khdc van gitt nguyén mic légic 1. Trong mach dién duge minh hoa trén hinh 1.21, cdc bit dia chi AO vA Al cing nhu 4. GIAO DIEN CUA MAY TINH 57 tin hiéu IOR dat dén cae 16i vao dia chi A, B va C. Con hinh 1.22 mé ta bang chan ly cia vi mach 74HC138. Dén day ta co thé tom tat lai la: card mé rong dude cdm thém vao ranh cam sé chiém bén dia chi, trong d6 mdi dia chi déu c6 thé dugec doc hoac 1a ghi. Vang dia chi cua card md réng cé thé viét nhu sau: Dia chi vao/ra Doe/ghi Léi ra tin (R/W) hiéu Dia chi co ban (chang han F 300 ) Doc Yo=0 Ghi Y4=0 Dia chico ban +1 (chang han F301) Doc Y1=0 Ghi Y5=0 Dia chi co ban + 2 (chang han F302 ) Doc Y2=0 . Ghi Y6=0 Dia chi co ban +3 (chang han F303 ) Doc Y3 =0 Ghi Y7=0 Trong QBasic cdc lénh can thiét dé ghi va doc dia chi.co thé viét dudéi dang: - Chu trinh ghi: OUT port address, outbyte - Chu trinh doc: inbyte = INP (port address) Vé van dé nay ta da cé dip tim hiéu trong muc 1.1 trudc day. BO giai mA logic dam nhiém déng thii su diéu khién cia b6 dém bus hai chiéu 74HC245, bé nay ndi cdc dudng dan dit liéu cua ranh cam PC véi cae duéng dan cha card mé réng. Su néi ghép nay 1a rét quan trong, nhd vay ma c4c mtc tin hiéu trén dung dan dit liu khong bi anh huéng qué manh. No cé chia 8 bé dém véi cdc 16i ra ba trang thai (Tristate) dé trao déi théng tin gitta cdc duéng dan bus dit liéu theo hai huéng. Huéng duge xéc dinh tu mite légic 6 16i vao DIR: DIR = 0 chuyén cdc dit liéu tit B sang A. Viée chuyén huéng di ligu cho phép quan ly . mét cach don gidn nht 1a bang tin hiéu /IOR. Ta cé thé néi truc tiép véi chan ra DIR. Duong nhién gia thiét la céng dix ligu A duge néi vdi cdc 58 DO LUONG VA DIEU KHIEN BANG MAY TINH dudng dit ligu cha ranh cdm PC va céng di liéu B voi dudng dan di lidu cua card md réng. Qua dé bao dam rang bé dém bus 74HC245 chi sép xép nhitng di liéu trén bus dit liéu cua may tinh PC. Khi ma may tinh PC thuc hién mé6t su truy nhap doc (/IOR = 0). Cac tin hiéu lua chon chip CSO dén CS7 c6 thé dude sit dung dé lua chon céc khéi chite nang khac nhau. Bang bén tin hiéu CSO dén CS3 c6 thé diéu khién cdc khéi ngoai vi khac nhau dé doc cae dit liéu. Cac khéi ngoai vi nay cé thé 1a bé bién déi A/D hoac la bé dém bus, bo dém nay day ra cdc dit liéu theo huéng ranh cdm PC. Nguéc lai cdc tin hiéu CS4 dén CS7 dong vai trd kich hoat khéi ngoai vi cin nh4p cdc dit liéu ti may tinh PC. Cae khéi nay co thé 1a bd bién déi D/A hoac bé chét dit ligu. Nhé vay ma cdc tin hiéu trigger déi v6i cdc phép do cé thé duce thuc hién. Hinh 1.28 minh hoa mét vai kha nang cho thay cdc tin hiéu nay da dude tan dung nhu thé nao. : Biscagessse rose s008 ns Hinh 1.23 Dau i tin higu CS vao Khai ngoai vi. Khi doc t¥ dia chi co ban thi CSO nhan mic Low va kich hoat bé dém 74HC244, bé nay day ra 8 bit di liéu cia né theo huéng ranh may tinh PC. Bay gid méy tinh PC c6 thé doc cdc dit liéu vao bdi vi bo dém bus 74HC245 4 thai diém nay cing da dude kich hoat. Véi CS1 bé bién déi A/D tré nén trao déi duge. Diéu nay xdy ra qua viée doc dia chi 3. GIAO DIEN CUA MAY TINH 59 (Basicaddress +1). Khi ta muén luu trit cdc di liéu lén thiét bi ngoai vi thi can dén cdi goi 1a bé chét di liéu. Vi mach 74HC574 c6 chtta 8 mach D-Flipflop, céc mach nay luu tri vao linh kién cdc di liéu xép ké sat 6 Yi vao CLK. Khi ta ghép néi CS4 true tiép voi 16i vao CLK cua 74HC574 thi khi ghi vao dia chi co ban cdc di liéu xép ké sat 6 ranh cdm cua PC sé duge luu tri. Tudng tu, b6 bién déi D/A cho phép diéu khién bang su chét dit liéu. Trong chu trinh ghi du6i dia chi (Basicaddress + 2) xung Low cia CS6 tae dung dén su khdi déng cha su bién déi A/D. Trong trudng hop nay thong thudng thi hoan toan khéng quan trong 1a di liéu nao ta gui di bdi vi chi cé xung CS‘4m duge.danh gia. 60 DO LUONG VA DIEU KHIEN Chuong 2 CAC MACH SO 2.1 QUAN LY THEO BIT Trong ky thuat do ludng va diéu khién, cdc tin hiéu diéu khién c6é “mot y nghia dac biét. Con trong tinh vue tu dong hoa ta thay vé sé cdc may moc duoc diéu khién bang cdc tin hiéu diéu khién sé khéc nhau. Chang han, dé diéu khién cdc qua trinh trong mét tram rita xe 6 td, rat nhiéu métd va bé phan chap hanh phai duge kich hoat: méto dang cho bang chuyén, van ding cho thiét bi phun nuéc, déng co cho may thdi khé déu méi chi 1a mét sé duoc ké ra. Nhiing lénh dé diéu khién viéc sdp xép vi tri dudc tom tat trong mét tix diéu khién, trong dé su sdp xép vi tri xac dinh dude dat trong mii bit riéng 1é. Vi thé cé thé qua mat bit diéu khién m6t méts cua bang chuyén, qua mét bit khac diéu khién van cia thiét bi phun nuéc. Sau dé mic logic quyét dinh Hiéu b6 phan chap hanh duge kich hoat hay 14 khéng. Trong méi quan hé nay, diéu rat quan trong 1a cé thé thay déi m6t bit x4c dinh ma khéng 1am anh huéng dén trang thai légic cua bit khéc. Muén thé can co nhiing lénh nao ? Cau tra ldi sé dude tim thay trong muc duéi day. Dao (nguoc) bit: Dé dado mét bit xdc dinh cha mot tir diéu khién cAn phai thuc hién lién két LOAI TRU - HOAC (EXCLUSIVE-OR) timng bit mét. Trong lién két LOAI TRU - HOAC véi 1, bit chiu mét tac déng dao, cdn trong lién két LOAI TRU - HOAC véi 0, bit gitt nguyén khong thay déi. Thi du: 2. CAC MACH SO. 61 D7 Dé D5 D4 D3 D2 D1 Doj Gia tri Tudiéukhiéncad | 0 1 0 0 1 0 O 0 | 76dec. bit 3 va bit 5 (hé 10) XOR dao O00 0 0 0 40 dec: Tudiéukhién mdi | 0 1 #2 0 0 14 0 QO | 100dec. Lénh trong QBasic: contrword.new = contrword.old XOR (40) Dat bit lén Low Dé dat mét bit x4c dinh cua mot ti diéu khién lén Low thi mét lién két VA cdn phai dude thuc hién ting bit mét. Trong lién két VA véi 0, bit dude dat lai lén mic légic 0, con trong lién két VA véi 1 bit git nguyén khong thay déi. Thi du: D7 «DE DS D4 D3 D2 Di DO| Gidtri Txdiéukhiénci | 0.1 0 O 1 1 0 11 77dec. bit 0 va bit 3 AND datien LOW] 2-2 2 1 O 21 1 O | 246dec. Tudiéukhiénméi} 0 1 0 0 0 1 0 0 | 68dec. Lénh trong QBasic: controlword.new = controlword.old AND (255-I-8) Dat bit lén High pé dat mét bit x4c dinh cha mét tw diéu khién lén High thi mot lién két HOAC can phai dude thuc hién ting bit mot. Trong lién két HOAC véi 1, bit dugc dat lén légic 1, con trong lién két HOAC véi 0, bit gitt nguyén khéng thay déi. Thi du: D7 D6 D5 D4 D3 D2 D1 DO Gia tri Tw diéu khién cit Of eeeeOF Ot la Ot Te dec: lén bit 1 OR dat lén High O00) 08 0. 0 1 0: | odec Tudiéukhiénméi}| 0 1 0 O 21 #21 1 1/)79dec. 62 DO _LUONG VA DIEU KHIEN BANG MAY TINH Lénh trong QBasic: contro/word.new = controlword.old OR 2 Bit héi lai Trong kj thuat qué trinh thudng xudt hién van dé 1a phai diéu khién mt van, ma vi tri cudi cing cha no Méong dude thong bao trd Jai 0 cdc 161 vao sé cha hé théng tu dong. Bai todn cla chugng trinh diéu khién la phai danh gid mau bit ké sat dé khang dinh xem tai thai diém nay van dang 6 vi tri nao. Tit toan bo tit diéu khién phai loc ha ra mét bit. Diéu nay xay ra khi ta lién két bit cdn khao sat vdi 1 va cdc bit con lai voi 0 Thi du: D7 D6 ‘D5 D4 D3 D2 Di Do | Gidtri Tw diéu khién ct 0 1°00 1 0 0 0} 77 dee. Héi lai AND cia bit 3 O90. 1 0 0 0 | 8dee. Tudiéukhiénméi | 0 1 1 0 1 0 0] 8dee. Tw két qua nay, bit dang gap con phai duge Iya chon. Muén thé ta dem chia két qua lién két vai gid tri cha bit duge lua chon. Lénh trong QBasic la: evel. of. bit 3 = (Controlword AND 23) /23 2.2 GHEP NOI KIEU ROLE Trong cdc muc 1.1 va 1.2 cdc médun co sd khdc nhau da duge gidi thiéu, cdc médun nay co thé duge d&u vao hoac 1a qua giao dién may in song song hoac la giao dién RS 232 néi tiép. Dudi day sé gidi thiéu m6t médun ghép néi kiéu role, médun nay cé thé ddu vao mét médun co ban nao dé vita dude ké ra 6 trén. Nha thé ma tam role c6 thé duge diéu khién tu may tinh PC. Mach dién trén hinh 2.1 c6 chtta mét bé dém kha dac biét cd tén 1a ULN 2803 ma 1éi ra cha né cé thé chju tai dén 500 mA. Bé dém ULN 2808 cé chia 8 tang dém véi cdc diét bao vé da dugc tich hop, cdc tang nay co kha nang diéu khién truc tiép cdc rdle. Diéu dang luu y 6 day la mac dd vi mach lam viée nhu mét bé dao nhung ma tai lai duge ddu véi nguén nuéi dudng 2. CAC MACH SO 63 vao léi ra cua'b6 dém, va vi thé khi 16i vao 6 mitc High cing c6 dong di qua role. melee Hinh 2.1 M&dun ghép néi kiéu role. Chuong trinh RELAIS.BAS dé diéu khién cdc role riéng bi duge viét ra nhu duéi day: Program: RELAIS ’ Function: B&ng chuong trinh nay cé thé diéu khién + 8 role tuy theo cach lua chon ho&c 1a qua céng néi + yéi may in hoac 1a qua céng néi tiép (céng chuét) + cha md4y tinh PC * Hardware: Can cé mét médun co sé da trinh bay 6 * chuong 1 ciing nhu m6dun ghép néi role COLOR 0, 15 CLS Napvao: PRINT “Ban stt dung céng ghép néi nao ?* PRINT PRINT “Giao dién (Interface) (2)” INPUT iptcom 64 QO LUONG VA DIEU KHIFN BANG MAY TINH SELECT CASE tptcom CASE 1 basadr = &H378° ’Basicaddress datreg = basadr ‘Datenregister statreg = basadr + 1 ‘Statusregister contrreg = basadr + 2 ‘Controlregister CASE 2 OPEN “COM2: 9600,N,8,1,CS,DS" FOR RANDOM AS #1 CASE ELSE: GOTO Napvao ’Napvao: Input END SELECT --Bat dau chuong trinh riéng CLs aS ="RELAIS-INTEFACE* a= LEN (a$): b= (80 - a) /2-1 LOCATE 1, b: PRINT CHRS$ (201); STRINGS (a+ 2, CHRS (205)); CHRS (187 LOCATE 2, b: PRINT CHRS (186) LOCATE 2, b + 2: PRINT a$ LOCATE 2, a + b + 4: PRINT CHRS (186) LOCATE 3, b: PRINT CHRS$ (200); STRINGS (a + 2, CHRS$ (205)); CHRS (188 LOCATE 5, 25: PRINT "Relais 1 =" LOCATE 7, 25: PRINT “Relais LOCATE 9, 25: PRINT “Relais LOCATE 11, 25: PRINT “Relais LOCATE 13, 25: PRINT “Relais LOCATE 15, 25: PRINT “Relais LOCATE 17, 25: PRINT “Relais LOCATE 19, 25: PRINT “Relais LOCATE 22, 1: PRINT "Hudéng dan:” LOCATE 22, 15: PRINT CHRS (24); CHRS (25): “;Lya chon Role” LOCATE 22, 35: PRINT "ESC: Két thiic” LOCATE 22, 50: PRINT "Fl: Dao role” YaAURWN ql o uw 2. CAC MACH SO Dat tat ca cdc Role 1én 0 65 a" LOCATE 23, 1: PRINT FOR i = 5 TO 19 STEP 2 LOCATE i, 45: PRINT NEXT SELECT CASE lptcom CASE 1: OUT datreg, CASE 2: PRINT #1, CHRS (0); END SELECT ZEILE = 5: spalte = 25 BO *~---Boc dong hién thdi nhu la text (Cét 25 d&n 33)---- Texts = "" FOR i = 0 TO 8 text$ = text$ + CHR$ (SCREEN (ZEILE, spalte + i)) NEXT wenn cnn e nnn nene text$ m6 ta ddo------------------- COLOR 15, 0: LOCATE ZEILE, spalte PRINT texts COLOR 0, 15 See Bat. d@u vong lap, héi lai ban phim------ DO taste$ = INKEYS Ché nhén phim LOOP UNTIL taste$ <> warn ene Hét vong lap LOCATE ZEILE, PRINT text$ spalte SELECT CASE ASC CASE 27: EXIT DO CASE 59 LOCATE ZEILE, 45 IF CHR$ (SCREEN (ZEILE, PRINT “MO” ELSE PRINT “DONG” (RIGHTS (phim da duce an) (taste$, 1)) ./Phim ESC ‘Phim Fl 45)) = "E* THEN DO LUONG VA DIE! BANG MAY. ‘Phim mii tén 16n *Phim mii tén xudng See) Vases ene ls ee) CASE 1: OUT datreg, outbyte "Céng may in outbyte); ‘Céng néi tiép 66 END IF CASE 72: IF ZEILE >. 5 THEN ZEILE = ZEILE - 2 CASE 80: IF ZEILE < 19 THEN ZEILE = ZEILE + 2 END SELECT Oc ee ea eee eee xude outbyte = 0 FOR i = 5 TO 19 STEP 2 outbyte = outbyte - ((CHR$ (SCREEN (i, 45)) NEXT SELECT CASE lptcom CASE 2: PRINT #1, CHRS ( END SELECT LOOP END 2 Huong_dan: Role Role 2 3 Role 4 Role 5 Role 6 Role 7 Role 8 4): Lua_chon_role ESC : Ket_thuc F1: Dao_role Hinh 2.2 Trinh bay trén man hinh cla chudng trinh RELAIS.BAS. 2. CAC MACH SO 67 Sau khi khdi déng chuong trinh, ngudi st’ dung phai quyét dinh xem nén diéu khién bé ghép néi role qua giao dién nao. Tiép do, trén man hinh sé xuat hién céch trinh bay nhu trén hinh 2.2. Thoat dau tat ca cdc role déu dude ngat dién. Bang phim mii tén ta cé thé lua chon mét rdle nao do va dao trang thai bang phim F1. Sau khi xc nhan bing phim F1, role sé dug diéu khién Jap ttc. Bang phim ESC ta c6 thé két thc chuong trinh. 2.3. BO DIEU KHIEN MINI THEO CHUONG TRINH DA NHG (SPC) Muc nay mé ta mét médun ghép néi ma ta c6 thé su dung cung véi mét médun cd sé ti chudng 1 nhu Ia giao dién diéu khién. V6i mét phan mém thich hgp, sau do co thé thuc hién mét qué trinh diéu khién theo chuong trinh da luu trix - thudng viét tat la SPC (tir cdc chiv tiéng Anh: Stored-Programable Contro). Médun ghép néi trén hinh 2.3 thu thap tam tin hiéu nhi phan va co thé qua bé dém ULN 2808 diéu khién truc tiép cdc bé phan chap hanh cé cong sudt nhd. Dong tai l6n nhat dat dén 500 mA, du dé dém cho cac bong dén, rdle va cae mato nhé. Hardware Hinh 2.3 Médun mini SPC. 68 BO LUONG VA DIEU KHIEN BANG MAY TINH Phan cting Cac tin hiéu 161 vao nhi phan duge dan dén cac }6i vao cua vi mach 74HC14 qua mét mach RC, vi mach nay cé chifa 4 bé dao véi chite nang cua trigger Schmitt. Cac diét dugc dung dé bao vé giao dién khi céc dién Ap I6i vao lén hon 5 V. Sau mét lan dao, tin hiéu 16i vao duge dan dén b6 chét di ligu 74HC574. Bang sun duong (thay déi tt Low'sang High) cha xung git nhip 616i vao CLK (chan 11) bé nay hu trix cdc div"lidu ké sat bén trong vao thanh ghi va sau do dat vao cdc léi ra Q dé ché xit ly tiép. Sau day, su thay déi cla tin hiéu Idi vao gitt nguyén khéng duge dé y dén. Tin hiéu CLK dugc lay di d chan 1b cia 6 néi 32 chan. Tuy theo méodun co sé dude stt dung ma tin hiéu nay xuat phat tit cdc nguén khac nhau. 6 médun co sé ding cho céng may in duge mé td trong muc 1.1.4 tin higu STROBE dugc dan qua ch4n ra 1b tdi 16i yao CLK cia vi mach 74HC574, Truéc khi mét byte diz liéu hién thdi duge doc vao, mét su thay déi tin hiéu tit Low sang High cén phai duge tao ra bang tin hiéu STROBE. Khi si dung médun cd sé ding cho giao dién néi tiép RS 232 (xem muc 1.2) tin hiéu DR (Data Received) ca b6 UART (xem thém hinh 1.4) duge ddn qua chan ra 1b dén chan tin hiéu CLK cua vi mach 74HC574., Béi vi DR dude tu dong gui di tiv bg UART CDP 6402, nén ta khong can quan tam hon dén su Jap trinh cia tin hiéu nay. DR chuyén tit Low sang High khi b6 UART da nhan xong dit liéu tit may tinh PC. Dé co thé doc vao cdc dit liéu bang mét médun cd sé ding cho céng néi tiép thi ngoai ra cdn cn c6 mot xung Low dé mé dau viée truyén dit liéu t6i may tinh. Déng thdi xung nay duge diéu dan bdi tin higu DR. Tin hiéu DR duce dan qua mot tu dién téi mét bé dao cia vi mach 74HC14, ma 4 1éi vao cua bé nay cé dau qua mét dién tré xuéng mass. Sau d6 16i ra cia b6 dao chuyén sang Low trong khoang thdi gian kéo dait= -0,7R.C méi khi xudt hién sudn duong eta tin bigu DR. Noi khéc di: Véi méi byté ma may tinh PC giti téi giao dién, may tinh PC nhan duge mét byte tra 1di lai, byte nay cho tré lai tin hiéu 161 vao nhi phan cua cdc duéng dan di liéu DOIN... D7IN 2. CAC MACH 69 Phan mém Phan mém dé diéu khién médun da duige cdt ra theo nhiing ting dung cia mét b6 SPC. Bén canh cdc Idi vao hién thdi, cdc mtte tin hiéu cta Ii ra ciing duge chi ra trén man hinh. Hinh 2.4 chi ra su trinh bay cua man hinh sau khi khéi dgng MINISPC.BAS, chuong trinh nay chtta cdc ma Basic duéi day: - Program: MINISPC ‘Function: B&ng chuong trinh nay cé thé thyc hién + dugc chtic nang diéu khién qua céng ghép néi my in’ ‘ hoae céng néi tiép tuong tu nhu mét SPC ’ Hardware: C&n cé m6t médun co sé 4& trinh bay 36 + chuong 1 cting nhu m6t médun spc dé diéu khién cdc - 16i ra s6 va doc cdc 16i vdo digital DECLARE SUB lese. lpt (inbyte) DECLARE SUB lese. com (inbyte) DIM E1 (0 TO 7) *8 input DIM Al (0 TO 7) *8 Output DIM M1 (0 TO 7} ‘8 Merker DIM SHARED basadr, datreg, statreg, contrreg COLOR 0, 15 CLS Napvao: PRINT "Ban chon giao dién nao ? " PRINT PRINT "C6éng may in (1) ho&c 1& céng néi tigép (2)” INPUT lptcom SELECT CASE lptcom CASE 1 basadr = &H378 Dja chi co ban cla céng m4y in datreg = basadr ‘Datenregister statreg = basadr + 1 ‘Statusregister 10 BO LUONG VA DIEU KHIEN BANG MAY TINH contrreg = basadr + 2 ‘Controlregister CASE 2 OPEN “COM 2: 9600,N,8,1,CS,DS“ FOR RANDOM AS #1 CASE ELSE: GOTO Napvao END SELECT CLS ageaeM TNE oPor a = LEN (a$): b = (80 -a) /2-1 LOCATE 1, b: PRINT CHR$ (201); STRINGS (a + 2, CHRS (205); CHR$ (187) LOCATE 2, b: PRINT CHRS (186) LOCATE 2, b + 2: PRINT aS LOCATE 2, a + b + 3: PRINT CHRS (186) LOCATE 3, b: PRINT CHR$ (200); STRINGS (a + 2, CHRS (205)); CHRS (188) PRINT LOCATE 7, 10: PRINT “Loi_vao_so (Digital)* 7 LOCATE 7, 50: PRINT “Loi_ra_so (Digital)” LOCATE 8, 10: PRINT ” 8 9 LOCATE 8, 50: PRINT LOCATE 9, 10: PRINT "E LOCATE 9, 50: PRINT “A LOCATE 10, 10: PRINT “E LOCATE 10, 50: PRINT “A LOCATE 11, 10: PRINT “E LOCATE 11,.50: PRINT “A LOCATE 12, 10: PRINT "EB LOCATE 12, 50: PRINT "A LOCATE 13, 10: PRINT “E LOCATE 13, 50: PRINT “A LOCATE 14, 10: PRINT "E _LOCATE 14, 50: PRINT “A LOCATE 15, 10: PRINT “E LOCATE 15, 50: PRINT “A PRPPP RPP PHPBB BRE RB 71 LOCATE 16, 10: PRINT “E 1.7 LOCATE 16, 50: PRINT “A 1.7 LOCATE 22, 1: PRINT “Hudéng dan:" LOCATE 23, 1: PRINT “~-------- . LOCATE 22, 15: PRINT “ESC: Két_thtc” -----) pat t&t cA Merker, Input va Output 1én Low----- FOR i = 0 TO 7: M1 (i) = 0: NEXT FOR i = 0 TO 7: Al (i) = 0: NEXT FOR i = 0 TO 7: El (i) = 0: NEXT --+----------- Bat dau vong 1lap---------------- ween enn---- xudt cdéc bit lén man hinh ------------ FOR i = 0 T07 LOCATE 9 + i, 20: PRINT E1(i) LOCATE 9 + i, 60: PRINT Al(i) NEXT erence Tiép theo 1A céc phuong trinh légic--------- Bai todn diéu khién (Control-problem) Chang han: M1 (3) = (E1(3) AND M1(2) OR M1(3)) AND (NOT M1 (0)) A1(0) = El (0) AND E1(6) Scaletatatatatatatatatal Thiét lap céc byte 16i ra ------------ outbyte 0 FOR i = 0 TO7 outbyte = outbyte + Al (i) * 2° i NEXT +2 ----+------------ Xudt outbyte ------------------ SELECT CASE lptcom CASE 1: OUT datreg, outbyte “Céng may in CASE 2: PRINT #1, CHR$ (outbyte); ‘Céng néi tigp Saeed Doc 168i vao -----~------------- SELECT CASE lptcom See ee Qua giao di@én may in ---~--------~--- CASE 1 OUT contrreg, (INP (contrreg) AND (255 - 1)) 72 BO LUONG VA DIEU KHIEN BANG MAY TINH ‘STROBE 1én mic 0 OUT contrreg, (INP (contrreg) OR 1) “STROBE 1én 1 CALL lese. lpt (inbyte) - vé giao dién néi tiép ---- CASE 2: CALL lese.com (inbyte) bS = INPUTS (LOC (1), #1) ‘Xod& toan b6é bé dém END SELECT inbyte = inbyte XOR 255 ‘Phép ddo nhé 74HC14 POR 0) Oat El (i) = (inbyte AND 2 * i)/ 2 “i NEXT ----Phim ESC bang k@t thtc-------~------- tasteS = INKEYS IF taste$ - CHR$ (27) THEN EXIT DO LOOP END SUB lese.com (inbyte) Unterprogram: lese, com Function:Chuong trinh nay doc vaéo mét byte qua céng néi tiép. Khi cuéc truyén dit liéu bj nhiéu s& cé mét théng bdo nh&p nhéy va-chuong trinh két thic : a0 DO a IF Loc (1) >= 1 THEN in§ = INPUTS (1, #1) inbyte = ASC (in$) 2. CAC MACH SO 73 GoTO ketthuc END IF FOR k = 1 TO 1000: NEXT LOOP UNTIL i = 10 "Cc dai 1000 phép thi gee eee eee Kh6éng nh&n dugc ky ty nao -----~--------- PRINT “Su truyén at liéu bi nhidu fii” PRINT “Khéng nhén dugc ky tu nado !!!" PRINT PRINT “Kiém tra lai: cap néi, phan cung...” END ketthuc: END SUB SUB lese.lpt (inbyte) OUT contrreg, 0 ‘init = 0 inbytel = INP (statreg) ‘Doc vao tt DO,D1,D2,va D3 OUT contrreg, 4 ind cee inbyte2 = INP (statreg) ‘Doc vao tu D4,D5,D6,va D7 '-------S4p x&p cdc bit dt 1i€u da doc vao-------- inbytel: . Statusregister bit 4 (SLCT] 14 DO Statusregister bit 5 (PE) 1a D1 Statusregister bit 6 (ACK) 1a D2 Statusregister bit 5 (BUSY) 1a /D3 inbyte2: Statusregister bit 4 (SLCTz0 14.D4 Statusregister bit 7 (PE) 1a DS Statusregister bit 6 (ACK) 14 D6 Statusregister bit 5 (BUSY) la /D7 inbyte = (((inbytel XOR 128) AND &HFO) / 16) + ({inbyte2 XOR 128 AND &HFO) END SUB 14 DO LUONG VA DIEU KHIEN BANG MAY TINH Bén canh viéc lam cho ngudi st dung nhin thay 1éi vao va léi ra, bai todn diéu khién cing dugc l4p trinh. Giéng nhu trong mét SPC, nhiing lién két nhi phan tuong ting cing c6 trong Qbasic. [ MINI - SPS | Loi_vao_so (digital) Loi_ra_so (digital) E10 = 14 A10 = 1 Eto 4 A114 = 1 Bal2e aa A12 = 1 E13 = 1 A13 = 1 E14 = 4 A114 = 1 EAS a A15 = 1 £16 = 14 A116 = 14 Balad A117 = 1 Huong_dan: ESC : Ket_thuc Hinh 2.4 Sy trinh bay trén man hinh cla chuong¢trinh MINISPS.BAS. Chuong trinh diéu khién cha mét b6 SPC bao gém tw mét day cdc lénh diéu khién dugc xt ly néi tiép nhau. Sau khi xi ly xong tt ca cdc Jenh, cdc 161 ra sé duge diéu khién. G day, ching t6i khong dé cAp dén nhitng vn dé co sé cua ky thuat diéu khién theo chuong trinh da lu trit, ma chi dan ra ba thi dy nham minh hoa: danh sdch cdc lénh (viét tat la: DSCL) cha mét bo SPC ¢6 thé duge chuyén déi trong ci php QBasic nhu thé nao. Trong thi dy 1, léi ra A 1.0 sau do chi trd nén High khi tat ca cdc 161 vao 6 mite High. Lién két VA (AND) cé thé duge chuyén giao trén thc té theo tuong quan mét véi mét trong QBasic. Su khaéc nhau duy nhat thé hién 6 su sap xép cdc két qua lién két I6i ra. Trong khi 6 DSCL cia mét bé SPC, truéc hét, cdc phugng trinh légic duge thé hién réi sau d6 cac két qua duge gan cho léi ra; con trong QBasic tha. ty nay duge thic 2. CAC MACH SO 75 _ hién.hoan toan ngu¢c lai. Bién nhan mét gid tri va bién nay cdn phai dung dé bat déu mét lénh. ; DSCL cia : mét SPC QBasic Thidul: UE 10 A1(0)= £1(0) AND E1(1) AND E1(2) Ub i : Ve ie Se Thidu2: U E10 Ai(0)=(E1(0) AND E1(1)) OR E1(2) Ue ee id _O E 12 = A 10 Thidu3: UE 1.0 Al1(0)=(E1(0) OR A1(0)) AND NOT E1(1) SA 10 UE ll Ro A 10 Trong thi dy 2, nén chu § téi mt day tudn tu cia cdc lénh lién két. Trong bé SPC, chuong trinh diéu khién dude xt ly theo lénh déi véi Ignh. Nghia 1a li vao E 10 va E 11 chju mot lign két VA, va réi két qua lai duge lién két HOAC voi E 1.2. Day tudn tu co thé dat duc trong QBasic chi qua cdc du ngoaec phu thém vao. Thi du 3 minh hoa cho viéc st dung lénh S ¢é dat va R dé dat lai mét bit. V6i sy tac déng cia lénh S, léi ra duge trao déi A1.0 duge dat ~ lén High, néu nhu két qua lién két cia lénh diéu khién vita tién hanh la légic 1. Sau d6, 16i ra citing duy tri trang thai logic, khi két qua lien két thay déi sang 0. Léi ra A1.0 chi co thé duce dat lai bang E1.1 = 1. Bai vi hai lénh S va R khong cé chita trong QBasic nén c4c ham nay can phai duoc gidi thich trén sé hang lién két co ban. Ti thi dy 3 ta thay duge su chuyén déi nay da dude thuc hién nhu thé nao. Ung dung: Diéu khién mét tram rita 6 t6. 16 BO LUONG VA DIEU KHIEN BANG MAY TINH Ung dung dudi day cho ta mét y niém nhé trong ky thuat diéu khién va chi cho ta thay mét tram ria 6t co thé duge diéu khién ti may tinh nhu thé nao khi sy dung médun SPC ghép néi véi médun co sé da trinh bay 6 chuong 1. Su mé ta hé thong cia tram ria 6té duge chi ra trén hinh 2.5. Hinh 2.5 So 46 mé ta mat tram rita 6 to. Din bién theo théi gian cua su diéu khién qua trinh co thé dude mé ta nhu sau: 1- Tram nay dude déng dién bang cong tac déng/ngat S2. Sau do qua trinh ria can phai dudc bat dau bang su xdc nhdn cua nut nhdn khdéi dong S1. Ngoai ra, bang chuyén duge déng mach qua rdle K1. 2- Xe 6 té duge di chuyén bang bang chuyén qua nhiing vi tri khac nhau cua tram. Khi xe chuyén dich dén role anh sang L1 (L1 = 1) thi chéi lan dé lam sach va thiét bi phun nuéc cdn phai dugc dong mach. Déng thyi dén xanh tat va dén dé cn phai dude bat lén. Dén dd bao hiéu 1a cé xe dang ria vA xe sau cdn phai dung chi 6 trudc I6i vao tram rua. 2. CAC MACH SO ‘ 7 3- Khi dén role anh sang L2 (L2 = 1) thi mét mat van cua thiét bi phun nuéc can phai dugc dong lai, mat khac chéi lan dé 1am sach phai dude ngat dién. Déng théi thiét bi théi khé bat ddu hoat dong. 4- Khi 6 t6 di chuyén tiép dén role anh sang L3 (L3 = 1) thi qua trinh lam khé két thuc va dong co thdi phai duge ngat mach. Ngoai ra dén dé can phai tat va dén xanh dugc bat lén bao hiéu cho xe tiép theo cé thé di vao tram riva. Xac nhan bang nttnhan $1 E 1.0 BUGC 1 n kéo bang chuyén A12 Mi Bat dén xanh A 10 -——14 dén ché role anh sing L1 E 1.1 ee BUGC 2 } Bat dién kéo bing chuyén Al2 Mil Bat dén 4 Ald Bat dién thiét bi phun nude Ald Bat dién cho chéi lan A 13 Bidénchd role anh sang L2 E 1.2 BuoC 3 L____Tsit dién kéo bang chuyén A12 M 1.2 Bat dén dd A 13 Bat dién thiét bi thi kho A 15 io Didén chérdlednh sang L3 E 13 BUOC 4 Bat dén xanh A 10 eee M13 Hinh 2.6 $0 dé chife nang cia mét tram rifa 6 td. Tu su mé ta qua trinh théi gian ré rang 1a su diéu khién qua trinh c6 thé duce chia nhé thanh bén buéc. Su chuyén tiép cua mot bude sang buéc tiép theo phu thuéc vao diéu kién chuyén tiép. Hon nia day la dau hiéu dién hinh cia mét viée diéu khién qua trinh khong gidéng nhu 6 su diéu khién lién két (Linkage) cdc tin hiéu 1éi vao dan truc tiép dén mét su thay déi cha trang thai léi ra. Thi du chi mét su kich hoat cua rdle anh sang L2 khéng du dé dong van chap hanh cua thiét bi phun nuéc. , 8 BO LUONG VA DIEU KHIEN BANG MAY TINH Con mét diéu kién khdc nita 1a bude 2 cn phai duge kich hoat, sau dé viée dich chuyén dén vi tri rdle 4nh sing L2 dan dén hanh déng mong muén. Mot kha nang khéc dé mé ta qué trinh thdi gian cia tram rita 6 t6 Ja dung so 6 chic nang (so snh véi hinh 2.6): Ty so dé nay ra rit ra khéng chi qué trinh thdi gian ma con cho phép rut ra tat ca nhiing diéu kién chuyén tiép tit mot bude sang busc tiép theo. Bén buéc duge kich hoat ké tiép nhau trong day cde qua trinh thdi gian cia ching. Truéc hét 1a buéc 1, sau day Ja budéc 2 réi tiép dén bude 3 va cudi cung 1a bude 4. Méi bude c6 sép dat mét dau hiéu bude (Merker). Trong chudi cdc bude nay luén luén chi c6 mét budc, tuong ung véi ddu hiéu bude, duge kich hoat. Ta cé dude diéu kién nay bang cach khi kich hoat mét buéc thi budc truéc dy dude xo4 di bang su lap trinh da dinh ti trudc. Theo cach nhin nay c6 thé d4n dén mét diéu khong légic 1a bang chuyén da dugc kich hoat khéng chi 6 mét buéc. Do a6 céc 16i ra ma trong d6 bang chuyén cdn duce diéu khién can phai duge lién két HOAC. Viée lap trinh diéu khién qua trinh thuc hién theo cach la trudc hét chudi cdc bude duce lap trinh bang cdc déu hiéu bude, va sau dé cac Idi ra riéng biét dudc diéu khién bang cac dau hiéu budc. Dé diéu khién qua trinh trong mét tram rifa 6 té, trong QBasic co thé ding cdc lénh duéi “rude h&t chudi cé4c bude duge lap trinh bang cdc ' d&u higu (Merker) Mi (0) = ({B1(0) AND NOT M1 (7) OR M1 (0)) AND NOT M1 (1) ‘Budédc (Step) 1 Ml (1) = (E1(0) AND M1 (0) OR M1 (1)) AND (NOT M1 (2)) ‘Buéc 2 M1 (2) = (E1(2) AND M1 (1) OR M1 (2)) AND (NOT M1 (3)) ‘Bude 3 M1 (3) = (E1(3) AND M1 (2) OR M1 (3)) AND (NOT M1 (0)) ‘Bude 4 2. CAC MACH SO 79 M1 (0) = (M1(0) OR M1 (7)) AND NOT Mi (3) ‘Startmerker + pau hiéu Start ngdn ngua mét quad trinh khéi déng * méi trong khi chang han buéc 3 (M 1.2) dang hoat ’ tinh. Dudi day 14 sy diéu khién cla cdc 16i ra Al (0) = M1 (0) OR M1 (3) ‘LOi ra A 1.0 Al (1) = M1 (1) OR Mi (2) "LOi ra A 1.1 Al (2) = Ml (0) OR M1 (1) OR M1 (2) ‘L6i ra A 1.2 Al (3) = M1 (1) ‘L6i ra A 1.3 Al (4) = M1 (1) ‘L6i ra A 1.4 Ale GS) ail (2) ‘LO6i ra A 1.5 2.4 VIMACH GHEP NOI 8243 2.4.1 MO TA Cac vi mach duge tich hop 6 mite dé cao da lam don gian qua trinh lap rap mach di dang ké. Nhitng thanh tuu cia su phat trién trong linh vuc dién tt hoc luén luén mang lai nhitng vi mach cé cong dung tot ma gid ca lai phai chang. Vi mach duge mé ta dudi day thuéc loai 8243 tao ra kha nang lam tang nhiéu lén cdc duéng dan vao/ ra sé. Diéu dang dé cap 6 day 1a bus diéu khién va bus dit liéu cing tén tai 6 mét chan ra va d6 rong bus chi 1a 4 bit. Thém vao dé cén cé mét dudng dn diéu khién dac biét, cho nén vi mach 8243 cé téng cong ndm 1éi vao diéu khién, qua cdc léi vao ray cho phép diéu khién 16 duéng dan vao/ ra sé. Cdc 1éi vao va léi ra lai chia ra 5 cong va 4 bit. Chi véi hai vi mach loai nay co thé trao déi vdi 32 1éi vao va 1éi ra sé 6 mic tin hiéu TTL. Su sdp xép chan cia vi mach 8243 trén v6 24 chan dugc chi ra trén hinh 2.7. Chic nang cha cdc chan riéng biét c6 thé dutgc mé ta nhu sau: P20 - P23 (goi chung Ia céng 2: Port 2) Bén bit P20-- P23 mé ta bus diéu khién va bus dit liéu theo hai huéng. T&t.ca cdc dit liu xudt hién khi truy nhap lén bén céng vao/ ra P4 dén P7 déu duoc dn trén cdc dudng dan nay. Trong mét chugng trinh doc, BANG MAY TINH x0 20 LUONG VA DIEU KHI cong P2 chia dung nhing dit ligu ding xép hang cla céng vao/ ra da dude lua chon, trong mot chu trinh ghi cde dit Héu cdn phai xudt hién 6 mét céng vao/ ra sé dude xép vao. Liéu dit liéu nay lién quan dén chu trinh doc hoac lA chu trinh ghi, cong viée nay sé dude xac dinh véi su tra gitp cha tu didu khién, déng thdi tu nay dude din dén Port 2. Tw diév khién 4 bit chia dung truée hét JA mét dia chi cha céng vao/ ra duge trao déi va sau day 1a ma lénh dé doc hode 1A ghi (so sanh véi hinh 2.7) P50 P40 Pat Pa Paz res P23 P22 Pet P20 CHD ‘Tu diéu khién (Controlword) 6 Port 2 P23. P22 Lénh P21 . P20 Céng (Port) 0 0 Doc, 0 0 Port 4 0 1 Ghi 0 1 Port 5 1 ® ORLD 1 0 Port 6 1d 1 ANLD 1 iy Port 7 Hinh 2.7 Bé tei chan cla vi mach 8243. P40 - P 43 (goi chung 1a Cong 4: Port 4) Bon bit P40 - P43 tao nén Port 4. Céng nay cé thé duge lap trinh nhu 1a mét 1éi vao hoac la-mét 1éi ra. P50 - P53 (Cong 5: Port 5) Bén bit P50 - P53 tao nén Port 5. Cong nay cé thé dude lap trinh nhu 1a méot 1di vao hoac 1a mét J6i ra. P60 - P63 (Cong 6) ‘ 2. CAC MACH SO 81 Bon bit P60 - P63 tao nén Port 6. Céng nay cé thé dug lap trinh nhu la miét 16i vao hoac 1a mét 1éi ra. P70 - P73 (Cong 7) Bén bit P70 - P73 tao nén Port 7. Céng nay cé thé duge lap trinh nhu 1a mé6t I6i vao hodc 1a mét 1éi ra. ICS (Chip Select) Mét mic High 6 chan /CS ngan ngia viéc mét léi ra nao day hoac 1a trang thai bén trong bi thay déi. Mét cudc trao déi théng tin véi vi mach 8248 chi cé thé tién hanh khi ma dugng dan Chip Select cé mite Low. PROG Bang viéc chuyén didi High - Low (suén 4m) 4 1éi vao PROG.vi mach 8243 dén nhan tit diéu khién dung xép hang 6 cong 2. Con su chuyén mite tix Low sang High bdo hiéu 1a é céng 2 dang c6 cdc dif liéu cho xi Hinh 2.8 Gian dé xung 6 mét [dn truy nhap ghi va doc cua vi mach 8243, Mét cuéc truyén dif liéu day di bang cdc céng vao/ ra dién bién theo cach sau: 82 DO LUGNG VA DIEU KHIEN BANG MAY’ Méi mét cudc truyén dit liéu cé hai ti dix liéu 4 bit tham gia. Ty dau tién chita ti diéu khién, tu tigp theo 1A tt dit ligu. Trong mét lan. truy nhap doc, sudn am 6 16i vao PROG huu tri ti diéu khién dung xép hang 4 céng 2 vao trong linh kién. Ty diéu khién bdo hiéu cho vi mach 8243 1a bay gid cdc dit ligu cla mét céng vao/ ra duge doc. Vi mach 8243 giai ma tit nay d bén trong va dat cdc dudng dan 1éi vao da duge chon lua vao céng 2, bay gid é do chung cé thé dude goi ra tX cdc linh kién khac. Suén duong (sun déc lén) 6 chan ra PROG két thie chu trinh doc va chuyén mach cng vao/ ra sang trang thai dién trd cao. Sau dé céng 2 tré lai chite nang nhu lA mét léi vao. Dé giti cc dit liéu téi mét céng vao/ ra mong muén thi déng thii tir diéu khién duge xép sat vao, ti nay duge lu trit va gidi ma bang sudn 4m (sudn déc xuéng) cua tin higu PROG trong vi mach 8243. Bay gid nua byte dif liéu cé thé dude xép sat vao céng 2 va sau day c6 thé xuat hién 4 1éi ra dude chon Iva nhd sudn dugng cua tin hiéu 6 chan PROG. Thi du khi ta muén xudt dif liéu qua céng 5 thi ta cho ti diéu khién P23... P20 = 0101. Chic nang ORLD ciing nhu ANLD thuc hién tting bit mot mét lién két logic HOAC cing nhu VA giita cdc dit ligu méi va céc dit ligu ditng xép hang san 6 céng. Két ava lién két dude d4n tiép dén céng vao/ ra da duge lua chon. 2.4.2 MUOI SAU LOI RA TTL VOI 8243 Vi mach 8243 cé kha nang ghép néi véi cdc médun co sd da trinh bay 6 chudng 1 dé mé réng cdc tin hiéu vao/ ra da cé mat 4 d6. Sau ddy theo tach nay ¢c6 thé thiét ké ra nhitng mach dién phite tap hon, céc mach nay di héi nhiéu hon 1a 8 1éi ra va 161 vao 56. Hinh 2.9 chi ra su diéu khién cia vi mach 8243 qua 6 n6i 32 chan ma tét cd cdc médun co sé da trinh bay 6 chuong 1 déu co thé dau vao 6 néi nay nhu 1a mét giao dién chung. C&c dudng dan dit liéu DO - D3 dude ndi truc tiép voi céng 2, con D7 dugc dan dén chan ra PROG. Véi nam duéng dan dit liéu dude st dung sau d6 c6 thé diéu khién 16 I6i ra. 2. CAC MACH SO 83 ba pao ® Par = pore 4 ms ps0 eo = pert 5 roe g ? Peo a Pe i Pea Pert 6 rea i rr a Pr : er pert 7 PIs Hinh 2.9 16 Idi ra TTL véi vi mach 8243. Cac céu lénh ding trong QBasic dé xudt ra mot nua byte dit liéu qua mét trong bén céng vao/ra cé thé tom tat lai theo mét cach tét nhat la dat vao trong mot chudng trinh con. Sau dé trong chuong trinh chinh ta chi can cé mét cau lénh dé trao déi véi céng mong muén. Qua mét médun co sé da trinh bay 6 chuong 1 va dugc dau vao giao dién néi tiép cha may tinh PC, vi mach 8243 c6 thé duge trao déi theo mét chuong trinh nhu sau: * Program: 16BITCOM ‘Funetion: B&ng chuong trinh nay cé thé qua céng ' ni tiép trao adi vdi 16 duéng d&n nhu 1a 186i vao ' hoa 1a 186i ra. Trong dé cé 4 Port 4 bit dé si * dung. ‘Hardware: Cén cé m$t médun co sé da trinh bay 3 * chudng 1 ciing nhu m6t mddun mS ta trén hinh 2.9 DECLARE SUB OUT. 8243 (daten, port) DIM SHARED outbyte fannn-- ------ 9600 baud, néi vao COM2 ----------- OPEN “com2: 9600,N,8,1,CS,DS" FOR RANDOM AS #1 84 BO LUONG VA DIEU KHIEN BANG MAY TINH outbyte = 255 ‘Tat cd cdc Datenbits cla Médun 1én mic 1 PRINT #1, CHRS (outbyte); CALL OUT. 8243 (15, 4) ' T&t ca 4 bit & Port 4 1én High CLOSE 1 END SUB OUT. 8243 (daten, port ‘ Unterprogram: out.8243 ‘Function: Chuong trinh con nay diéu khién cdc . duéng di 1iéu cia vi mach 8243 sao cho 4 bit dt * 1i€u cé thé duge xudt ra gua mot céng (Port) ao 22-2 ------------ Xu&t ra Controlword ---~------------ outbyte = (outbyte AND (&HFO)) + port PRINT #1, CHR$ (outbyte); ‘-->-L&p trinh controlword: Prog tu High sang Low---- : outbyte = outbyte AND (255 - 128) PRINT #1, CHRS$ (outbyte); outbyte = (outbyte AND (&HFO)) + daten PRINT #1, CHRS$ (outbyte); Fane e nen nn eee = ee Prog tré lai High~----+----------- outbyte - outbyte OR 128 PRINT #1, CHR$ (outbyte); END SUB Khi ma médun co sé da trinh bay 6 muc 1.1.4 tim thay tng dung cing véi giao dién may in thi chuong trinh cé thé viét nhu sau: . Program: 16 BITLPT * Punction: BAng chuong trinh nay cé thé trao aéi ' y6i 16 duéng dan 16i ra TTL qua céng m4y in ‘ song song 2. CAC MACH SO 85 * Hardware:C&n cé mét mddun co sé m6 ta 3 chuong 1 ‘ eting nhu médun m5 ta trén hinh 2.9 DECLARE SUB OUT, 8243 (daten, port) DIM SHARED outbyte, datreg, statreg, contrreg basadr = &H378 datreg = basadr ‘Datenregister statreg = basadr+1 "Statusregister cont rreg=basadr+2 "Controlregister outbyte = 255 “Tat ca cdc bit dt liéu ‘eta médun 1én mic log 1 OUT datreg, outbyte CALL OUP. 8243 (15, 4) 'T8t cA 4 bit 3 Port 4 lén High CLOSE 1 END SUB OUT. 8243 (daten, port) ‘ Unterprogram: out. 8243 ‘Function: Chuong trinh con nay diéu khién cdc * ~~ quéng dfn cla vi mach 8243 sao cho 4 bit cé thé + duge xudt ra qua mét céng outbyte = (outbyte AND (&HFO)) + port OUT datreg, outbyte *---LAp trinh controlword: Prog tt high sang low--- outbyte = outbyte AND (255 - 128) OUT datreg, outbyte outbyte = (outbyte AND &HFO) + daten OUT datreg, outbyte 86 BO LUONG VA DIEU KHIEN BANG MAY TINH outbyte = outbyte OR 128 OUT datreg, outbyte END SUB 2.4.3 MODUN VAO/ RA 32 BIT 3433 2828 8889 BEE 3333 2228 F833 2EFE Hinh 2.10 Médun vaol ra 32 bit véi hai vl mach 8243, Trong mach dién duge minh hoa trén hinh 2.9, bén canh 3 duéng dan 16i ra D4, D5 va D6 ciing cé tat cd céc dudng dan 16i vao déu da khong duce sit dung. T&t cd céc duing din tu do nay 6 thé dem ding cho mét vi mach tht hai cing loai 8243. Hinh 2.10 chi ra mach dién cha médun giao dién, bang médun nay ghép néi véi médun co sé da mé ta 6 chuong 1 cé thé sit dung 32 tin hiéu TTL nhu 1a 16i vao hoac 1a 1éi ra. 2. CAC MACH SO 87 ’ Cée dudng ddn dit liéu DO dén D3 duge dan qua cdc dién tré va diét dén cdc bus di liéu va bus diéu khién cia vi mach 8243. Cac diét ngan ngita cdc dit ligu ding xép hang 6 céng 2 gay ra sy chap mach véi cdc dudng dan 16i ra DO dén D3 trong khi doc vao mét céng vao/ ra. Thi du tru’ng hop nay c6 thé xay ra khi DO cé mite Low va déng théi 6 P20 dang cé mttc High. Cac duing dan dit liéu D5 va D6 loc lua bang mét mic Low, day la mic cha hai linh kién duge trao déi. D7 sinh ra xung Low, mé dau cuéc giti di cha cdc di ligu xép ké sat qua giao dién ndi tiép tdi may tinh PC. Tin hiéu nay duge dan truc tiép téi chan ra TBRL cua b6 UART CDP6402 (xem thém muc 1.2). Khi st dung médun co sé dung véi céng may in (xem thém muc 1.1.4) dung dan dit ligu D7 c6 thé duge git nguyén khong dé ¥ dén. 32 tin hiéu TTL cé thé duge phan nhénh ¢ hai 6 néi 16 chan K1 va K2. bith HERE lo. joHHHMH It) | Hinh 2.11 Sp xép linh kign trén médun vaol ra 32 bit. Hinh 2.11 va 2.12 chi ra so dé sap xép linh kién cing nhu mach in. Khi ban doc muén sit dung so dé mach in nay dé ty lam ra mach ghép 88 BO _LUONG VA DIEU KHIEN BANG MAY TINH néi thi phai chu y la dong cht (C) DT96 - 82BITIO 6 phia han cac linh kién phai duce dé cho dting chiéu. Gac linh kién can thiét dé lép rap ra mach dién duge ligt ké nhu dudi day: Linh kién ban dan: Didt ban dan: IC1, IC2: 82C43 D1, D2, D3, D4: 1N 4148 Dién tré: Phich cdm: R1, R2, R3, R4=1kQ Kl: det 32 chan R5, R6, R7, RB: = 22 kQ K2: 25 chan [@® (C)DITA'96 32BIT VO , 6] nS Dia = ! yal Hinh 2.12 So dé mach in cua médun vao/ ra.32 bit. 2. CAC MACH SO x9 Hinh 2.13 Médun vao! ra 32 bit cing vdi mét médun co sd. Sau khi lAp rap xong ta co thé dem ghép néi véi mét médun co so. Trén hinh 2.13 JA mét médun yao/ ra 32 bit cling voi mét médun co sd dang voi céng néi tiép RS 232 da mé ta 6 muc 1.2. Voi hai ban mach nay ta cé thé trao doi véi 32 tin hiéu TTL nhw la 1di vao hoae la loi ra qua cong ndi tiép ela may tinh PC. Phan mém dé diéu khién médun vao/ ra 32 bit c6 thé viét nhu chung trinh sau day: Banc th nay cd t ' néi ciép trao dudng dén huong trint 90 DO LUONG VA DIRU KHIEN BANG MAY TINH DECLARE SUB OUT, 8243 (daten,-. port) DECLARE SUB in.8243 (Port, ketqua) DECLARE SUB lese.com (inbyte) DIM SHARED outbyte COLOR 0, 15 Picea eee 9600 baud, néi vao COM2--~-~---- OPEN “com2; 9600,N,8,1,CS,DS" FOR RANDOM AS #1 outbyte = 255 "Tat ca cdc bit dt 1iéu cia médun 1én log 1 PRINT #1, CHR$ (outbyte); Again: cLs acre se Bete eO Tot EER re A.C Ee a= LEN (a$}: b= (80 - a) / 2-1 LOCATE 1, b: PRINT CHR$ (201); STRINGS, (a + 2, CHR$ (205)); CHR$S (187) LOCATE 2, b: PRINT CHR$ (186) LOCATE 2, b + 2: PRINT a$ LOCATE 2, a + b + 3: PRINT CHRS (186) LOCATE 3, b: PRINT CHR$ (200); STRINGS (a + 2, CHRS$ (205)); CHRS (188) PRINT labell: INPUT "Vi mach nao: IC (ICi = 1 hoae IC2 = 2) ban mudn trao déi 2"; ic IF ic < 1 OR ic > 2 THEN GOTO labell “Bay gid CS - Signal tuong tng dude dat. 1én Low IF ic = 1 THEN outbyte = outbyte AND (255 - 64) IF ic = 2 THEN outbyte = outbyte AND (255 - 32) PRINT #1, CHRS (outbyte); PRINT 2. CAC MACH SO 91 label2: INPUT “Qua Port nado (4, 5, 6 ho&c 7) ?”; Port IF Port < 4 OR Port > 7 THEN GOTO label2 PRINT INPUT “Boc vao dit 1iéu (1) ho&c 1a xudt ra (2) 7"; in-out IF in.out = 1 THEN CALL in.8243 (Port, ketqua) ketqua = ketqua AND 15 PRINT "“CAc bit dude doc vao cé gia tri”; ketqua ‘CS-Signal tuong tng duge dat tré lai High IF ic = 1 THEN outbyte = outbyte OR 64 IF ic = 2 THEN outbyte = outbyte OR 32 PRINT #1, CHRS (outbyte); GOTO tieptuc END IF PRINT label3: INPUT "Ban hay cho dit 1iéu bing sd thAp phan (<= 15)"; daten IF daten > 15 OR daten < 0 THEN GOTO label3: CALL OUT.8243 (daten, Port) tieptuc: PRINT INPUT “Again (j)"; a$ IF a$ = "j" THEN GOTO Again ELSE GOTO Ketthuc END IF Ketthuc: CLOSE 1 END SUB in. 8243 (Port, ketqua) 92 DO LUONG VA DIEU KHIEN BANG MAY TINH * Unterprogram: in. 8243 ‘ Punction: Chuong trinh nay diéu khién cdc dudéng ‘ d&n di 1iéu cha vi mach 8243 sao cho 4 bit cé thé + @uge dec vao qua mét céng (Port) -xu&t ra tu diéu khién cutbyte ({outbyte AND (&HFO)) + Port - 4 PRINT #1, CHR$ (outbyte); *---Lap trinh tu diéu khién; Prog th High sang Low --- outbyte = outbyte AND &HEF PRINT #1, CHR$ (outbyte); ‘----Doc dit liéu vao: TBRL 1lén LOW va tré lai HIGH--- outbyte = outbyte AND 9255 - 128) PRINT #1, CHRS (outbyte); outbyte = outbyte OR 128 PRINT #1, CHR$ (outbyte); CALL lese.com (inbyte) . ketqua = inbyte ee _ Prog tré lai high -~-------------- outbyte = outbyte OR 16 PRINT #1, CHR$ (outhyte); END SUB SUB lese.com (inbyte) . Unterprogram: lese.com : Function: Chuong trinh con nay doc vao mot byte “qua céng néi ti@p. N@u nhu cuédc truyén dit 1iéu bi * nhiéu thi s@ cé mot thdng bdo hién 16n nha&p nhdy ‘va chuong trinh két thuc ! DOi=i+d1 IF LOC (1) >= 1 THEN in$. = INPUTS (1, #1) 2, CAC MACH SO 93 inbyte = ASC (in$) GOTO ketthuc END IF oe - Phép tht méi, doc du 1iéu vao~------------ LOOP UNTIL I = 1000 'Cyc dai 1000 1an thi eat eee tet Khéng nhdn duge byte nao } ---------~--- PRINT "Cuéc truyén dit 1iéu bi nhiéu..:" PRINT "Xin hay kiém tra lai day néi, 6 cdm phan cting...." END ketthuc: END SUB SUB OUT.8243 (daten, Port) ‘ Unterprogram: out .8243 ’ Function: Chuong trinh nay diéu khién cdc dudéng ' @&n eda vi mach 8243 sao cho 4 bit cé thé duge * xudt ra gua mét céng (Port) ---Xudt ra tt diéu khién- outbyte = (outbyte AND (&HFO)) + Port PRINT #1, CHRS (outbyte); *----L4p trinh controlword: prog tu high sang low---- outbyte = outbyte AND &HEF PRINT #1, CHRS (outbyte); outbyte = (outbyte AND (&HFO)) + Daten PRINT #1, CHR$ (outbyte); iid Prog tré lai mic High --------------~ outbyte = outbyte OR 16 94 DO LUGNG VA DIEU KHIEN BANG MAY TINH PRINT #1, CHRS (outbyte); END SUB 2.5 GIAO DIEN VAO/ RA TREN RANH CAM PC 2.5.1 VI MACH GHEP NOT 8255 Khéi ghép néi 8255 thugng hay dude stt dung trén tim Card cim thém vao may tinh PC trong viée thu thap di ligu do ludng dé xudt va nhap dit liéu s6, trong viée diéu khién qué trinh bién déi A/D. Vi mach 40 chan nay cé cdc chan bé tri nbu é trén hinh 2.14, trong dé c6 chita 24 dung dan 1éi vao/ ra duge xép thanh ba cong song song (céng A, B va C). 4 » = 7 3 as 36 38 38 a 30 20 = a 26 28 2 2 22 an Hinh 2:14 So d6 bé tri chan cia vi mach ghép ndi 8255. Tinh linh hoat cia vi mach nay thé hién 6 kha nang lap trinh. Qua mot thanh ghi diéu khién, ngudi sti dung xdc dinh loai hoat dong va céng nao can duge sit dung nhu 1a 16i vao hoac Iéi ra. Cac chan ra DO - D7 tao nén bus dit liéu hai huéng, rong 8 bit. Tat ca cdc dit liéu khi truy nhap ghi hoac 1a doc duige dan qua cdc dudng dan nay. Trang thai logic ghi/doc duge nhan biét qua cdc tin hiéu diéu khién /CS, /RD, /WR. Mot cuéc trao déi théng tin véi vi mach 8255 sau do c6 thé duge tién hanh khi /CS =0. Khi /RD = 0, sau do cc tin hiéu cha céng duge lua chon duge din dén bus dit liéu va cé thé dude goi bdi cde vi mach khac. Khi (WR = 0, thi moi viéc xay ra ngugc tré lai. Cac bit dia chi AO va Al cing 2. CAC MACH SO 95 v6i cdc tin hiéu ghi va doc bao hiéu cho biét sé truy nhAp lén cdng nao. Bang chan ly dudi day tom tat cdc két ludn vita mdi trinh bay 6 trén. Al AO /RD /WR ol Chitc nang Cita (Port) A => Bus dit liéu Cita (Port) B => Bus dit ligu Cita (Port) C => Bus dit ligu Bus di ligu = Cia (Port) A Bus diligu => Cita (Port) B Bus diligu => Cita (Port) C Su ghi vao cha ti diéu khién Dudng dan dit ligu d trang thai dién tré cao (tristate) Dudng dan dit liéu 4 trang thai dién tré cao (tristate) MR HH OOHOS MMH On COHO Meee OOO we HOC OOF ee eroescacoce Tu bang nay ré rang 1a thanh ghi diéu khién dat dudi dia chi ben trong AO = 0, Al = 1. Trong mét chu trinh ghi én thanh ghi diéu khién, ngudi st dung khang dinh céng vao/ra cing nhu kiéu hoat dong trong mét tit diéu khién, Mét mute High 6 dudng dan Reset dat trd lai thanh ghi diéu khién va dinh nghia toan bé 24 dudng dan nhu 1a cdc 16i vao. Su s&p xép cha tir diéu khién duge mé ta trén hinh 2.15. Tu day ta thay ro rang 1a 24 dudng dan cia céc cng A, B va C duge . phan chia thanh hai nhém. Trong a6 mot nita cha céng C (PC4...PC7) * thuéc vao nhom A, con nia kia thuédc nhom B. Téng cong, ngudi sit dung c6 ba kiéu hoat déng khac nhau. Kiéu (mode) 0, kiéu 1 va kiéu 2. Duéi day sé chi c6 kiéu 0 dude mé ta. Loai hoat déng nay gidi thigéu mét kha nang xu&t va nhap di liéu theo cach don gidn qua 3 céng A, B, va C. 96 0 LUONG VA DIEU KHIEN BANG MAY Tf Controlword (Ti diéu khién) p7| 06] 05] 04] 03] o2] 01] Do a] | Li vao Uéira Mode - Fl TS Active Hinh 2.15 Sy sip xép ciba tu digu kbién 4 vi mach 8255. Déi véi loai hoat déng theo ‘kiéu 0, tir diéu khién co thé tinh theo cach sau: Port A Port C Port B Port C Bit 4 ...7 Bit O38 Léi vao: 16 8 2 1 Léi ra: 0 0 0 0 Tudiéukhién; 1228 + Co +C™7 +O +o Thi du 1: Kiéu 0, céng A nhu 1a 16i vao, céng B nhw 1a Idi ra, céng C * nhu 1a léi ra. Tw diéu khién (Controlword) = 128 + 16+0+0+0= 144 Thi du 2: Kiéu 0, céng A nhv 1a li ra, cong C (bit 4... 7) nhu J8 161 vao, céng B nhu 1a 1di vao va céng C (bit 0... 3) nhu 1a léi ra. Tw diéu khién (Controlword) = 128 + 0+8+2+0= 138. 2. CAC MACH SO 7 2.5.2 GIAO DIEN VAO/ RA 24 BIT TREN RANH CAM PC Viée ghép néi vi mach 8255 vao ranh cam cia may tinh PC cé thé quan ly mot cach rét dn gidn. Hinh 2.16 chi ra so dé mach dién cha mét giao dién vao/ ra 24 bit dung cho ranh may tinh PC, Cac tin hiéu ghi va doc OW va AOR cé thé dude néi true tiép véi cdc tin hiéu tuong ung 6 vi mach 8255. Con chinh dudng dan Reset cua ranh cam PC duge dan dén vi mach 8255 ma khéng c4n mét khéi logic phu thém nao. Port A SRREReE SEzE EPPEStEeee Cte Ee SSKLBRLE Hinh 2.16 Giao dign vao/ ra 24 bit trén ranh cam PC. Dia chi co ban ma dui dia chi nay mach dién duge trao déi cé thé dude thiét lap 6 chuyén mach DIP. Chinh mach dién da ghi tén 4 dia chi bat dau bang dia chi co ban cia vung vao/ ra cua mét may tinh PC. 98 DO LUONG VA DIEU KHIEN BANG MAY TINH Dia chi vao/ ra Chitc nang Dia chi ed ban (Hex) chang han $ 300 | Cita (Port) A Dia chi co ban + 1 chang han $301 | CiaB Dia chico ban +2 chang han $ 302 | CitaC Dia chi co ban + 3 chang han $ 303 | Thanh ghi diéu khién Khi co su déng nhat giita dia chi co ban dude thiét lap va cdc dia chi dang ding xép hang 6 ranh cd4m PC, vi mach 74HC688 sinh ra d chan 19 mot tin hiéu Low, tin hiéu nay kich hoat vi mach 8255 qua duéng dan CS. Noi chung, tin hiéu Low nay tao kha nang cho mét cuéc trao déi thong tin bang vi mach ghép néi 8255. Chuong trinh ding 1am thi dy du6i day sé chi ra nhiing lénh nao trong QBasic cn dung cho cuéc trao déi théng tin. + program: 8255BSP ‘Function: B&ng cmtong trinh nay cd thé trao déi * véi mach giao dién I/O 6 ranh cdm PC m6 ta trén * hinh 2.16 4--------Khang dinh cdc dja chi vao/ ra (I/0)--------- basadr = &H300 ‘Basicaddress,thi dy $300 porta = basadr "Port A portb = basadr+1 "Port B porte = basadr+2 "Port C contrreg = basard + 3 'Controlregister Pann n nae 2 n-ne Thi dy: Controlword = 144--~----------- * Port A nhu 1a Input, Port B va Port C nhu 1a Output eee Ghi controlword vaéo controlregister--------- controlword = 144 QUT contrreg, controlword §a------------- Gti cdc df liéu téi céng B ----------- daten = 255 QUT portb, daten ‘Tat cA cdc bit 6 odng B 1@n High nner n nae n= Gli cde dt liéu téi céng c ----------- daten = 0 OUT porte, daten "Tat cA cdc bit 6 céng C 1én Low tena n------ =e Doc céc dd liéu tu céng A -- inbyte_= INP(porta) ; PRINT “Céc di liéu g céng A la: “; inbyte END 2.5.3 GIAO DIEN VAO/ RA 48 BIT TREN RANH CAM PC RARRATATAMTATATALET LEZ 2E SeRERRee aga AQERIARBAMTITAA DER EERIE Hinh 2.17 Giao dién vaol ra 48 bit trén ranh cam PC. Khi muén mé réng mach dién cua giao dién vao/ra 24 bit them 24 duéng dn vao/ ra nita, thi phai bd sung thém mét vi mach 8255 vao too BO LUONG VA DIEU KHIEN BANG MAY TINH mach dién nhu minh hoa trén hiah 2.17. Mach logic gidi ma phai md réng thém hai céng NAND nia va ngoai ra duéng d4n Chip Select cha vi mach 8255 cdn phai duge diéu khién. Viée la chon xem cho khéi ghép ndi nao trong hai khéi tré nén dude kich hoat do bit dia chi A2 6 ranh cam PC dam nhiém. Khi A2 dan téi miic Low va ngoai ra dja chi cd ban da duge dat dung (chan 19 cia 74HC688 = 0) thi cé thé tién hanh trao aéi thong tin bang vi mach IC1. Khi A2 = 1 va dja chi co ban la dung thi vi mach 8255 thi hai tré nén hoat dong. Mach dién trén hinh 2.17 ghi tén téng cong 8 dia chi, cdc dia chi nay dude viét nhu sau: Dia chi vao/ra Chitc nang Dia chico ban (Hex) chang han $300 | Cita A, IC1 Dia chi co ban +1 chang han $ 301 | Cia B, IC1 Dia chi co ban + 2 chang han $ 302 | Cia CC, IC1 Dia chi cd ban + 3 chang han $303 | Thanh ghi diéu khién, IC1 Dia chi cd ban + 4 chang han $304 | Cita A, 1C2 Dia chi co ban + 5 chang han $305 } Cua B, IC2 Dia chi cd ban + 6 chang han $306 | Cita C, IC2 Dia chi cd ban +7 chang han $ 307} Thanh ghi diéu khién, IC2 2.6 CAC BO BEM VAN NANG 2.6.1 VIMACH DEM 8253 Vi mach dém 8253 1a mét bé dém cé thé gap trong nhiéu ing dung. Con sé cdc tng dung kha di nhiéu dén mite dang ngac nhién: bo dém xung, b6 dém tan sé, b6 phat xung lap trinh dude, thiét bi tht phan ting, may do dién dung, bé diéu khién dé sang, b6 bién déi D/A v. v... chi 1A mét vai thi du dude ké ra. Dé c6 thé sti dung dude vi mach nay trong thuc té thi diéu bat bude 1a phai tim hiéu ky ludng nguyén tdc hoat déng cha vi mach nay sé duge mé ta mét cach ddy da trong muc dudi day. 2. CAC MACH SO 101, Vi mach dém 8253 chita ba bo dém jhi 16 bit déc lap véi nhau. M&i mét b6 dém cé ba chan ra tuong ting: 16i vao gitt nhip CLK, cla GATE va léi ra tin hiéu OUT. Thoat nhin viéc sti dung cdc b6 dém lui cé thé 1a khéng légic. Dé hiéu ré ta nén chi y tdi cdch dat van dé 1a phai dém dung 10.000 xung va tiép do la mét tin hiéu dé kich hoat. Véi méi sudn 4m 6 1éi vao CLK, hién mic 6 b6 dém lai bi giam di cho dén khi dat gid tri bang 0. Sy giai ma cua hién mtic 0 6 b6 dém (da dém 10.000 xung) sau d6 duge thuc hién 6 bén trong cia vi mach theo céch don gian dang ké hon 1a su giai ma cua gid tri xudt phat, d day 1a 10.000 nhung tat nhién né6 cé thé nhan céc gid tri khac. Hinh 2.18 chi ra su sAp xép chan cua vi mach dém 8253. Hinh 2,18 Sap x8p chan cua mach dém 8253. Cac dudng dan dit ligu DO dén D7 biéu dién céc bus dit liéu theo hai huéng, qua do tat cd cdc dit ligu khi truy nhp ghi hoac 1a doc duge dan dén. Trong mét lan truy nhap doc (/RD = 0) hién mite 6 bé dém c6 thé due goi ra, con trong mét lan truy nhap ghi (/WR = 0) hién miic cla bd d&m dude ghi vao mét thanh ghi diéu khién va sau do bé dém dude nap bang cdc gia tri bat dau. Qua cdc bit dia chi AO va Al ta dat dén ba bé dém va thanh ghi diéu khién. Bang chan lf sau chi ra mét céch nhin téng quan vé chic nang cla cdc dutng din diéu khién 6 vi mach dém 8253. 102 DO LUONG VA DIEU KHIEN BANG MAY TINH Al AO /RD /WR /CS| Chite nang Dog ra ti bé dém 0 Doe ra tit bs dém 1 Doe ra tix bé dém 2 Su nap cia b6 dém 0 bang ti xudt phat Su nap cita bg déin 1 bing tit xudt phat Su nap cia bd dém 2 bang tit xudt phat Su ghi vao cla tit diéu khién Dudng dan dit liéu d trang thai dién tré cao (Tristate) Dudng dan dw liéu é trang thai dién trd cao (Tristate) MR H RP OOH OO MMH On CORO MH Pde pr er OOO He COO OnE HE or ecoeoo eC oO Ti diéu khién khang dinh kiéu hoat dong va hé théng dém, déng thdi kiém tra su nap cua thanh ghi dém. Mét bo dém duc lap trinh, trong d6 trudc hét ta nap thanh ghi diéu khién bang sé dém da gap, kiéu (mode) va hé théng dém. Loai d&m 8m nhi phan Bam mudi Mode (kiéu) Sy truyén di ligu 0 0 Luv trirtrung gian trang thai dém. 0 1 Chitruyén MSB 40 ChitruyénLSB 11 Truc LSB, sau MSB Sy lya chon bo dém 0 B6démo 4 BOd&m1 0 Bodem2 1_Cam 0 0 a 4 2. CAC MACH SO 103 Sau dé ta ghi gia tri xu4t phat cia bé dém vao thanh ghi dém tuong ting. Réi'eit mdi lan gap sudn 4m bé dém lai dém lai di mét. Trong cdc _kiéu hoat déng riéng 1é, su dat téi dich cha b6 dém (hién mitc 0 cla bd dém) co ¥ nghia khdc nhau. Hinh 2.19 chi ra su sdp xép cua cdc tii diéu khién 6 vi mach dém 8253. Bit du ligu DO lya chon gitta céc con sé da ma hoa nhi phan va BCD. Cén D1, D2 va D3 khang dinh 6 kiéu hoat déng kha di va sau nay sé cdn duge trinh bay mét cach day di. O trén da nhde téi bo dém 16 bit, nhung ma lai chi cé mét bus dif liéu 8 bit, nén mot gid tri xudt phat 16 bit cdn phai duge truyén di thanh hai byte. Trong hau hét cdc ting dung, trudc hét 1a bit c6 gia tri thap nhat LSB (tu tigéng Anh: Least Significant Bit) sau dé 1a bit c6 gid tri cao hon MSB (tiéng Anh: Most Significant Bit) dugc truyén di. Chang han nhu dé nap gid tri xudt phat 50.000 vao mét bé dém, thi trude hét gid tri hang chuc 80 sau dé 1a 195 trong bé dém da gap can phai dudc ghi. Phép tinh tuang ting cé thé ghi ra nhw sau: 50.000 : 256 = 195 du 80; 6 day 195 la MSB con 80 1a LSB. Ti hinh 2.19 cé thé tinh toAn mét cach rat don gian tu diéu khién ding cho loai dém céc sé nhi phan, qué trinh truyén trude hét Ja LSB réi dén MSB. Controlword = 2. Mode + 64. Counternummer + 48 Khi ma D4 = 0 va D5 = 0, hién mute 6 mét b6 dém co thé htu trit trung gian ma khéng can lam ngiing qua trinh dém. Khi luu trif trung gian mtic légic cua dudng dan dit liéu DO dén D3 khéng phai la quan trong va do do co thé duge dat lén 0. Thi du khi ta muén luu triv hién mic 6 bé dém cua bé dém thi gia tri 128 (dec.) phai dugc ghi vao thanh ghi diéu khién. Trong trudng hop téng quat, ti diéu khién cAn thiét dé luu trit trung gian mét hién mite bé dém cé thé duge tinh nhu sau: Luu tri trung gian trang thai dém (Counterstand): Controlword = 64.counternummer Su mé ta kiéu hoat d6ng riéng biét cé thé dan ra nhv sau: Kiéu (mode) 0: Sudn duong bi lam tré 104 DO LUONG VA DIEU KHIEN BANG MAY TINH Léi ra cia bg dém (OUT 0/1/2) truée hét duge chuyén sang mite Low sau khi cé su khang dinh loai hoat dong dién ra trong hic thiét lap trang thai ban dau cia khéi dinh thdi gian Timer, Sau khi da dign ra qua trinh nap cia thanh ghi dém mong muén bang mét gid tri xuat phat, bo dém tuong ting sé dém ldi bat dau ti gid tri xudt phat, gia dinh, 1éi vao GATE nam trén mic High. GATE = 0 1am ngting qua trinh dém dang xay ra, khéng ké la 1éi ra OUT thay déi sang mot dang khac nao day. Khi Idi vao GATE chuyén tré lai High, qua trinh dém bat dau véi gi tri ma bé dém chi ra truéc khi nging. Léi ra van git nguyén mite Low trong khi dém Ini. Khi dat dude hién mic 0 6 bé dém thi léi ra chuyén sang High va diing lai 6 trang thai nay cho dén khi b6 dém duge eau hinh méi. Hinh 2.20 Gian dé xung cdia kiéu hoat déng 0. Can phai chu § 1a sau khi dat dén su két thac qua trinh bé dém lai tiép tye dém lui bat dau bang gid tri 65.535, déc lap véi viée gid tri xudt 2. CAC MACH SO 105 phat nao dang dung trong thanh ghi bé dém. Sau do léi ra OUT ding lai 6 mttc High cho dén khi bo dém duge nap méi bang mét gia tri xuat phat. Dac biét phai nhén manh 1a sudn 4m dau tién 6 16i vao CLK khéng dude dém ma chi cé gid tri xudt phat dude dam nhiém nhu Ja hién mttc b6 dém hién thdi. Sau dé mét subn 4m cia xung nhip dude dan dén léi vao CLK dé lam gidm hién mite 6 bd dém di 1. Viée ghi mdi vao thanh ghi bd dém trong khi qua trinh dém dang dién ra dan dén hau qua la khi ghi vao byte dau tién qua trinh dém ding lai va khi ghi vao byte thé hai thi qua trinh dém mdi duge khdi dong. Kiéu hoat déng 1: Mach monoflop lap trinh duge ee ————————_— Hinh 2.21 Gian dé xung cua kiéu hoat dong 1. Khi ta cha y dn gidn dé xung cia kiéu hoat dong 1 trén hinh 2.21 thi thoat nhin cé vé nhu khéng cé su khdc nhau co ban voi kiéu hoat dong 0. Nhung &n tugng ddu tién nay khéng ding. 6 cd hai kiéu hoat dong, léi ra OUT git nguyén 4 trang thai Low trong n chu ky git nhip,” 406 DO LUONG VA DIEU KHIEN BANG MAY TiN trude khi né chuyén sang mic High 6 hién mic 0 6 b6 dém. Trong do, N la gid tri xudt phat cua bé dém. Sy kbdc nhau cd ban giita hai kiéu hoat dong thé hién 4 chite nang cia léi vas GATE. Sau khi nap mét bd dém bang gid tri xuat phat cua n6, 16i ra CUT trude hét con ding lai 4 mite High. Vay thi sau khi c6 mét suén duo.g xuat hién 6 16i vao GATE, qua trinh dém mdi bat dau, 1éi ra OUT chuyén sang mtc Low bang suén 4m cua xung giit nhip dau tién 6 chan C.OCK, nghia 14 b6 monoflop lap trinh duge cn phai dude khdi déng bing phan cttng. Cang cdn chu y Ja v6i mdi suén dudng 6 Iéi vao GATE, bé dém lai dude nap bang gia tri xudt phat. Bang qué trinh nay cé thé kéo dai thdi gian Low cia mach monoflop ra vé han. Hay 1a theo ngén ngit chuyén mén, ta cé thé n6i 1a mach monoflop tai Jat trang thai duge (retriggerable). Khac véi kiéu hoat déng 0, chite nang dém cing duge bao dam téi khi GATE = 0. Sau khi dat duge hién mic 0 6 bé dém thi bd dém bat dau dém lai tw gid trj 65.535, diéu nay xay ra déc lap véi gid tri xuat phat cia bé dém. Mét su nap mdi cia bé dém trong khi Idi ra 1a Low, sé kh6ng.cé anh hung dén mic dé kéo dai cua trang thai Low. Hién mic cua b6 dém cé thé duge doc ra bat ky luc nao ma khéng cé anh huéng Jén qua trinh dém dang dién ra. Kiéu hoat dong 2: Bé chia 1/n Trong kiéu hoat dong nay Idi ra OUT chuyén sang mtic Low 6 hién mic 1 cha bé dém trong khoang thdi gian mét chu ky giit nhip. Sau khi dat téi hién mitc 0, b6 dém Idi ra OUT chuyén lai sang mite High va bd dém bat dau dém lui ti gid tri xudt phat. Day 1a diém khaec nhau co ban so véi kiéu hoat déng 0 va 1, 4 kiéu hoat dong nay sau khi dat hién mute dém 0, bé dém bat dau dém lui tix gid tri 65.535. 6 day mic d6 kéo dai ctia mtc High 6 tin hiéu 1éi ra OUT la (n - 1) chu ky gid nhip, con mite Low kéo dai mét chu ky git nhip nén chu ky cua tin hiéu 16i ra OUT bang n lan tin higu CLOCK. Diéu dang chu y 1a b6 dém dude khdi dong méi bang mdi sudn dugng 6 1di vao GATE. Nhd vay ma 1éi vao GATE cé thé duge tan dung dé déng b6 bé dém. 2. CAC MACH SO 107 Trong thuc té phai dac biét chu y 1a sudn 4m dau tién Gd 1éi vao CLOCK con chua duge dém, ma chi cé gid tri xudt phat duge chap nh4n nhw la hién mic hin thdi 4 bd dém. Hinh 2,22 Gian dé xung cia kiéu hoat déng 2. Mét tng dung cua kiéu hoat dong 2 1A su phan tang cia b6 dém. Suén git nhip duong cia tin higu 106i ra OUT 6 hién mic 0 cha b6 dém co thé duge din qua mét b6 dao dén 161 vao CLOCK cia bo dém tiép theo. Kiéu hoat dong 3: BO phat tin hiéu vudng géc. Trong kiéu hoat dong 3, bd dém 8253 c6 thé dude si dung nhu 1a mét b6 phat tin hiéu vuéng géc lap trinh dude. Loai hoat dong nay nhan manh vai tré cua kha nang vé cong suat cia vi mach dém 8253. Chi phi cho phan cttng dé co dude chic nang nay bang cdc vi mach légic, rdi rac la rt tén kém. Trong kiéu hoat déng 3, tin hiéu 1éi ra OUT c6 mite High trong ntta dau cia qua trinh dém, trong nua sau Jéi ra gitt nguyén 3 mic Low. Néu nhu gid tri dém 1a 1é thi khi co xung nhip dau tién (sau khi nap bd dém) gia tri nay bi bét di 1. Cac xung nhip tiép theo sé gidm bot gid tri nay di 2. Khi dat dén su két thic qua trinh dém léi ra tré thanh Low, va gia tri dém day du dude nap tré lai. Xung nhip ké sat 108 DO LUONG VA DIEU KHIEN BANG MAY TINH theo qua trinh sé giam bét hién muc 6 bé dém di 3, con cde xung nhip tiép theo lai-chi giam bét di 2. Qua trinh nay dude lap lai va nhé thé - khi ma gia tri dém 1a lé - 16i ra sé tré thanh High trong (n +1)/2 chu ky git nhip va tré nén Low trong (n-1)/2 chu ky giit nhip. Ca nhu thé bé dém Jam viéc giéng nhu mot bd dém lap trinh duge. Hé sé chia c6 thé lua chon dude giita 2 va 65.535. Bang viée chia tang hai bé dém trong kiéu hoat déng 3 dan dén hé sé chia téng céng . duge tinh bang tich cia hai hé sé chia. Theo cach nay co thé tao ra cac tan s6 thap véi dé chinh xdc cao. Chang han nhu ta muén tao ra tan 86 so sdnh 14 50 Hz tit mét bé dao dong thach anh 4 MHz thi can cé mét né s6 chia 1a 80.000. Dé cd dugc hé sé chia lén nhu thé nay, ngudi st dung cé nhiéu giai phap dé lua chon. Thuting thi cdn cé hai bd dém lam viéc theo kiéu hoat dong 3 duge dau ké tiép nhau. Chang han bé dém 1 c6 thé duge nap bang 1.000 cdn bé dém 2 bang 80. eee acs prep eee amc ee eae ee ee eG aw ot eee ae Ss Hinh 2.23 Gian dé xung cia kidu hoat déng 3. 2. CAC MACH SO 109 wt UL LLL) PL = if Hinh 2.24 Gian dé xung cla kiéu hoat déng 4. a eee ee Hinh 2.25 Gian dé xung cla kiéu hoat déng 5. 410 BO LUONG VA DIEU KHIEN BANG MAY TINH Kiéu hoat dong 4: STROBE tai lat trang thai duoc bang phan mém Léi ra cha bd dém truée hét chuyén sang trang thai High sau khi thiét lap trang thai ban dau cho khéi dinh thdi gian (Timer). Sau khi nap bé dém, qua trinh dém bat dau. Khi dat dén trang thai két thuc Idi ra chuyén sang Low trong mét chu ky git nhip réi chuyén tré lai sang High. Khi ma trong mét qua trinh dém thanh ghi dém duge nap mdi thi gid tri dém mdi dude nap bang xung giit nhip tiép theo sau. Trong khi Idi vao GATE d4n dén mite Low, thi khong c6 qua trinh dém nao cé thé xay ra. Kiéu hoat dong 5: STROBE tai lat trang thai dude bing ph4n cing Trong kiéu hoat déng nay bé dém bat dau qua trinh dém bang suén duong cia xung d 1di vao GATE va khi két thic qua trinh dém sinh ra mét mite Low trong mét chu ky gitt nhip. B6 dém 1a co thé tai lat trang thai dude. 2.6.2 GHEP NOI BO DEM VOI RANH CAM TRONG MAY PC Vi mach dém 8253 c6 thé ghép néi mot cach rat don gian vao ranh cdm cua may tinh PC. Viée rap néi tién hanh qua cdc dudng dan dit liéu DO dén D7, cdc duéng dan diéu khién /CS, /WR, /RD cing nhu qua cac dudng dan dia chi AO va Al. Hinh 2.26 chi ra so dé mach dién ding cho viéc ghép néi b6 dém. Ta nhan thay sy cé mat cua bé dém bus hai huéng 74HC246, da dude mé ta ky Judng trong muc 1.3, cdc dudng dan di liéu cha ranh c&m PC dude néi vdi vi mach dém qua bd dém 74HC245 nay. Nhd vay ma khi truy nhap lén vi mach dém dé ghi hoac la doc bé dém nay déng vai tré chuyén hudng cua dong dit ligu. Con vi mach 74HC688 so sanh cdc dudng dan diy liéu ké sat ranh may tinh PC theo tinh déng nhat vdi cdc dia chi cd ban dude dat trude bdi chuyén mach DIP, va khi cé dude sy déng nhét sé cho ra mot mtte Low 6 chan 19. Tin hiéu nay dude din dén mot cdng HOAC (OR) bang bit dia chi A2 cia ranh cdm cua may tinh, léi ra cua céng nay sé kich hoat vi mach dém_ 8253. O day diéu kién can Ia hai tin hiéu léi vao cé mutc Low. Déng thdi tin hiéu A2 duge dn qua mét bé dao dé tai mét cla HOAC (OR) khéae nita; clta nay trong mét lan truy nhap doc sé tao ra mét xung Low 2. CAC MACH SO Vid ngan han; xung Low lai cé thé dude su dung trong nhiéu ting dung cia vi mach dém 8253. Hinh 2.26 Ghép néi b6 dém vdi ranh cam trong may PC. Mach dién chiém ché véi 8 dia chi bat dau ti dia chi co ban: Dia chi vao/ ra Chic nang Dia chi co ban Dia chi cd ban +1 Dia chi co ban + 2 Dia chi co ban + 3 Dia chi co ban + 4 Dia chi cd ban +5 Dia chi co ban + 6 Dia chi co ban + 7 chang han $ 300 chang han $ 301 chang han $ 302 chang han $ 303 chang han $ 304 chang han $ 805 chang han $ 306 chang han $ 307 Bé dém 0 Bo dém 1 BO dém 2 Thanh ghi diéu khién Cac xung LOW (so sdnh véi hinh 2.26) Cac xung LOW (so sanh véi hinh 2.26) Cac xung LOW (so sdnh véi hinh 2.26) Cac xung LOW (so sdnh véi hinh 2.26) 112 DQ LUONG VA DIEU KHIEN BANG MAY TINH Chuong trinh 8253BSP ding lam thi du duéi day chi ra cho ta thay khi lap trinh cho mét card cém thém vao cé chifa vi mach dém 8253 thi can nbting lénh nao trong QBasic: "program: 8253BSP ’ Punction: Tin hiéu vuéng géc cla mét bé dao déng * thach anh véi tan sé f = 4 MHz duce dan dén bd aém ‘0 va dude chia cho 23580. Tin niéu 16i ra duge d4n "8m 16i vdeo CLOCK cia bd dém 1, bé nay hoat déng * nhu mét bd dém xung don gidn (mode 2). K&t qua dém . thuéng xuyén duge doc ra va nién thi 1@n man hinh Panes nee Khang dinh céc dia chi vao/ ra (1/0)----- --- basadr = &H300 ‘Basicaddress, 300 hex counter0 = basadr "BO dém 0 counterl = basadr + 1 "BG dém 1 counter2 = basadr + 2 ‘BO d&m 2 contrreg = basard + 3 ‘Controlregister * B6 d@m 0: Mode 3, Startvalue: 23580 (Hé sd chia) » BO a&m 1: Mode 2, Startvaiue: 65535 mode 0 = 3 ‘Mode Counter 0 mode 1 = 2 ‘Mode Counter 1 startO = 23580 ‘Startvalue Counter 0 starti = 65535 ' ‘Startvalue Counter 1 controlword0 = 54 ‘Controlward bédém O(xXem text) controlwordl = 116 ‘Controlword bédém 1(Xem text) -Tinh todén cdc byte High va Low startO.highbyte = start0d \ 256 ‘ a start0.lowbyte = start 0 MOD 256 ‘Chi cé phan du 2. CAC MACH SO 13 start1,highbyte = startl \ 256 a. start1l.lowbyte = start 1 MOD 256 ‘Chi cé phan du OUT contrreg, controlword 0 "BO dém 6 OUT counter0, start0.lowbyte ‘Truéc hét Lowbyte OUT counter, startO.highbyte ‘Sau dén Highbyte OUT contrreg, controlword 1 *BO dém 1 OUT counterl, startl.lowbyte 'Truéc hét Lowbyte OUT counterl, startl.highbyte ‘Sau dén Highbyte DO OUT contrreg, 64 "Chét bd dém 1 ~=------~------ -Bec két qué tu bé dém-------------- standl.lowbyte = INP(counter1) 'Truéc h€t cdc byte Low standl.highbyte = INP (counter1) “Sau 1a cdc byte High counterstand = standl.lowbyte + 256 * standl.highbyte PRINT “Két quad dém hién thdi cia bé dém 1 1a:"; counterstand IF INKEY$ = CHRS$ (27). THEN EXIT DO LOOP END 114 DO LUONG VA DIEU KHIEN BANG MAY TINH 2.6.3 MODUN DEM 6 CONG NOI TIEP VA CONG SONG SONG Phan cting Nhu da thay ré trong muc vita réi, vi mach dém 8253 dude ldp rap trén card cm thém vao cé thé duge diéu khién rat don gidn. Ti dé ta citing thay rang ranh cdm cia may tinh PC bén canh 8 dudng dan dit liéu hai huéng cing cdn c6 nhitng tin hiéu diéu khién cing nhuw tin hiéu dia chi. Cudc trao déi théng tin chi cé thé xay ra khi ma c6 duge truy nhap duge Jén cdc tin hiéu nay. Qua cdc médun da mé ta 6 chuong 1, vi mach dém 8253 cé thé duge diéu khién truc tiép, bdi vi cdc médun nay 6 chi mét vai dung dan. ™ 7 or m a mt pea on Po mm Pea ) pe pas - pe I Hinh 2.27 Médun dém van nang. Tuy nhién qua viée sti dung mét vi mach 8243 (xem thém muc 2.4) vn dé sé khéng c6 gi can quan tam thém. Hinh 2.27 chi ra so dé mach dién cia médun dém stt dung vi mach 8253, médun nay cé thé dude ghép néi véi bat ky mét médun nao trong chudng 1. Theo cach nay, tuy theo cach Iya chon ma vi mach 8253 c6 thé duge diéu khién qua céng may in hode céng ndi tiép RS 232, Trong pham vi chuong nay, ta sé con c6 diéu kién dé tim hiéu thém mét vai ting dung dang quan tam khac nifa. Truée hét 6 day ta xem xét mach dién mé ta trén hinh 2.27. Vi mach dém 8243 tao ra kh nang diéu khién t&t cd cdc dudng din dit liéu cing nhu céc dwong dan dia chi cia vi mach 8253. Giita lib cae dudng dan di lieu cua hai yi mach cdn co mot bo dém bus hai huéng 74HC245, vi mach nay sé chuyén sang trang thai dién tré cao méi khi truy nhap lén vi mach dém 8253 dé doc (/RD = 0). Trong mdi chu trinh ghi, cae dit ligu ena vi mach dém 8253 duge dan dén 6 néi 32 chan dé réi duce doc tit may tinh PC qua cde médun bus. 6 é néi 16 chan K2 ede tin hiéu ciia'ba bé dém c6 thé duge diéu din. O ni nay dong vai tro nhu mot cong ghép ndi déi vdi cde phan eting riéng biét. Hinh 2.28 mé ta so dé sap xép finh kién cha médun dény con trén hinh 2.29 1a so dé mach in cua médun nay. Danh sach cae linh kién dui day gigi thigu cae vat tu cdn thidt dé lap rap m6t médun dém van nang: Linh kin ban dan: [C1: 82043 Phich cam: IC2: ia G24 Kl: det 32 chan 1C3: 82C 53 K2: 25 chan 1C4: 74HC14 Trén hinh 2.30 1a hinh dang bén ngoai cua médun dém ghép ndi véi mét médun co sé dA trinh bay 6 chuong 1. Hiah 2.30 Médun dém ghép néi véi mot modun ca sd. 2. CAC MACH SO 117 Phan mém Phan mém dé diéu khién ba bd dém cia vi mach 8253 cing véi médun dém duoc viét ra rdt cong phu chit khéng don gian nhu khi ghép i bé dém vao ranh cdm cha may tinh PC. Nhitng gi ma 6 card cdm thém vao cé thé gay tac déng chi bang mét lénh, thi 6 day lai can phai lap trinh theo tiing bude mét. Vi vay chuong trinh dung lam thi du du6i day nén dugc tim hiéu ky ludng. Trong chuong trinh ta sé thay rd ca ba bo dém duge nap bang gia tri xudt phat trong céc kiéu hoat déng khée nhau, va chi ra hién mtic cua b6 dém trén man hinh. Toan bé chuong trinh la mét tin hiéu hoan chinh nén 6 day khéng.cdn c6 thém nhitng ldi gidi thich. - Program: UNICTLPT * Function: Bang chuong trinh nay cé thé trao déi ' véi hai bd dém 1ui 16 bit qua céng n6i vdi may * in, Tu dé dén dén nhting tng dung nhu 14 bé dém * xung, bO dém t&n sé, b6é phdt xung lap trinh dugc, ' dng hd ng&t mach 14p trinh duge v. v... ‘Hardware: Can cé m6t médun co sé dA trinh bay 6 ' chuong 1 cfing nhu mét médun dém van nang DECLARE SUB OUT.PORT4.8243 (nibbel) DECLARE SUB BYTE.TO.8253 (BYTE) DECLARE SUB WRITE.DATA.TO.8253 (Counternummer, MODE, startvalue) DECLARE SUB READ. DATA. FROM. 8253 (Counternummer, Counterstand) DECLARE SUB lese.lpt (inbyte) DIM SHARED outbyte, datreg, statreg, contrreg 118 DO _LUONG VA DIEU KHIEN BANG MAY TINH basadr = &h378 datreg = basadr ‘Datenregister statreg = basadr + 1 ‘Statusregister contrreg basadr + 2 ‘Controlregister outbyte = 255 COLOR 0, i5 CLS aS = "TESTS OFTWARE FOR COUNTER MODUL” a = LEN (a$): b = (80 - a) / 2-1 LOCATE 1, b: PRINT CHRS$ (201); STRINGS (a + 2, CHRS (205)); CHRS (187) LOCATE 2, b: PRINT CHRS (186); LOCATE 2, b + 2: PRINT a$ LOCATE 2, a + b + 3: PRINT CHRS (186) LOCATE 3, b: PRINT CHR$ (200); STRINGS (a + 2, CHRS (205)); CHRS (188) PRINT ---6 day mode va gid trj xudt phdt cé thé duge cho vao--- mod0 = 2 "Kida bd dém 0 modl = 2 “+ Ridu b6 din 1 mod2 = 2 "Kiéu bd dém 2 start0 = 20000 ‘Gia trj xudtphét 3 b6 dém 0 startl = 45000 ‘Gid tri xudtphdét & bd dém 1 start2 = 30000 ‘Gid tri xudtphdt 6 bd d&m 2 CALL WRITE.DATA.TO.8253 (0, mod0, startDd) CALL WRITE.DATA.TO.8253 (1, modi, starti) CALL WHITE. DALTA.TO.8253 (2, modz, starv2)} 2. CAC MACH SO 119 /-----Sinh ra xung Low bing duéng dan dit 1iéu D2-~--- f (cé thé duge ding cho cde ting dung cla 8253) outbyte = outbyte AND (255 - 2) | OUT datreg, outbyte outbyte = outbyte OR 2 OUT datreg, outbyte CALL READ.DATA.FROM.8253 (0, stand0) CALL READ.DATA.FROM.8253 (1, stand1) CALL READ.DATA.FROM.8253 (2, stand2) Impulse& = (startO - standO) + startO * (startl - stand1) Peon n nnn ------- xudt dt 1i@u ra man hinh------------- - LOCATE LOCATE LOCATE 5, 20: PRINT “COUNTER 0” 5, 40: PRINT “COUNTER 1” 5, 60: PRINT “COUNTER 2" EeaeRes p eeeare PRINT “MODE:” LOCATE 7, 20: PRINT mod0 LOCATE 7, 40: PRINT modi LOCATE 7, 60: PRINT mod2 LOCATE 9, 1: PRINT “GIA_TRI_XUAT_PHAT:” LOCATE 9, 20: PRINT starto LOCATE 9, 40: PRINT startl LOCATE 9, 60: PRINT start2 LOCATE 11, 1: PRINT *HIEN_MUC_O_BO_DEM:” LOCATE 11, 20: PRINT stando LOCATE 11, 40: PRINT standl LOCATE 11, 60: PRINT stand2 120 BO LUONG VA DIEU KHIEN BANG MAY TINH LOCATE 15, 1: PRINT “TINH_TOAN:* LOCATE 15, 20: PRINT Impulse & LOCATE 20, 1: PRINT “ESC: Noting lai“ IF INKEYS = CHRS (27) THEN EXIT DO LOOP CLOSE 1 END SUB BYTE.TO.8253 (BYTE) * Unterprogram: byte.to.8253 ‘ Punction: Chuong trinh nay diéu khién duéng @3n * ctla 8243 sao cho mot byte at 1iéu duce xudt ra qua "cdc c6ng 6 va 7. Byte nay duge din tdi cdc dudng * @&n di 1iéu DO dén D7 cia vi mach dém 8253. nibbel.low = BYTE AND &HF nibbel.high = (BYTE AND &HFO) / 16 outbyte = (outbyte AND (&HF)) + port * 16 OUT datreg, outbyte + ---Lap trinhh tu diéu khién: Prog tu High sang Low-- outbyte = outbyte AND (255 - 8) OUT datreg, outbyte 2. CAC MACH SO 121 outbyte = (outbyte AND &HF) + nibbel.low * 16 OUT datreg, outbyte ---PROG tré lai HIGH. outbyte = outbyte OR 8 OUT datreg, outbyte Xudt ra NIBBEL.High qua Port 6- outbyte = (outbyte AND (&HF)) + Port * 16 OUT datreg, outbyte ‘=---Lap trinh CONTROLWORD: PROG ti HIGH sang LOW----- outbyte = outbyte AND (255 - 8) QUT datreg, outbyte eee X€p mia byte dit 1iéu (4 BIT)dugc cho ra ----- outbyte = (outbyte AND &HF) + nibbel.high * 16 OUT datreg, outbyte outbyte = outbyte OR 8 OUT datreg, outbyte END SUB SUB lese.lpt (inbyte) i Unterprogram: lese.lpt 122 BO LUONG VA DIEU KHIEN BANG MAY TINH * Function: Chuong trinh con nay doc vao mét byte "qua céng m4y in. Ké&t qua ding 6 trong bién inbyte. OUT contrreg; 9 ‘init = 0 inbytel = INP(statreg) ‘dace vao tk D0,D1,D2,va D3 OUT contrreg, 4 nai a inbyte2 = INP(statreg) "doc vao tt D4,D5,D6,va D7 (SLCT) 1a DO (PE) 1a D1 ‘ Statusregister bit (ACK) 1a D2 ‘inbytel: Statusregister bit 4 5 6 . Statusregister bit 5 (BUSY) 1a /D3 4 7 6 5 ' Statusregister bit ‘inbyte2: Statusregister bit (SLCT) 1a D4 . Statusregister bit (PE) 1a D5 “ Statusregister bit (ACK} 14 06 . Statusregister bit (BUSY) 1a /D7 inbyte = (((inbytel XOR 128) AND &HFO) / 16) + ((inbyte2 XOR 128) AND &HFO) END SUB SUB OUT.PORT4.8243 (nibbel) "| Unterprogram: out.port.8243 + Function: Chuong trinh nay diéu khién cdéc duéng + dan cla vi mach 8243 sao cho mét bit dit 1iéu dude + xudt ra qua céng 4. Bit nay diéu khién cdc duéng '° @&n @iéu khién cia vi mach 8253 nhu sau: P43 --> ALP42 ~-> AO P4l ~-> /RD P40 --> /WR outbyte = (outbyte AND (&HF)) + Port * 16 OUT datreg, outbyte ‘---Lap trinh tu diéu khién: PROG tu HIGH sang LOW--- outbyte = outbyte AND (255 - 8) OUT datreg, outbyte fa----- x€p nta byte dt 1iéu (4 BIT)duge cho ra----- outbyte = (outbyte AND &HF) + nibbel * 16 OUT datreg, outbyte outbyte = outbyte OR 8 OUT datreg, outbyte END SUB SUB READ. DATA.FROM.8253 (Counternummer, Counterstand) + Unterprogram: READ, DATA.FROM.8243 ‘Function: Chuong trinh diéu khién bo dém 8253 qua * 8243 sao cho trang thdi dém duge thdng bdo lai + nhu 1a k&t qua *---Dja chi (Al = 1 va AO = 1) x@p cho CONTROLWORD--- ‘D6 --> AQ and D7? --> AL + @6ng thoi /RD va /WR phai duse dat 1én High 124 DO LUGNG VA DIBU KHIEN BANG MAY TINH nibbel = 15 CALL OUT.PORT4.8243 (nibbel) « 64 tuong ung voi: Su chdt dt 1iéu controlword.8253 = 64 * Counternummer CALL BYTE.TO.8253 (controlword. 8253) fae ae es cee ee et TaO ra WRITE-SIGNAL /WR: LOW. ..HIGH---- nibbel = nibbel AND &HE CALL OUT.PORT4.8243 (nibbel) nibbel = nibbel OR &H1L CALL OUT.PORT4.8243 (nibbel) * D6 tuong Ung véi bit dja chi ad * D7 tuong ung véi bit dia chi Al nibbel = (nibbel AND &H3) + 4 * Counternummer CALL OUT. PORT4.8243 (nibbel) nibbel = nibbel AND &HD CALL OUT.PORT4.8243 (nibbel) CALL lese.lpt (byte. low) 2. CAC MACH SO 125 nibbel = nibbel OR &H2 *Read-Signal tré lai High CALL OUT.PORT4.8243 (nibbel) nibbel = nibbel AND &HD CALL OUT.PORT4.8243 (nibbel) CALL lese.lpt (byte.high) nibbel = nibbel OR &H2 “Read-Signal tré lai High CALL OUT.PORT4.8243 (nibbel) Counterstand = (byte.low + 256 * byte.high) END SUB SUB WRITE.DATA.TO.8253 (Counternummer,MODE, startvalue) ‘ Unterprogram: WRITE.DATA.TO.8243 Function:Chuong trinh nay diéu khién vi mach dém ‘8253 qua vi'mach 8243 sao cho sé dém, kiéu dém va igi. tri xudt phdt duoc gti téi 8253 '---X€p c4c dia chi Al=1 va AQ=2)cho tt di@u khién --- (tu diéu khién: Controlword) * D6 tuong tng véi bit dja chi AO ‘D7 tuong ting véi bit dja chi Al nibbel = 15 CALL OUT.PORT4.8243 (nibbel) 126 BO LUONG VA BD! KHIEN BANG MAY TINH 48 tuong tng vdi: truéc hét LSB sau dén MSB 0 tuong ung véi: cde s& nhi phan controlword.8253 = 64 * Counternummer+48+2 * MODE + 0 aoaer-n- Gli tu diéu khién téi 8253--~----------- CALL BYTE.TO.8253 (controiword. 8253) Fon anne Tao ra tin hiéu viét /WR: LOW...HIGH-~------" nibble = nibble AND &HE CALL OUT.PORT4.8243 (nibbel} nibble = nibble OR &H1 CALL OUT. PORT4.8243 (nibbel ¢--~-----X8p céc dja chi danh cho s& b6 dém--~-------- (SS bé dém: Counternummer } * D6 tudng ting v6i bit dia chi AO ‘ D? tuong ung véi pit dia chi Al nibbel = (nibbel AND 3) + 4 * Counternummer CALL OUT. PORT4.8243 (nibbel) tees Gai tu di 1igu (16 bit) toi 8253 HIGHBYTE~----- ‘Hay chi y téi sy ph&n chia ra HIGHBYTE & LOWBYTE low. byte = startvalue MOD 256 high.byte = INT (startvalue / 256) CALL BYTE.TO.8253 (low.byte) banenenne -Tao ra tin hiéu viét /WR: LOW...HIGH-----~-- nibble = nibble AND &HE 2. CAC MACH SO 127 CALL OUT. PORT4.8243 (nibbel) nibble = nibble OR &H1 CALL OUT.PORT4.8243 (nibbel) CALL BYTE.TO.8253 (high.byte) #---+----- Tao ra tin hiéu viét /WR: LOW...HIGH-------- nibble = nibble AND &HE CALL OUT.PORT4.8243 (nibbel) nibble = nibble OR &H1 CALL OUT.PORT4.8243 (nibbel) END SUB PHAN MEM KIEM TRA DUNG CHO MODUN DEM Bo_Dem 0 Bo_Dem 1 Bo_Dem 2 Mode: 3 1 2 Gia_tri_xuat_phat 65000 32500 3000 Trang_thai_dem 36469 55035 1150 Tinh_toan 28531 Huong_dan: ESC : Ngung Hinh 2.31 Trinh bay trén man hinh cua chuong trinh UNICTLPT.BAS. 128 PO LUONG VA DIEU KHIEN BANG MAY TINH Hinh 2.31 gidi thiéu su trinh bay man hinh sau khi khéi dong chuong trinh. 2.6.4 NHUNG UNG DUNG CUA VI MACH DEM 8253 2.6.4.1 B6 dém xung 16 bit Hinh 2.32 BS dm xung 16 bit. Ung dung dau tién cia b6 dém 8253 1a dé tao ra mot b6 dém xung don gian. B6 dém nay dém cdc sudn tin hiéu chay dén 4 $61 vao CLOCK. Tuy theo kiéu dugc sit dung, tan s6 cuc dai cia tin hiéu 16i vao co thé dat dén 10 MHz. Boi vi vi mach 8253 cé chifa bd dém 16 bit, nén bang mot bé dém chi cé thé dém dén 65.535. Mot bo dém nhu vay lam viée theo kiéu hoat déng 2 va c6 thé mé ta trén hinh 2.32. Léi vao GATE duge dat lén mite High. Tin hiéu ké sat Idi vaio CLOCK Jam giam dan sé cdc xung chd dém bang sudn Am. Do do hoan toan cé ¥ nghia khi ma ta chon luén gid tri lén nhat c6 thé 65.535 nhw 1a gid tri xudt phat. Sé xung co thé duge tinh nhu sau: S6 xung = Gid tri xudt phat - Hién mute 6 b6 dém Cha y: Sau khi nap bé dém bang gid tri xudt phat, sudn 4m dau tién 6 16i vAo con chwa tac dong lén qua trinh dém ma chi dan dén mot diéu la gid tri bat dau duge chdp nhan nbu Ia hién mite 4 b6 dém. Xung dau tién dude dat nhu la xung 0. Su l4p trinh dé vi mach hoat déng nhu 1a mot bé dém 16 bit duge thuc hién ting bude mot. Trude hét tw diéu khién, sau day |a gia tri xuat phat can phai duge ghi vao bé dém. Sau sy luu tri trung gian cia hién mite cia bé dém, bé dém nay c6 thé dude doc ra mét cach yén lang. 2. CAC MACH SO 29 2.6.4.2 BG dém xung 32 bit Bang viéc néi thém mét bé dém 16 bit thi hai, ta nhan duge mat bd dém 32 bit, dé c6 thé dém dén 4,29 ty xung. Hinh 2.33 chi ra so dé mach dign cia hai bé dém. Ca hai lam viée theo kiéu lam viée 2. Khi qua thang bé dém 0 (sy chuyén Low/ High cia tin hiéu 16i ra OUT) bé dém 1 nhan dude mét xung dém qua céng NAND. “UF stort, Hinh 2.33 BO dém xung 32 bit. Phép do duge bat dau bang mot xung khdi dong. Bang xung khdi dong, bé dém 1 nhan due 6 1éi vao CLOCK mét sun iin hiéu am, sudn nay chap nhan gia tri xudt phat nhu la hién mtic cua bd dém hién tai. Bay gid thi bd dém hoan toan duce thiét lap xong gia tri ban ddu. Dé tinh cac xung chong chat \én ta cé thé dung cong thtic sau: So xung = (start0 - stand0) + start0 . (start1 - stand1) Chi dan: Sau day la... startX gid tri xuat phat cua bo dém X va standX hién muic 6 bo dém X 2.6.4.3 BG dém tan sé 16 bit Phuong phap duge dung dé do tan s6 co thé néi ngan gon 1a dém sé xung tin hiéu 16i vac trong mot théi gian mo céng dude xée dinh chinh xac. Théi gian mé céng c6 thé duge thuc hién theo kiéu hoat dong 1. 6 day tin hiéu 1éi ra git nguyén 6 mic Low déi véi n chu ky git nhip (n = gia tri bat dau). Khi ta dan tin hiéu nay qua mot bd dao dén 16i vao 130 , BO_LUONG VA DIEU KHIEN BANG MAY TIN GATE cia mét bé dém khdc nita hoat déng theo kiéu hoat dong 2 thi dém nay sé dém cdc xung |éi vao trong thdi gian T. Hinh 2.34 chi mach dién cla vi mach 8253 ding cho mét bé dém tan sé 16 bit, AP stare eat Hinh 2.34 BQ dém tan sé 16 bit. Bo dém 0 chia tan sé so sanh tit mét bd phat dao dong ding bé cd hudng thach anh c6 tan sé 4 MHz thanh cdc gia tri nhé hon. Bang dém 1 cé thé tao ra nhiing théi gian md céng khae nhau. Ngoai ra t nhién con cdin co mot xung khéi dong 6 16i vao GATE, xung nay ma 4 thai gian md céng bang sudn duong. Sau théi gian mé céng hién mu bé dém cia bé dém khong thay déi nita. Sau dé hién mite 6 bg dém thé dude doc ra va tan sé duge tinh ra theo céng thtic sau: (start2 — stand2). Srey te start0.startl Thi du bang sd: fyep = 4 MHz starto | start! | tdém | start2__| stand2 ( 4000 1.000 1s | 65.535 | 10.000 | 55.535 40 1.000 ; Os | 60.000 | 20.000 | 400,00 KH: 4 1.000 | 001s | 65.000 | 15.000 | 5 MHz 4000 1.0000 10s | 65.535 | 5.535 | 60000 Hz 2.6.4.4 B6 dém tan s6 7 chit sé Bo dém tan sé duge mé ta dudi day cé thé dung dé do tan sé dén MHz. Cac tan sé cao hon co thé do duge bang cach cho qua bé chia t: 2. CAC MACH SO 13] s6 thich hp. Nhung b6 hién thi bi han ché chi dén 7 chit sé. Mach dién trén hinh 2.35 vé cd ban gém hai phan. Trude hét, mét phép do tan sé d0i héi co mét khoang théi gian m6 céng duge x4c dinh rat chinh xac. Khoang thdi gian nay dat dude nhé b6 dém 0 theo kiéu hoat dong 1. Mat khdc cén cé mét bé dém co thé dém dude it nh&t 10 triéu xung trong mot gidy (f jn = 10 MHz). fem Bd déma Ur stare Hinh 2.35 B6 dém tan sé 7 chir sé. Ngoai ra con cé hai bo dém 16 bit. Dé bat dau phép do can co mot xung Low, xung nay bat dau khoang thdi gian md céng qua Idi vao GATE cia bo dém 0. Sau d6 xung nay giif nhip bo dém 2 qua céng NAND, qua 46 bé dém nay chap nhan gia tri xuat phat nhu 1a hién mic cla bé dém ,_ Tan sé 16i vao dude dan dén 16i vao gitt nhip cua bd dém 1. Cu méi lan qua thang bé dém nay tao ra mét su chuyén mttc Low sang High, su chuyén mic nay lai giit nhip bd dém 2 qua cita NAND. Néi khac di, bé dém 2 dém tin hiéu qua thang cia bé dém 1. Sau khoang théi gian md cong hién miic dém cia b6 dém 1 va bé dém 2 khong thay déi nita. Sau day, tan sé cua tin hiéu 161 vao c6 thé dude thong bao qua céng thi tinh sau: (start — stand) + start) (start2 —stand2). frey start® 132 DO LUONG VA DIEU KHIEN BANG MAY TINH 2.6.4.5 B6 dém tan sé thap voi dé chinh xac cao Bé dém tan sé vita trinh bay co nhuge diém nam chinh trong phuong phap do tan sé. Bé dém tan sé da dém sé xung trong khoang thai gian mé cong da duge xde dinh rat chinh x4c. Chang han nhu khoang thdi gian mé céng nay la 1 giay, thi so xung dém duce tuong ting vdi tan s6 cua tin hiéu Idi vao. Néu nhu ta chap nhan su dém xung co sai sé 1A + 1 xung thi khi thdi gian mé céng 1a 1 giay sai sé nay tuong ving véi mét dé chinh xdc cua phép do tan sé 1a + 1 Hz. Noi khac di, mét tan s6 cé gid tri f = 100 Hz dude do véi dé chinh xac 1a + 1 Hz thi sai so tuong doi 1a 1 %. Mét tan sé c6 gid tri 10 Hz chi c6 thé do dugc véi dé chinh x4e 10 %. Cé mét kha nang loai bé duge nhugc diém nay 1a kéo dai khoang théi gian mo cong. Nhung diéu nay cing cé nghia Ia ta phai ché dgi thém 10 gidy hoac 14 100 gidy truéc khi ta nhan dude két qua. Mot giai phap khac, nhung dong thdi cing tao ra mét phuong phap do khac 1a do théi gian kéo dai cua chu ky. Trong phuong phap do nay, déi véi khoang thdi gian cha mot chu ky gitt nhip cia tin hiéu 16i vao, cac xung duge dém véi mot tan 6 cao. Dé Tinh héi va sit dung thi du cudi cing mét én nia ta dém 6 mét tan s6 161 vao co gid tri 10 Hz trong mot khoang thii gian kéo dai chia chu ky (T = 0,1 s). Cac xung v6i tan sé 1a 4 MHz, thi ta sé nhan dude két qua dém 1a 400.000. Tu dé, tan sé cha tin hiéu Idi vao c6 thé dude tinh nhu sau: fin =f rep/ Két qua dém = 10,0000 Hz. Dé khong chinh xdc ctia két qua do bay gid chi con bang + 0,000025 Hz. Khi ta cho phép cé mét sai s+ 1 xung khi dém xung thi ta cé thé tinh d6 khong chinh xdc cla phép do d6 kéo dai cla chu ky nhu sau: Dé khong chinh xdc = f yep / (Két qua dém )2 C4ec con sé thi du: Pref Két qua dém | fin D6 khéng chinh xaée 4 MHz 500 8.000 Hz 16 Hz 4 MHz 5.000 800 Hz 0,16 Hz 4 MHz 50.000 80 Hz 0,0016 Hz 4 MHz 500.000 8 Hz 0,000016 Hz 2. CAC MACH SO 133 Hinh 2.36 chi ra so dé mach dién chia bé dém tan sé theo cach do dé kéo dai ca chu ky. Néu dé y ky hon ta sé thay mach nay trén thuc té la ging vdi bd dém tan sé da trinh bay 6 muc 2.6.4.4; chi khdc mi mot diém la cdc chan ra f jp Va f ef da trdo déi cho nhau. . ~ free \ Bo dém0 VU start. Hinh 2.36 B6 dém tan sé thap (< 1 kHz). Sau théi gian mé céng T ta co thé tinh tan sé 6 101 vao theo céng thtc sau: start. fry Jin = (start! — stand|)+ start).(start2 — stand2) Khi tién hanh lap trinh, co mét diém ma ta phai chu 1a do so y co thé lam xuat hién li chia cho sé 0; day 1a mét 1éi nang va trong moi trudng hop ta khéng duge mac phai. Ngoai ra con cé mét diém nén can nhac 1A diéu gi sé xay ra sau khi bd dém da duce dat cu hinh dung va xung khdi déng da cho bat dau phép do. Suén 4m (déc xuéng) dau tién cia xung giit nhip tin hiéu 1éi vao cén phai do sé dat Iéi ra OUTO én mite Low, qua d6 GATE 1 nhan dude me High va qua trinh dém bat dau Suén 4m dau tién nay trong mdi truong hdp déu phai duoe cho doi, truoe khi cong thie tinh fj, duge sit dung dén. Trude day, hign mite 6 bé dém khong thay déi duoc khi ma s6 0 duge tao ra 6 mau 86. 2.6.4.6 BO so day dan ghita Phuong phap do tan sé duve giai thich trong muc vita qua cé thé su dung dé len day cho that chinh xae cie dan day. Dé dang nhu mot dung cu so d&y thi mach dién nay chi thiéu phan xu ly tin hiéu. Hinh 2.37 chi 134 DO LUONG VA DIEU KHIEN BANG MAY TINH ra mach dién cua mét may so day dan ghita khi st dung hai bé dém loai 8253. Bé dém 0 tao ra khoang théi gian mé céng T, dé bé dém co thé dém cdc xung cla tan sé so sanh trong khoang thoi gian nay. Béi vi, khoang thdi gian mé céng T 1a rét ngdn nén theo cach nay chi co thé thuc hién 10 dén 100 phép do mii gidy. frer Bé dém 0 86 dém 1 Hinh 2.37 Mach dién ctia thiét bi so day dan ghi ta dung vi mach 8253. Su xi ly tin hiéu duge tién hanh bang mot tang tién khuéch dai va mét bé loc dai théng bac bén (biquadratic). Bd loc c6 nhiém vy Joc ra tan sd dung tit téng cha céc hoa 4m va déng théi khuéch dai tin hiéu. Tin hiéu ti micré duge dan dén tang khuéch dai thuat todn dau tién loai TL 064, 6 day tang nay hoat déng nhu mot tang khuéch dai dién ap xoay chiéu vdi hé sé khuéch dai cd 100. Tin hiéu 16i ra dude dan qua bé loc dai thong bac bon duge lap rép tw ba phan con lai cua vi mach khuéch dai thuat toan kép 4 cing véi cac dién tré va tu dién. Hé sé khuéch dai 2. CAC MACH SO, 135 6 tan sé trung binh cé thé duge thiét lap chi qua su thay déi dién tré R4. Dé tinh todn cac gid tri dién trd va tu dién cé thé si dung cac cong thitc sau: Tan sé trung binh: Hé s6 khuéch dai é fy: Dé réng dai: Hé sé phaém chat: Voi cdc linh kién duge iva chon trén hinh 2.37 tan sé trung binh dat duge 14 333 Hz va mét dé rong dai la 7 Hz. Bang cach thiét lap nay co thé lén day cho cdc day dan E (Mi), H (Si) va e (Mi) trong sé téng céng 6 day dan ghita (E: Mi; A: La; D: Ré; G: Son; H: Si va e: Mi), khéng can phai chon truéc mét chuyén mach dién cho cdc dién tré xdc dinh tan sé R1 va R2. Tw do ta thay rang 6 day dan tram E (f = 82,4 Hz) hoa 4m tha tu duge loc ra (f = 4 x 82,4 Hz = 329,6 Hz). Hoan toan tuong tu véi day dan H (f = 110 Hz). 6 day, hoa 4m thi ba cla day dan (f = 330 Hz) cho di qua duce nhé viée st dung cua bé loc dai théng, tat ca cdc tan s6 khac sé bi ham lai no nam xa tan sé fy, Day dan e manh tao ra tan sé tudng ung 1a 329,6 Hz. Tin hiéu nay cing dude dan dén dugc loc, dude khuéch dai 6 16i vao cia bé dém tan sé. Tan sé cia mét day dan ghita cé thé duge tinh toan nhu sau: Frog * start0 ~ (startl—standl) 2.6.4.7 B6 phat xung lap trinh dugc Véi 3 b6 dém trong vi mach 8253 cé thé tao ra dé rong xung rat chinh xdc cd mét vai micré giay dén mot vai gid. Hinh 2.38 chi ra cach néi mach cia ba bé dém. Bé dém 0 va bé dém 1 hoat déng nhu b6 phat xung vuéng géc véi 5 chia dat duge, con b6é dém 2 nhu 1a mét mach phat xung mét trang thai can bang (monoflop) lap trinh dude. Nguyén tdc hoat d6ng c6 thé mé ta rat don gian. Sau khi xung khdi dong dén GATE 2, bé dém 2 tao ra mét tin hiéu Low 6 léi ra OUT2 bang suén 4m 136 BO _LUONG VA DIEU KHIEN BANG MAY TINH dau tién 6 CLOCK 2 déi véi dé kéo dai 1a n chu ky git nhip (n = gid tri xuat phat cua bé dém 2). BS dém 0 Bé dém 1 BS dém 2 ok tree cLocxo out. atz GaTeg 7 AP stare Hinh 2.38 B@ phat xung Lap trinh duge. Dé rong xung T co thé dugc tinh nhu sau: star10.start).start2 Sref Thi du bang sé: fyep = 4 MHz start 0 start 1 start 2 T 2 2 10 10 ps 4 100 10.000 1s 4 600 _|, 60.000 1 min Trong cde ting dung thuc té can phai chu: y 1 chi cé xung khéi dong khéng thdi thi khong du dé bat dau xung co do rong T. Ngoai cai dé ra sudn dm cia tin hiéu 6 CLOCK2 dan dén 1éi ra OUT2 nhan mic Low. 2.6.4.8 Déng hé rdle lap trinh duoc Déng hé ap trinh ducc va c6 thém chtic nang déng/ ngat duge mé ta trén hinh 2.39 cé kha nang thiét lap khoang dat thdi gian ti vai micrd gidy dén ntia nam véi dé chinh xéc thach anh. Khi mdt médun co sé tit chuong 1 duce sit dung cung véi médun dém da mé ta 6 muc 2.6 sau khi lap trinh cho vi mach 8253 phan citing cé thé tach rdi khdi may t{nh PC. Viéc xu ly tin hiéu dién ra hoan toan ¢ trén phan cting. Phan chinh cha’mach 1a bé dém 1 va bd dém 2, 6 day cac bd dém nay lam viée theo kiéu hoat déng 2 va 6 hién mic b6 dém 1 ching 2. CAC MACH SO 137 chuyén mach 16i ra cla chung sang Low. Sau khi khéi dong déng hé co thém chite nang dong/ ngét bang mot xung Low, bé dao dong RS- Flipflop bao gém tw hai céng NAND sé lat trang thai é 101 vao R sao cho Idi ra Q duce dat tré lai. Bé dém 0 BO dém 1 86 dém 2 TP stort Hinh 2.39 Déng hé role lap trinh duge. Sau thdi gian T mite Low 6 OUT 2 cua Idi ra Q cua Flipflop dat tré lai lén mite High. D6 rong T cha xung cé thé duge tinh nhu sau: fe start0.start\.{start2 — l) Sref Thi du bang sé: f pep = 4 MHz start 0 start 1 start 2 a 2 2 2 lps 20 20 a lms 4.000 25 41 1s (gidy) 10.000 240 101 imin 60.000 2400 101 1h (gid) 34.560 10.000 1.001 1 ngay 34.560 20.000 1.001 2 ngay 24.192 50.000 2,001 1 tuan 34.560 10.000 30.001 30 ngay 138 BO LUONG VA DIEU KHIEN BANG MAY TINH 2.6.4.9 Thiét bi kiém tra phan ung Hinh 2.40 chi ra so &6 mach cla vi mach 8253 duce sti dung trong thiét bi thi phan ting cia con ngudi. Bai todn dude dat ra la sau khi diét phat quang (LED) bung sang thi phim phai duge an. Thoi gian phan ting sau dé cé thé duge may tinh PC tinh va chi thi ra trén man hinh. Bo dém 0 6 day hoat déng nhu mét bo chia lap trinh du¢e co gia tri xudt phat 1a 4.000. BS dém 0 B6 dém 2 Hinh 2.40 Thiét bi thi phan umg diing vi mach 8253, Do vay ma tan 86 lf vao 6 CLOCK 1 va CLOCK 2 1a 1.000 Hz. Léi ra OUT 1 cha bé dém 1 sau n chu ky giit nhip chuyén sang mirc Low va lat trang thai cia mach RS-Flipflop. Léi ra Q tré nén High, déng thai bd dém 2 dém lai cdc xung J6i vao 6 CLOCK 2 bat dau ti gia tri xudt phat. Déng thoi ldi ra /Q cba bé RS-Flipflop chuyén sang Low va vi thé LED bitng sang. Su x4c nhén cha phim nhan dan dén tac dong 14 16i ra Q cha bd Flipflop duge dat tré lai va bd 48m 2 khong dém tiép nia. LED sé sang tro lai. Sau do théi gian phan tng cé thé dude théng bao theo cong thiic sau: start2— stand2 Sreaction = Sep star10 Gia tri xuat phat cha b6 dém 1 khong co mat trong biéu thtie tinh toan thai gian phan ting. N6 cé thé dude sti dung nhu la mach tré. Theo cach 2. CAC MACH SO 139 nay ma khi ghi gia tri xudt phat vao trong bd dém sau thii gian tré LED sé chuyén sang trang thai dude kich hoat. 2.6.4.10 Bo dién dung Bang cach phu thém mét vai linh kién co thé thiét ké vi mach 8253 thanh mét may do dién dung rat chinh xac. Hinh 2.41 chi ra mot mach nhu vay. Bén canh vi mach 8253, ta cn thay cé bd Timer TLC 555, hoat déng trong mach nay nhu mét mach monoflop. Véi méi xung trigger 4m 6 chan 2 ctia TLC 555 16i ra OUT (chan 3) sé chuyén sang mitc High sau thdi gian T = 1,1. R. Cx, nghia 1a d6 réng cla xung dude xde dinh chi bdi mét dién tré R va tu dién C. Véi mot dién tré da biét gia tri cing nhu dé rong T cua xung da do duge thi ta c6 thé tinh ra gia tri cia tu dién Cy Do rong cha xung dude théng béo nhi hai bd dém 16 bit trong vi mach 8253. BO dém 1 dém theo kiéu hoat dong 2 cde xung Idi vao 4 Idi vao CLOCK trong khoang thdi gian T. Bai vi bé dém 0 44 duge c&u hinh nhu mét bé chia tan sé lap trinh duce (kiéu hoat dong 3) cho nén tan s6 cia tin hiéu CLOCK 1 c6 thé dude thiét lap trong mét gidi han réng bang phan mém. Cach hoat dong nay c6 uu diém quyét dinh la dé do cdc tu dién cé dién dung lén thi chi viéc thay déi mach dién déi chut bang cach cho dién trd R nhan cac gia tri nho. . 83 dém 0 Bo dém 1 Hinh 2.41 Mach do dién dung ding vi mach 8253 va TLC 555. D6 rong T cha xung sau a6 duge tinh qua cdc xung da dém dude theo cong thite sau:

You might also like