You are on page 1of 28

Vi iu khin PIC - Hc nhanh i vo ng dng

Li khuyn la chn b cng c lm vic vi PIC


Mch np: PG2C - PIC Tutorial Chng trnh np: IC - PROG Bootloader: Tiny bootloader Debugger: ICD2 Clone Chng trnh dch: MPLAB IDE - CCS C La chn PIC: - Mi hc: PIC16F628A hoc PIC16F88 - Hc tng hp: PIC16F877A - Lm ti: PIC16F876A - Cn mnh hn: PIC18F458 Cc loi trn u c th dng PG2C v IC-PROG 1.05D - iu khin ng c: PIC18F4331, PIC18F4431 (ICD2) - Lp trnh thut ton: dsPIC30Fxxxx (dng ICD2) trnh mt thi gian cc cu hi thng c lp i lp li v PIC, cc bn mi hc v PIC lu bi vit ny. Bi vit ny s c update lin tc khi c cc thng tin mi. 0) Mt vi iu c bn v PIC - PIC16F84 l dng PIC ph bin nht c khuyn khch cho nhng ngi mi hc. Tuy nhin, gn y, dng PIC16F628A ra i, gi thp hn, nhiu chc nng hn, v thc s l dng PIC Flash. N c hu ht cc chuyn gia khuyn dng bt u thc hnh v PIC. Hu ht cc tutorial mi u bt u chn PIC16F628A. Tuy nhin, hin nay dng PIC16F88 mi ra i, cng nh s ra i ca PIC16F628A, PIC16F88 c nhiu chc nng hn PIC16F628A, gi c khng chnh lch l bao (khong 5000 n 10000 ng ti Vit Nam), v n h tr gn nh ton b chc nng ca mt vi iu khin hin i. Do vy, chng ti khuyn cc bn nn chn PIC16F628A hoc PIC16F88 bt u hc v PIC Thi im thng 05 nm 2005 - Gi hin nay ca dng PIC 18 chn dao ng t 20.000 ng n 50.000 ng mi con - Gi dng PIC16Fxxxx dao ng t 40.000 ng n 150.000 ng - Gi dng PIC18Fxxxx dao ng t 100.000 ng n 300.000 ng - Gi dng dsPIC dao ng t 150.000 ng n 350.000 ng hoc hn - Gi dng rfPIC dao ng t 50.000 ng n 100.000 ng nh gi cc dng PIC - Dng PIC nhiu chn nht l dng PIC18Fxxxx, c nhng con s chn ln n 80 chn - Dng PIC t chn nht l dng PIC10Fxxx, ch c 6 chn - Dng PIC ph bin nht l dng PIC16F877A ( mnh v tnh nng, 40 chn, b nh cho hu ht cc ng dng thng thng) - Dng PIC m chng ti nh gi cao nht l dng PIC16F876A (28 chn, chc nng khng khc g so vi PIC16F877A, nhng nh gn hn nhiu, v s chn cng khng qu t nh PIC16F88). - Dng PIC h tr giao tip USB l dng PIC18F2550 v PIC18F4550 - Dng PIC iu khin ng c mnh nht l dng PIC18F4x31 - Khi cho rng mnh chuyn nghip hn, cc bn nn dng PIC18F458 - dsPIC chng ti khuyn khng nn dng v khng nn ngh ti khi mi hc, bn thn chng ti cng cha c iu kin lm vic vi dsPIC mc d v lp trnh th dsPIC hon ton ging vi PIC thng thng. - Dng PIC tng hnh l dng PIC17xxxxx, hin nay khng cn c sn xut

1) Mch np PIC, Bootloaders v cc chng trnh np tng ng Mch np http://www.olimex.com/ Trang web ny cung cp rt nhiu loi mch np ca PIC, c s nguyn l y , v tt c cc hng dn lin quan n vic ci t v s dng mch np. Trong ti liu hng dn PIC Tutorial, chng ti chn s dng mch np PG2C hng dn. http://siscobf.webcindario.com/winpic800.htm Hi kh coi mt cht v n l ting Ty Ban Nha hay sao ? Nhng khng vn g, cc bn download v, t ng s hiu phi lm th no. Ti vn ch trng, ngi cha bit g dng PG2C. In Circuit Debugger http://www.stolz.de.be/ ICD2 Clone, np c hu ht cc loi PIC hin c, h tr debug trong mch v quan trng nht l np c cho dng dsPIC30F Bootloader http://www.ac.ugal.ro/staff/ckiku/software/picbootloader.htm y l b tinybootloader, l b bootloader xn nht cho n by gi m ti bit. http://www.dontronics.com/rfarmer.html http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en 012031 Microchip bootloader, ch h tr dng 16F, nhng l bootloader chnh thc ca hng, cung cp min ph Chng trnh np http://www.ic-prog.com/ 2) Cc chng trnh dch Chng trnh MPLAB IDE : http://www.microchip.com/ Chng trnh CCS C (phin bn 3.222 c crack): download ti y Chng trnh HT PIC (phin bn 8.05PL2 ngy 27/9/2004, c crack): download ti y Chng trnh HT PIC18 (phin bn demo): http://www.hitech.com/ Hng dn ci t: MPLAB, CCS C, HT PIC, HT PIC18 , download tt c 3) Cc ti liu hng dn - Chng ti ng ton vn cc ti liu hng dn trong lung TI LIU HNG DN TING ANH cc bn tin download. Lu rng, chng ti ng nhng ti liu ny bng file .pdf thun tin cho vic download, c trn my v in n. Chng ti khng mun ng file .doc v l do khng mun cc bn mi hc thun tay copy and paste. Chng ti hy vng rng thi gian u mi hc, cc bn nn kin nhn hc tng dng lnh, cch trnh by hiu r ni dung. Ngoi ra, theo nhng nh gi c nhn, nhng ti liu hng dn ny khng ging nh mt th vin source code, cch thc hin ti u ho tng ti mt, nn cng khng ph hp vi cc bn mi hc. - Ti liu hng dn ting Vit ang c thc hin, v s ng tng phn trong lung TI LIU HNG DN TING VIT. Ti liu ny cng cung cp dng file .pdf trnh sao chp, v l do chng ti mun son tho hon thin ti liu ny trc khi cng b, v y cng l mc ch chnh ca din n picvietnam. 4) Hng dn mch np Falleaf PG2C - PIC Tutorial - Ti liu hng dn ny c ng ti lung Falleaf PG2C - PIC Tutorial - Cc bn c th tm mua mch np ny v a CD i km thng qua phungtbinh@yahoo.com (H Ni) myfrienddang@yahoo.com (TPHCM) vi gi 35.000 ng/b 5) Cc a ch tm source code ca PIC http://www.piclist.com/ (a ch nhiu source code ca PIC nht trn i) 6) Cc forum ting Anh v PIC - Forum chuyn v MPASM, c s tham gia ca Nigel Goodwin: http://www.electro-tech-online.com/ - Forum chuyn v CCS C, do chnh CCS C info xy dng: http://www.ccsinfo.com/forum/viewforum.php?f=1 - Forum hng dn ca Olimex v SparkFun: http://www.sparkfun.com/ Trang web ny hng dn cc mch do Olimex cung cp, hay ni cch khc SparkFun l forum

ca Olimex. 7) http://www.microchip.com/ Trang web chnh ca Microchip PIC, cung cp: - datasheet - din n chnh ca Microchip PIC (nhng khng si ni lm) - mi trng son tho v trnh dch MPLAB (lun c phin bn mi nht) - bn cc linh kin (PIC, dsPIC, rfPIC, mch np, chng trnh dch, linh kin analog...) - bootloader chnh thc ca PIC dng cho 16F877A v 16F876A 8) Mt s trang web mua bn cc cng c h tr PIC, cc sn phm t PIC... http://www.ccsinfo.com/ (bn chng trnh CCS C cho PIC) http://www.dontronics.com/dt101.html (bn mt s sn phm in t) http://www.digikey.com/ (bn mt s sn phm in t) http://www.phanderson.com/PIC/PICC/index.html (a ch mua trnh dch v th vin source code) http://www.diendandientu.com/ (trong lung Mua Bn Linh Kin c mt s ngi bun bn l cc sn phm PIC) 9) Cc ti thc hin vi PIC http://www.bobblick.com/techref/projects/propclock/propclock.html ng h quay, dng n led v hin tng lu nh hin th gi, dng tn hiu xung trn cc mu rotor xc nh thi gian hin th. http://www.seattlerobotics.org/encoder/may97/picchip.html 10) Email h tr thc hnh PIC Cc bn c th email cho ti khi gp vn cn t vn v PIC qua a ch: falleaf.pic@gmail.com Khi gi email, mong cc bn gi km theo mch nguyn l, chng trnh thc hin, v cc thng tin nh: bn s dng h iu hnh g? bn dng mch np no? bn dng chng trnh dch g? bn dng chng trnh np g? Cc li bo c th.... v tt nhin cc vn cc bn mun hi. Ti khng ha c th tr li tt c email ca cc bn, tuy nhin ti v cc bn ca ti s c gng ht sc gip cc bn thc hin ti trn vi iu khin PIC. Ngoi ra, chng ti rt thch trao i v cc quan im thit k, tng sng to nht l v PIC, robotics, haptic device, biomedical equipements, radio frequency devices... Chng ti rt mong c c s ng h v chia s ca cc bn.

C bn v pic
Di y l hnh mch chy ca PIC16F84A, PIC16F628A v PIC16F88. Tt c cc PIC ny u c v tr chn tng ng nhau, v thm ch c th ni PIC16F628A tng thch PIC16F84A v PIC16F88 tng thch vi hai loi cn li. C ngha l trong cc ng dng ca PIC16F84A, khi thay i bng PIC16F88, hay PIC16F628A u c.

