You are on page 1of 18

Vi x l 1

Trong chng trnh hc ngnh Cng ngh K thut in, in t, sinh vin s c hc 6 tn ch v Vi x l, bao gm: 1. Vi x l 1 2. Vi x l 2 3. Thc hnh Vi x l & Vi iu khin Cc hc phn ny c hc sau hc phn K thut s. Khng ch l hc phn c s ngnh, Vi x l & Vi iu khin cn c nhiu ng dng thc t. n mn hc 2, cc cuc thi sng to k thut v Robocon do khoa t chc cng gn lin vi mn hc ny. C th ni, y l cc hc phn rt th v nhng sinh vin cng gp nhiu kh khn vi nhiu khi nim mi. Vi x l 1: Ni dung hc phn Vi x l 1 bao gm 2 phn chnh: - vi x l 80x86 - vi iu khin 8051 Phn u cung cp cho cc em cc kin thc c bn v kin trc h vi x l, cu trc v nguyn tc hot ng ca CPU, t chc b nh v cc thit b ngoi vi, cch m ha lnh, cc ch nh a ch, tp lnh v cch vit chng trnh cho 80x86, ngt v truy nhp trc tip b nh DMA. Tip theo cc em s hc v Vi iu khin h 8051. y l mt h vi iu khin kh ph bin v sinh vin d tip cn. Khi c kin thc v h vi iu khin ny, cc em s d dng hc v cc h vi iu khin khc nh PIC, AVR, v.v. Cc em s c hc v cu trc, cc ch nh a ch, tp lnh, vit chng trnh hp ng cho vi iu khin 8051. Ngt v timer/counter cng c gii thiu cng vi mt s bi tp ng dng. hc tt hc phn ny ngoi ti liu, cc em cn mt s phn mm h tr lp trnh, m phng nh EMU8086, Pinnacle 52. a ch trang ch EMU8086: http://www.emu8086.com/ a ch trang ch Pinnacle 52: http://www.vaultbbs.com/ Cc em cn ci t cc phn mm gii thiu, hc cch s dng chng. Cc ti liu hng dn s dng phn mm thy gi link phn di. Cc em nn lm mt s v d mu bit quy trnh s dng, sau lm cc bi tp, hc cch m phng tng bc chng trnh kim tra so snh gia hiu v kt qu thc t. Mt s vn khi hc phn vi x l 80x86

1. Cch m ha lnh Qua cch m ha lnh cc em s hiu c cch thc mt lnh c vit di dng m nh phn m vi x l c th hiu c. T gip cc em hiu rng tt c lnh v d liu trong h vi x l u tn ti di dng nh phn v ti sao khi c mt chui s nh phn vi x l bit c phi lm g. Cc em khng phi nh xem lnh MUL c m nh phn l bao nhiu m cn hiu mt lnh c xy dng t cc trng no? ngha ca mi trng ra sao? T em c th bit cch m ha mt lnh gi nh bt k. V d, lnh MOV AL, BL c m ha di dng nh phn th no? Tra trong ti liu ta s thy lnh MOV c m ha bi mt trng gm 6 bit. Tip theo chuyn d liu vo thanh ghi AL, vy AL c xc nh bng cc trng no? Chng ta thy c cc trng hng D (D=1 d liu i ti thanh ghi, D=0 d liu i t thanh ghi), trng W (W=0:

ton hng byte, W=1 ton hng word), trng REG gm 3 bit dng xc nh thanh ghi. xc nh thanh ghi BL s cn cc trng MOD v R/M. Tra bng ta s thy hai trng ny kt hp vi nhau to ra ch nh a ch thanh ghi truy nhp n BL. Vi vic xc nh nh vy, cc em s ln lt xc nh c gi tr ca cc trng v bit tng ng t bit c m lnh ca c lnh. Sau khi m ha, cn g lnh vo phn mm, hp dch kim tra m nh phn tng ng ca lnh c ng vi cch tnh ton khng.

2. Hc lnh Vi x l 80x86 c tp lnh rt ln v cc em khng cn thit phi hc tt c cc lnh. iu cc em cn hc lhc cch tra cu v s dng mt lnh bt k. Sau mt qu trnh lm cc bi tp v v d, cc em s t nh mt s lnh hay c s dng. Trc tin cc em cn t chc cc lnh thnh cc nhm lnh cho d hc, v d nhm lnh di chuyn d liu, nhm lnh s hc, nhm lnh logic, nhm lnh r nhnh chng trnh, v.v. Vi mi nhm lnh ny cn lit k mt vi lnh. Vi mi lnh cn tm hiu c php ca lnh bao gm: m lnh, ton hng (c bao nhiu ton hng, c th s dng ch nh a ch no), tc dng ca lnh v nh hng ln cc c th no. Vi mi lnh ti liu gii thch r. Tuy nhin, thc s hiu v vn dng c lnh cc em cn s dng phn mm kim chng hiu ca mnh. Ly v d em mun bit lnh DIV c ngha g v cch s dng nh th no? Cc em tra trong ti liu s thy c php ca lnh c dng: DIV Tonhng Lnh ny thc hin chia 2 ton hng. - Trng hp Tonhng kiu byte, ly ni dung thanh ghi AX chia cho ton hng. Kt qu phn d lu trn AH, phn nguyn lu trn AL - Trng hp Tonhng kiu word, ly ni dung thanh ghi DX AX chia cho ton hng. Kt qu phn nguyn lu trn thanh ghi AX, phn d lu trn DX. kim tra hiu ca mnh c ng khng, cc em cn lm mt vi v d nh kim tra kt qu trn phn mm. Nu kt qu trng vi suy on th em hiu hot ng ca lnh. V d, trong trng hp ny, nu ta np gi tr 102 vo thanh ghi AX v gi tr 100 vo thanh ghi BL th kt qu php chia DIV BL s phi cho thanh ghi AH gi tr 2 v AL gi tr 1. Vit on lnh sau: org 100h mov ax,102 mov bl,100 div bl Dch v thc hin lnh tng bc. Sau khi thc hin xong lnh DIV, nu thanh ghi AH v AL cho cng gi tr nh suy on th ta hiu ng s thc hin ca lnh. Mt s vn khi hc vi iu khin 8051

1. S khc bit gia Vi x l v Vi iu khin? Vi x l (microprocessor) l mt chip cha thnh phn trung tm ca mt h vi x l: CPU. h vi x l c th hot ng c th mt mnh chip vi x l l cha . H thng cn b xung cc thnh phn khc nh b nh, cc thit b vo ra v mch ph tr. Vic xy dng cc h thng da trn chip vi x l thng kh phc tp v thng l cc h a mc ch vi kh nng tnh ton, x l d liu nhanh. Khc vi vi x l, cc vi iu khin (microcontroller) l mt h thng trn chip, ngha l bn trong

