Giao Trinh Thuc Hanh VDK

Embed Size (px)

Citation preview

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

MC LCBI 1. QUI TRNH LP TRNH PIC ......................................................................................3

1. 2. 3. 4. 1. 2. 3. 1. 2. 1. 2. 3. 1. 2. 3. 1. 2. 3. 1. 2. 3.

GII THIU BOARD PIC EXPLORER 16 ....................................................... 3 GII THIU CNG C LP TRNH PIC ........................................................ 4 CC BC LP TRNH PIC ........................................................................... 5 BI TP ............................................................................................................ 9 TNG QUAN .................................................................................................. 11 CHNG TRNH MU ................................................................................. 12 BI TP .......................................................................................................... 13 TNG QUAN V TIMER TRN PIC 24F ...................................................... 14 BI TP .......................................................................................................... 20 TNG QUAN V NGT TRN PIC 24F ....................................................... 23 CC BC XY DNG NG DNG LIN QUAN N NGT ............... 26 BI TP .......................................................................................................... 27 TNG QUAN V ADC TRN PIC 24F .......................................................... 29 CHNG TRNH MU ................................................................................. 36 BI TP .......................................................................................................... 37 GII THIU LCD TRN BOARD PIC EXPLORER 16 ................................. 38 GIAO TIP PMP.............................................................................................. 41 BI TP .......................................................................................................... 43 KHI NIM UART ......................................................................................... 45 MODULE UART TRN PIC 24F .................................................................... 45 BI TP .......................................................................................................... 53ThS. Nguyn Quc Khoa CN. Nguyn c Tin Trang 1

BI 2. GIAO TIP I/O N GIN ....................................................................................... 11

BI 3. TIMER ....................................................................................................................... 14

BI 4. NGT ......................................................................................................................... 23

BI 5. ADC ........................................................................................................................... 29

BI 6. GIAO TIP LCD ........................................................................................................ 38

BI 7. GIAO TIP UART ..................................................................................................... 45

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

LI M U Gio trnh ny c bin son nhm phc v vic ging dy hc phn thc hnh Vi iu Khin v c p dng k t hc k II nm hc 2010-2011. Gio trnh gm 7 bi, gip sinh vin nm c kin thc v xy dng ng dng cho vi iu khin PIC. Theo qui ch o to tn ch, vic chun b trc nh l bt buc i vi sinh vin. Tc gi xin gi li cm n n cc bn nhm Vi iu Khin v nhng kin ng gp cho gio trnh c hon thin. Li cm n cng xin c gi ti hng Microchip cung cp thit b v ti liu tham kho. y l ln u tin tc gi bin son gio trnh thc hnh cho hc phn ny nn khng th trnh khi sai st. Tc gi rt mong nhn c kin phn hi ng gp ca cc bn sinh vin nhng ln bin son sau c tt hn. Mi kin ng gp, xin vui lng gi v email [email protected].

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 2

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

BI 1.

QUI TRNH LP TRNH PIC

MC CH Thng qua bi ny, sinh vin s nm r: Cch thc s dng board PIC Explorer 16 trong qu trnh hc tp. Cch s dng cng c MPLAB v cc gi h tr xy dng chng trnh, tng hp v np xung board. Cch debug chng trnh bng cng c MPLAB

1. GII THIU BOARD PIC EXPLORER 16

Hnh 1-1. Board PIC Explorer 16 dng PIC24FJ128GA010 PIC Explorer 16 l board thc tp cho php sinh vin lm quen vi lp trnh Vi iu khin PIC cng nh thit k cc h thng t n gin n phc tp. Cc thnh phn trn board Pic Explorer 16 bao gm: 1. Vi iu khin PIC24FJ128GA010 2. Cng cm 9V cung cp in th ng vo +3.3V v +5V cho board 3. LED bo hiu ngun 4. Cng cm RS232 5. B cm bin nhit 6. Cng kt ni USB 7. Khe cm In-Circuit Debugger (ICD)ThS. Nguyn Quc Khoa CN. Nguyn c Tin Trang 3

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

