HỌC PIC QUA VÍ DỤ

  • Upload
    minhkiyo

  • View
    2.098

  • Download
    10

Embed Size (px)

Citation preview

-------------------------------------------------------------------------------------------------------------

T HC LP TRNH C CHO PIC QUA V D.Bin Son: Ch Phan Vinh Hiu.

Tp 1: Dnh cho ngi mi bt u

-------------------------------------------------------------------------------------------------------------

Li ni u:Trn th gii, dng Vi iu khin Pic (Programmable Interlligent Controller) ang c s dng ngy cng rng ri trong mi lnh vc ca i sng do cc tnh nng vt tri ca n so vi cc dng VK khc. Do , nhu cu hc tp, nghin cu v ng dng Vi iu Khin Pic trong gii sinh vin cc trng khi k thut cng nh ca cc anh ch ang lm vic trong cc lnh vc in-in T-T ng Ha ngy cng cao. Tuy nhin, ti liu Ting Vit ca VK Pic hin nay cha nhiu v cn nng tnh l thuyt, hc thut m cha i su vo thc t ng dng nn cn gy nhiu kh khn cho ngi hc. T l do , ti vit cun ny vi mong mun l em ti cho c gi mt cch tip cn VK mi: d hiu, d lm, t tn thi gian v tit kim chi ph nht nhng vn m bo lng kin thc cn thit cc bn c th t m rng, nng cao. Trong cun sch ny chng ta tng bc hc cch lp trnh v s dng cc modul ca Pic qua cc bi tp thc t, trc quang. Ti liu chc chn khng trnh khi thiu st, ti mong nhn c kin ng gp chn thnh ca cc bn cc n bn sau c tt hn. Rt cm n. Mi th t, kin, ng gp v thc mc xin gi v a ch: [email protected] Handphone: 0983053941.

-------------------------------------------------------------------------------------------------------------

Mc lc Phn 1: Cc bc chun b trc khi lm vic vi PIC.1- Tng quan. 2- Gii thiu v hng dn ci t CCSC 3- Rp mch hot ng ca Pic. 4- Rp mch np ca Pic. 5- Gii thiu v s dng chng trnh Win Pic-800. 6- Kim tra mch np v mch test. 7- Gii thiu VK Pic-Pic 16f877a. 8- Cu trc c bn ca mt chng trnh C cho Pic.

Phn 2: Cc bi thc hnh.Bi tp 1: Bt tt n Led. Bi tp 2: DK dong co buoc. Bi tp 3: iu khin tc ng c DC. Bi tp 4: Giao tip vi bn phm. Bi tp 5: Qut Led 7 on. Bi tp 6: o - hin th nhit .

-------------------------------------------------------------------------------------------------------------

Phn 1: Cc bc chun b trc khi lm vic vi PIC.1 Tng quan: lm vic vi VK chng ta cn c 3 th c bn: Trnh bin dch (Compiler), Mch-chng trnh np(Programmer) v Kit thc hnh . V trnh bin dch : Chng ta s dng CCSC phin bn 4.0.11 cho php chng ta dng ngn ng C lp trnh cho Pic, trnh bin dch ny cc bn c th t ti trn mng hoc ly trong a CD nh km theo sch. Mch np(Programmer) v Kit thc hnh: Ti c tng km theo sch 2 PCB: 1 PCB mch np loi JMD Programmer v 1 PCB kit thc hnh kh n gin cc bn c th mua linh kin v t rp, trong a CD ti c ghi danh sch linh kin cn mua v hng dn chi tit cch lp rp, cc bn chu kh nghin cu. Ngoi ra, cc bn c th s dng bt k loi mch np v kit test no m cc bn c min l c nguyn l phn cng ging nh yu cu m ti m t mi bi tp. Chng trnh np: Chng ta s dng chng trnh Winpic 800 phin bn -----, trong a CD ti cng hng dn chi tit cch s dng.

-

2

Hng dn ci t v s dng CCSC:

Mt trong nhng kh khn vi ngi hc khi ln u tip cn vi VK l vic lp trnh bng hp ng do s kh hiu v phc tp ca n. Do ti chn ng C gii thiu vi cc bn nhm to s d chu cng nh rt ngn thi gian lm vic cho ngi dng VK. Vi u th v s n gin, tin li, C dng nh l 1 gii php cho ngi hc VK. Tuy nhin, nu c thi gian cc bn nn tm hiu thm v hp ng c nn tng vng chc .

Phn mm CCSC l phn mm ph bin lp tri2ng C cho Pic. Ti s dng phin bn 4.016 lm vic. Hng dn ci t: B a CD vo a. Click vo file CCS_PCWH_4.016. Trong c cha 3 file:

-------------------------------------------------------------------------------------------------------------

ci thnh cng trnh bin dch ny cc bn phi tun th theo 3 bc sau: Bc th 1: Ci t chng trnh Click vo tp tin pcwhupd ci t.

Click next.

Chn th mc ci t. Click next.

Click next. bt u qu trnh ci t.

-------------------------------------------------------------------------------------------------------------

Sau khi hoan tat my s hin ra thng bo i file ng k:

Nhn cancel. Ri nhn Finish. Bc th 2: ng k Sau bn chp file KeyfileGen t tp tin CCS_PCWH_4.016. vo th mc ci t C:\Program Files\PICC ng k s dng Click vo KeyfileGen lc s hin ln bng thng bo sau:

Click vo Tab Generar licencias.org s xut hin:

-------------------------------------------------------------------------------------------------------------

Bn tm ng dn n th mc ci t PICC

Sau click vo PICC ri nhn OK Bc th 3: Cui cng l ci phn update cho chng trnh . Bn click vo tp tin ideutilsupd trong th mc CCS_PCWH_4.016 a CD:

Tip tc Click next

------------------------------------------------------------------------------------------------------------Sau khi hon tt bn nhn finish ri khi ng li my. Hng dn s dng CCSC. Sau khi khi ng li my, trn mn hnh Desktop s xut hin Icon:

Click vo Icon ny ca s lm vic chnh s m ra.Thanh Menu

Mc Help

Save

Trn thanh Menu c cc mc l: File, Project, Edit, Search, Compile, View, Tools, Debug, Document, Users. Bn nhn vo tng mc xem cc chc nng c th.

-------------------------------------------------------------------------------------------------------------

* Mc File : FILETo 1 chng trnh son tho mi. M 1 chng trnh c sn. ng 1 chng trnh ang m. Lu ni dung chng trnh. Lu ni dung chng trnh vi 1 tn khc.

* Mc Compile ( bin dch): COMPILENhn vo y (hoc nhn F9) dch ra file hex. Xem m asm c dch t file C.

Xc nh ging Pic ang lp trnh.

* Mc Tool (cng c):Dng hin th ni dung VK gi v PC qua cng RS232. Dng dch ngc file .hex v file.asm hay .c

Dng chuyn i gi tr gia cc h m(deca-binary-hexa 8 16 32).

-------------------------------------------------------------------------------------------------------------

* Mc Edit (Chnh sa):

* Mc Help (h tr, hng dn):Nhn vo y (hoc F1) m Help.

Th vin tp lnh C. Th vin tp lnh phn cng ca PIC.

9- Rp mch hot ng ca Pic. 10- Rp mch np ca Pic.

7 Gii thiu Pic16f877a:

-------------------------------------------------------------------------------------------------------------

Vi iu khin Pic c rt nhiu loi, nhiu dng nh: 12fxxx, 16fxxx, 18fxxx, 33fxxx, 32fxxx, dsPIC, rfPIC, PIC giao tip Usb . v . v.; ty theo nhu cu ng dng ca ngi s dng m chng ta c s la chn cho thch hp. Trong khun kh cun sch ny ti chn Pic16f877a gii thiu vi cc bn v n l con Pic thuc h 14 bit 40 chn mnh cho cc ng dng mc thng thng v tng i ph bin th trng Vit Nam. Nu cc bn nm vng cu trc v cch lp ca Pic16f877a cc bn c th d dng tip cn vi cc h Pic khc v chng c chung cc cu trc v tp lnh cn bn.

AT89C51

Bng so snh c tnh gia AT89C51 v P16F877A:

------------------------------------------------------------------------------------------------------------c tnh. Hng sn xut: Nm ra i di tp lnh B nh Flash Rom B nh Ram B nh EEPROM. S Port xut nhp Bo nh thi (Timer) Modul iu bin xung (CCP ) Modul bin i tng t - s (ADC) Modul so sanh tung t (Compartor). Modul giam sat hot ng(WDT). Cong song song (Parallel) Cong noi tiep (RS232) Chun giao tip SPI. Chun giao tip I2C. Che o tiet kiem nang lng (Sleep Mode). Nguon ngat (Interrupt). AT89C51. Atmel (USA). 1982. 8 bit. 4 K. 128 Bytes. Khng c. 4 Port(0,1,2,3), 32 I/O. 2. Khng c. Khng c. Khng c Khng c Khng c. 1. PIC16F877A. Hng sn xut:Microchip (USA). 1995. 14 bit. 8 K. 368 Bytes. 256 Bytes. 5 Port (A, B, C, D, E), 33 I/O. 3. 2. phn gii: 10 bit. 1 phn gii: 10 bit, 8 knh. 2 1 1 1.

Khng c. 6

1 15 Nap trng trnh theo chun noi tiep (ICSP) CMOS. 35 Toi a 20 MHz. 55.000-70.000 VN

Cong ghe che tao S tap lenh hp ng. Tan so hoat ong Gi thnh

CMOS. 111 12 MHz. 15.000-25.000 VN

Cng sut hat ng ti a ca cc cng I/O: Dng ng ra cc i khi ng ra trng thi in p cao l 20 mA. Dng ng ra cc i khi ng ra trng thi in p thp l 25 mA. Dng in ca ng ra ln kch n Led trc tip m khng cn qua Buffer.

-------------------------------------------------------------------------------------------------------------

in p lm vic: in p lm vic ti a l 5.5V. in p lm vic ti thiu l 4.5V. Mch Reset: Pic s b reset nu a chn s 1(MCLR) xung GND .

Nguyn l mch reset: khi m ngun t C18 s ni chn 1 xung Mass Reset VK. Khi in p n nh in tr R24 s ni chn 1 ln cao th 5V- a VK v trng thi hot ng. Nt nhn s Reset mch mt cch bt buc. Diod d1 dng x dng int t c18 v ngun m khng phi qua in tr r24 khi tt in ngun lm mch reset ngay sau khi ta tt in.

Thch anh dao ng: VK Pic hot ng 4 ch dao ng : RC: Ch to dao ng bng in tr R- t in C. LP: Ch to dao ng bng thch anh cng sut thp, tn s giao ng t: 32Khz-200Khz. XT: Ch to dao ng bng thch anh tn s trung bnh, tn s giao ng t: 100Khz-4Mhz. HS: Ch to dao ng bng thch anh tn s cao, tn s giao ng t: 4Mhz20Mhz.

-------------------------------------------------------------------------------------------------------------

Khi lp trnh cc bn phi khai bo ch dao ng tng ng vi gi tr thch anh m cc bn s dng mt cch chnh xc nu khng chng trnh s khng chy. T lc nhiu xung thch anh nm trong khong t 15-33pF. V d: Nu s dng thch anh 10Mhz cc bn phi khai bo ch dao ng l HS. Nu s dng thch anh 1Mhz cc bn phi khai bo ch dao ng l XT.

8 Cu trc 1 chng trnh C c bn: Mt chng trnh C v c bn gm 3 phn: Phn th 1(Khng bt buc): Phn ch thch. Bt c mt chng trnh no, cng c bt u bng vic gii thiu v chng trnh, tn chng trnh, ngi thc hin chng trnh, lu phn cng, . v. v . . .Ni dung ca phn ny phi nm sau du //

//================================================= ======= // Ten chuong trinh : Chuong trnh chop tat den led. // Nguoi thuc hien :XXX // Ngay thuc hien : 19/06/2008 // Phien ban : 1.0 // Mo ta Chu thich : Dung PIC16F877A - thach anh 20MHz // // // //================================================= ======= S lng chng trnh cc bn vit s ngy cng nhiu v cng phc tp, a dng. Vic ghi ch thch r rng u mi chng trnh s gip cc bn qun l nm bt v s dng cc chng trnh mnh vit tt hn, ngn np hn.

