You are on page 1of 30

Hng dn dung board thc hanh nhiu dang thc chay vi ic lp trinh: AT89C51

Bai ang soan...ni dung se lun c chinh ly Dn nhp

T khi con ngi ch tao ra c cac loai ic lp trinh, lam vic vi cac cu lnh, thi nganh in t a chuyn qua mt thi ky mi vi rt nhiu ng dung hp dn, hay la. T cac ic lp trinh chung ta bt u lam quen vi khai nim "phn xac" va "phn hn", hay con c goi la phn cng va phn mm. Phn xac la gi? La cac linh kin tao ra mach in, tao ra thit bi. No ging nh bp thit, u minh va tay chn cua chung ta, phn xac thng nh la cac vt th hu hinh co khi lng va v tri v giac. Phn hn la gi? La cac cu lnh v hinh, ma chung ta a soan ra va cho nap vao b nh cua cac ic lp trinh, dung cac cu lnh nay chung ta co th iu khin cac dang hoat ng cua phn xac. Chung ta thy cung chi trn mt b nh ma khi chung ta cho thay i cac cu lnh mi, vi cac cu lnh mi nay thi phn xac lai co th tao ra cac ap ng mi, cac ng tinh mi. o chinh la cu truc cua cac mach in thi ai, cua cac loai thit bi i mi, trong o lam vic vi cac loai ic lp trinh. T hiu bit trn chung ta se thy cng vic cua ngi thit k in t ngay nay se gm cac bc nh sau: Bc 1: Tao ra cac vt th ging nh cng vic tao ra mt cai xac co u u minh va t chi. Vi cac cai xac khng hn thi v tri v giac, khng lam c tro trng gi ca. Bc 2: Vit cac chng trinh ngun iu khin cac b phn cua phn xac. Nh chng trinh iu khin s i ng, chng trinh iu khin tay chn, u minh... Bc 3: Dich cac chng trinh ngun vn la cac cu lnh thanh cac dong ma lnh va cho nap cac dong ma lnh vao nm trong b nh cua thit bi. Bc 4: Cho vn hanh th cac thit bi xem xet cac hoat ng cua no co ung vi y mun cua ngi thit k khng? Nu cha va y thi cho hiu chinh lai, thng cng vic la vit lai cac chng trinh ngun. Ngay nay ngi ta ch tao ra bit bao th thit bi thng minh, kt hp tai tinh gia phn xac va phn hn, no hoan toan co th lam c nhiu vic ging nh mt sinh vt sng. Trong ngh nghip, chung ta khng mun minh bi "lac hu", thut lui, vy phai tim hiu loai ic lp trinh nay thi. Nhng khi u phai t bc nhp mn, vy lam quen vi ic lp trinh AT89C51 vy.

Gii thiu bo thc hanh vi ic lp trinh AT89C51


1. Tim hiu hoat ng cua ic lp trinh AT89C51.

Hinh trn cho thy ic lp trinh n phin AT89C51 co 40 chn, cng dung cua cac chn nh sau: Chn cui cua hang di, chn 20, cho ni masse, chn cui cua hang trn, chn 40, cho ni ngun 5V Chn 9 la chn reset, khi chn nay mc ap cao, IC se trang thai reset. Chn 18, 19 dung gn thach anh inh tn cho xung nhip, vi thach anh 12MHz, chu ky lnh se la 1us. Chn 31 dung khai bao IC se lam vic vi b nh nao, khi treo chn nay ln mc ap cao, IC se chi lam vic vi b nh trong. IC AT89C51 co 4 cang dang 8-bit dung xut nhp bit. Cac cang c t tn la p0, p1, p2 va p3. Cang p0 gm cac chn: 39, 38, 37, 36, 35, 34, 33, 32.

