You are on page 1of 4

Gi s chng ta cn cho ng c chy ti trong 2s, dng 1s ri chy ngc trong 1s chng hn.

Chng trnh sau gip chng ta thc hin cng vic trn: M: #include<16F877A> #fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=10000000) main() { output_high(PIN_B0); output_low(PIN_B1); delay_ms(2000); output_low(PIN_B0); delay_ms(1000); output_high(PIN_B1); output_high(PIN_B0); delay_ms(1000); } Gii thch tng dng nhe. M: #include<16F877A> Khai bo con PIC bn s dng, file ny chng trnh vit sn nhm khai bo cc bit, thanh ghi quan trng trong con pic ny.Cc bn c th vo th mc ci t C:\Program Files\PICC\Devices\16F877A.h xem n khai bo c nhng g trong ! M: #fuses NOWDT,PUT,HS,NOPROTECT Thit lp cc config M: #use delay(clock=10000000) Khai bo tn s xung clk cp vo (n bng tn s con thch anh bn xi) M: output_high(PIN_B0); output_low(PIN_B1); Mi port ca PIC c 1 thanh ghi Tris 8 bit. Mi bit ca thanh ghi ny tung ng vi trng thi ca mt pin trong port . 1 l input, 0 l output... Trc khi c hay xut d liu ln port phi tc ng ln Tris trc. Tuy nhiN CCSC cung cp hai hm output_high() v output_low() cho php xut ring r tng pin ca PIC. lnh ny tc ng trc tip ln thanh ghi tris, bn khng cn thay i tris. Tuy nhin khi cn inport hoc outport ton b cc bit, c 1 cch khc l fast i_o, mnh s cp sau.

Ngc li, CCSC cung cp lnh input_pin() c 1 gi tr t chn VK gi s mch ca mnh thit k chn B0 l ON-OFF, B1 l dirrection th hai lnh trn set cho ng c chy ti. M: delay_ms(1000); To tr 1000 ms=1s; Kh n gin phi khng no? Tuy nhin s dng ton b 1 port ca VK PIC cho cng 1 chc nng th sao nh, v d dn sensor d ng 8 led chng hn. Khng l ngi input_pin() nguyn 1 dc di ? Rt thiu chnh xc v ... cc nh con mc. Ti sao khng gn mt tn gi nh cho 1 port ri gi tn y ra. Cch ny mnh s trnh by trong k tip theo, mong b con ng h... Net ci bp qu, bc c mnh. S b thng no i ct cp bn ve chai...ang post th disconnect...Grrr... Ri, x xong stress ri, tp tc gii thiu v Pic C nh. y l cu tr li cho vic xut nhp Port bng khai bo fast_io. Bi ton l vy, gi s bn c port d l dn sensor d ng 8 led, port b l 8 ng c chng hn. Bn mun nu hai bit trung tm sng th bt hai c bnh xe chy ti, nu sng ht th ti vch ngang dng li, cn nu ti thui ht th l lc ng, li li. Ni chung l tm thi n gin ha vy thui, cn d ng tht th phc tp hn nhu. M: #include<16F877A> #fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=10000000) #use fast_io(d) #use fast_io(b) #byte portb=0x06 #byte portd=0x08 [code]#bit B0=0x06.0 [/code] //On-off bnh 1 #bit B1=0x06.1 //Chiu bnh 1 #bit B2=0x06.2 //On-off bnh 2 #bit B3=0x06.3 //chiu bnh 2 main() { int i; set_tris_d(0xFF); set_tris_b(0); while(true) { i=portd;

//c port D vo

if (i==0x18) {B0=1; B1=0; B2=1; B3=0; } else if (i==0) {B0=1; B1=1; B2=1; B3=1; } else if (i==0xff) {B0=0; B1=0; B2=0; B3=0; } else continue; } } M: #byte portb=0x06 #byte portd=0x08

// 00011000

//00000000

//11111111

Khai bo a ch port b v port d. N khng c khai bo ny portb v portd s khng c define M: #bit B0=0x06.0 ... Khai bo chn Port B.0, bn c th t n bng ci tn khc, nu thch, nhng quan trng l a ch bit phi ng thui. M: set_tris_d(0xFF); set_tris_b(0); Tt c cc chn ca portB l output, mun set tt c cc chn l input th trong ngoc l FF,.... Trong HELP hng dn lnh ny nh sau: "These functions allow the I/O port direction (TRI-State) registers to be set. This must be

used with FAST_IO and when I/O ports are accessed as memory such as when a #BYTE directive is used to access an I/O port. Using the default standard I/O the built in functions set the I/O direction automatically." R rng khi set byte lm I/O nu ta thm khai bo: M: #use fast_io(b) th CCSC ch dng 1 lnh cho vic xut nhp port, nu khng n s mt khong 3-4 lnh g . c bit nn nh nu dng fast_io th phi set tris trc khi xut ra bin gi nh m mnh define trc . Nu khng d liu s nm hoi trong buffer ca port m khng c xut ra u y... Vy l phn I/O + delay tm n. Cc bn c th th vit chng trnh xut led chy tri phi, led 7 on hay iu khin xut nhp d liu t cc port chng hn. Mt v d thc t nht lin quan ti Robocon l vit chng trnh nhn phm nhn t bn phm iu khin v thc hin cc tc v tng ng. VD,bm phm 1 th chy ti, 2 chy li, v.v... Bn na vit c ci g hay hay th post ln cho mi ngi bn lun nghen. Sao c mnh tui c din ci topic ny hoi th???

You might also like