8. Nt gt chn la phn cng 9. LCD (2 dng, 16 ct) 10. Khe cm PCB kt ni LCD mu 11. Nt nhn dng reset hoc dnh cho ng dng 12. B ng vo analog 13. 8 LEDs bo hiu dnh cho ng dng 14. B gii m gii a hp 74HCT4053 15. EEPROM ni tip 16. Thch anh 8 MHz v Real-Time Calendar/ Clock (RTCC) 32.768 KHz 17. Vng m rng cho cc ng dng 18. Socket cm vo PCI 19. Giao tip vi PIC Kit 2 Programmer 20. Giao tip JTAG

Hnh 1-2. V tr cc thnh phn trn board Pic Explorer 16

2. GII THIU CNG C LP TRNH PICQui trnh lp trnh PIC c th theo cc bc sau: Xy dng m chng trnh Bin dch m chng trnh Np m chng trnh xung board thc tp v kim tra kt qu

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 4

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

a) Gii thiu cng c MPLAB IDE MPLAB IDE l gi cng c ca hng Microchip cung cp mi trng cho php ngi lp trnh xy dng m chng trnh, bin dch, debug v np m chng trnh xung board c s dng PIC. Ti liu ny s dng MPLAB phin bn 8.63. b) Gii thiu cng c MPLAB C Compiler (mplabc30) for PIC24 MCUs y l cng c bin dch v lin kt m chng trnh vit bng ngn ng C cho cc dng PIC 24. Sinh vin c th download cng c ny ti trang web ca Microchip. Bi thc hnh ny s dng phin bn 3.25.

3. CC BC LP TRNH PICChun b: sinh vin cn ci t sn MPLAB v MPLAB C Compiler for PIC24 MCUs cho PC. a) To project trn MPLAB IDE Bc 1. Khi ng MPLAB Bc 2. Menu Project Project Wizard Next Bc 3. Chn PIC24FJ128GA010 trong hp thoi Device Next Bc 4. La chn Microchip C30 Toolsuite v tr ng dn ti cc thnh phn trng ng (th mc ci MPLAB C Compiler for PIC24 MCUs) Next

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 5

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

Hnh 1-3. Tr ti ng dn ca cc thnh phn trong Microchip C30 Toolsuite Bc 5. La chn ng dn ca project v t tn project Next

Hnh 1-4. To project tn begin trong ng dn D:\Exercises\PIC\tutThS. Nguyn Quc Khoa CN. Nguyn c Tin Trang 6

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

Bc 6. Add file lin kt (p24FJ128GA010.gld) Tr ti file p24FJ128GA010.gld (Thu_muc_cai_dat_mplabc30\ v3.25\support\PIC24F\gld) Add Next. tin cho to project sau ny, sinh vin nn copy file ny vo th mc d tm thy hn ( a hay ng dn ti th mc ch project).

Hnh 1-5 Tr ti file lin kt Bc 7. Finish Bc 8. Menu File New. Sinh vin c th xy dng m chng trnh trong ca s mi ny v lu vi nh dng .c. #include main() { TRISA = 0; // all PORTA pins output PORTA = 0xff; } Bng 1. Chng trnh v d kim tra chc nng PORT A b) Build project Bc 1. Add m ngun vo project Menu View Project click chut phi vo project Add files tr ti file cha m chng trnh Bc 2. Menu Project Build All hoc phm Buil All trn Task Bar

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 7

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

Hnh 1-6. Build Project c) Np chng trnh xung PIC C rt nhiu cng c h tr cho vic np m chng trnh cho PIC (mch np). Bi thc hnh ny s hng dn sinh vin s dng cng c MPLAB ICD 2 LE c sn xut bi hng Microchip. Qui nh bt buc khi s dng MPLAB ICD 2 LE: Sinh vin phi lm theo trnh t: Cm MPLAB ICD 2 LE vo PC Cm MPLAB ICD 2 LE vo board thc tp vi mt hin th MPLAB ICD 2 LE quay vo socket cm PIC Cp ngun t adapter. Lu : c th s dng xut d liu PORTA ra led, sinh vin cn tt chc nng JTAG bng cch vo menu Configure Configuration bits b du check ti Configuration Bits set in code v chn gi tr JTAG port is disabled.

