lẬp trÌnh c vÀ Ứng dỤng vi ĐiỀu khiỂn 8051 cho ngƯỜi mỚi bẮt ĐẦu

Upload: invisibilem

Post on 09-Jan-2016

30 views

Category:

Documents


1 download

DESCRIPTION

LẬP TRÌNH C VÀ ỨNG DỤNG VI ĐIỀU KHIỂN 8051 CHO NGƯỜI MỚI BẮT ĐẦU

TRANSCRIPT

BO CO NGHIM THU TAI IU KHIN DAO NG H C HC

KHO HC 1.5$

Chuyn : LP TRNH C V NG DNG VI IU KHIN 8051 CHO NGI MI BT UPh trch ging dy:ThS. Nguyn Tng Kh DuySV. Lng Hng Duy KhanhH tr:SV. Nguyn c HuSV. Nguyn Duy MinhSV. Nguyn Hu TunSV. L Quc ThnhSV. Trn Nguyn Thi TrnThy Kh Duy gii thiu v kho hc ph trch ging dyHI cc bn tham d kho hc vi mong mun c c iu g? -> a ra l do hp l cho kho hc--- Duy Khanh chun b slide tip theo1Ni dungMc tiu kho hcGii thiu v C v Vi iu khinS lc Keil C v 8051Project 1: Lp trnh vi hm while v lnh OUTPUTProject 2: Lp trnh vi hm if else v lnh INPUTProject 3: Lp trnh vi hm switch caseProject 4: Lp trnh cc php tnhProject 5: Lp trnh vi hm forProject 6: Lp trnh cc hm con2Duy Khanh trnh by ni dung chng trnh--- Chun b gii thiu chi tit mc tiu kho hc21. Mc tiu kho hc Chng trnh nhm gip cc bn d dng hnh dung v tip cn lp trnh C. Bit cch s dng vi iu khin 8051 pht trin ng dng. S dng c cc hm lp trnh C cho vi iu khin. M phng hot ng ca vi iu khin 8051 sau khi c lp trnh nhng ng dng th v. C kh nng t nghin cu lp trnh v sau.3Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn32. Gii thiu v C v Vi iu khin Yu cu chp tt led: (IC s vs. Vi iu khin)

>> Cn vit chng trnh (lp trnh) cho IC vi iu khin hot ng theo mun.4IC SVI IU KHINLinh kinNhiutMch inPhc tp n ginKh nng thay iKhDKch thc mchLnNhTng gi thnhCaoThp

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn43. S lc Keil C v 8051 Ngn ng lp trnh Vi iu khin:

>> Chn lp trnh ngn ng C, n gin v d thc tp.5ASSEMBLY (Hp ng)C LanguageS lng lnh~1304 ti uCc caoCao di chng trnhDiNgn khPhc tpn ginKh nng ti s dngKhDDuy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn53. S lc Keil C v 8051Vi iu khin: c nhiu dng khc nhau trn th gii.

8051: n gin nht, d iu khin, gi r.PIC: Dng trong cng nghip, nhiu chng loi, gi cao.AVR: Dng trong c cng nghip v dn dng, chng nhiu tt, gi cao.MSP430: Tiu th nng lng cc thp, gi r.ARM: Tc x l cao, vi x l in thoi di ng, gi cao.6Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn63. S lc Keil C v 8051 Mt s ng dng ca 8051:LED Tri tim.LED Cube 8x8x8.LED Ma trn.ng h s.iu khin ng c AC.Robot chy theo ng vch.My tin CNC mini ( PIC - Khoa CN, hCT).My trit tiu qun tnh ( ARM - Khoa CN, hCT).

7Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn73. S lc Keil C v 8051 Vi iu khin 8051 (89C51 - 89S52): Datasheet8

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn83. S lc Keil C v 8051 Keil C: Phn mm lp trnh cho vi iu khin 8051. C th lp trnh 8051 bng hp ng (ASM) hoc C.9

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn93. S lc Keil C v 8051To Project:

To folder chaproject vo lu vo .10

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn103. S lc Keil C v 8051To folder chaproject vo lu vo .11

Chn dng AtmelDuy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn113. S lc Keil C v 8051 Chn vi iu khin 89C52 hoc 89S5212 Khi hp thoi ny xut hin, chn NO

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn123. S lc Keil C v 8051 Lc ny Keil C s hin th nh th ny:13

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn133. S lc Keil C v 8051 To file mi dng lp trnh (Ctrl + N)14 Save file mi to vi tn file.c

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn143. S lc Keil C v 8051 Add file.c va to vo Project15

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn153. S lc Keil C v 8051 Chn th vic IC 8051 dng lp trnh16 Chn Targer Option iu chnh xut file.hex

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn163. S lc Keil C v 8051 Chn tab Output > check vo Create HEX File17

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn173. S lc Keil C v 8051 Lp trnh (vit code) cho vi iu khin 8051.18

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn183. S lc Keil C v 8051Nhn F7 bin dch ra file.hex v kim tra li code.Li warning (cnh bo) nh hn li Error.19

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn193. S lc Keil C v 8051Np code vi file.hex va c to ra vo IC 8051.C th m phng s hot ng ca chng trnh bng Proteus.

