làm quen với ic vi điều khiển - CÂU LÊNH ASM

Embed Size (px)

Citation preview

lm quen v i ic vi i u khi n, h AT89C51, ic lm vi c theo cu l nh.

Cho Bn, Ti chi in t t nm 12 tui, lc trong nh mi c ci radio n 5 bng vi dy Anten cn ngoi tri di hai ba chc mt, ri khi ln ln lm th in t th lc l thi k sa cha TV n, Radio 6 transistor, ri TV transistor en trng, ri mu, ri TV IC, ri u my, ri ng ghi hnh, ri in thoi di ng, ri computer Desktop, ri Laptop.... C theo s tin trin phi m ca mn in t m bay cho n tn by gi. By gi nhn li ngnh in t khc rt xa qu xa so vi bn nm chc nm trc. Th in t by gi phi lm quen vi nhiu thit b cao siu hn, phc tp hn, nhu cu dng my mc in t by gi nhiu hn thu trc rt nhiu. Mt s th in t "t pht " gp ti cho bit h hiu rt m m v loi ic lp trnh, mt ng dng i vi h l rt hay, rt hp dn m sao kh hiu qu, h ni vi ti thy ngi ta lm m pht ham. Nhiu bng hu hi ti c cch no "ct ngha" ti ny cho d hiu hn khng? nhiu ln ti ha vi lng l s tm ra phng cch trnh by loi ic vi iu khin lm vic vi cu lnh sao cho tht bnh dn d hiu v mong n s ph cp n nhiu Bn th in t vn thnh ngh t qua trng lp. Hm nay ti s li th ni

na v ti ny xem c d hiu hn khng? Mong bi vit s lm Bn hi lng.

IC vi iu khin l g?Trc ht hy lm quen vi khi nim iu khin trong ngnh in t. iu khin l dng mc p cao hay thp ng m mt thit b. Bn xem th d sau:

Trong hnh ny, Bn thy khi chn B ca transistor Q1 cho t mc volt thp, th transistor trng thi ngng dn v khng c dng cp cho Led. Led s tt.

Trong hnh ny, Bn thy khi chn B ca transistor Q1 cho t mc volt cao th transistor trng thi bo ha v c dng cp cho Led. Led s sng. Vi hnh ng chng ta thy r hn tc nhn iu khin, tc bit 0 hay bit 1 trn chn B, lm Led lc tt lc sng. Bn xem hnh.

Qua hai hnh ny c th thy, chng ta c th dng mc volt cao thp tt m mt thit b, y l tt m Led. Chng ta tm chp nhn nh ngha sau: * Mc volt thp l bit 0. * Mc volt cao l bit 1. Vy c th ni cho Led sng, chng ta dng bit 1 v lm cho Led tt chng ta dng bit 0. Trong tc ng iu khin ng m, chng ta c th ng m mt Relay, ng m in cho mt motor DC. Bn xem hnh:

Trong hnh ny, trn chn C ca transistor Q1, chng ta thy c: * Led chiu sng. * Relay 12V vi tip im l kim K1. * Motor DC 12V Vy nu t bit 1 trn chn B cc thit b trn chn C ca Q1 s c cp dng v nu dng bit 0 trn chn B th cc thit b trn chn C s b ct dng. Qua cc th d trn, chng ta thy nu c mt linh kin in t c th xut ra mc volt cao hay mc volt thp theo cu lnh do chng ta son ra th lc chng ta c th iu khin cc thit b bng cu lnh. IC vi iu khin c cc cng (port), cc chn ca cng c th xut nhp mc p cao hay thp ty theo cc cu lnh do chng ta son ra, do nu dng ic vi iu khin chng ta s c th iu khin nhiu thit b theo cu lnh.

Hnh v sau y cho thy 4 cng ca ic vi iu khin AT89C51.

Bn bit mc volt trn cc chn ca mi cng Bn u c th chn nh mc volt cao hay mc volt thp bng cu lnh. Lnh t chn ln mc volt cao l setb (set bit). Lnh t chn xung mc volt thp l clr (Clear bit). Th d: Bn mun chn p1.0 (chn s 1) ln mc volt cao, Bn g cu lnh nh sau: setb p1.0

Bn mun chn p1.1 (chn s 2) xung mc volt thp. Bn g cu lnh nh sau: clr p1.1 Qua phn trnh by trn, ti ngh Bn hiu iu khin cc thit b bng cu lnh l g? v n lm vic ra sao? Hy xem hnh sau:

Trong mch, R1 (4.7K) l in tr hn dng chn B v diode D2 dng dp in p nghch, xut hin mi khi relay b ct dng. Hnh v cho Bn thy chng ta dng cu lnh tt m Q1 v dng relay 12V vi tip im l kim K1 ng m cc thit b volt cao khc (nh motor cng nghip, my bm...) theo cu lnh. Mt lnh khc, lnh mov (move) c th cng mt lc xc nh trng thi bit cho 8 chn ca mt cng. Th d: Cch dng lnh move qua cc hnh v nh sau:

Mun c dng cp cho Led Bn phi cho chn ni vi Led xung mc volt thp vi bit 0. V mun tt Led Bn dng bit 1. Vy vi cu lnh: mov p3, #01010011b Bn nhn vo hnh s thy cc Led ng vi chn c mc volt thp pht sng.

tt ht 8 Led trn p3. Bn dng cu lnh: mov p3, #11111111b