------------------------------------------------------------------------------------------------------------Phn th hai(Bt buc): Phn khi to PIC. Phn ny l phn bt buc theo sau phn ghi ch, bi v chng trnh dch cn phi hiu bn ang lm vic vi con PIC no, lm vic vi n nh th no v thit lp phn cng cho n ra sao. #include #fuses HS,NOLVP,NOWDT,NOPUT, NOPROTECT #use delay (clock=20000000) Gii thch: T kha #include dng khai bo bn ang vit chng trnh cho con Pic no. T kha#use delay (clock=20000000) dng khai bo tc thch anh m bn ang s dng cho Pic. T kha #fuses dng thit lp cu hnh hot ng cho Pic : 1. Khai tc thch anh: HS, XT, LP hay RC. 2. C s dng b gim st hot ng WDT hay khng. 3. C bo v code hay khng. 4. Timer 0 c s dng khi m ngung ln hay khng. Phn cn li l chng trnh chnh (Bt buc):

void main() {

//Ni dung chng trnh chnh c vit ti y.

} Lu : Trnh bin dch khng dch nhng ni dung nm sau du // v nhng ni dung c hiu l ch thch.

n y cc bn c y nhng phng tin v kin thc c bn bt tay vo phn th 2: lm cc bi thc hnh.

-------------------------------------------------------------------------------------------------------------

Phn 2: Cc bi thc hnh.Bi 1:I _ L thuyt: Pic 16f877a c 5 Port I/O bao gm: Port A(RA0- RA5): c 6 I/O. Port B(RB0- RB7): c 8 I/O. Port C(RC0- RC7): c 8 I/O. Port D(RD0- RD7): c 8 I/O. Port E(RE0- RE2): c 3 I/O.

Xut Gi Tr.

Khc vi AT89C51 hot ng xut nhp ca tng Port c thc hin ch bi 1 thanh ghi l thanh ghi Port(P0, P1, P2, P3) th Pic s dng 2 thanh ghi l thanh ghi Port(PortA,PortB,PortC) v thanh ghi Tris (TrisA, TrisB, TrisC..). Thanh ghi Tris c dng quy nh tng chn ring r ca Port hay c Port l xut hay nhp. Sau d liu s c xut hay c nhp thng qua vic ghi vo hay c ra t thanh ghi Port.

V d: Khi ta ghi vo thanh ghi Tris B gi tr 00001111 th ngha lcc chn t RB0-RB3 l nhp cn t RB4-RB7 l xut. H m trong C: S nh phn c vit di dng: 0Bxxxxxxxx. V d: 0b11111111. S Hexa c vit di dng: 0Xxx. V d: 0XFF. S Deca c vit di dng: xxx. V d: 255.

------------------------------------------------------------------------------------------------------------II _ Thc hnh: Bi 1 A: By gi chng ta bt u bi thc hnh u tin: S dng Port B bt tt n Led: Bc th 1: Vit chng trnh. Bn m chng trnh CCSC, vo File ->New -> Source file.

Bn t tn v lu project vo 1 th mc no do bn ch nh.V d: baitap1.c Sau bn nh on m sau vo. //================================================= ======= // Ten chuong trinh : Chuong trnh xuat gia tri thay doi trang thai Port B.. // Nguoi thuc hien : Phan Vinh Hieu. // Ngay thuc hien : 19/08/2008 // Phien ban : 1.0 // Mo ta Chu thich : Dung PIC16F877A - thach anh 20MHz //Port B c quy nh l Port xuat va noi voi 8 led de kiem tra trang thai. //================================================= ======= #include #fuses HS,NOWDT,PUT #use delay(clock=20000000) // Su dung thanh anh 20MHz. main() Lu : Kt thc lnh phi c du ; { Set_tris_B (0B 00000000);//Quy nh trng thi xut nhp ca Port. Output_B(0B 11111111);//Xut gi tr ra Port B. } By gi, chng ta cng tm hiu ngha ca tng ging lnh: Ti phn khai bao phn cng: #fuses HS,NOWDT,PUT.

