Nguyn Huy Thanh C in T 4 K47 i hc BKHN Leon_heaty@yahoo.com 048392893
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 2 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Mc Lc: Bi 1: Gii thiu v vi iu khin. 1.1)Tiu chun trong la chn mt b vi iu khin. 1.2)Vi iu khin v vi x l. 1.3)S chn vi iu khin 8051. 1.4) Mch 8051 ti thiu. (6) 1.5)Cu trc_s khi ca vi iu khin 8051. (8) 1.6)Cc thnh vin khc ca h 8051. (9) 1.7)Ram ni v cc thanh ghi SFR ca 8051. (10) 1.8)Gii thiu s qua cc ngun ngt. (13) BAI 2 : Ngn ng lp trnh C. 21.)Cu trc mt chng trnh. (14) 2.2)Cc loi bin trong C. (16) 2.3)Hm trong C. (17) 2.4)Cc ton t c bn. (19) 2.5)Cc cu trc lnh r nhnh, kim tra. (19)
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 3 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Bi 1: Gii thiu v vi iu khin.
Ch : y hon ton l phn l thuyt, mnh rt gn ti a, do cc bn nn c ht. Cha nn thc hnh vi v ti s hng dn sau. 1.1)Tiu chun trong la chn mt b vi iu khin: l kh nng sn sng p ng v s lng trong hin ti v tng lai. i vi mt s nh thit k iu ny l quan trong hn c . Hin nay, cc b vi iu khin 8 bit ng u l h 8051 c s lng ln nht cc nh cung cp a dng (nhiu ngun). Nh cung cp c ngha l nh sn xut bn cnh nh sng ch ca b vi iu khin. Trong trng hp 8051 th nh sng ch ca n l Intel, nhng hin nay c rt nhiu hng sn xut n (cng nh trc kia sn xut). Cc hng ny bao gm: Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matra v Dallas, Semicndictior. Bng a ch ca mt s hng sn xut cc thnh vin ca h 8051. Hng a ch Website Intel Antel Plips/ Signetis Siemens Dallas Semiconductor www.intel.com/design/mcs51 www.atmel.com www.semiconductors.philips.com www.sci.siemens.com www.dalsemi.com 8051 l mt b x l 8 bit c ngha l CPU ch c th lm vic vi 8 bit d liu ti mt thi im. D liu ln hn 8 bit c chia ra thnh cc d liu 8 bit cho x l. 8051 c tt c 4 cng vo - ra I/O mi cng rng 8 bit. Cc nh sn xut cho xut xng ch vi 4K byte ROM trn chp. Bng cc c tnh ca 8051 u tin. c tnh S lng ROM trn chp RAM B nh thi Cc chn vo - ra Cng ni tip Ngun ngt 4K byte 128 byte 2 32 1 6 1.2)Vi iu khin v vi x l: Xin nhc n ci my tnh ca bn, con chp Intel hay ADM ca bn l 1 b vi x l, n khng c RAM, ROM,cng IO v cc thit b ngoi vi on Chip. Cn vi iu khin cha 1 b vi x l v RAM,ROM, cng IO, v c th c cc thit b ngoi vi. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 4 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 1.3)S chn vi iu khin 8051: L IC ng v dng DIP c 40 chn, mi chn c mt k hiu tn v c cc chc nng nh sau: Chn 40: ni vi ngun nuI +5V. Chn 20: ni vi t(Mass, GND). Chn 29 (PSEN)(program store enable) l tn hiu iu khin xut ra ca 8051, n cho php chn b nh ngoi v c ni chung vi chn ca OE (Outout Enable) ca EPROM ngoi cho php c cc byte ca chng trnh. Cc xung tn hiu PSEN h thp trong sut thi gian thi hnh lnh. Nhng m nh phn ca chng trnh c c t EPROM i qua bus d liu v c cht vo thanh ghi lnh ca 8051 bi m lnh.(ch vic c y l c cc lnh (khc vi c d liu), khi VXL ch c cc bit opcode ca lnh v a chng vo hng i lnh thng qua cc Bus a ch v d liu) Chn 30 (ALE : Adress Latch Enable) l tn hiu iu khin xut ra ca 8051, n cho php phn knh bus a ch v bus d liu ca Port 0. Chn 31 (EA : Eternal Acess) c a xung thp cho php chn b nh m ngoI i vi 8051. i vi 8051 th : EA = 5V : Chn ROM ni. EA = 0V : Chn ROM ngoi. 32 chn cn li chia lm 4 cng vo ra: Vo ra tc l c th dng chn c mc logic (0;1 tng ng vi 0V ; 5V)vo hay xut mc logic ra(0;1) P0 t chn 39 32 tng ng l cc chn P0_0 P0_7 P1 t chn 1 8 tng ng l cc chn P1_0 P1_7 P2 t chn 21 28 tng ng l cc chn P2_0 P2_7 P3 t chn 10 17 tng ng l cc chn P3_0 P3_7
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 5 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Ring cng 3 c 2 chc nng mi chn nh trn hnh v: P3.0 RxD : chn nhn d liu ni tip khi giao tip RS232(Cng COM ). P3.1 _ TxD : phn truyn d liu ni tip khi giao tip RS232. P3.2 _ INTO : interrupt 0 , ngt ngoi 0. P3.3 _ INT1: interrupt 1, ngt ngoi 1. P3.4 _T0 : Timer0 , u vo timer0. P3.5_T1 : Timer1, u vo timer 1. P3.6_ WR: Write, iu khin ghi d liu. P3.7 _RD: Read , iu khin c d liu.
Chn 18, 19 ni vi thch anh to thnh mch to dao ng cho VK Tn s thch anh thng dng trong cc ng dng l : 11.0592Mhz(giao tip vi cng com my tnh) v 12Mhz Tn s ti a 24Mhz. Tn s cng ln VK x l cng nhanh.
Dao dong cua thach anh S1 S2 S3 S4 S5 S6
P1 P2
1 chu ki may 1 chu k my = 12 dao ng ca thch anh tn s thch anh l 12 Mhz c ngha l tn s lm vic ca chip l 1Mhz <-> chu k l 1uS.Lnh lp trnh cho vi iu khin c lnh vi iu khin mt 1 chu k my mi thc hin P0 P1 P2 P3 Port's Bit P0.0 P1.0 P2.0 P3.0 D0 P0.1 P1.1 P2.1 P3.1 D1 P0.2 P1.2 P2.2 P3.2 D2 P0.3 P1.3 P2.3 P3.3 D3 P0.4 P1.4 P2.4 P3.4 D4 P0.5 P1.5 P2.5 P3.5 D5 P0.6 P1.6 P2.6 P3.6 D6 P0.7 P1.7 P2.7 P3.7 D7 U1 AT89C51 31 19 18 9 12 13 14 15 1 2 3 4 5 6 7 8 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 17 16 29 30 11 10 40 20 EA/VP X1 X2 RESET INT0 INT1 T0 T1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 RD WR PSEN ALE/P TXD RXD VCC VSS DKS_GROUP Microcontroller Training Center
DKS_GROUP - 6 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 xong,c lnh nhiu hn mt chu k my. C th khi lp trnh s bit lnh bao nhiu chu k my. 1.4) Mch 8051 ti thiu:
Mch to dao ng:
Chn 9 c mc vi 1 mch ngoi to thnh mch reset. Khi reset VK hot ng li t u.(Ram b xa, cc thanh ghi b xa)
Mch RESET
Tan so 12Mhz 33p Tu gom Thach anh 33p Tu gom U1 8051 19 18 20 X1 X2 VSS U3 8051 9 40 20 RESET VCC VSS 5VDC + C4 CAPACITOR POL R1 R DKS_GROUP Microcontroller Training Center
DKS_GROUP - 7 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Mch vi iu khin n gin nht:
Mch ny cha c khi ngun to ngun 5V cc bn dng con IC sau: S chn:
Gii thiu IC n p 7805 : u vo > 7V u ra 5V 500mA. Mch n p: cn cho VK v nu ngun cho VK khng n nh th s treo, khng chy ng, hoc reset lin tc, thm ch l to chp. Mch ngun U1 LM7805/TO 1 2 3 VIN G N D VOUT + C3 10uF/25V 12VDC In C2 104 5VDC Out C1 104
Mach vi dieu khien co ban U3 8051 31 19 18 9 39 38 37 36 35 34 33 32 20 40 EA/VP X1 X2 RESET P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 GND VCC R1 10K 5VDC C1 33p + C3 10uF/25V C2 33p R7 R4 10Kx9 R9 12Mhz U6 LM7805/TO 1 3 2 VIN VOUT G N D DKS_GROUP Microcontroller Training Center
DKS_GROUP - 8 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 12Mhz U1 8051 19 18 9 4 0 20 X1 X2 RESET V C C VSS + C3 10uF/25V 5VDC R1 10K C2 33p C1 33p
1.5)Cu trc_s khi ca vi iu khin 8051:
C O U N T E R
I N P U T S
OSC INTERRUPT CONTROL 4 I/O PORTS BUS CONTROL SERIAL PORT EXTERNAL INTERRUPTS CPU ON - CHIP RAM ETC TIMER 0 TIMER 1 ADDRESS/DATA TXD RXD P P P P DKS_GROUP Microcontroller Training Center
DKS_GROUP - 9 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Ch :S khi bn trong con 8051 c nhng ti nguyn . Interrupt, Ram, Timer, Serial prort. 1.6)Cc thnh vin khc ca h 8051: C hai b vi iu khin thnh vin khc ca h 8051 l 8052 v 8031. B vi iu khin 8052: 8052 c tt c cc c tnh chun ca 8051 ngoi ra n c thm 128 byte RAM v mt b nh thi na. Hay ni cch khc l 8052 c 256 byte RAM v 3 b nh thi. N cng c 8K byte ROM. Trn chp thay v 4K byte nh 8051. Bng : So snh cc c tnh ca cc thnh vin h 8051.
c tnh 8051 8052 ROM trn chp 4K byte 8K byte RAM 128 byte 256 byte B nh thi 2 3 Chn vo ra 32 32 Cng ni tip 1 1 Ngun ngt 6 8
Do vy tt c mi chng trnh vit cho 8051 u chy trn 8052 nhng iu ngc li l khng ng.c bit : Mt nh sn xut chnh ca h 8051 khc na l Philips Corporation. Hang ny c mt di la chn dng ln cho cc b vi iu khin h 8051. Nhiu sn phm ca hng c km theo cc c tnh nh cc b chuyn i ADC, DAC, chn PWM, cng I/0 m rng . Update sn phm 8051 mi ti cc trang web ca cc nh sn xut a ch c phn gii thiu. Ch yu: www.atmel.com 1.7)Ram ni v cc thanh ghi SFR ca 8051: F0 F7 F6 F5 F4 F3 F2 F1 F0
E0 E7 E6 E5 E4 E3 E2 E1 E0
D0 D7 D6 6D 6C 6B 6A 69 68
B8 - - - BC BB BA B9 B8
B0 B7 B6 B5 B4 B3 B2 B1 B0
A8 AF AE AD AC AB AA A9 A8 DKS_GROUP Microcontroller Training Center
DKS_GROUP - 10 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Cc thanh ghi SFR c a ch nm gia 80H v FFH cc a ch ny trn 80H, v cc a ch t 00 n 7FH l a ch ca b nh RAM bn trong 8051. Khng phi tt c mi a ch t 80H n FFH u do SFR s dng, nhng v tr ngn nh t 80H n FFH cha dngl d tr v lp trnh vin 8051 cng khng c s dng. Bng : chc nng ca thanh ghi chc nng c bit SFR
A0 A7 A6 A5 A4 A3 A2 A1 A0
99 Khng nh a ch tng bt 98 9F 9E 9D 9C 9B 9A 99 98
90 97 96 95 94 93 92 91 90
8D Khng nh a ch tng bt 8C Khng nh a ch tng bt 8B Khng nh a ch tng bt 8A Khng nh a ch tng bt 89 Khng nh a ch tng bt 88 8F 8 E 8D 8C 8B 8A 89 88 87 Khng nh a ch tng bt
83 Khng nh a ch tng bt 82 Khng nh a ch tng bt 81 Khng nh a ch tng bt 80 87 86 8 5 84 83 82 81 80 THANH GHI CHC NNG C BIT DKS_GROUP Microcontroller Training Center
DKS_GROUP - 11 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 SFR nh a ch tng bit( nhng thanh ghi cn nh i khi lp trnh c bn C)
Thanh ghi / Bit K hiu Chc nng TMOD Chn model cho b nh thi 1 7 GATE Bt iu khin cng. Khi c set ln 1, b nh thi ch hot ng trong khi INT1 mc cao 6 C/T Bt chn chc nng m hoc nh thi: 1= m s kin 0= nh thi trong mt khong thi gian 5 M1 Bit chn ch th nht 4 M0 Bit chn ch th 2 M1 M0 Ch
Chc nng 0 0 0 Ch nh thi 13 bit 0 1 1 Ch nh thi 16 bit 1 0 2 Ch t ng np li 8 bit 1 1 3 Ch nh thi chia x 3 GATE Bit iu khin cng cho b nh thi 0 2 C/T Bit chn chc nng m / nh thi cho b nh thi 0 1 M1 Bit chn ch th nht cho b nh thi 0 0 M0 Bit chn ch th 2 cho b nh thi 0 TF1 TR1 TF1 TR0 IE1 IT1 IE0 IT0 Thanh ghi / Bit K hiu Chc nng TCON iu khin b inh thi TCON.7 TF1 C trn ca b nh thi 1. C ny c set bi phn cng khi c trn, c xo bi phn mm, hoc bi phn cng khi b vi x l tr n trnh phc v ngt TCON.6 TR1 Bit iu khin hot ng ca b nh thi 1. Bit ny c set hoc xo bi phn mm iu khin b nh thi hot ng hay ngng TCON.5 TF0 C trn ca b nh thi 0 TCON.4 TR0 Bit iu khin hot ng ca b nh thi 0 TCON.3 IE1 C ngt bn ngoi 1 (kch khi cnh). C ny c set bi phn cng khi c cnh m (cung) xut hin trn chn INT1, c xo bi phn mm, hoc phn cng khi CPU tr n trnh DKS_GROUP Microcontroller Training Center
DKS_GROUP - 12 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 phc v ngt TCON.2 IT1 C ngt bn ngoi 1 (kch khi cnh hoc mc). C ny c set hoc xo bi phn mm khi xy ra cnh m hoc mc thp ti chn ngt ngoi TCON.1 IE0 C ngt bn ngoi 0 (kch khi cnh) TCON.0 IT0 C ngt bn ngoi 0 ( kch khi cnh hoc mc) EA ET2 ES ET1 EX1 EX0 ET0 iu khin cc ngun ngt IE (0: khng cho php; 1: cho php) IE.7 EA Cho php/ khng cho php ton cc IE.6 --- Khng s dng IE.5 ET2 Cho php ngt do b nh thi 2 IE.4 ES Cho php ngt do port ni tip IE.3 ET1 Cho php ngt cho b nh thi 1 IE.2 EX1 Cho php ngt t bn ngoi (ngt ngoi 1) IE.1 EX0 Cho php ngt t bn ngoi (ngt ngoi 0) IE.0 ET0 Cho php ngt do b nh thi 0
Ch : 3 thanh ghi ny cng rt c bn, nh tn thanh ghi, tn cc bt trong thanh ghi, chc nng tng thanh ghi v tng bt trong thanh ghi.
1.8)Gii thiu s qua cc ngun ngt:
Ngt do C a ch vector Reset h thng RST 0000H Ngt ngoi 0 IE0 0003H B nh thi 0 TF0 000BH Ngt ngoi 1 IE1 0013H B nh thi 1 TF1 001BH Port ni tip RI hoc TI 0023H B nh thi 2 TF2 hoc EXF2 002BH
Timer
Main Program Main ISR Main ISR Main ISR Main Program excution without interrut Program excution with interrupt. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 13 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 * ** * ** * **
Mt chng trnh chnh khng c ngt th chy lin tc, cn chng trnh c ngt th c khi no iu kin ngt c m bo th con tr s nhy sang hm ngt thc hin xong hm ngt li quay v ng ch c thc hin tip chng trnh chnh. Ti c 1 v d nh sau: Bn ang n cm , c ting in thoi , bn t bt cm ra nghe in thoi , nghe xong li quay v bng bt cm ln n tip. Th qu trnh n cm ca bn l chng trnh chnh,c in thoi gi n l iu kin ngt, bn ra nghe in thoi l thc hin chng trnh ngt(Interrupt Service Rountine),quay v n cm tip l tip tc thc hin chng trnh chnh. Ngt i vi ngi mi hc vi iu khin l rt kh hiu, v a s cc ti liu u khng gii thch ngt lm g. C nhiu loi ngt khc nhau nhng tt c u c chung 1 c im, ngt dng cho mc ch a nhim. a tc l nhiu, nhim tc l nhim v. Thc hin nhiu nhim v . Cc bn nhn vo tin trnh ca hm main vi chng trnh c ngt : Chng trnh chnh ang chy, ngt xy ra, thc hin hm ngt ri quay li chng trnh chnh. Chng trnh trong vi iu khin khc vi v d n cm nghe in thoi ca ti ch , thi gian thc hin hm chnh l rt ln,thi gian thc hin hm ngt l rt nh, cho nn thi gian thc thi hm ngt khng nh hng nhiu lm n chc nng hm chnh. Nh vy trong hm ngt cc bn lm 1 vic, trong hm chnh cc bn lm 1 vic nh vy coi nh cc bn lm c 2 vic(a nhim) trong 1 quang thi gian tng i ngn c mS, ch thc ra ti 1 thi im vi iu khin ch thc thi 1 lnh. V d : Bn th ngh xem lm th no va iu ch xung PWM iu chnh tc ng c , va c cc cm bin u vo m tc ng c ph thuc u vo cm bin.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 14 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
BAI 2: NGN NG Lp trnh C
21.)Cu trc mt chng trnh: //nh km cc file #include <file.h> #include <file.c> //Khai bo bin ton cc unsigned char x,y; int z; DKS_GROUP Microcontroller Training Center
DKS_GROUP - 15 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 long n=0; //Khai bo v nh ngha cc hm void Hm1(void) { //Cc cu lnh }
void Hm2(unsigned char x) { //Cc cu lnh }
//Hm chnh bt buc chng trnh no cng phI c void main(void) { //Cc cu lnh } Cc cu lnh trong hm chnh c th c li gi cc hm khai bo trn hoc k Khi c li gi hm no th chng trnh nhy n hm thc hin hm xong con tr li quay v chng trnh chnh(hm main) thc hin tip cc hm hoc cu lnh.
Cc cu lnh trong C kt thc bng du ; Cc li giI thch c t trong du: M u bng /* kt thc bng */ Nu li giI thch trn 1 dng th c th dng du: // Khi lp trnh nn giI thch cc cu lnh khi lnh lm g v sau khi chng trnh ln d sa li.
2.2)Cc loi bin trong C:
Dng bin S SS S Bit Bit Bit Bit S SS S Byte Byte Byte Byte Mi Mi Mi Mi n gi tr n gi tr n gi tr n gi tr char 8 1 -128 n +127 unsigned char 8 1 0 n 255 short 16 2 -32,768 n +32,767 unsigned short 16 2 0 n 65,535 DKS_GROUP Microcontroller Training Center
DKS_GROUP - 16 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 int 16 2 -32,768 n +32,767 unsigned int 16 2 0 n 65,535 long 32 4 -2,147,483,648 n+2,147,483,647 unsigned long 32 4 0 n 4,294,697,295
Khai bo bin: Cu trc: Kiubin Tnbin; VD: unsigned char x; Khi khai bo bin c th gn lun cho bin gi tr ban u. VD : Thay v: unsigned char x; x=0; Ta ch cn : unsigned char x=0; C th khai bo nhiu bin cng mt kiu mt lc VD: unsigned int x,y,z;
Ngoi ra dng cho vi iu khin trnh dch chuyn dng cn h tr cc loi bin sau:
Dng bin S SS S Bit Bit Bit Bit S SS S Byte Byte Byte Byte Mi Mi Mi Mi n gi tr n gi tr n gi tr n gi tr bit 1 0 0 ; 1 sbit 1 0 0 ; 1 sfr 8 1 0 n 255 sf16 16 2 0 n 65,535
Trong bit c th dng nh cc bin ca C++ nhng cc loi bin cn li th lin quan n cc thanh ghi hoc a ch cng ca 8051. C ngha l khi khai bo bin kiu bit th khng cn nh a ch trong RAM cho cc bin , cn khi khai bo bin kiu sbit, sfr, sf16 th phi nh r a ch trong RAM v n l cc dng bin c bit gi l special function registers (= cc thanh ghi co chc nng c bit vit tt l SFR) VD: Bit Kiemtra; Sfr P10=0x90; DKS_GROUP Microcontroller Training Center
DKS_GROUP - 17 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Cc SFR khng cn phi hc thuc ch cn bit, v chng c khai bo trong th vin AT89X51.H v AT89X52.H 2.3)Hm trong C: Hm trong C c cu trc nh sau: C hai loi hm: Hm tr li gi tr: Cu trc: Kiugiatrhamtrli Tnhm (Bintruynvohm) { // Cc cu lnh x l y }
V d : unsigned char Cong(unsigned char x, unsigned char y) { // Cc cu lnh x l y } Hm khng tr li gi tr: Cu trc: void Tnhm (Bintruynvohm) { // Cc cu lnh x l y }
V d : void Cong(unsigned char x, unsigned char y) { // Cc cu lnh x l y }
Hm c th c bin truyn vo hoc khng. V d: Hm khng c bin truyn vo: unsigned char Tnhm(void) { // Cc cu lnh x l y } Hm c bin truyn vo: void Tnhm(unsigned char x) { // Cc cu lnh x l y DKS_GROUP Microcontroller Training Center
DKS_GROUP - 18 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 } S bin truyn vo ty (min b nh), ngn cch bi du , V d: Void TnHm(unsigned char x, unsigned char y, unsigned char z) { // Cc cu lnh x l y } NgoI ra ring cho vi iu khin phn phm Keil C cn c mt loi hm l hm ngt: Cu trc: Void Tnhm(void) interrupt ngunngt using bngthanhghi { }
Hm ngt khng c php tr li gi tr hay truyn tham bin vo hm. Tn hm bt k Interrupt l t kha ch hm ngt Ngun ngt t 0 ti 5 theo bng vector ngt Ngt do C a ch vector Reset h thng RST 0000H Ngt ngoi 0 IE0 0003H B nh thi 0 TF0 000BH Ngt ngoi 1 IE1 0013H B nh thi 1 TF1 001BH Port ni tip RI hoc TI 0023H B nh thi 2 TF2 hoc EXF2 002BH Khong tinh ngat reset he thong bat dau dem tu ngat ngoai 0 nguon ngat la 0. Bng thanh ghi trn ram chn t 0 n 3
2.4)Cc ton t c bn: Php gn: = VD: x=y; // x phI l bin y c th l bin hoc gi tr nhng phI ph hp kiu Php cng: + Php tr: - Php nhn: * Php chia: / Cc ton t logic: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 19 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Bng : == And: && Or: || Not: ! Dch tri: << Dch phi: >> 2.5)Cc cu trc lnh r nhnh, kim tra thng dng: Cu lnh r nhnh if: Cu trc: if (iukin) { // Cc cu lnh x l } Gii thch: Nu iukin ng th x l cc cu lnh bn trong cn sai th nhy qua Cu lnh la chn switch: Cu trc: switch(Bin) { case giatr1: { // Cc cu lnh break; } case giatr2: { // Cc cu lnh break; } case giatr3: { // Cc cu lnh break; }
case giatrn: { // Cc cu lnh break; } } GiI thch : Ty vo Bin c giatr1 th thc hin cc cu lnh sau tng ng ri thot khi cu trc nh cu lnh break; Bin c giatr2 th thc hin cc cu lnh sau tng ng ri thot . Bin c giatrn th thc hin cc cu lnh sau tng ng ri thot Cu lnh vng lp xc nh for: Cu trc: for( n=m; n<l; n++) {// Cc cu lnh x l } GiI thch: Trong m,l l gi tr (m>l), cn n l bin Thc hin lp cc cu lnh (l-m) ln Cu lnh vng lp khng xc nh while: Cu trc: While( iu kin) { //Cc cu lnh } GiI thch: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 20 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Thc hin lp cc cu lnh khi iu kin ng, nu cu lnh sai thi thot khi vng lp
2.6) B tin x l: #define : Dng nh ngha. V d: #define dung 1 #define sai 0 c ngha l dung c gi tr bng 1. Trong chng trnh c th c on code nh sau: bit kiemtra if (bit==dung) { // Cc cu lnh} if (bit==sai) { // Cc cu lnh} Vic ny gip lp trnh d sa li hn.
Mt s web hay : www.dientuvietnam.net www.atmel.com www.svbkol.org www.keil.com www.diendandientu.com www.iguanalabs.com www.microchip.com www.elechtro-tech-online.com www.diendansv.hutech.edu.vn www.ttvnol.com www.8052.com www.kmitl.ac.th www.ftdichip.com
Bi 2(Tip) Phn 2: S dng Keil C. Sau khi ci t m ra cc bn c hnh sau: 1> Khi to cho Project: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 21 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
to 1 project mi chn Project New project nh sau: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 22 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
c hnh sau: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 23 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
nh tn v chuyn n th mc bn lu project. Bn nn to mi mt th mc cho 1 project. Ri chn Save. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 24 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
c hnh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 25 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Trong ny c 1 lot cc hng in t sn xut 8051. Bn lp trnh cho con no th chn con y ,kch chut vo cc du + m rng cc con IC ca cc hng. y ta lp trnh cho AT89C51 ca hng Atmel nn ta chn nh sau: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 26 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Khi chn chip th ngay lp tc ci bng hin ra 1 s tnh nng ca chp cc bn c th nhn thy. 8051 based Fully Static 24Mhz . Nhap OK c ca s nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 27 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Chn No. Chn Yes ch lm cho file lp trnh ca bn thm nng . c ca s sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 28 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
to 1 file code cc bn chn File New hoc n Ctrl+N. Nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 29 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 30 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 c ca s nh sau:
Cho ca s Text 1 to ra c nh sau: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 31 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 32 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Tip theo bn chn File Save As hoc Ctrl+S. nh file mc d cha c g. Nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 33 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 c ca s sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 34 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Cc bn nhp tn vo text box file name. Ch tn g cng c nhng khng c thiu ui m rng .C . Nhn Save. c ca s sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 35 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Trong bn tri mn hnh, ca s project workspace, cc bn m rng ci target 1 ra c nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 36 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Nhp chut phi vo th mc Suorce Group1 c hnh nh trn. Chn Add files to Group Source Group1 add file vo project. c nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 37 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Chn file .C m cc bn va nh. Ca ti l Dieukhienled_IO . Nhn Add 1 ln ri n Close. Nu bn n Add 2 ln n s thng bo l file add bn ch vic OK ri nhn Close. c nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 38 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 By gi nhn trong Source Group 1 thy file Dieukhienled_IO.C . Cc bn nhp chut phi vo vng son tho file Dieukhienled_IO.C nh sau, thm file th vin.Chn Insert #include <AT89X51.H>
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 39 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Cc bn bit file l g nu cc bn hc bi trc k theo yu cu ca ti. c nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 40 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Phn cui cng ca cng vic khi to l cc bn vit li gii thch cho d n ca mnh .Phn ny rt cn thit v n ngi khc hiu mnh lm g tron project ny v khi mnh cn s dng li code c li mnh cn bit n l ci g. Cc bn to li gii thch theo mu sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 41 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 2> Son tho chng trnh: Cc bn vit chng trnh ca bi 3 vo y lm v d. Khi vit xong 1 dng lnh nn gii thch dng lnh lm g. Nh sau:
Cc bn nn chia chng trnh nh ti lm. Vi 1 file nh th n hi rm r. Nhng vi 1 file ln khong 1000 dng code th n li rt sng sa. Cc bn nn to 1 file DKS_GROUP Microcontroller Training Center
DKS_GROUP - 42 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 mu ri nh vo 1 file text u mi ln dng ch vic copy ri paste qua ch khng nn mi ln to mt ci nh vy li phn tc dng. Pha trn l phn b tin x l v khai bo bin. Tip theo l vit hm tr.
Tip theo l vit hm main. Nh sau: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 43 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Ri nhn Ctrl+S. Hoc chn File Save nh file va son tho. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 44 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Cc bn nhn vo code c th cc bn hiu con AT89C51 n lm g nu cc bn nm vng cc bi trc. Cn nu khng hiu th ti s gii thch li cho cc bn. y l s nguyn l ca 1 led. Project l 8 led(v phc v cho bi 3) nhng ti ch gii thch 1 led l cc bn hiu. Mc ch l lm con led nhp nhy. + C3 10uF/25V C2 33p C1 33p X1 19 X2 18 RESET 9 P1.0 1 V C C 4 0 VSS 20 U1 8051 R1 10K 5VDC 12Mhz D1 LED R2 470
Bin Led1 c khai bo (gn cho) chn P0_1 ca vi iu khin bng cu lnh sbit Led1=P1^0; . Gi tr bt bat c nh ngha l 0. Khi cc bn gn : Led1=bat; trong hm main th chn P1_0 ca AT89C51 c mc logic l 0V. Theo s nguyn l: 5V Tr 470 Led1 P1_0 (0 V). C chnh lch p c dng in qua led Led sng. Cc bn c th tnh tan ch ny d dng l ti sao li l tr 470 m. in p mt led l Uak (0,6 n 0,7V) ly =0,6V.in p chn P1_0 l 0V. in p hai u tr : 5V -0,6V = 4,4V. Dng qua tr = dng qua led = 4,4V/470 m xp x 10 mA. Vi dng 10mA n 15mA l led dng sng v sng rt p. Nu dng yu th led m, cn dng ln th cc bn bit sao ri y. Khi cc bn gn: Led1= tat; tc l chn P1_0 c gi tr 1 tng ng in p ca n l 5V . Hiu in th gia hai u +5V v P1_0 l 0V . Nn khng c dng qua led Led tt.Nhng nu trong hm main cc bn vit ch c nh sau: While(1) { DKS_GROUP Microcontroller Training Center
DKS_GROUP - 45 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Led1=bat; Led1=tat; } Khi chy debug th vn thy led nhp nhy. Nhng khi np chng trnh vo chp lp vo mch th led khng nhy hoc ch sng m hoc tt ngm. V lnh Led1=bat; l lnh 1 chu k my , tn s thch anh l 12 Mhz, 1 chu k my c thi gian l 1uS. Va bt ln 1 uS ri li tt ngay. Led khng p ng c tn s cao vy nn khng nhp nhy. Do cn ti hm tr . Bt led ln tr 1 thi gian kh lu(0,5 giy), ri tt led i kh lu(0,5s) ri li bt li to thnh vng lp s c led nhp nhy. Tc dng ca cu lnh while(1) . iu kin bn trong vng while l 1 lun lun ng nn n l vng lp v hn ln. Nu khng c vng while(1) th led ca cc bn ch sng ln 1 ln ri tt v ht chng trnh ri cn u. Phn ny nu bn no mi hc in t th no cng c cu hi thc mc c nhn tin hoc gi mail. 3> Dch chng trnh: Son tho song nhn Ctrl +S nh . Nh xong cc bn bin dch chng trnh bng cch n phm F7 hoc chn Build target l biu tng ngay trn ca s workspace nh trn hnh:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 46 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Cc bn s thy nh sau:
Trong ca s Output Window ngay pha trn dng ch ny c cc dng ch Compiling Linking DKS_GROUP Microcontroller Training Center
DKS_GROUP - 47 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Program Size: data =17.0 code =96 0 error , 0 Warning . Nh vy l OK. Nu khng c nh vy n s bo li v cc bn kim tra xem son tho ng cha. Ti v d xa 1 du ; trong hm main dng : Led1=bat; , gi b i thnh Led1= bat .Ri dch li (n F7) trnh bin dch s bo nh sau:
Syntax error near tre. Sai c php gn tr. Cc bn nhp p tri chut vo dng thng bo ny con tr s ngay dng di dng c li thm du nhn du mi tn DKS_GROUP Microcontroller Training Center
DKS_GROUP - 48 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 mu xanh hnh di y, g vo du ; v dch li l OK. Trong chng trnh ln i khi con tr ch n gn ch c li thi v bn phi t tm ra li.
Sau khi dch li c hnh sau: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 49 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 50 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 4> Chy m phng v sa li. Trc khi debug chng ta khi to nh sau. Cc ban vo Option for target 1.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 51 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 c bng sau. Nhp tn s thch anh l 12 Mhz ng vi tn s thch anh.
Chn OK.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 52 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
debug cc bn nhn t hp phm Ctrl + F5. Hoc nhn vo icon c ch D mu trong ci knh lp trn thanh cng c. c ca s sau:
Trong menu Peripherals(cc thit b ngoi vi) chn IO port , Port 1. c nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 53 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Cc bn thy 1 ca s nh Parallel Port 1 xut hin l ci m phng cho cng 1 ca AT89C51. Du tch tng ng chn mc cao(5V) , khng tch chn mc DKS_GROUP Microcontroller Training Center
DKS_GROUP - 54 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 thp (0V). Trong menu peripherals cn cc ngoi vi khc nh timer , interrupt, serial. Cc bi sau dng n cc bn nh ly trong ny. chy chng trnh cc bn nhp chut phi vo mn hnh son tho. Ri n F11. Mi ln n s chy 1 lnh. Khi debug nu cc bn ch hm delay lu qu 1000 ln lp . Cc bn nhn Ctrl + F11 b qua hm. Hoc n F10 chy tng dng lnh. Cc bn s thy chn P1_0 thay i gi tr. Bng bn tri , Project workspace by gi c cc thanh ghi. Cc bn c th thy chng thay i. Nhng cc bn khng cn quan tm n cc thanh ghi ny. V mnh hc ngn ng C m. Nu hc asembly th mi phi s dng chng. Cng mt y. Ci bn quan tm nht l ci sec. N cng thay i. V thch anh l 12Mhz, nn mi chu k my l 10 -6 giy. Cc bn cn c vo y bit lnh no mt bao nhiu chu k my, lm thi gian thc th cn lm y. Thot khi debug li n Ctrl+F5 hoc n vo icon debug.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 55 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Bi 3: iu khin IO. 3.1)Lp mch : - Khi ngun 5V cc bn nh lp mch n nhy. - Cc bn lp mch theo s sau: + C3 10uF/25V C2 33p C1 33p X1 19 X2 18 RESET 9 P1.0 1 V C C 4 0 VSS 20 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 EA 31 P0.0 39 P0.1 38 P0.2 37 P0.3 36 P0.4 35 P0.5 34 P0.6 33 P0.7 32 U1 8051 R1 10K 5VDC 12Mhz D1 D2 D3 D4 D5 D6 D7 D8 1 23456789 1 0 R11 RESISTOR SIP 10
- Hng dn lp mch: * Qui nh : nu linh kin no ti khng nhc n chiu th cc bn lp linh kin chiu no cng c. Hng dc ngoi l ngun 5 V. Hng dc trong l GND. Th t chn cc bn phi nh khng ging th t sp xp tronh hnh v mch. Cch m chn cc bn con chip xui m cc bn nhn dng ch AT89C51/52 xui, chn 1 l chn gn du trn v hnh tam gic nh mu trng. m t trn xung di tri qua phi. S chn con IC tht s m ng th ny. Khi lp mch phi m chn. Khng nn lp ngun 12V vo vi ch khi np chp xong lp vo mch mi lp ngun. Khi mun g chp ra phi rt ngun ra ri mi g chp.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 56 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
* Chun b board nh sau: Lp 4 dy ni ngn ni cc sng. Lp 1 dy ni ni hng trn cng vi hng di cng lm ngun +5V. Lp 1 dy ni ni hng gn trn cng vi hng gn di cng lm GND. Lp chp nh hnh. * Bc 1 lp mch dao ng: Lp 1 con t 33pF t chn 19 xung chn 20.(ng hi ti sao). Lp 1 con t 33pF t chn 18 xung chn 20. Ly dy cu t chn 20 xung GND. Lp 1 con thch anh 12M vo chn 18 v 19. * Bc 2 lp mch reset. Lp 1 con tr 10K(nu en cam) t chn 9 xung GND. Lp 1 con t 10uF/50V cc dng ln +5V, cc m vo chn 9. * Bc 3 lp tr bng. chp chy vi ROM trong chn EA phi ln +5V qua 1 in tr. Cng 0 l cng c cc mng h mun thc hin c IO th phi c in tr treo.(Thy ci ny l xem li bi 2). Nn lp 1 con tr bng 10 chn vo cng 0 v chn EA. Chn 1 ca tr bng ( Chn u tin c nt trn mu trng) vo chn 40. Chn 10 ca tr bng vo chn 31. Nu khng c tr bng cc bn c th thay tr bng 10 chn bng 9 con tr thng v tr bng 10 chn chnh l 9 con tr u chung 1 u nh trong s mch pha trn. * Bc 4 lp led: d dng khi lp mch nn chng ta lp led theo s nh trn. U1 AT89C51 31 19 18 9 12 13 14 15 1 2 3 4 5 6 7 8 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 17 16 29 30 11 10 40 20 EA/VP X1 X2 RESET INT0 INT1 T0 T1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 RD WR PSEN ALE/P TXD RXD VCC VSS DKS_GROUP Microcontroller Training Center
DKS_GROUP - 57 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Lp chn di ca 1 led vo chn 1 vi iu khin chn ngn vo GND. Tng t lp 7 led cn li vo chn 2 n chn 8. * Bc 5 cu 1 dy nh t chn 40 ln ngun 5V. 3.2) Nguyn l hot ng: Led ni t chn vk xung t vy nu chn vi iu khin 5V th led s sng, nu chn vi iu khin 0V th led s ti. in p 5V v sao led khng chy m li cn sng yu? V vi iu khin 8051 ch c th cung cp dng nh khng 10mA 1 chn nn led sng yu. Cn nu mun led sng p th lp nh sau t dng 5V Chn di ca led Chn ngn ca led Chn vi iu khin. Ci ny s ni sau. * Bc 5 lp ngun: Lp 1 dy t chn 40 ln hng ngun 5V. 3.3) Lp trnh : Trc ht iu khin 1 led. iu khin 1 led th cc bn ch vic gn chn ni vi led bng 0 hoc 1, th in p chn s l 0V hoc 5V, ty vo in p n s sng hoc ti. Code nh sau: /* ==================================================== Mo ta: Dieu khien den led. Phan cung: 8 led noi tu +5V qua dien tro han dong vao 8 chan cong 1. Thach anh: 12 Mhz Tac gia: Nguyen Huy Thanh. Thoi gian: Bat dau: 1h03 16/7/2005 Hoan thanh: 1h07 16/7/2005 =====================================================*/
/******************Bo tien xu li*******************************/ #include <AT89X51.H>// Dinh kem file thu vien #define bat 1 // Dinh nghia gia tri bat den led #define tat 0// Dinh nghia gia tri tat den led
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 58 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 /************************************************************/
/*******************Khai bao bien toan cuc**********************/ sbit Led1=P1^0; //Khai bao bien Led1 kieu bit chan P1_0 sbit Led2=P1^1; // ... sbit Led3=P1^2; sbit Led4=P1^3; sbit Led5=P1^4; sbit Led6=P1^5; sbit Led7=P1^6; sbit Led8=P1^7;//Khai bao bien Led8 kieu bit chan P1_7 /***********************************************************/
/********************Khai bao ham****************************/
/*----------------Ham tre------------------------------- Ham tao thoi gian tre. Dau vao: 1 bien thoi gian. Dau ra: khong ------------------------------------------------------*/ void tre(long time) { long n;// Khai bao bien cuc bo for(n=0; n<time; n++)//Lap time lan { ; // Khong lam gi nop } }
/*******************Ham chinh**************************/ void main(void) { while(1)// Lap vo han { Led1= bat;// Bat led 1 DKS_GROUP Microcontroller Training Center
DKS_GROUP - 59 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 tre(1000);// Tre 1 khoang thoi gian Led1= tat;// Tat led 1 tre(1000);// Tre 1 khoang thoi gian }
}
/************************************************************/ Nn t g ch khng nn copy paste. * CH : Code ny khc code trong bi 3 s dng Keil C y nh. Ch #define bat 1 v #define tat 0. V led lp kiu khc m.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 60 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 61 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 62 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
* c th np chng trnh vo chp th fi to ra file .hex. to ra file .hex lm nh sau . Vo Option for target ch chnh tn s thch anh.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 63 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
c hnh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 64 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Kch vo tab Output. c hnh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 65 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Tch vo check : Create Hex File. Nhp OK. Nhn fm F7 bin dch li . Khi di ca s output window c ch Creating hex file
Creating hex file from Dieukhienled_IO nh ngay trn hnh.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 66 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 3.4) Np chp: Cm u cng COM vo cng COM my tnh. Cm ngun vo mch np. Cho chp vo socket 40 chn mu xanh. Rt ch phi cho ng chiu chp khng l hng. Chiu chp ging chiu con chp c sn trong mch(Chp MASTER). M phn mm EZDL4 ln. Thy c ch identifing target chip . Nhy. Gt cn nh socket 40 chn kp chp cho tip xc. Trn EZDL4 s thy ch AT89C51 hoc AT89C52 ty cc bn dng loi chp no. Kch vo Send. Chn ng dn n th mc lu project ca bn chn file : Dieukhienled_IO.hex . Nhn OK. Ch mch bo ch Complete th gt ny trn socket ly chp ra cm vo mch. 3.5) Kt qu: Cm ngun vo mch . Ch khng cm ngc m dng. Nu mch khng chy rt ngun ra kim tra cc ch sau: 1) Kim tra mch dao ng xem t ng gi tr khng, lp ng s khng, lp c lng khng. 2) Kim tra xem t mch reset chn 9 lp ng cc khng, c lng khng. Dng ng h o chn 9 nu 0V hoc xp x 0V l OK. 3) Tr bng lp ng chiu cha, chn 1 vo chn 40. Dng ng h o chn 31(EA) xem c bng 5V khng , nu 5V th OK. 4) Kim tra chn 20 ni GND cha, chn 40 ni +5V cha dng ng h o in p. 5) Kim tra xem lp ng chiu led cha. 6) Cc bn c th lp lng chp hoc do cht lng board ly tay t mnh con chp xung board . Nu vn khng chy th lin lc vi ti. 3.6) iu khin 8 led tng chic 1: Cc bn c th sa li hm main nh sau: void main(void) { while(1)// Lap vo han { Led1= bat;// Bat led 1 tre(1000);// Tre 1 khoang thoi gian Led1= tat;// Tat led 1 tre(1000);// Tre 1 khoang thoi gian DKS_GROUP Microcontroller Training Center
DKS_GROUP - 67 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Led2= bat;// Bat led 2 tre(1000);// Tre 1 khoang thoi gian Led2= tat;// Tat led 2 tre(1000);// Tre 1 khoang thoi gian Led3= bat;// Bat led 3 tre(1000);// Tre 1 khoang thoi gian Led3= tat;// Tat led 3 tre(1000);// Tre 1 khoang thoi gian Led4= bat;// Bat led 4 tre(1000);// Tre 1 khoang thoi gian Led4= tat;// Tat led 4 tre(1000);// Tre 1 khoang thoi gian Led5= bat;// Bat led 5 tre(1000);// Tre 1 khoang thoi gian Led5= tat;// Tat led 5 tre(1000);// Tre 1 khoang thoi gian Led6= bat;// Bat led 6 tre(1000);// Tre 1 khoang thoi gian Led6= tat;// Tat led 6 tre(1000);// Tre 1 khoang thoi gian Led7= bat;// Bat led 7 tre(1000);// Tre 1 khoang thoi gian Led7= tat;// Tat led 7 tre(1000);// Tre 1 khoang thoi gian Led8= bat;// Bat led 8 tre(1000);// Tre 1 khoang thoi gian Led8= tat;// Tat led 8 tre(1000);// Tre 1 khoang thoi gian }
} iu khin 8 led.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 68 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 69 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Ngoi chng trnh ny cc bn c th cho th t cc led tt bt khc nhau c cc kiu nhy khc nhau. 3.7) iu khin out c cng: Nu cc bn nhm chn vi vic iu khin tng chn 1 vit code rt tn cng cc bn c th xut gi tr ra c cng. Trc ht cc bn cn nm cc iu nh sau: - 1 cng c 8 bit t hp 8bit c 2 8 = 256 trng thi. Khi cc bn a ra cng 1 gi tr a(thp phn) t 0 n 255 th s a s c i ra h nh phn ri a ra cc bit( chn) ca cng. V d: Nu c lnh: P1=1; v 1 (10) = 0000 0001 (2) nn chn P1_0(bit 0) s bng 1(5V) cn li cc t P1_1(bit 1) n P1_7(bit 7) s bng 0(0V). P1=10; v 10 (10) = 0000 1001 (2) th s c P1_0 v P1_3 bng 1(5V) cn li cc chn khc s l 0(0V). - Cc bn c th a ra cng 1 gi tr s hex t 0 n ff tng ng t 0 n 255. Cc s c s trong h hex. (HEX)0 1 2 3 4 5 6 7 8 9 A B C D E F (10) 10 11 12 13 14 15 Cch s hex ra s thp phn: c s hex : N (16) =abf1 i ra h s 10 N (10) =1.16 0 + 15.16 1 + 11.16 2 + 10.16 3 = Bm my tnh h nh. i s nh phn sang hex: Gp 4 s nh phn thnh 1 s hex V d: 0010 0001 (2) = 21 (16) 4 s u c bit 1 = 1 nn 1x2 1 = 2 4 s sau c bit 0 =1 nn 1x2 0 =1. Cc bn thy vt v vi phn ny d bn c hiu hay khng hiu 1 lt na s bit cch lm lin. Cch a ra nh sau: V d lnh P1=1; tng ng vi P1=0x01; P1=10; tng ng vi P1=0x0A; Chng trnh xut ra c cng tng ng vi chng trnh iu khin 8 led tng ci 1 nh sau:
void main(void) { while(1)// Lap vo han { P1=0x01;// Bat led 1 tre(1000);// Tre 1 khoang thoi gian P1=0x00;// Tat led 1 DKS_GROUP Microcontroller Training Center
DKS_GROUP - 70 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 tre(1000);// Tre 1 khoang thoi gian P1=0x02;// Bat led 2 tre(1000);// Tre 1 khoang thoi gian P1=0x00;// Tat led 2 tre(1000);// Tre 1 khoang thoi gian P1=0x04;// Bat led 3 tre(1000);// Tre 1 khoang thoi gian P1=0x00;// Tat led 3 tre(1000);// Tre 1 khoang thoi gian P1=0x08;// Bat led 4 tre(1000);// Tre 1 khoang thoi gian P1=0x00;// Tat led 4 tre(1000);// Tre 1 khoang thoi gian P1=0x10;// Bat led 5 tre(1000);// Tre 1 khoang thoi gian P1=0x00;// Tat led 5 tre(1000);// Tre 1 khoang thoi gian P1=0x20;// Bat led 6 tre(1000);// Tre 1 khoang thoi gian P1=0x00;// Tat led 6 tre(1000);// Tre 1 khoang thoi gian P1=0x40;// Bat led 7 tre(1000);// Tre 1 khoang thoi gian P1=0x00;// Tat led 7 tre(1000);// Tre 1 khoang thoi gian P1=0x80;// Bat led 8 tre(1000);// Tre 1 khoang thoi gian P1=0x00;// Tat led 8 tre(1000);// Tre 1 khoang thoi gian }
}
Nh vy g code vn mi tay lm t c mc ch 8 n nhy lin tip cc bn c th lm nh sau: /******************Ham chinh****************************/ void main(void) { DKS_GROUP Microcontroller Training Center
DKS_GROUP - 71 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 unsigned char n; // Khai bao them bien n cho vong for while(1)// Lap vo han { P1=0x01;// Bat led 1 for(n=0 ; n<8;n++)// Lap 8 lan { P1=P1<<1; // Dich bit xang trai tre(1000); } }
Debug quan st s thay i ca cng 1 thy c li hi ca php dch bit xang tri. hiu thao tc xut ra cng , chn, cc cc bn lm cho mnh 1 v d na nh sau: /***********************Ham chinh*******************************/ void main(void) { unsigned char n; // Khai bao them bien n cho vong for while(1)// Lap vo han { P1=0x01;// Bat led 1 for(n=0 ; n<256;n++)// Lap 8 lan { P1=n; // Dich bit xang trai tre(5000); } }
}
/****************************************************************/ Debug thy s thay i cc cng. 3.8) Kinh nghim : DKS_GROUP Microcontroller Training Center
DKS_GROUP - 72 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 * chuyn i gia cc h s nhanh cc bn dng ci calculator c ngay trong window. Chn Start All programs Accessories Calculator. Trong Calculator cc bn chn menu View Chn scienctific. Cch chuyn i t khm ph nh. * tnh ra s hex nhanh nht . Ti v d mun a chn P3.5 v chn P3.2 xung 0(0V) cn cc chn cn li ta lm nh sau: C cho P3= 100 ; hay 1 gi tr bt k .V code dch khng li c php mi debug c nn phi cho gi tr bt k vo. Dch chng trnh ri nhn Debug. Ra c nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 73 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Cc bn thy trong ca s m phng cng 3 c ghi gi tr ca cng 3 l : 0xFF tng ng tt c 8 bit l 1111 1111. Gi cc bn b du tch trn chn 3.5 v 3.2 i . m t tri qua phi nh.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 74 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Thy cng 3 c gi tr l 0xDB. Nh vy cc bn mt cng nhm i s nh phn ra s hex. Nu khng dng cch ny l nh trn cc bn phi ngh trong u ra c dy s 1101 1011 ri i qua s HEX kt qu s l 0xDB nhng mt lm.
Bi 4: iu khin Led 7 thanh Anot chung.
4.1) Lp mch : a b dot c V- d e f g V- 1 2 3 4 5 6 7 8 9 10 A B C DOT D E F G D10 LED CATOT Chung a b dot c V+ d e f g V+ 1 2 3 4 5 6 7 8 9 10 A B C DOT D E F G D11 LED CATOT Chung
C hai loi led 7 thanh: Ant chung v Catt chung. Hnh trn l s chn ca hai loi led. N c cu to nh sau:
3 7 6 4 2 1 10 9 5 A B C D E F G DP 8 D12A Catot chung 3 7 6 4 2 1 10 9 5 8 D13A Anot chung
Ch l 8 con led u chung 1 u: Ant hoc Catt. Mch lp s dng led Ant chung nh sau: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 75 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
+ C3 10uF/25V C2 33p C1 33p R1 10K 5VDC EA/VP 31 X1 19 X2 18 RESET 9 P2.0 21 P2.1 22 P2.2 23 P2.3 24 P2.4 25 P2.5 26 P2.6 27 V C C 4 0 VSS 20 U3 8051 R3 10K 12Mhz A B D C G F E
- Lp mch: Mch bi trc(iu khin led n) nguyn,ch lp thm vo. + Bc1: Lp 7 in vo 7 chn cng P2 t P2.0 n P2.7( T chn 21 Chn 27) ca vi iu khin. Ch m bit ca cng 2 t di ln trn. + Bc2: Lp led 7 thanh 5 chn pha trn sng, 5 chn pha di sng(Ging lp AT89C51). + Bc 3: Dng dy in cu t cc chn theo s . Chn iu khin thanh A vo in tr ni vo P2.0 v c th n chn iu khin thanh G vo in tr ni vo P2.7. B qua chn iu khin du chm(Dot chn 5 ca led 7 thanh). + Bc 4: Dng dy cu chn 3(hoc chn 8, hoc c hai chn 3 v 8) ln +5V. Lp mch nn dy cu khc mu v r rng trnh nhm ln. - Test led: Cho ngun vo( D nhin led n bi trc vn nhp nhy). Rt 1 u in tr ni vi chn P2.0 ca VK cm xung t thy led 7 thanh sng n A,cm li in tr v v tr c. Tng t test 6 thanh cn li. Thanh no khng sng th kim tra li xem cm dy tip xc cha. Vn khng sng th led hng thay led khc vo. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 76 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 4.2) Nguyn l hot ng: Khi cm ngun vo mch tt c cc chn ca cc cng IO ca VK l 5V( Nu cng 0 khng lp in tr treo th s l 0V). Nhn s mch khng c chnh lch in p nn khng c n no sng. Chng ta mun sng thanh no ch vic a ra in p 0V chn vi iu khin ni vi thanh . Thanh hin Thanh tt Gi tr(P2) hin th s 1: B,C cc thanh cn li 1111 1001 hin th s 2: A,B,D,E,G cc thanh cn li 1010 0100 . hin th s 8: Tt c cc thanh khng thanh no 1000 0000 gfe dcba Bt th 8 P2.7 khng dng. Ngoi ra led 7 thanh cn c th hin th 1 s ch hin th ch B: Ging s 8 Hin th ch A: A,B,C,E,F,G D 1000 1000 4.3) Lp trnh : Cch 1: Lp trnh d hiu khng cn phi tnh ton nhng phi vit v copy, past v sa nhu. Code nh sau: #include <AT89X52.H> /* Khai bao cac bien bit gan voi chan vi dieu khien*/ sbit ThanhA = P2^0; sbit ThanhB = P2^1; sbit ThanhC = P3^5; sbit ThanhD = P3^4; sbit ThanhE = P3^3; sbit ThanhF = P2^2; sbit ThanhG = P2^3; /* Khai bao bien */ long n;// Cho vong for
/* Khai bao ham */
/* Ham tre */ void delay(long time) { for(n=0; n<time; n++) { ; } DKS_GROUP Microcontroller Training Center
DKS_GROUP - 77 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 } /* Ham tat tat ca cac thanh */ void tat(void) { ThanhA =1; ThanhB =1; ThanhC =1; ThanhD =1; ThanhE =1; ThanhF =1; ThanhG =1; }
DKS_GROUP - 81 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 delay(20000); chuP(); delay(20000); chuR(); delay(20000); chuS(); delay(20000); chuU(); delay(20000); chuY(); delay(20000); } }
Cch 2: Cc bn vit 1 chng trnh n gin ri dng cng c Debug xem s hex ri vit vo rt ngn gn. V d: Hm hin th s 1: void so1(void) { tat(); P2=0xF5; } Cc bn debug cho hin th cng P2 ln. du tch cc n tt(1) , b du tch cc n cn bt(0). Ri c gi tr hex nh ti hng dn bi trc. 4.4) Np chp: hng dn. Nu cc bn gp phi vn ca mch np. Thng l: + Treo chip Master: Rt ngun mch np ra, i cht ri cm li. + Khng nhn cng COM. Cc bn nhp chut phi vo Mycomputer, chn Properties Device manage. Nhn vo Scan for hardware change my tnh nhn li cng COM. Ri khi ng li my. + L do khc cc bn th kim tra phn cng mch np. + Vn khng c ti chu. T bi sau s khng c phn ny. 4.5) Kt qu: Nhn vo hm main cc bn thy chng trnh s hin th s 1 led 7 thanh, tr 1 khong thi gian, ri nhy sang s 2 n s 9 , ri n ch. Nu cc bn khng c hm tr th led s hin th ra sao? Led s hin s 8. V tt c 8 led c bt tt qu nhanh (ch cn >24 Hz) do hin tng lu nh mt cc bn s nhn thy tt c cc led sng ch khng hin s. 4.6) Kinh nghim : DKS_GROUP Microcontroller Training Center
DKS_GROUP - 82 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Sau khi thc hin theo cc rt gn nh vit hm s 1 trn cc bn p dng cu trc lnh switch case vit li chng trnh th chng trnh s rt gn.
void Hienthiled(unsigned char x) // Co 1 bien dau vao de xac dinh xem la hien thi so nao { switch(x) { case 1: { tat(); P2=0xF5; break;} // So 1 case 2: { tat(); P2=0xFF; break;}// So 2
case 9: { tat(); P2=0xFF; break;}// So 9 case 10: { tat(); P2=0xFF; break;}// Chu A . case 20: { tat(); P2=0xFF; break; }// Chu Y } } Cc gi tr trn ch l v d cc bn rt gn v t copy vo. Vi hm hin th led cc bn vit hin cc s v cc ch gi hm main ch cn nh sau: void main (void) { while(1) { for(n=0; n<20; n++) { Hienthiled(n); delay(20000); } } }
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 83 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Phn 1: c 1 phm. Nhim v: m s ln phm bm gii hn t 0 n 9 hin th ra led 7 thanh. 5.1) Lp mch nh sau:
+ C3 10uF/25V C2 33p C1 33p X1 19 X2 18 RESET 9 P2.0 21 V C C 4 0 VSS 20 P2.1 22 P1.0 1 P1.1 2 P2.2 23 P2.3 24 P2.4 25 P2.5 26 P2.6 27 U1 8051 R1 10K 5VDC 12Mhz 1 2 SW1 C4 CAP NP D12 LED R29 1K a b dot c V+ d e f g V+ 1 2 3 4 5 6 7 8 9 10 A B C DOT D E F G D11 LED ANOT Chung
- Mch bi 5 led 7 thanh gi nguyn. Lp mch: qu n gin. Bc 1: Lp 1 nt bm u trn mch. Bc 2: Dng dy cu 1 chn nt bm vi P1.0( Thay th led bi 4). Bc 3: Dng dy cu 1 chn nt bm xung t. Bc 4: Lp 1 t 104 gia 2 chn nt bm. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 84 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Bc 5: Lp tr vo chn P1.0 v led t +5V vo u tr cn li(Ch ng chiu led. - Test nt bm: Cm ngun vo, nhn nt n sng. Nh nt n tt. 5.2) Nguyn l hot ng: - Phn nt bm: (khi khng c t 104) ban u chn P1.0 mc cao +5V, nu bm nt 2 u nt bm thng vi nhau. Chn P1.0 thng vi GND. Led sng do c chnh p. Chn P1.0 thng t. Nu c t 104 t in c np in, khi bm nt t in s phng in t cc dng sang cc m lm chn P1.0 thng vi GND nhng lu v 0 V hn 1 cht( tr cng). - Khi bm nt theo nguyn l thi bm 1 ci l xung 0 lin, nhng do tip im c kh ca nt bm nn khi bm nt n s c 1 s xung in ch khng phi l bm ci l n xung 0 lun. T 104 gim nhiu . T 104 cng c th b i khng lp v ta c th kh nhiu bng phn mm. 5.3) Lp trnh: Code bi 5 gi nguyn: son thm mt s hm nh sau hm c phm bm. Hm c s ln n phm. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 85 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 86 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Hm hin th s tng ng.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 87 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Hm main c sa li nh sau:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 88 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
y l code cc hm b sung: unsigned char i=0;// Khai bao them bien toan cuc de dem so lan an nut unsigned char Doccongtac(void)// Ham tra lai gia tri unsigned char {
if( P1_0 ==0)// Neu nut duoc bam { delay(300);// Tre 1 khoang thoi gian qua xung nhieu while(P1_0 ==0) // Cho toi khi nha tay khoi nut bam { ;//Khong lam gi } i++;// Nha ty thi tang i if( i ==10) i=0;// Quay vong gia tri cua i } return i; }
void hienthisolannhanphim(unsigned char solan) { switch(solan)// Tuy vao so lan { case 0: { so0(); break; }// Neu so lan =0 hien so 0 thoat khoi switch case 1: { so1(); break; }// Neu so lan =1 hien so 1 thoat khoi switch case 2: { so2(); break; }// .... case 3: { so3(); break; } case 4: { so4(); break; } case 5: { so5(); break; } case 6: { so6(); break; } case 7: { so7(); break; } case 8: { so8(); break; } case 9: { so9(); break; }// Neu so lan =9 hien so 9 thoat khoi switch } }
void main(void) { while(1) { Doccongtac(); // Goi ham doc so lan nhan phim hienthisolannhanphim(i);// Hien thi so lan nhan phim, bien i la bien toan cuc } } DKS_GROUP Microcontroller Training Center
DKS_GROUP - 89 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 5.4) Kinh nghim: - Xem cc gi tr ca bin trong Debug. Sau khi vit xong chng trnh v bin dch chng trnh cc bn vo cng c Debug ca Keil C. c mn hnh sau: Chn View Watch& Call Stack Window.
c nh sau: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 90 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 91 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Trong khung pha di chnh l Watch& Call Stack Window. Chuyn sang tab watch#1, nhp chut vo ch F2 to edit,nhn F2 v g vo tn bin cn quan st.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 92 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Phn 1 kt thc.
Chng ta quan st bin I, nn g I vo v c hnh nh trn. Cc bn nhn F11 chy m phng. Mi ln n phm, cho chn P1.0 xung 0 ri ln 1, tng ng vi n phm v nh phm I s tng 1 nh sau: (Khi n phm phi ch hm delay(300) v hm while(P1_0 ==0) xong I mi tng v mnh lp trnh th m.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 93 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Gi tr ca I hin th theo s hex.
Phn 2: c ma trn phm. Nhim v: Qut bn phm 16 phm bm(4x4), xem phm no c bm, cc phm c nh s t 0 n 15 ri hin th gi tr ra led 7 thanh. 5.1) Lp mch theo s sau: 5V 5V C1 33p C2 33p + C3 10uF/25V R1 10K 5VDC 5V 5V 5V EA/VP 31 X1 19 X2 18 RESET 9 P2.0 21 P2.1 22 P2.2 23 P2.3 24 P2.4 25 P2.5 26 P2.6 27 V C C 4 0 VSS 20 P3.1 11 P3.2 12 P3.3 13 P3.4 14 P3.5 15 P3.6 16 P3.7 17 P3.0 10 U3 8051 R3 10K 12Mhz C B A E D G F P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 5V LED 7 THANH HANG 2 HANG 1 COT 4 COT 3 COT 2 COT 1 HANG 4 HANG 3 P3.2 R21 R R22 R R23 R R24 R R25 R R26 10Kx8 R27 R R28 R P3.0 P3.1 1 2 PHIM 1 1 2 PHIM 2 1 2 PHIM 3 1 2 PHIM 4 1 2 PHIM 5 P3.3 1 2 PHIM 6 P3.4 1 2 PHIM 7 1 2 PHIM 8 1 2 PHIM 9 1 2 PHIM 10 1 2 PHIM 11 1 2 PHIM 12 P3.5 1 2 PHIM 13 P3.6 1 2 PHIM 14 1 2 PHIM 15 1 2 PHIM 16 P3.7
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 94 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 - Lp mch:mch bi led 7 thanh gi nguyn v vi bn phm cc bn hn c ch cn cu vo cng 3 ng th t chn v cu chn 5V ln +5V. 5.2) Nguyn l qut phm: - V sao mch phm u theo ma trn. Nu c t 16 nt bm bnh thng phi dng 16 chn vi iu khin. Nu u theo dng ma trn th ch mt 8 chn ta cng c th c c 16 phm bm. - C 2 cch qut phm theo ct v theo hng, ti chn cch qut theo hng, qut theo ct cc bn c th lm tng t. - Bc 1 : Ta a chn P3.0 ni vi Hng 1 xung 0V.Ri ta kim tra gi tr logic ca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 1 c bm th Ct 1_ P3.4 s c gi tr bng 0. Nu phm 2 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 3 c bm th Ct 3_ P3.6 s c gi tr bng 0. Nu phm 4 c bm th Ct 4_ P3.7 s c gi tr bng 0. Ta cn c vo xc nh xem phm no c bm. - Bc 2 : Ta a chn P3.1 ni vi Hng 2 xung 0V.Ri ta kim tra gi tr logic ca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 5 c bm th Ct 1_ P3.4 s c gi tr bng 0. Nu phm 6 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 7 c bm th Ct 3_ P3.6 s c gi tr bng 0. Nu phm 8 c bm th Ct 4_ P3.7 s c gi tr bng 0. Ta cn c vo xc nh xem phm no c bm. - Bc 3 : Ta a chn P3.2 ni vi Hng 3 xung 0V.Ri ta kim tra gi tr logic ca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 9 c bm th Ct 1_ P3.4 s c gi tr bng 0. Nu phm 10 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 11 c bm th Ct 3_ P3.6 s c gi tr bng 0. Nu phm 12 c bm th Ct 4_ P3.7 s c gi tr bng 0. Ta cn c vo xc nh xem phm no c bm. - Bc 4 : Ta a chn P3.3 ni vi Hng 1 xung 0V.Ri ta kim tra gi tr logic ca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 13 c bm th Ct 1_ P3.4 s c gi tr bng 0. Nu phm 14 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 15 c bm th Ct 3_ P3.6 s c gi tr bng 0. Nu phm 16 c bm th Ct 4_ P3.7 s c gi tr bng 0. Ta cn c vo xc nh xem phm no c bm. Ta s dng cu lnh if kim tra. 5.3) Lp trnh: - To 1 project mi, copy phn hin th cc s 09 cc ch AY ca bi trc. Ri b sung cc hm sau. Hm hin th phm n. void phim_duoc_an(unsigned char phim) { DKS_GROUP Microcontroller Training Center
DKS_GROUP - 95 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 switch(phim)// Tuy vao so lan { case 0: { so0(); break; }// Neu so lan =0 hien so 0 thoat khoi switch case 1: { so1(); break; }// Neu so lan =1 hien so 1 thoat khoi switch case 2: { so2(); break; }// .... case 3: { so3(); break; } case 4: { so4(); break; } case 5: { so5(); break; } case 6: { so6(); break; } case 7: { so7(); break; } case 8: { so8(); break; } case 9: { so9(); break; }// Neu so lan =9 hien so 9 thoat khoi switch } } Hm qut phm: /*Khai bao 1 mang 4 phan tu nhu sau: quetphim[4]={P0=0xFE,0xFD,0xFB,0xF7} De dua 0 ra lan luot cac hang phim, khi do neu nut nao duoc an thi chan vi dieu khien se xuong 0.Chu y fai kiem tra phim khoang 100 lan.*/ unsigned char quetphim[4]={0xFE,0xFD,0xFB,0xF7}; // Dinh nghia so lan quet phim #define solanquetphim 100 // Cac ban co the thay doi gia tri nay cho phu hop unsigned char quetbanphim(void) { unsigned char giatribanphim;// Bien de luu gia tri phim an tu 0 den 15 ma hoa 16 phim unsigned char x,y; //Quet 4 hang phim for(x=0; x<4;x++) { P3=quetphim[x];// Dua lan luot cac hang xuong 0 for(y=0;y<solanquetphim;y++)// Kiem tra solanquetphim lan { if(P3_4==0) giatribanphim=0+4*x;// Gia tri phim tuong ung if(P3_5==0) giatribanphim=1+4*x;// Tuy thuoc vao hang x if(P3_6==0) giatribanphim=2+4*x;// La may ma gia tri cua if(P3_7==0) giatribanphim=3+4*x;// gia tri ban phim tuong ung. } } return(giatribanphim); } Hm Main. void main(void) { unsigned char i; DKS_GROUP Microcontroller Training Center
DKS_GROUP - 96 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 while(1) { i=quetbanphim(); phim_duoc_an(i); } } Thm cu lnh #define vo u chng trnh:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 97 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Vit hm phm c n:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 98 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Vit hm qut bn phm v hm main.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 99 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
5.4) Kinh nghim: - Cc bn chy Debug xem s thay i gi tr ca bin gi tr bn phm. - Cc bn mi dng 10 phm t 09 . Bi tp cho cc bn l dng phm 16 chn mode: nhn phm 16 th thay i ch hin s thnh hin ch v phm 1 tng ng ch A,phm 2 tng ng ch B v c nh vy. - Cc bn th thay i gi tr #define solanquetphim 100 xem sao. - ng lo lng v cc warning. Cc warning n cnh bo l bn c khai bo 1 s hm m bn khng dng n. Nh hm delay(); hm ch A, vv.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 100 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Nhim v: iu khin hin th LCD 16x2 dng ch www.EmbestDKS.com chy trn mn hnh LCD. C 16 chn nh sau: Chn K hiu I/O M t 1 V SS - t 2 V CC - Dng ngun 5v 3 V EE - Cp ngun iu khin phn 4 RS I RS = 0 chn thanh ghi lnh. RS = 1 chn thanh d liu 5 R/W I R/W = 1 c d liu. R/W = 0 ghi 6 E I/O Cho php 7 DB0 I/O Cc bt d liu 8 DB1 I/O Cc bt d liu 9 DB2 I/O Cc bt d liu 10 DB3 I/O Cc bt d liu 11 DB4 I/O Cc bt d liu 12 DB5 I/O Cc bt d liu 13 DB6 I/O Cc bt d liu 14 DB7 I/O Cc bt d liu Chn 15 v chn 16: ghi l A v K. N l ant v katt ca 1 con led dng sng LCD trong bng ti. Chng ta khng s dng. Nu cc bn mun dng th ni chn A qua 1 in tr t 1K n 5K ln dng 5V, chn K xung t n s sng. 6.1) Lp mch theo s sau: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 102 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
- Hng dn: Cm lun 8 bit d liu ca LCD t D0 n D7 vo cng 2 ca 8051 m khng cn cu dy. tha 6 chn ra ngoi l: EN,RW,RS,Ve, Vcc, GND ra ngoi. Ri dng dy cu chn 1 xung GND, chn 2 ln +5V, chn 3 vo chn gia ca bin tr tinh 5K, 2 chn cn li ca bin tr tinh 1 chn cu ln +5V,1 chn cu xung 0V. 6.2) Nguyn l hot ng ca LCD: - Chn V CC , V SS v V EE : Cc chn V CC , V SS v V EE : Cp dng ngun - 5v v t tng ng th V EE c dng iu khin tng phn ca LCD. - Chn chn thanh ghi RS (Register Select): C hai thanh ghi trong LCD, chn RS(Register Select) c dng chn thanh ghi, nh sau: Nu RS = 0 th thanh ghi m lnh c chn cho php ngi dng gi mt lnh chng hn nh xo mn hnh, a con tr v u dng v.v Nu RS = 1 th thanh ghi d liu c chn cho php ngi dng gi d liu cn hin th trn LCD. - Chn c/ ghi (R/W): u vo c/ ghi cho php ngi dng ghi thng tin ln LCD khi R/W = 0 hoc c thng tin t n khi R/W = 1. - Chn cho php E (Enable): Chn cho php E c s dng bi LCD cht d liu ca n. Khi d liu c cp n chn d liu th mt xung mc cao xung thp phi c p n chn ny LCD cht d liu trn cc chn d liu. Xung ny phi rng ti thiu l 450ns. - Chn D0 - D7: y l 8 chn d liu 8 bt, c dng gi thng tin ln LCD hoc c ni dung ca cc thanh ghi trong LCD. hin th cc ch ci v cc con s, chng ta gi cc m ASCII ca cc ch ci t A n Z, a n f v cc con s t 0 - 9 n cc chn ny khi bt RS = 1. Cng c cc m lnh m c th c gi n LCD xo mn hnh hoc a con tr v u dng hoc nhp nhy con tr. - Ch :Chng ta cng s dng RS = 0 kim tra bt c bn xem LCD c sn sng nhn thng tin. C bn l bt D7 v c th c c khi R/W = 1 v RS = 0 nh sau: Nu R/W = 1, RS = 0 khi D7 = 1 (c bn 1) th LCD bn bi cc cng vic bn trong v s khng nhn bt k thng tin mi no. Khi D7 = 0 th LCD sn sng nhn thng tin mi. Lu chng ta nn kim tra c bn trc khi ghi bt k d liu no ln LCD. - Sau y l bng m lnh ca LCD:
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 103 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 M (Hex) Lnh n thanh ghi ca LCD 1 Xo mn hnh hin th 2 Tr v u dng 4 Gim con tr (dch con tr sang tri) 6 Tng con tr (dch con tr sang phi) 5 Dch hin th sang phi 7 Dch hin th sang tri 8 Tt con tr, tt hin th A Tt hin th, bt con tr C Bt hin th, tt con tr E Bt hin th, nhp nhy con tr F Tt con tr, nhp nhy con tr 10 Dch v tr con tr sang tri 14 Dch v tr con tr sang phi 18 Dch ton b hin th sang tri 1C Dch ton b hin th sang phi 80 p con tr v u dng th nht C0 p con tr v u dng th hai 38 Hai dng v ma trn 5 7
- iu khin LCD qua cc bc sau: Bc 0 : Chun b phn cng. Dng tuc vt hay ci g bn c xoay bin tr 5 K iu chnh tng phn ca LCD. Xoay cho n khi cc vung(cc im nh) ca LCD hin ln th xoay ngc bin tr li 1 cht. Bc 1 : Khi to cho LCD. Bc 2 : Gn cc gi tr cho cc bit iu khin cc chn RS,RW,EN cho ph hp vi cc ch : Hin th k t ln LCD hay Thc hin 1 lnh ca LCD. Bc 3: Xut byte d liu ra cng iu khin 8 bit d liu ca LCD. Bc 4: Kim tra c bn xem LCD sn sng nhn d liu mi cha. Bc 5: Quay vng li bc 1. 6.3) Lp trnh: - c th lp trnh cho LCD ta thm vo th vin string.h ca trnh bin dch bng cu lnh: #include <string.h> - Khai bo cc chn ca LCD gn vi cc cng: /* RS chon thanh ghi =0 ghi lenh DKS_GROUP Microcontroller Training Center
DKS_GROUP - 104 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 =1 ghi du lieu RW doc ghi =0 ghi =1 doc E cho fep chot du lieu xung cao xuong thap toi thieu 450 ns. Bit co ban D7 khi RS=0 RW=1 neu D7=1 LCD ban D7=0 LCD san sang. */ sfr LCDdata = 0xA0;// Cong 2 , 8 bit du lieu P0 co dia chi 0x80, P1 0x90 , P2 0xA0 sbit BF = 0xA7; // Co ban bit 7 sbit RS = P3^5; sbit RW = P3^4; sbit EN = P3^3;
- Vit 1 s hm iu khin LCD nh sau: * Hm kim tra LCD c bn hay khng: void wait(void) { long n = 0; EN=1;// Dua chan cho fep len cao RS=0;// Chon thanh ghi lenh RW=1;// Doc tu LCD LCDdata=0xFF;// Gia tri 0xFF while(BF){n++; if(n>100) break;}// Kiem tra co ban // Neu ban dem n den 100 roi thoat khoi while EN=0;// Dua xung cao xuong thap de chot RW=0;// Doc tu LCD } * Hm iu khin LCD thc hin 1 lnh: void LCDcontrol(unsigned char x) { EN=1;// Dua chan cho fep len cao RS=0;// Chon thanh ghi lenh RW=0;// Ghi len LCD LCDdata=x;// Gia tri x EN=0;// Xung cao xuong thap wait();// Doi LCD san sang } Hm c 1 bin u vo l cc gi tr trong bng m lnh ca LCD. * Hm khi to LCD: void LCDinit(void) { DKS_GROUP Microcontroller Training Center
DKS_GROUP - 105 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 LCDcontrol(0x30);//Che do 8 bit. LCDcontrol(0x30); LCDcontrol(0x30); LCDcontrol(0x38);// 2 dong va ma tran 5x7 LCDcontrol(0x0C);// Bat con tro LCDcontrol(0x06);// Tang con tro xang fai LCDcontrol(0x01);// Xoa man hinh } * Hm lnh cho LCD hin th 1 k t : void LCDwrite(unsigned char c) { EN=1;// Cho fep muc cao RS=1;// Ghi du lieu RW=0;// Ghi len LCD LCDdata=c;// Gia tri C EN=0;// Xung cao xuong thap wait();// Cho } Hm c 1 bin u vo l m ca k t trong bng ASCII. * Hm lnh cho LCD hin th 1 xu k t ( dng ch): void LCDputs(unsigned char *s,unsigned char row) { unsigned char len; if(row==1) LCDcontrol(0x80);// Ep con tro ve dau dong 1 else LCDcontrol(0xC0);// Ep con tro ve dau dong 2 len=strlen(s);// Lay do dai bien duoc tro boi con tro while(len!=0)// Khi do dai van con { LCDwrite(*s);// Ghi ra LCD gia tri duoc tro boi con tro s++;// Tang con tro len--;// Tru do dai } } Hm c hai bin u vo l : xu k t cn hin th v dng cn hin th xu (1 hoc 2). *s l con tr, tr ti bin s 6.3.1) Con tr l g? B nh ca VK cc bn tng tng nh 1 ci t nhiu ngn. Khi khai bo 1 bin, v d bin kiu unsigned char i; th vk lu bin I vo 1 ngn trong t_ 1 nh trong b nh, d nhin xc nh cc ngn t ngi ta nh s cho tng ngn, cn vk cp cho cc nh trong b nh 1 a ch xc nh nh .V d tip: I c gi tr l 100, th ni dung ca nh DKS_GROUP Microcontroller Training Center
DKS_GROUP - 106 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 lu bin I l 100,i=100, cn con tr tr n I c gi tr l a ch ca nh cha bin I . 6.3.2) Cch s dng con tr: khai bo con tr c thm du * trc tn bin. *I l bin kiu con tr, tr ti bin i(unsigned char). I mang gi tr t 0 n 255, *I mang i ch ca nh cha i. * Hm hin th 1 s integer: void LCDwritei(int d) {
unsigned char i,j,k,l; i=d%10;// Chia lay phan du, duoc chu so hang don vi d=d/10;// Chia lay phan nguyen, duoc nhung chu so da bo hang don vi j=d%10;// Duoc chu so hang chuc d=d/10;// Nhung chu so da bo hang don vi va hang chuc k=d%10;// Duoc hang tram l=d/10;// Duoc hang nghin LCDwrite(48+l);// Hien thi ki tu trong bang ascii LCDwrite(48+k);// Trong bang ascii so 0 co co so thu tu la 48 LCDwrite(48+j); LCDwrite(48+i);
} Hm c 1 bin u vo l s int ln n hng nghn cn hin th. * Hm tr: void delay(long time) { long n; for(n=0;n<time;n++) ; } * Hm main: void main(void) { char x; LCDinit(); LCDputs("8052 MCU",1); delay(30000); while(1) { for(x=0;x<16;x++)// Dich 16 lan. { LCDputs("8052 MCU",1); LCDcontrol(0x18);// Dich hien thi sang trai. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 107 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 delay(5000);// Tre } } }
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 108 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Nhim v: To ra xung c rng thay i, 10 cp, tn s 1Khz, iu khin tc ng c (10 cp tc ). 7.1) Lp mch theo s sau: + C3 10uF/25V C2 33p C1 33p R1 10K 5VDC 1 2 SW1 1 2 SW2 X1 19 X2 18 RESET 9 P2.0 21 V C C 4 0 VSS 20 EA 31 P1.0 1 P1.1 2 U1 8051 12Mhz 3 B 2
C 1
E C828 1 2 A - + DC Motor 12V R2 10K
- Hng dn: Chn ca C828 l ECB, nu cm xui transitor nhn vo mt c ch, tnh t bn tri sang. 7.2) Lp trnh: - Cch to xung c rng thay i bng VK. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 109 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 + Cch 1: Nh cc bn iu khin nhp nhy 1 con led, l to ra 1 xung 1 chn ca vi iu khin, nhng xung c rng c nh, tn s ln, cch bn c th iu chnh li hm delay tn s ca n ng 1 Khz. Tuy nhin v l dng hm delay nn trong thi gian c xung ln 1(5V) v thi gian khng c xung(0V) vi iu khin khng lm g c, hn na to xung bng vic delay m cc bn c nhu cu cn 2 b pht xung 2 knh, c cng tn s m khc rng xung th tr nn rt kh khn. Cho nn chng ta dng b nh thi Timer ca vi iu khin trong trng hp ny rt tin. + Cch 2: Dng ngt Timer ca b vi iu khin.
Trc ht nhc li v ngt ca vi iu khin: + Ngt l g ? tr li cu hi ny ti xin trch an v ngt trong bi 2 v d cho ngt timer: Timer
* ** * ** * **
Mt chng trnh chnh khng c ngt th chy lin tc, cn chng trnh c ngt th c khi no iu kin ngt c m bo th con tr s nhy sang hm ngt thc hin xong hm ngt li quay v ng ch c thc hin tip chng trnh chnh. Ti c 1 v d nh sau: Bn ang n cm , c ting in thoi , bn t bt cm ra nghe in thoi , nghe xong li quay v bng bt cm ln n tip. Th qu trnh n cm ca bn l chng trnh chnh,c in thoi gi n l iu kin ngt, bn ra nghe in thoi l thc hin Main Program Main ISR Main ISR Main ISR Main Program excution without interrut Program excution with interrupt. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 110 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 chng trnh ngt(Interrupt Service Rountine),quay v n cm tip l tip tc thc hin chng trnh chnh. Ngt i vi ngi mi hc vi iu khin l rt kh hiu, v a s cc ti liu u khng gii thch ngt lm g. C nhiu loi ngt khc nhau nhng tt c u c chung 1 c im, ngt dng cho mc ch a nhim. a tc l nhiu, nhim tc l nhim v. Thc hin nhiu nhim v . Cc bn nhn vo tin trnh ca hm main vi chng trnh c ngt : Chng trnh chnh ang chy, ngt xy ra, thc hin hm ngt ri quay li chng trnh chnh. Chng trnh trong vi iu khin khc vi v d n cm nghe in thoi ca ti ch, thi gian thc hin hm chnh l rt ln,thi gian thc hin hm ngt l rt nh, cho nn thi gian thc thi hm ngt khng nh hng nhiu lm n chc nng hm chnh. Nh vy trong hm ngt cc bn lm 1 vic, trong hm chnh cc bn lm 1 vic nh vy coi nh cc bn lm c 2 vic(a nhim) trong 1 quang thi gian tng i ngn c mS, ch thc ra ti 1 thi im vi iu khin ch thc thi 1 lnh. V d : Bn th ngh xem lm th no va iu ch xung PWM iu chnh tc ng c , va c cc cm bin u vo m tc ng c ph thuc u vo cm bin. Vy ngt l 1 iu kin no xy ra ngu nhin m vi iu khin c th bit do phn cng ca vi iu khin, ri ta cn c vo lp trnh. * V d: Vi ngt b nh thi timer, hay b m counter l khi trn b m th phn cng ca vi iu khin s bo c ngt xy ra v nhy n chng trnh phc v ngt( ISR_ Interrupt Sevice Rountine) 1 cch t ng. Vi ngt ngoi, chn P3.2 chng hn, nu ta khai bo trc chn s dng chn P3.2 s dng cho ngt ngoi ch khng phi s dng cho mc ch IO th c khi c 1 xung xut hin t mch ngoi vi truyn vo chn P3.2 th phn cng ca vi iu khin nhn ra v chuyn ti chng trnh phc v ngt. Vi ngt cng ni tip th c kh thu song 1 k t hay truyn song 1 k t cng ni tip, nu ta c s dng ngt truyn d liu ni tip th vi iu khin s nhy ti chng trnh phc v ngt. - Hm ngt: Cu trc: Void Tnhm(void) interrupt ngunngt using bngthanhghi { // Chuong trinh phuc vu ngat o day } Ch v hm ngt: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 111 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 + Hm ngt khng c php tr li gi tr hay truyn bin vo hm. + Tn hm bt k. + interrupt l t kha phn bit hm ngt vi hm thng. + Ngun ngt t 0 ti 5 theo bng vector ngt. + Bng thanh ghi trn ram chn t 0 n 3. Ty theo bn vit hm ngt cho ngun no bn chn ngun ngt t bng sau:
Ngt do C a ch vector Reset h thng RST 0000H Ngt ngoi 0 IE0 0003H B nh thi 0 TF0 000BH Ngt ngoi 1 IE1 0013H B nh thi 1 TF1 001BH Port ni tip RI hoc TI 0023H B nh thi 2 TF2 hoc EXF2 002BH Ring ngt Reset khng tnh, bt u m t 0 v t ngt ngoi 0. V d: ti cn vit hm ngt cho b nh thi timer 1 hm ngt s l. void timer1_isr(void) interrupt 3 using 0 { // Lenh can thuc hien. } - V using 0: C 4 bng thanh ghi bn c th chn cho chng trnh phc v ngt, ci ny cng khng quan trng. Trong hm ngt cc bn c th b i t using 0, khi vi iu khin s t sp xp l dng bng thanh ghi no. - Hm ngt khc hm bnh thng ch no. Hm bnh thng v d hm delay, c khi bn gi n th n s c thc hin, c ngha l n c v tr c nh trong tin trnh hm main, c ngha l bn bit n xy ra khi no. Cn hm ngt th khng c tin trnh c nh, iu kin ngt c th xy ra bt k lc no trong tin trnh hm main v c khi no c iu kin ngt th hm ngt s c gi t ng. - s dng ngt ta phi lm cc cng vic sau: 1) Khi to ngt: dng ngt no th cho php ngt hot ng bng cch gn gi tr tng ng cho thanh ghi cho php ngt IE( Interrupt Enable): EA ET2 ES ET1 EX1 EX0 ET0 iu khin cc ngun ngt IE (0: khng cho php; 1: cho php) IE.7 EA Cho php/ khng cho php ton cc IE.6 --- Khng s dng IE.5 ET2 Cho php ngt do b nh thi 2 DKS_GROUP Microcontroller Training Center
DKS_GROUP - 112 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 IE.4 ES Cho php ngt do port ni tip IE.3 ET1 Cho php ngt cho b nh thi 1 IE.2 EX1 Cho php ngt t bn ngoi (ngt ngoi 1) IE.1 EX0 Cho php ngt t bn ngoi (ngt ngoi 0) IE.0 ET0 Cho php ngt do b nh thi 0 IE l thanh ghi c th x l tng bt. V d : bn mun cho php ngt timer 1 bn dng lnh: ET1=1; Khng cho php na bn dng lnh : ET1=0; Hoc bn c th dng lnh IE= 0x08; th bit 3 ca thanh ghi IE tc(IE) s ln 1. Nhng cch th nht tin hn. 2) Cu hnh cho ngt: Trong 1 ngt n li c nhiu ch v d: vi ngt timer. Bn phi cu hnh cho n chy ch no, ch timer hay counter, ch 16 bit, hay 8 bit, bng cch gn cc gi tr tng ng cho thanh ghi TMOD( Timer MODe). TMOD Chn model cho b nh thi 1 7 GATE Bt iu khin cng. Khi c set ln 1, b nh thi ch hot ng trong khi INT1 mc cao 6 C/T Bt chn chc nng m hoc nh thi: 1= m s kin 0= nh thi trong mt khong thi gian 5 M1 Bit chn ch th nht 4 M0 Bit chn ch th 2 M1 M0 Ch
Chc nng 0 0 0 Ch nh thi 13 bit 0 1 1 Ch nh thi 16 bit 1 0 2 Ch t ng np li 8 bit 1 1 3 Ch nh thi chia x 3 GATE Bit iu khin cng cho b nh thi 0 2 C/T Bit chn chc nng m / nh thi cho b nh thi 0 1 M1 Bit chn ch th nht cho b nh thi 0 0 M0 Bit chn ch th 2 cho b nh thi 0 V d ti cu hnh cho b nh thi 1 ch timer,vi b m 8 bit t ng np li(auto reload) dng lnh sau: TMOD=0x20. Cc bn ng lo v vic phi nh bng thanh ghi ny, cc bn khng phi nh ni trng ra nh vy, chuyn sang phn lp trnh cc bn s c hng dn lm th no khng phi nh, nhng ch lp trnh vi C mi lm c cn lp trnh Asem th bt buc phi nh . 3)Bt u chng trnh c ngt: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 113 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 -Trc khi bt u cho chy chng trnh ta phi cho php ngt ton cc c xy ra bng cch gn EA(Enable All interrupt) bng 1, th ngt mi xy ra. -Thng th ngay vo u chng trnh(hm main) trc vng while(1) chng ta t cng vic khi to, cu hnh v cho php kim tra ngt. V d vi b nh thi timer ta gn cc gi tr ph hp cho thanh ghi TCON( Timer CONtrol). TCON iu khin b inh thi TCON.7 TF1 C trn ca b nh thi 1. C ny c set bi phn cng khi c trn, c xo bi phn mm, hoc bi phn cng khi b vi x l tr n trnh phc v ngt TCON.6 TR1 Bit iu khin hot ng ca b nh thi 1. Bit ny c set hoc xo bi phn mm iu khin b nh thi hot ng hay ngng TCON.5 TF0 C trn ca b nh thi 0 TCON.4 TR0 Bit iu khin hot ng ca b nh thi 0 TCON.3 IE1 C ngt bn ngoi 1 (kch khi cnh). C ny c set bi phn cng khi c cnh m (cung) xut hin trn chn INT1, c xo bi phn mm, hoc phn cng khi CPU tr n trnh phc v ngt TCON.2 IT1 C ngt bn ngoi 1 (kch khi cnh hoc mc). C ny c set hoc xo bi phn mm khi xy ra cnh m hoc mc thp ti chn ngt ngoi TCON.1 IE0 C ngt bn ngoi 0 (kch khi cnh) TCON.0 IT0 C ngt bn ngoi 0 ( kch khi cnh hoc mc) V d chy b nh thi timer 1 ta dng cu lnh: TR1=0; TR1(Timer Run 1). Cn bn no thch kh th:TCON=0xxx; Cn cc loi ngt khc qu trnh tng t, y l kha hc c bn ch lm vic vi ngt timer, trong kha nng cao s c cc ngt cn li, tuy nhin lm vic c vi ngt timer th cc ngt khc cc bn cng c th lm tng t, cc bn lm n ngt no th dng ti liu tra bng thanh ghi ca ngt . Ti liu ti s gi cng bi ny. - Quay tr li bi hc: DKS_GROUP Microcontroller Training Center
DKS_GROUP - 114 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Sau khi khi to song v cho ngt timer 1 chy th iu g xy ra? Khi bt u cho timer 1 chy th b m ca timer s m dao ng ca thch anh, c 12 dao ng ca thch anh(1 chu k my), b m ca timer 1 TL1(Timer Low1) s tng 1,c thn ni timer 1 m s chu k my. i vi ch 8 bt. TL1 l 1 thanh ghi 8 bt, l b m ca b nh thi r ri. N m c t 0, n 255. Nu n m n 256 th b m trn, TL1 quay vng li bng 0, v c ngt TF1(Timer Flag 1) t ng c gn ln 1(bng phn cng ca vi iu khin) nh 1 cng tc t ng bt, v ngt xy ra. Cn vi ch 16 bt, b m ca b nh thi cn 1 thanh ghi 8 bt na l TH1(Timer high 1), nu cu hnh cho timer 1 hot ng ch 16 bit th khi TL1 trn n s m sang TH1(TH1 s tng 1). Nh vy ta c th m: 2 16 chu k my( 2 thanh ghi 8+8=16 bt). Ch l khi b m trn ngt s xy ra. Nu ta cn m 256 chu k my th khi khi to ta cho TL1=0; , cn nu khng mun m 256 chu k my m ta ch cn m 100 thi ngt xy ra ri th ta fi lm nh sau: 256-100 = 156; v khi khi to ta gn : TL1=155; v m t 155 n 255 l 100 ln th ngt xy ra.
Vi yu cu ca bi. To xung tn s 1Khz Chu k = 1/10 3 = 0,001 giy= 1 mili giy=1000 uS= 1000 chu k my. Vi 10 cp tc , tc l bn phi to ra c xung 10%, 20%, 30%, 40%, , 90%, 100%. 1 xung nh sau:
5V 0V
T : Chu k 1000 miro giy. Khong thi gian xung ko di 5V l T1. Xung 10% tc l T1/ T= 10%=1/10. Xung 20% T2/T=2/10PWM(Thay i rng xung) By gi ti mi xin ni v phn 2. 7.3) Nguyn l hot ng: - Xung PWM: a ra m transitor, xung vi rng ln hn transitor s m lu hn ng c s quay nhanh hn,d nhin khng tuyn tnh. Khng c xung ng c s khng quay, c xung 100% ng c s quay max.Tuy nhin xung phi ln hn 1 mc no th mi khi ng cho ng c. DKS_GROUP Microcontroller Training Center
DKS_GROUP - 115 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Cc c tnh ny cc bn tham kho trong gio trnh v my in, kh c in, nu cc bn cn thng s chnh xc. c th thay i 10 cp tc vi chu k 1000uS, ta khi to cho ngt timer: 100 uS ngt 1 ln. Trong hm ngt kim tra xem ta cn cp xung bao nhiu % th ta s gn gi tr cho n. C th nh sau: * Hm khi to ngt. Dng ngt timer 0, 100 uS ngt 1 ln, dng ch 2 8 bit t ng np li ca timer (v mnh ch cn m n 100).TL0 np bng 156. i vi ch 2 khi trn b m TL0 s quay vng gi tr bng 0, nhng sau n li c np gi tr lu trong TH0(gi tr np li), do ta ch cn gn gi tr choTL0 v TH0 trong hm khi to, cn cc ch khc 16 bit, 2 timer counter 8 bit, khi trn b m TL0 khng c np li m ta phi t gn li gi tr cho n trong hm ngt. void khoitaotimer0(void)// Ham khoi tao { EA=0;// Cam ngat toan cuc TMOD=0x02;// Timer 0 che do 2 8 bit auto reload TH0=0x9B;// Gia tri nap lai 155 doi ra so hex TL0=0x9B;// Gia tri khoi tao 155 doi ra so hex ET0=1;// Cho phep ngat timer 0 EA=1;// Cho phep ngat toan cuc TR0=1;// Chay timer 0 bat dau dem so chu ki may } DKS_GROUP Microcontroller Training Center
DKS_GROUP - 116 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 117 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 * Hm ngt: unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10 unsigned char phantramxung;// Bien chua phan tram xung(0...10)
void timer0(void) interrupt 1 //Ngat timer 0 { TR0=0;// Dung chay timer 0 TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao day dem++; if(dem<phantramxung) P2_0=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra chan, xung 5V else P2_0=0;// Neu dem = phan tram xung if(dem==10) dem=0;// Neu dem du 10 thi gan lai bang 0 de bat dau chu ki moi TR0=1;// Cho chay timer } c th thay i rng xung th ta lu rng xung vo 1 bin, v hm ngt khng cho truyn bin vo ta khai bo bin l bin ton cc c th gn gi tr mi hm. 100 uS ngt 1 ln xc nh chu k 1000 uS ta cn m t 1 n 10 ta khai bo bin m. void timer0(void) interrupt 1 //Ngat timer 0 { TR0=0;// Dung chay timer 0 TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao day TH0=0xAB; TL0=0xAB; . TR0=1;// Cho chay timer } Cu trc hm ngt timer no cng phi theo, do ch 2 t ng np li nn k cn gn gi tr cho TH0 v TL0. V bin dem s m t 1 n 10 nu bng 10 kt thc 1 chu k 10*100 =1000 uS, ta gn li n bng 0 sang chu k mi. if(dem<phantramxung) P2_0=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra chan, xung 5V else P2_0=0;// Neu dem = phan tram xung Cu lnh ny kim tra nu m nh hn phantramxung th s a ra cng gi tr 1, bng hoc ln hn s a ra gi tr 0. Khi vo chng trnh chnh ta ch vic thay i gi tr bin phantramxung th rng xung s thay i. * Hm main: void main(void) DKS_GROUP Microcontroller Training Center
DKS_GROUP - 118 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 { khoitaotimer0(); while(1) { phantramxung=9; delaylong(20000); phantramxung=4; delaylong(20000); } }
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 119 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Gi s khi cc bn gn phantramxung=4; Th c mi 100uS ngt xy ra 1 ln, v kim tra bin m. Ln u dem=1 <4 nn gi tr P2_0 = 1 mc cao, ln th 2 , 200 uS, dem =2<4 P2_0 = 1 mc cao, ln th 3, 300uS, dem=3<4, P2_0=1 mc cao, ln th 4, 400uS, dem =4 <4 sai, P2_0=0, bt u xung mc thp, c xung t cao xung thp, dem = 5<4 sai , P2_0=0 mc thp, , dem =10 <4 sai P2_0 mc thp 1000 uS , 400uS cao, 600uS thp quay vng dem=0, ngt ln th 11, dem=1 < 4 , P2_0=1 mc cao, c xung thp ln cao. PWM 2 chn P2_0 v P3_5, cc bn khai bo thm 1 bin phantramxung2 v a thm dng lnh sau vo hm ngt.
if(dem<phantramxung) P3_5=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra chan, xung 5V else P3_5=0;// Neu dem = phan tram xung
Ch : Thc ra 1 chu k nh ta va lm khng chnh xc 100% l 1Khz, v ta cha tnh n di ca hm ngt,mi ln ngt 100uS, 10 ln l 1000uS , cn thi gian thc hin hm ngt na, nh vy l chu k ca ta ln hn 1000uS, tn s s <1Khz, nhng thc s sai s khng ng k. Nu cc bn mun chnh xc ti cng chiu lng cc bn. Cc bn chy debug, thch anh ng 12Mhz, quan sat dng sec xem hm ngt din ra trong bao nhiu chu k my, khi np gi tr cho TL0 v TH0 cc bn ly 155 tr i gi tr c ga tr a gn vo, nh vy a+thi gian thc hin hm ngt ng 100uS.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 120 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 121 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Ch vo list mode: Chn ch , ri quan st gi tr TMOD ri quay li in vo chng trnh. Ch : V cng quan trng cc bn ch c chy vi ng c loi nh, nu ng c loi to phi c mch iu khin ring khng l s chy chip. Nu khng c mch iu khin cc bn c th lm, c th mn ca ti, khng th chu kh chy m phng.
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 122 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 123 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
Nhim v: iu khin Led ma trn 8x8. Hin th dng ch chy MTC Chun b: Led ma trn 8x8
DKS_GROUP - 124 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Hang6 VCC C o t 3 Cot4 H a n g 1 H a n g 3 Hang4 Hang8 Cot7 H a n g 7 Cot3 Hang3 C2 33p C o t 2 Cot2 Hang1 H a n g 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 LED MATRIX 1 8x8 C o t 1 H a n g 5 C o t 5 10K H a n g 2 Cot1 Hang7 Cot5 C1 33p C o t 6 C o t 8 Hang5 R2 10K Hang2 U1 8051 29 30 40 2 0 31 19 18 9 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 PSEN ALE VCC G N D EA X1 X2 RST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD Cot6 H a n g 4 C o t 4 + C3 10uF R3 1 2 3 4 5 6 7 8 9 Cot8 Y1 12M C o t 7 H a n g 8
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 125 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 8.2) Nguyn l hot ng: Hang 1 D4 LED C o t 6 D4 LED D3 LED C o t 3 D6 LED D8 LED C o t 5 D8 LED D6 LED D5 LED C o t 4 Hang 3 D7 LED D5 LED D8 LED D4 LED D5 LED D2 LED D8 LED D7 LED D6 LED D5 LED Hang 7 D4 LED D2 LED D4 LED D6 LED D2 LED D3 LED D6 LED D5 LED D2 LED D7 LED D2 LED D8 LED Hang 5 D8 LED D8 LED D5 LED D8 LED D8 LED C o t 8 C o t 2 D2 LED D5 LED D6 LED D7 LED D2 LED D8 LED D8 LED D3 LED D8 LED D2 LED Hang 2 D4 LED D4 LED D8 LED D3 LED Hang 4 D3 LED D3 LED C o t 1 D8 LED D6 LED D4 LED D6 LED D7 LED D7 LED Hang 6 D8 LED D3 LED D7 LED D8 LED Hang 8 D7 LED C o t 7 D3 LED D5 LED
Mun cho led sng, cp in dng 5V vo hng, 0V vo ct, dng 10mA n 15 mA. V d: mun n led v tr 5x4 sng, ta a in p ct 4(P0_3) xung 0V, in p hng 5(P2_5) ln 5V. Hin th ch: thng k cc im sng thnh ch ri cho cc hng ct in p tng ng. C th dng cng c debug ly gi tr cng tng ng vi cc led sng. Ging nh qut bn phm, a in p 0V ra tng ct ni vi cng 0. Nh vy s c 8 gi tr: 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F phI a vo 1 mng 8 phn t, ri sau a vo 1 vng for tng dn 1 bin tng phn t mng cot[8]. Vi mi ln 1 chn cng 0 xung 0V ta dng cng 2 a ra 1 gi tr 8 bt iu khin trong 1 ct nhng n no sng. V d mun hng 1 v hng 3 sng th hng 1 v 3 c gi tr 5V cn cc hng khc 0V, ta c gi tr 8 bt sau: 0x05 ( 1010 000). DKS_GROUP Microcontroller Training Center
DKS_GROUP - 126 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 Ti mi thi im ch c mt s n trn 1 ct sng, nhng do ta qut 8 ct vi tn s nhanh, v mt c hin tng lu nh nn ta thy trong 1 thi im ta thy ton b k t. Vi 8 ct ln lt bng 0V ta phI a ra tng ng 8 gi tr 8 bit ra cng 2, do ta fI lu 8 gi tr vo 1 mng 8 k t_ kytu1[8], ta s vit cc k t trn 7 ct. mi k t s cch nhau 1 ct khng sng. Ta khai bo mng kytu1[9] c 9 phn t v phn t u tin c gi tr y ra cng 2 l 0x00 tt ton b ct . Qu trnh iu khin hin th nh sau: Ct 1, hng 1, ct 2 hng 2, , ct 8 , hng 8. lm ch chy: Thm 1 bin vo iu khin th t hin th hng. Hin 1 ch trn led nh trn a ra: Ct 1, hng 1, ct 2 hng 2, , ct 8 , hng 8. Mun ch dch chuyn sang trI ta hin th nh sau: Ct 1, hng 2, ct 2 hng 3, , ct 7, hng 8,ct 8 , hng 1 k t sau. Ct 1, hng 3, ct 2 hng 4, , ct 7 hng 1 k t sau,ct 8 , hng 2 k t sau. 8.3) Code: #include <REGX51.H>
/* Cot tu P0.0 den P0.7 Hang tu P2.0 den P2.7 De quet dua muc logic 0 lan luot ra cong 0 */ /* Ham tre */ void delay(long time) { long n; for(n=0; n<time; n++) { ; } }
unsigned char kytu1[9];// Mang 9 phan tu chua gia tri cac hang day ra cong 2 unsigned char k=0;// Bien xac dinh cac ky tu /* Ham nap gia tri hien thi cac ky tu vao mang kytu1 co 8 gia tri dua ra va 1 gia tri khong bat den nao de cac ky tu cach nhau 1 cot */ void mahoa(unsigned char x) { switch(x) { DKS_GROUP Microcontroller Training Center
DKS_GROUP - 127 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 // Dau trang case 0: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00; kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00; break; } // Chu M case 1: { kytu1[0]=0x00; kytu1[1]=0xFF; kytu1[2]=0x02; kytu1[3]=0x04; kytu1[4]=0x08; kytu1[5]=0x04; kytu1[6]=0x02; kytu1[7]=0xFF; kytu1[8]=0x00; break; } // Chu T case 2: { kytu1[0]=0x00; kytu1[1]=0x01; kytu1[2]=0x01; kytu1[3]=0x01; kytu1[4]=0xFF; kytu1[5]=0x01; kytu1[6]=0x01; kytu1[7]=0x01; kytu1[8]=0x00; break; } // Chu C case 3: { kytu1[0]=0x00; kytu1[1]=0x7E; kytu1[2]=0x81; kytu1[3]=0x81; kytu1[4]=0x81; kytu1[5]=0x81; kytu1[6]=0x42; kytu1[7]=0x00; kytu1[8]=0x00; break; } // Dau trang case 4: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00; kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00; break; } } }
/* Ham quet led ma tran_ vua hien thi vua dich ky tu dan sang trai*/ void hienthi(void) {
unsigned char n,m,lap; unsigned char cot[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; // Cac phan tu quet cot for(m=0; m<8 ; m++)// Dich hien thi { for(lap=0; lap<10; lap ++) // Lap hien thi { for(n=0; n<8 ; n++)// Quet cot { if((n+m)<9 )// Neu n+m < 9 hien thi ky tu 1 { mahoa(k); // Nap cac gia tri ma hoa ky tu dua ra cac hang (Cong 2) P0=cot[n]; // Day gia tri 0V ra cong 0 (cac cot) P2=kytu1[n+m];// Day cac gia tri cac hang (ma hoa ky tu) ra cong 2(cac hang) delay(45);// Tre du de led sang } if((n+m) > 7)// Neu n+m >7 hien thi ky tu 2 { mahoa(k+1);// Nap gia tri ma hoa ky tu tiep de dua ra cac hang(Cong 2) P0=cot[n];// Day gia tri logic 0V ra cong 0(cac cot) P2=kytu1[n+m-8];// Day cac gia tri cac hang (ma hoa ky tu) ra cong 2(cac hang) delay(45);// Tre du de led sang DKS_GROUP Microcontroller Training Center
DKS_GROUP - 128 - S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577 } P0=0xFF;// Day cac cot len cao P2=0x00;// Dua cac hang xuong thap de tat toan bo cac led. } } } }
void main(void) { while(1)// Vong lap vo han. { hienthi(); // Hien thi 2 ky tu dau tien dau trang va chu M k=k+1; // Tang k de hien thi chu M va chu T lan tiep if(k==4) k=0;// Quay vong hien thi } } Ch : Mch led sng u tuy nhin sng yu, do lp trn board chng ta khng lp cc linh kin khuych i dng v n dng led sng p, u. Khi lm mch cc bn thm cc linh kin khuych i hoc n dng n sng u nh ULN2003 hoc ULN 2803 a gi tr logic ra hng, dng transitor hoc dng lun ULN qut ct.