Tt nhin, 3 loi vi dng PIC trn y c th tng thch vi nhiu dng PIC c hn, nhng v th trng PIC Vit Nam ph bin vi 3 loi PIC ny, cho nn chng ti ch cp n 3 loi PIC ny m thi. Sau khi cc bn c mch np, chng trnh np, MPLAB IDE, CCS C hoc HT PIC, cc bn lm mch chy ny. K t y khi thit k cch mch test, hoc cc thit b ngoi vi khc, cn th nghim, cc bn ch vic thit k mch ngoi, sau cm vo cc chn ra v chy th. Khi mch chy tt, cc bn mun thit k c hon chnh, cc bn ch vic copy mch chy t Orcad v dn vo mch nguyn l ca thit b ca bn. Xo cc chn header i, v ni dy vo trong mch chy PIC. Nh vy, chng ta khng phi tn thi gian thit k cho PIC na. Mt vi im lu v mch nh sau: - Ngun ch dng cho PIC, tuyt i khng dng b ngun ny cho thit b ngoi vi. Nu thit b ngoi vi cn ngun, cc bn thit k b ngun ring. Mt s thit b ngoi vi qu n gin, v tn t dng, cc bn c th dng ngun chung (khong 100mA) - Ti khng khuyn khch dng dao ng ni ca PIC, bi v dao ng ni ch chy c 4MHz, v khng n nh nh dng thch anh ngoi. Mt s ti cng nghip, h dng thch anh chun cng nghip 4 chn, nn chng ta cng to thi quen dng thch anh ngoi, khng cn qu tn dng 2 chn ca PIC. - Mch reset ny l mch reset n gin nht ca PIC, v to ch reset power on. Mt s ng

dng ca PIC yu cn mch brownout reset, cc bn c th tham kho trong datasheet. Nhng ti thit ngh, nhng ti thng thng, khng cn dng mch brownout reset ny. - Chng ta thng nht chun thit k cho cc header l ni vo cc chn ca PIC theo th t hai chn ngoi cng l Rx0 v GND. Mc ch l khi chy mch in, chn GND c th c xp ra pha ngoi, chn Rx0 quy nh cho tt c cc port khc nhau, v c port ch c 3 chn, c port 5 chn, 8 chn... Nu ly chn RB7 lm chun chng hn, th s rt kh gii thch khi ly chn RA4 t ra pha ngoi. V vy RA0 v RB0 chng ta ly lm chun. iu ny cng c thc hin trong mt s tutorial, v gn nh l quy c bt thnh vn khi thc hin cc mch pht trin cho vi iu khin. Chn VDD (5V) c ni vo, nhm s dng cho cc ng dng cn c in p ng vo, nhng khng cao lm nh trn ni (100mA). Tuyt i khng thit k chn VSS (GND) v chn VDD (5V) hai u ca header, trnh tnh trng i khi chng ta khng cm nhm, c th lm hng PIC, hoc hng lun c thit b ngoi vi. - Cc nt bm v cng tc, ti thit k l cc nt bm 4 chn, v hin nay trn th trng hu nh ch bn loi nt bm ny, v loi nt bm ny chc chn hn loi 2 chn trc y. Cc bn cng lu sau ny khi thit k nt bm cng nn thit k nt bm 4 chn. - Con n p 78L05 khc vi con 7805. N l dng TO92, tc l n ging nh con transistor thng thng, nn rt nh, ch khng phi dng 3 chn v c tm tn nhit pha sau nh con 7805. Do vy, mch thit k s nh i kh nhiu. - y, ti khng chy ra mch in, v rng ti mun dnh cng vic ny cho cc bn sinh vin mi hc. Sau khi cc bn lm xong mch in, nu cc bn c th chia s vi chng ti th tht l tuyt vi. Ch c mt iu lu l, chng ta thng khng cm trc tip vi iu khin vo mch hn, m chng ta cm qua mt socket c th g ra lp trnh li, v m bo khng b chy PIC khi hn. Do vy, khi cm socket, cc bn s c th nht hai t ni thch anh vo bn trong socket, khi cm PIC ln, n s che hai ci t i, v mch ca cc bn s gn gng hn. Socket loi 18 chn khng th nht thch anh v in tr ni t chn MCLR n VDD vo bn trong c, nhng sau ny khi dng PIC 28 hoc 40 chn, cc bn nn nht tt c vo bn di socket cho mch gn gng hn. - Mt im cui cng, chng ti khng thit k phn np bng ICSP, bi v chng ti khng mun lm cho cc bn mi hc PIC cm thy bi ri. Chng ta s thc hin mch chy PIC vi cc chn ICSP v bootloader sau.

Hc vi iu khin PIC trong 1 ngy


Bi tp 1: Bt tt n LED

Cc dng ca LED c ni vi in tr, in tr c ni vi cc chn vi iu khin. Cc m ca LED c ni vi GND ca vi iu khin. Nh vy, khi chn vi iu khin mc cao, tc l 5V, n LED s sng. Khi chn vi iu khin mc thp (0V) n LED s tt. Lu trong hnh: Gi tr ca in tr c xc nh da vo dng ti a ca vi iu khin, in p v dng in ti a ca n LED. Nh vy, gi tr nh nht ca in tr c dng c tnh ton nh trong hnh. R = 125 Ohm. Tuy nhin, m bo hot ng ca n LED, chng ta nng gi tr in tr ln thnh 200 Ohm. n LED khi sng qu, ch cn s tay vo n, hoc cc va chm mnh, hoc trng hp b tnh in, n LED c th b h ngay. Hin tng ny d thy nht l cc LED cc sng dng trong cc bng hiu hoc bin bo giao thng, cc n LED cc sng ch cn chm tay vo, s c hin tng tnh in v n ngay. Vi cc LED thng v dng trong th nghim, kh xy ra hin tng ny, tuy nhin cht lng sn xut ca cc n LED cng khng m bo, do vy chng ta chn gii php an ton l trn ht. Hn na, chng ta cng khng cn n LED qu sng. bt u bi tp 1, chng ta tm hiu s qua v cu trc mt chng trnh vit bng MPASM nh sau: Bt c mt chng trnh ASM no, cng c bt u bng vic gii thiu v chng trnh, tn chng trnh, ngi thc hin chng trnh, ngy thc hin chng trnh, ngy hon tt, ngi kim tra li chng trnh, ngy kim tra chng trnh, phin bn ca chng trnh, m t phn cng ca mch giao tip v mt s ch thch. V vy, ti a ra y mt form m ti cho rng hp l, t y v sau, cc bn ch cn ct dn form ny, thay i ni dung tng mc lm phn m u. Chng ta quy nh mt s quy c sau: ;========== dng phn cch cc phn chnh ca chng trnh ;---------------- dng phn cch cc chng trnh con ca chng trnh

Code:

;================================================= ======= ; Ten chuong trinh : Mach test den LED_1 ; Nguoi thuc hien : Falleaf ; Ngay thuc hien : 23/05/2005 ; Phien ban : 1.0 ; Mo ta phan cung : Dung PIC16F628A - thach anh 10MHz ; : LED giao tiep voi PORTB ; : Cuc am cua LED noi voi GND ; : RB0 - RB7 la cac chan output ;---------------------------------------------------------------; Ngay hoan thanh : 23/05/2005 ; Ngay kiem tra : 23/05/2005 ; Nguoi kiem tra : Doan Hiep ;---------------------------------------------------------------; Chu thich : Mo ta cac diem khac nhau cua cac phien ban khac nhau ; : hoac cac chu thich khac ; : vd, dung che do Power On Reset, PORTB = 00000000 ; : hoac, chuong trinh viet cho PIC Tutorial ; : hoac, chuong trinh nay hoan toan mien phi va co the dung cho ; : moi muc dich khac nhau ;================================================= ======= Mc d cha chc rng on ch thch ny c th ngn hn chng trnh cc bn vit, v nh vy vic vit ch thch di hn vic vit chng trnh? Khng, thc s cc ch thch ny rt quan trng, v sau 1, 2, 3 nm, cc bn nhn li, cc bn s vn cn hiu c mnh lm g. C th khi mi bt u, cc bn thy cng vic ghi ch ny l nhm chn, chnh v vy, ti cung cp form ca ghi ch ny, cc bn sau ch cn ct v dn. Ti hy vng rng cc bn nn to thi quen a on ch thch ny vo chng trnh cc bn tr nn chuyn nghip hn khi lm vic vi vi iu khin, c th y l PIC. Tt nhin, y l bi hc u tin, do vy cc ch thch s c ghi rt chi tit, nht l khi m t phn cng. Sau ny, vi cc mch phc tp hn, cc bn khng th ghi ch qu chi tit nh th ny c, cc bn ch ghi ch nhng im chnh thi. Cng tt nhin, khi lp trnh vi CCS C hay HT PIC, cc bn cng nn ghi ch nh vy trong chng trnh chnh, nhng chng ta cha bn n CCS C v HT PIC y. Phn th hai cc bn cn hc, l 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?
Code:

;================================================= ====== TITLE "Mach test LED_1" PROCESSOR P16F628A INCLUDE <P16F628A.inc> __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC ;================================================= ====== Cc bn s thy rng c mt s t kho nh sau: TITLE: dng cc bn ghi ch thch tn chng trnh. TITLE l ten chng trnh chnh. C php ghi TITLE nh trn. Nh phi c du nhy kp khi vit tn chng trnh. PROCESSOR: dng khai bo dng vi iu khin m cc bn s dng. Cc bn lu , trong MPLAB quy nh, khng vit y tn PIC16F628A m ch vit P16F628A, v trong chng trnh dch quy nh nh vy. INCLUDE: dng a thm vo cc file m bn vit trong chng trnh. Mc nh, trong MPLAB ng dn n th mc cha file P16F628A.inc c sn. Nu bn t file ni khc khng phi