Cang p1 gm cac chn: 1, 2, 3, 4, 5, 6, 7, 8. Cang p2 gm cac chn: 21, 22, 23, 24, 25, 26, 27 ,28. Cang p3 gm cac chn: 10, 11, 12, 13, 14, 15, 16, 17. Ghi nh: tin dung trn cac chn cua cac cang u a cho t tn ring, do vy chung ta co th x dung cac tn nay trong cac cu lnh ma khng cn phai nh s chn cua IC. Cung chu y co mt s chn a nhim, nghia la chn o co th lam nhiu nhim vu. Nht la cac chn cua cang p3. Ngi ta thng dung 2 cang p0 va p2 truy cp ia chi 16-bit cua cac b nh ngoai, vi kha nng truy cp ia chi 16-bit, no co th lam vic vi cac b nh co 65536 thanh nh.

Khi dung ic lp trinh n phin AT89C51, Ban chu y n 4 iu sau y:

. Vn cp ngun, IC AT89C51 lam vic vi mc ngun 5V, ngun nui cn co n inh tt. Do vy Ban nn dung ic n ap 7805 co ngun 5V cp cho IC nay. . mach reset, Ban dung tu khoang 10F va in tr co tri 10K tao ra mc ap cao ngay khi mach c cp in, vi mc ap cao xut hin trn chn s 9,

IC se vao trang thai reset, no tra cac thanh ghi trong IC v trang thai reset va quay lai chay dong lnh t thanh 0000h trong b nh ROM. . Mun ic lp trinh hoat ng Ban phai gn thach anh trn chn 18, 19 dung inh tn cho mach dao ng tao xung nhip. Thach anh thng dung trong thc nghim la 12MHz, vy chu ky thc hin lnh se la 1s. . Nu chi lam thc nghim vi cac cu lnh co trong b nh ROM bn trong, nghia la khng dung b nh ngoai, Ban cho treo chn 31 ln mc ap cao. Khi a thoa man 4 iu kin trn, by gi Ban a co th dung cac cu lnh nap vao b nh ROM va dung ic AT89C51 lam cac cng vic ma Ban mun.

2. Mach in ng dung c ban cua ic lp trinh AT89C51. Trn bo thc hanh a dung, Ban thy chung quanh ic lp trinh n phin AT89C51 co dung n cac ic 74245 lam tng khuch ai dung iu khin vic xut nhp cua cac bit ra vao trn cac cang cua IC.

Trc ht chung ta hay tim hiu cng dung cua cac ic 74HC245.

Hinh trn cho thy, ic logic 74HC245 co 8 tng khuch ai song hng. IC lam vic vi chn cui cua hang di, chn 10, cho ni masse va chn cui cua hang trn, chn 20, cho ni ngun 5V. Cac tng khuch ai vi A0 - B0, A1- B1, A2 - B2, A3 - B3, A4 - B4, A5 - B5, A6 - B6, A7 - B7. Chn 19 /OE dung kich m hoat ng cua ic khi no mc volt thp, hay cho ni masse, khi chn nay treo mc ap cao, cac nga xut nhp se cho trang thai th ba, nghia la trang thai co tr khang v cung ln, xem nh h mach. Chn s 1 chon hng i cho tin hiu. Khi chn DIR mc ap cao, thi tin hiu vao bn A ra bn B va khi chn DIR mc ap thp thi tin hiu vao bn B va ra bn A. Tom lai, ngi ta dung ic 74HC245 khuch ai tng cng cho cac cang cua ic lp trinh AT89C51. Vy, co th thy, trong s mach in trn, khi 4 khoa in trong S u h thi cac chn DIR u cho mc ap cao, luc nay tin hiu vao bn A va ra bn B, hay co th noi no dung cho mode xut bit trn 4 cang cua AT89C51. Nu mun nhp bit vao cac cang cua ic AT89C51 chung ta phai t chn DIR xung mc ap thp. Trong mach ngi ta con dung cac in tr thanh treo ap cac chn ln mc ap cao. Vy s mach in nay cho thy phn mach trung tm dung chay ic lp trinh n phin AT89C51, Ban co th dung bo dy ni 8 ng cho kt ni cac cng p0,

p1, p2 va p3 n cac b phn chiu tac ng iu khin khac cung trang bi trn bo lam thc hanh vi bo mach a dung nay.