mt chip t hp sn khng ch b vi x l m cn tch hp c b nh, cc mch ngoi vi ph tr. Cc h thng xy dng da trn chip vi iu khin thng n gin hn rt nhiu so vi cc h thng xy dng da trn vi x l. Cc h thng da trn vi iu khin thng p ng cho mt nhim v c th khi c xy dng. Chng thng l cc h thng iu khin c yu cu tnh ton x l d liu khng i hi tc v khi lng ln v d nh my git, l vi sng, VCR, v.v. Cc h thng da trn vi iu khin thng c kch thc nh, tiu tn t nng lng v gi thnh thp hn so vi cc h thng da trn vi x l. i vi sinh vin ngnh in t, vic tip cn vi vi x l thng qua cc chip vi iu khin thng d dng hn trong vic t xy dng mt ng dng thc t, gi thnh thp.

2.Ti sao hc vi iu khin 8051? Vi iu khin 8051 c Intel thit k v sn xut t nhng nm cui thp k 80s. So vi xu hng thit k cc li vi x l ngy nay da trn kin trc RISC th 8051 thit k trn kin trc CISC vi mt s c trng nh tp lnh ln, thi gian thc hin lnh thay i, di lnh khng c nh. iu ny gy kh khn cho cc trnh bin dch trong vic ti u m, tc thc hin lnh ca vi x l chm. Tuy nhin, do l mt vi iu khin ra i sm, Intel cho php cc nh sn xut khc (Atmel, Siemens, Phillips v.v.) sn xut cc vi iu khin gi nguyn li 8051, vi iu khin 8051 tr nn ph bin vi s lng v chng loi a dng p ng nhiu mc ch s dng v thit k. Vic thay i cc IC cng h ca cc nh sn xut khc nhau hu nh khng phi vit li chng trnh. Bn cnh s lng cc nh pht trin h tr phn mm hp dch, bin dch, m phng v np chng trnh ln. Cc ti liu hng dn phong ph cng gp phn lm cho h vi iu khin 8051 tr nn ph bin. y l nhng l do khin vic tip cn vi vi iu khin tr nn d dng hn. Hin nay c nhiu h vi iu khin ang pht trin mnh m v ngy cng chim c cm tnh ca ngi thit k nh PIC, AVR, ARM,v.v. . Chng c thit k da trn kin trc RISC vi kh nng h tr tt ngn ng lp trnh bc cao dn n thi gian thit k v cho ra i cc sn phm nhanh hn. Cc h vi iu khin khc nhau c tp lnh v cu trc khc nhau, vic hc ng thi tt c cc h vi iu khin l khng th. Tuy nhin, vic nm bt tt kin trc, cch thc thc hin lnh mc assembly, cch v lu thut ton khi hc vi iu khin 8051 cng to iu kin d dng cho sinh vin tip cn vi cc h vi iu khin khc. Hn na, vi mi vi iu khin ca cc h khc th gn nh cng c kh nm tm c mt vi iu khin tng ng h 8051.

3. Ti sao hc ngn ng hp ng (Assembly)? Lp trnh cho vi iu khin c th vit bng nhiu ngn ng khc nhau nh Assembly, C, Basic, Pascal, v.v. Ti sao chng ta li hc ngn ng Assembly trong chng trnh? Nhim v ca hc phn vi x l 1 gii quyt hai nhim v: i) cung cp cho cc em cc kin thc c bn v t chc v hot ng ca h vi x l, ii) mt s ng dng ca vi x l, vi iu khin trong thc t. p ng c nhim v th nht th vic hc v lp trnh bng ngn ng Assembly l thch hp nht. Qua vic hiu cch thc m ha lnh, quy trnh thc hin lnh cc em c c kin thc v cu trc v nguyn tc hot ng cng nh chc nng ca cc thnh phn trong h vi x l. Cch thc m cc lnh c h vi x l m ha v gii m di dng nh phn. Nhng chng trnh d phc tp n u thc hin c trn h vi x l u phi chuyn i thnh dng m nh phn my c th hiu c. Cc chng trnh vit bng ngn ng bc cao thc hin c trn h vi x l cn phi bin dch v hp dch chuyn thnh cc lnh c bn ca my. Cc em cng hiu c ti sao cn phi c trnh bin dch v hp dch. Ti sao chy trn cc h vi x l vi cc h vi x l khc nhau th cn phi c cc trnh bin dch v hp dch ph hp. Ti sao vit chng trnh bng ngn ng Assembly thng cho kh nng ti u hn v tc v dung lng. Rt nhiu khi nim s kh gii thch nu cc

em khng c c cc kin thc c bn v assembly. p ng c nhim v th hai th c th hc v s dng cc ngn ng bc thp cng nh bc cao. Tt nhin, vic hc v s dng ngn ng bc cao trong xy dng cc chng trnh ng dng s nhanh chng v thun tin hn. p ng c c hai nhim v ny, trong chng trnh chng ta s dng ngn ng Assembly dy v hc. iu ny cng gi cho cc em cn tip tc hc hi c th vit cc chng trnh ng dng bng ngn ng bc cao. Trong hc phn vi x l 2 chng ta s s dng ngn ng bc cao hc v vit chng trnh.

4. Lm th no mn hc tr nn th v hn? mn hc tr nn th v hn, cc em c th lm cc mch n gin ng dng vi iu khin v d nh mch quang bo dng led vi cc kiu sng khc nhau. D lm mt mch n gin nhng cc em s tch ly c nhiu kin thc b ch t thit k, thc hnh in t c bn, lp trnh, m phng sa li, np chng trnh. Tt nhin, lm c cc mch ny cc em cn c mt s thit b v linh kin c bn nh: + ng h vn nng + Board cm + Mch np chng trnh + Vi iu khin (thng dng AT89S51, AT89S52 hoc AT89C51, AT89C52) + Thch anh (thng dng 12Mhz hoc 11,0592Mhz) , led pht quang, tr (220 Ohm, 4.7K, 10K), t (t gm 33pF, t ha 10uF), dy ni. + Ngun 5V (c th dng Pin hoc ngun my tnh c) Di y l mt mch n gin th hin cc iu kin ti thiu mt vi iu khin hot ng: iu khin mt led n ni vi chn P1.0 sng nhp nhy. Cn lu : Chn 31(/EA/Vpp) ni vi Vcc=5V. T ni chn Reset l t ha. Tr ni chn Reset c th thay i tr s thnh 4,7K hoc 10K.