trong th mc bn ang lm vic, hoc cc file include khong phi l file .inc c sn ca MPLAB, th cc bn phi ch ng dn r rng. Lu rng, MPASM dch c, cc bn phi t ng dn t th mc gc n ht tn file (k c phn m rng ca file) khng c qu 60 k t. __CONFIG: dng thit lp cc ch hot ng ca PIC. Cc bn c th xem hiu thm v cc ch hot ng ny trong ti liu PICmicro Mid Range MCU Family Reference Manual Section 27. Device Configuration Bits Table 27-1 page 27-7 Ti liu ny c th download trn trang web ca microchip http://www.microchip.com/, keyword: MidRange Manual. Mi directive t ch , cch nhau mt k t &. Nu ghi ch hot ng vo y, cc ch hot ng s trng thi mc nh khi khi ng. Cc bn cng c cch khc t ch hot ng bng cch tc ng trc tip vo cc thanh ghi khi to. Tuy nhin, vic ny l vic lm khng cn thit, khi chng ta c cc directive vit tt. Nh vy, chng ta t y ch _CP_OFF, tc l khngt ch bo v source code khi np vo PIC, sau khi np vo s c th c ngc li t PIC ra. Chng ta khng cn bo v chng trnh ny, bn c th c ngc bng IC-PROG v kim tra li. Ch _PWRITE_ON, tc l cho timer 0 chy khi Power On Reset. Thc ra timer0 c chy hay khng cng khng quan trng, v n chng lin quan g n cng vic ca chng ta. Nu sau ny mun dng timer0, th cc bn vn phi khi to li gi tr cho n, ch u th s dng gi tr ngu nhin ca n c, thnh ra c cho n chy, sau ny cn dng khi phi khi to. _WDT_OFF, ti thi im ny, ti tt Watch Dog Timer v l do cc bn cha nn tm hiu phn ny vi. _HS_OSC, chng ta dng thch anh 10MHz, tc l chy ch dao ng HS. Tham kho ti: datasheet PIC16F628A Section 14. Special Features of the CPU 14.2. Oscillator Configuration Page 95 Mt im lu cui cng l cc bn phi s dng phm TAB phn cch cc ct ca mt chng trnh vit bng MPASM. Cc dng khi to ny c vit ct th 3. Cc directive __CONFIG, TITLE, PROCESSOR, INCLUDE c vit vo ct th 3. Cn chi tit khi to c vit vo ct th t. Ct th nht dng vit cc [NHN], ct th hai vit m lnh, ct th ba li dng vit chi tit cc tham s ca lnh, v ct th t b trng to khong cch vi ct th nm. Ct th nm dng vit cc ch thch. Cc ch thch bt u bng du chm phy ( . Trn mt dng, tt c cc k t vit sau du chm phy u v ngha. Chnh v vy, khi vit phn ch thch ban u, cc bn thy rng tt c ni dung u bt u bng du chm phy. Nh vy, mt dng lnh c c th nh sau:
Code:

NHN

LNH

thamso1,

thamso2

; ch thch dng lnh

By gi chng ta dnh cht thi gian cho l thuyt, cc bn m datasheet PIC16F628A trang 15, Section 4. Memory Organization Chng ta s thy rng t chc b nh chng trnh ca PIC c chia ra lm my phn nh sau: - Pointer - Stack - Interrupt vector - Program memory

Chng ta tm thi cha bn n pointer v stack. Interrupt vector c t a ch 0x0004 Program memory c t a ch 0x0005 Vy t a ch 0x0000 n a ch 0x0003 chng ta lm c g? Khi PIC c reset, n lp tc nhy v a ch 0x0000. Ri c sau mt chu k my, n nhy n a ch tip theo, xem xem trong a ch yu cu n lm g, n thc hin vic , xong ri li nhy tip. C lm nh th cho n khi ht chng trnh. Tt nhin, khi chng ta thc hin mt s lnh iu khin v tr nhy, th n s nhy khng theo th t na, nhng vic ny cha bn vi. Chng ta trc mt ch cn bit rng n c nhy nh vy cho n ht chng trnh. Nh vy, nu khng s dng ngt, th chng ta vit chng trnh t a ch 0x0000 lun, v n c th l nhy t 0x0000 khi khi ng, cho n ht chng trnh. Tuy nhin, nu lm nh vy, sau ny chng ta s dng chng trnh ngt, th chng ta s gp trc trc v thi quen vit t a ch 0x0000. Chnh v vy, chng ta nn t chng trnh trong phn Program Memory nh thit k PIC. Vy, chng trnh ca chng ta s vit nh sau:
Code:

;================================================= ORG 0x0000 GOTO MAIN ORG MAIN ..... END. ;================================================= 0x0005

===================

===================

y s l cu trc mt chng trnh m chng ta s thc hin. Directive ORG dng xc nh a ch m chng ta s lm vic. By gi chng ta xem tip n trang 16 ca datasheet. Chng ta thy rng, b nh d liu ca PIC16F628A c chia ra thnh 4 BANK, hay chng ta gi ting Vit l 4 BNG. Trong 4 bng ny, chng ta thy r n c chia lm 3 phn. Phn th nht l phn cc thanh ghi c a ch xc nh (c ghi ch bn cnh) v c tn tui r rng. Nhng thanh ghi ny c gi l nhng thanh ghi c bit ca PIC. Tn ca chng, thc ra khng c, mt thanh ghi ch c xc nh bng a ch ca thanh ghi m thi. Tuy nhin, chng ta lm ng tc include file P16F628A.inc, file ny nh ngha sn tn cc thanh ghi ny, v l quy c ca MPLAB, ng thi cng l quy c chung cho tt c ngi dng PIC. Chng ta c th thay i, sa cha nhng nh ngha ny, tuy nhin vic lm va khng cn thit, li va gy ra rt nhiu kh khn khi lm vic nhm. Vy cc bn phi hiu, nhng tn thanh ghi ny xem nh l khng thay i trong PIC, v chng ta s dng n nh n tn ti vi chc nm nay. Phn th hai, l phn General Purpose Register. Chng ta gi n l cc Thanh Ghi Dng Chung. Nhng thanh ghi ny cha c nh ngha, v v th n cng khng c tn. Nhng thanh ghi ny c gi tr nh cc bin trong chng trnh m chng ta s s dng. Phn th ba, l cc thanh ghi nm a ch 70h n 7Fh, v v tr tng ng ca n bng 1, 2, 3. Cc thanh ghi tng ng bank1, 2, 3 s tng thch vi cc thanh ghi t 70h n 7Fh bng 0. Tuy nhin, chng ta tm thi cha quan tm n phn ny. By gi chng ta hc vit chng trnh
Code:

;================================================= ORG 0x0000 GOTO MAIN ORG MAIN 0x0005

==============================

BANKSEL TRISB CLRF BANKSEL PORTB BSF

TRISB

; bank select ; trisb = 00000000 ; portb = output

; rb0 = 1 ; RB0 = 5V GOTO $ ; dung chuong trinh tai day ; vong lap tai cho^~ ; khong bao gio ket thuc END. ; lenh bat buoc de ket thuc ;================================================= =============================== Ri, nh vy, chng ta thc hin xong mt chng trnh vit bng MPASM cho PIC16F628A. Phn tch chng trnh, chng ta s thy, mi khi ng, chng trnh gp lnh goto main, n s nhy n nhn MAIN. nhn MAIN, n gp lnh banksel, tc l lnh bank select. C ngha l n s chuyn sang hot ng bng c cha thanh ghi TRISB. V sao? Bi v ban u khi ng, PIC lun nm bng 0. Nhng thanh ghi TRISB li nm bng 1, v th cn phi chuyn sang bng 1 lm vic. Thc ra chng ta cng c cch yu cu PIC chuyn sang bng 1 mt cch ch danh, ch khng phi l chuyn sang bng c thanh ghi trisb nh chng ta va lm. Nhng vic ny l khng cn thit, c hai vic lm u ging nhau. Chnh v vy, chng ta chn cch vit no cho d nh l c. Sau khi chuyn sang bng 1. Chng ta dng lnh CLRF xo thanh ghi TRISB. Tc l TRISB = 00000000 Chng ta lu mt iu rng, thanh ghi TRISB c cng dng quy nh PORTB s c nhng chn no l chn xut, chn no l chn nhp. Chng ta nh thm mt iu na, s 0 ging ch O, v s 1 ging ch I. Nh vy, khi TRISB = 00000000 tc l PORTB s l OOOOOOOO, tc c ngha l tt c cc chn ca portB u l Output. Nu TRISB = 01010101 th PORTB s l OIOIOIOI. C ngha l RB0 s l Input, RB1 l Output, RB2 l Input, RB3 l Output.. c nh th cho n RB7 l Output. Lu rng RB0 n RB7 c tnh t phi sang tri. Sau , chng ta li thc hin lnh Banksel portb, tc l chng ta li nhy v bng 0 (bng cha thanh ghi portb). Tt c cc lnh lm thay i gi tr ca thanh ghi portb, s lm thay i tn hiu in bn ngoi chn ca PORT B. Sau khi chuyn sang bng 0, chng ta thc hin lnh BSF PORTB,0. C ngha l chng ta set bit v tr 0 ca portb, tc l chng ta cho RB0 = 1. C ngha l ngoi chn RB0 s mang gi tr in p 5V. Khi , n LED ni vi RB0 s sng. Cc bn s thy mach ngoi hot ng nh th ny: Khi bt in ln, PIC c reset. N lp tc bt sng n LED RB0, ri sau gi nguyn nh vy, khng lm g c. By gi cc bn lu chng trnh va vit thnh LED_1.asm vo mt th mc no . Nhn Alt - F10, chng trnh s dch LED_1.asm thnh LED_1.hex Cc bn dng mch np PG2C v chng trnh np IC-PROG np vo PIC (tham kho Hng dn mch np Falleaf PG2C - PIC Tutorial). Cng vic ca cc bn nh sau: 0) Chy th chng trnh ban u 1) Thay i lnh BSF PORTB, 0 bng lnh BSF PORTB, 1. Np li chng trnh mi vo PIC. Bn s thy by gi n LED khng sng v tr RB0 na m sng v tr RB1. 2) Thay lnh BSF PORTB,0 bng on lnh MOVLW b'11110000' MOVWF PORTB Bn s thy cc cc chn t RB0 n RB3 s tt n, v cc chn t RB4 n RB7 n s sng. 3) Bn thay lnh CLRF TRISB bng on lnh CLRF TRISB BSF TRISB, 0 v gi nguyn lnh BSF PORTB, 0 Cc bn s thy rng n LED trong trng hp ny s khng sng na. Bi v cc bn lm cho TRISB = 00000001. Nh vy, RB0 tr thnh chn Input. Khi RB0 tr thnh chn Input, th lnh BSF PORTB, 0 s khng cn tc dng na. RB0 lc ny khng th thay i gi tr bng chng trnh, n ch c th nhn gi tr in p t bn ngoi vo.