8 Led trn p3 sng ht. Bn dng cu lnh: mov p3, #00000000b C th dng nhiu cng iu khin cc Led trn bng Led ma trn. Bn xem hnh:

Hnh cho thy mun Led D1 sng, Bn phi dng cu lnh: clr p3.1 ; Lnh ny t chn p3.1 xung mc volt thp v lm transistor Q1 bo ha, cng lc Bn dng cu lnh: setb p1.1 ; Lnh ny t chn p1.1 ln mc volt cao v lm transistor Q3 bo ha, nh vy s c dng cp cho Led D1. Led D1 s pht sng, trong khi cc Led cn li khng iu kin sng. Bng cch dng cc cu

lnh thch hp, Bn c th to ra cc con ch v c hnh nh hin trn bng n ma trn Led 8x8, nh hnh sau:

Hnh trn cho thy bng n Led ma trn 8x8 dng lm bng quang bo, vi ic vi iu khin AT89C51 d c 4 cng nn Bn c th dng n iu khin trc tip 3 ma trn 8x8 v lm c bng n quang bo n gin. Chng ta s c mt bi khc chuyn ni v vn ny. Ngoi ra Bn c th dng lnh nhy (c iu kin hay khng iu kin) theo di cc trng thi bit trn cc chn ca cc cng. Nh th d sau:

Trong hnh, dng nt nhn BP, chng ta s dng cu lnh nhy nhy theo iu kin bit 1 hay bit 0 trn chn p0.0. Bn thy bnh thng vi in tr treo p R1 (10K) v nt nhn trng thi h (cha nhn xung), chn p0.0 s mc p cao, vy vi cu lnh (jump no bit): jnb p0.0, $ ; Cu lnh ny c ngha l nu chn p0.0 mc p thp th dng li y v ch n khi n chuyn qua bit 1. Nu chn p0.0 mc p cao tc bit 1 th cu lnh ny khng c tc dng. Nhng nu Bn nhn nt BP xung th sao? Lc chn p0.0 s mc p thp (tc bit 0), lc vi cu lnh nhy: (jnb p0.0, $) chng trnh s dng li ch cho n lc Bn b phm, khi Bn b phm n s xung chp hnh cu lnh tip theo, l: jmp chtrinh_1 ;

y l lnh nhy khng iu kin, n s nhy ngay n chng trnh con c tn nhn l chtr_1 (vit tt ca chng trnh_1) v chp hnh chng trnh con ny. Bn cng c th dng ic vi iu khin kt hp vi loi cm bin (sensor, nh cm bit quang, cm bin nhit, cm bin mc m...) to ra cc thit b iu khin t ng theo cc tc nhn khng thuc in. Mt th d, Bn xem hnh trn: Chng ta dng mt quang tr (SCd) d sng. Bn bit, khi tri ti, ni tr ca quang tr rt ln, vy transistor Q1 s trng thi bo ha, n t chn p0.7 mc volt thp (tc bit 0), vi cu lnh nhy theo iu kin bit vit nh sau: jnb p0.7, $ ; th chng trnh s dng li cu lnh ny. V sao? V lc ny chn p0.7 ang trng thi bit 0.Nu tri sng, ni tr ca quang tr s nh v n s lm ngng dn transistor Q1, vy lc ny chn p0.7 s ln mc volt cao (bit 1), chng trnh s thot ra cu lnh jnb p0.7, $ v xung thc hin cu lnh k bn di. Do cu lnh tip theo ca Bn vit l: jmp b_sng ; Nn chng trnh s nhy khng iu kin n chng trnh con c tn nhn l b_sang (vit tt ca ch bo sng). Bn cng c th dng lnh nhy theo php so snh trng thi ca 8 bit trn cng to ra cc chng trnh iu khin hp dn hn. Bn xem hnh minh ha sau:

Trong hnh ny, chng ta dng lnh nhy c iu kin v dng php so snh xc nh ni n. Bn thy vi cu lnh: cjne p2, #01011011b, chtr_1 jmp t_tuc Trng thi 8 bit ny khng ging vi trng thi 8 bit hin ang c trn cng 2 (8 bit hin c trn cng 2 l 11011010b), vy n s nhy n chp hnh chng trnh con c tn nhn l chtr_1 (vit tt ca ch chng trnh_1). Nu 8 bit dng trong php so snh ging nhau th sao? Chng trnh s xung dng lnh bn di v s nhy n chp hnh chng trnh con c tn nhn l t_tuc (vit tt ca ch tip_tc)

Qua phn trnh by trn, Bn thy ic AT89C51 c 4 cng 4x8 (32 chn), trng thi mc volt cao hay thp trn cc chn ny c th iu khin theo cc cu lnh. Vy vn ca chng ta l phi hiu r cc cu lnh dng xc nh trng thi trn cc chn ca 4 cng sao cho ph hp vi mun ca mnh. V ic AT89C51 l mt trong cc ic vi iu khin rt n gin, hin nay rt ph dng.