Hnh 1-7. Tt chc nng JTAG Bc 1. La chn cng cThS. Nguyn Quc Khoa CN. Nguyn c Tin Trang 8

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

Menu Programmer Select Programmer MPLAB ICD 2

Hnh 1-8. La chn cng c np chng trnh Bc 2. Kt ni thit b Menu Programmer Connect. Board phi c cp ngun trc khi kt ni.Sinh vin cn kim tra cc thng s trong ca s output m bo thit b c kt ni ng trc khi tip tc. Bc 3. Np m chng trnh xung board thc tp Menu Programmer Program Bc 4. Kim tra kt qu Ngt kt ni gia board thc tp v MPLAB ICD 2 LE v kim tra kt qu chng trnh. d) Debug m chng trnh Sinh vin c th s dng MPLAB ICD 2 LE hoc MPLAB SIM debug m chng trnh. la chn cng c, sinh vin vo menu Debugger Select Tool MPLAB ICD 2 hay MPLAB SIM. Sinh vin phi kt hp thm cc chc nng chy tng bc v cc ca s trong menu View c kt qu mong mun. Sinh vin c th tham kho thm trong ti liu Programming 16-Bit PIC Microcontrollers in C

4. BI TPSinh vin thc hin cc bc trn vi nhng m chng trnh (code) mu sau#include void delayms( unsigned t) {

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 9

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin ThngT1CON = 0x8000; // enable tmr1, Tcy, 1:1 while (t--) { TMR1 = 0; while (TMR1 a); _AD1IF = 0; } main() { TRISA = 0xff00; adc_init(); while(1);ThS. Nguyn Quc Khoa CN. Nguyn c Tin Trang 36

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

}

3. BI TPBI 1. Lp trnh h thng c gi tr in th ng ra ca bin tr v hin th kt qu ra led s dng ngt ADC. Hng dn:ga tr thc ca in th ng ra ca bin tr c tnh theo cng thc: V = ADC1BUF * (Vref+ - Vref-)/1024 BI 2. Lp trnh h thng c gi tr ti ng ra ca cm bin nhit v hin th kt qu trn led. Hng dn:cm bin nhit trn board PIC Explorer 16 l TC1047A, ng ra ca cm bin c ni vi chn AN4. Mi lin h gia in th ng ra v nhit mi trng c biu din theo hm sau: Vout = 0.01T + 0.5 (V) Vi T l nhit mi trng n v 0C. T = 100Vout 50 (1) Gi tr Vout c th tnh c t gi tr c c t b m ca ADC theo cng thc: Vout = ADC1BUF * (Vref+ - Vref-)/1024 (2) Thay (2) vo (1), ta c c ng thc lin h gia T v gi tr c c t b m ADC:( )

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 37

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

BI 6.

GIAO TIP LCD

MC CH Bi thc hnh gip sinh vin lm quen vi b iu khin trn LCD v giao tip Parallel Master Port (PMP) trn PIC 24F.

1. GII THIU LCD TRN BOARD PIC EXPLORER 16Thng thng, board PIC Explorer 16 c tch hp sn mt mn hnh 2 dng x 16 k t v module LCD tng thch vi nhng b iu khin HD44780 theo chun cng nghip.

Hnh 6-1. Kt ni cc module LCD trn board PIC Explorer 16 K t c hin th trn mn hnh c sinh ra bi mt bng sinh k t c tch hp bn trong ROM ca b iu khin. Bng sinh k t c th sinh tp k t ASCII v mt s k t ting Nht. Ngoi ra, ngi dng c th t nh ngha thm mt s k t (ti a 8 k t ty loi).

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 38

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