PORTB, 0

4) Trong trng hp mch ny, cc bn s lm th no?

Kt lun: Qua bi hc ny, cc bn hc c cc ni dung sau: - Lm mt mch chy PIC - Cu trc mt chng trnh PIC - Lp trnh t my tnh, np vo PIC, v cho PIC hot ng - Hiu c hot ng xut nhp ca PIC, chc nng ca thanh ghi TRISA, TRISB, PORTA, PORTB, hiu c cc lnh CLRF (xo thanh ghi bt k), MOVLW (ghi mt gi tr bt k vo thanh ghi W), MOVWF (ghi gi tr ca thanh ghi W vo mt thanh ghi khc), BSF (bt mt bit trong mt thanh ghi bt k), GOTO (nhy n mt nhn bt k), GOTO $ (nhy ti ch), BANKSEL (chon bng trong b nh chng trnh, cha mt thanh ghi bt k), ORG nh a ch trong b nh chng trnh. Hin nay cc bn cha hc n lm th no Input, nhng c th cc bn s thc hin d dng bng vic thay LED bng mt nt bm. Hoc gi, cc bn mun n LED nhp nhy, v nguyn tc cc bn c th thc hin bt tt lin tc n LED bng lnh BSF v BCF. Nhng lm nh th n nhy qu nhanh, khng th thy c. Bi hc sau, chng ta s hc cch vit hm Delay, v cc bn c th thc hin vic lm cho n LED nhp nhy, lm cho dy n t RB0 n RB7 chy qua chy li... Chc cc bn may mn trong bi hc u tin, v chc cc bn thnh cng vi PIC!

*******

&&& *******

Thanh ghi W
Trong bi ny, chng ta ni i nt v thanh ghi W cc bn nm r hn phng thc hot ng ca PIC. Khi nim thanh ghi W: Thanh ghi W l thanh ghi lm vic (Working register), v hu ht mi lnh ca PIC u lin quan n thanh ghi W ny, ly th d nh ADDLW (cng mt s vo gi tr c trong thanh ghi W), SUBWF (tr gi tr ca thanh ghi W cho mt thanh ghi khc), XORLW (ly XOR ca mt s v thanh ghi W)... V cc bn rng, tng s lnh c th tng tc vi thanh ghi W l 23/35 lnh, gn nh chim ton b tp lnh ca PIC. Vy chng ta ghi nhn iu th nht, khi PIC lm vic, gn nh lun lun tng tc vi thanh ghi W. iu th hai, cc bn nhn trong bn b nh d liu ca PIC, cc bn s thy l thanh ghi W l thanh ghi khng c mt bt k bng no ca b nh d liu, trong khi thanh ghi STATUS c mt c 4 bng. Cc bn li thy mt iu rng, thanh ghi W v thanh ghi STATUS c th c truy nht t tt c cc bng, v t bt k u trong chng trnh, v v vy chng tr thnh nhng thanh ghi ton cc nht. im khc bit gia chng ra sao? u l s khc bit gia thanh ghi W v cc thanh ghi khc? im th ba, trong tp lnh ca PIC, khng c lnh no cho php tng tc trc tip gia mt thanh ghi trong b nh d liu dng chung vi mt gi tr thm vo, m u phi thng qua thanh

ghi W. Nh vy, thanh ghi W l cu ni ca hu ht cc php ton c thc hin trn cc thanh ghi nm trong b nh d liu. Nh vy, thanh ghi W v cng quan trng trong hot ng ca PIC. Nhc li kin trc Harvard v Von Newmann: Hnh sau s gi li cho cc bn nh v kin trc Harvard v Von Newmann, trong cc bn lun nh rng c s phn bit gia b nh d liu v b nh chng trnh. Cc bn thy rng bus b nh chng trnh ca PIC midrange ch c 14 bit.

Vi c im ny, chng ta s phn tch v sao cn phi c thanh ghi W, v sau chng ta s phn tch tt c cc hot ng ca thanh ghi W trong mt chng trnh vit bng PIC, nu c th. Nhng g cn li, chng ta s xem trong bi tp lnh ca PIC midrange. V sao cn phi c thanh ghi W? Bn s lm th no tnh php ton sau: ly gi tr a ca thanh ghi A cng vi gi tr b ca thanh ghi B v t vo thanh ghi A? Mt gii hn ca tp lnh PIC l khng cho php cng hai thanh ghi v t vo mt thanh ghi khc. Do , cc bn s phi thc hin thao tc sau: Chuyn gi tr b t thanh ghi B vo thanh ghi W, sau ly gi tr ca thanh ghi W (lc ny l b) cng vi gi tr a thanh ghi A, sau gn li vo thanh ghi A. on code c thc hin nh sau:
Code:

MOVF B, W ADDWF A, F thanh ghi W v gn li vo A

; chuyn gi tr ca thanh ghi B vo thanh ghi W ; cng gi tr ca thanh ghi A vi gi tr b ca

Khi cc thanh ghi A v B khng nm trong cng mt bng, khi thao tc vi tng thanh ghi, cc bn ch vic i v bng cha cc thanh ghi l xong. Mt on lnh hon chnh c th thc hin cho bt k 2 thanh ghi no c vit nh sau:
Code:

BANKSEL B MOVF BANKSEL A ADDWF

B, A,

W F

on chng trnh ny cng minh ho lun cho vic thanh ghi W l mt thanh ghi ton cc, khi chng ta thao tc vi thanh ghi B mt bng b k, nhng khi chuyn gi tr b t thanh ghi B vo thanh ghi W ri, th chng ta khng cn quan tm rng gi tr nm u, ch cn chuyn v bng cha thanh ghi A th lnh cng s c thc hin mt cch d dng. Mt th d khc v lnh cng, nhng khng phi l cng gi tr nm trong 2 thanh ghi, m l cng gi tr a ca thanh ghi A vi mt s k cho trc no , gi s k = 5 v lu vo thanh ghi A. Chng ta thy rng, hon ton trong tp lnh khng c lnh cng trc tip mt thanh ghi vi mt s, m ch c lnh cng mt s vi thanh ghi W. Nh vy chng ta phi thc hin thao tc sau: chuyn gi tr a t thanh ghi A vo thanh ghi W, cng thanh ghi W vi hng s k = 5, sau chuyn gi tr mi ca thanh ghi W tr li thanh ghi A. iu ny c thc hin nh sau:

Code:

MOVF ADDLW MOVWF

A, d'5' A

Trong th d ny, chng ta s khng thy W l mt bin tm na, m tr thnh mt thanh ghi dng lu kt qu cng vi mt con s. n by gi, th chng ta s gi thch r hn v sao chng ta phi lm nh vy. Chng ta thy r rng rng, mt dng lnh ca PIC midrange, c m t bng 14 bit. iu ny c ngha l, khi thc hin mt lnh cng, khng th no dng lnh va lu a ch ca thanh ghi A, va lu gi tr 8 bit ca hng s k c, v mt thanh ghi trong dng PIC midrange cn ti thiu 7 bit biu din a ch thanh ghi, v mt hng s chim 8 bit. N vt qu con s 14 bit cho php m ho lnh. Chnh v vy, khng th thc hin lnh cng trc tip t mt thanh ghi vi mt s c. Quay li th d trn, chng ta cng thy rng khng th thc hin vic cng hai thanh ghi vi nhau, nu nh cn lu 2 a ch thanh ghi, chng ta s mt 14 bit, v nh vy khng c cc bit m ho m t lnh cn thc hin l g. y chnh l im khc bit gia tp lnh RISC v tp lnh CISC. Tp lnh CISC c th thc hin lnh phc, v n c th to ra mt lnh di 8 bit, 16 bit, 24 bit... v l b s ca 8 bit. Do , nu cn cng 2 thanh ghi 8 bit, n hon ton c th to ra mt lnh di 24 bit, trong 8 bit dng m ho, 8 bit dnh cho a ch ca thanh ghi th nht, 8 bit dnh cho a ch cua thanh ghi th 2. Trong khi , tp lnh RISC l tp lnh rt gn, cho d n l lnh g, n cng lun lun ch c 14 bit (i vi PIC midrange). Thanh ghi W ging nh mt thanh ghi mc nh duy nht, v vy, khi thc hin, b x l trung tm c th gii m c nu lnh c cn thao tc vi thanh ghi W hay khng, m khng cn lu a ch ca thanh ghi W bn trong on m lnh. Chng ta xem hnh di y bit c b x l logic hot ng nh th no vi thanh ghi W.

Vy chng ta thy r s cn thit ca thanh ghi W, bi v chng ta cn c mt thanh ghi tm cho cc cng vic tnh ton, v chng ta cn m ho thanh ghi m khng cn tn qu nhiu bit, vy th thanh ghi W va l thanh ghi c tnh ton cc, va l thanh ghi tm, va l thanh ghi khng cn thit nhiu bit biu din a ch. Cc bn bit v sao chng ta phi cn thanh ghi W, by gi chng ta cn bit thanh ghi W hot ng nh th no trong cc chng trnh ca PIC.

Bi 2 - DELAY FUNCTION
Qua bi hc th nht, chng ta hc v cch bt tt mt n LED. By gi nu mun lm cho n LED nhp nhy, c ngha l chng ta bt n LED, sau ch mt khong thi gian, v tt n led i, sau li ch mt khong thi gian na v li bt n led ln. Mun thc hin vic ny, chng ta phi tm cch lm mt hm delay (delay - ting Anh c ngha l tr, chm li) Hm DELAY l mt hm rt thng dng khi lp trnh thi gian thc. Nguyn l ca hm delay l dng thi gian thc hin cc lnh ca vi iu khin lm thi gian tr. Nh cc bn bit (nu cha bit th by gi bit.. hihi), mi lnh ca vi iu khin, khi thc hin, cn phi tn mt khong thi gian no . Nu mt vic lm m khng tn thi gian th ng l v l. Vy thi gian thc hin mt lnh ca PIC l bao lu? Nh trong bi hc u tin chng ta cp, chng ta s dng thch anh t 4MHz n 10MHz v n 20MHz. Thch anh ny to ra cc dao ng xung nhp chnh xc duy tr nhng khong thi gian xc nh cho vi iu khin hot ng. Chng ta xem hnh sau hiu c nguyn l to dao ng bn trong vi iu khin: Hnh 1:

Thch anh to dao ng trn cc chn OSC, a vo bn trong PIC. PIC s m 4 nhp trn dao ng thch anh, v thc hin mt lnh. Nh vy, thi gian thc hin mt lnh chnh l 4 nhp dao ng ca thch anh. Chng ta thng gi thi gian thc hin mt lnh ca PIC l mt chu k my (on s 2 trn hnh). Vy mt chu k my bng bao nhiu, nu chng ta s dng thch anh 10MHz cho PIC?
Code:

Tn s dao ng ca thch anh: F_osc = 10MHz Chu k ca dao ng thch anh: T_osc = 1/10.000.000 s Chu k my T_instruction = 4 * T_osc = 4/10.000.000 s = 0.0000004 s = 0.0004 ms = 0.4 us = 400 ns

Nh vy, mt lnh my c thc hin trong vng 0.4 micro giy, hay 400 nano giy. Tng t, khi cc bn dng thch anh 4MHz, chu k my s l 1us, v dng thch anh 20MHz, chu k my s l 200 nano giy. Quay tr li vi vic nu chng ta cn thc hin mt vic g ging nh nhp nhy n LED, th chng ta cn PIC phi dng li, khng lm g c ch chng ta. Nu nh lnh NOP (lnh khng lm g) s gip chng ta ch 0.4 us, m chng ta cn ch 1 giy, th chng ta vit bao nhiu lnh NOP cho ? Thay v nh vy, chng ta vit mt vng lp cho vi iu khin lm mt vic v thng v pht no N ln, v mi ln nh vy n tn T chu k my. Nh vy, sau khi kt thc vic lm v thng v pht , vi iu khin ch chng ta N * T chu k my. vit mt vng lp nh vy, trc tin chng ta hc cch t bin. Mt bin c t trong PIC, thc cht l mt tn gi chung cho mt hoc nhiu thanh ghi cc gi tr. Trong phn ny, chng ta ch n gin lm t bin c ngha l t tn cho mt thanh ghi. Thc ra, chng ta hon ton khng cn t tn, m c th gi trc tip a ch ca thanh ghi, nhng nu lm nh vy, sau ny, khi chng trnh phc tp dn ln, chng ta s d b ln ln cc bin. Khi t bin, thanh ghi ny nm u? N s nm trong b nh chng trnh v c th,

n s nm trong vng nh dng chung m chng ta cp trong bi hc trc. Vy lm th no t bin? C rt nhiu cch t bin, v trong phn ny, ti s hng dn cc bn cch t bin m ti cho rng r rng nht.
Code:

;================================================= ORG 0x020 COUNT_L RES COUNT_H RES COUNT_N RES 1 1 3

=================

;=================================================

=================

Cc bn va lm g? Directive ORG dng xc nh a ch vng nh. Cc bn lu rng, khi xc nh a ch vng nh y, chnh l cc bn xc nh a ch vng nh d liu, ch khng phi a ch vng nh lp trnh. Nhng g cc bn vit pha bn di, s gip cho trnh dch hiu c rng cc bn ang lm vic trong vng nh lp trnh, hay vng nh d liu Directive RES quy nh vic t bin. S 1 pha sau xc nh rng bin c tn COUNT_L chim 1 thanh ghi 8 bit, tc l 1 byte. Tip theo, cc bn li t bin tn l COUNT_H. Nh vy, bin COUNT_H cng chim 1 byte. Cu hi t ra l cc thanh ghi ny nm u? Cc bn lu , khi cc bn dng directive ORG, l cc bn xc nh ni bt u t bin. Nh vy, bin COUNT_L s c di 1 byte, v c t a ch 0x020 tc l a ch u tin ca vng nh d liu dng chung trong bng 0 (20h) V COUNT_L chim 1 byte. Do , bin COUNT_H s chim byte tip theo, v a ch u tin ca COUNT_H s l 21h, nhng COUNT_H cng ch c 1 byte, cho nn n chnh l thanh ghi a ch 21h. n bin COUNT_N, tng t, a ch u tin ca n s l 22h. Bin COUNT_N chim 3 thanh ghi, nh vy, bin COUNT_N s nm t 22h, 23h n 24h. Nu tip tc t thm cc bin khc, cc bin s bt u t a ch 25h, c nh th. Nu hiu nm na theo cch ny, bn c th s d hiu n hn, mt hng l mt gi tr. Gi tr c th nm trong thanh ghi d liu (b nh d liu), nhng cng c th nm trong lnh iu khin (b nh chng trnh). iu ny khng nh rng, hng l mt gi tr. Mt khi bn t mt tn no , i din cho mt hng s, c ngha l thay v bn vit ci gi tr , th bn vit ci tn i din , d nh. Chng hn, bn vit ch pi, i din cho hng s c gi tr 3.1415926.... Trong khi , nu bn t mt bin pi, th c ngha l bn xc nh a ch ca thanh ghi d liu no , m mi khi bn truy xut n bin pi, c ngha l bn ang thao tc vi thanh ghi a ch m bin pi i din. V d: bn t bin pi thanh ghi 0x20 chng hn. iu c ngha l khi ban lm g vi bin pi, chnh l bn ang lm vic vi thanh ghi a ch 0x20. Nhng bn s thy rng, vy bin pi v hng s pi c g khc nhau? By gi bin pi v hng pi cng u mang gi tr c. Nhng cc bn nn nh, trong cu lnh lc no v tr ca bin (thanh ghi) F, v v tr ca hng s k (trong cu trc mt cu lnh MPASM, ti s post li bi ny t dddt). c s phn bit r rng. Vy ty theo v tr bn t n u, n s l bin, hoc l hng. Nu l bin, n ch mang gi tr ca da ch ca thanh ghi nm trong b nh d liu, nu l hng, n nm u cng c k c b nh d liu v b nh chng trnh. Vy mun t bin cc bng khc th lm th no? Cc bn c ly a ch u ca vng nh d liu dng chung ca bng v vit nh sau:
Code:

;================================================= ORG 0x0A0h COUNT_X RES 10

;================================================= Tm li, chun ho mt chng trnh, cc bn chp on code ny vo, v sau khng bao gi cn phi vit li na:
Code:

;================================================= ;----------------------------------; Bien nam o Bank0 ;----------------------------------ORG 0x020 COUNT_L RES COUNT_H RES 1 1

======================

;---------------------------------; Bien nam o Bank1 ;---------------------------------ORG COUNT1_L RES 1 0x0A0

;--------------------------------; Bien nam o Bank2 ;--------------------------------ORG 0x120 ;================================================= =======================

Nh vy, mt chng trnh tng qut by gi s tr thnh nh th no?


Code:

;================================================= ; Phn ch thch ban u ; ;================================================= ; Phn khi to vi iu khin TITLE PROCESSOR INCLUDE __CONFIG ;================================================= ; Phn t bin ;------------------------------------; Bin bng 0 ;------------------------------------ORG 0x020 ;-----------------------------------; Bin bng 1 ;-----------------------------------ORG 0x0A0 ;-----------------------------------; Bin bng 2 ;-----------------------------------ORG 0x120

======================= =======================

=======================

;================================================= ; Phn chng trnh chnh ORG 0x0000 GOTO MAIN ORG MAIN ; 0x0005

========================

nhng dng lnh c vit y END ;================================================= =========================

Nh vy, chng ta bit cch vit mt chng trnh y dnh cho vi iu khin PIC bng ngn ng MPASM. Cc bn cn ch thm, nu pha trn ch bin bng 2, cc bn khng t bin g c, th cc bn c nguyn nh vy, v ngay bn di, cc bn t li a ch 0x0000, n chng nh hng g n chng trnh. Cng ging nh, nu bn khng vit g on ORG 0x0000 v GOTO MAIN, m bn ngay dng ORG 0x0005 th chng trnh vn chy bnh thng. n gin l t on 0x0000 n 0x0004, PIC s khng lm g c. Chng ti ang c gng tng bc hnh thnh cho bn kt cu chng trnh vit bng MPASM, mi ngy mt hon thin hn, cc bn nm r l do v sao cc chng trnh c vit nh vy, v chng ta cng thng nht vi nhau im ny khi vit chng trnh. Nu cc bn tin tng vo vic to ra mt chun vit chng trnh MPASM cho Vit Nam, th cc bn l ngi ang t nn mng cho n. Ti cng c tham vng ny, cho nn cc quy cch k hiu ti c gng dng mt chun thng nht, v mong rng cc bn cng ti lm vic ny, sau ny tt c mi ngi khi lm vic cng vi nhau c th hiu v truyn ti tng mt cch nhanh nht. K t nay, cc bn bit cch t bin, bit cch vit phn khi to, chng ta s ch cn bn ti vic vit phn chng trnh chnh nh th no na m thi.
Code:

;================================================= ORG 0x0000 GOTO MAIN MAIN ORG 0x0005 TRISB

===========================

BANKSEL TRISB CLRF MOVLW MOVWF LOOP BANKSEL PORTB BSF CALL BCF CALL GOTO

; t portb l output

D'255' COUNT_L ; COUNT_L l 1 byte PORTB, 0 DELAY PORTB, 0 DELAY LOOP ============================ ============================ F

;================================================= ; Cc chng trnh con ;================================================= DELAY DECFSZ COUNT_L, GOTO DELAY RETURN ;================================================= GOTO $

============================

END ;=================================================

============================