20

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn20Project 1: Lp trnh vi hm while v lnh OUTPUT Yu cu: Chp tt 1 LED n.

Mch mu v nguyn l mch (Proteus).Lp trnh s dng hm main(){}, while(){}, output (Keil C).Bin dch code ra file hex np cho vi iu khin.Lp trnh t do.

21Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn21Project 1: Lp trnh vi hm while v lnh OUTPUTHm main(){} ton b chng trnh s c thc thi trong hm ny.

C php:void main() { // u tin chng trnh c thc hin y }

22Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn22Project 1: Lp trnh vi hm while v lnh OUTPUT Hm while (iu kin) {} Nu iu kin ng (hoc khc 0) th thc hin chng trnh trong hm. Sau khi thc hin xong, kim tra li iu kin Nu iu kin sai, thot ra khi hm. C php:while (a > 100) { // nu a > 100 th thc hin chng trnh }

23Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn23Project 1: Lp trnh vi hm while v lnh OUTPUTC php:

while (1) { // V 1 lun ng, cho nn chng trnh s // thc hin mi mi trong hm. // Cho ti khi vk b RESET // Hoc cp in! }

24Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn24Project 2: Lp trnh vi hm if-else v lnh INPUT Yu cu: Chp tt 1 LED n thng qua phm bm.

Mch mu v nguyn l mch (Proteus).Lp trnh s dng hm if(){} else(){}, input (Keil C).Bin dch code ra file hex np cho vi iu khin.Lp trnh t do.

25Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn25Project 2: Lp trnh vi hm if-else v lnh INPUT Hm if(k1){cv1} else if(dk2){cv2} else{cvx} Nu k1 ng (hoc khc 0) th thc hin cv1, sau thot ra. Nu k1 sai, kim tra k2. Nu k2 ng, thc hin cv2, sau thot ra. Nu k2 sai, kim tra tip.. Nu tt c k u sai, thc hin cvx. P/s: C th ch c if(){} if(){} else if(){} if(){} else()

26Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn26Project 2: Lp trnh vi hm if-else v lnh INPUT C php: if(x>100) { // Nu x > 100, thc hin chng trnh // trong , sau thot ra khi hm. }

27Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn27Project 2: Lp trnh vi hm if-else v lnh INPUT C php:if( x > 100){ // Nu x > 100 th thc hin cv y}else{ // Ngc li th thc hin cv y}

28Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn28Project 2: Lp trnh vi hm if-else v lnh INPUT C php: if(x>100) { // }else if(x>90) { // }else if(x>70) { // }else if(x>60) { // }else { // }

29Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn29Project 3: Lp trnh vi hm switch case Yu cu: Chp tt 1 LED n thng qua phm bm (tng t yu cu trc).

Mch mu v nguyn l mch (Proteus).Lp trnh s dng hm switch() case(), input (Keil C).Bin dch code ra file hex np cho vi iu khin.Lp trnh t do.

30Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn30Project 3: Lp trnh vi hm switch case C php:switch(z){ case(0): { // nu z = 0 th thc hin ct y break; } // cc case() khc nu cn }

31Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn31Project 4: Lp trnh cc php tnh Yu cu: Chp tt nhiu LED.

Mch mu v nguyn l mch (Proteus).Khai bo cc bin s v mng d liu.Lp trnh s dng cc php tnh ton (Keil C). Bin dch code ra file hex np cho vi iu khin.Lp trnh t do.

32Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn32Project 4: Lp trnh cc php tnh Khi vk thc hin tnh ton, cc con s (bin) c lu trong b nh (RAM). RAM c gii hn. Cch khai bo bin s:< kiu_du _di_bin tn_bin; >unsigned: s khng du (vd: 0 255)signed: s c du (vd: -128 ti +127)char: bin s 8 bitint: bin s 16 bitlong: bin s 32 bit

33Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn33Project 4: Lp trnh cc php tnh VD:unsigned char time; - bin tn time c gi tr t 0 255 (8 bit).unsigned int x; - bin x c gi tr t 0 65535 (16 bit).signed int y; - bin y c gi tr t -32768 n 32767 (16 bit)signed long z; - bin z c gi tr t -2147483648 n 2147483647 (32 bit)

34Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn34Project 4: Lp trnh cc php tnh Lp trnh C c th tnh ton cc php +, -, *, /, %V d:signed char a = 1; signed char b = 2; signed char c = 3; signed char d,e; a = b + c; // a = 5 b = c a; // b = -2 c = a*10; // c = 50 d = a / 2; // d = 2 --- ly kt qu phn s thc e = a % 2; // e = 5 --- ly kt qu phn s d a += 5; // a = a + 5;

35Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn35Project 4: Lp trnh cc php tnh Mng l mt cm cha nhiu bin trong cng 1 tn.VD:unsigned char Matrix[5] = {1,3,5,6,9};

Mng c tn Matrix cha 5 bin unsigned char.Cch s dng:Matrix[0] = 10;Matrix[1] = 100;Matrix[2] = 255;unsigned char x;x = Matrix[3];

36Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn36Project 5: Lp trnh vi hm for Yu cu: Tng thi gian delay chp tt LED.

Mch mu v nguyn l mch (Proteus).Lp trnh s dng hm for(;;){} (Keil C).Bin dch code ra file hex np cho vi iu khin.Lp trnh t do.

37Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn37Project 5: Lp trnh vi hm forfor( gi tr ban u; iu kin; biu thc ){ // k ng, thc hin cng vic}

Khi gp hm for, u tin s khi to gi tr ban u > kim tra iu kin.Nu iu kin ng, thc hin cng vic trong hm for. Sau thc hin biu thc > kim tra iu kin.

38Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn38Project 5: Lp trnh vi hm forVD:

unsigned char x;for( x = 0; x < 10; x = x+1){ delay(50000); // hm delay thc hin 10 ln }

39Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn39Project 6: Lp trnh cc hm con Yu cu: iu khin ng c DC thng qua 2 phm bm.

Mch mu v nguyn l mch (Proteus).Lp trnh s dng hm con: qut phm, iu khin ng c (Keil C).Bin dch code ra file hex np cho vi iu khin.Lp trnh t do.

40Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn40Project 6: Lp trnh cc hm con Hm con: dng gi hm khi cn s dng. C 4 kiu hm con:Hm khng c bin a vo, khng c kt qu tr v sau khi thc hin.Hm c bin a vo, khng c kt qu tr v sau khi thc hin.Hm khng c bin a vo, c kt qu tr v sau khi thc hin.Hm c bin a vo, c kt qu tr v sau khi thc hin.

41Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn41Project 6: Lp trnh cc hm conHm khng c bin a vo, khng c kt qu tr v sau khi thc hin.VD: void khoi_dong_motor (){ // cng vic}

Sau khi c gi khoi_dong_motor(); , chng trnh khoi_dong_motor() c thc hin, sau thot ra.

42Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn42Project 6: Lp trnh cc hm conHm c bin a vo, khng c kt qu tr v sau khi thc hin.VD: void khoi_dong_motor (unsigned char toc_do){ // cng vic}

Sau khi c gi khoi_dong_motor(85); , chng trnh khoi_dong_motor c thc hin vi thng s toc_do c truyn vo l 85. Sau khi thc hin xong, hm s thot ra.

43Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn43Project 6: Lp trnh cc hm conHm khng c bin a vo, c kt qu tr v sau khi thc hin.VD:unsigned char quet_phim () { unsigned char ketqua; // cng vic qut phm trong y. return ketqua; }Sau khi c gi x = quet_phim() , hm quet_phim s thc hin. Sau khi thc hin xong, kt qu s c a vo bin x s dng.

44Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn44Project 6: Lp trnh cc hm conHm c bin a vo, c kt qu tr v sau khi thc hin.VD:unsigned char kiemtraPort(unsigned char port){ unsigned char ketqua; ketqua = port; return ketqua;} Sau khi c gi x = kiemtraPort(P2) , hm kiemtraPort s kim tra trng thi ca Port2, sau a kt qu v bin x s dng.

45Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn45Project 6: Lp trnh cc hm convoid tenHam (){ P1 = 255;}

void tenHam (unsigned int tenBien){ P0 = tenBien;}

46Cch gi hm s dng:void main () { tenHam();}

void main (){ tenHam(255);}

Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn46Project 6: Lp trnh cc hm con47Cch gi hm s dng:void main (){ unsigned char x; x = tenHam();}

void main (){ unsigned char y; y = tenHam(P3);}

unsigned char tenHam(){ unsigned char trangThai; trangThai = P3; return trangThai; }

unsigned char tenHam(unsigned int P){ unsigned char trangThai; trangThai = P; return trangThai; }Duy Khanh trnh by mc tiu kho hc--- Chun b gii thiu Quy trnh thit k mch in t c bn47