3. Cu truc cua cac chng trinh ngun. Ban cho gn 8 Led vi cac chn cathode ni masse va cac chn anode ni vao cang p1. S mach in nh hinh sau:

By gi Ban hay vit mt chng trinh ngun 8 Led ny ln lt sang ln tng Led va khi 8 Led a sang ht thi cho tt ht 8 Led va ri bt u lai.

org 0000h ; thanh nh khi u trong b nh ROM jmp loop ; dung lnh nhy, cho nhy qua cac thanh nh dung cho ngt org 0080h ; sp xp cac lnh sau t thanh nh ny tr i

loop: mov p1,#00h ; t 8 chn cua cang p0 xung mc ap thp, tt ht setb p1.0 ; cho sang led trn chn call delay ; goi chng trinh lam setb p1.1 ; cho sang led trn chn call setb p1.2 ; cho sang led trn chn call setb p1.3 ; cho sang led trn chn call setb p1.4 ; cho sang led trn chn call setb p1.5 ; cho sang led trn chn call setb p1.6 ; cho sang led trn chn call setb p1.7 ; cho sang led trn chn call JMP LOOP ; quay lai, bt u t tn nhan loop delay:

8 led p1.0 chm p1.1 delay p1.2 delay p1.3 delay p1.4 delay p1.5 delay p1.6 delay p1.7 delay

; oan chng trinh dung lam chm mov r5,#20 ; nap tri thp phn 20 vao thanh d1: mov r6,#40 ; nap tri thp phn 40 vao thanh d2: mov r7,#248 ; nap tri thp phn 248 vao thanh djnz r7,$ ; cho tri trong r7 giam theo bc -1, ch r7 = djnz r6,d2 ; giam tri trong r6, cha =0, quay lai djnz r5,d1 ; giam tri trong r5, cha =0, quay lai ret ; quay tr lai dong lnh sau lnh call end ; dng cng vic bin dich y. Phn tich cach vit chng trinh ngun trn:

r5 r6 r7 0 d2 d1

Cac cu lnh setb p1.x tip theo se ln lt lam cho cac Led trn cac chn p1.1, p1.2, p1.3. p1.4. p1.5, p1.6, p1.7 sang ln. Chung ta thy nh hinh minh hoa sau:

Phn tich oan chng trinh dung lam chm:

Sau cung dung gia lnh end bao cho dng bin dich tai dong nay. Nh vy nhng dong lnh tip theo bn di gia lnh end u se bo qua. Sau y la chng trinh ngun, cung lam cac cng vic ging nh trn, c vit theo ngn ng lp trinh C. #include<reg51.h> // xac inh cac inh nghia ly trong file reg51.h #define uchar unsigned char // dung inh nghia t tn tin dung #define uint unsigned int // dung inh nghia t tn tinn dung #define LED P1 // dung inh nghia t tn tin dung uchar led_value[]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0xff}; // tao cac tri cho 8 Led sang lan ln uchar *p=led_value; // gan tri khi u void delay() // tao ham lam chm

{ uchar ii,jj; for(ii=0;ii<200;ii++) for(jj=0;jj<200;jj++); } void run_led() // tao ham cho 8 Led sang lan trn cang 1 { while(*p!=0xff) { LED=*p; // gn tri vao cang p1 p++; // nhp tri tip theo delay(); // goi ham tr } p=led_value; } main() // Khi chay ham chu { while(1) run_led(); // chay ham cho 8 Led sang lan } Gop y cua ngi soan: Nu Ban la dn th in t, va mi lam quen vi ic lp trinh AT89C51, Ban nn hoc vit chng trinh ngun vi Assembler, cac cu lnh trong Assembler gn vi phn mach nhiu hn nn d hiu hn. Trong bai vit nay, cac bai tp ti se chi dung cu lnh vit vi Assembler va c gng gn cac cu lnh nay vi phn mach in Ban mau tip thu hn. Phn dung ngn ng lp trinh C, chung ta se noi n trong cac bai vit khac.

