Luận văn Tốt nghiệp đếm sản phẩm sử dụng 89c51

Nội dung: Phần 1: Lý thuyết 1. Chương 1: Dẫn nhập 2. Chương 2: Lý thuyết thiết kế Phần 2: Thiết kế thi công và chương trình 1. Chương 1: Thiết kế thi công phần cứng. 2. Chương 2: Chương trình điều khiển

pdf76 trang | Chia sẻ: lvcdongnoi | Ngày: 15/06/2013 | Lượt xem: 1692 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Luận văn Tốt nghiệp đếm sản phẩm sử dụng 89c51, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
, ngoõ ra cuûa coång NAND (U9A) = 1 ngoõ ra coång OR (U8A) = 1, Rom A khoâng ñöôïc choïn. Ñoàng thôøi khi ñoù, ngoõ ra coång NAND (U9B) = 0, neáu A13, A14, A15 = 0 thì ngoõ ra coång OR (U8B) = 0  Rom B ñöôïc choïn. Ngöôïc laïi, coâng taéc chuyeån sang A thì Rom A ñöôïc truy xuaát. II. THIEÁT KEÁ MAÏCH RESET: Khi coâng taéc chuyeån töø A sang B vaø ngöôïc laïi ñeàu reset toaøn boä laïi heä thoáng ñeå cho PC = 0000H. Bôûi vì khi ñang laøm vieäc taïi Rom A, PC khaùc 0000H, khi chuyeån sang Rom B  PC baét ñaàu taïi ñòa chæ khaùc 0000H  laøm sai chöông trình. Vì vaäy maïch reset trong ñoà aùn naøy bao goàm reset töø chuyeån coâng taéc choïn Rom, reset töø ngoaøi ñöa tôùi (neáu nhö keát hôïp vôùi maïch khaùc), reset khi baét ñaàu moãi chöông trình ñeám saûn phaåm vaø reset neáu nhö nguoàn cung caáp yeáu. Sô ñoà nguyeân lyù maïch reset trong sô ñoà nguyeân lyù maïch ñieàu khieån. 1. Maïch reset töø vieäc choïn Rom: Maïch ñöôïc taïo bôûi coång nand, IC 74221, coång OR7432 vaø 1 coång OR khi keát hôïp vôùi reset khaùc sô ñoà chaân vaø baûng thaùi cuûa 74221 nhö sau: Sô ñoà chaân SN 74221: Baûng traïng thaùi INPUT OUTPUT clear A B Q Q L X X L H X H X L H X X L L H H L  H  H  L H 1A 1B Clr 1Q 2Q Cset Reset GND Vcc Reset Cset 1Q\ 2Q\ clr 2B 2A 74221 Luaän vaên toát nghieäp Trang 4 GVHD Nguyeãn Vieät Huøng Qua baûng traïng thaùi: - Khi chaân clear ôû möùc logic cao, A ôû möùc logic thaáp vaø chaân B chuyeån traïng thaùi töø möùc logic 0 leân 1 ôû ngoõ ra Q (ngöôïc laïi vôùi Q\) - Khi chaân clear ôû möùc logic cao, B ôû möùc logic cao vaø chaân A chuyeån traïng thaùi töø möùc logic 1 xuoáng 0 thì thì 74211 taïo ra moät xung döông ôû ngoõ ra Q Quaù trình reset ñöôïc thöïc hieän nhö sau: Khi SW chuyeån sang B, ngoõ ra cuûa coång NAND (U9A) töø 0 leân 1 chaân B cuûa74211 (U10B) töø 0 leân 1, A = 0  coù moät xung ôû ngoõ ra Q  ngoõ ra coång OR leân 1 daãn ñeán RST = 1 heä thoáng bò reset: ñeøn reset (D4 saùng). Khi chuyeån coâng taéc sang A, ngoõ ra coång nand (U9A) töø 1 xuoáng 0chaân A cuûa 74221 töø 1 xuoáng 0, B = 1  coù xung ra ôû ngoõ ra Q 74211 (U10A)  maïch bò reset. 2. Reset baèng nuùt nhaán: Khi nhaán nuùt, 1 chaân cuûa coång nand U2A ñöôïc noái mass ngoõ ra = 1, reset (RST) = 1, heä thoáng bò reset (ñoàng thôøi khi ñoù chaân coøn laïi cuûa coång nand luoân ñöôïc giöõ ôû möùc cao). Khi keát noái vôùi maïch ñieän khaùc, maïch ñieän khaùc coù theå reset maïch ñieän naøy qua header 3 (JP8). Söï taùc ñoäng thoâng qua söï ngaét daãn cuûa Q3 C828. Khi Q3 daãn (coù taùc ñoäng beân ngoaøi), ngoõ ra coång nand (U2A) = 1, ngoõ ra coång OR = 1, RST = 1, heä thoáng bò reset. 3. Reset khi nguoàn cung caáp yeáu: Caùc IC soá chæ hoaït ñoäng toát khi nguoàn cung caáp oån ñònh. Khi ñieän aùp nguoàn yeáu, caùc IC hoaït ñoäng hoãn loaïn, neáu khoâng coù söï hieån thò veà nguoàn cung caáp seõ gaây ra tröôøng hôïp maïch hoaït ñoäng sai maø khoâng bieát ñöôïc nguyeân nhaân. Treân maïch ñieän naøy, ñieän yeáu thì led xanh (D 7) seõ saùng vaø luùc ñoù thì maïch seõ bò reset cho ñeán khi nguoàn cung caáp oån ñònh, coøn khi nguoàn oån ñònh thì led ñoû (D8) seõ saùng. Quaù trình reset thöïc hieän döïa treân söï ngaét daãn cuûa transistor keát hôïp vôùi coång Nand 74132. Nguyeân lyù hoaït ñoäng maïch reset nhö sau: - Khi ñieän yeáu (VH < 3,7 Volt), Zener (D5, D6) khoâng daãn  Q5 khoâng daãn, ngoõ ra coång Not (coång nand 74132) = 0, Q6; khoâng daãn, Q7 daãn (led xanh saùng), Q8 daãn moät chaân cuûa coång nand (U2A) bò noái mass, maïch bò reset. - Khi nguoàn cung caáp ñaày ñuû, D5;D6 daãn, Q5 daãn, Q6; Q7 khoâng daãn, Q9 daãn led ñoû saùng  maïch hoaït ñoäng bình thöôøng. Tính toaùn caùc giaù trò ñieän trôû phaân cöïc cho transistor khi nguoàn cung caáp yeáu: Vì maïch söû duïng caùc transistor laøm vieäc ôû traïng thaùi baõo hoøa neân ñieàu kieän ñeå cho transistor hoaït ñoäng ôû traïng thaùi naøy laø: IB > ICSAT ; VBESAT =0.8V ; VCESAT =0.2V ; Trong maïch Reset naøy coù duøng 74HC132 (coång NAND ) coù caùc thoâng soá nhö sau: VIH(MIN) : Ñieän aùp ngoõ vaøo thaáp nhaát ôû möùc [ 1]. VIL(MAX) : Ñieän aùp ngoõ vaøo cao nhaát ôû möùc [0 ]. VOH(MIN) : Ñieän aùp ngoõ ra thaáp nhaát ôû möùc [ 1 ]. Luaän vaên toát nghieäp Trang 5 GVHD Nguyeãn Vieät Huøng VOH(MIN) : Ñieän aùp ngoõ ra cao nhaát ôû möùc [ 0 ]. VIH(MIN) = 3.5 (V) VIL(MAX) = 1 (V ) VOH(MIN) = 4.9 (V ) VOH(MAX) = 0.1 ( V ) Tính toaùn caùc giaù trò: 1. Transistor Q1 (C828 ):  RB < 12,6k. Choïn RB = R5 = 10k 2. Transistor Q2 (A564 ): Choïn RB = R7 = 10K 3.Transistor Q4: (C828 ) + Choïn  = 40 + Choïn doøng qua led laø 10mA     280 10.10 2.025 3C R  Choïn RC = 220  mAmAAII LEDttCSATtt 1513013.0 220 2.05    + ChoÏn  = 40 + Choïn doøng qua led laø 10mA C CESATLEDCC CSAT R VVV I   C CESATLEDCC CSAT R VVV I   10 . 13 40 ). 8 , 0 9 . 4 ( 3        B B BESAT OH CSAT R R V V x I  + Choïn RC = 220  mAmAICSAT 13013.0 220 2.025        280 10.10 2.025 3C R + Choïn doøng qua LED laø 10mA C ECSATLEDCC CSAT R VVV I   + Choïn  = 40 , ñieàu kieän baûo hoøa:  IB > ICSAT     280 10.10 2.025 3C R  ChoÏn RC = 220 SATtt B OLEBSATtCC I R VVV          K I VVV R SATtt OLEBSATtCC B 5,12 13 )1,08,05(40)( Luaän vaên toát nghieäp Trang 6 GVHD Nguyeãn Vieät Huøng Maø ñieàu kieän baõo hoøa laø: IB > IcSAT  Choïn RB = R19 = 10k 4. Transistor Q5 (C828): + ChoÏn  = 40 + Choïn doøng IC =10mA  Rc =1K +  IB > IcSAT 5. Transistor Q6 (C828 ): +Choïn  = 40 +Maø ñieàu kieän baõo hoøa laø: IB > IcSAT , choïn Rc = 1K  Choïn RB = R24 = 10 k 6.Transistor Q7 ( A 564 ): +Choïn  = 40         KRB 16,34 2.05 18.09.4 .40 mAICSATtt 13 10220 2.025 3             KRI R VV BCSAT B BESATOH 61,12 13 8.09.4 40       480 10.10 2.05 3 C CECC C I VV R C CESATCC B BESATDDCC R VV R VVVV   65   CESATCC CDDCC B VV RVVV R    65       K17.4 2.05 18,037.05 40  Choïn RB < 4.17K, laáy RB (R21) laØ bieán trôû 20K ñeå ñieàu chænh cho chính xaùc C CESATCC B BESATOH R VV R VV    Luaän vaên toát nghieäp Trang 7 GVHD Nguyeãn Vieät Huøng + Choïn doøng qua led laø 10mA + Maø ñieàu kieän baõo hoøa laø: IB > IcSAT  Choïn RB = R25 = 7,5 K 7.Transistor Q8 (C828 ): Choïn  = 40 + Maø ñieàu kieän baõo hoøa laø: IB > IcSAT + Choïn RC = 1k. ChoÏn RB = R27 = 15 K 8.Transistor Q9 ( A 564 ): +Choïn  = 40 + Choïn doøng qua led laø 10mA LED ECSATLEDCC C I VVV R       280 10.10 2.025 3  ChoÏn RC =330 C ECSATLEDCC LEDtt R VVV I   mA5.8 10.330 2.025 3     C CESATCC B BESATCC R VV R VV          KR R B B 35 18.4 2.440 1 2.058.05 40    ChoÏn RC =220 Vaäy doøng qua led thöïc teá laø: mA RR VVV I CC ECSATLEDCC LEDtt 13 2.025      C ECSATLEDCC B EBSATOLCC R VVV R VVV             K VVV RVV R ECsatLEDCC COLEBsatCC B 325,19 2,025 330)1,08,05(40)(        280 1010 22,05)( 3 LED LEDCESATCC C I VVV R Luaän vaên toát nghieäp Trang 8 GVHD Nguyeãn Vieät Huøng + Maø ñieàu kieän baõo hoøa laø: IB > IcSAT Choïn R28 = RB =10 k 4. Caùch tính taàn soá queùt LED - Goïi n: soá LED caàn hieån thò - Goïi : thôøi gian phaùt saùng cuûa moãi LED (s ) - Goïi T laø chu kyø hieån thò cuûa n LED: T = n.  ( s ) - Goïi f : taàn soá queùt  = N : chu kì ngaét cuûa moãi LED (s ) Moái lieân heä giöõa chieàu daøi saûn phaåm (cm ) vôùi vaän toác baêng chuyeàn (m/s): Ñaàu doø: Baét ñaàu Keát thuùc -Goïi T: chu kì queùt ñaàu doø (ms )  Ñieàu kieän ñeå cho ñaàu doø phaùt hieän saûn phaåm     K x 57,12 2,025 220)2,08,05( 40 C ECsatLEDCC B OLEBsatCC R VVV R VVV    )( )( . 11 Hz nT f   )( . 11 Hz nT f N  T TL 2 T TL  : Thôøi gian doø möùc thaáp (ms ) - Goïi )( .10 )( 10 . )( 10 s m T d vcm Tv dms v d T L L L  )( 10 . cm Tv d LMIN  )( .10 s m T d v L MAX  Luaän vaên toát nghieäp Trang 9 GVHD Nguyeãn Vieät Huøng  Chieàu daøi nhoû nhaát cuûa saûn phaåm:  Vaän toác toái ña cuûa baêng chuyeàn: III. KEÁT NOÁI KÍT VI ÑIEÀU KHIEÅN VÔÙI THIEÁT BÒ NGOAÏI VI: 1. Keát noái vôùi baøn phím: Baøn phím goàm 16 phím keát noái vôùi kít vi ñieàu khieån thoâng qua Port 1 cuûa 8051. Sô ñoà keát noái nhö sau: BAÛNG MAÕ PHÍM Phím Maõ queùt Maõ Hex Phím Maõ queùt Maõ Hex 0 00 0CH 8 08 80H 1 01 F9H 9 09 90H 2 02 A4H A 10 88H 3 03 B0H B 11 83H 4 04 99H C 12 C6H 5 05 92H D 13 A1H 6 06 82H E 14 86H 7 07 F8H F 15 8EH P0.0 P0.1 P0.2 P0.3 8051 P0.4 P0.5 P0.6 P0.7 0 1 2 3 4 5 6 7 8 9 A B C D E F Luaän vaên toát nghieäp Trang 10 GVHD Nguyeãn Vieät Huøng 2. Keát noái hieån thò: Phaàn hieån thò bao goàm 8 Led 7 ñoaïn chung anod. Bus döõ lieäu xuaát ra hieån thò ñöôïc noái tôùi PortA cuûa 82552. Vì doøng ra taïi moãi chaân caùc Port cuûa 8255 chæ coù khoaûng 4mA, maø moãi Led saùng thì phaûi cung caáp doøng khoaûng 8 – 10mA neân phaûi duøng IC ñeäm neân PortA cuûa 8255 noái tôùi caùc ngoõ vaøo A1 _ A8 cuûa 74245, bus döõ lieäu ngoõ ra noái qua ñieän trôû haïn doøng ñeán caùc thanh cuûa Led 7 ñoaïn. Vôùi maïch giaûi maõ choïn Led: ba ngoõ vaøo A, B, C cuûa 74138 seõ ñöôïc noái tôùi PC5 – PC7 cuûa 8255, chaân cho pheùp G2 noái tôùi PC4 cuûa 8255. Khi PC4 xuoáng möùc thaáp, G2 = [0], cho pheùp Led saùng. Baûng traïng thaùi choïn Led nhö sau: Tính toaùn ñieän trôû trong maïch hieån thò: Ñeå cho moät thanh led ñuû saùng thì doøng ñieän qua noù laø 10 mA, do ñoù ñeå caû led 7 ñoaïn saùng thì doøng cung caáp cho led laø: I = 7 x 10 = 70 mA. Ñaây cuõng chính laø doøng Ic cuûa transistor. Vaäy choïn transistor loaïi A1266 vôùi heä soá khuyeách ñaïi  laø 60 Ngoõ vaøo Choïn Led Cho pheùp Caùc chaân löïa choïn G1 G2 C B A H H H H H H H H L L L L L L L L L L L L H H H H L L H H L L H H L H L H L H L H Led 1 Led 2 Led 3 Led 4 Led 5 Led 6 Led 7 Led 8 V cc Led R2 :ñieän trôû haïn doøng R1 Ñieän trôû phaân cöïc Luaän vaên toát nghieäp Trang 11 GVHD Nguyeãn Vieät Huøng Vaäy doøng IB laø: Ñieän trôû phaân cöïc R1 laø: Choïn R1 = 3,3 k, nhoû hôn giaù trò tính toaùn ñeå doøng lôùn transistor nhanh baõo hoøa. Vaäy doøng IB thöïc teá laø: Tính R2 (ñieän trôû haïn doøng cho led): Khi transistor baõo hoøa, ñieän aùp VCESAT = 0,2 V vaø ñieän aùp rôi treân led laø 2V do ñoù: VR2 = Vcc – VCESAT – VLED = 5 – 0,2 – 2 = 2,8V Choïn R2 = 270 (). Choïn R2 lôùn hôn tính toaùn ñeå transistor nhanh baõo hoaø c. Keát noái maïch rôle: Tín hieäu ñieàu khieån rôle ñöôïc laáy ra töø PortA cuûa 82551. Rôle seõ taùc ñoäng khi ñeám xong soá löôïng saûn phaåm caøi ñaët tröôùc. ÔÛ ñaây chuùng em giaû ñònh söï taùc ñoäng cuûa rôle baèng ñeøn Led hieån thò. Khi led saùng töông öùng vôùi taùc ñoäng cuûa rôle. Gioáng nhö maïch hieån thò, tín hieäu laáy ra ñieàu khieån rôle ñuôïc ñöa qua boä ñeäm 74245 vaø haïn doøng baèng ñieän trôû. Tính ñieän trôû haïn doøng R: Ñeå cho moãi led saùng thì doøng cung caáp cho noù laø 10mA. Vaäy ñieän trôû caàn gaén theâm vaøo ñeå haïn doøng cho led laø: Choïn R1 treân thöïc teá laø 330 (). Vôùi vieäc choïn R1 lôùn hôn tính toaùn nhöng doøng qua led giaûm khoâng ñaùng keå neân vaãn chaáp nhaän mA I I CB 1,1 60 70   )(90,3 1,1 7,051 1      K I VV I U R B BECC B R mAI B 3,1 3,3 7,05         k I VV R LED LEDCC 3,0 10 25 1 mAILEDtt 1,11 10251 2,025 3        251 7 10.60.3,1 8,2 7 3 2 2 CMAX R I V R Vaäy mA R VV I LEDCCLEDtt 09,9 10330 25 3 1        Vaäy doøng thöïc teá qua led laø: Luaän vaên toát nghieäp Trang 12 GVHD Nguyeãn Vieät Huøng III. THIEÁT KEÁ VAØ TÍNH TOAÙN MAÏCH CAÛM BIEÁN 1. Khoái phaùt - Daïng soùng: 2/3Vcc 1/3 Vcc Vcc 0V T tc td Ñieän aùp ra Ñieän aùp treân tuï t t RA RB C 2 1 5 8 4 3 C1 7 6 Ngoõ ra VCC Tính toaùn ñieän trôû vaø tuï treân maïch dao ñoäng 555 Luaän vaên toát nghieäp Trang 13 GVHD Nguyeãn Vieät Huøng tc =0,69(RA + RB).C RA ,RB ohm CF ts td =0,69RBC T= tc + td =0,69(RA +2RB).C * Neáu choïn ñôn vò RK , CF  tms ,f0KHz ñeå xung taïo ra gaàn nhö ñeàu nhau ñeå kích thích cho AÏ564 daãn maïnh, laøm doøng IB lôùn suy ra doøng qua LED lôùn, tín hieäu phaùt ra töø LED maïnh thì beân khoái ñaàu doø môùi nhaän ñöôïc tín hieäu. 2. Khoái ñaàu doø: Taàn soá dao ñoäng rieâng cuûa maïch: - Choïn R15 = 10K C10 =0,1F 2K  R  20K vì f cho pheùp: 0,01Hz  f  500Khz f0 thoûa ñieàu kieän cho pheùp. -Choïn C8 =1F ,C9 =2,2 F *ÔÛ khoái phaùt tia hoàng ngoaïi: Choïn tuï C6 = 0,001F Taàn soá cuûa maïch thieát keá = taàn soá f0 cuûa ñaàu doø Neân f = f0 =1,1kHz Choïn RA, RB sao cho thoûa ñieàu kieän treân Laáy theo giaù trò thöông maïi suy ra: Choïn RB=620K, RA =78K Vì duøng RA laø moät bieán trôû ñieàu chænh neân choïn RA=100K -Transistor Q1 : A564 choïn heä soá khueách ñaïi  =200  CRRT fo BA 2 45,11   Khz CR fo 1,1 1,0.10 1,11,1 1015   CRbRaT fof .2 45,11       K Cfo RR BA 131810.31,1 10.10.10.1,1 45,1 . 45,1 2 6 633 10 1 8 1  B A R R Choïn Luaän vaên toát nghieäp Trang 14 GVHD Nguyeãn Vieät Huøng -Khi Led hoàng ngoaïi daãn thì VLED =2V -Choïn doøng qua Led hoàng ngoaïi khoaûng 50mA (ñeå tín hieäu phaùt ra maïnh vì vaäy maø khoái ñaàu doø môùi nhaän ñöôïc).  Choïn R11= 120  Doøng thöïc teá qua LED khi R11=120 ICsat ==56,67mA -Ñeå cho Q1 daãn baûo hoøa: IB ICsat Maø VEbsat 0,8V Vout taïi chaân 3 (ngoõ ra 555 )0,2V  Choïn R10 =10K * ÔÛ khoái ñaàu doø IC LM 324 : IC laøm vieäc vôùi loaïi nguoàn ñôn, choïn ñoä lôïi 100dB. Choïn R14=100K R13 =1K R12 thöôøng töø 0K  56K, choïn R12 =56K C7 =0,1F (tuï lieân laïc) c. Hoaït ñoäng cuûa khoái phaùt vaø khoái ñaàu doø: - Do khoái phaùt vaø khoái ñaàu doø ñöôïc thieát keá: f= f0 =1,1Khz Trong ñoù f: taàn soá phaùt ra cuûa khoái phaùt tia hoàng ngoaïi. f0: taàn soá trung taâm cuûa khoái ñaàu doø. Khi chöa coù saûn phaåm naøo ñi qua led hoàng ngoaïi phaùt tín hieäu qua photo Q2 ,photo Q2 nhaän tín hieäu. Qua boä khueách ñaïi, khueách ñaïi tín hieäu lôùn leân ñeå IC 567ø nhaän mA R VVV I LEDECSATccCsat 67,56 12,0 8,6 12,0 22,09 11           136136,0 50 22,09 11 K I VVV R CSAT LEDECSATcc  CsatoutSATEBcc B I R VVV I  10    mA R IB 28335,0 200 67,562,08,09 10      KR 23,28 28335,0 8 10  100 13 14  R R AV Luaän vaên toát nghieäp Trang 15 GVHD Nguyeãn Vieät Huøng bieát ñöôïc vì ôû led hoàng ngoaïi doøng ra khoaûng 56,67mA noù phaùt ra tín hieäu maïnh vaø coù khaû naêng truyeàn ñi xa, khi qua photo Q2 tín hieäu bò suy yeáu neân phaûi khueách ñaïi leân. Vì do thieát keá f=f0 =1,1Khz töùc laø taàn soá vaøo phuø hôïp vôùi taàn soá trung taâm thì ngoõ ra chaân 8 ôû möùc thaáp 0. Coøn khi cho saûn phaåm ñi qua che led hoàng ngoaïi thì tín hieäu töø led hoàng ngoaïi phaùt ra khoâng truyeàn qua ñöôïc photo Q2. Keát quaû laø taàn soá vaøo (ff0 =1,1Khz) khaùc vôùi taàn soá trung taâm neân ngoõ ra 8 ôû möùc cao 1, coù xung kích tôùi ngoõ vaøo (7)  ñieän aùp chaân 8 leân möùc cao CHÖÔNG II. CHÖÔNG TRÌNH ÑIEÀU KHIEÅN A. THUAÄT GIAÛI I. Chöông trình chính: Ñeå caùc thieát bò hoaït ñoäng ñöôïc ñaàu tieân phaûi khôûi ñoäng caùc thieát bò ngoaïi vi, khôûi ñoäng Timer cho pheùp ngaét. Sau ñoù goïi chöông trình nhaäp soá hoäp, nhaäp soá saûn phaåm. Neáu ñoàng yù soá ñeám ñaõ nhaäp vaøo thì cho pheùp baêng chuyeàn hoaït ñoäng (ñoùng role BC). Ñoïc döõ lieäu töø caûm bieán (ñaàu doø). Neáu coù saûn phaåm ñi qua thì goïi chöông trình ñeám. Neáu ñuû saûn phaåm moät hoäp thì goïi role ñoùng hoäp ñoàng thôøi goïi chöông trình ñeám hoäp.. Neáu ñuû soá hoäp thì baêng chuyeàn ngöng hoaït ñoäng vaø chôø cho ca tieáp theo. Khi ñaõ hoaøn thaønh 9 ca saûn phaåm thì quay laïi laøm töø ca 1. Luaän vaên toát nghieäp Trang 16 GVHD Nguyeãn Vieät Huøng -Naïp giaù trò ñaàu #00H vaøo caùc oâ nhôù -Khôûi ñoäng thieát bò ngoaïi vi -Khôûi ñoäng thanh ghi Timer, cho pheùp ngaét Ca: =Ca + 1 Ca: = 0 - Goïi chöông trình con nhaäp hoäp - Goïi chöông trình con nhaäp saûn phaåm - Cho pheùp baêng truyeàn hoaït ñoäng Ñuû SP Ro-le ñoùng hoäp, ñeám hoäp (RL – ÑH) Goïi chöông trình con ñaàu doø (DAUDO) Ñeám saûn phaåm Ñ S - Goïi chöông trình con doø phím (IN – HEX) Ñuû hoäp Phím E Ca = 9 S - Cho pheùp baêng chuyeàn ngöng hoaït ñoäng - Goïi chöông trình löu soá hoäp, soá saûn phaåm - Goïi chöông trình xem soá lieäu löu baát kì ca naøo Ñ Ñ S Ñ S Löu ñoà thuaät giaûi chöông trình chính Luaän vaên toát nghieäp Trang 17 GVHD Nguyeãn Vieät Huøng II. CAÙC CHÖÔNG TRÌNH CON: 1. Chöông trình con khôûi ñoäng ngoaïi vi: 8255 chæ hoaït ñoäng khi naïp cho noù töø ñieàu khieån vì vaäy ñeå giao tieáp vôùi caùc thieát bò ngoaïi vi caàn khôûi ñoäng cho caùc oâ nhôù cuûa 8255 Ret Naïp giaù trò ban ñaàu ñeå môû role ñoùng hoäp Naïp giaù trò ban ñaàu xoùa 8 led 7 ñoaïn Khôûi ñoäng 8255 - 2 Naïp giaù trò ban ñaàu cho ngoõ döï phoøng Naïp giaù trò ban ñaàu cho role baêng truyeàn Khôûi ñoäng 8255 - 1 Naïp giaù trò ban ñaàu ñeå choïn led saùng Baét ñaàu Luaän vaên toát nghieäp Trang 18 GVHD Nguyeãn Vieät Huøng 2. Chöông trình ngaét hieån thò: Trong chöông trình ngaét, thôøi gian ngaét ñöôïc xaùc ñònh baèng côø traøn timer. Nhö vaäy cöù sau 250 s caùc led laïi ñöôïc queùt. Vôùi thôøi gian ngaét nhoû, döõ lieäu ra khoù coù theå quan saùt ñöôïc vì vaäy delay sau moãi laàn hieån thò baèng vieäc giaûm thanh ghi R2. Khi R2 = 0 cho pheùp xuaát döõ lieäu ra hieån thò. Caùc Led seõ ñöôïc queùt lieân tuïc töø Led 77ñeán Led 70, vôùi döõ lieäu xuaát ra hieån thò töø oâ nhôù 77H ñeán oâ nhôù 70H. Löu ñoà thuaät giaûi nhö sau: 3. Chöông trình con nhaán soá Cho pheùp ngaét Ñ R1 = # 69H R2 = 0 R2 - 1 TOÁC ÑOÄ 1  R2 Choïn led hieån thò Xuaát döõ lieäu ra led R1 - 1 R1  # 77H Thoaùt 1 Ret S Baét ñaàu S Ñ Luaän vaên toát nghieäp Trang 19 GVHD Nguyeãn Vieät Huøng Chöông trình naøy cho pheùp nhaäp soá thaäp phaân. Neáu phím nhaán töø 0 ñeán 9 thì nhaän soá coøn phím töø A ñeán F thì xoùa soá. Soá nhaän thì bit 7D = [0], 7E = [0]. Sau khi nhaäp soá lieäu xong neáu thaáy qua led hieån thò ñuùng soá lieäu ñaõ nhaäp vaøo thì nhaán phím A töùc laø ñaët bit YES = 1 (7E = 1) ñeå keát thuùc quaù trình nhaäp soá lieäu. Coøn ñang nhaäp neáu muoán boû soá lieäu vöøa nhaäp vaøo thì nhaán phím phím B töùc laø ñaët bit NO = 1 (7D = 1). Khi nhaäp xong soá saûn phaåm vaø soá hoäp thoâng qua chöông trình con nhaán soá naøy thì nhaán phím C töùc laø cho pheùp saûn phaåm töø luùc naøy ñi qua ñaàu doø vaø baét ñaàu ñeám. 4. Chöông trình taêng 1: Baét ñaàu C = 1 A = # 0AH S Xoùa bit YES Xoaù bit NO Goïi chöông trình doø phím Ñ Ñaët bit YES Xoùa A A = # 0BH Ñaët bit NO Xoùa côø C A - # 0AH RET Ñ S Ñ S Luaän vaên toát nghieäp Trang 20 GVHD Nguyeãn Vieät Huøng Cöù coù moät saûn phaåm ñi qua ñaàu doø (chuù yù ngoõ ra chaân 8 cuûa IC567 töø nöùc logic 0 leân möùc 1 sau ñoù ñöôïc ñöa qua coång ñaûo neân ngoõ ra laø möùc logic 0) ñöôïc ñöa vaøo bit 0 cuûa port B1 seõ laøm thay ñoåi möùc logic töø 1 xuoáng 0 thì oâ nhôù duøng cho vieäc ñeám saûn phaåm seõ ñöôïc taêng leân moät ñôn vò thoâng qua vieäc goïi chöông trình con taêng 1, vaø khi ñuû soá saûn phaåm thì oâ nhôù duøng cho vieäc ñeám soá hoäp cuõng ñöôïc taêng leân moät ñôn vò thoâng qua chöông trình con taêng 1, vaø cöù moãi laàn nhö vaäy söï thay ñoåi soá lieäu trong caùc oâ nhôù ñöôïc ñaåy lieân tuïc ra led ñeå hieån thò. Vì ñeám saûn phaåm ñeán toái ña laø 999 vaø ñeám soá hoäp toái ña laø 9999 neân phaûi söû duïng 2 byte ñeå ñeám saûn phaåm töø haøng ñôn vò ñeán haøng chuïc söû duïng byte thaáp, coøn haøng traêm vaø haøng ngaøn söû duïng byte cao. Neân khi so saùnh soá lieäu ñang ñeám vôùi soá lieäu ñaõ löu ban ñaàu xem ñaõ baèng chöa thì phaûi so saùnh laàn löôït byte cao tröôùc töùc laø haøng ngaøn, haøng traêm sau ñoù tôùi byte thaáp töùc laø haøng chuïc haøng ñôn vò. 5. Chöông trình con kieåm tra phím aán: IN – HEX Neáu nhö coù phím ñöôïc aán thì bit C = 0. Vì coù khoaûng thôøi gian nhaán phím neân goïi chöông trình doø tìm maõ phím aán 50 laàn baèng vieäc naïp 50 vaøo R3 vaø giaûm R3. Khi R3 = 0 thì caát maõ phím vaøo ngaên xeáp. Trong luùc ñôïi phím ñöôïc nhaû ra goïi chöông trình doø tìm maõ phím aán 50 laàn ñeå xem phím coù coøn ñöôïc nhaán nöõa hay khoâng. Khi R3 = 0 thì laáy maõ phím trao cho thanh ghi A. RET Xoùa côø traøn phuï AC Xoùa côø traøn C A  A +1 Hieäu chænh thaäp phaân thanh ghi A Baét ñaàu Luaän vaên toát nghieäp Trang 21 GVHD Nguyeãn Vieät Huøng Baét ñaàu RET Khoâng coù phím aán #50 (R3) #50 (R3) #50 (R3) Goïi CT doø maõ phím C= 0 S Ñ R3 - 1 Coù phím aán Caát ACC R3= 0 Ñ Goïi CT doø maõ phím C = 1 S S R3 - 1 R3= 0 Ñ Laáy ACC Löu ñoà thuaät giaûi kieåm tra phím aán S Ñ Luaän vaên toát nghieäp Trang 22 GVHD Nguyeãn Vieät Huøng 6. Chöông trình doø maõ phím aán: 8051 luoân ñoïc döõ lieäu töø Port 1 ñeå doø tìm maõ phím. Khi coù moät phím ñöôïc aán thì côø C = 1 vaø maõ cuûa phím aán ñöôïc löu taïm thôøi vaøo thanh ghi R6. Sau ñoù taêng daàn R6 leân 4 ñôn vò ñeå doø maõ phím tieáp theo, (maõ phím ) (A) 7. Chöông trình ñaàu doø: Ñ R6 =0 #FE  A # 4  R6 A  R7 #4  A XOÙA C A –R6 A  R6 R7  A R7  A Xoay A R6 - 1 Baét ñaàu A  R7 A  P1 Ñoïc port 1 A AND #0F0H XOAY A Xoay phaûi A qua C XOÙ A C A = # 0F0H R6 + 4 R5 - 1 Ñaët côø c R6  A Ñ S C = 0 Ñ (3) S S (3) Ñ (3) R5 = 0 S RET Luaän vaên toát nghieäp Trang 23 GVHD Nguyeãn Vieät Huøng 8051 luoân luoân ñoïc döõ lieäu töø ñaàu doø (Port B4) neân noäi dung thanh ghi A baèng noäi dung oâ nhôù 4001H. Cöù moãi saûn phaåm ñi tôùi caûm bieán, caûm bieán seõ taïo ra möùc logic ñieän aùp cao 5 volt, luùc ñoù Port B.0 = 1 = ACC.0 . Vì coù khoaûng thôøi gian saûn phaåm ñi qua neân möùc logic ñieän aùp phaûi toàn taïi ít nhaát khoaûng 100s do ñoù phaûi lieân tuïc kieåm tra döõ lieäu töø ñaàu doø. Khi möùc logic ñieän aùp chuyeån töø 1 xuoáng 0 (töông öùng vôùi 1 saûn phaåm ñaõ ñi qua caûm bieán). thì phaûi coù khoaûng thôøi gian ít nhaát ñeå chôø saûn phaåm tieáp theo ñi tôùi neân möùc logic thaáp cuõng phaûi toàn taïi ít nhaát 100s. Doø möùc ñieän aùp trong khoaûng thôøi gian 100 s baèng caùch naïp 100 vaøo R3, giaûm R3, khi R3  0 vaãn tieáp tuïc doø möùc. Löu ñoà thuaät giaûi doø möùc ñieän aùp nhö sau: 8. Chöông trình Blank: xoùa soá 0 khoâng coù nghóa Baét ñaàu DPTR  # CAÛM BIEÁN R3  #100 A  @DPTR S Ñ ACC. 0 =1 1 R3 = 0 R3 - 1 Ñ S R3  #100 A  @DPTR (ñoïc port B1) ACC.0 = 0 Ñ S S R3 - 1 RET R3 = 0 Ñ Luaän vaên toát nghieäp Trang 24 GVHD Nguyeãn Vieät Huøng Chöông trình naøy coù yù nghóa nhö sau: khi soá saûn phaåm hay soá hoäp chæ tôùi haøng ñôn vò, chuïc, traêm thì nhöõng soá 0 ñöùng tröôùc noù khoâng coù nghóa bò loaïi boû (khoâng saùng ) vaø caùc oâ nhôù coù nghóa ñöôïc löu (laàn löôït töø haøng ñôn vò  haøng ngaøn) vaøo caùc oâ nhôù töø 70H 77H. Loaïi boû baèng caùch so saùnh giaù trò lôùn nhaát haøng ngaøn vôùi soá 0 neáu ñuùng laø 0 thì xoùa led hieån thò haøng ngaøn, tieáp tuïc so saùnh xem oâ nhôù haøng traêm vôùi soá 0 neáu ñuùng laø 0 thì xoùa led hieån thò haøng traêm, töông töï cho haøng chuïc, coøn oâ nhôù haøng ñôn vò giaù trò baèng bao nhieâu thì led haøng ñôn vò cuõng hieån thò. Baté ñaàu A  DEMHOP H LED 70  NGAN LED 71  TRAM A  DEMHOP L LED 72  CHUC LED 73  DONVI A  DEM_ SPL LED 76  CHUC LED 77  DONVI A  DEM_SP H LED 75  TRAM A  LED 70 ( 1 ) Luaän vaên toát nghieäp Trang 25 GVHD Nguyeãn Vieät Huøng 9. Chöông trình nhaäp hoäp: Chöông trình cho pheùp nhaäp caùc soá töø 1 ñeán 9999. Neáu soá ñöôïc nhaán töø A ñeán F thì yeâu caàu nhaäp laïi. Khi soá ñöôïc nhaán löu vaøo thanh ghi A töø 1 ñeán 9: neáu chaáp nhaän soá (1) ( 1) A =0 S Xoùa LED 72 A  LED 75 Ñ S Xoùa LED 70 A  LED 71 A =0 Ñ S Xoùa LED 71 A  LED 72 A = 0 Ñ Xoùa LED 75 A  LED 76 A = 0 Ñ S Xoùa LED 76 RET A =0 Ñ S Chöông trình blank Luaän vaên toát nghieäp Trang 26 GVHD Nguyeãn Vieät Huøng thì caùc bit 7D, 7E = 0 vaø khi bit 7D = 1 thì yeâu caàu nhaäp laïi hoäp, bit 7E = 1, thì thoaùt khoûi chöông trình. Caùc giaù trò ñöôïc nhaäp naøy ñöôïc löu vaøo caùc oâ nhôù töø (74H) ñeán (77H) vaø 7C (LÖUHOPL:löu hoäp byte thaáp), 7D (LÖUHOPH: löu hoäp byte cao). Neáu ñoàng yù vôùi soá ñaõ nhaäp thì nhaán A ngöôïc laïi laø B (xoùa soá ñaõ nhaäp) S (2) ÑÔN VÒ  CHUÏC A  ÑÔN VÒ CHUÏC + ÑÔN VÒ  LÖU HOP L Goïi nhaán soá thöù 3 (2) BIT 7E = 1 Ñ S Ñ BIT 7E = 1 S TRAÊM  NGAØN CHUÏC  TRAÊM ÑÔN VÒ  CHUÏC A  ÑÔN VÒ CHUÏC, ÑÔN VÒ  LÖU HOP L NGAØN,TRAÊM  LÖU HOPH RET A = # 0AH S S A = # 0BH Ñ Goïi chöông trình doø phím BIT 7D = 1 S CHUÏC  TRAÊM ÑÔN VÒ  CHUÏC A  ÑÔN VÒ CHUÏC + ÑÔN VÒ  LÖU HOP L LÖU HOPH TRAÊM Goïi nhaán soá thöù 4 Ñ (1) BIT 7D = 1 Ñ (1) S Löu ñoà chöông trình nhaäp hoäp Luaän vaên toát nghieäp Trang 27 GVHD Nguyeãn Vieät Huøng 10. Chöông trình nhaäp saûn phaåm: Chöông trình cho pheùp nhaäp caùc soá töø 1 ñeán 999. Soá chæ ñöôïc nhaäp khi caùc bit 7D, 7E = 0 vaø khi bit 7D = 1 thì yeâu caàu nhaäp laïi. Caùc giaù trò ñöôïc nhaäp naøy ñöôïc löu vaøo caùc oâ nhôù töø (74H) ñeán (77H) vaø 7C (LÖUSPL: löu saûn phaåm byte thaáp), 7D (LÖUSPH: löu saûn hpaåm byte cao). Neáu ñoàng yù vôùi soá ñaõ nhaäp thì nhaán A ngöôïc laïi laø B (xoùa soá ñaõ nhaäp)  Baét ñaàu A = 0 Ñ S S Hieån thò “Nhaäp O 0” LÖU – SPL  # 00H LÖU – SPH  # 00H Goïi nhaán soá thöù nhaát BIT 7D = 1 Ñ ÑÔN VÒ  A LÖU – SPL  ÑÔNVÒ Goïi nhaán soá thöù 2 Ñ BIT 7E = 1 Ñ S BIT 7D = 1 CHUÏC  ÑÔN VÒ ÑÔN VÒ  A LÖU – SPL  CHUÏC,ÑÔNVÒ Goïi nhaán soá thöù 3 (2) (3) S Luaän vaên toát nghieäp Trang 28 GVHD Nguyeãn Vieät Huøng (2) Ñ S BIT 7E = 1 BIT 7D = 1 TRAÊM  CHUÏC CHUÏC  ÑÔN VÒ ÑÔN VÒ  A LÖU – SPL  CHUÏC,ÑÔNVÒ LÖU – SPH  TRAÊM Goïi chöông trình doø phím A = # 0CH A = # 0BH Ñ S RET Ñ S (1) (3) Chöông trình con nhaäp saûn phaåm Luaän vaên toát nghieäp Trang 29 GVHD Nguyeãn Vieät Huøng 11. Chöông trình delay: Ñeå khoáng cheá thôøi gian delay naïp giaù trò ban ñaàu cho timer. Set cho timer chaïy. Khi timer ñeám baèng thôøi gian naïp thì côø baùo traøn ñöôïc set leân [1]. Muoán thôøi gian delay lôùn naïp giaù trò cho R4, giaûm R4 sau moãi laàn traøn timer. Nhö theá thôøi gian delay seõ laø: t = (R4) x count0. Khi R4 = 0 laø heát thôøi gian delay. 12. Chöông trình con löu soá saûn phaåm soá hoäp trong moãi ca saûn xuaát: Chöông trình naøy löu keát quaû cuûa moãi ca saûn xuaát. Soá hoäp, soá saûn phaåm ñöôïc löu vaøo caùc oâ nhôù töø 30H  53H. Xeùt noäi dung oâ nhôù 2EH, neáu noäi dung oâ nhôù 2EH = 1 vaø sau khi ñeám xong vaø baêng chuyeàn baùo hieäu ngöng ñeám thì noäi dung oâ nhôù 2EH trao cho thanh ghi A vaø löu keát quaû vaøo ca 1. Neáu ca sau cho pheùp hoaït ñoäng thì noäi dung oâ nhôù 2EH taêng leân 1 vaø töông töï ñöôc löu vaøo ca töông öùng ( ca = ca tröôùc + 1). 13. Chöông trình con cho pheùp xem soá lieäu cuûa ca saûn xuaát: Chöông trình naøy xem keát quaû cuûa moãi ca saûn xuaát, cuï theå laø xem noäi dung soá hoäp soá saûn phaåm trong moãi ca saûn xuaát. ÔÛ ñeà taøi naøy chuùng em chæ vieát chöông trình xem toái ña laø 9 ca. Töùc laø khi muoán kieåm tra ca naøo thì nhaäp cuï theå ca ñoù laø ca thöù maáy thoâng qua baøn phím baèng caùch nhaán moät soá. Tröôùc ñoù soá hoäp, soá saûn phaåm ñöôïc löu vaøo caùc oâ nhôù töø 30H  53H. Khi ro-le baêng chuyeàn ñaõ ngöng hoaït ñoäng sau moät ca naøo ñoù neáu tieáp tuïc muoán nhaäp soá lieäu vaøo ñeå ñeám cho ca tieáp theo thì nhaán moät phím baát kyø khaùc Baét ñaàu TH0  # HIGHT COUNT0 TL0  # LOW COUNT0 TR0 = 1 COUNT 0 Xoùa côø traøn R4 - 1 Chaïy timer S Ñ R4 = 0 Ñ S Ret (FFFF  0000) Luaän vaên toát nghieäp Trang 30 GVHD Nguyeãn Vieät Huøng phím E . Coøn neáu nhaán phím E töùc laø cho pheùp xem soá lieäu cuûa caùc ca, chæ caàn nhaán phím coù loaïi tröø phím chöùc naêng thì maõ phím nhaán ñoù ñöôïc löu vaøo thanh ghi A. Neáu A baèng maáy thì seõ ñöa noäi dung oâ nhôù löu soá lieäu ca ñoù ra boä phaän hieån thò. Vaø neáu muoán xem tieáp ca naøo nöõa thì cöù nhaán phím cho pheùp xem E roài nhaäp soá lieäu vaøo. Coøn khi muoán löu soá ca nhieàu hôn nöõa nhö toái ña laø töø 0 99 hay töø 0  999 hay töø 0  999 thì töông töï nhö treân chæ khaùc laø khi nhaäp soá lieäu vaøo thì goïi nhaán toái ña 2 soá , 3soá, hay 4 soá thì chöông trình nhaäp soá laïi gioáng nhö trong chöông trình con nhaäp soá saûn phaåm vaø soá hoäp, vaø nhieàu ca ñöôïc löu thì soá oâ nhôù cuõng phaûi ñöôïc taêng theo. A  2EH A =#01H A =#02H A =#03H A =#04H A =#05H 30H  LUUHOPL 31H  LUUHOPH 32H  LUU_SPL 33H  LUU_SPH 34H  LUUHOPL 35H  LUUHOPH 36H  LUU_SPL 37H  LUU_SPH 38H  LUUHOPL 39H  LUUHOPH 3AH  LUU_SPL 3BH  LUU_SPH 3CH  LUUHOPL 3DH  LUUHOPH 3EH  LUU_SPL 3FH  LUU_SPH 40H  LUUHOPL 41H  LUUHOPH 42H  LUU_SPL 43H  LUU_SPH ( 1 ) Ñ ( 2 ) S Ñ S Ñ S S Ñ S Ñ LÖU: Soá saûn phaåm, hoäp cuûa caùc ca ñöôïc löu vaøo oâ nhôù töông öùng Ñöa soá lieäu cuûa caùc ca trong oâ nhôù ra hieån thò Luaän vaên toát nghieäp Trang 31 GVHD Nguyeãn Vieät Huøng RET A =#06H A =#07H A =#08H A =#09H 44H  LUUHOPL 45H  LUUHOPH 46H  LUU_SPL 47H  LUU_SPH 48H  LUUHOPL 49H  LUUHOPH 4AH  LUU_SPL 4BH  LUU_SPH 4CH  LUUHOPL 4DH  LUUHOPH 4EH  LUU_SPL 4FH  LUU_SPH 50H  LUUHOPL 51H  LUUHOPH 52H  LUU_SPL 53H  LUU_SPH Ñ S Ñ S S Ñ S Ñ ( 2 ) Löu ñoà chöông trình löu soá lieäu Luaän vaên toát nghieäp Trang 32 GVHD Nguyeãn Vieät Huøng Goïi chöông trình con doø phím A =#00H A =#01H A =#02H A =#03H A =#04H LUUHOPL  #FFH LUUHOPH  #FFH LUU_SPL  #FFH LUU_SPH  #FFH LUUHOPL  30H LUUHOPH  31H LUU_SPL  32H LUU_SPH  33H LUUHOPL  34H LUUHOPH  35H LUU_SPL  36H LUU_SPH  37H LUUHOPL  38H LUUHOPH  39H LUU_SPL  3AH LUU_SPH  3BH LUUHOPL  3CH LUUHOPH  3DH LUU_SPL  3EH LUU_SPH  3FH ( 1 ) Ñ ( 2 ) S Ñ S Ñ S S Ñ S Ñ XEM: Löu ñoà chöông trình cho pheùp xem soá lieäu Luaän vaên toát nghieäp Trang 33 GVHD Nguyeãn Vieät Huøng A =#05H A =#06H A =#07H A =#08H A =#09H LUUHOPL  40H LUUHOPH  41H LUU_SPL  42H LUU_SPH  43H LUUHOPL  44H LUUHOPH  45H LUU_SPL  46H LUU_SPH  47H LUUHOPL  48H LUUHOPH  49H LUU_SPL  4AH LUU_SPH  4BH LUUHOPL  4CH LUUHOPH  4DH LUU_SPL  4EH LUU_SPH  4FH LUUHOPL  50H LUUHOPH  51H LUU_SPL  52H LUU_SPH  53H Ñ S Ñ S Ñ S S Ñ S Ñ ( 2 ) RET Goïi chöông trình blank (1) Luaän vaên toát nghieäp Trang 34 GVHD Nguyeãn Vieät Huøng B. CHÖÔNG TRÌNH HEÄ THOÁNG ;CHUONG TRINH DEM SAN PHAM VA DONG HOP ;-----------------KHAI BAO CAC BIEN HANG--------------- ------ CWR4 EQU 4003H ;CWR4 ROLE_BC EQU 4000H ;PORTA4 CAMBIEN EQU 4001H ;PORTB4 NGO_DP1 EQU 4002H ;PORTC4 CWR6 EQU 6003H ;CWR6 HIENTHI EQU 6000H ;PORTA6 ROLE_DH EQU 6001H ;PORTB6 CHONLED EQU 6002H ;PORTC6 LED70 EQU 70H LED71 EQU 71H LED72 EQU 72H LED73 EQU 73H LED74 EQU 74H LED75 EQU 75H LED76 EQU 76H LED77 EQU 77H LUU_SPL EQU 78H ;Luu san pham (byte thap) LUU_SPH EQU 79H ;Luu san pham (byte cao) DEM_SPL EQU 7AH ;Dem san pham (byte thap) DEM_SPH EQU 7BH ;Dem san pham (byte cao) LUUHOPL EQU 7CH LUUHOPH EQU 7DH DEMHOPL EQU 7EH DEMHOPH EQU 7FH COUNT0 EQU - 10000 DELAY1 EQU 50 DELAY2 EQU 20 TOCDO1 EQU 9 COUNT1 EQU - 250 BLK EQU 0FH START EQU 0CH NO BIT 7DH YES BIT 7EH LUU_CY BIT 7FH ;------------------------- CHUONG TRINH CHINH---------- ------- ORG 00H LJMP BAT_DAU0 ORG 1BH LJMP NGAT_T1 ORG 30H BAT_DAU0: MOV R1,#LED77 Luaän vaên toát nghieäp Trang 2 GVHD Nguyeãn Vieät Huøng MOV R2,#TOCDO1 MOV TMOD,#21H MOV TH1,#COUNT1 LCALL KD_NV SETB TR1 SETB ET1 SETB EA BAT_DAU1: MOV 2EH,#00H MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#00H MOV 37H,#00H MOV 38H,#00H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H MOV 3CH,#00H MOV 3DH,#00H MOV 3EH,#00H MOV 3FH,#00H MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV 48H,#00H MOV 49H,#00H MOV 4AH,#00H MOV 4BH,#00H MOV 4CH,#00H MOV 4DH,#00H MOV 4EH,#00H MOV 4FH,#00H MOV 50H,#00H MOV 51H,#00H MOV 52H,#00H MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H MOV 56H,#00H MOV 57H,#00H BAT_DAU: MOV DEMHOPL,#00H MOV DEMHOPH,#00H MOV DEM_SPL,#00H MOV DEM_SPH,#00H INC 2EH MOV 77H,2EH MOV 76H,#BLK MOV 75H,#BLK MOV 74H,#BLK MOV 73H,#BLK MOV 72H,#BLK MOV 71H,#0AH MOV 70H,#10H MOV R4,#250 LCALL DELAY MOV LED70,#0DH ;'N' MOV LED71,#0BH ;'H' MOV LED72,#0AH ;'A' MOV LED73,#0EH ;'P' LCALL NHAPHOP LCALL NHAP_SP MOV DPTR,#ROLE_BC MOV A,#0FFH ;Cho phep bang chuyen hoat dong MOVX @DPTR,A DEM: LCALL BLANK LCALL DAUDO MOV A,DEM_SPL LCALL TANG_1 MOV DEM_SPL,A JNC DU_SP? MOV A,DEM_SPH LCALL TANG_1 MOV DEM_SPH,A DU_SP?: MOV Luaän vaên toát nghieäp Trang 3 GVHD Nguyeãn Vieät Huøng A,DEM_SPH CJNE A,LUU_SPH,DEM MOV A,DEM_SPL CJNE A,LUU_SPL,DEM LCALL BLANK MOV R4,#DELAY1 LCALL DELAY MOV A,#00H MOV DPTR,#ROLE_DH MOVX @DPTR,A MOV R4,#DELAY2 LCALL DELAY MOV A,#0FFH MOVX @DPTR,A MOV DEM_SPL,#00H MOV DEM_SPH,#00H MOV A,DEMHOPL LCALL TANG_1 MOV DEMHOPL,A JNC DUHOP? MOV A,DEMHOPH LCALL TANG_1 MOV DEMHOPH,A DUHOP?: MOV A,DEMHOPH CJNE A,LUUHOPH,DEM MOV A,DEMHOPL CJNE A,LUUHOPL,DEM LCALL BLANK KETTHUC: MOV DPTR,#ROLE_BC MOV A,#00H MOVX @DPTR,A MOV A,2EH LCALL LUU L14: LCALL IN_HEX CJNE A,#0EH,L12 MOV 77H,#BLK MOV 76H,#BLK MOV 75H,#BLK MOV 74H,#BLK MOV 73H,#BLK MOV 72H,#BLK MOV 71H,#0AH MOV 70H,#10H L13: LCALL IN_HEX PUSH ACC CLR C SUBB A,#0AH POP ACC JNC L13 MOV 77H,A LCALL DELAY LCALL XEM MOV 74H,#0CH MOV DEMHOPL,LUUHOPL MOV DEMHOPH,LUUHOPH MOV DEM_SPL,LUU_SPL MOV DEM_SPH,LUU_SPH LCALL BLANK LCALL DELAY LJMP L14 L12: MOV A,2EH CJNE A,#09H,L15 LJMP BAT_DAU1 L15: LJMP BAT_DAU ;------------------KHAI BAO CHUONG TRINH CON------------ ----- ;CHUONG TRINH CON LUU SO HOP, SO SAN PHAM LUU: NOP L0: CJNE A,#01H,L1 MOV 30H,LUUHOPL MOV 31H,LUUHOPH MOV Luaän vaên toát nghieäp Trang 4 GVHD Nguyeãn Vieät Huøng 32H,LUU_SPL MOV 33H,LUU_SPH LJMP L10 L1: CJNE A,#02H,L2 MOV 34H,LUUHOPL MOV 35H,LUUHOPH MOV 36H,LUU_SPL MOV 37H,LUU_SPH LJMP L10 L2: CJNE A,#03H,L3 MOV 38H,LUUHOPL MOV 39H,LUUHOPH MOV 3AH,LUU_SPL MOV 3BH,LUU_SPH LJMP L10 L3: CJNE A,#04H,L4 MOV 3CH,LUUHOPL MOV 3DH,LUUHOPH MOV 3EH,LUU_SPL MOV 3FH,LUU_SPH LJMP L10 L4: CJNE A,#05H,L5 MOV 40H,LUUHOPL MOV 41H,LUUHOPH MOV 42H,LUU_SPL MOV 43H,LUU_SPH LJMP L10 L5: CJNE A,#06H,L6 MOV 44H,LUUHOPL MOV 45H,LUUHOPH MOV 46H,LUU_SPL MOV 47H,LUU_SPH LJMP L10 L6: CJNE A,#07H,L7 MOV 48H,LUUHOPL MOV 49H,LUUHOPH MOV 4AH,LUU_SPL MOV 4BH,LUU_SPH LJMP L10 L7: CJNE A,#08H,L8 MOV 4CH,LUUHOPL MOV 4DH,LUUHOPH MOV 4EH,LUU_SPL MOV 4FH,LUU_SPH LJMP L10 L8: CJNE A,#09H,L10 MOV 50H,LUUHOPL MOV 51H,LUUHOPH MOV 52H,LUU_SPL MOV 53H,LUU_SPH L10: RET ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON XEM XEM: NOP CJNE A,#00H,H0 Luaän vaên toát nghieäp Trang 5 GVHD Nguyeãn Vieät Huøng MOV LUUHOPL,#0FFH MOV LUUHOPH,#0FFH MOV LUU_SPL,#0FFH MOV LUU_SPH,#0FFH LJMP H9 H0: CJNE A,#01H,H1 MOV LUUHOPL,30H MOV LUUHOPH,31H MOV LUU_SPL,32H MOV LUU_SPH,33H LJMP H9 H1: CJNE A,#02H,H2 MOV LUUHOPL,34H MOV LUUHOPH,35H MOV LUU_SPL,36H MOV LUU_SPH,37H LJMP H9 H2: CJNE A,#03H,H3 MOV LUUHOPL,38H MOV LUUHOPH,39H MOV LUU_SPL,3AH MOV LUU_SPH,3BH LJMP H9 H3: CJNE A,#04H,H4 MOV LUUHOPL,3CH MOV LUUHOPH,3DH MOV LUU_SPL,3EH MOV LUU_SPH,3FH LJMP H9 H4: CJNE A,#05H,H5 MOV LUUHOPL,40H MOV LUUHOPH,41H MOV LUU_SPL,42H MOV LUU_SPH,43H LJMP H9 H5: CJNE A,#06H,H6 MOV LUUHOPL,44H MOV LUUHOPH,45H MOV LUU_SPL,46H MOV LUU_SPH,47H LJMP H9 H6: CJNE A,#07H,H7 MOV LUUHOPL,48H MOV LUUHOPH,49H MOV LUU_SPL,4AH MOV LUU_SPH,4BH LJMP H9 H7: CJNE A,#08H,H8 MOV LUUHOPL,4CH MOV LUUHOPH,4DH MOV LUU_SPL,4EH MOV LUU_SPH,4FH LJMP H9 H8: CJNE A,#09H,H9 MOV LUUHOPL,50H MOV LUUHOPH,51H Luaän vaên toát nghieäp Trang 6 GVHD Nguyeãn Vieät Huøng MOV LUU_SPL,52H MOV LUU_SPH,53H LJMP H9 H9: RET ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON CHO HIEN THI NGAT_T1: MOV LUU_CY,C DJNZ R2,THOATT1 MOV R2,#TOCDO1 PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#CHONLED MOV A,R1 SWAP A MOVX @DPTR,A MOV DPTR,#HIENTHI MOV A,@R1 LCALL TRABANG MOVX @DPTR,A DEC R1 POP DPL POP DPH POP ACC CJNE R1,#LED70-1,THOATT1 MOV R1,#LED77 THOATT1: MOV C,LUU_CY RETI ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON KHOI DONG THIET BI NGOAI VI KD_NV: MOV DPTR,#CWR4 MOV A,#82H ;PORTB4:INPUT MOVX @DPTR,A MOV DPTR,#ROLE_BC MOV A,#00H ;Dung bang chuyen MOVX @DPTR,A MOV DPTR,#NGO_DP1 MOV A,#0FFH MOVX @DPTR,A MOV DPTR,#CWR6 MOV A,#80H MOVX @DPTR,A MOV A,#0FFH MOV DPTR,#HIENTHI MOVX @DPTR,A MOV DPTR,#ROLE_DH MOVX @DPTR,A MOV DPTR,#CHONLED MOVX @DPTR,A RET ;--------------------------- ---------------------------- ----- ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON DELAY DELAY: MOV TH0,#HIGH COUNT0 MOV TL0,#LOW COUNT0 SETB TR0 CHO: JNB TF0,CHO CLR TF0 CLR TR0 DJNZ R4,DELAY RET ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON NHAN SO NHANSO: CLR YES CLR NO LCALL IN_HEX CJNE Luaän vaên toát nghieäp Trang 7 GVHD Nguyeãn Vieät Huøng A,#0AH,XOASO? SETB YES CLR A LJMP THOAT0 XOASO?: CJNE A,#0BH,LOAITRU SETB NO LJMP THOAT0 LOAITRU: PUSH ACC CLR C SUBB A,#0AH POP ACC JNC NHANSO THOAT0: RET ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON TANG 1 TANG_1: CLR AC CLR C ADD A,#1 DA A RET ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON DAU DO DAUDO: MOV DPTR,#CAMBIEN DO1: MOV R3,#110 DO2: MOV R4,#200 DOMUC_L: MOVX A,@DPTR JB ACC.0,DO1 DJNZ R4,DOMUC_L DJNZ R3,DO2 DOTIEP1: MOV R3,#34 DOTIEP2: MOV R4,#200 DOMUC_H: MOVX A,@DPTR JNB ACC.0,DOTIEP1 DJNZ R4,DOMUC_H DJNZ R3,DOTIEP2 RET ;--------------------------- ---------------------------- ----- CHUONG TRINH CON XOA SO 0 KHONG CO NGHIA BLANK: MOV A,DEMHOPH SWAP A ANL A,#0FH MOV LED70,A MOV A,DEMHOPH ANL A,#0FH MOV LED71,A MOV A,DEMHOPL SWAP A ANL A,#0FH MOV LED72,A MOV A,DEMHOPL ANL A,#0FH MOV LED73,A MOV A,DEM_SPH ANL A,#0FH MOV LED75,A MOV A,DEM_SPL SWAP A ANL A,#0FH MOV LED76,A MOV A,DEM_SPL ANL A,#0FH MOV LED77,A MOV A,LED70 JNZ THOAT3 MOV LED70,#BLK MOV A,LED71 JNZ THOAT3 MOV LED71,#BLK MOV A,LED72 JNZ THOAT3 MOV LED72,#BLK THOAT3: MOV A,LED75 JNZ THOAT4 MOV Luaän vaên toát nghieäp Trang 8 GVHD Nguyeãn Vieät Huøng LED75,#BLK MOV A,LED76 JNZ THOAT4 MOV LED76,#BLK THOAT4: RET ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON NHAP HOP NHAPHOP: MOV LED74,#BLK MOV LED75,#BLK MOV LED76,#BLK MOV LED77,#00H MOV LUUHOPL,#00H MOV LUUHOPH,#00H SOHOP1: LCALL NHANSO JZ SOHOP1 JBC NO,NHAPHOP MOV LED77,A MOV LUUHOPL,A SOHOP2: LCALL NHANSO JBC YES,THOAT1 JBC NO,NHAPHOP MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUUHOPL,A SOHOP3: LCALL NHANSO JBC YES,THOAT1 JBC NO,NHAPHOP MOV LED75,LED76 MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUUHOPL,A MOV LUUHOPH,LED75 SOHOP4: LCALL NHANSO JBC YES,THOAT1 JBC NO,NHAPHOP MOV LED74,LED75 MOV LED75,LED76 MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUUHOPL,A MOV A,LED74 SWAP A ORL A,LED75 MOV LUUHOPH,A KT_NHAPHOP: LCALL IN_HEX CJNE A,#0AH,XOANHAPHOP? LJMP THOAT1 XOANHAPHOP?: CJNE A,#0BH,KT_NHAPHOP LJMP NHAPHOP THOAT1: RET ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON NHAP SAN PHAM Luaän vaên toát nghieäp Trang 9 GVHD Nguyeãn Vieät Huøng NHAP_SP: MOV LED74,#0CH MOV LED75,#BLK MOV LED76,#BLK MOV LED77,#00H MOV LUU_SPL,#00H MOV LUU_SPH,#00H SO_SP1: LCALL NHANSO JZ SO_SP1 JBC NO,NHAP_SP MOV LED77,A MOV LUU_SPL,A SO_SP2: LCALL NHANSO JBC YES,KT_NHAP_SP JBC NO,NHAP_SP MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUU_SPL,A SO_SP3: LCALL NHANSO JBC YES,KT_NHAP_SP JBC NO,NHAP_SP MOV LED75,LED76 MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUU_SPL,A MOV LUU_SPH,LED75 KT_NHAP_SP: LCALL IN_HEX CJNE A,#START,XOA_NHAP_SP? LJMP THOAT2 XOA_NHAP_SP?: CJNE A,#0BH,KT_NHAP_SP LJMP NHAP_SP THOAT2: RET ;--------------------------- ---------------------------- ----- ;CHUONG TRINH CON KIEM TRA CO PHIM NHAN ? IN_HEX: MOV R3,#50 BACK1: LCALL GET_KEY JNC IN_HEX DJNZ R3,BACK1 PUSH ACC BACK2: MOV R3,#50 BACK3: LCALL GET_KEY JC BACK2 DJNZ R3,BACK3 POP ACC RET ;--------------------------- ---------------------------- ----- ; CHUONG TRINH CON DO AN PHIM GET_KEY: MOV A,#0FEH MOV R6,#4 TEST_NEXT: MOV P1,A MOV R7,A MOV A,P1 ANL A,#0F0H CJNE A,#0F0H,KEY_BIT MOV A,R7 RL A DJNZ R6,TEST_NEXT CLR C SJMP EXIT KEY_BIT: MOV R7,A Luaän vaên toát nghieäp Trang 10 GVHD Nguyeãn Vieät Huøng MOV A,#4 CLR C SUBB A,R6 MOV R6,A MOV A,R7 SWAP A MOV R5,#4 AGAIN: RRC A JNC DONE INC R6 INC R6 INC R6 INC R6 DJNZ R5,AGAIN DONE: SETB C MOV A,R6 EXIT: RET ;--------------------------- ---------------------------- ----- CHUONG TRINH CON TRA BANG TRABANG: ADD A,#11 MOVC A,@A+PC RET DB 'DEFINEBYTE' DB 0C0H ; '0' DB 0F9H ; '1' DB 0A4H ; '2' DB 0B0H ; '3' DB 099H ; '4' DB 092H ; '5' DB 082H ; '6' DB 0F8H ; '7' DB 080H ; '8' DB 090H ; '9' DB 088H ; 'A' DB 089H ; 'H' DB 09CH ; 'o' DB 0C8H ; 'N' DB 08CH ; 'P' DB 0FFH ; 'BLANK' DB 0C6H ; 'C' ;-----------------KET THUC CHUONG TRINH---------------- ------ END Luaän vaên toát nghieäp Trang 11 GVHD Nguyeãn Vieät Huøng LÔØI GIÔÙI THIEÄU Trong quaù trình hieän nay maùy tính ñieän töû ñaõ goùp phaàn khoâng nhoû ñoái vôùi söï phaùt trieån xaõ hoäi. Do yeâu caàu cuûa con ngöôøi ngaøy caøng cao, caùc theá heä maùy tính ñaõ lieân tuïc phaùt trieån khoâng ngöøng. Ngay trong giai ñoaïn ñaàu caùc theá heä vi xöû lyù 8 bit ñöôïc duøng laø Z80,8085, sau ñoù laø caùc heä vi xöû lyù 16 bit nhö 8086, 8088… Caùc heä vi xöû lyù naøy ñaõ goùp phaàn quan troïng trong vieäc chöông trình hoùa caùc hoaït ñoäng cuûa maùy moùc trong coâng nghieäp nhôø vaøo caùc phaàn meàm öùng duïng. Moät khi trong coâng nghieäp ñaõ öùng duïng nhieàu vaøo vi xöû lyù thì caùc nhaø cheá taïo khoâng boû lôõ cô hoäi cho ra ñôøi caùc hoï vi ñieàu khieån ngaøy caøng tieán boä hôn. Vi ñieàu khieån ñöôïc söû duïng nhieàu trong caùc thieát bò coâng nghieäp, trong maùy giaët, trong ñieàu khieån ñeøn giao thoâng, trong caùc ñoà chôi giaûi trí… Taïi Vieät nam vieäc chöông trình hoùa caùc heä thoáng ñang ñöôïc aùp duïng ngaøy caøng nhieàu trong caùc nhaø maùy coâng nghieäp. Ñeå tìm hieåu veà vi ñieàu khieån vaø tìm hieåu moät öùng duïng cuï theå cuûa noù nhoùm chuùng em xin thöïc hieän ñeà taøi goàm hai phaàn chính: PHAÀN1: Khaûo saùt vi ñieàu khieån 8051, vi maïch giao tieáp ngoaïi vi 8255, cuøng vôùi boä nhôù baùn daãn, caûm bieán. PHAÀN 2: Thieát keá vaø thi coâng maïch ñeám saûn phaåm duøng vi ñieàu khieån 8051. Chöông trình heä thoáng vaø öùng duïng. Nhôø coù söï giuùp ñôõ cuûa quyù thaày coâ vaø baïn beø, nhoùm chuùng em ñaõ coá gaéng thöïc hieän ñeà taøi ñöôïc giao nhöng do kieán thöùc vaø thôøi gian coù haïn neân ñeà taøi khoâng theå traùnh khoûi thieáu soùt neân raát mong söï ñoùng goùp cuûa quyù thaày coâ vaø baïn beø. Sinh vieân thöïc hieän Ñinh Thò Kha Leâ Hoaøng Minh Luaän vaên toát nghieäp Trang 2 GVHD Nguyeãn Vieät Huøng LÔØI CAÛM ÔN Trong quaù trình boán naêm röôõi hoïc taïi tröôøng Ñaïi hoïc Sö phaïm kyõ thuaät TP.HCM. Chuùng em ñaõ ñöôïc söï höôùng daãn taän tình cuûa quí thaày coâ veà nhöõng kieán thöùc chuyeân moân cuõng nhö kieán thöùc trong cuoäc soáng. Töø nhöõng kieán thöùc neàn taûng ñoù ñaõ giuùp chuùng em hoaøn thaønh taäp luaän vaên toát nghieäp trong thôøi gian cho pheùp. Chuùng em xin chaân thaønh caûm ôn thaày coâ trong khoa ñieän ñaõ giaûng daïy cho chuùng em nhöõng kieán thöùc veà chuyeân moân vaø ñònh höôùng ñi theo söï hieåu bieát, khaû naêng cuûa chuùng em ñeå chuùng em thöïc hieän toát luaän vaên toát nghieäp vaø taïo ñieàu kieän thuaän lôïi cho chuùng em hoaøn taát khoùa hoïc. Chuùng em xin chaân thaønh caûm ôn thaày NGUYEÃN VIEÄT HUØNG vaø coâ TRAÀN THANH MAI ñaõ taän tình giuùp ñôõ chuùng em hoaøn thaønh taäp luaän aùn naøy. Chuùng em xin chaân thaønh caûm ôn anh BUØI ÑÖÙC MINH, NGUYEÃN KIM HUY, cuøng caùc baïn sinh vieân ñaõ taän tình giuùp ñôõ chuùng em hoaøn thaønh toát maïch. Sinh vieân thöïc hieän ÑINH THÒ KHA LEÂ HOAØNG MINH Luaän vaên toát nghieäp Trang 3 GVHD Nguyeãn Vieät Huøng DAÃN NHAÄP Heä thoáng vi xöû lyù hay coøn goïi laø maùy tính ñieän töû laø thieát bò xöû lyù thoâng tin, ñieàu khieån caùc thieát bò ngoaøi hay caùc thieát bò trong coâng nghieäp töï ñoäng. Phaàn chính cuûa maùy tính laø boä xöû lyù trung taâm CPU (Central Processing Unit) laø nôi xaûy ra caùc quaù trình xöû lyù soá lieäu vaø ñieàu khieån moïi hoaït ñoäng cuûa maùy tính. Ngöôøi ta phaân loaïi CPU döïa vaøo ñoä roäng Data bus nhö: CPU 8 bit Z80A: Haõng Zilog 6802 : Haõng Motorola 8080/8085: Haõng Intel CPU 16 bit 8086/8088: Haõng Intel Vi xöû lyù laø moät heä thoáng soá döïa treân cô sôû linh kieän chuû yeáu laø boä vi xöû lyù (CPU ). Tuøy thuoäc vaøo caáu truùc cuûa boä vi xöû lyù rieâng bieät vaø phaàn ñieàu khieån maø noù coù theå bao goàm nhieàu loaïi vi maïch. Döôùi söï ñieàu khieån baèng chöông trình moät boä vi xöû lyù thöïc hieän caùc pheùp tính soá hoïc vaø logic, ñoàng thôøi taïo ra nhöõng tín hieäu ñieàu khieån cho boä nhôù vaø thieát bò vaøo ra. Nhöõng meänh leänh naøy goïi laø chöông trình nguoàn vaø ñöôïc chöùa trong boä nhôù chæ ñoïc (ROM) Luaän vaên toát nghieäp Trang 4 GVHD Nguyeãn Vieät Huøng Chöông trình con kieåm tra phím aán Khoâng coù phím aán RET IN _HEX #50 (R3) #50 (R3) Call: getkey C= 0 S Ñ R3 - 1 Coù phím aán Caát ACC R3= 0 Ñ Call: getkey C = 1 S S R3 - 1 R3= 0 Ñ Laáy ACC

Các file đính kèm theo tài liệu này:

  • pdfLuận văn tốt nghiệp đếm sản phẩm sử dụng 89c51.pdf