Th no l ic lm vic theo cc cu lnh?Qua phn trnh by trn, Bn thy vi ic AT89C51, trng thi mc volt cao hay thp trn cc chn ca 4 cng hon ton chp hnh theo cc cu lnh do Bn vit ra. Hin nay c rt nhiu ic thuc loi ny, ngi ta ni l cc ic lp trnh, hay l loi ic vi iu khin hay cao hn l cc ic vi x l. Vi cc ic logic TTL h 74xxx hay h CMOS 40xx th cc cng nng c nh, cc ic ny khng lm vic theo cc cu lnh nn tnh linh ng khng cao v thng c cu trc phn cng rt phc tp, hin nay n thng ch dng lm cc linh kin ph tr cho cc ic vi iu khin. C th ni, khi c mt ic vi iu khin, Bn cn xc nh cc chn c hu ca n, cc chn ny dng vn hnh ic v cc chn ca cc cng dng chp hnh cc cu lnh. Tt c cc mch in chu iu khin u thng qua cc chn ca cc cng. Theo trc pht trin, trc ht chng ta c nhm ic vi iu khin h MSC-51 nh nhm AT89C51, pht trin hn l nhm PIC, ri AVR v ri ARM..., nhng vi cc Bn mi lm quen vi loi ic lp trnh, Bn nn khi u t cc ic vi iu khin thuc nhm MSC-51, nh AT89C51...V cc ic ny rt trc quan, d hc d dng, d nhin d kim c tin hn. dng ic AT89C51 (40 chn) cho cng vic iu khin ca Bn, Bn ch cn rp mt mch in c bn nh hnh v sau:

Gi i thch m ch i n : Hnh v cho thy, vi ic vi iu khin lp trnh, lm vic theo cu lnh, n dng s linh kin ngoi vi rt t. y trn chn 18, 19 gn thch anh nh tn, nu dng thch anh c tn s 12MHz th chu k thc hin 1 lnh s l 1us. Chn s 9 cho ni vi mch reset, n xc lp trng thi khi u khi chn 9 mc p cao. Cp ngun vi chn 20 cho ni masse v chn 40 cho ni vi mc ngun +5V. y c 2 ch : * Trn cng p0 Bn nh dng 8 in tr treo p. * Trn chn 31 cho ni vo mc p 5V xc nhn l ch chy chng trnh ca b nh tron. dng ic AT89C2051 (20 chn) cho cng vic iu khin ca Bn, Bn ch cn rp mt mch in c bn nh hnh v sau:

Gi i thch m ch i n : Hnh v cho thy, vi ic vi iu khin lp trnh, lm vic theo cu lnh, n dng s linh kin ngoi vi rt t. y trn chn 4, 5 gn thch anh nh tn, nu dng thch anh c tn s 12MHz th chu k thc hin 1 lnh s l 1us. Chn s 1 cho ni vi mch reset, n xc lp trng thi khi u khi chn 1 mc p cao. Cp ngun vi chn 10 cho ni masse v chn 20 cho ni vi mc ngun +5V. y c 1 ch : * Trn cng p3 thiu chn p3.6.

iu Bn cn nh l mi thit b iu khin u s c cho kt ni vi cc chn ca cc cng ca ic vi iu khin v Bn iu khin cc thit b ny bng cc cu lnh do Bn vit ra. Mi vic ch c th.Ch : Nu nh mch in AT89C51 m Bn rp khng hot ng nh , Bn hy o th tn hiu xung nhp. Cch o: ly my o volt AC, nh cm l OUT, trn l cm ny c t cch ly DC, ri o volt AC trn chn 18, nu kim khng ln l ic c vn (thay thch anh hay thay th ic khc). Kim ln l c xung nhp ( Bn xem hnh).

Cu lnh c vit nh th no?Cu lnh l cc cu ch d hiu d nh, nhng phi vit ng c php. Mt file .asm thng c dng thc nh sau: org 0000h (g cc cu lnh, mi dng ch g mt cu lnh...) end Trn mi dng Bn ch g c mt cu lnh duy nht m thi. Khi chng trnh chy xong mt cu lnh s xung dng thc hin cu lnh k tip v c nh vy cho n ht... Nu n gp lnh nhy th s nhy n tn nhn chy cc chng trnh con. M t th d : Bn g cc cu lnh 8 Led trn cng p2 sng lan ln ri tt dn xung v qui trnh trn c cho lp li.

Chng trnh ngun s g nh sau: org 0000h start: mov p2, #11111111b call delay mov p2, #11111110b call delay mov p2, #11111100b call delay mov p2, #11111000b call delay mov p2, #11110000b call delay mov p2, #11100000b call delay mov p2, #11000000b call delay

mov p2, #10000000b call delay mov p2, #00000000b call delay mov p2, #10000000b call delay mov p2, #11000000b call delay mov p2, #11100000b call delay mov p2, #11110000b call delay mov p2, #11111000b call delay mov p2, #11111100b call delay mov p2, #11111110b call delay jmp start delay: mov r7, #20 v6: mov r6, #50 v5: mov r5, #200 djnz r5, $ djnz r6, v5 djnz r7, v6 ret end Sau khi dch ra m 16, chng ta c file .hex vi ni dung nh sau: :1000000075A0FF12006275A0FE12006275A0FC12BE :10001000006275A0F812006275A0F012006275A06F :10002000E012006275A0C012006275A0801200622A :1000300075A00012006275A08012006275A0C01247 :10004000006275A0E012006275A0F012006275A057 :10005000F812006275A0FC12006275A0FE12006228 :0F006000809E7F147E327DC8DDFEDEFADFF62241 :00000001FF

Bn cho np cc m lnh dng 16 ny vo b nh EEP-ROM ca ic vi iu khin AT89C51, v cp in cho mch, Bn thy g? 8 Led trn cng p2 s c bin i nh hnh sau:

Gii thch tng cu lnh trong file ngun trn: org 0000h ; Khi u t thanh ghi reset. start: ; tn nhn c dng cho lnh nhy. mov p2, #11111111b ; t 8 bit ca p2 u mc volt cao, nn 8 Led u tt. call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11111110b ; cho Led trn chn p2.0 sng, (n sng vi bit 0, tc mc volt thp) call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11111100b ; cho Led trn chn p2.0, p2.1 sng call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11111000b ; cho Led trn chn p2.0, p2.1, p2.2 sng call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11110000b ; cho Led trn chn p2.0, p2.1, p2.2, p2.3 sng call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11100000b ; cho Led trn chn p2.0, p2.1, p2.2 , p2.3, p2.4 sng call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11000000b ; cho Led trn chn p2.0, p2.1, p2.2 , p2.3, p2.4, p2.5 sng call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #10000000b ; cho Led trn chn p2.0, p2.1, p2.2 , p2.3, p2.4, p2.5, p2.6 sng

call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #00000000b ; cho 8 Led sng ht. call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #10000000b ; cho Led p2.7 tt (tt vi bit 1, tc mc volt cao) call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11000000b ; cho Led p2.7, p2,6 tt call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11100000b ; cho Led p2.7, p2,6, p2.5 tt call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11110000b ; cho Led p2.7, p2,6, p2.5, p2.4 tt call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11111000b ; cho Led p2.7, p2,6, p2.5, p2.4, p2.3 tt call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11111100b ; cho Led p2.7, p2,6, p2.5, p2.4, p2.3, p2.2 tt call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. mov p2, #11111110b cho Led p2.7, p2,6, p2.5, p2.4, p2.3, p2.2, p2.1 tt call delay ; cho gi chng trnh con dng lm tr, c tn nhn l delay. jmp start ; nhy khng iu kin v tn nhn start, tc cho bt u li. delay: ; tn nhn dng cho lnh nhy, y chng ta dng lnh call. mov r7, #20 ; np tr thp phn 20 cho thanh ghi r7. v6: mov r6, #50 ; np tr thp phn 50 cho thanh ghi r6. v5: mov r5, #200 ; np tr thp phn 200 cho thanh ghi r5. djnz r5, $ ; cho tr c trong r5, gim theo bc -1, ch cho n khi bng 0.

djnz r6, v5 ; cho tr trong r6 gim theo bc -1, nu cha bng 0, nhy n v5. djnz r7, v6 ; cho tr trong r7 gim theo bc -1, nu cha bng 0, nhy n v6. ret ; quay li thc hin dng lnh sau lnh gi call. end ; dng chng trnh bin dch ti y. Ti ngh nu chu kh c n y chc Bn cng hiu c phn no cch dng ic vi iu khin AT89C51 v Bn s hi vi AT89C51, chng ta c cc cu lnh no? ngh ca cc cu lnh ra sao? v cch dng ca tng cu lnh? Sau y chng ta s ln lt tm hiu cc cu lnh thng dng trong nhm 254 cu lnh ca AT89C51. Cc cu lnh chia ra lm 5 nhm.

Nhm 1: Cc cu lnh lin quan n s hc:

NHm 2: Cc cu lnh lin quan n logic:

Nhm 3: Cc cu lnh lin quan n chuyn d liu:

Nhm 4: Cc cu lnh lin quan n bin Bun (Boolean):

Nhm 5: Cc cu lnh lin quan n nhy:

Trn y l cc cu lnh c dng vit cc chng trnh ngun cho ic vi iu khin AT89C51. Mi cu lnh tng ng vi m Code 16 ghi u dng (khi np vo ic lun s dng m nh phn). Bn hy dng cc cu lnh ny vit chng trnh theo tng ring ca Bn, cho i ra m nh phn v dng hp np, np cc dng m ny vo nm trong b nh EEP-ROM ca ic vi iu khin AT89C51 l xong. Gi i thch b ng m t th d : org 0000h mov p1, #11110000b mov r7, #100 mov a, #0ffh mov a, r7 end Sau khi cho dch on chng trnh trn ra m Code 16, Bn c kt qu nh sau: :080000007590F07F6474FFEFBE :00000001FF Nhn vo cc on m (vit theo h 16) ny Bn s thy: :08000000---7590F0---7F64---74FF---EFBE :00000001FF