4. Tim hiu trinh bin dich MIDE-51 Sau khi cai xong trinh MIDE-5, trn desktop may tinh cua Ban se thy co tiu hinh nh hinh sau: Mun m trinh MIDE-5, Ban nhay chut 2 nhip nhanh trn tiu hinh nay.

Giao din cua trinh MIDE-51 hin ra nh hinh sau:

Ban cho m cac file co ho .asm hay ct cac cu lnh cua assembler dan vao vung bin soan nay sa i ri cho bin dich ra cac dong ma lnh:

Mt thi du: Ti ct ri dan cac cu lnh trn vao vung soan thao cua MIDE-51, sau khi t cho no mt cai tn "8 led p1.asm", save lai va nhn phim F9 cho dich cac cu lnh ra dong ma lnh. Kt qua co file "8 led p1.hex" nh sau:

Ni dung trong file "8 led p1.hex" la cac dong lnh c ghi lai vi ma thp luc phn. :030000000200807B :10008000759000D2901200ADD2911200ADD29212B2 :1000900000ADD2931200ADD2941200ADD2951200F1

:1000A000ADD2961200ADD2971200AD80D37D147EF2 :0A00B000287FF8DFFEDEFADDF622FD :00000001FF By gi Ban chi dung mt hp nap ma Ban co, cho nap cac dong ma lnh vao ic lp trinh AT89C51. n y la xong chuyn, Ban a "cy phn hn" vao b nh cua IC. Nu gn IC vao mach thc nghim, no se lam ung cac cng vic ma Ban mun no lam, tuyt i khng bao gi bit "ku ca" nu ngun in cp cho mach vn con u.

5. Hp nap. Hin nay trn thi trng co rt nhiu bo nap ROM dung cho cac loai ic lp trinh, y ti gii thiu mt bo nap "c in", Ban co th mua kit v t rap, hay mua bo a rap sn cung co. Bo khng c tin, di 100.000 ng, nhng s ic lp trinh ma bo chiu nap cung it thi. Nu chi dung nap cho nhom cac ic AT89Cxxxx thi co bo nay cung u dung.

Nguyn ly vn hanh cua bo nap nay nh sau: Phn tch mch ngun nui: Vi IC n p 7805, mc p ng ra trn chn Output s l 5V, y Bn dng t lc nh C4 (10 F) dp hin tng dao ng t kch bn trong IC. Nhn vo hnh, Bn thy IC n p 7805 dng v TO220, y ch cch b tr cc chn IN, GND v chn OUTPUT (loi IC ny chn gia lun cho ni masse). Bn nh vi cc IC vi iu khin, mc p ngun nui phi rt n nh, s bt n nh trnng ngun se lm cho IC hot ng khng n nh. Chng ta bit cc IC CPU thng lm vic mc ngun chun +5V, n cn ng ngun c n nh rt cao. Trong mch ny, ngi ta dng cu nn dng vi 4 diode (khong 1A) v t lc C8 (470 F) to ra ng ngun khong 15V (vi mc ngun AC ng vo l 12V). T nh C9 (0.1 F) dng lc b nhiu tn cao nhim trn ng ngun. Dng Led o v in tr hn dng 1.2K ch th. T ng ngun DC ly trn t C8, qua IC 7805, chng ta s ly ra c mc p +5V c n nh cao. Mc ngun ny s cp cho chn 40 ca cc IC vi iu khin U1 (89C51 Master), U2 (89C51 Slave) v chn 16 ca IC MAX232. Trong mch cn dng IC n p c chn nh p ng ra (Adjustment) LM317, IC LM317 Bn c th dng 2 in tr cho ly tn hiu hi tip ng ra tr v chn Adj, s thay i ca cc in tr ny s lm thay i mc p DC ng ra. y, khi Q1 bao hoa, mc p trn chn Adj xc lp theo cacin tr 270 v 2.2K//1.2K, lc ny in p ra s cho mc p 5V. Mc p ny cp cho chn s 31 ca U2 (AT89C51, Slave). Chn 31 l chn _EA/Vpp (External Access), khi n b t mc p cao (5V), IC vi iu khin U2 (AT89C51) s khng truy cp cc chng trnh nm b nh bn ngoi, nghia l n s ch chy cc chng trnh a c trong b nh EEPROM bn trong AT89C51.Chng ta cn bit, nh thit k cn s dng chn 31 (Vpp), khi a chn ny ln mc p 12V, cho xa cc chng trnh a c trong b nh EEPROM, trc khi cho np cc chng trnh ma lnh mi vo b nh EEPROM trong IC lp trinh AT89C51. cho np cc chng trnh ma lnh ly vo trn cc cng nhp xut P0, P1, P2, Bn hy cho chn 31 ln mc p VPP = 12V. lm iu ny, mc p ra trn chn s 13 ca U1 (AT89C51, Master) s chuyn xung mc thp (mc 0), n s lm ngng dn Q1, nh vy in tr 1.2K trn chn C ca Q1 a uc cho ct masse, n lm tng in tr ni masse ca chn Adj ca ic n ap LM317, iu ny s khin cho mc p ra trn chn Out ca LM317 tng ln 12V, iu ny s cho xa cc d liu a c trong b nh EEPROM va cho ghi vao cac dong lnh mi. Ghi ch: Nu ngun nui DC thp hay v l do no , chn 31 ca U2 (89C51, Slave) khng ln cao (12V), lc vic ci t s khng thnh cng, Bn s thy xut hin ch Failed (thay v l ch Complete) trn ca s ca cc phn mm ci t (cua EZ4.EXE)t LED ch th mu xanh, in tr hn dng 470 v