mch ny c th hot ng c th vi iu khin cn c np mt chng trnh. Sau y l mt chng trnh v d iu khin led n ni vi chn P1.0 nhp nhy: org 0 loop: cpl P1.0 call delay jmp loop delay: mov r6,#250 dl1: mov r7,#250 djnz r7,$ djnz r6,dl1 ret Son tho chng trnh nay trn Pinnacle 52, lu vo cng vi tn v d l "nhapnhay.asm". Dch v m phng kim tra hot ng (xem ti liu hng dn s dng phn mm Pinnacle 52 trong link bn di). Sau khi dch chng trnh, phn mm s to ra mt file cng tn c ui .hex, v d "nhapnhay.hex". File ny c th s dng np vo vi iu khin. Trc tin cc em nn v mch trn phn mm Protues m phng hot ng, sau lp rp mch trn board cm. S dng b np (nu cha c b np th nh thy hoc cc bn) np file "nhapnhay.hex" to ra bc trn vo vi iu khin. Lp rp mch, cp ngun v kim tra hot ng ca mch thc t.

Nh vy cc em hon thnh mt mch n gin ng dng vi iu khin. Qua cng vic ny, cc em s hiu c quy trnh lm vic vi vi iu khin v quan trng hn l thy c s th v ca vi iu khin. c hng th v trc quan hn cc em nn s dng thm phn mm Protues, y l phn mm cho php m phng cc vi iu khin kh trc quan.

5. T chc b nh 8051 c b nh t chc kiu Harvard (c b nh chng trnh tch bit vi b nh d liu). 8051 c cc b nh chnh bao gm: - b nh chng trnh ROM (kh nng qun l 64Kbyte, tch hp sn 4Kbyte). a ch c nh t 0000H-0FFFFH, trong vng ROM on-chip chim vng a ch thp. - b nh d liu RAM trong (128 byte). a ch c nh t 00H-7FH. B nh RAM trong c chia thnh 3 vng: cc banks thanh ghi, vng nh bit, vng RAM a mc ch. - b nh RAM ngoi (kh nng qun l 64Kybte). a ch c nh t 0000H-0FFFFH -cc thanh ghi chc nng c bit SFRs.a ch t 80H-0FFH. SFRs c khng gian nh 128 byte, tuy nhin ch mt phn trong s ny c s dng. Cc a ch khng s dng khng c php truy nhp. Cc vng nh ny c phn bit vi nhau bi chc nng v cch thc truy nhp n chng. i vi RAM trong c th truy nhp theo cc ch nh a ch: trc tip, gin tip v thanh ghi. ROM c ch nh a ch duy nht l ch s thanh ghi SFRs c truy nhp bng ch nh a ch trc tip

6. Cc ch nh a ch truy nhp n cc vng nh khc nhau, 8051 c cc ch nh a ch sau: - Ch nh a ch tc thi. V d: MOV A, #10 ;di chuyn gi tr 10 vo thanh ghi A. Sau lnh ny thanh ghi A c gi tr bng 10. Nh vy, trong ch nh a ch tc thi th gi tr ca ton hng c ch ra v nm sau m lnh. - Ch nh a ch trc tip. V d: MOV A, 10 ;di chuyn ni dung nh c a ch bng 10 trong RAM trong vo thanh ghi A. Sau lnh ny thanh ghi A c gi tr bng ni dung nh trong RAM trong c a ch bng 10. Trong ch nh a ch trc tip, a ch ca ton hng c ch ra sau m lnh. - Ch nh a ch thanh ghi V d: MOV A, R0 ; di chuyn ni dung thanh ghi R0 vo thanh ghi A. Sau lnh ny, thanh ghi A c gi tr bng ni dung thanh ghi R0. Trong ch nh a ch thanh ghi, ton hng l mt thanh ghi t R0-R7. - Ch nh a ch gin tip V d: MOV A, @R0 ; di chuyn ni dung nh trong RAM trong c a ch l ni dung ca thanh ghi R0 vo thanh ghi A. Trong ch nh a ch gin tip, a ch ca ton hng c xc nh gin tip thng qua mt thanh ghi.Cc thanh ghi c s dng nh a ch gin tip bao gm: R0, R1 v DPTR - Ch nh a ch ch s thanh ghi: V d: MOVC A, @A+DPTR ;di chuyn ni dung nh trong ROM c a ch xc nh bi tng 2 thanh ghi A v DPTR vo thanh ghi A. Trong ch nh a ch ch s thanh ghi, a ch ca nh trong ROM c xc nh thng qua

ni dung hai thanh ghi A v DPTR (hoc PC). Ngoi ra, c mt ch nh a ch c bit thanh ghi. V d hai lnh MOV A, #10 v MOV Acc, #10 cho cng kt qu l thanh ghi Acc c gi tr bng 10 nhng khi dch ra m my th khc nhau v dung lng. Lnh th nht c dung lng 2 byte trong khi lnh th hai c dung lng 3 byte. Trong v d trn ton hng A c gi l nh a ch c bit thanh ghi trong khi ton hng Acc c nh a ch trc tip. Cc ch nh a ch c s dng truy nhp n cc vng nh khc nhau. C th tng kt nh sau: - RAM trong c 3 ch nh a ch c th truy nhp ti l: trc tip, thanh ghi v gin tip - RAM ngoi c duy nht ch nh a ch gin tip s dng lnh MOVX - ROM c ch nh a ch duy nht l ch s thanh ghi, s dng lnh MOVC A, @A+DPTR hoc MOVC A, @A+PC - SFRs c ch nh a ch trc tip Phn bit gia truy nhp gia RAM trong v SFRs ch nh a ch trc tip l RAM trong c a ch t 0-7FH trong khi SFRs c a ch t 80H-0FFH