Hnh 6-2. Bng sinh k t c s dng bi cc b iu khin tng thch HD44780 Cc lcd c b iu khin tng thch HD44780 ch dng hai thanh ghi (c th nh a ch c lp): mt cho d liu v mt cho lnh. Tp lnh sau y c th s dng thit lp v iu khin hin th trn lcd: M lnh LnhRS R/ W DB DB DB DB DB DB DB DB 7 6 5 4 3 2 1 0

Miu t Xa mn hnh v a con tr v u a con tr v u. Ni dung trong DDRAM

Thi gian thc thi 1.64ms 1.64 ms

Clear display Cursor home

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 0

0 1

1 *

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 39

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

Entry mode set

0

0

0

0

0

0

0

1

I/D

S

Display On/Off control

0

0

0

0

0

0

1

D

C

B

Cursor/ display shift

0

0

0

0

0

1

S/ C

R/ L

*

*

Function set

0

0

0

0

1

DL

N

F

*

*

Set CGRAM address

0

0

0

1

a ch CGRAM

Set DDRAM address Read busyag and address counter Write to CGRAM or DDRAM Read from

0

0

1

a ch DDRAM

0

1

BF

a ch CGRAM / DDRAM

1 1

0 1

D liu ghi D liu c

khng i. Thit lp hng di chuyn (I/D) con tr v la chn ch dch chuyn (S). Ni dung trong DDRAM khng i. Bt/tt hin th (D), bt/tt con tr (C), nhp nhy con tr (B) Thit lp con tr di chuyn hoc hin th di chuyn (S/C) v chn hng di chuyn (R/L) Thit lp chiu di d liu (DL), s dng hin th (N), font ch (F) Thit lp a ch CGRAM, CGRAM trao i d liu sau thit lp ny Thit lp a ch DDRAM, DDRAM trao i d liu sau thit lp ny. BF = 1 lnh ang c thc thi. Ni dung b m a ch ca CGRAM/DRAM. Ghi d liu vo CGRAM hay DDRAM c d liu tTrang 40

40 us

40 us

40 us

40 us

40 us

40 us

0 us

40 us 40 us

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

CGRAM or DDRAM Bit I/D S D C B S/C R/L DL N F BF

CGRAM hay DDRAM Bng 7. Tp lnh HD44780 Setting/Status 0 = gim v tr con tr 1 = tng v tr con tr 0 = khng di chuyn hin th 1 = di chuyn hin th 0 = khng hin th 1 = hin th 0 = khng hin th con tr 1 = hin th con tr 0 = khng nhp nhy con tr 1 = nhp nhy con tr 0 = dch chuyn con tr 1 = dch chuyn hin th 0 = dch chuyn tri 1 = dch chuyn phi 0 = d liu 4 bit 1 = d liu 8 bit 0 = 1 dng 1 = 2 dng 0 = font 5x7 1 = font 5x10 0 = b iu khin sn sng nhn 1 = b x l ang x l lnh lnh Bng 8. Bit lnh HD44780

2. GIAO TIP PMPa) Gii thiu PMP c s dng giao tip vi cc thit b ngoi vi song song: ADC, b m RAM, cc thit b giao tip ISA, LCD, a cng v th CompactFlash. c tnh ca PMP: D liu hai chiu 8 hoc 16 bit 16 ng a ch 6 tn hiu iu khin: o Enable o Address Latch o Read o Write o V 2 tn hiu Chip Select Tc v c v ghi vi PMP c th cu hnh ph hp vi thit b v m bo yu cu v tc ca thit b. b) Cu hnh PMP s dng cho LCD Cng nh cc giao tip ngoi vi khc ca PIC 24F, PMP cha nhng thanh ghi cu hnh cho vic trao i d liu: PMCON, PMMODE, PMADDR, PMSTAT, PMPEN v PADCFG. Sinh vin cn tham kho ti liu 24F PMP Reference

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 41

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