diode Zener c Vz=5.6V. Vy khi bnh thung mc p chn 31 l 5V, Led ch th mu xanh s khng pht sng. Khi vao mode ghi n ln 12V, LED ny s pht sng bo cho Bn bit trng thi mc p trn chn s 31. kim tra mch ngun, Bn cp in cho mch, o p trn ng ra ca IC n p 7805, mc p s l 5V, ly mt bng en tim lm ti, nu khi c cho mang ti nng m mc p khng gim xung, l mch ngun 5V tt. o volt trn ng ra ca IC n p LM317, cho chn B ca Q1 ni masse, nu mc p trn chn Out cua LM317 tng ln mc 12V l tt (Khi kim tra ngun, Bn khng cn gn cac ic AT89C51 U1, U2 vo bo). Tom lai, khi dung bo nap nay, trc ht Ban phai co phn mm EZ4.EXE. Cho bo nap kt ni vi may tinh qua cng COM, kich m phn mm nay, chon ung tn ic cn nap, nu trinh EZ4 nhn thy bo nap, Ban hay nhn nut cho nap, file ma lnh co ho la .hex ma Ban a chon se qua ic AT89C51 Master cho nap vao b nh EEPROM cua ic lp trinh AT89C51 ma Ban a cm trn b chn Slave cua bo nap.

Gii thiu bo hp nap TOP853: y la hp nap a c gii thiu trn trang web phuclanshop.com, Ban vao trang ny xem cach hng dn s dung.

6. Hng dn lam thc hanh trn bo thc hanh a dung dung ic AT89C51.

Hinh chup cho thy toan phn mt bo thc hanh, dung vi ic lp trinh AT89C51. Chung ta bit ic lp trinh nh AT89C51... co th lam c rt nhiu cng vic, no tuy thuc vao cac mach in kt ni trn cac cang va cung tuy thuc vao chng trinh ngun ma Ban a soan ra va cho nap vao b nh EEPROM. Do vy ngay nay trn thi trng a co rt nhiu bo mach ma trn o ngi ta a tao ra rt nhiu kiu mach thc dung Ban co th lam thc hanh vi ic lp trinh mt cach tin li, vy nu thy thich Ban co th tim mua v t hoc lp trinh vi cac kiu mach in a c trang bi trn bo mach nay. bai nay ti gii thiu mt bo mach thc hanh rap ni ia co gia ban thp Ban tim hiu, ngoai ra con rt nhiu bo mach thc hanh ngoai nhin rt "bt mt" nhng gia ban cao, di nhin ri, theo ti nu chi dung lam thc hanh cho cac bai hoc lp trinh Ban tim cac bo thc hanh rap ch Nht Tao P7-Q10 cung c ri, thm chi Ban t rap cac phn mach in thc hanh ring re dung cho tng bai tp thc hanh cung c.