Cc bn va lm g vi on chng trnh trn? im th nht cc bn nn ch , l vic ti thm phn cc chng trnh con vo trong phn chng trnh chnh. Phn cui chng trnh ti vn lun l GOTO $ v kt thc vi lnh END. Tm thi cc bn c vit nh vy kho chng trnh dng GOTO $, khi chng trnh nhy n , n s thc hin vng lp v cng ti ch, cn lnh END l lnh bt buc. Vic ny gip chng ta phn tch rch ri phn chng trnh con v chng trnh chnh trnh nhm ln. Bi v y chng ta mi bt u cc bi hc c bn, cho nn ti cho rng cc chng trnh ca cc bn vit l ngn, nn chng ta cha i xa hn v vic phn b v tr ny. Cc bn ch n gin hiu l chng ta cn phi b on chng trnh con u , v chng ta nn tch thm mt phn na dnh ring cho vic vit chng trnh con. Vic lm ny v sau s rt c li, nhng tm thi chng ta khoan bn ti, v chng ta c vit nh vy . Phn tch v on chng trnh con ny, chng ta thy chng trnh con lun bao gm nh sau:
Code:

[NHN] cc cu lnh RETURN Lu rng trn, chng ta gi chng trnh con CALL DELAY. Nh vy, vic gi hm c thc hin bng lnh CALL [NHN]. Con tr chng trnh s nhy v [NHN] c gi. N thc hin cc lnh nm t nhn tr i. Thc hin cho n khi gp lnh RETURN, n s quay tr v v thc hin lnh tip theo ngay bn di lnh CALL. y, chng ta gp phi mt vn , l khi nim Top of Stack. Tuy nhin, chng ta tm gc n li cho bi hc sau, cn by gi cc bn ch cn nm c vic thc hin lnh CALL bao gi cng i km vi mt nhn. Con tr nhy ti nhn v thc hin cc lnh bn trong , n khi gp lnh RETURN th n nhy tr v v tr nm sau lnh CALL v thc hin tip cng vic ang lm. V b qua khi nim Top of Stack, cho nn ngh cc bn khng t ra cu hi nu trong cc lnh thc hin, n li c mt lnh CALL gi i ch khc th lm th no? Chng ta s gii quyt vn ny phn sau. Th bn trong hm DELAY chng ta lm nhng g? Lu rng, trn chng trnh chnh, sau khi khi to PORTB l ng output, cc bn thy chng ta ghi gi tr d'255' vo bin COUNT_L. Cch vit gi tr nh sau: b'11001010' xc nh s nh phn d'234' xc nh s thp phn 0xF3 xc nh s thp lc phn Lu : S nh phn ch c cc gi tr 0 v 1, v ti a di 8 bit. S thp phn ch c th c gi tr t 0 n 255, v s thp lc phn ch c gi tr t 00 n FF Quay tr li, bin COUNT_L ang mang gi tr 255. Khi thc hin hm DELAY, cc bn thc hin lnh DECFSZ (DECrement File, Skip if Zero), c ngha l n s gim gi tr ca mt thanh ghi no mt n v. Nu sau khi gim xong, m kt qu l 0, th n s nhy cch ra mt nh trong b nh chng trnh, v thc hin lnh tip theo . Nu gi tr sau khi gim mt n v cha bng 0, th n s thc hin lnh lin k vi n. Nh vy, vng lp c thc hin nh sau:
Code:

COUNT_L = 255 ( trn t) DELAY COUNT_L = COUNT_L - 1 if COUNT_L <> 0 GOTO DELAY if COUNT_L = 0 RETURN

Code:

Lnh DECFSZ

[File], F/W

Nu pha sau du phy, chng ta W, th kt qu s lu vo thanh ghi W, v [File] khng thay i gi tr g ht. Nhng y, chng ta mun thc hin nh on m gi trn, nn chng ta phi l F. COUNT_L s gim dn t 255 n 1, trong qu trnh n c chy ln DELAY, ri gim COUNT_L mt n v, xong li nhy v DELAY, li thc hin vic gim 1 n v ca COUNT_L Khi COUNT_L = 1 n li gim 1 n v, lc ny COUNT_L = 0. V n khng thc hin lnh GOTO na, m thay bng lnh NOP, sau n thc hin lnh RETURN, c ngha l quay v li lnh CALL trn. Nh vy, cc bn hiu r hm DELAY ri. Nhng quan trng nht l lm sao tnh ton c thi gian hao tn ca on vng lp ny k t khi bt u thc hin lnh CALL, v thc ra chng ta mun l mun bit chnh xc thi gian thc hin lnh ca n. Thi gian thc hin ca lnh CALL DELAY l bao lu? Lnh CALL khi thc hin tn 2 chu k my, nh vy chng ta ghi ch l (2) y. Lnh DECFSZ tn 1 chu k my khi gi tr tr v khc 0. Nh vy, trong qu trnh thc hin gim t 255 xung 1, n thc hin 255 - 1 = 254 ln. Mi ln th ny n tn 1 chu k my, chng ta k hiu (254) y. Khi thc hin lnh GOTO, lnh GOTO tn 2 chu k my, vy n cng thc hin 254 ln, chng ta k hiu (254 x 2 = 506) y. Khi COUNT_L = 1, n vn thc hin lnh DECFSZ, vy n tn thm 1 chu k my na (1). Sau khi thc hin lnh ny, kt qu tr v l 0, vy n s thc hin mt lnh NOP (1), v sau thc hin lnh RETURN, lnh RETURN tn 2 chu k my (2) Kt qu: (2) + (254) + (508) + (1) + (1) + (2) = 768 chu k my Nu chng ta dng thch anh 10MHz, 1 chu k my tn 0.4 us, c ngha l lnh CALL DELAY tn 768 * 0.4 us tc l khong 1/3000 giy. Chng ta khoan bn n vic xa hn, vy th chng ta bit cch tnh thi gian hao tn ca hm DELAY ri. Nhng nu tnh nh th ny th qu mt cng, chng ta c th chuyn n thnh cng thc c th nh sau: CALL = 2 DELAY (COUNT_L) = [COUNT_L - 1] * (DECFSZ + GOTO) + 1 + 1 RETURN = 2 Cc bn nn nh cng thc ny sau ny pht trin ln tnh cc cng thc khc. C l hm nay chng ta tm dng bi hc y Cc bn lu , ti c tnh sai mt on pha trn, v qung g hay sao , tnh t 255 xung 1 gim ch c 253 ln. ng l phi 254 ln. Nh t 2 gim xung 1 th ch c 1 ln thi. Xin thnh tht co li vi cc bn.

Tng kt Cc bn hc c g ngy hm nay? - Cc bn hiu c khi nim chu k my, dao ng thch anh to ra, PIC s thc hin 1 lnh trong vng 4 dao ng ca thch anh. Nh vy, chu k my ca PIC s l chu k dao ng ca thch anh nhn vi 4, hay tn s PIC s bng tn s thch anh chia 4. - Cc bn hc c cch t bin trong mt chng trnh vit bng MPASM, cc bn c th t bin bt k bng no cc bn mun - Sau , cc bn b sung phn t bin ny vo trong sn chng trnh ln trc hc, cc bn hon thin hn sn mt chng trnh vit bng MPASM - Cc bn li thm vo sn chng trnh phn cc chng trnh con, vy ti thng bo vi cc bn rng cc bn ch cn thiu 2 phn na l ngt (Interrupt) v bng (Table) na, l cc bn c th c mt sn chng trnh vit bng MPASM hon chnh. Cc bn s khng phi i lu hon tt sn chng trnh ny. - Cc bn hc c cch dng hm CALL v RETURN, n lun lun i km tng cp vi nhau. - Cc bn hc thm cc lnh: BCF, CALL, RETURN, DECFSZ Ti liu tham kho:

Cc bn tham kho datasheet PIC16F84A, PIC16F628A v PIC16F88 bit thm chi tit v cu trc b nh d liu, v c ci th c bng 2, c ci khng c, c ci li c bng 3, bng 4.... Nh ch phn tp lnh c hiu thm v cc lnh va hc (Instruction Set). Cc bn c th dng keyword: DELAY tm trong trang http://www.piclist.com/ nhng on chng trnh con vit v hm DELAY, lm th no vit hm DELAY di hn?... Lu cui cng, l cc bn ang chun b tr thnh mt ngi vit PIC chuyn nghip, do , cc bn cn phi nh cc chn no ca PIC thit k mch v iu khin, cc bn nn in hnh s chn ca PIC ra dn ln trc bn lm vic. Cc bn c th download bn in ti y (c trong datasheet, nhng ti mun gi trc tip cho cc bn cc bn mt cng). Bi tp lm thm: 1) Cc bn thy rng, nu thi gian DELAY qu ngn, trn thc t cc bn s kh thy n LED nhp nhy. V vy, thay v vit mt hm CALL DELAY, cc bn vit mt dc 20 dng CALL DELAY lin tip nhau, cc bn s thy s khc bit 2) Nhng nu vit 20 dng CALL DELAY th cng nh vit 20 dng lnh NOP, vy c ngha l cc bn vn c th thc hin mt vng lp, trong lp li 20 ln, v trong vng lp cc bn thc hin hm DELAY. Nh vy, cc bn phi vit mt hm DELAY_NGOAI bn trong thc hin hm DELAY_TRONG. Chnh v vy, ti gi cho cc bn tm trong trang web http://www.piclist.com/ tm cc source code hm DELAY, v cc bn s bit phi lm sao vit hm DELAY ch lu hn. Quan trng nht l cc bn phi ch ra c cng thc tnh ton thi gian ca hm DELAY m cc bn vit. (bi tp tnh im) 3) By gi cc bn c th iu khin mt n LED, vy nu mun 8 n LED nhy theo th t no chng hn, cc bn s lm th no? (bi tp tnh im) Ghi ch: (bi tp tnh im) l nhng bi tp m chng ti s cng n vo tng PIC cho cc bn no tham gia gii bi nh thng bo v vic bn PIC.

***** &&& *****