------------------------------------------------------------------------------------------------------------- Khai bo HS: S dng thch anh tc cao(20MHz). - Khai bo NOWDT:Khng s dng b nh thi gim st. - Khai bo PUT: Khng s dng Timer0. Trong thn chng trnh chnh: - Lnh Set_Tris_B(0B 00000000) s a gi tr 0B 00000000 vo

thanh ghi TRIS_B nhm quy nh ton b Port B l xut.- Lnh Output_B(0B 11111111) s a gi tr 0B 11111111 vo thanh ghi PortB a trng thi ng ra ca tt c cc chn ca Port B ln cao . (*Lu : Tham kho Help ca CCSC phn Build in function nm r hn v cc tp lnh.) Sau khi hon tt, cc bn n nt save lu chng trnh li ri nhn Compile (hoc F9) dch ra tp tin .Hex . Lc chng trnh s hin ra bn thng bo sau : Tn ng dn ca project c dch.

Thng bo xem c li hay khng. Thng bo dung lng Ram - Rom si ht.

Bc 2: Tip theo ta np chng trnh cho Pic bng phn mm Win Pic 800. - u tin bn m tp tin WinPic800-356d-All nm trong a CD. - Click chut phi vo Icon.

-To mt shortcut ri chp ra desktop.

-------------------------------------------------------------------------------------------------------------

Click vo Shortcut ny m chng trnh np.Chn ngn ng. Thit lp cu hnh mch np. Ti file Hex. Xa ni dung IC. c ngc t IC T ng tm m IC c np. Bt u np IC.

Kim tra kt ni gia kit np vi my tnh.

u tin bn cn khai bo v thit lp phn cng cho mch np: Vo Setting -> Hardware:Lc chn loi Kit np

Khai bo cng com m bn cm mch np vo.

Ti mc Selection Hardware bn chn loi kit np JMD Programmer. Sau xc dnh a ch cng Com ca my ri nhn Apply edits thot. Sau khi set up xong, bn cm IC vo mch np(Lu : Ch cm IC vo sau khi set up phn cng xong.).Bn nhn vo biu tng: Ti file Hex cn np. Tip theo nhn:

-------------------------------------------------------------------------------------------------------------

np. Sau khi np bn rt IC ra khi mch v cm IC vo mch test. Bc 3: Cm Buss ni gia Port B vi modul 8 n Led theo s sau:5V

J10 1 2 3 4 5 6 7 8 33 34 35 36 37 38 39 40 RB0/INT RB1 RB2 RB3 RB4 RB5 RB6/PGC RB7/PGD

VDD VDD

32 11

U6

BUS 8 SOI

RC0/T1OSI/T1CLK RC1/CCP2/T1OSO RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 RE0/AN5/RD RE1/AN6/WR RE2/AN6/CS

15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10 14

HEADER 8x2/SM 2 3 4 5 6 7

JUMPER 88 7 6 5 4 3 2 1

RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3 RA4/T0CLK RA5/AN4/SS

1 R6 R7 R8 R9 R10 R11 R12 R13

33 2 33

MCLR/VPP GND

OSC2/CLKOUT GND

330

330

330

330

330

330

330

330

OSC1/CLK

13

12

31

PIC16F877ALED0 LED1 LED2 LED3 LED4 LED5 LED6 LED75V

RESET1 2

R24

1kC18

3

4

104pF

Sau bn cp ngun cho Kit thc hnh , ta thy ton b Led Port B sng. Nu trng thi Led khng thay i bn lm li tht cn thn v chnh xc tng bc trn. By gi cc bn lm li bi tp trn vi cc port A, C, D, E ()v xut ra cc gi tr khc nhau ri quan st trng thi ca cc n Led. Ngoi lnh Output_B() tc ng ln c Port ta cn lnh tc ng ln tng chn ca Port nh: output_bit( PIN_B0, 0); Lnh ny iu khing trng thi 1 chn ca Port, output_high(PIN_A0); Lnh ny iu khing trng thi 1 chn ca Port