Cac bai thc hanh co th lam trn board nay gm co:

. Lam thc hanh vi 32 Led trn 4 cang p0, p1, p2, p3

S mach in trn cho thy, trn bo thc hanh a dung co 32 Led, chia ra lam 4 nhom. Ban dung bo ni loai 8 dy, cho ni cac Led nay vao cac cang cua ic lp trinh AT89C51, ri t nghi ra cac kiu nhp nhay cua cac Led, sau o m trinh MIDE-51, th t dung cac cu lnh Assembler vit cac chng trinh ngun va ri cho bin dich ra thanh cac dong ma lnh, dung hp nap cho nap cac dong ma lnh nay vao b nh EEPROM cua ic lp trinh, sau o gn ic AT89C51 va bo mach thc hanh va cp in cho chay th, xem din bin trn cac Led co ung vi y mun cua Ban khng? Nu khng ung thi hay tp trung suy nghi tim ra ly do, c lam i lam lai nhng cng vic nay, Ban se tich luy c nhiu kinh nghim trong vic lp trinh, o la bc khi u rt tt t hoc cach dung loai IC lp trinh. Cho mt thi du: Ti mun lp trinh, tc vit cac cu lnh, co kiu chp cua cac Led nh hinh sau:

Trc ht Ban hay chon inh cac kiu nhp nhay tuy thich, sau o tim cach dung cac cu lnh, vit ra chng trinh ngun ic lp trinh AT89C51 t ng lam ra c iu Ban mun. lam c kiu nhay nh trn Ban co th vit chng trinh ngun nh sau:

org 00000h start: mov p0, #00000000b mov p1, #00000000b mov p2, #00000000b mov p3, #00000000b call delay setb p0.7 setb p3.0 call delay
setb p0.6

setb p3.1 call delay


setb p0.5

setb p3.2 call delay

setb p0.4

setb p3.3 call delay


setb p0.3

setb p3.4 call delay


setb p0.2

setb p3.5 call delay


setb p0.1

setb p3.6 call delay setb p0.0 setb p3.7 call delay mov p1, #11111111b mov p2, #11111111b call delay mov p1, #00000000b mov p2, #00000000b call delay
jmp start

delay: mov r7, #10 v6: mov r6, #50


v5: mov r5, #200 djnz r5, $ djnz r6, v5 djnz r7, v6 ret end Trong nhiu bai vit trc y, chung ti cung a trinh bay v cach dung Assembler vit cac chng trinh ngun cho cac ic lp trinh. Ban co th tim oc lai. hiu ro hn cac cu lnh dung cho ic lp trinh AT89C51. Ban co th vao oc bai vit nay.

. Lam thc hanh vi 8 en s dung Led ma 7 oan. Hinh ve sau cho thy trn bo thc hanh co 8 en s dung Led ma 7 oan cho hin thi cac s thp phn. Trong phn thc hanh nay, chung ti se trinh bay cach vit chng trinh ng h chi thi gian dung 6 en s cua bang en nay.

Nhn Ban: tranh bai vit qua dai, mi ng dung ti se phn tich y u hn trong mt chuyn muc ng dung cua ic lp trinh AT89C51.

Ban click chut vao dong nay vao bai: ng dung AT89C51 trong ng h co hen gi.

. Lam thc hanh vi bang Led ma trn 8x8. y la s mach in ng vi phn thc hanh dung en Led ma trn 8x8 cho hin hinh va chay ch, Ban hiu ro cach dung loai en Led ma trn, chung ti vit thm mt bai phu, Ban hay vao xem.

You might also like