Gii thiu Khi nim ngt l mt khi nim rt ph bin trong tt c cc h thng vi iu khin, vi x l v my tnh. Vy ngt l g? Cc bn hnh dung hnh nh chng ta ang i xe my trn b rung, con ng i rt di v rt thng, bng nhin c mt con b chy ngang, hc chng ta xung rung. C xe v ngi lao xung rung. Chng ta lm cm b dy, phi qun o, chi ng ln mt ci v chng bit chi ai, th l chng ta em ng tri ra chi. Sau , chng ta dt xe my ln b rung, ti ci ch m chng ta b hc t xung, ri chng ta ly xe chy tip. Nu l c mt con b no khc, li hc chng ta.. th....Hot ng ngt cng ging nh vy, khi chng ta ang chy mt chng trnh chnh no , bng nhin c mt s kin xy ra, chng ta phi dng vic chng ta ang lm li, v gii quyt ci s vic xy ra . Cui cng, chng ta li quay tr v ci ch m chng ta tm dng li lc ny v tip tc cng vic ang lm. Khi nim ngt ch n gin nh vy, tuy nhin, i vi vi iu khin ni chung, v PIC ni ring, ngt c th do rt nhiu ngun xy ra, v vi mi ngun ngt khc nhau, chng ta c th nh trc rng trong ngt chng ta s lm vic g. Cng nh khi i trn b rung, chng ta c th b b hc, cng c th b tru hc, cng c th b vp cc , cng c th b lt g... V nu nh b b hc th chng ta chi ng tri, b tru hc chng ta mng ng trng, b vp cc chng ta t trch mnh xui xo, v n khi vp g... th chng ta v nh thng... Cc ngun ngt trong PIC: S lng v loi ngun ngt trong PIC rt a dng, v rt khc nhau mi dng PIC. Do vy khng th lit k ht ra y tt c cc dng PIC v tt c cc loi ngt trong tng dng c. Chng ta ch a ra y s tng qut ca cc ngun ngt, v i su vo mt s loi ngt ph bin.

Bi 3: Ngt (interrupt)

Hnh 1: Cc ngun ngt ca dng PIC Midrange Chng ta ch n mt s im sau: 1) Trong hnh c cc k hiu cng logic AND v OR

y l cng AND, c ngha l ch khi u vo ca hai cng ny u c gi tr l 1, th u ra mi c gi tr l 1. Chng ta quan st mt gc hnh bn tri pha di TXIF v TXIE, chng i qua cng AND, ch khi no bit TXIE bt ln, v bit TXIF cng c bt ln, th lc ng ra ni vo cng OR pha trn mi c gi tr.

y l cng OR, c ngha l ch cn mt trong cc tn hiu ng vo c gi tr l 1, th ng ra s c gi tr l 1. Nh vy, nu c TXIE v TXIF u c gi tr 1, th ng ra sau cng AND ca chng s c gi tr 1 v ng ra sau cng OR cng c gi tr 1, bi v t nht cng OR y cng c 1 ng vo c gi tr 1. Chng ta c tip tc nh vy m suy ra. 2) im th hai, l cc ch ui IE v IF: IE y l vit tt ca ch Interrupt Enable, v IF y vit tt ca Interrupt Flag. IE c ngha l chng ta cho php kch hot mt loi ngt no xy ra hay khng. y l tn hiu m chng ta c th quy nh ngay t ban u. Mc nh, tt c chng u c gi tr 0, ch khi no chng ta cho php mt ngt no xy ra, th v sau n mi xy ra ngt thi. Cng ging nh, ban u trn b rung c dy ro chn, th con b khng th no hc bn t c, nu bn b hng ro ra, th nu c con b hc bn, bn s t. Nguyn l ny n gin nh vy thi. IF y l cc c ngt. Tc l khi bn b b hc, th c mt ngi cm c gi ln bo l

bn b b hc, nhng ngi di rung reo h...hihi... V tt nhin, khi bn khng ph ro cn th ngi trn rung vn c. V khi con b lao vo bn, th ngi ta cng pht c ln nh thng, nhng b ci ro cn nn bn c thoi mi m i con ng ca bn, chng phi quan tm n vic t xung, chi bi hay tro ln lm g. Ci ro cn chnh l IE v ci s vic cui cng m bn vn i hay lm cm b dy chnh l ci cng AND m chng ta va ni trn kia. 3) im th ba, cc lp ngt: Bn thy rng, trong hnh, r rng c 2 lp ngt. Lp th nht nm bn tay tri ngoi cng, lp th hai nm gia hnh. Lp th ba ch c mt cng AND nn chng ta khng k ti lm g. Lp th nht c gi l lp ngt ngoi vi. Thc cht lp ny v c qu nhiu ngun ngt, v cc ngun ngt ny u l mt s chun giao tip, hoc chc nng c bit ca PIC, cho nn ngi ta phn ra lm lp ngt ngoi vi. cc ngt ngoi vi hot ng, trc tin chng ta phi cho php ngt ngoi vi, tc l bt bit PIE ln. Cn c th mun cho ngt ngoi vi no hot ng, th chng ta bt ngt ln. Trn s cc bn cng thy r thng qua cc cng AND v OR. Lp th hai tm gi l lp ngt ph thng. Khi mun dng cc ngun ngt ph thng, chng ta ch vic bt cc bit IE ca ngun ngt ny. Tt nhin, cui cng, chng ta phi bt ngt ton cc GIE th ngt mi c php xy ra (k c ngt ngoi vi v ngt ph thng. Khi , PIE c coi l mt ngun ngt ph thng. iu ny cng ging nh khi bn chy xe trn b rung, mt hng ro di chy dc theo con ng, chnh l ngt ton cc GIE. Lp bn ngoi th hai l lp ngt ph thng, bao gm lun c ngt ngoi vi PIE. V ngoi cng l cc hng ro thuc lp ngt ngoi vi. Nu cc bn bt cc ngun ngt, m khng bt ngt ton cc GIE th cho d ngt c xy ra, th chng trnh vn khng dng thc hin ngt, ging nh con b c th lao qua hng ro ngoi cng c m, nhng vn cn hng ro trong cng. Nh vy, cc bn hiu mt cch tng quan v hot ng ngt ca PIC, nhng nguyn tc phi bt hay tt ngt. im lu cui cng, l ti mun gii thiu vi cc bn rng, ch k hiu trong bng, l tn cc bit lin quan n vic bt tt ngt. VD: bit PIE, INTE.. nm trong thanh ghi INTCON (ngt ph thng), cc bit quy nh ngt ngoi vi nm trong cc thanh ghi PIR v PIE. Vect ngt ca PIC: Nh ln trc gii thiu, vect ngt ca PIC nm v tr 0x0004 cc bn xem li hnh sau. Khc vi khi bn b t rung, bn t xung ngay ti ch bn b hc, i vi vi iu khin, khi xy ra interrupt, n s nhy v mt a ch c nh, v thc hin cng vic ti . Sau khi thc hin xong, n s quay tr v v tr m t n thot ra. V tr c nh m n s nhy v khi xy ra ngt l v tr 0x0004. Chng trnh ngt: Li quay v th d t rung, c l ti thch ci th d ny v n c th gip bn hnh dung mi th. By gi cc bn hy chia giai on t khi b b hc, t xung rung, ri bn chi ng ln, ri bn lm cm b ln. Vy cho d bn b b hc, hay b vp g, th ch c giai on bn chi ng ln l khc nhau, cn li, giai on bn t xung rung l t xung rung, v sau th bn cng b ln. Vy ngt cng ging th, khi nhy vo ngt, bn s c mt giai on cn phi nhy vo ngt, v mt giai on nhy ra khi ngt, cn bn trong ngt cc bn lm ci g l ni dung cn thc hin ca tng ngun ngt. Ti cung cp ra y on chng trnh ngt chun, t nay v sau, cc bn ch cn copy on chng trnh ny v s dng:
Code:

;================================================= ORG 0x0000 GOTO MAIN ORG 0x0004 GOTO INTERRUPT ORG 0x0005 MAIN ; y l phn chng trnh chnh ca cc bn ;=================================================

==================

==================

INTERRUPT RETFIE ;================================================= ; Cc chng trnh con c vit y ;================================================= GOTO $ END ;================================================= ================== ================== ==================

Nh vy, mt ln na, chng ta b sung sn chng trnh ca chng ta mt cch chi tit hn. Chng ta va thm vo mt on chng trnh con INTERRUPT. Thc ra, gi INTERRUPT l mt chng trnh con cng khng sai, nhng v n kh c bit, nn chng ta c tch ri n ra. Khi to v kt thc ngt: Ti cung cp di y on chng trnh khi to v kt thc ngt y cho PIC, t nay v sau, khi mun s dng ngt, cc bn ch cn copy v paste on code ny li, hon ton khng cn sa cha g v c th s dng. Ti s dnh cho cc bn t cu hi v phn ny t cc cu hi, c th gii thch r hn v sao chng ta li vit nh vy, tng im mt. Nu khng, ti khng th c thi gian vit tt c mi vn v ngt ra y c.
Code:

;================================================= =========================================== INTERRUPT ;------------------------------------------;Doan ma bat buoc de vao ngat ;------------------------------------------MOVWF for remainder of handler STATUS ) MOVF MOVWF CLRF MOVF MOVWF here! ;----------------------------------;Doan chuong trinh ngat ;----------------------------------; cac ban se viet chuong trinh ngat o day ;-------------------------------------------------;Doan ma bat buoc de ket thuc ngat ;-------------------------------------------------MOVF MOVWF FSR_SV, W FSR ; FSR = MOVF PCH_SV, MOVWF PCLATH SWAPF STAT_SV, FSR_SV W ; PCLATH = PCH_SV W ; STATUS = 0 PCLATH, W PCH_SV ; PCH_SV = PCLATH PCLATH ; PCLATH = 0 FSR, W FSR_SV ; FSR_SV = FSR ; 10 cycles from interrupt to W_SAVE SWAPF CLRF MOVWF STAT_SV ;W_SAVE(bank unknown!) = W STATUS, W STATUS ; force bank 0 ; STAT_SV = swap_nibbles(

STAT_SV ) SWAPF Z bit)

MOVWF

STATUS