7. Tp lnh Vi iu khin 8051 thit k theo kin trc CISC l kin trc c tp lnh phc tp vi s lng lnh ln, di v thi gian thc hin lnh thay i. nh cc lnh ca vi iu khin 8051 chng ta chia thnh 5 nhm lnh chnh bao gm: - nhm lnh di chuyn d liu (MOV, MOVX, MOVC, XCH, SWAP) - nhm lnh logic (ANL, ORL, XRL, RR, RRC, RL, RLC, CLR, CPL) - nhm lnh s hc (ADD, ADDC, INC, SUBB, DEC, MUL, DIV) - nhm lnh r nhnh chng trnh: bao gm lnh r nhnh c iu kin v cc lnh r nhnh khng iu kin + cc lnh r nhnh khng iu kin (JMP, CALL, RET, RETI) + cc lnh r nhnh c iu kin (DJNZ, CJNE, JC, JNC, JB, JNB, JZ, JNZ) - nhm lnh x l ton hng bit (SETB, CLR, CPL) Vi mi lnh cc em cn bit c php (bao gm s ton hng, ch nh a ch tng ng vi tng ton hng), ngha ca lnh, kt qu thc hin lnh lu u, nh hng n cc c no trong thanh ghi trng thi chng trnh PSW, thi gian thc hin lnh v di lnh. hiu cch thc thc hin lnh, cn ly mt vi v d, m phng tng bc v quan st kt qu thc hin lnh so snh gia hiu v kt qu thc t.

8. Phn bit gia lnh nhy JMP v lnh gi CALL C hai lnh JMP v lnh CALL cng thc hin r nhnh chng trnh khng iu kin, tc l cng nhy ti mt a ch c ch ra bi nhn. Tuy nhin, hai lnh ny khng c s dng thay th cho nhau. - Lnh JMP r nhnh chng trnh n a ch c ch ra bi nhn - Lnh CALL cng r nhnh chng trnh n a ch c ch ra bi nhn (tn chng trnh con). ng thi vi vic r nhnh chng trnh, lnh CALL cn ct gi ni dung con tr PC (a ch quay tr v ln ngn xp) khi gp lnh RET trong chng trnh con th ly 2 byte trn nh ngn xp a vo con tr PC quay tr v thc hin lnh sau lnh gi CALL. Do nu s dng lnh JMP thay v lnh CALL gi chng trnh con s dn n chng trnh chy sai khi gp lnh RET. Ngc li khi s dng lnh CALL thay v lnh JMP nhy n chng trnh con s dn n ngn xp b thay i.

9. Phn bit gia lnh RET v RETI Lnh RET (RETURN) l lnh tr v t chng trnh con. Lnh RETI (RETURN FROM INTERRUPTS) l lnh tr v t chng trnh phc v ngt. Ngoi vic ly 2 byte trn nh ngn xp np vo con tr PC tr v v tr b gin on, lnh RETI cn thc hin xa c ngt tng ng.

10. Lnh JMP vi cc dng SJMP, AJMP v LJMP Khi dch sang m my, lnh JMP s c dch sang mt trong 3 dng l SJMP, AJMP hoc LJMP. Mc nh cc trnh hp dch s chuyn sang lnh LJMP. C 3 bin th ny u c tc dng nhy n mt nhn c ch ra sau lnh. Tuy nhin c s khc bit v dung lng v v tr ca a ch cn nhy ti so vi lnh. - Lnh SJMP nhy trong phm vi a ch cch 127 byte v pha trc v 128 byte v pha sau so vi v tr ca lnh SJMP. Lnh ny c ln 2 byte. - Lnh AJMP nhy ti a ch bt k nm trong phm vi 2KByte a ch u tin t 0000H-7FFH. Lnh ny c ln 2 byte. - Lnh LJMP l lnh nhy di c th nhy n v tr bt k trong b nh dung lng 64Kbyte. Lnh ny c ln 3 byte. Khi lp trnh, nn la chn s dng 1 trong 3 dng trn c dung lng chng trnh ti u. Tng t lnh CALL c 2 bin th l ACALL v LCALL.

11. Timer/counter 8051 c 2 b timer/counter 16 bit t tn ln lt l timer/counter0 v timer/counter1. Timer/counter thc cht l mt b m 16 bit. Cc b timer/counter ca 8051 l cc b m ln. Timer/counter hot ng vi chc nng timer khi ngun xung l dao ng bn trong. S m ca timer tng 1 n v tng ng vi 1 chu k my ca vi iu khin (12 chu k xung nhp). Nh vy s m ca timer tng lin tc, thi gian gia cc s m l bng nhau. Timer/counter hot ng vi chc nng counter khi ngun xung a ti b m t bn ngoi (a ti chn P3.4 i vi timer/counter0 v P3.5 i vi timer/counter1). S m ca counter tng 1 n v khi c xung a ti u vo counter. Nh vy s m ca counter ch tng ln khi c xung tc ng ti cc chn u vo. iu khin hot ng ca timer/counter cn tc ng ln cc thanh ghi TMOD, TCON, TLx v THx (x=0, 1 tng ng vi timer/counter 0 v timer/counter 1). TMOD l thanh ghi 8 bit, cho php truy nhp mc byte, trong 4 bit cao (t bit 3 n bit 7) l cc bit iu khin timer/counter1 v 4 bit thp (t bit 0 n bit 3) l cc bit iu khin timer/counter0. Do hai b timer/counter counter hot ng ging nhau nn cc bit iu khin c chc nng ging nhau. Timer/counter c 4 mode hot ng tng ng vi trng thi ca hai bit M1 v M0 trong thanh ghi TMOD. 4 mode ny xc lp s m ln nht m b m c th m c. la chn chc nng timer hay counter cn tc ng ln bit C/T. Nu C/T=0, timer/counter lm chc nng timer. Nu C/T=1, timer/counter lm chc nng counter. GATE l bit la chn iu khin hot ng ca timer/counter bng phn cng hay phn mm. Nu GATE=0, iu khin hot ng ca timer/counter bng phn mm, ngha l ch cn TRx=1 l timer/counter hot ng. Nu GATE=1, timer/counter hot ng (m) cn thm iu kin c chn P3.2 ( i vi timer/counter0) hoc P3.3 (i vi timer/counter1) phi mc cao. TCON l thanh ghi 8 bit cho php truy nhp mc bit. Bit TRx l bit cho php timer/counter hot ng hay dng. Nu TRx=0, timer/counter dng hot ng. Nu TRx=1, timer/counter hot ng hay dng cn ph thuc vo trng thi ca bit GATE nh trnh by pha trn.

