Vi Xu Ly PIC16F887 NguyenDinhPhu

201

Click here to load reader

description

Vi Xu Ly PIC16F887 NguyenDinhPhu

Transcript of Vi Xu Ly PIC16F887 NguyenDinhPhu

PIC16F887_VXL_00_0_bia.pdfPIC16F887_VXL_01_LOINOIDAU.pdfPIC16F887_VXL_003_MUCLUC.pdfPIC16F887_VXL_CHAPTER_01_VDK_CAUTRUC_CHUCNANG_CHAN.pdfPIC16F887_VXL_CHAPTER_02_VDK_BONHO_THANHGHI.pdfPIC16F887_VXL_CHAPTER_03_VDK_LENH_ASSEMBLY.pdfPIC16F887_VXL_CHAPTER_04_VDK_LENH_C.pdfPIC16F887_VXL_CHAPTER_05_VDK_PORT.pdfPIC16F887_VXL_CHAPTER_06_VDK_TIMER_COUNTER.pdfPIC16F887_VXL_CHAPTER_07_VDK_GIAOTIEP_ADC.pdfPIC16F887_VXL_CHAPTER_08_VDK_INTERRUPT.pdfPIC16F887_VXL_CHAPTER_09_VDK_TRUYENDULIEU.pdfPIC16F887_VXL_CHAPTER_10_VDK_PWM.pdfI HC S PHM K THUT KHOA IN IN T B MN IN T CNG NGHIP GIO TRNH VI X L NGUYN NH PHNM 2014 / . +y+~ y ~++~::-+ +~+:+-+.~+-+ .++~.+-: :+ ~+-:++ -. +-+ :+ + ++- . + +++ :+ ~ :+-: :-+ :+~+ . + +++ ++.~ : , ++ +~+ . ~ . + y ~ - ~ ++-. +. - , ++-. :++ +~+ ~ :-: + ~ +- :++ -. +-+ ~++~ ++-++.+ ++++++-++ .~ +- :++-.+-+.~ -+ .+.+ y -:+~y :+-++~ +~ + ~+~ +~+ :+ + :+~y :+-+ + ++,.~.+ +++. :+-~ :+. ~ y ++ .+ . +y+~y ~ + +~: :- + ++ +++, :++ ++ . y-. ~. -. +- + -+ ~+ :: -+ ++ :~ .~ +~+ + + + .+ . +y+-+ ~ ++~++-+ +. ~ :+ + +- . + y, :++ , ~ +~. :+~++ : . ~+ .y ++~: ~ . -. +-+ .+ ~ :++ +~y ++-+ +. ~ -+ :++ :~+ . ~ . -. +- + ++-. +. -. +-+ +~ ++~., :++-` :: + -+ +- ::, + :+ + :++ ~+ -+ ++ :~ , ++-. +~+ +-:~ +~ ++~., ++-. +.+ ~+~ ++~. --~ + ++ :~: ~. + +~y ++- + + . --~ ++-. :+ ++ :-: :~: ~. :++-+~ + +.+, +++ . :+- ~ :++ +~y + :++ :~ y +. - . +- + ` :: . ~ +~ + \+ ++~ . ~ :~+ -++ .- + +~++ -+ + +.+ : ~ :++ - + :~ .~ ++-+ +. : ~+ - ~ + ~ ++ .+ .+ . -. +-+ ++-. ~ +~ ++~. :++ ~+ -+ ++ :~ , ~ :++ +~y + :++ :~y ~ ++ . + + ~ + -~ :~+ :+- +-., :+~ -+ :++ :~+ :~ + :+- :++ +- +~ ++.+-.+- +++:~++,+~+:~:~-:+-. :~+~ .y-: ~ y-. ~. ++ :~ +~ - + :++ :~+ .~ . -. +-+ ` :: :+-. ~ :~+ :+++-+ +. ~ . -. +-+ ++-. :: ++ +++ ' ::, ::3~ :++ :-+ -~+ +~ :+~++ ' +++, +. y-. :++ :~y . -. +-+ '``7 +++ ' ~ :++, ~. :., ++ +~ + ~ : +++ ++ : ++, :+~++ + +++ -++ + ++ +++ - + ++ ~ :++ +++ 3~ :- , , + +, ~ :~+ + +++ -.+:- +++ 7 +.y-+ :+ +-. :++ :+ -~+ -+++ ` ~: +++ 3 .y-+ + -. / +++ ' -. +- + .+N\ .+ +++ ' +.y-. :+-. ~ :++, ~. :. .~++ +~ + ~ : .~ . -. +-+, ++ ~+ +~ :-: ~ :++ .~ . -. +-+ ~+ ++-+ + . -- -~++ +~ +~+ . ~ ~ . -. +- + +~ ++~. :~ +~ +~ .~ ~ :++ +~+ ~. :. :-+ :+ + :~+ :-: + :++, .~+ +-+~ ~ +. ++~., ++ +~+ . ~ :++ +~ + +~ :-: :-+, y+-. ~: :-+ + :++ :, ++ +~+ . ~ :++ : - . :~ + -+. + : -: +.+ . ~ :++ -. +-+ .+ +++ :+-. ~. :. :++ ~ ~ :++:+ + :-+ :+ . -. +-+ :~ :+++++ :++, :+++- . /\, :+++~+ -, : ++-, ~ ~ + :.y .~: : ++ .+ +++ :+-. .-:~ -+++ ++.~. -. +-+ -.-: ~ +++ :++ :~ + + ++++++ ~ :++ :~+ + ++~: + .~~+ ~ .y-: ~ y-. ~. :++ :~+ ++ :~ +-+ +~ + +~ y + :+-. ++ ++ ++- + +. -~. .+ +++ - :+-..-++ ++~ :++ +. - .+-+ , ++-. :++ :-+ + ++ ++~ :++ + . -. +-+ ++++ :~ -. +~ y :++ :~ y : ++ :- + + ~ :++ :~ + + + ++ . ~ :~+ .-: +++ :++ -++ - .+ ++, :~+ :~ +++ :++ :+ :~ -. +~y -. .-: :~+ ++ ++ ~ :++ -+-. ~ +++ :++ :+ ~ :++ .~.-: ~ +++ :++ :+- y-. ~. :+ :~+ ~ + +~ +~ :++ .~ ~: +++ :++ , ~ -. + -., ~ :~+ :+ , ~ :++ .- + .-: -~+ .~ ~ -++ :~+ .+ +++ +~ -~: + :- : ++ +~ + ~ :, - ~ + .~ ~ :, -+.+ ~ : -.~: ++~ :+ +-. -. +-+ +++ - +, - 7 ~+ :+ :-, - 7 ~+ .-:, , +.: ++~+, :~+ + ~ :~ + + :+ + y-. ~. --+ :~+ :-: ~+ -: + +~+ + +, +.y- + y +~: +, .-: +. +~y :++ :+-. +- + .~+++ :++ ~., ~ :++ :++ -++ +~ ~ +++ :++ .+ +++ +~ -~: + :-: ++ +~+ .~ :-.+:- :+ + :+ . -. +-+, ~+ -+ . + :- .+:- - ++ :+ .~ - -+ -+ .+ +++ 7 +~ -~: + :-: ++ +~+ .~ :+.y-+ :+ +-. :++ :+:+~++ :+ +-. -/) :+ + :+ . -. +-+, ~ + -+.+ / -+.y-+ ~ :+ +- .:++ :++++ ~ :- + ++-: -:++ +-+ ~ ++ .+ ++-: , ~++ :~ .~++-: :+ -. +-+ .~ ++- . ++ .+ +~ .+ +++ ` +~ -~: + :-: ++ +~ + +~: . ~ . -. +-+, :-: + :++ +~+ +. .- .~ +~:, ~+ -+.+ +~: -~ ++ : +. ~ y-. ~. -. +-+ ++~ ~ + + ++~++ ~ -+ - + ~y ~ .+ +++ 3 +~ -~: + :-: ++ +~+ :.y-+ +-. + :- / . ~ . -. +-+, :-: + :++ :+:++ +-+ +-. .~++~+ +-., :++ +-+ ~ y-. ~ . :.y-+ +-. + ~ . -. +-+ . ~y :++ .~ +~ ~ . -. +-+ . ++~. .+ +++ ' +~ -~: + :-: ++ +~+ -. +- + .+ N\ .~ . - . +-+, :-: + +.y-+ y+~: +, :++ :~+ ~ :++-.~ .+ -. +- , :-: ~ :++-+. + ++ +~+ N\ - -. +-+ :+~y -~+ .~ -+, :+~y : . ~ + .~ ++-. ++ .+ +~ ~ ~ -+ :++ :~+ ~:~ ~~:++ :~y :+ + ++- . ++ +~+ +~ .~ . -. +-+ ~:~ ~++~ :++ :~y :+ ~ :~+ :+-:+~ +~ :+- ~ :~ - . ++~+-:~ .+ ~ + .~ :++ :-+ -~+ ++ :+- :~++ + ~ -~ -: +-+ ~: + ~ :~+ + ~y ++ .~ + +~y .- :~ ~ :+- ~ + +._+9y~+ ~ ~+ ~ + ~ :~+ :- + ++- ~ + ++-. y-+, + ~ + ++ :+~ + :+ ~ ++ + +- :~ ~ ++-. :+ ~+ :++ +-+ :-+ -~+ ~ :++ +~y .y-+ ++ +. i MC LC LI NI U CHNG 1. C TNH, CU TRC, CHC NNG CC PORT I.GII THIU1 II.KHO ST VI IU KHIN MICROCHIP2 1.Cu hnh ca vi iu khin PIC 16F8872 2.S cu trc vi iu khin PIC 16F8875 3.Kho st s chn vi iu khin PIC 16F8877 III.CU HI N TP TRC NGHIM BI TP12 1.Cu hi n tp12 2.Cu hi m rng13 3.Cu hi trc nghim13 4.Bi tp14 CHNG 2. T CHC B NH, THANH GHII.GII THIU15 II.KIN TRC B NH16 III.T CHC B NH CA VI IU KHIN PIC 16F88716 1.T chc b nh chng trnh17 2.M lnh 14 bit17 3.Kho st b nh d liu v thanh ghi trng thi18 4.B nh d liu Eeprom20 IV.CU HI N TP TRC NGHIM BI TP20 1.Cu hi n tp20 2.Cu hi m rng20 3.Cu hi trc nghim20 4.Bi tp22 CHNG 3. LNH HP NG I.GII THIU24 II.LNH HP NG CA VI IU KHIN PIC 16F88724 1.Gii thiu24 2.Kho st tp lnh tm tt vi iu khin PIC 16F88725 3.Tp lnh chi tit26 III.CU HI N TP TRC NGHIM BI TP31 1.Cu hi n tp31 2.Cu hi m rng31 3.Cu hi trc nghim32 4.Bi tp33 CHNG 4. NGN NG LP TR NH C I.GII THIU36 II.CC THNH PHN C BN CA NGN NG C36 1.Cc kiu d liu ca bin36 2.Cc ton t36 3.Cc lnh C c bn 39 4.Cu trc ca chng trnh C41 5.Cc thanh phn c bn ca chng trnh C41 6.Con tr d liu42 7.Khai bo mng42 III.TRNH BIN DCH CCS-C42 ii IV.CU HI N TP TRC NGHIM BI TP50 1.Cu hi n tp50 2.Cu hi m rng50 3.Cu hi trc nghim50 4.Bi tp52 CHNG 5. GIAO TIP LED, LCD, PHM N, MA TRN PHM I.GII THIU54 II.CHC NNG CC PORT CA VI IU KHIN54 III.CC PORT CA PIC 16F88754 1.Port A v thanh ghi TrisA55 2.Port B v thanh ghi TrisB57 3.Port C v thanh ghi TrisC61 4.Port D v thanh ghi TrisD64 5.Port E v thanh ghi TrisE65 IV.LNH TRUY XUT PORT DNG NGN NG CCS-C66 1.Lnh set_tris_x(value)66 2.Lnh output_x(value)66 3.Lnh output_high(pin)67 4.Lnh output_low(pin)67 5.Lnh output_toggle(pin)67 6.Lnh output_bit(pin,value)67 7.Lnh value = get_tris_x()67 8.Lnh value = input(pin)67 9.Lnh value = input_state()68 10.Lnh value=input_x()68 11.Lnh output_drive(pin)68 12.Lnh output_float(pin)68 13.Lnh port_b_pullup()68 V.CC NG DNG IU KHIN LED N69 VI.CC NG DNG IU KHIN LED 7 ON TRC TIP72 VII.CC NG DNG IU KHIN LED 7 ON QUT76 VIII.CC NG DNG GIAO TIP VI NT NHN, BN PHM79 1.H thng t phm79 2.H thng nhiu phm86 IX.CC NG DNG IU KHIN LCD93 1.Gii thiu LCD93 2.S chn LCD93 3.S mch giao tip vi iu khin vi LCD94 4.Cc lnh iu khin LCD95 5.a ch ca tng k t trn LCD96 6.Cc chng trnh hin th trn LCD96 X.CU HI N TP TRC NGHIM100 1.Cu hi n tp100 2.Cu hi m rng100 3.Cu hi trc nghim100 CHNG 6. TI MER - COUNTER I.GII THIU104 II.KHO ST TIMER0 CA PIC 16F887 104 1.Ngt ca Timer0105 2.Timer0 m xung ngoi106 3.B chia trc106 III.KHO ST TIMER1 CA PIC 16F887 106 iii 1.Timer1 ch nh thi108 2.Timer1 ch m xung ngoi108 3.Hot ng ca Timer1 ch counter ng b109 4.Hot ng ca Timer1 ch counter bt ng b110 5.c v ghi Timer1 trong ch m khng ng b110 6.B dao ng ca Timer1110 7.Reset timer1 s dng ng ra CCP trigger110 8.Reset cp thanh ghi TMR1H, TMR1L ca Timer1111 IV.KHO ST TIMER2 CA PIC 16F887111 1.B chia trc v chia sau ca Timer2112 2.Ng ra ca TMR2112 V.CC LNH CA TIMER COUNTER TRONG NGN NG CCS-C112 1.Lnh setup_timer_0(mode)112 2.Lnh setup_timer_1(mode)113 3.Lnh setup_timer_2(mode)113 4.Lnh set_timerx(value)116 5.Lnh get_timerx()116 6.Lnh setup_wdt(mode)116 7.Lnh restart_wdt()117 VI.CC NG DNG NH THI DNG TIMER 117 VII.CC NG DN M XUNG NGOI DNG COUNTER 121 VIII.CU HI N TP TRC NGHIM126 1.Cu hi n tp126 2.Cu hi m rng127 3.Cu hi trc nghim127 CHNG 7. CHUYN I TNG T SANG S I.GII THIU130 II.ADC CA VI IU KHIN PIC 16F887 130 1.Kho st adc ca pic 16F887130 2.Kho st cc thanh ghi ca PIC 16F887131 3.Trnh t thc hin chuyn i ADC133 4.La chn ngun xung cho chuyn i ADC133 III.CC LNH CA ADC TRONG NGN NG CCS-C134 1.Lnh setup_adc (mode)134 2.Lnh setup_adc_port (value)134 3.Lnh set_adc_channel (chan)134 4.Lnh value = read_ adc (mode)134 IV.CC NG DNG ADC CA PIC 16F887135 V.CU HI N TP TRC NGHIM BI TP140 4.Cu hi n tp140 5.Cu hi m rng140 6.Cu hi trc nghim140 7.Bi tp141 CHNG 8. NGT I.GII THIU144 II.TNG QUAN V NGT144 III.NGT CA VI IU KHIN PIC16F887144 1.Cc ngun ngt ca PIC16F887144 2.Cc thanh ghi ngt ca PIC16F887145 IV.CC LNH NGT CA PIC16F887 TRONG NGN NG CCS-C148 1.lnh enable_interrupt (level)148 iv 2.lnh disable_interrupt (level)148 V.CC NG DNG NGT CA PIC 16F887148 VI.CU HI N TP TRC NGHIM157 1.Cu hi n tp157 2.Cu hi m rng157 3.Cu hi trc nghim157 CHNG 9. TRUYN D LIU UART I.GII THIU160 II.TNG QUAN V CC KIU TRUYN D LIU 160 III.TRUYN D LIU NI TIP NG B V KHNG NG B160 IV.TRUYN D LIU CA VI IU KHIN PIC 16F887161 1.Truyn d liu EUSART161 2.Cc thanh ghi phc v cho khi ESUART ca PIC16F887161 V.CC LNH TRUYN D LIU EUSART 168 1.Lnh setup_uart(baud,stream)168 2.Lnh puts(string)169 3.Lnh value = getc(), value = fgetc(stream), value = getch()169 4.Lnh value = kbhit()169 VI.NG DNG TRUYN D LIU EUSART 169 VII.CU HI N TP TRC NGHIM175 1.Cu hi n tp176 2.Cu hi m rng176 3.Cu hi trc nghim176 CHNG 10. IU CH RNG XUNG I.GII THIU178 II.KHO ST PWM178 1.Nguyn l iu ch rng xung PWM178 2.Cu trc khi iu ch rng xung PWM179 3.Tnh chu k xung PWM180 4.Tnh h s chu k PWM180 III.CC LNH IU KHIN PWM180 1.Lnh nh cu hnh khi ccp setup_ccp(mode)180 2.Lnh thit lp h s chu k set_pmwx_duty(value)180 3.Lnh nh cu hnh cho timer_2 setup_timer_2 (mode, period, pastscale)181 4.Lnh thit lp gi tr bt u cho timer set_timerx(value)181 IV.CC CHNG TRNH NG DNG PWM190 V.CU HI N TP TRC NGHIM190 1.Cu hi n tp190 2.Cu hi m rng190 3.Cu hi trc nghim190 Ti liu tham kho.191 v HNH NH Hnh 1-1: Cc thit b s dng vi x l.2 Hnh 1-2: H thng vi x l.2 Hnh 1-3: Cu hnh ca vi iu khin.5 Hnh 1-4: Cu trc bn trong ca vi iu khin.6 Hnh 1-5: S chn ca PIC 16F887.7 Hnh 2-1: Kin trc Von Neumann v Harvard.16 Hnh 2-2: S b nh chng trnh v ngn xp.17 Hnh 2-3: T chc b nh theo byte.18 Hnh 2-4: T chc b nh cha c m lnh v d liu.18 Hnh 2-5: Thanh ghi trng thi.18 Hnh 2-6: T chc File thanh ghi.19 Hnh 3-1: Cc dng m lnh.25 Hnh 5-1: S kt ni port vi i tng iu khin.54 Hnh 5-2: S kt ni port: xut nhp tn hiu iu khin.54 Hnh 5-3: PortA v thanh ghi nh hng port A.55 Hnh 5-4: Cu hnh chn RA0.55 Hnh 5-5: Cu hnh chn RA1.55 Hnh 5-6: Cu hnh chn RA2.56 Hnh 5-7: Cu hnh chn RA3.56 Hnh 5-8: Cu hnh chn RA4.57 Hnh 5-9: Cu hnh chn RA5.57 Hnh 5-10: Cu hnh chn RA6.57 Hnh 5-11: Cu hnh chn RA7.57 Hnh 5-12: PortB v thanh ghi nh hng port B.58 Hnh 5-13: Thanh ghi ANSELH nh cu hnh s tng t cho portB.58 Hnh 5-14: Thanh ghi WPUB thit lp cho php/cm in tr treo.58 Hnh 5-15: Thanh ghi IOCB cho php/cm ngt portB thay i.58 Hnh 5-16: Cu hnh chn RB.60 Hnh 5-17: Cu hnh chn RB.61 Hnh 5-18: Cc chn PortB giao tip vi mch np, g ri.61 Hnh 5-19: Port C v thanh ghi TRISC.62 Hnh 5-20: Cu hnh chn RC0.62 Hnh 5-21: Cu hnh chn RC1.62 Hnh 5-22: Cu hnh chn RC2.63 Hnh 5-23: Cu hnh chn RC3.63 Hnh 5-24: Cu hnh chn RC4.63 Hnh 5-25: Cu hnh chn RC5.63 Hnh 5-26: Cu hnh chn RC6.64 Hnh 5-27: Cu hnh chn RC7.64 Hnh 5-28: Port D v thanh ghi TRISD.65 Hnh 5-29: Cu hnh chn RD.65 Hnh 5-30: Cu hnh chn RD.65 Hnh 5-31: Port E v thanh ghi TRISE.65 Hnh 5-32: Cu hnh chn RE.66 Hnh 5-33: Cu hnh chn RE.66 Hnh 5-34: S iu khin led n.69 Hnh 5-35: Lu iu khin led n chp tt.69 Hnh 5-36: Lu iu khin led n chp tt 10 ln.70 Hnh 5-37: Lu iu khin led n sng dn tt dn t phi sang tri.71 Hnh 5-38: S kt ni portB vi 1 led 7 on.72 Hnh 5-39: Hnh led 7 on72 Hnh 5-40: Lu m t 0 n 9.73 Hnh 5-41: S kt ni portB, C iu khin 2 led 7 on.75 vi Hnh 5-42: Lu m t 00 n 99.75 Hnh 5-43: S kt ni 2 port B v D iu khin 8 led 7 on qut.76 Hnh 5-44: Lu iu khin 8 led qut sng 8 s.77 Hnh 5-45: S kt ni 2 port B v D iu khin 2 led 7 on qut.78 Hnh 5-46: Lu m t 00 n 99 hin th trn 2 led qut.78 Hnh 5-47: S iu khin led v nt nhn.80 Hnh 5-48: Lu iu khin led n bng nt nhn ON-OFF.80 Hnh 5-49: S iu khin led v 3 nt nhn.81 Hnh 5-50: Lu iu khin led bng 3 nt ON-OFF-INV.82 Hnh 5-51: Lu iu khin led c chng di phm INV.83 Hnh 5-52: S kt ni 2 port iu khin 2 led 7 on, 2 nt nhn.84 Hnh 5-53: Lu m c iu khin bng nt nhn Start-Stop.85 Hnh 5-54: Bn phm ma trn 44.86 Hnh 5-55: Bn phm ma trn 44 vi ct C1 bng 0.87 Hnh 5-56: Bn phm ma trn 44 vi ct C2 bng 0.87 Hnh 5-57: Bn phm ma trn 44 vi ct C3 bng 0.87 Hnh 5-58: Lu qut bn phm ma trn 44.88 Hnh 5-59: Lu qut bn phm ma trn 44 c chng di.89 Hnh 5-60: Vi iu khin giao tip bn phm ma trn.89 Hnh 5-61: Lu qut hin th ma trn phm.90 Hnh 5-62: Vi iu khin giao tip bn phm ma trn v 2 led 7 on.92 Hnh 5-63: Lu qut ma trn phm v hin th m phm.92 Hnh 5-64. Hnh nh ca LCD.93 Hnh 5-65. Giao tip vi iu khin PIC16F887 vi LCD.95 Hnh 5-66. Dng sng iu khin ca LCD. 96 Hnh 5-67: Lu hin th thng tin trn 2 hng.97 Hnh 5-68: Lu hin th thng tin v m giy.99 Hnh 6-1: S khi ca timer0 ca PIC16F887.104 Hnh 6-2: Thanh ghi OPTION_REG.105 Hnh 6-3: Thanh ghi INTCON.106 Hnh 6-4: B chia trc c gn cho timer.106 Hnh 6-5: B chia trc c gn cho WDT.106 Hnh 6-6: Thanh ghi lu kt qu ca T1.107 Hnh 6-7: Cu trc timer T1.107 Hnh 6-8: Thanh ghi T1CON.107 Hnh 6-9: Timer1 hot ng nh thi.108 Hnh 6-10: T1 hot ng m xung ngoi t mch dao ng T1.109 Hnh 6-11: T1 hot ng m xung ngoi a n ng vo T1CKI.109 Hnh 6-12: Gin thi gian xung m ca Counter1.109 Hnh 6-13: Kt ni thch anh to dao ng.110 Hnh 6-14: S khi ca Timer2.111 Hnh 6-15: Thanh ghi T2CON.112 Hnh 6-15: PIC iu khin 8 led sng tt.114 Hnh 6-16: Lu iu khin 8 led sng tt nh thi 210ms.115 Hnh 6-17: Lu iu khin 8 led sng tt dng ngt nh thi 200ms.116 Hnh 6-18: Lu iu khin 8 led sng tt nh thi 1s.117 Hnh 6-19: Lu iu khin 8 led sng tt, nh thi 13,107ms dng T0.118 Hnh 6-20: Lu iu khin 8 led sng tt, nh thi 1s dng T0.119 Hnh 6-21: Lu iu khin 8 led sng tt, nh thi 13,107ms dng T2.120 Hnh 6-22: m xung ngoi dng counter T0.121 Hnh 6-23: Lu m xung ngoi dng counter T0.122 Hnh 6-24: m xung ngoi dng counter T0.123 Hnh 6-25: Lu m xung ngoi dng counter T1.124 Hnh 6-26: m xung ngoi dng counter T1 hin th trn 3 led qut. Hnh 6-22: Lu chng trnh m dng counter T1 ca PIC 16F887.125 Hnh 7-1: S khi ca ADC PIC 16F887.130 Hnh 7-2: Thanh ghi ADCON0.131 vii Hnh 7-3: Thanh ghi ADCON1.132 Hnh 7-4: nh dng cp thanh ghi lu kt qu.132 Hnh 7-5: Thi gian chuyn i 10 bit.134 Hnh 7-6: S mch o nhit dng PIC16F887 hin th trn 3 led trc tip.135 Hnh 7-7: Lu chuyn i ADC o nhit knh th 0.136 Hnh 7-8: S mch giao tip iu khin relay, triac, buzzer.137 Hnh 7-9: Lu chuyn i ADC o nhit knh th 0.138 Hnh 7-10: S mch o nhit dng PIC16F887, hin th 3 led qut.138 Hnh 7-11: Lu chuyn i ADC o nhit hin th led qut.139 Hnh 8-1: Vi iu khin thc hin chng trnh chnh trong 2 trng hp khng v c ngt.144 Hnh 8-2: Thanh ghi INTCON.145 Hnh 8-3: Thanh ghi PIE1 v PIR1.146 Hnh 8-4: Thanh ghi PIE2 v PIR2.145 Hnh 8-5: Mch in ngt ca PIC16F887.148 Hnh 8-6: iu khin 8 led sng tt.149 Hnh 8-7: Lu iu khin 8 led sng tt nh thi 262ms dng ngt.149 Hnh 8-8: Mch giao tip 2 led 7 on qut hin th m giy.150 Hnh 8-9: Lu m giy dng Timer nh thi bo ngt.150 Hnh 8-10: Mch o nhit dng cm bin LM35.152 Hnh 8-11: Lu chuyn i ADC c bo ngt.153 Hnh 8-12: o nhit dng cm bin LM35 v m giy.154 Hnh 8-13: Lu chuyn i ADC c bo ngt v m giy dng timer bo ngt.155 Hnh 9-1: H thng truyn ng b.160 Hnh 9-2: H thng truyn bt ng b.160 Hnh 9-3: Thanh ghi TXSTA.162 Hnh 9-4: S khi ca khi pht d liu ca PIC16F887.163 Hnh 9-5: Dng sng truyn d liu.163 Hnh 9-6: Dng sng truyn 2 byte d liu.163 Hnh 9-7: Thanh ghi RCSTA.164 Hnh 9-8: S khi ca khi nhn d liu ca PIC16F887.166 Hnh 9-9: Dng sng nhn d liu.166 Hnh 9-10: Thanh ghi RCSTA.167 Hnh 9-11: H thng truyn d liu gia my tnh v vi iu khin.170 Hnh 9-12: Lu iu khin truyn d liu.170 Hnh 9-13: Giao din phn mm Terminal gi d liu.171 Hnh 9-14: H thng truyn d liu gia my tnh v vi iu khin, hin th LCD.172 Hnh 9-15: Lu iu khin truyn d liu, hin th trn LCD.172 Hnh 9-16: H thng truyn d liu gia my tnh v vi iu khin, c LCD, bn phm.173 Hnh 9-17: Lu iu khin truyn d liu, c thm LCD v bn phm.174 Hnh 10-1: Dng sng iu ch rng xung.178 Hnh 10-2: S khi ca PWM PIC 16F887.179 Hnh 10-3: Dng sng PWM.180 Hnh 10-4: Mch iu khin thay i cng sng ca n dng PWM.182 Hnh 10-5: Lu iu khin n sng dng PWM.183 Hnh 10-6: Mch thay i cng sng ca n dng PWM v 2 nt nhn.184 Hnh 10-7: Lu iu khin n sng dng PWM v 2 nt nhn.184 Hnh 10-8: Mch iu khin thay i tc ng c dng PWM.186 Hnh 10-9: Lu iu khin thay i tc ng c dng PWM.187 viii BNG Hnh 1-1: Cc thit b s dng vi x l.2 Hnh 1-2: H thng vi x l.2 Bng 3-1: Cc tc t.25 Bng 3-2: Tm tt tp lnh ca PIC.25 Bng 4-1: Cc kiu d liu ca phn mm PIC-C.36 Bng 4-2: Cc ton t ph bin trong ngn ng C.36 Bng 5-1: M 7 on cho cc s thp phn.72 Bng 5-2: Cc chn ca LCD.94 Bng 5-3: Cc lnh iu khin LCD.95 Bng 5-4: a ch ca tng k t.96 Bng 5-7: Thng tin hin th 2 hng k t.98 Bng 6-1. La chn h s chia ca Timer0.105 Bng 6-2. La chn tn s v t tng ng ca Timer1.110 Bng 7-1: Tn s xung clock ty chn ph thuc vo tn s b dao ng.133 Bng 8-1: Tm tt chc nng cc bit trong thanh ghi cho php ngt INTCON c a ch 0x0B.145 Bng 8-2: Tm tt chc nng cc bit trong thanh ghi cho php ngt PIE1 c a ch 0x8C.146 Bng 8-3: Tm tt chc nng cc bit trong thanh ghi cho php ngt PIR1 c a ch 0x0C.146 Bng 8-4: Tm tt chc nng cc bit trong thanh ghi cho php ngt PIE2 c a ch 0x8D.147 Bng 8-5: Tm tt chc nng cc bit trong thanh ghi cho php ngt PIR2 c a ch 0x0D.147 Bng 9-1: Tm tt chc nng cc bit trong thanh ghi TXSTA.162 Bng 9-2: Tm tt chc nng cc bit trong thanh ghi RCSTA.164 Bng 9-3: Tm tt chc nng cc bit trong thanh ghi BAUDCTL.167 Bng 9-4: Tm tt cc cng thc tnh tc baud.168 Bng 10-1: Cc trng thi iu khin ng c DC.186 Chng 1 GII THIUKHO ST VI IU KHIN MICROCHIP CU HNH CA VI IU KHIN PIC 16F887 S CU TRC CA VI IU KHIN PIC 16F887 KHO ST S CHN VI IU KHIN PIC 16F887CU HI N TP TRC NGHIM BI TP CU HI N TP CU HI M RNG CU HI TRC NGHIM BI TP 7,xye C. 7x Ca. -: :x ea ey :xa: 8qxs, I. Ca: ::. :ax :-x:. :x: a, :a: e--:. I.GII THIUVi x l c rt nhiu loi bt u t 4 bit cho n 32 bit, vi x l 4 bit hin nay khng cn nhng vi x l 8 bit vn cn mc d c vi x l 64 bit.L do s tn ti ca vi x l 8 bit l ph hp vimt s yu cu iu khin trong cng nghip. Cc vi x l 32 bit, 64 bit thng s dng cho cc my tnh v khi lng d liu ca my tnh rt ln nn cn cc vi x l cng mnh cng tt. Cch thng iu khin trong cngnghips dng ccvixl 8bithay 16bitnhh thng in ca xe hi, h thng iu ha, h thng iu khin cc dy chuyn sn xut, Hnh 1-1: Cc thit b s dng vi x l. Khi s dng vi x l th phi thit k mt h thng gm c: Vi x l, c b nh, cc ngoi vi. CPUB NH PORT NHP PORT XUT BUS A CH BUS D LIU BUS IU KHINHnh 1-2: H thng vi x l. B nh dng lu chng trnhcho vixl thc hinvlu dliu cnxl, ccngoivi dng xut nhp d liu t bn ngoi vo x l v iu khin tr li. Cc khi ny lin kt vi nhau to thnh mt h thng vi x l.Yu cu iu khin cng cao th h thng cng phc tp v nu yu cu iu khin n gin th h thng vi x l cng phi c y cc khi trn.7,xye C. 7x Ca. -: :x ea ey :xa:qxs, 8. Ca: ::. :ax :-x:. :x: a, :a: e--:.3 kt ni cc khi trn to thnh mt h thng vi x l i hi ngi thit k phirt hiu bit v tt c cc thnh phnvixl,b nh, cc thit bngoivi. H thng to ra kh phc tp, chim nhiu khng gian, mch in, v vn chnh l i hi ngi thit k hiu tht r v h thng. Mt l donalvixlthngxldliutheobytehocword trongkhiccitngiukhin trong cng nghip thng iu khin theo bit. Chnh v s phc tp nn cc nh ch to tch hp b nh v mt s cc thit b ngoi vi cng vi vi x l to thnh mt IC gi l vi iu khin Microcontroller. Khi vi iu khin ra i mang li s tin li l d dng s dng trong iu khin cng nghip, vic s dng vi iu khin khng i hi ngi s dng phi hiu bit mt lng kin thc qu nhiu nh ngi s dng vi x l. Phn tip theo chng ta s kho st vi iu khin thy r s tin li trong iu khin.C rt nhiu hng ch to c vi iu khin, hng sn xut ni ting l TI, Microchip, ATMEL, .... ti liu ny s trnh by vi iu khin tiu biu l PIC16F887 ca MICROCHIP. II.KHO ST VI IU KHIN MICROCHIP Vi iu khin hng Microchip c rt nhiu chng loi, tch hp nhiu chc nng, ngi dng c thchnmtviiukhinphhpviyucuiukhin.Tiliunykhostviiukhin PIC16F887. 1.CU HNH CA VI IU KHIN PIC16F887 Trong ti liu ny trnh by vi iu khin PIC16F887, cc thng s ca vi iu khin nh sau: c im thc thi tc cao CPU RISC l:C 35 lnh n. Thi gian thc hin tt c cc lnh l 1 chu k my, ngoi tr lnh r nhnh l 2. Tc hot ng:Ng vo xung clock c tn s 20MHz. Chu k lnh thc hin lnh 200ns. C nhiu ngun ngt. C 3 kiu nh a ch trc tip, gin tip v tc thi. Cu trc c bit ca vi iu khin B dao ng ni chnh xc: Sai s 1% C th la chn tn s t 31 kHz n 8 Mhz bng phn mm. Cng hng bng phn mm. Ch bt u 2 cp tc . Mch pht hin hng dao ng thch anh cho cc ng dng quan trng. Cchuynmchngunxungclocktrongqutrnhhotngtitkimcng sut. C ch ng tit kim cng sut. Dy in p hot ng rng t 2V n 5,5V. Tm nhit lm vic theo chun cng nghip. C mch reset khi c in (Power On Reset POR). C b nh thi ch n nh in p khimic in (Power up Timer PWRT)vb nh thi ch dao ng hot ng n nh khi mi cp in (Oscillator Start-up Timer OST). C mch t ng reset khi pht hin ngun in cp b st gim, cho php la chn bng phn mm (Brown out Reset BOR). 7,xye C. 7x Ca. -: :x ea ey :xa: 4qxs, I. Ca: ::. :ax :-x:. :x: a, :a: e--:. C b nh thi gim st (Watchdog Timer WDT) dng dao ng trong chip cho php bng phn mm (c th nh thi ln n 268 giy). a hp ng vo reset vi ng vo c in tr ko ln. C bo v code lp trnh. B nh Flash cho php xa v lp trnh 100,000 ln. B nh Eeprom cho php xa v lp trnh 1,000,000 ln v c th tn ti trn 40 nm. Cho php c/ghi b nh chng trnh khi mch hot ng. C tch hp mch g ri. Cu trc ngun cng sut thp Ch ch: dng tiu tn khong 50nA, s dng ngun 2V. Dng hot ng:11A tn s hot ng 32kHz, s dng ngun 2V. 220A tn s hot ng 4MHz, s dng ngun 2V. B nh thi Watchdog Timer khi hot ng tiu th 1,4A, in p 2V. Cu trc ngoi viC 35 chn I/O cho php la chn hng c lp: Mi ng ra c th nhn/cp dng ln khong 25mA nn c th trc tip iu khin led. C cc port bo ngt khi c thay i mc logic. C cc port c in tr ko ln bn trong c th lp trnh. C ng vo bo thc khi ch cng sut cc thp. C module so snh tng t: C 2 b so snh in p tng t C module ngun in p tham chiu c th lp trnh. C ngun in p tham chiu c nh c gi tr bng 0,6V. C cc ng vo v cc ng ra ca b so snh in p. C ch cht SR. C b chuyn i tng t sang s: C 14 b chuyn i tng t vi phn gii 10 bit. C timer0: 8 bit hot ng nh thi/m xung ngoi c b chia trc c th lp trnh. C timer1:16 bit hot ng nh thi/m xung ngoi c b chia trc c th lp trnh.C ng vo cng ca timer1 c th iu khin timer1 m t tn hiu bn ngoi. C b dao ng cng sut thp c tn s 32kHz. C timer2: 8 bit hot ng nh thi vi thanh ghi chu k, c b chia trc v chia sau. C module capture, compare v iu ch xung PWM+ nng cao C b capture 16 bit c th m c xung vi phn gii cao nht l 12,5ns. C b iuchxung PWMvis knhng ral 1, 2 hoc 4, c thlp trnhvi tn s ln nht l 20kHz. C ng ra PWM iu khin li. C module capture, compare v iu ch xung PWM C b capture 16 bit c th m c xung vi chu k cao nht l 12,5ns. C b so snh 16 bit c th so snh xung m vi chu k ln nht l 200ns C b iu ch xung PWM c th lp trnh vi tn s ln nht l 20kHz. C th lp trnh trn bo ISP thng qua 2 chn. 7,xye C. 7x Ca. -: :x ea ey :xa:qxs, 8. Ca: ::. :ax :-x:. :x: a, :a: e--:.5 C module truyn dliuni tip ng b MSSP h tr chun truyn 3 dy SPI, chun I2C 2 ch ch v t. Bng 1-1 trnh by tm tt cu trc ca 5 loi PIC16F88X. Cu hnh c minh ha nh hnh sau: Hnh 1-3: Cu hnh ca vi iu khin. 2.S CU TRC CA VI IU KHIN PIC 16F887 S cu trc vi iu khin c trnh by hnh 1-4.Cc khi bn trong vi iu khin bao gm: -C khi thanh ghi nh cu hnh cho vi iu khin. -C khi b nh chng trnh c nhiu dung lng cho 5 loi khc nhau. -C khi b nh ngn xp 8 cp (8 level stack). -C khib nhRam cngvi thanh ghiFSR tnh ton to a ch cho 2 cch truyxut gin tip v trc tip. -C thanh ghi lnh (Instruction register) dng lu m lnh nhn v t b nh chng trnh. -C thanh ghi b m chng trnh (PC) dng qun l a ch ca b nh chng trnh. 7,xye C. 7x Ca. -: :x ea ey :xa: 6qxs, I. Ca: ::. :ax :-x:. :x: a, :a: e--:. Hnh 1-4: Cu trc bn trong ca vi iu khin. -C thanh ghi trng thi (status register) cho bit trng thi sau khi tnh ton ca khi ALU.-C thanh ghi FSR. 7,xye C. 7x Ca. -: :x ea ey :xa:qxs, 8. Ca: ::. :ax :-x:. :x: a, :a: e--:.7 -C khi ALU cng vi thanh ghi working hay thanh ghi A x l d liu. -C khi cc b nh thi khi cp in PUT, c b nh thi ch dao ng n nh, c mch resetkhicin,cbnhthigimstwatchdog,cmchresetkhiphthinstgim ngun. -C khi gii m lnh v iu khin (Instruction Decode and Control). -C khi dao ng ni (Internal Oscillator Block). -C khi dao ng kt ni vi 2 ng vo OSC1 v OSC2 to dao ng. -C khi b dao ng cho timer1 c tn s 32kHz kt ni vi 2 ng vo T1OSI v T1OSO. -C khi CCP2 v ECCP. -C khi mch g ri (In-Circuit Debugger IDC). -C khi timer0 vi ng vo xung m t bn ngoi l T0CKI. -C khi truyn d liu ng b/bt ng b nng cao. -C khi truyn d liu ng b MSSP cho SPI v I2C. -C khi b nh Eeprom 256 byte v thanh ghi qun l a ch EEADDR v thanh ghi d liu EEDATA. -C khi chuyn i tn hiu tng t sang s ADC. -C khi 2 b so snh vi nhiu ng vo ra v in p tham chiu. -C khi cc port A, B, C, E v D 3.KHO ST S CHN VI IU KHIN PIC16F887S chn ca vi iu khin PIC16F887 loi 40 chn c trnh by hnh 1-5. Hnh 1-5: S chn ca PIC 16F887. ViiukhinPIC16F887loi40chn,trong ccchnutchhpnhiuchcnng,chc nng ca tng chn c kho st theo port. a.Chc nng cc chn ca portA Chn RA0/AN0/ULPWU/C12IN0- (2): c 4 chc nng: 7,xye C. 7x Ca. -: :x ea ey :xa: xqxs, I. Ca: ::. :ax :-x:. :x: a, :a: e--:. RA0: xut/ nhp s - bit th 0 ca port A. AN0: ng vo tng t ca knh th 0. ULPWU(UltraLow-powerWakeupinput):ngvonhthcCPUcngsutcc thp. C12IN0- (Comparator C1 or C2 negativeinput): ng vo mth 0cab so snh C1 hoc C2. Chn RA1/AN1/C12IN1- (3): c 3 chc nng: RA1: xut/nhp s - bit th 1 ca port A. AN1: ng vo tng t ca knh th 1. C12IN1- (Comparator C1 or C2 negativeinput): ng vo mth 1cab so snh C1 hoc C2. Chn RA2/AN2/VREF-/CVREF/C2IN+ (4): c 5 chc nng: RA2: xut/nhp s - bit th 2 ca port A. AN2: ng vo tng t ca knh th 2. VREF-: ng vo in p chun (thp) ca b ADC. CVREF: in p tham chiu VREF ng vo b so snh. C2IN+: ng vo dng ca b so snh C2. Chn RA3/AN3/VREF+/C1IN+ (5): c 4 chc nng: RA3: xut/nhp s - bit th 3 ca port A. AN3: ng vo tng t knh th 3. VREF+: ng vo in p chun (cao) ca b A/D. C1IN+: ng vo dng ca b so snh C1. Chn RA4/TOCKI/C1OUT (6): c 3 chc nng: RA4: xut/nhp s bit th 4 ca port A. TOCKI: ng vo xung clock t bn ngoi cho Timer0. C1OUT: ng ra b so snh 1. Chn RA5/AN4/ SS / C2OUT (7): c 4 chc nng: RA5: xut/nhp s bit th 5 ca port A. AN4: ng vo tng t knh th 4. SS : ng vo chn la SPI t (Slave SPI device). C2OUT: ng ra b so snh 2. Chn RA6/OSC2/CLKOUT (14): c 3 chc nng: RA6: xut/nhp s bit th 6 ca port A. OSC2: ng ra dao ng thch anh. Kt ni n thch anh hoc b cng hng. CLKOUT: ch RC, ng ra ca OSC2, bng tn s ca OSC1. Chn RA7/OSC1/CLKIN (13): c 3 chc nng: RA7: xut/nhp s bit th 7 ca port A. OSC1: ng vo dao ng thch anh hoc ng vo ngun xung bn ngoi.CLKI: ng vo ngun xung bn ngoi.7,xye C. 7x Ca. -: :x ea ey :xa:qxs, 8. Ca: ::. :ax :-x:. :x: a, :a: e--:.? b.Chc nng cc chn ca portB Chn RB0/AN12/INT (33): c 3 chc nng: RB0: xut/nhp s bit th 0 ca port B. AN12: ng vo tng t knh th 12. INT: ng vo nhn tn hiu ngt ngoi. Chn RB1/AN10/C12IN3- (34): c 3 chc nng: RB1: xut/nhp s bit th 1 ca port B. AN10: ng vo tng t knh th 10. C12IN3-: ng vo m th 3 ca b so snh C1 hoc C2. Chn RB2/AN8 (35): c 2 chc nng: RB2: xut/nhp s bit th 2 ca port B. AN8: ng vo tng t knh th 8. Chn RB3/AN9/PGM/C12IN2 (36): c 4 chc nng: RB3: xut/nhp s bit th 3 ca port B. AN9: ng vo tng t knh th 9. PGM: Chn cho php lp trnh in p thp ICSP. C12IN1-: ng vo m th 2 ca b so snh C1 hoc C2 Chn RB4/AN11 (37): c 2 chc nng: RB4: xut/nhp s bit th 4 ca port B. AN9: ng vo tng t knh th 9. Chn RB5/ AN13/ G T1(38): c 3 chc nng: RB5: xut/nhp s bit th 5 ca port B. KPI1: ng vo pht sinh ngt khi thay i trng thi th 1. G T1 (Timer1 gate input): ng vo Gate cho php time1 m dng m rng xung. Chn RB6/ICSPCLK (39): c 2 chc nng: RB6: xut/nhp s. ICSPCLK: xung clock lp trnh ni tip. Chn RB7/ICSPDAT (40): c 2 chc nng: RB7: xut/nhp s. ICSPDAT: ng xut nhp d liu lp trnh ni tip. c.Chc nng cc chn ca portC Chn RC0/T1OSO/T1CKI (15): c 3 chc nng: RC0: xut/nhp s bit th 0 ca port C. T1OSO: ng ra ca b dao ng Timer1. T1CKI: ng vo xung clock t bn ngoi Timer1. Chn RC1/T1OSI/CCP2 (16): c 3 chc nng: RC1: xut/nhp s bit th 1 ca port C. T1OSI: ng vo ca b dao ng Timer1. 7,xye C. 7x Ca. -: :x ea ey :xa: I0qxs, I. Ca: ::. :ax :-x:. :x: a, :a: e--:. CCP2: ng vo Capture2, ng ra compare2, ng ra PWM2. Chn RC2 /P1A/CCP1 (17): c 3 chc nng: RC2:xut/nhp s bit th 2 ca port C. P1A: ng ra PWM. CCP1: ng vo Capture1, ng ra compare1, ng ra PWM1. Chn RC3/SCK/SCL (18): c 3 chc nng: RC3: xut/nhp s bit th 3 ca port C. SCK: ng vo xung clock ni tip ng b/ng ra ca ch SPI. SCL: ng vo xung clock ni tip ng b/ng ra ca ch I2C. Chn RC4/SDI/SDA (23): c 3 chc nng: RC4: xut/nhp s bit th 4 ca port C. SDI: ng vo d liu trong truyn d liu kiu SPI. SDA: xut/nhp d liu I2C. Chn RC5/SDO (24): c 2 chc nng: RC5: xut/nhp s bit th 5 ca port C. SDO: ng xut d liu trong truyn d liu kiu SPI. Chn RC6/TX/CK (25): c 3 chc nng: RC6: xut/nhp s bit th 6 ca port C. TX: ng ra pht d liu trong ch truyn bt ng b USART. CK: ng ra cp xung clock trong ch truyn ng b USART. Chn RC7/RX/DT (26): c 3 chc nng: RC7: xut/nhp s bit th 7 ca port C. RX: ng vo nhn d liu trong ch truyn bt ng b EUSART. DT: ng pht v nhn d liu ch truyn ng b EUSART. d.Chc nng cc chn ca portD Chn RD0 (19): c 1 chc nng: RD0:xut/nhp s bit th 0 ca port D. Chn RD1 (20): c 1 chc nng: RD1: xut/nhp s bit th 1 ca port D. Chn RD2 (21): c 1 chc nng: RD2: xut/nhp s bit th 2 ca port D. Chn RD3 (22): c 1 chc nng: RD3: xut/nhp s bit th 3 ca port D. Chn RD4 (27): c 1 chc nng: RD4: xut/nhp s bit th 4 ca port D. Chn RD5/ P1B (28): c 2 chc nng: RD5: xut/nhp s bit th 5 ca port D. P1B: ng ra PWM. 7,xye C. 7x Ca. -: :x ea ey :xa:qxs, 8. Ca: ::. :ax :-x:. :x: a, :a: e--:.II Chn RD6/ P1C (29): c 2 chc nng: RD6: xut/nhp s bit th 6 ca port D. P1C: ng ra PWM. Chn RD7/P1D (30): c 2 chc nng: RD7: xut/nhp s bit th 7 ca port D. P1D: ng ra tng cng CPP1 Chn RE0/AN5 (8): c 2 chc nng: RE0: xut/nhp s. AN5: ng vo tng t 5. Chn RE1/AN6 (9): c 2 chc nng: RE1: xut/nhp s. AN6: ng vo tng t knh th 6. Chn RE2/AN7 (10): c 2 chc nng: RE2: xut/nhp s. AN7: ng vo tng t knh th 7. Chn RE3/ MCLR/VPP (1): c 3 chc nng: RE3: xut/nhp s - bit th 3 ca port E. MCLR: l ng vo reset tch cc mc thp. VPP: ng vo nhn in p khi ghi d liu vo b nh ni flash. Chn VDD (11), (32): Ngun cung cp dng t 2V n 5V. Chn VSS (12), (31): Ngun cung cp 0V. e.Chc nng cc chn phn chia theo nhm chc nng Chc nng l port I/O:PortA gm cc tn hiu t RA0 n RA7. PortB gm cc tn hiu t RB0 n RB7. PortC gm cc tn hiu t RC0 n RC7. PortD gm cc tn hiu t RD0 n RD7. PortE gm cc tn hiu t RE0 n RE3. Chc nng tng t l cc ng vo b chuyn i ADC: c 14 knh 14 knh ng vo tng t t AN0 n AN13. Hai ng vo nhn in p tham chiu bn ngoi l Vref+ v Vref-. Chc nng tng t l cc ng vo b so snh C1 v C2: c 2 b so snh C4ngvonhninpngvomca2bsosnhl:C12IN0-,C12IN1-, C12IN2-, C12IN3-. C 2 ng vo nhn in p tng t dng cho 2 b so snh l: C1IN+ v C2IN+. C 2 ng ra ca 2 b so snh l: C1OUT v C2OUT. C 1 ng vo nhn in p tham chiu chun cp cho 2 b so snh l: CVREF. 7,xye C. 7x Ca. -: :x ea ey :xa: I8qxs, I. Ca: ::. :ax :-x:. :x: a, :a: e--:. Chc nng dao ng cp xung cho CPU hot ng: C 2 ng vo ni vi t thch anh to dao ng l OSC1 v OSC2. C 1 ng vo nhn tn hiu dao ng t ngun khc l CLKIN nu khng dng t thch anh, c 1 ng ra cp xung clock cho thit b khc l CLKOUT. Chc nng nhn xung ngoi ca T0 v T1: C 1 ng vo nhn xung ngoi cho timer/counter T0 c tn l T0CKI. C 1 ng vo nhn xung ngoi cho timer/counter T1 c tn l T1CKI. C2ngvotodaongringchoTimer1hotngclpctnlT1OSOv T1OSI. Chc nng truyn d liu SPI: C 1 ng vo nhn d liu l SDI. C 1 ng ra pht d liu l SDO. C 1 ng ra pht xung clock l SCK. C 1 ng vo chn chip khi hot ng ch t lSS . Chc nng truyn d liu I2C: C 1 ng truyn/nhn d liu l SDA. C 1 ng ra pht xung clock l SCL. Chc nng truyn d liu ng b ESUART: C 1 ng truyn/nhn d liu l DT. C 1 ng ra pht xung clock l CK. Chc nng truyn d liu khng ng b ESUART: C 1 ng nhn d liu l RX. C 1 ng pht d liu l RX. Chc nng ngt: C 1 ng nhn tn hiu ngt cng l INT. Chc nng CCP (capture, compare, pulse width modulation): C 2 tn hiu cho khi CCP l CCP1 v CCP2. C 4 tn hiu cho khi PWM l P1A, P1B, P1C, P1D. Chc nng np chng trnh vo b nh flash: C 1 tn hiu truyn d liu l ICSPDAT. C 1 tn hiu nhn xung clock l ICSPCLK. C 1 tn hiu iu khin np l PGM. C 1 tn hiu nhn in p lp trnh l VPP. C 1 ng vo reset c tn l MCLR (master clear). C 4 chn cp ngun: VDD cp ngun dng, VSS ni vi 0V. III.CU HI N TP TRC NGHIM BI TP 1.CU HI N TP Cu s 1-1: Hy nu cu hnh ca vi iu khin PIC16F887. 7,xye C. 7x Ca. -: :x ea ey :xa:qxs, 8. Ca: ::. :ax :-x:. :x: a, :a: e--:.I3 Cu s 1-2: Hy cho bit cc loi b nh m vi iu khin PIC16F887 tch hp. Cu s 1-3: Hy trnh by tn v chc nng portA ca vi iu khin PIC16F887. Cu s 1-4: Hy trnh by tn v chc nng portB ca vi iu khin PIC16F887. Cu s 1-5: Hy trnh by tn v chc nng portC ca vi iu khin PIC16F887. Cu s 1-6: Hy trnh by tn v chc nng portD ca vi iu khin PIC16F887. Cu s 1-7: Hy trnh by tn v chc nng portE ca vi iu khin PIC16F887. 2.CU HI M RNG Cu s 1-8: Hy nu cu hnh ca vi iu khin AT89S52. Cu s 1-9: Hy cho bit cc loi b nh m vi iu khin AT89S52 tch hp v m rng. Cu s 1-10:Hy trnh by tn v chc nng cc port ca vi iu khin AT89S52. Cu s 1-11:Hy tm hiu qu trnh pht trin ca h vi iu khin MCS51 v MCS52. Cu s 1-12:Hy tm hiu cc port vi iu khin AT89C52 v so snh vi vi iu khin AT89S52. Cu s 1-13:Hy tm hiu cu hnh vi iu khin AT89S8252 v so snh vi vi iu khin AT89S52. Cu s 1-14:HytmhiucuhnhviiukhinAT89C51RD2vsosnhviviiukhin AT89S52. Cu s 1-15:HytmhiucuhnhviiukhinPIC16F877Avsosnhviviiukhin PIC16F887. Cu s 1-16:HytmhiucuhnhviiukhinPIC18F4550vsosnhviviiukhin PIC16F887. 3.CU HI TRC NGHIM Cu 1-1: PIC 16F887 c bao nhiu port: (a) 3(b) 4 (c) 5(d) 6 Cu 1-2: Port no ca PIC 16F887 c 4 ng: (a) A(b) B(c) C(d) E Cu 1-3: PIC 16F887 c tch hp ADC bao nhiu bit: (a) 8 bit(b) 9 bit (c) 10 bit(d) 12 bit Cu 1-4: PIC 16F887 c tch hp bao nhiu knh ADC: (a) 8 knh(b) 14 knh (c) 10 knh(d) 12 knh Cu 1-5: Cc tn hiu truyn d liu I2C ca PIC 16F887 c tn l: (a) SDI, SCL(b) SDI, SDO (c) SCL, SDA(d) SDA, SDI Cu 1-6: Cc tn hiu truyn d liu SPI ca PIC 16F887 c tn l: (a) SDI, SCL, SDO, SS(b) SDI, SDO, SS (c) SDI, SCK, SDO, SS(d) SDA, SDI, SCK Cu 1-7: Cc tn hiu truyn d liu UART ca PIC 16F887 c tn l: (a) TX, RX, CK(b) TX, DT, CK (c) TX, RX(d) DT, CK 7,xye C. 7x Ca. -: :x ea ey :xa: I4qxs, I. Ca: ::. :ax :-x:. :x: a, :a: e--:. Cu 1-8: Cc tn hiu truyn d liu SART ca PIC 16F887 c tn l: (a) TX, RX, CK(b) TX, DT, CK (c) TX, RX(d) DT, CK Cu 1-9: Cc tn hiu no nhn xung CK cho timer0: (a) T0SCK(b) T0SCL (c) T0CKI(d) T0CK Cu 1-10: Cc tn hiu no thit lp in p tham chiu cho ADC: (a) CVREF v VREF+ (b) CVREF v VREF- (c) VREF+ v VREF-(d) CVREF- v VREF- 4.BI TP Chng 2

GII THIUKIN TRC B NH T CHC B NH CA VI IU KHIN PIC16F887 T CHC B NH M LNH 14 BIT KHO ST B NH D LIU V THANH GHI TRNG THI CA PICCU HI N TP TRC NGHIM - BI TP CU HI N TP CU HI M RNG CU HI TRC NGHIM BI TP ai hoc s pham ky thuatNguyen nh Phu 16Chng 2. To chc bo nh, thanh ghi. I.GII THIU chng ny kho st t chc b nh bn trong, cc thanh ghi ca vi iu khin 8 bit. Sau khi kt thc chngny thngi c c th bit t chcb nhbn trong, chcnng ca tngloib nh, tn v chc nng ca cc thanh ghi c bit.II.KIN TRC B NH C 2 loi kin trc b nh c bn l kin trc Von Neumann v Harvard. Hnh 2-1 trnh by hai kin trc: Hnh 2-1: Kin trc Von Neumann v Harvard. KintrcVonNeumann:vikintrcnythbnhgiaotipviCPUthngqua1busd liu 8 bit, b nh c cc nh cha d liu 8 bit, b nh va lu tr chng trnh v d liu.u im: kin trc n gin. Khuyt im: do ch c 1 bus nn tc truy sut chm, kh thay i dung lng lu tr ca nh. Kin trc Harvard: vi kin trc ny th b nh c tch ra lm 2 loi b nh c lp: b nh lu chng trnh v b nh lu d liu, CPU giao tip vi 2 b nh c lp nn cn 2 bus c lp. V c lp nn c th thay i s bit lu tr ca tng b nh m khng nh hng ln nhau. u im: do ch c 2 bus nn tc truy sut nhanh, ty thay i s bit ca nh. Khuyt im: kin trc phc tp. III.T CHC B NH CA VI IU KHIN PIC 16F887 1.T CHC B NH CHNG TRNH B nh chng trnh ca PIC16F8xx c dung lng 8K c chia lm 4 trang b nh, mi trang 2K, xem hnh 2-2. ThanhghibmchngtrnhPC(ProgramCounter)squnlachcabnhchng trnh,thanhghiPCcdi13bitsqunl8192nhtngngvi8Knh.Minh chng trnh lu 14 bit d liu. Khi PIC b reset th thanh ghi PC c gi tr l 0000H v PIC s bt u thc hin chng trnh ti a ch 0000H. KhicbtkngtnotcngthPICsthchinchngtrnhphcvngttiach 0004H. Mi trang ca b nh chng trnh c a ch xc nh nh trong hnh2-6, vic phn chia theo trang b nh ch c tc dng i vilnhnhyvlnh gi chng trnh con. Khininhy nhoc Nguyen nh Phu ai hoc s pham ky thuatChng 2. To chc bo nh, thanh ghi.17 khi gi chng trnh con nm trong cng 1 trang th lnh s vit ngn gn hn, m lnh t hn so vi trng hp nm khc trang. Trong cc h vi iu khin khc th b nh ngn xp dng chung vi b nh d liu, u im l cu trc n gin, khuyt imlvic dng chung nu khng bit giihn sln chimlnnhauv lm mt d liu lu trong b nh ngn xp v chng trnh thc thi sai. vi iu khin PIC th nh thit k tch b nh ngn xp c lp vi b nh d liu v ch dng lu a ch tr v khi thc hin lnh gi chng trnh con v khi thc hin ngt. Dung lng b nhb nh ngn xp ch c 8 nh t stack level 1 n stacklevel 8- xemhnh 2-2. Do ch c 8 nhnnkhithchinccchngtrnhconlngvonhautial8cp.Doluachtrv trong thanh ghi PC, m thanh ghi PC c chiu di 13 bit nn mi nh ngn xp c s bit l 13. Khi khng s dng ngt th chng trnh c th vit bt u v lin tc ti a ch 0000H, nhng nus dngngt thnn dnglnhnhy trnhvngnhbt u ti ach 0004H- vvngnh ny dng vit chng trnh con phc v ngt. Bnhchngtrnhcchcnnglutrchngtrnh.Chngtrnhsaukhivitxongtrn my tnh, dch ra s nh phn s c np vo b nh chng trnh vi iu khin thc hin. STACK LEVEL 8...0000HPC STACK LEVEL 2STACK LEVEL 1TRANG 3 (PAGE 3)TRANG 2 (PAGE 2)TRANG 1 (PAGE 1)TRANG 0 (PAGE 0)VECTOR NGTVECTOR RESET0004H0001H0002H0003H0005H07FFH0800H0FFFH1000H17FFH1800H1FFFH13CALL, RETURN, RETFIE, RETLW Hnh 2-2: S b nh chng trnh v ngn xp. 2.M LNH 14 BIT Viccviiukhin8bitcacchngkhcthbnhchngtrnhtchctheonvl byte, mi nh lu tr d liu 1 byte xem hnh 2-3. Nu m lnh 2 byte (gm 1 byte m lnh v 1 byte d liu hay a ch) th dng 2 nh lin tip lu v khi CPU c m lnh thc hin lnh th CPU phi thc hin 2 ln c - mi ln 1 byte. Vi vi iu khin PIC th mi nh ca b nh chng trnh c th lu tr d liu nhiu bit bao gm c m lnh v d liu xem hnh 2-4. Khi CPU c m lnh thc hin th CPU ch thc hin 1 ln c c m lnh v d liu.Vy vi t chc b nh ca PIC th tit kim c 1 chu k c d liu v th PIC s c tc thc hin chng trnh nhanh hn. ai hoc s pham ky thuatNguyen nh Phu 18Chng 2. To chc bo nh, thanh ghi. Tp lnh ca PIC l tp lnh rt gn nn ch dng c 6 bit nh phn m ha cc lnh, cng vi d liu x l l byte - 8 bit nn tng cng l 14 bit. Hnh 2-3: T chc b nh theo byte.Hnh 2-4: T chc b nh cha c m lnh v d liu. 3.KHO ST B NH D LIU V THANH GHI TRNG THIa.Cu trc b nh d liu B nh dliu c phnchia thnh4 Bank,mibankc 128bytebao gmmt s thanh ghi chc nng c bit, cn li l cc nh thng dng c chc nng lu tr d liu.Ton b cc nh ca b nh d liu c gi l File thanh ghi. Cc thanh ghi c chc nng c bit nm vng a ch thp, cc nh cn li khng c g c bit nm cng a ch bn trn cc thanh ghi chc nng c bit xem nh cc nh RAM dng lu d liu. Tt c cc bank thanh ghi u cha nhng thanh ghi c bit - xem hnh 2-4. Theo hnh 2-4 th b nh d liu c chia lm 4 bank thanh ghi, mi bank c 128, tng cng l 512nh,nhngdoc1s thanhghicchcnngcbitbanknocngcnnlmgims lng. V d thanh ghi trng thi (status) 4 bank u c, thay v 4 thanh ghi th ch xem l 1, tng t cho cc thanh ghi khc. S lng thc ch cn 368 nh. C 2 cch truy xut b nh d liu: truy xut trc tip v truy xut gin tip. Khi truy xut trc tip: th cc lnh ch c php truy xut 1 bank, mun truy xut cc nh hay thanh ghi nm bank khc th phi i bank. C 2 bit chn bank l RP1 v RP0 nm trong thanh ghi trng thi.Khi truy xut gin tip: th cc lnh truy xut c php truy xut 2 bank: bank 0, 1 hoc bank 2, 3. Khi ang bank 0, 1 nu mun truy xut cc nh bank 2, 3 th phi i bank. C 1 bit chn bank 0, 1 hoc bank 2, 3 l IRP nm trong thanh ghi trng thi.b.Thanh ghi trng thi STATUS REGISTER A CH 03H, 83H, 103H, 83H TGTT cha trng thi ca khi ALU, trng thi Reset v cc bit chn bank b nh d liu.IRPBit 7RP1RP0 TO PD Z DCCBit 0 Hnh 2-5: Thanh ghi trng thi. Chc nng ca cc bit trong thanh ghi trng thi: Bit 7 IRP: bit la chn thanh ghi (dng a ch gin tip). 1 = bank 2, 3 (100h-1FFh) Nguyen nh Phu ai hoc s pham ky thuatChng 2. To chc bo nh, thanh ghi.19 0 = bank 0, 1 (000h- 0FFh) ACCESSES 70H 7FHACCESSES 70H 7FHTHANH GHI THNG DNG 80 BYTETHANH GHI THNG DNG 96 BYTEADCON0 1FHADRESH 1EHCCP2CON 1DHCCPR2H 1CHCCPR2L 1BHRCREG 1AHTXREG 19HRCSTA 18HCCP1CON 17HCCPR1H 16HCCPR1L 15HSSPCON 14HSSPBUF 13HT2CON 12HTMR2 11HT1CON 10HTMR1H 0FHTMR1L 0EHPIR2 0DHPIR1 0CHINTCON 0BHPCLATH 0AHPORTE09HPORTD08HPORTC 07HPORTB 06HPORTA 05HFSR 04HSTATUS 03HPCL 02HTMR0 01HIndirect addr(*) 00H20H7FHBANK 0ADCON1 9FHADRESL 9EHPSTRCON 9DHECCPAS 9CHPWM1CON 9BHSPBRGH 9AHSPBRG 99HTXSTA 98HVRCON 97HIOCB 96HWPUB 95HSSPSTAT 94HSSPADD 93HPR2 92HSSPCON2 91HOSCTUNE 90HOSCCON 8FHPCON 8EHPIE2 8DHPIE1 8CHINTCON 8BHPCLATH 8AHTRISE89HTRISD88HTRISC 87HTRISB 86HTRISA 85HFSR 84HSTATUS 83HPCL 82HOPTION_REG 81HIndirect addr(*) 80HA0HFFHBANK 1THANH GHI THNG DNG 80 BYTE THANH GHI THNG DNG 16 BYTE 11FH11EH11DH11CH11BH11AH119H118H117H116H115H114H113H112H111H110HEEADRH 10FHEEDATH 10EHEEADR 10DHEEDAT 10CHINTCON 10BHPCLATH 10AHCM2CON1109HCM2CON0108HCM1CON0 107HPORTB 106HWDTCON 105HFSR 104HSTATUS 103HPCL 102HTMR0 101HIndirect addr(*) 100H120H17FHBANK 2F0HEFH16FH170HACCESSES 70H 7FH THANH GHI THNG DNG 80 BYTETHANH GHI THNG DNG 16 BYTE19FH19EH19DH19CH19BH19AH199H198H197H196H195H194H193H192H191H190HRESERVED 18FHRESERVED 18EHEECON2 18DHEECON1 18CHINTCON 18BHPCLATH 18AHANSELH189H ANSEL 188HBAUDCTL 187HTRISB 186HSRCON 185HFSR 184HSTATUS 183HPCL 182HOPTION_REG 181HIndirect addr(*) 180H1A0H1FFHBANK 31F0H1EFHFILE ADDRESS FILE ADDRESS FILE ADDRESS FILE ADDRESS Hnh 2-6: T chc File thanh ghi. Quy c: (1) Cc nh t mu xm l cha thit k nu c s c gi tr l 0. Quy c: (2) Cc du (*) khng phi l thanh ghi vt l. Bit 6-5RP1:RP0: cc bit la chn thanh ghi (dng a ch trc tip) 11 = bank 3 (180h-1FFh) 10 = bank 2 (100h- 17Fh) 01 = bank 1 (80h- FFh) 00 = bank 0 (00h- 7Fh) Bit 4 TO: Time-out bit (Bit thi gian ch) 1 = sau khi m ngun, lnh CLRWDT hoc SLEEP 0 = thi gian ch ca WDT c thc hin ai hoc s pham ky thuatNguyen nh Phu 20Chng 2. To chc bo nh, thanh ghi. Bit 3 PD: Power-down bit (bit tt ngun) 1= sau khi m ngun hoc bng lnh CLRWDT0= thc thi lnh SLEEP Bit 2 Z: Zero bit (bit 0) 1 = khi kt qu bng 0. 0 = khi kt qu khc 0. Bit 1DC: Digit carry/ borrow bit (cc lnh ADDWF, ADDLW, SUBLW, SUBWF) (bit trn / mn) 1 = khi cng 4 bit thp b trn. 0 = khi cng 4 bit thp khng b trn. Bit 0C: Carry/ borrow bit (cc lnh ADDWF, ADDLW, SUBLW, SUBWF) 1 = khi kt qu php ton c trn. 0 = khi kt qu php ton khng b trn. Ch : Nu php ton tr th trng thi ca c C nh sau: nu php tr ln hn 0 th c C bng 0, nu kt qu tr nh hn hay bng 0 th c C bng 1.Cc thanh ghi cn li s c kho st cc phn c lin quan. 4.B NH D LIU EEPROMB nh d liu Eeprom c dung lng 256 byte dng lu d liu quan trng khi mt in th dliunyvncn.CchthcghidliuvobnhEepromsctrnhbyphnbnh Eeprom. IV.CU HI N TP TRC NGHIM - BI TP 1.CU HI N TP Cu s 2-1: Hy cho bit cc loi b nh m vi iu khin PIC16F887 tch hp. Cu s 2-2: Hy trnh by cu trc b nh RAM ni ca vi iu khin PIC16F887. Cu s 2-3: Hy cho bit cc thanh ghi no m cc bank u c ca vi iu khin PIC16F887. Cu s 2-4: Hy cho bit t chc b nh chng trnh ca vi iu khin PIC16F887. 2.CU HI M RNG Cu s 2-5: Hy tm hiu t chc b nh vi iu khin PIC18F4550 v so snh vi PIC16F887. Cu s 2-6: Hy tm hiu t chc b nh vi iu khin PIC18F4620 v so snh vi PIC16F887. 3.CU HI TRC NGHIM Cu 2-1: B nh chng trnh ca PIC 16F887 c dung lng l: (a) 8KByte(b) 8K14bit (c) 8K16bit(d) 368Byte Cu 2-2: B nh d liu ca PIC 16F887 c dung lng l: (a) 256Byte(b) 8K14bit (c) 8K16bit(d) 368Byte Cu 2-3: B nh d liu EEPROM ca PIC 16F887 c dung lng l: (a) 8KWord(b) 8K14bit Nguyen nh Phu ai hoc s pham ky thuatChng 2. To chc bo nh, thanh ghi.21 (c) 256Byte(d) 368Byte Cu 2-4: B nh ngn xp ca PIC 16F887 c dung lng l: (a) 8Byte(b) 814bit (c) 256Byte(d) 813bit Cu 2-5: B nh chng trnh ca PIC 16F887 chia lm: (a) 2 trang(b) 4 trang (c) 2 bank(d) 4 bank Cu 2-6: B nh d liu ca PIC 16F887 chia lm: (a) 2 trang(b) 4 trang (c) 2 bank(d) 4 bank Cu 2-7: Mi trang b nh chng trnh ca PIC 16F887 c dung lng: (a) 256 byte(b) 1024 word (c) 2048 word(d) 368 byte Cu 2-8: Mi bank b nh d liu ca PIC 16F887 c dung lng: (a) 256 byte(b) 128 byte (c) 2048 byte(d) 368 byte Cu 2-9: a ch ca nh 1234H thuc trang b nh no: (a) Trang th 0(b) Trang th 1 (c) Trang th 2(d) Trang th 3 Cu 2-10: Thanh ghi PC ca PIC 16F887 c chiu di: (a)12 bit(b) 13 bit (c) 14 bit(d) 15 bit Cu 2-11: Phn chia b nh theo trang c u im: (a) Lm vi iu khin chy nhanh(b) Lm tng s lng m code (c) Lm gim a ch b nh(d) Lm gim s lng m code Cu 2-12: Cc chng trnh con lng vo nhau ca PIC ph thuc vo dung lng: (a) B nh chng trnh(b) B nh d liu(c) B nh ngn xp(d) B nh EEPROM Cu 2-13: Truy xut trc tip b nh d liu ca PIC 16F887 th: (a) Cho php ty c 4 bank (b) Cho php 2 bank (c) Ch cho php 1 bank(d) Cho php 3 bank Cu 2-14: Truy xut gin tip b nh d liu ca PIC 16F887 th: (a) Cho php ty c 4 bank (b) Cho php 2 bank (c) Ch cho php 1 bank(d) Cho php 3 bank Cu 2-15: Bit cho php thay i cc bank trong truy xut trc tip b nh d liu ca PIC 16F887 l: (a) IRP1, IRP2(b) RP1, RP0 (c) RP1, RP2(d) RP, IRP Cu 2-16: Bit cho php thay i cc bank trong truy xut gin tip b nh d liu ca PIC 16F887 l: (a) IRP1, IRP2(b) RP1, RP0 (c) IRP(d) IRP, RP1, RP0 Cu 2-17: Thanh ghi no u c trong 4 bank b nh d liu ca PIC 16F887: (a) PORTB(b) TRISB (c) PORTA(d) STATUS Cu 2-18: Thanh ghi no u c trong 4 bank b nh d liu ca PIC 16F887: ai hoc s pham ky thuatNguyen nh Phu 22Chng 2. To chc bo nh, thanh ghi. (a) TRISB(b) PCL (c) TRISA(d) TMR0 Cu 2-19: Khi ngt xy ra th PIC 16F887 s thc hin chng trnh con phc v ngt ti a ch: (a) 0004H(b) 0014H (c) 0000H(d) 0024H Cu 2-20: a ch b nh chng trnh ca PIC 16F887: (a) T 0000H n 1FFFH(b) T 0800H n 0FFFH (c) T 0000H n 07FFH(d) T 0000H n 2FFFH 4.BI TP Chng 3

GII THIULNH HP NG CA VI IU KHIN PIC 16F887 GII THIU KHO ST TP LNH TM TT VI IU KHIN PIC 16F887 TP LNH CHI TIT CU HI N TP TRC NGHIM - BI TP CU HI N TP CU HI TRC NGHIM CU HI M RNG BI TP ai hoc s pham ky thuatNguyen nh Phu 24Chng 3.Lenh hp ngI.GII THIU chng ny kho st tp lnh hp ng ca cc vi iu khin. Sau khi kt thc chng ny bn sbitmlnhnh phn,lnh ginh, cc kiunh a chb nh cavi iu khin,bit tplnh hp ng ca vi iu khin Vi iu khin hay vi x l l cc IC lp trnh, khi bn thit k h thng iu khin c s dng vixlhayvi iu khinv dnh h thng iu khin n giao thng chomt ng t gm c cc nXanh,Vng,vccled7onhinththigianthmichlphncng,munh thngvnhnhthbnphivitmtchngtrnhiukhinnpvobnhnibntrongviiu khin hoc b nh bn ngoi v gn vo trong h thng h thng vn hnh v d nhin bn phi vit ng th h thng mi vn hnh ng. Chng trnh gi l phn mm. Phnmmv phn cng c quan hvinhau,ngilp trnh phihiu r hot ng ca phn cng vit chng trnh. phn ny s trnh by chi tit v tp lnh ca vi iu khin gip bn hiu r tng lnh bn c th lp trnh c. Cc khinimv chng trnh,lnh, tp lnh v ngnng ginh trnh by chng 1, y ch tm tt li. Chng trnh l mt tp hp cc lnh c t chc theo mt trnh t hp l gii quyt ng cc yu cu ca ngi lp trnh. Ngi lp trnh l ngi bit gii thut vit chng trnh v sp xp ng cc lnh theo gii thut.Ngi lp trnh phi bit chc nng ca tt c cc lnh ca vi iu khin vit chng trnh.Tt c cc lnh c th c ca mt ngn ng lp trnh cn gi l tp lnh. Lnh cavi iu khinlmt s nh phn 8bit[cn gilmmy]. 256byte t 0000 0000b n 1111 1111b tng ng vi 256 lnh khc nhau. Do m lnh dng s nh phn qu di v kh nh nnccnhlptrnhxydngmtngnnglptrnhAssemblychodnh,iunygipcho viclp trnh c thc hinmt cch d dngv nhanh chng cngnh c hiuv g ri chng trnh. KhivitchngtrnhbngngnnglptrnhAssemblythviiukhinskhngthchin cm phi dng chng trnhbin dchAssembler chuyn i cclnhvit bng Assembly ra mlnhnhphntngngrinpvobnhkhiviiukhinmithchincchng trnh. Ngn nglp trnhAssembly do conngi to ra, khi s dngngnngAssembly vit th ngi lp trnh vi iu khin phi hc ht tt c cc lnh v vit ng theo qui c v c php, trnh t sp xp d liu chng trnh bin dch c th bin dch ng. II.LNH HP NG CA VI IU KHIN PIC 16F887 1.GII THIU Tp lnh ca PIC 16 c chia ra lm 3 nhm lnh: Lnh x l bit Lnh x l byte Lnh x l hng s v iu khin MilnhcaPIClmttdliu14bitcchiaralm2nhmgmmlnhhotng (opcode: operation code) v tc t (operand). M lnh Opcode cho bit loi lnh m CPU phi thc hin. Cc dng m lnh nh hnh 3-1: 0OPCODE6 7 8 13d f(FILE#) 0OPCODE6 7 8 13(BIT) f(FILE#)9 10 Nguyen nh Phu ai hoc s pham ky thuatChng 3. Lenh hp ng.25 0OPCODE7 8 13k (literal) 0OPCODE11 13k (literal)10 Hnh 3-1: Cc dng m lnh. Tc t operand l d liu m lnh s x l.Bng 3-1: Cc tc t: TTTc tM t 1fRegister file address (000 to 07F): l a ch 7 bit ca file thanh ghi 8 bit, ca 1 bank.2WWorking register: Thanh ghi lm vic hay thanh ghi A. 3bBit address within an 8-bit file register: l a ch ca 1 bit nm trong thanh ghi file 8 bit4kLiteral field, constant data or label: L hng s hoc a ch ca nhn. 5dDestination select:lachnnilu dliu: d=0thluvo W, d=1 thluvof,mc nhin khng ghi d trong lnh th tng ng d=1. 6PCProgram counter: b m chng trnh.7TOTime-out bit: bit bo thi gian ht. 8PDPower -down bit: bit bo CPU ang lm vic ch ng. Vi lnh x l byte: th 'f' i din cho file thanh ghi v 'd' i din cho hng lu d liu: nu 'd' bng 0 th d liu sau khi x l lu vo thanh ghi 'W', nu 'd' bng 1 th d liu sau khi x l lu vo thanh ghi 'f'. Vi lnh x l bit: th 'b' i din cho bit nm trong file thanh ghi 'f''. Vi lnh x l hng s hoc iu khin: th 'k' i din cho hng s 8 bit hoc a ch 11 bit. Mt chu k lnh gm 4 chu k dao ng, nu s dng thch anh c tn s 4MHz th thi gian thc hin mi lnh l 1s. Hu ht cc lnh thc hin mt 1 chu k lnh, ngoi tr lnh kim tra iu kin ng sai hoc lnh lm thay i gi tr ca thanh ghi PC th thc hin mt 2 chu k my.2.KHO ST TP LNH TM TT VI IU KHIN PIC 16F887 Bng 3-2: Tm tt tp lnh ca PIC: Nhm lnh x l byte gia thanh ghi W vi f TTC phpChc nngChu kM lnhC b nh hng 1ADDWF f,d(W) cng (f)100 0111 dfff ffffC, DC, Z 2ANDWF f,d(W) and (f)100 0101 dfff ffffZ 3CLRF fXa (f)100 0001 1fff ffffZ 4CLRW -Xa (W)100 0001 0xxx xxxx Z 5COMF f,dB (f)100 1001 dfff ffffZ 6DECF f,dGim f100 0011 dfff ffffZ 7DECEFSZF f,d Gim f, b lnh k nu f = 01(2)00 1011 dfff ffff 8INCF f,dTng f100 1010 dfff ffffZ 9INCEFSZF f,dTng f, b lnh k nu f = 01(2)00 1111 dfff ffffai hoc s pham ky thuatNguyen nh Phu 26Chng 3.Lenh hp ng10IORWF f,d(W) or (f)100 0100 dfff ffffZ 11MOVF f,dcopy (f)100 1000 dfff ffffZ 12MOVWF f(W) (f)100 0000 1fff ffff13NOPKhng lm g100 0000 0xx0 0000

14RLF f,dXoay tri f xuyn qua c C100 1101 dfff ffffC 15RRF f,dXoay phi f xuyn qua c C 100 1100 dfff ffffC 16SUBWF f,d(F) tr (f)100 0010 dfff ffffC, DC, Z 17SWAPF f,dHon chuyn 4 bit ca f100 1110 dfff ffff18IORWF f,d(W) xor (f)100 0110 dfff ffffZ Nhm lnh x l bit TTC phpChc nngChu k M lnhC b nh hng 1BCF f,bLm bit b trong f xung 0101 00bb bfff ffff 2BSF f,bLm bit b trong f ln 1101 01bb bfff ffff 3BTFSC f,bNu bit b bng 0 th b lnh k101 10bb bfff ffff 4BTFSS f,bNu bit b bng 1 th b lnh k101 11bb bfff ffff

Nhm lnh hng s v iu khin TTC phpChc nngChu k M lnhC b nh hng 1ADDLW k(W) cng k (W)111 111x kkkk kkkkC, DC, Z 2ANDLW k(W) and k (W)111 1001 kkkk kkkkZ 3CALL kGi chng trnh con 210 0kkk kkkk kkkk 4CLRWDTXa b nh thi100 0000 0110 0100 TO,PD 5GOTO kNhy n a ch k210 1kkk kkkk kkkk 6IORLW k(W) or k111 1000 kkkk kkkkZ 7MOVLW kK (W)111 00xx kkkk kkkk 8RETFIE Tr v t ngt200 0000 0000 1000 9RETLW Tr v t chng trnh conv np hng s vo W 211 01xx kkkk kkkk 10RETURN Tr v t chng trnh con200 0000 0000 1000 11SLEEPCpu vo ch ch100 0000 0110 0011 TO,PD 12SUBLWkK (W) (W)111 110x kkkk kkkkC, DC, Z 13XORLW k(W) xor k111 1010 kkkk kkkkZ 3.TP LNH CHI TIT 1.Lnh: ADDLW Cng hng s k vo W C php:ADDLWk Tc t: 0 k 255 Nguyen nh Phu ai hoc s pham ky thuatChng 3. Lenh hp ng.27 Thc thi:(W) + k (W). C nh hng: C, DC, Z.Chu k thc hin: 1. Chc nng: cng ni dung thanh ghi W vi hng s k 8 bit v kt qu lu vo W. 2.Lnh: ADDWF Cng W vi f C php:ADDWFf,d Tc t: 0 f 127, d [0,1] Thc thi:(W) + (f) (dest).C nh hng: C, DC, Z. Chu k thc hin: 1. Chcnng: cngni dung thanh ghiWvi thanh ghif. Nu d= 0 thlu kt quvo thanh ghi W, cn d=1 th lu vo thanh ghi f. 3.Lnh: ANDLW And hng s vi W C php:ANDLW k Tc t: 0k255 Thc thi:(W) AND (k)(W).C nh hng: Z. Chu k thc hin: 1. Chcnng:Andni dung thanh ghiWvihngs k 8 bit, kt quluvo thanh ghi W. 4.Lnh: ANDWF And W vi F C php:ANDWFf,d Tc t: 0 f 127, d [0,1] Thc thi:(W) AND (f) (dest).C nh hng: Z. Chu k thc hin: 1. Chc nng: And thanh ghi W vi thanh ghi f. Nu d = 0 th kt qu lu vo thanh ghi W, nu d=1 th kt qu lu vo thanh ghi f. 5.Lnh: BCF xo bit trong thanh ghi F- BIT CLEAR FILE C php: BCFf,b Tc t:0 f 127, 0 b =,