:08000000 (m a ch) 7590F0 c hiu nh sau: (mov data addr, #data, cn 3 byte), Con s 75 l lnh mov (tr a ch), s 90h l tr a ch ca cng p1 v s F0 l tr ca 11110000b 7F64 c hiu nh sau: (mov r7, #data, cn 2 byte) Con s 7F l lnh mov r7, #data, con s 64h l tr h 16 ca con s 100 (tr thp phn). 74FF c hiu nh sau: (mov a, #data, cn 2 byte) Con s 74 l lnh mov a, #data, con s FFh l tr hng. EFBE c hiu nh sau: (mov a, r7, ch cn 1 byte) Con s EFBE l m ca lnh: mov a, r7. :00000001FF on kt thc. Qua th d trn Bn thy mi cu lnh n c m Code ring ca n, trnh bin dch s dch cc cu lnh ny ra dng m tng ng. Ni chung Bn cng khng cn n cc m Code ca cu lnh lm g, Bn hy hc cch dng cc cu lnh trn vit ra cc chng trnh ngun cho ng vi tng ca Bn l c. Cch vit cc cu lnh rt n gin, c theo ng c php m g, mi lnh trn mt dng, cc ch thch nu c phi t sau du ";". Vi tr c th dng s h thp lc phn (h m 16), hay h thp phn, hay h nh phn u c. Ghi nhn ca chng ti: Bn khng cn bit ht 254 lnh, nhng vi cc lnh thng dng th phi hiu cho tht r, c gng vit cc chng trnh ngun t tn hao b nh, trnh t chng trnh nn phn minh, d c, d thm bt, d sa. Vit trc cc on chng trnh con thng dng khi cn th ch vic chn v ct dn vo chng trnh ang son, lm vy s t tn thi gian v trnh c li. Vit cc chng trnh ngun, cng vic nhn ging nh chi c tng, ai cng ch c by nhiu lnh m thi, nhng c ngi cao c gii quyt vn theo cch khc, ngi thp c th gii quyt theo cch khc. Thi gian chi nhiu, lm nhiu Bn cng s tr thnh cao th lp trnh thi.

Mun lm thc hnh vi cc ic vi iu khin, cn g? l cu hi nhiu Bn thng hi ti. Theo ti, Bn cn c cc th sau y: (1) Mt hp np file m lnh (file c h .hex) vo b nh ca cc ic vi iu khin. (2) Cn bit dng mt my tnh v nn tm mt phn mm son tho g chng trnh ngun v n lm c cng vic bin dch ra file m (file c h .hex). (3) Mt bo thc hnh c bn vi ic vi iu khin AT89C51 v nhiu mch in ng dng ngoi vi.

Chng ta s th ni n cc vn ny Lm thc hnh vi b Kit lp trnh a nngGii thiu b Kit thc hnh vi IC AT89C51. Hnh chp ton phn cho thy: Mun t hc lp trnh cho IC vi iu khin AT89C51, tt nht Bn va tm hiu cu lnh va lm thc hnh. Nh vy, Bn hy c trong tay bo thc hnh a nng ny v mt hp np chng trnh, dng np file .hex vo b nh EEP-ROM trong ic vi iu khin AT89C51. Trnh t lm thc hnh thng nh sau: (1) Bn to cc kt ni gia ic AT89C51 v cc mch in chung quanh. (2) Pht trin cc tng v c th ha bng cch vit ra file chng trnh ngun, vi h .asm. (3) Dch file ngun c h .asm ra file m Code c h l .hex (4) Gn ic AT89C51 vo bo thc hnh, m ngun cp in kim tra.

Bn xem hnh mt bo thc hnh ic AT89C51 hin c bn ca hng Phc Lan Shop.

Hnh chp v s mch in cho thy: IC vi iu khin AT89C51 cho gn trn mt chn cm 40 pin. Chung quanh IC trn 4 cng l cc port 0, port 1, port 2, port 3, mi port u c dng thm mt IC logic 74245 dng lm tng khuch i tn hiu trn cc ng xut nhp ca cc cng. Mt kha in tt m ngun dng cp in cho mch, mch chy vi ng ngun 5V. Mt kha SW (DIP 4: 1, 2, 3, 4) dng nh hng cho tn hiu i vo hoc i ra qua cc IC 74245. Bo c 3 nt nhn, mt nt Reset (Key 3), 2 nt nhn t trn chn 15 (Key 1, P3.2/T1) v chn 14 (Key 2, P3.3/T0). Trn mch cn dng mt t in 0.047F v in tr 100K v nt nhn

Reset dng xc lp li trng thi khi u cho IC vi iu khin AT89C51. S mch in b phn vi iu khin trung ng vi IC AT89C51 nh hnh sau: Mch dng mt thch anh 12MHz (gn trn chn 18, chn 19) nh tn cho mch dao ng to xung nhp, do trong ic AT89C51 c mch chia tn 1/12, vy trong ic AT89C51 c xung nhp chnh c tn s 1MHz (hay c chu k lnh l 1us). Trong mch dng 2 t in nh 33pF b nhit n tn. Trong mch cn dng 3 thanh in tr RN6, RN5, RN4 treo (Pull up) cho cc cng p3, p2, p0 ln mc p cao. Tr s cc in tr trong thanh u ly 10K. Ngoi ra trn mch cn cho gn nhiu chn cm dng 8 bit dng to kt ni gia b phn iu khin trung ng vi cc mch in ngoi vi khc.Nguyn l vn hnh ca mch in nh sau: Ngay khi Bn nhn nt m in, Led ch th trong mch s pht sng, lc ny mch c cp in v bt u cho chy cc chng trnh c trong b nh EEP-ROM. Bn c th kim tra tc ng ca cc chng trnh thng qua cc kt ni vi cc dng mch Test (cng c trn bo thc hnh) thng qua cc cng, p0, p1, p2, p3 ca IC vi iu khin AT89C51.

b phn ny, Bn lm cc php o kim tra nh sau:

* Dng Volt k DC o kim tra mc p +5V trn cc chn 40 ca U8 (AT89C51), trn chn 20 ca cc IC00 (74245), IC11 (74245), IC33 (74245), IC22 (74245).* Dng Volt k AC ( nhy) KIM TRA TN HIU DNG SIN TRN CHN 18, 19 CA U8 (AT89C51), NU THY KIM LN L MCH DAO NG C CHY.

* Set cc kha in S4 chn hng i ca cc tn hiu qua cc IC logic chn ng 74245. Nu cho chn 1 ca cc IC 74245 ni masse th tn hiu s i ra (t IC AT89C51 n cc mch bn ngoi) v nu cho chn 1 ln mc p cao th hng i ca tn hiu s i t ngoi vo IC AT8951.

Cc mch in thc hnh:

(1) Thc hnh vi 32 Led:

Hnh chp cho thy: Trn Kit thc hnh IC vi iu khin AT89C51 c mt dy 32 Led, chia ra lm 4 nhm, mi nhm 8 Led. Tt c cc Led u c chn cathode cho ni masse v mi Led u c dng in tr hn dng 100 ohm. Vy cc Led ny sng vi mc p cao. S mch in cho thy, Bn c th dng b dy 8 ng kt ni cc dy Led vi cc cng xut nhp trn IC vi iu khin AT89C51. Vic dng Led theo di trng thi mc p cao (ng vi bit 1) v mc volt thp (ng vi bit 0) trn cc port ca IC AT89C51 s gip cho chng ta nhanh chng bit c hot ng ca cc chng trnh np vo EEP-ROM ca AT89C51. Tn t cho cc nhm 8 Led l JP4, JP7, JP2 v JP3. Bn hy dng b dy cho ni cc nhm Led ny vo cc port

ca AT89C51 v cho chy th cc chng trnh vit v np vo IC AT89C51. Hy kim tra hot ng ca chng trnh thng qua s sng tt ca cc Led.

(2) Thc hnh vi cc n s dng Led 7 on.

Bn xem hnh v s mch in:Hnh chp cho thy trn bo Kit thc hnh c gn 8 b Led dng lm cc n hin s theo dng m 7 on (cc on nh du a, b, c, d, e, f, g v dot).

y n s 7 on dng loi Led c cc anode chung. lm hin cc con s trong dy 8 n sny, mch dng tnh tt m ca cc transistor pnp (2SA564). Cc chn a, b, c, d, e, f, dot, l cc chn cathode ca cc Led trong n s 7 on, cc chn ny cho ni vo mt trm ni 8 bit vi cc in tr hn dng. y c 2 b kt ni JP5 (dng ly tn hiu gii m con s) v b kt ni JP16 (dng cp m qut cp cho chn B ca 8 transistor 2SA1015). Trong mch, chn chung anode ( chn Common) ca cc n s 7 on c cho ni vo chn C ca cc transistor pnp 2SA564, trn chn B ca cc transistor ny c in tr hn dng 10K cho ni vo b chn cm JP16. T b chn cm 8 dy ny Bn s cho kt ni vi mt cng

ca IC vi iu khin AT89C51 nhn xung qut ( mi ln ch cho hin mt con s). Cc chn cp dng cho cc cathode (a, b, c, d, e, f, dot) cho ni vi b chn cm JP5 qua cc in tr hn dng 220 ohm. B chn cm ny cng s cho ni vi mt cng (ty chn) trn IC vi iu khin AT89C51 cp dng cho cc Led trong cc n s pht sng.

(3) Thc hnh vi Led ma trn 8x8.

Bn xem hnh v s mch in: y dng bng ma trn Led 8x8 (trn bng Led c 64 Led v 64 Led xanh) dng cho hin ra cc hnh nh v con ch v s. Vy trn bng ma trn ny Bn c th to ra cc hnh nh ty bng cc im sng tt ca cc Led (Led cho hnh mu , Led xanh cho hnh mu xanh v phi hp Led , Led xanh s c hnh mu vng). tng n nh v sng, trn mch dng thm cc ic khuch i ULN2803A. Trong ic ULN2803 l 8 mch khuch i vi cc cp transistor rp theo kiu darlington, nn ng vo c tr khng rt ln v khng gy nng ti ln cc ng ra trn cc chn ca cc cng, mch khuch i cn dng cc diode hn bin v diode ghim p tng an ton.

Nguyn l lm vic ca bng n ma trn 8x8 nh sau:

Khi chn s 24 cho xung mc p thp th lc ny cathode ca 8 Led ct 1 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led ct 1.Khi chn s 23 cho xung mc p thp th lc ny cathode ca 8 Led xanh ct 1 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led xanh ct 1.

Khi chn s 22 cho xung mc p thp th lc ny cathode ca 8 Led ct 2 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led ct 2.Khi chn s 20 cho xung mc p thp th lc ny cathode ca 8 Led xanh ct 2 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led xanh ct 2.

Khi chn s 18 cho xung mc p thp th lc ny cathode ca 8 Led ct 3 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led ct 3.Khi chn s 17 cho xung mc p thp th lc ny cathode ca 8 Led xanh ct 3 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led xanh ct 3.

Khi chn s 16 cho xung mc p thp th lc ny cathode ca 8 Led ct 4 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc inh trng thi sng tt ca 8 Led ct 4.Khi chn s 15 cho xung mc p thp th lc ny cathode ca 8 Led xanh ct 4 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led xanh ct 4.

Khi chn s 1 cho xung mc p thp th lc ny cathode ca 8 Led ct 5 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led ct 5. Khi chn s 2 cho xung mc p thp th lc ny cathode ca 8 Led xanh ct 5 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led xanh ct 5. Khi chn s 4 cho xung mc p thp th lc ny cathode ca 8 Led ct 6 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led ct 6. Khi chn s 5 cho xung mc p thp th lc ny cathode ca 8 Led xanh ct 6 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led xanh ct 6.

Khi chn s 7 cho xung mc p thp th lc ny cathode ca 8 Led ct 7 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led ct 7. Khi chn s 8 cho xung mc p thp th lc ny cathode ca 8 Led xanh ct 7 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led xanh ct 7. Khi chn s 9 cho xung mc p thp th lc ny cathode ca 8 Led ct 8 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led ct 8. Khi chn s 10 cho xung mc p thp th lc ny cathode ca 8 Led xanh ct 8 s cho ni masse, lc ny 8 bit cho ra trn 8 chn 22, 19, 16, 13, 3, 6, 9, 12 s xc nh trng thi sng tt ca 8 Led xanh ct 8.

(4) Thc hnh vi bn phm ma trn 4x4.

Trn bo test t 16 phm nhn dng ma trn 4x4, nh vy mch dng 8 dy. trong c 4 dy cho treo ln mc p cao vi mt thanh in tr. S mch in nh hnh v: mch in cho thy, trn ma trn 4x4 c 16 phm nhn. y Bn c th cho b kt ni J27 ni vo port 1. Bn s vit mt chng trnh vn hnh 16 phm ny, Bn c th qui nh mt phm s cho chy mt chng trnh chn nh trc. Bn xem s mch in: Bn dng cc ng trn cc chn p1.0, p1.1, p1.2, p1.3 lm cc hng (row). Trong lp trnh bn phm, cc hng cho l ng vo, vy bnh thng cho mc 0. Dng cc chn p1.4, p1.5, p1.6 v p1.7 lm cc ct (column). Trong lp trnh bn phm, cc ct cho l ng ra, vy bnh thng cho mc 1. M qut bn phm s cho tm bit 0 trn cc ct, chng ta bit, khi c mt phm nhn xung th lc ny s xut hin bit 0 trn cc ct.

Chng trnh s chuyn qua cho qut tm phm nhn, sau nhy n chng trnh con ca phm v cho chy chng trnh ny.

(5) Thc hnh vi khi bin i A/D.

Chng ta bit, tn hiu trong th gii t nhin thng dng analog (tn hiu analog ly mc volt ch trng thi khc nhau ca tn hiu), nh nhit , sc gi, m thanhTrong khi , cc ic vi iu khin (cng nh cc ic vi x l) ch lm vic vi tn hiu dng s (digital, tn hiu digital cn gi l tn hiu bit, n ly mc p cao thp ch trng thi khc nhau

ca tn hiu). Bi thc hnh ny dng chuyn i tn hiu dng analog (c trong th gii t nhin) ra dng digital (c dng trong cc mch in my tnh). Mch ADC dng ic ADC0809. Bn xem s mch in: IC ADC0809 c 8 ng vo trn cc chn in0, in1, in2, in3, in4, in5, in6, in7. Vic xc nh chn vo s ty theo cch t bit trn cc chn a0, a1, a2. Th d: vi a0=0, a1=0 v a2=0, Bn chn ng vo l chn in0 (chn 26). Vic ly mu chuyn mc p dng analog ng vo ra dng bit cho ra trn cc chn d0, d1, d2, d3, d4, d5, d6, d7 (8 bit). Xung ly mu a vo trn chn 10, n c to ra vi mch dao ng 7414 (IC05F), tn s xung ly theo tr s R70 (1K) v t C4 (102), IC05E lm chc nng khuch i trigger. mc p chun dng xc nh phn gii s ty theo in p DC a vo trn chn 12 (+Reference) v trn chn 16 (-Reference). Chn 22 (ALE, address latch enable) dng cht d liu trong thanh ghi. Chn 6 (Start) cho bt u ly mu. Chn 7 (EOC, end of conversion), tn hiu bo kt thc qui trnh chuyn i. Chn 9 (OE, output enable), cho xut d liu 8 bit ra.

(6) Thc hnh vi khi bin i D/A.

Chng ta bit cc tn hiu lm vic trong cc ic vi iu khin, vi x l u dng bit, ngha l tn hiu ch xc lp theo mc p cao hay thp, tn hiu ny c gi l tn hiu dng digital. Trong khi , trong th gii tht, chng ta thng lm vic vi cc tn hiu dng analog. Do vy, mun s dng c cc tn hiu c trong cc my tnh, chng ta phi dng mch bin i tn hiu, i dng digital ra dng analog. y, mch thc hnh gi l mch Analog output. Bn xem s mch in: Mch dng ic DAC0808. Tn hiu vo dng digital trn cc chn a1, a2, a3, a4, a5, a6, a7, a8. Tn hiu ny sau khi chuyn xong s cho ra trn hai ng. ng 4 (IOUT) v ng 2 (IOUT o). Tn hiu ra trn chn 4 cho qua mt tng khuch i op-amp vi ic LM741, sau cng tn hiu dng analog s cho ra trn chn 6 ca LM741.

Mc p chun (Voltage reference) a vo trn chn 14 (Vr+) v chn 15 (Vr-). Chn s 16 mc t b 0.1f. Loi mch ny cn ngun nui hai du. V+ trn chn 13 v V- trn chn 3, Bn cho cp in"5V trn chn cm J32 v J31. Vi ic LM741, Bn cp ngun "5V trn chn JP29.

(7) Thc hnh vi khi khuch i m vi ULN2803A.

Trn bo thc hnh c trang b mch khuch i m dng tng cng sut tn hiu kt ni. S mch in nh hnh v (Bn xem hnh chp mch khuch i m trn bo thc hnh).IC ULN2803A dng khuch i tn hiu ra cho cc port ca ic vi iu khin AT89c51.

S ng hiu ca mt tng khuch i trong ic ULN2803Acho thy: mch dng 2 transistor npn, ghp dng phc hp (cn gi l ghp darlington). Tn hiu ly ra trn chn C ca Q2, v chn C h nn ng ra ca tng khuch i ny c th cho kt hp vi cc loi ti Volt cao, nh relay 12V, motor DC12Vngi ta dng cc diode zener ghim mc p ng vo, ng ra. Cc in tr trn chn B-E c cng dng lm tng n nh nhit. in tr 2.7K dng hn dng cho chn B, diode

ni vo ng ngun Vcc c tc dng hn bin, gi cho mc p trn chn C khng ln cao hn mc p ca ngun.

Gii thiu mt phn mm son tho g chng trnh ngun v bin dch file .asm ra file m (file c h .hex).Sau khi c bo thc hnh (Xem phn trnh by trn), by gi Bn phi lm quen vi mt phn mm dng son cc chng trnh ngun, cc file ny ly h l .asm. y, chng ti gii thiu Bn dng phn mm mim ph MIDE-51. Tiu hnh ca MIDE-51 nh hnh sau.

Khi kch chut trn tiu hnh ny, n m ra mt giao din nh hnh sau:

By gi Bn s g hay dn cc cu lnh vo vng son tho ca n. Ti lm mt th d: Ti s ct mt chng trnh c v cho dn vo MIDE-51 ri cho chp li vi mt tn file ly h l .asm v sau cho dch file ngun ra file m 16 vi h l .hex. Chng ta th son mt chng trnh ngun n gin, lm cng vic tt m 8 Led trn cng p1. Chng trnh ngun s c vit nh sau: org 0000h start: mov p1, #00000000b call delay mov p1, #11111111b

call delay jmp start delay: mov r7, #20 v6: mov r6, #50 v5: mov r5, #200 djnz r5, $ djnz r6, v5 djnz r7, v6 ret end on chng trnh ngun trn c g trong vng son tho ca MIDE-51 v n c chp li vi tn file l thi-du-1.asm

Khi g xong, Bn m ca s Build v chn mc Build (hay lc no cn bin dch th g phm nng F9) chng trnh ngun thi-du-1.asm s c bin dch ra file m Code.

MIDE-51 dch xong v bo khng thy li. Bn xem cu bo phn di "no errors". Lc ny trn th mc ca file thi-du-1.asm c file thi-du-1.hex. chnh l file m Code ca chng trnh ngun trn.

File thi-du-1.hex c ni dung nh sau: :1000000075900012000E7590FF12000E80F27F14A2 :0B0010007E327DC8DDFEDEFADFF62246 :00000001FF Phn tch file m Code thi-du-1.hex, Bn s thy:

:10000000---759000---12000E---7590FF---12000E---80F2 --7F14---A2 :0B001000---7E32---7DC8---DDFE---DEFA---DFF6---22---46 :00000001FF org 0000h start: mov p1, #00000000b call delay mov p1, #11111111b call delay jmp start delay: mov r7, #20 v6: mov r6, #50 v5: mov r5, #200 djnz r5, $ djnz r6, v5 djnz r7, v6 ret end

C m Colde l: 759000 C m Colde l: 12000E C m Colde l: 7590FF C m Colde l: 12000E C m Colde l: 80F2 C m Colde l: 7F14 C m Colde l: 7E32 C m Colde l: 7DC8 C m Colde l: DDFE C m Colde l: DEFA C m Colde l: DFF6 C m Colde l: 22

Nu Bn xem cc cu lnh phn ph lc, Bn s thy phn s ghi m trn chnh l m Code ca cc cu lnh m Bn g trong chng trnh ngun. Cc m Code (dng m 16) ny s c cho i ra dng nh phn v ri s cho np vo b nh EEP-ROM ca ic vi iu khin AT89C51. Lm n y xem nh cng vic hon tt, Bn gn ic AT89C51 vo bo thc hnh th, Bn s thy 8 Led trn cng p1 s nhp nhy (nh hnh).

Dng lnh mov p1, #data, Bn c th iu khin 8 Led trn port 1 sng theo ca Bn. Bn xem tc dng ca lnh move trn cng p1 nh hnh sau:

Dng lnh quay tri: rl a (Rotate Left a), kt qu cho chuyn ra cng p1.

n y, chng ta c th vit cc chng trnh ngun phc tp hn...Phi khng? Vn hp np cc m Code vo b nh EEP-ROM ca cc ic vi iu khin Bn vo c bi: Gi i thi u cch dng h p n p ic vi i u khi n TOP853

Bn mun dng cc cu lnh iu khin cc thit b t ng, cc bng n qung co, hay cc robot...Trc ht Bn hy vit ra cc cu lnh ri cho chuyn i ra dng m v by gi dng hp np TOP853 np cc cu lnh ny vo b nh EEPROM. Sau khi lm xong cc cng vic trn, xem nh Bn c mt ic lun trung thnh vi cc sai bo ca Bn. Thch khng? Hy vo c bi ny bit cch lm nh....

(Click vo y xem)

(Bn n c trong cc bi tip theo, chng ti s trnh by cc ng dng thc t hn vi ic vi iu kin AT89C51)

Chuyn cn di Bn nh vo xem...Ph lc: C php vit 254 cu lnh c lit k ra trong cc bng sau (theo trnh t m Code):