Bit TFx trong thanh ghi TCON l c trn. TFx c t ng t ln 1 khi timer/counterx m trn. C TFx c xa v 0 bng phn mm hoc gp lnh RETI khi tr v t chng trnh phc v ngt tng ng. Ngha l TF0 c t ng xa v 0 khi gp lnh RETI ca chng trnh phc v ngt timer/counter0 v TF1 c t ng xa v 0 khi gp lnh RETI ca chng trnh phc v ngt timer/counter1. Cc thanh ghi THx v TLx kt hp thnh cc b m 16 bit, 13 bit hay 8 bit auto-reload ph thuc vo mode hot ng c xc lp bi cc bit M1 v M0. Trong THx cha cc bit cao, TLx cha cc bit thp. Hot ng mode 0 (13 bit) v mode 1 (16 bit), khi timer/counter m trn s tr v m t 0. Mode 2 (8 bit) c chc nng auto-reload, ngha l khi timer/counter m n gi tr ln nht (255), khi m thm mt s m na th timer/counter m trn v tr v gi tr c t trc trong thanh ghi THx. Khi lp trnh s dng timer/counter cn bit phi s dng b timer/counter no. Khi s dng vi chc nng timer th thng thng c th ty chn 1 trong 2 b timer. Tuy nhin, khi s dng timer/counter vi chc nng counter th vic la chn b counter0 hay counter1 l do tn hiu a ti chn no. Nu tn hiu a ti chn P3.4(T0) th phi s dng b counter0, nu tn hiu a ti chn P3.5(T1) th phi s dng b counter1. Khi s dng trong truyn thng ni tip to tc baud, timer0 c s dng. V d: chng trnh to xung vung c chu k T=0.1 giy, rng 50% ti chn P1.0. Bit thch anh s dng c tn s 12Mhz. Vi yu cu ny ta c th s dng timer/counter0 hay timer/counter1 u c vi chc nng timer. Tn s thch anh 12Mhz, nh vy trong 1 giy s c 12.10^6/12 =10^6 chu k my. Vy m c 1 giy timer cn m c 10^6 s m (v s m ca timer tng 1 n v tng ng vi 1 chu k my). Xung vung c chu k T=0.1 giy, rng 50% vy xung s c 0.05 giy mc cao v 0.05 giy mc thp. to c thi gian 0.05 giy, timer cn m c 0.05*(10^6)=50.000 s m. Ta c th la chn timer hot ng mode 1 (s m ln nht l 2^16-1=65.535). S m ban u ca timer s l: 65.536-50.000=15.536. Vy khi timer m bt u t 15.536 tr ln n khi m trn s m c 50.000 s m tng ng vi 0.05 giy. Vi cc phn tch trn ta c th thit lp timer nh sau: - S dng timer0 (c th s dng timer1) - Mode hot ng 1: M1=0, M0=0 - Chc nng timer: C/T=0 - iu khin bng phn mm: Gate=0 - S m ban u ca timer: 15.536=3CB0H, nh vy TH0=3CH, TL0 = B0H - C trn TF0 c xa Chng trnh c th vit nh sau: org 0 loop: cpl P1.0 call delay_0_05s jmp loop delay_0_05s: mov TMOD,#00000001B;timer0, mode 1, timer, gate=0 mov TH0,#high(15536) ;phn mm s t ng ly byte cao ca s 15.536 a vo thanh ghi TH0 mov TL0,#low(15536) ;phn mm ly byte thp ca 15.536 a vo thanh ghi TL0 clr TF0 ; xa c trn TF0 setb TR0 ; cho php timer bt u hot ng

jnb TF0,$ ;khi TF0 bng 1 ngha l timer0 m 50000 s m ret Tt nhin chng trnh ny cha hon ton chnh xc do cn mt s lnh tiu tn thi gian nhng khng c tnh, ta hon ton c th chnh sa bng cch thay i li gi tr ban u np vo TH0 v TL0. 12. Ngt Ngt l c ch c bit trong cc h vi x l. Khi c mt s kin xy ra ti thit b ngoi vi (v d nh timer/counter m trn hay truyn/nhn xong mt k t) s yu cu CPU tm dng cng vic hin ti p ng s kin ny. S kin ngt thng khng bit trc thi gian xy ra, nhng khi s kin xy ra li yu cu CPU phi p ng nhanh nht c th. 8051 c 6 ngun ngt tng ng vi 5 vector ngt. 6 ngun ngt bao gm 2 ngt ngoi INT0 (P3.2) v INT1 (P3.3), 2 ngt timer/counter m trn v 2 ngt ca cng ni tip (ngt truyn v ngt nhn). Vector ngt l a ch bt u ca chng trnh phc v ngt trong b nh chng trnh. ng vi mi mt s kin ngt, CPU tm thi dng cng vic hin ti thc hin chng trnh phc v ngt tng ng nm ti cc v tr xc nh trong b nh. C th: Ngt Vector ngt INT0 03H T0 0BH INT1 13H T1 1BH Serial 23H Ngha l nu c xung a ti chn P3.2(INT0) v s kin ny c xc lp l mt s kin ngt, CPU s tm dng cng vic hin ti thc hin lnh bt u ti a ch 03H. Mc nh CPU cm tt c cc ngt. xc lp mt s kin l ngt, thit lp mc u tin ngt chng ta phi tc ng ln cc bit trong cc thanh ghi cho php ngt IE (Interrupts Enable), thanh ghi u tin ngt IP (Interrupts Priority). Khi lp trnh bng assembly, chng ta phi nh tn v chc nng ca tng bit trong cc thanh ghi ny. Thanh ghi IE l thanh ghi 8 bit, cho php truy nhp mc bit. Trong thanh ghi ny cha cc bit cho php ngt chung EA, cc bit cho php ngt tng ng vi cc ngun ngt c th: EX0, ET0, EX1, ET1, ES. cho php mt ngt ta phi cho EA=1 v bit cho php ngt tng ng bng 1. V d, cho php s kin timer/counter0 m trn l mt ngt ta phi cho EA=1 v ET0=1. Khi 2 hoc nhiu ngt xy ra s ny sinh vn ngt no c CPU u tin thc hin trc. V nguyn tc, CPU ch thc hin c 1 lnh ti mt thi im. 8051 c thanh ghi IP xc lp ch u tin ngt. Trong IP c cc bit tng ng vi cc ngt l PX0, PT0, PX1, PT1 v PS. Khi cc bit ny mc cao th ngt tng ng s c mc u tin cao v ngc li. V d, on chng trnh sau s xc lp cho php 2 s kin c coi l ngt l xung ngoi a ti chn P3.2 (INT0) v timer/counter1 m trn. Trong ngt timer/counter1 c mc u tin cao (tc l c u tin phc v trc). SETB P3.2 ; xc lp P3.2 l chn u vo SETB EA ;cho php ngt chung SETB EX0; cho php ngt ngoi INT0 SETB PT1 ;u tin timer/counter1 mc cao CLR PX0 ;u tin ngt ngoi INT0 mc thp Vi vic xc lp nh trn, khi chng trnh phc v ngt INT0 ang c phc v m timer/counter1 m trn th ngt INT0 tm thi b dng li phc v ngt timer/counter1. Sau khi chng trnh phc v ngt timer/counter thc hin xong mi quay tr li thc hin tip chng trnh phc v ngt ngoi INT0. Trong trng hp bit PX0 trong v d trn cng c t bng 1 (ngha l ngt ngoi INT0 cng c

mc u tin cao) th khi 2 ngt xy ra ng thi th CPU s phc v ngt no? Vic cn c vo thanh ghi IP l khng th xc nh c ngt no s c phc v trc. Trong trng hp ny, CPU s cn c vo th t u tin ngt mc nh. 8051 quy nh mc u tin mc nh t cao xung thp nh sau: INT0>T0->INT1->T1->Serial. Mc nh, ngt INT0 s c mc u tin cao hn ngt timer/counter1. Nh vy, ngt INT0 trong trng hp ny s c u tin phc v trc. Cu trc chng trnh phc v ngt: khc vi chng trnh con c th nm ti v tr bt k trong b nh chng trnh, chng trnh phc v ngt ng vi mi s kin ngt nm ti mt v tr xc nh trong b nh. Do , cu trc chng trnh phc v ngt c s khc bit vi chng trnh con. C th, cu trc chung ca chng trnh phc v ngt l: ORG Vector_ngt Thn chng trnh RETI V d, vi chng trnh phc v ngt ngoi INT0 th vector_ngt s c thay bng a ch 03H. Thn chng trnh l tp hp cc lnh ca 8051 nhm thc hin cng vic tng ng vi s kin ngt. V d: chng trnh m xung ngoi a ti chn P3.2(INT0), hin th s m t 0-200 trn cc led n ni vi cng P1. biendem equ 70h org 0 jmp start org 03h ;a ch ca chng trnh phc v ngt ngoi INT0 inc biendem ;tng bin m 1 n v mi khi c mt ngt (xung tc ng ti sn xung) reti start: setb P3.2 ;xc lp cho chn P3.2 l u vo mov biendem,#0 mov IE,#10000001B; cho php ngt ngoi INT0 setb IT0 ;ngt tch cc sn xung loop: mov a,biendem mov P1,a cjne a,#201,loop mov biendem,#0 ;xa bin m khi s m bng 201 jmp loop Thng thng, cc thanh ghi quan trng c s dng nhiu nh PSW, Acc c ct gi trng thi ca chng khng b thay i khi thc hin xong chng trnh phc v ngt so vi trc khi thc hin chng trnh phc v ngt. ct gi cc thanh ghi ny ta s dng lnh PUSH, ly li ni dung ca thanh ghi ta s dng lnh POP. Mt s li rt kh pht hin do nguyn nhn khng ct gi cc thanh ghi ny trong chng trnh phc v ngt.