Chapter 39713a trong PIC24F Family Reference Manual hiu cc cu trc v chc nng ca cc thanh ghi ny. Sinh vin c th cu hnh PMP theo ngh sau s dng PMP trong giao tip vi LCD: Cho php PMP Khng a hp a ch v d liu Cho php tn hiu Enable Cho php tn hiu Read Tn hiu Enable tch cc mc cao Tn hiu Read tch cc mc cao, tn hiu Write tch cc mc thp Ch Master vi tn hiu Read v Write trn cng mt chn (RD5) Bus d liu 8 bit Ch cn mt tn hiu a ch nn ch c PMA0 v PMA1 c s dng. LCD l thit b p ng chm nn ngi dng cn thm cc trng thi ch trong mi chui c/ghi. Khi s dng PMP, ngi dng c th s dng s trng thi ch ti a: Ch d liu n nh trc khi c ghi: 4 Tcy Gia hai tn hiu R/W v Enable: 15 Tcy Ch d liu n nh sau tn hiu Enable tch cc: 4 Tcy Khi to PMP s dng cho LCD: PMCON = 0x83BF; PMMODE = 0x3FF; PMAEN = 0x0001; Sau nhng cu lnh trn, ngi s dng c th giao tip vi module LCD v cu hnh LCD theo tiu chun nh sn xut. Vic cu hnh LCD phi tha mn yu cu thi gian. Sinh vin coi li bng 7 bit thm chi tit yu cu thi gian khi cu hnh LCD.Ch :Khng th cu hnh LCD trong khong thi gian nh hn 30 ms k t khi LCD c cp ngun. n gin, sinh vin c th s dng timer ch nh thi to tr trong chui cu hnh LCD. Trc khi ghi d liu vo module LCD, ngi lp trnh cn kim tra bit Busy (Busy Flag) ca module LCD thng qua cc bc sau: kim tra bit Busy ca PMP, c d liu t PMP xa d liu trn bus d liu PMP, kim tra bit Busy ca PMP ln 2, c d liu t PMP ln 2. Bit Busy chnh l bit th 7 ca d liu va c c.

ThS. Nguyn Quc Khoa CN. Nguyn c Tin

Trang 42

Trng i Hc Khoa Hc T Nhin Khoa in T - Vin Thng

B Mn My Tnh H Thng Nhng Gio trnh Thc Hnh Vi iu Khin

a lnh hay d liu vo module LCD, ngi dng phi la chn thanh ghi lnh hay d liu (thit lp a ch PMA0 = RS = 0 cho lnh v PMA0 = RS = 1 cho d liu) v a lnh cn thc thi hay d liu vo b m d liu PMP. V d:PMADDR = 0; // select the command register (ADDR = 0) PMDIN1 = 0b00111000; // function set: 8-bit interface, 2 lines, 5x7

3. BI TPBI 1. Vit chng trnh hin th mt chui k t ln LCD Chng trnh mu:#include #include #define LCDDATA 1 // RS = 1 ; access data register #define LCDCMD 0 // RS = 0 ; access command register #define PMDATA PMDIN1 // PMP data buffer #define LCDbusy() LCDread(LCDCMD) & 0x80 #define LCDaddr() LCDread(LCDCMD) & 0x7F #define getLCD() LCDread(LCDDATA) #define putLCD(d) LCDwrite(LCDDATA,(d)) #define LCDcmd(c) LCDwrite(LCDCMD,(c)) #define LCDhome() LCDwrite(LCDCMD,2) #define LCDclr() LCDwrite(LCDCMD,1) void lcd_init() { // PMP initialization PMCON = 0x83BF; // Enable the PMP, long waits PMMODE = 0x3FF; // Master Mode 1 PMAEN = 0x0001; // PMA0 enabled // init TMR1 T1CON = 0x8030; // Fosc/2, prescaled 1:256, 64us/tick // wait for >30ms TMR1 = 0; while( TMR1