------------------------------------------------------------------------------------------------------------output_low (PIN_A0); output_toggle(PIN_B4); Lnh ny o trng thi ng ra Bi 1 B: By gi s c trng thi ng vo: Vic c trng thi ng vo ca VK nha

5V R8 1K

1

B8

4

2

3

c trng thi PortB v xut ra PortD: #include #fuses HS #use delay(clock=20000000) // defind crystal = 20MHz main() { Set_tris_B (0B 11111111); Set_tris_D (0B 00000000); Output_D(Input_B()); }

-------------------------------------------------------------------------------------------------------------

- Lnh SET_TRIS_B(0B 11111111) s a gi tr 0B 11111111 vo thanh ghi TRIS_B nhm quy nh ton b Port B l nhp. - Lnh SET_TRIS_D(0B 00000000) s a gi tr 0B 00000000 vo thanh ghi TRIS_D nhm quy nh ton b Port D l xut. - Input_B() s c trng thi cc chn ca PortB.-

Output_D(Input_B()); s xut cc trng thi ra cc led ca Port D

5V

J10 1 2 3 4 5 6 7 8 33 34 35 36 37 38 39 40 RB0/INT RB1 RB2 RB3 RB4 RB5 RB6/PGC RB7/PGD

VDD VDD

32 11

U6

BUS 8 SOI

RC0/T1OSI/T1CLK RC1/CCP2/T1OSO RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 RE0/AN5/RD RE1/AN6/WR RE2/AN6/CS

15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10 14 8 7 6 5 4 3 2 1

HEADER 8x2/SM 2 3 4 5 6 7

JUMPER 88 7 6 5 4 3 2 1

RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3 RA4/T0CLK RA5/AN4/SS

BUS 8 SOIJUMPER 8

1 R6 R7 R8 R9 R10 R11 R12 R13

33pF 20Mhz 33pF8 7 6 5 4 3 2 1

MCLR/VPP GND

OSC2/CLKOUT GND

JUMPER 8

330

330

330

330

330

330

330

330

OSC1/CLK

13

12

31

PIC16F877ALED0 LED1 LED2 LED3 LED4 LED5 LED6 LED75V 5V R8 1K R24 5V R8 1K 5V R8 1K 5V R8 1K 5V R8 1K 5V R8 1K 5V R8 1K 5V R8 1K

RESET1 2

1k1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 C18

3

4

104pF2

B1 3

2

B2

3

2

B3 3

2

B4

3

2

B5

3

2

B6

3

2

B7

3

2

B8

3

-------------------------------------------------------------------------------------------------------------

Bi 2:I _ L thuyt: a-hm delay:

S DNG HM DELAY V LNH GOTO.

Khi lp trnh bng hp ng iu khin n Led chp tt ta phi vit 1 chng trnh con c tn l Delay vi mc ch l lm chm hot ng ca VK i 1 khong thi gian bng cch tun t gim gi tr ca cc thanh ghi. i vi C ta khng cn phi lm cng vic ny na v C h tr cho ta 3 hm Delay nh sau: delay_cycles (time):Lm chm chng trnh i (time) ln chu k my, gi tr ca (time) thay i trong khong t 0-255. delay_ms (time): Lm chm chng trnh i (time) mili giy, gi tr ca (time) thay i trong khong t 0- 65535. delay_us (time): Lm chm chng trnh i (time) micro giy, gi tr ca (time) thay i trong khong t 0- 65535.

Vi d: Nu bn mun chng trnh chy chm i 1 giy bn s dng hm Delay nh sau: delay_ms (1000);//1 giy bng 1000 mili giy. a-Lnh Goto: Khi cc bn mun chng trnh ca cc bn r nhnh n 1 v tr, 1 on chng tri2ng khc th cc bn dng lnh nhy, trong 89c51 ta dng lnh LJMP NHAN. Cn trong PIC ta dng lnh GOTO NHAN. V d:

II _ Thc hnh: By gio chng ta s s dng hm delay v lnh goto vit mt chng trnh chp tt n led //Chuong trinh chp tt n Led ung dng hm delay v lnh goto #include #fuses HS