13. Giao tip ni tip UART Vi iu khin 8051 tch hp mt cng giao tip ni tip bt ng b UART cho php cc vi iu khin c th lin lc vi nhau, vi my tnh hoc cc thit b khc. c th giao tip qua UART cn thit lp tc truyn, khung d liu, bit chn l. Vic thit lp ny thng qua trng thi ca cc bit trong thanh ghi SCON. SCON l thanh ghi 8 bit. Trong hai bit SM0 v SM1 t hp thnh 4 trng thi tng ng vi 4 ch xc lp truyn: 8 bit hay 9 bit, tc truyn bng bao nhiu. Khi hot ng mode 0 v mode 2, tc truyn l c nh da trn tn s thch anh. Mode 1 v mode 3 tc truyn thay i da trn tc

trn ca timer 1. Bit SM2 s dng trong ch truyn a vi x l. Bnh thng, khi nhn 1 byte, c RI (c ngt nhn) s t ng c t ln mc 1 bo cho chng trnh bit nhn 1 byte. Tuy nhin khi bit SM2 c t, c RI ch c bt ln mc 1 nu bit th 9 nhn c c gi tr bng 1. Bit REN l bit cho php nhn. Nu bit ny c t bng 1, d liu c th c nhn qua cng ni tip, ngc li s khng cho php nhn d liu. Nh vy, c th nhn c d liu qua cng ni tip bit REN phi c t bng 1. Bit TB8 c s dng trong cc mode 2 v 3. Trong hai mode ny d liu truyn gm 9 bit. TB8 cha bit th 9 c truyn. Sau khi 8 bit trong thanh ghi SBUF c truyn xong, bit th 9 c truyn l ni dung ca bit TB8. TB8 thng c s dng truyn bit chn l. Bit RB8 cng hot ng trong cc mode 2 v 3 v c chc nng nhn bit d liu th 9. TI l c ngt nhn. Khi d cng ni tip truyn xong mt byte d liu, bit TI s c t ng t ln mc 1 bo truyn xong 1 byte v sn sng truyn byte tip theo. V d: Lnh xc lp UART hot ng mode 1 (8 bit d liu, tc truyn do tc trn timer1 quyt nh): MOV SCON,#01010000B Thanh ghi SBUF l thanh ghi m truyn v m nhn. Mc d ch c mt tn nhng thc cht y l 2 thanh ghi, mt thanh ghi m truyn v mt thanh ghi m nhn. Khi ghi n SBUF l truy nhp n thanh ghi m truyn. Khi c t thanh ghi SBUF l c t thanh ghi m nhn. D liu truyn cc bit c trng s thp trc, bit trng s cao sau. Xc lp tc baud: - Khi hot ng mode 0 v mode 2, tc baud c xc nh da trn tn s thch anh s dng. Trong mode 0, tc baud lun lun bng tn s dao ng thch anh chia 12. iu ny c ngha l nu tn s thch anh l 11,0592Mhz, khi hot ng mode 0 tc baud s l 921.600 baud. Khi hot ng mode 2, tc baud lun bng tn s thch anh chia 64. V d nu s dng thch anh tn s 11.0592Mhz, tc baud s l 11,0592*10^6/64=172.800. - Khi hot ng mode 1 v mode 3, tc baud c xc lp da trn tc trn ca timer1. Tc trn ca timer1 cng ln th tc baud cng ln. Thng thng timer1 c hot ng ch auto-reload to tc baud trong thanh ghi TH1 s cha gi tr ti np cho TL1. Cng cn lu rng khi s dng cng ni tip thch anh thng c s dng c tn s l 11,0592Mhz. Tn s ny to ra cc tc truyn vi sai s nh. V d on chng trnh sau xc lp timer1 to tc baud 9600 cho cng ni tip UART, tn s thch anh s dng l 11,0592Mhz. MOV TMOD,#20h ;Timer 1 hot ng trong ch auto-reload MOV TH1,#0FDh ;Gi tr ti np cho timer1 khi m trn MOV TL1,#0FDh ;gi tr m ban u ca timer1 SETB TR1 ; Cho php timer1 hot ng Lu , bit SMOD trong thanh ghi PCON nu c t bng 1 s nhn i tc baud ca UART nu timer1 c s dng to tc baud. Mc nh SMOD b xa v 0. M phng tng tc kt hp Keil C v Proteus Keil C l phn mm phc v son tho, dch v m phng cho cc vi iu khin 8051 v ARM. Phn mm h tr vit chng trnh bng ngn ng Assembly v C. Keil C c s dng ph bin vi s lng IC h tr ln. Proteus l phn mm thit k mch nguyn l v mch in. Mt im mnh ca Proteus lm cho phn mm ny c s dng rng ri trong nhng nm gn y l kh nng m phng cc h vi iu khin nh 8051, PIC, AVR v.v. Khng ch m phng trc quan, Proteus cn c kh nng kt hp vi cc