; STATUS = swap_nibbles( W_SAVE, F ; W = swap(swap( W_SAVE )) (no change

SWAPF W_SAVE, W

BSF INTCON, GIE RETFIE ;================================================= ==================================================

Nh vy, chng trnh ngt c chia lm 3 phn chnh. Phn th nht l phn bt u vo ngt, y l on chng trnh bt buc, tt nhin khng hon ton nghim ngt nh vy, v thc t nhiu khi bn khng dng n tt c cc lnh ny, nhng v mc ch cung cp cc khi nim c s, v cng c lm vic y , ti cung cp cho bn chng trnh ngt chi tit. Phn th hai l phn chng trnh ngt ca bn. Khi xy ra ngt, bn mun lm ci g, th bn bt u vit t phn ny tr i. Phn th ba l phn kt thc ngt, bn c vit nguyn bn nh vy khng cn sa i. Tm thi, s khng c cc phn tch chi tit ging nh cc bi hc trc, cc bn c th t tm hiu thm, nu khng, c th t cu hi, v chng ta s t t tm hiu r hn v ngt ca PIC. Thi gian ti y, c l ti hi bn, cho nn ti khng th vit bi lin tc c, mong rng cc bn c gng tm hiu v hc tt PIC. n giai on ny, cc bn c th dng con PIC, ging nh mt con 89C51 thng thng. V cc bn thy y, thc s PIC ch cn 1 ngy hc. Chng ta va hc xong 3 bi hc c bn nht ca mt con vi iu khin: iu khin port, vit hm delay v vit chng trnh ngt. Phn th t ca bi vit chng trnh ngt, s i chi tit vo cc ngt v gii thch r ngha tng ngt. Nhng thit ngh, ti nn kt hp bi hc ny y, v kt hp phn th t vo bi hc sau: Nt bm v cc ng vo ca PIC. Ti liu tham kho: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en 011006

Bi 4. Nt bm
Cc bn va bit khi nim ngt, v bit chng trnh ngt c vit nh th no. Vy by gi chng ta chuyn n bi tip theo v nt bm. Cng dng ca nt bm Nt bm l mt hnh thc ra lnh ph bin nht trn th gii. Bn gi mt ci thang my, bn bm nt, bn ku ca th bm chung, bn bt n th bm nt cng tc, v ti ang ngi vit cho bn bng cch bm nt bn phm... Nh vy, bn bit cng dng ca ci nt bm. By gi cc bn s hc cch lm mt ci nt bm!!! iu ny c v bun ci, nhng vi vi iu khin, v my tnh, kh nng x l cc lnh rt a ng. Bn c th bm cng mt nt, nhng lnh s khc nhau mi thi im, v mi trng thi. V d, nh bn nhp chut my tnh, thc ra cng l bn nhp nt bm, nhng bn thy r rng rng, nhng v tr di chuyn chut khc nhau, nt bm ca chut s a ra cc mnh lnh khc nhau cho my tnh thc hin. Mt s trng thi nt bm thng dng Trng thi nt bm ra lnh tc thi, l khi bn bm nt, lp tc mi trng thi phi c kim tra v chng trnh dng li thc hin lnh t nt bm ca bn. C ngha l bn ra lnh ti thi im bm nt, v my hiu rng bn bm nt. Cn vic x l th no th hi sau phn gii. Trng thi ch nt bm, l chng trnh bn ang chy, n mt giai on no , n cn phi c s ra lnh ca bn bng nt bm, v chng trnh ch bn bm nt chy tip, hoc bt u mt cng vic no sau khi ch. Nhc li thao tc bm nt mt cht, ci nt ca bn ang trn cao, bn bm n xung th n s c mt giai on nt bm i xung, khi chm vo mch in, hin nhin bn mun hay khng mun th cng phi c mt khong thi gian bn gi cho nt bm tip xc vi mch in, sau l giai on bn th nt bm ra.

Theo di hnh trn, chng ta thy. Khi bm nt, c qu trnh i xung ca nt bm, v qu trnh i ln ca nt bm. Nhng thc t, i vi mch in trong nt bm, n ch c th nhn c trng thi tip xc hoc khng tip xc, nn tn hiu nhn c s nh ng mu xanh trong hnh di. Chng ta ch quan tm n trng thi ca ng mu xanh trong cc ng dng ca nt bm. Vy, trng thi nt bm li c thm 3 trng thi na l trng thi bm xung, trng thi gi nt bm, v trng thi nh nt bm ln. Kt hp vi 2 trng thi iu khin trn, chng ta c 6 trng thi ph bin ca nt bm. Cc bn lu rng, chng ta c 6 trng thi ch khng phi ch c 4 trng thi, v thc ra rt nhiu ngi cho rng ch c 4 trng thi khi cho rng trng thi ch trong lc gi nt bm khng phi l trng thi ph bin. Nhng nu cc bn tng dng in thoi di ng th cc bn thy s ngi dng trng thi ch ca nt bm cng khng phi l con s nh. y, ti mun tn dc mt cht rng, khi cc bn lm vic v khoa hc k thut, v n mt khi cc bn kh c th tm ra ng hng suy ngh gii quyt mt vn khoa hc k thut, hy tm mi lin h vi n trong khoa hc x hi. Chnh v vy, cc bn thng thy ti hay a ra nhng v d x hi minh ho cho vn k thut cn c gii quyt. Ti s dnh vic ng dng tng trng thi nt bm ph bin trong cc ng dng cho cc bn, cn y, ti ch mun nhn bi hc ny tip tc bi hc v interrupt m chng ta b d trc . Vy chng ta ch xt trng thi khi bm nt, lp tc lnh s c thc hin, tc trng thi tc thi ca nt bm. Cc bn hy lm bi tp thc hnh, thc hin mt mch in t nh hnh sau chun b cho bi hc ca chng ta.

Trong mch in ny, chng ta thy c mt vi im c bit khi c 1 nt bm ni gia chn ca PIC v ngun, cn cc nt bm khc li ni chn ca PIC vi t. Gia ngun v t lun c mt in tr 10K. V sao chng ta phi ni mch in nh vy? Chng ta tm dng bi hc v nt bm y v theo di bi hc c bn v in t tip theo.

Gii thiu y l phn rt c bn v in t, m cc bn khi bt u lm vic vi vi iu khin cn phi nm r. Nh ni, PIC to ra dng in khong 20mA v in p khong 5V, tng t nh vy, nu dng ng vo qu cao so vi 20mA v in p ng vo qu cao so vi 5V, th PIC s b h. V vy, bi hc ny trang b cho cc bn mt s khi nim c bn v in t, cc bn c th nm vng nguyn l thit k mch v tnh ton cc gi tr in tr cn thit. ng l bi hc ny cn c thc hin ngay t u, tuy nhin, ti cho rng bi tp n LED qu n gin, cc bn cha bit g cng c th hiu c, nhng nay, nu nh cc bn mi hc v in t v vi iu khin khng c trang b kin thc c bn ny, c th lm cho cc bn lng tng v mt s im khng c lm r trong mch in t. Hin tng tri in p Cc bn xem hnh sau:

in t c bn

Chng ta cho rng ng vo ca PIC, cng ging nh ng vo ca mt linh kin in t thng dng l 74HC04. Thay v v mt ci chn PIC, th chng ti v hnh mt con 74HC04 cho n n gin, v cc bn d hnh dung. Nu mt con PIC ln mt hnh th qu phc tp hnh nh, v li khng cn thit. Hn na, bi vit ny c tham kho t ti liu Very Basic Circuits ca Encoder, v trong trang web ny, ngi ta s dng 74HC04 lm th d, ti tn trng v d ny nn khi vit li bi vit cng s dng 74HC04 ging nh h. Cc bn thy, nu nh nt bm c nhn xung, th ng vo ca 74HC04 hay PIC c ni vi Mass. Nh vy, lc PIC c th c gi tr 0. Tuy nhin, nu nt nhn c th ra, chng ta thy rng ng vo ca PIC chng c ni vi mt linh kin no, vy l in p chn ca PIC s tri ni khng xc nh c. Nu khng may mn, in p tri ni ny ri vo vng logic 0, ri li nhy sang vng logic 1... th cc bn thy r rng chng ta khng th xc nh c nt bm c c bm hay khng?!! V vy, m bo, nu khi khng bm nt, PIC phi c in p tham kho l 5V, sau khi bm nt th in p s gim xung 0V, nh vy mc logic mi tht r rng, khng th tri ni nh hnh trn. Vy chng ta c hnh di y

Cng dng ca in tr ko ln Cc bn li thy, nu by gi khng bm nt, th in p ng vo ca PIC s l 5V. Nhng nu bm nt mt ci, r rng chng ta gy ra ngn mch khi ni trc tip t ngun xung t. Chnh v vy, chng ta phi a thm vo mt in tr gia t, nt bm v ngun.

C hai vn t ra, l in tr s t u, v gi tr ca n bng bao nhiu. Chng ta xem hnh ny:

Cc bn s bc mnh ngay rng, ng l thng ngc mi t in tr nh th ny, bi v nu t in tr nh vy, d bn c bm nt hay khng bm nt th in p ng vo vn lun lun l 5V, vy nt bm tr nn v ngha. Th th ch cn mt cch t in tr nh hnh tip theo y(H.a):

(H.a) (H.b) Vy vn cn li l gi tr in tr bng bao nhiu? Cc bn s thy, PIC hot ng 20mA v 5V trn cc chn. V vy, khi cha bm nt, ngun 5V c ni vi in tr v i vo chn ca PIC. Nu nh trong mt trng hp no chn ca PIC chuyn t ch input sang output, th vn xy ra l dng trn chn phi m bo nh hn hoc bng 20mA. Nh vy, trong thit k trn, chng ta xem dng ti chn PIC nu PIC t 0V l: I = U/R = 5V/ 10000 Ohm = 5mA Nh vy, thit k ny m bo cho hot ng ca PIC c an ton. Khi ng nt bm dng 5mA ny s i xung t, v chn ca PIC c ni vi t. Cc bn xem tip hnh sau(H.b) Trng hp ny, nt bm c ni vi ngun 5V. in tr ni gia chn ca PIC vi t s khng lm cho PIC c hin tng tri ni in p, v khi ng nt bm th dng vn 5mA. Tng kt: Qua bi hc ny, cc bn hiu c c bn v khi nim in tr ko ln (trng hp in tr ni vi ngun), v in tr ko xung (trng hp in tr ni vi t). Gi tr in tr c t y nhm loi b hin tng ngn mch, v m bo ng vo ca PIC khong 20mA. Khi an ton, cn thit k sao cho ng vo nh.

To be continue

You might also like