------------------------------------------------------------------------------------------------------------#use delay(clock=20000000) // defind crystal = 20MHz main() { SET_TRIS_B (0b00000000); LOOP: OUTPUT_B(0b00000000); DELAY_MS(1000); OUTPUT_B(0b11111111); DELAY_MS(1000); GOTO LOOP; }

Gii thch: u tin bng lnhSET_TRIS_B (0b00000000);

chng ta thit lp ton b Port B l xut. Sau lenh ny ta gn mt nhn tn l LOOP: Sau nhan LOOP ta dng lnh OUTPUT_B(0b00000000); tt ton b Port B. Tip theo ta dung hm delay DELAY_MS(1000); delay 1 giy ri bt sng ton b Port B bng lnh:

------------------------------------------------------------------------------------------------------------OUTPUT_B(0b11111111); Chng ta delay tiep 1 giy DELAY_MS(1000); Nh vy n Led chp tt 1 ln sau 1 giy v chng ta mun qu trnh ny lp i lp li nn s nhy v thc hin li t u bng lnh GOTO GOTO LOOP;

-------------------------------------------------------------------------------------------------------------

Bi 3:I _ L thuyt:

KHAI BO V S DNG CC BIN (VARIABLE).

Bin l ni ct tm cc gi tr, kt qu m chng trnh sinh ra hay thu thp c trong qu trnh hot ng. Cc gi tr v kt qu c nhiu loi khc nhau nn bin cng c nhiu loi bin khc nhau Bin c kiu Interger : l cc bin ch cha c cc gi tr, cc kt qu l s nguyn t nh: 0,1,2,3,4,5,6,. v . v . Ty theo kch c ca cc bin m ngi ta chia tip bin c kiu Interger ra lm nhiu loi nh sau: bin c kiu Interger 1 bit cha cc s 0-1. bin c kiu Interger 8 bit cha cc s nguyn nm trong khong t 0-255 bin c kiu Interger 16 bit cha cc s nguyn nm trong khong t 0-65535 bin c kiu Interger 32 bit cha cc s nguyn nm trong khong t 04294967295 Bin c kiu Float : : l cc bin cha c cc gi tr, cc kt qu l s thc nh: 3.14, 24/100, . v . v .. Bin c kiu char ky t 8 bit II _ Thc hnh: By gi chng ta s hc cch s dng bin. #include #fuses HS #use delay(clock=20000000) // defind crystal = 20MHz Int8 a; main() { Set_tris_B (0B 11111111); Set_tris_D (0B 00000000); a=Input_B(); Output_D(a); } *Gii thch: Sau phn khai bo mc nh thit lp phn cng l ti phn khai bo bin cho chng trnh. Dng lnh : Int8 a;

------------------------------------------------------------------------------------------------------------Khai bo chng ta s dng 1 bin c tn l a, kiu bin l s nguyn vi di l 8 bit. Tip theo sau l phn chng trnh chnh vi hai ging lnh u: Set_tris_B (0B 11111111); Set_tris_D (0B 00000000); Nhm khai bo Port B l nhp cn Port D l xut. Lnh a=Input_B(); s c gi tr ca Port B ri lu vo bin a. sau lnh: Output_D(a); S xut gi tr ca bin a ra Port D. Ta thy y bin a ng vai tr cha gi tr trung gian, ty theo yu cu lp trnh m gi tr trung gian ny c x l nh kim tra, so snh, cng tr nhn chia, lu vo b nh.. v .. v ..Trc khi xut ra Port D.

-------------------------------------------------------------------------------------------------------------

Bi 2:

S DNG VNG LP FOR V WHILE.

Bi ton tip theo ti yu cu l cc bn lp trnh cho n Led ca Port B chp tt ng 10 ln ri ngh. Nu dng hp ng cc bn phi gn 1 gi tr vo thanh ghi, mi ln chp tt n Led cc bn phi gim gi tr ny i 1 n v, ti khi no n bng 0 th ngng. Cng tng t, trong C cc bn s lm nh sau: //Chuong trinh chp tt n Led dng 10 ln dng vng lp For. #include #fuses HS #use delay(clock=20000000) // S dng thch anh 20 Mhz. Int8 I; main() { SET_TRIS_B (0b00000000); FOR (I=1;I