phn mm m phng mc lnh. m phng mc lnh kt hp gia Keil C v Proeus lm theo cc bc sau: - Bc 1: Ci t Proteus VSM Keil Driver (ng link download ti: http://www.labcenter.com/support/vdmkeil.cfm) - Bc 2: Thit lp m phng trong Keil C. Trong menu Project, chn Options for target 'target1'.... Mt ca s hin ra, chn tab Debug, la chn "Use: Proteus VSM Simulator".

- Bc 3: Khi ng Proteus, m file nguyn l. Nhy chut phi vo IC vi iu khin, chn file .hex Keil C to ra. - Bc 4: Trong menu Debug ca Proteus, chn Use Remote Debug Monitor

- Bc 5: M phng tng bc trong Keil C, cc lnh s chy tng ng trong Protues

Mt s trang web gi mt s d n v hng dn: http://www.8051projects.info/projects.asp http://8052.com/ http://www.mikroe.com/eng/products/view/267/architecture-and-programming-of-8051-mcu-s/ http://www.kmitl.ac.th/~kswichit/

Din n in t trao i, tham kho: http://www.dientuvietnam.net/forums/

Ti liu tham kho chnh ca mn hc: [1]. Vn Th Minh. K thut Vi x l. NXB Gio Dc. 1997 [2]. Nguyn Tng Cng, Phan Quc Thng. Cu trc v lp trnh h vi iu khin 8051. NXB KHKT. 2003 Ngn hng cu hi (download): Ngn hng cu hi tham kho Hng dn s dng phn mm EMU8086 (download): Hng dn s dng phn mm EMU8086 Hng dn s dng phn mm Pinnacle 52 (download): Hng dn s dng Pinnacle 52

Ti liu ting Anh tham kho thm: [1]. B.Brey, B. The Intel Microprocessors, 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium and Pentium Pro Processor Architecture, Programming, and Interfacing. Prentice-Hall, Inc, 1997 [2]. Ayala, K. J. The 8051 Microcontroller: Architecture, Programming, and Applications. West Publishing Company, 1991 [3].8052 Tutorial and Reference download V d bi tp cho 8086: 1. Vit chng trnh tnh tng 2 s t 0-9 nhp vo t bn phm. Hin th kt qu (download): Congso0_9 2. Vit chng trnh tnh tng 2 s t 0-99 nhp vo t bn phm. Hin th kt qu (download) Congso0_99

V d bi tp cho 8051:(Cc bi tp vit v dch bng phn mm Pinnacle 52) 1. Vit chng trnh iu khin cc led n ni vi cng P1 v P2 sng dn t gia ra 5 ln sau tt dn 10 ln: sangdan_tatdan 2. Chng trnh iu khin led 7 ni vi cng P0 hin th s t 0-9 (led 7 anode chung): hienthiso0_9 3. Chng trnh m xung ngoi a ti chn P3.2(INT0) s dng ngt ngoi: dem_xung_P3_2 4. Chng trnh m xung ngoi a ti chn P3.4 (T0) s dng timer/counter vi chc nng counter: counter0 5. Chng trnh m xung ngoi a ti chn P3.4(T0) s dng timer/counter0 vi chc nng counter. Hin th s m t 0-45 trn 2 led 7 on ni song song vi cng P0. Cc led 7 on loi anode chung. Hai chn P2.0 v P2.1 ln lt iu khin ng ngt hai transistor ni vi chn anode ca led hng n v v hng chc:download 6. Chng trnh to xung vung c chu k 0,1 giy. Thch anh tn s 12Mhz. S dng timer/counter0 vi chc nng timer: xung vuong 7. Chng trnh m giy t 0-59, hin th giy trn 2 led 7 on ni song song vi cng P0. Cc led 7

on loi anode chung. Hai chn P2.0 v P2.1 ln lt iu khin ng ngt hai transistor ni vi chn anode ca led hng n v v led hng chc. Thch anh tn s 12Mhz: demgiay

Vi x l 2

Ni dung hc phn Vi x l 2 bao gm kin thc v cc h vi x l hin i. Trong khi hc phn Vi x l 1 cung cp cho sinh vin nhng kin thc c bn nht v cc thnh phn ca mt h vi x l, nguyn tc hot ng ca h th hc phn Vi x l 2 gii thiu kin trc ca cc vi x l hin i, cc gii php nng cao tc ca h vi x l. Trong hc phn ny sinh vin hc v kin trc RISC v CISC, ng ng lnh, t chc b nh a cp, x l song song. Cng ging nh hc phn Vi x l 1, phn sau ca hc phn Vi x l 2 s tm hiu mt h vi iu khin kh thng dng hin nay l h vi iu khin PIC. Ngn ng c s dng lp trnh l C s dng trnh bin dch CCS C nhng trong mi trng MPLAB. Mc d PIC16F877A c s dng hc tp, tuy nhin cc kin thc ny cng c th p dng cho cc vi iu khin PIC dng trung khc. Ti liu tham kho chnh: [1]. Mostafa AbDelBarr, Hesham ElRewini. Fundamentals of Computer Organization and Architecture. Wiley Interscience. 2005 [2]. Hesham ElRewini, Mostafa AbDelBarr. Advanced Computer Architecture and Parallel Processing. Wiley Interscience. 2005 [3]. Martin Bates. Interfacing PIC Microcontrollers Embedded Design by Interactive Simulation. Elsevier. 2006. Phn mm: Cc phn mm h tr lp trnh vi iu khin PIC 1. Phn mm MPLAB Link download 2. Phn mm CCS C: Trang ch 3. Link ti MPLAB IDE plug-in: Link download Mch np qua cng USB: http://openprog.altervista.org/OP_eng.html

Video: Bc 1 (Ci t MPLAB) Video hng dn cch download v ci t phn mm MPLAB: Xem Bc 2 (Ci t CCS C) Video hng dn cch ci t: xem

Mt s trang web hu ch: Din n vi iu khin PIC: http://www.picvietnam.com/forum/ Hng dn v PIC: http://www.gooligum.com.au/ http://www.pictutorials.com/index.htm http://www.mikroe.com/eng/products/view/11/book-pic-microcontrollers/ http://www.best-microcontroller-projects.com/index.html http://www.microcontrollerboard.com/index.html Ti liu: 1. Datasheet PIC16F877A: Download 2. Microchip Technology Incorporated. (1997) PIC-Micro Mid-range MCU Family Reference Manual: Download 3. CCS C manual: ccs_c_manual.pdf

4. ng ng lnh: Download 5. Gii thiu v vi iu khin PIC: Download 6. Gii thiu v timer0: Timer0_PIC.pdf 7. Gii thiu v ngt ca PIC: Ngat_PIC.pdf

Tin ch: Tnh ton cc b s ca timer to thi gian tr 1 giy: timer_cal.exe

Mt s bi tp v d vit cho PIC16F877A: Cc bi tp lp trnh cng lm chc nng vo/ra: 1. Chng trnh iu khin cc led n ni vi PORTB nhp nhy: Nhapnhay.rar 2. Chng trnh iu khin cc led n ni vi PORTB sng dn: Sangdan.rar 3. Chng trnh iu khin led 7 on ni vi PORTB hin th s t 0-9: Dem0_9.rar 4. Chng trnh iu khin 2 led 7 on ni song song vi PORTB hin th s t 0-99: Dem0_99.rar Cc bi tp lp trnh s dng chc nng timer v ngt: 5. Chng trnh m xung ngoi a ti chn RA4 hin th s m t 0-200 trn cc led n ni vi PORTC s dng timer0 vi chc nng counter Counter0.rar 6. Chng trnh m xung ngoi a ti chn RA4 hin th s m t 0-99 trn 2 led 7 on (anode chung) ni song song vi PORTB. Chn RA0 v RA1 ln lt qut led hng n v v hng chc Counter0_dem0_99_led7d.rar 7. Chng trnh to xung vung c chu k T=0.01 giy, rng 50%, s dng thch anh tn s 4Mhz: Xung_vuong_0_01s_timer0.rar 8. Chng trnh m giy t 0-59 hin th trn 2 led 7 on ni song song vi PORTC, chn RB0 v RB1 qut led. Tn s thch anh s dng 4Mhz Dem_giay_0_59_led7d.rar 9. Chng trnh m xung ngoi a ti chn RB0 (chn ngt ngoi) hin th s m t 0-99 trn cc led n ni vi PORTC Ngat_ngoaiRB0_leddon.rar 10. Chng trnh m xung ngoi a ti chn RC0/T1CKI (chn u vo timer1) hin th s m t 0200 trn cc led n ni vi PORTB s dng timer1 vi chc nng counter Counter1_dem0_200_led_don.rar

Ngn ng lp trnh
Cc phn mm pht trin h tr ngn ng C c nhiu nh Turbo C, Visual Studio v.v. Trong chng trnh, chng ta s dng phn mm DevC++ do y l phn mm m ngun m, chy trn mi trng Windows, i hi cu hnh my khng cao, c s dng nhiu trong cc c s gio dc v cc cuc thi lp trnh C quc gia v quc t. Mc d cn mt s nhc im nhng DevC++ p ng tt nhng yu cu hc phn. hc tt hc phn Ngn ng lp trnh ngoi vic c l thuyt cc em cn lm cc bi tp, kim tra hot ng ca chng trnh trn phn mm. Vit cc v d khc nhau kim tra hot ng thc t vi hiu khng nh li cc kin thc ca mnh. V d, phn bit phm vi s dng v cch s dng ca cc bin t ng v bin tnh cc em c th vit chng trnh sau: #include <stdio.h> #include <stdlib.h> void test(void); int main(int argc, char *argv[]) {

test(); test(); system("PAUSE"); return 0; } void test(void) { int x=10; static int y=5; x=x+1; y=y+1; printf("x=%d\n",x); printf("y=%d\n",y); } Cho chy chng trnh v gii thch ti sao hai lnh gi hm test() li cho kt qu l: x=11 y=6 x=11 y=7 cc em s hiu c s khc nhau c bn gia bin ng v bin tnh trong. Tng t vi cc khi nim khc, cc em cn lm cc v d, so snh cc kt qu hiu r ngha ca mi khi nim. G ri (debug) chng trnh Mt k nng quan trng khi lp trnh l g ri. Khi vit chng trnh, dch chng trnh kt qu khng c li th y mi l ht li v mt c php. Nhng chng trnh c chy ng nh yu cu hay khng th cn phi cho chy chng trnh bit kt qu. Nu chng trnh chy sai so vi kt qu mong mun, cn phi thc hin tm li chng trnh. Qu trnh tm li gii thut nh vy c gi l g ri. Mt s k thut thng c s dng khi g ri chng trnh l: chy tng lnh quan st kt qu, chy chng trnh n v tr t trc, thc hin mt chng trnh con nh mt lnh v.v. Cc em cn nm vng cc k thut ny mi c th vit c cc chng trnh ng khi s dng lnh ngy cng ln. Ti liu hng dn g ri bng DevC++ thy link bn di. Link download phn mm DevC++: devcpp-4.9.9.2_setup Mt v d hng dn cch to mt d n, son tho, dch v chy chng trnh vi phn mm DevC++ ti y: S dng DevC++ Hng dn cch g ri (debug) chng trnh trong DevC++: G ri trong DevC++ Mt s bi tp v chng trnh: 1. Chng trnh tm cc s nguyn t t 1-100: TimSoNguyenTo.rar 2. Sp xp mt dy s nhp vo t bn phm theo th t tng dn: SapXep.rar 3. Tm gi tr ln nht ca mt ma trn mxn nhp vo t bn phm: tim_max.rar 4. Tnh tng cc phn t ca hng ca ma trn mxn nhp vo t bn phm: TinhTong.rar Din n lp trnh C: http://congdongcviet.com Ti liu tham kho chnh: [1]. Phm Vn t. K thut lp trnh C c s v nng cao. NXB Thng k. 2003 Ti liu tham kho thm:

Ngn ng lp trnh C/C++ NgonNguLapTrinh Link hu ch: http://c-faq.com/index.html

You might also like