8051 co ban dks

download 8051 co ban dks

of 119

Transcript of 8051 co ban dks

DKS_GROUP

Microcontroller Training Center

DKS_GROUP

-1-

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

M CL CBi 1: Gi i thi u v vi i u khi n 1.1.Tiu chu n trong l a ch n m t b vi i u khi n 1.2.Vi i u khi n v vi x l 1.3.S chn vi i u khi n 8051 1.4.M ch 8051 t i thi u 1.5.C u trc s kh i c a vi i u khi n 1.6.Cc thnh vin khc c a h 8051 1.7.Ram n i v cc thanh ghi SFR c a 8051 Bi 2.Ngn ng l p trnh cho vi i u khi n (Ph n 1) 2.1.C u trc m t chng trnh 2.2.Cc lo i bi n trong C 2.3.Hm trong C 2.4.Ton t c b n 2.5.C u trc l nh r nhnh 2.6.B ti n x l Bi 2.H ng d n s d ng keil C (Ph n 2) 2.1.Kh i t o project 2.2.So n th o chng trnh 2.3.D ch chng trnh 2.4.M ph ng Bi 3. i u khi n O(out) v i Led n 3.1.L p m ch 3.2.Nguyn l ho t 3.3.L p trnh 3.4.N p chng trnh 3.5.K t qu 3.6. i u khi n Led t ng chi c 1 3.7. i u khi n Out Bi 4. i u khi n led 7 thanh 4.1.L p m ch ng 3 3 3 3 6 7 9 11 12 12 13 15 15 15 16 17 17 36 41 45 50 50 51 52 60 61 62 62 67 67

DKS_GROUP

-2-

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

4.2.Nguyn l ho t 4.3.L p trnh 4.4.N p chp 4.5.K t qu Bi 5. c bn phm 5.1.L p m ch

ng

68 69 75 75 78 78 79 79 94 94 97 97 99 99 100 101 110 114 114

5.2.Nguyn l qut phm 5.3.L p trnh Bi 6. i u khi n LCD 16x2 6.1.L p m ch 6.2.Nguyn l ho t 6.3.L p trnh 6.3.1. nh ngha con tr r ng xung ng 6.3.2.Cch s d ng Bi7. i u ch 7.1.L p m ch theo s 7.2.Nguyn l ho t Bi 8.Led ma tr n 8.1.L p m ch 8.2.Nguyn l ho t 8.2.Code ng ng c a LCD

116 117

DKS_GROUP

-3-

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Ch : y hon ton l ph n l thuy t, mnh rt g n t i a, do cc b n nn c h t. Cha nn th c hnh v i v ti s h ng dn sau. 1.1 Tiu chu n trong l a ch n m t b vi i u khi n L kh nng s n sng p ng v s l ng trong hi n t i v tng lai. i v i m t s nh thi t k i u ny l quan trong hn c . Hi n nay, cc b vi i u khi n 8 bit ng u l h 8051 c s lng l n nh t cc nh cung c p a d ng (nhi u ngu n). Nh cung c p c ngha l nh s n xu t bn c nh nh sng ch c a b vi i u khi n. Trong tr ng h p 8051 th nh sng ch c a n l Intel, nhng hi n nay c r t nhi u hng s n xu t n (cng nh tr c kia s n xu t). Cc hng ny bao g m: Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matra v Dallas, Semicndictior. B ng a ch c a m t s hng s n xu t cc thnh vin c a h 8051. Hng a ch Website Intel www.intel.com/design/mcs51 Antel www.atmel.com www.semiconductors.philips.com Plips/ Signetis Siemens www.sci.siemens.com Dallas Semiconductor www.dalsemi.com 8051 l m t b x l 8 bit c ngha l CPU ch c th lm vi c v i 8 bit d li u t i m t th i i m. D li u l n hn 8 bit c chia ra thnh cc d li u 8 bit cho x l. 8051 c t t c 4 c ng vo - ra I/O m i c ng r ng 8 bit. Cc nh s n xu t cho xu t x ng ch v i 4K byte ROM trn chp. B ng cc c tnh c a 8051 u tin. c tnh S l ng ROM trn chp 4K byte RAM 128 byte B nh th i 2 Cc chn vo - ra 32 C ng n i ti p 1 Ngu n ng t 6 1.2.Vi i u khi n v vi x l: Xin nh c n ci my tnh c a b n, con chp Intel hay ADM c a b n l 1 b vi x l, n khng c RAM, ROM,c ng IO v cc thi t b ngo i vi on Chip. Cn vi i u khi n ch a 1 b vi x l v RAM,ROM, c ng IO, v c th c cc thi t b ngo i vi. 1.3. S chn vi i u khi n 8051: L IC ng v d ng DIP c 40 chn, m i chn c m t k hi u tn v c cc ch c nng nh sau: Chn 40: n i v i ngu n nuI +5V. Chn 20: n i v i t(Mass, GND). Chn 29 (PSEN)(program store enable) l tn hi u i u khi n xu t ra c a 8051, n cho php ch n b nh ngoi v c n i chung v i chn c a OE (Outout Enable) c a EPROM ngoi cho php c cc byte c a chng trnh. Cc xung tn hi u PSEN h th p trong su t th i gian thi hnh l nh. Nh ng m nh phn c a chng trnh c

DKS_GROUP

-4-

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

c t EPROM i qua bus d li u v c ch t vo thanh ghi l nh c a 8051 b i m l nh.(ch vi c d li u) Chn 30 (ALE : Adress Latch Enable) l tn hi u i u khi n xu t ra c a 8051, n cho php phn knh bus i v i 8051. i v i 8051 th : EA = 5V : Ch n ROM n i. EA = 0V : Ch n ROM ngo i. 32 chn cn l i chia lm 4 c ng vo ra: Vo ra t c l c th dng chn hay xu t m c logic ra(0;1) P0 t P1 t P2 t P3 tU1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RESET RXD TXD INT0 INT1 T0 T1 WR RD X2 X1 VSS VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VP ALE/P PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

c

y l

c cc l nh (khc v i

c d li u), khi VXL ch

c

cc bit opcode c a l nh v a chng vo hng

i l nh thng qua cc Bus

a ch v

a ch v bus d li u c a Port 0.

Chn 31 (EA : Eternal Acess) c a xu ng th p cho php ch n b nh m ngoI

c m c logic (0;1 tng ng v i 0V ; 5V)vo

chn 39 32 tng ng l cc chn P0_0 P0_7 chn 1 8 tng ng l cc chn P1_0 P1_7 chn 21 28 tng ng l cc chn P2_0 P2_7 chn 10 17 tng ng l cc chn P3_0 P3_7

AT89C51

P0 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

P1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

P2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P3 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

Port's Bit D0 D1 D2 D3 D4 D5 D6 D7

Ring c ng 3 c 2 ch c nng m i chn nh trn hnh v : P3.0 RxD : chn nh n d li u n i ti p khi giao ti p RS232(C ng COM ). P3.1 _ TxD : phn truy n d li u n i ti p khi giao ti p RS232. P3.2 _ INTO : interrupt 0 , ng t ngoi 0. P3.3 _ INT1: interrupt 1, ng t ngoi 1. P3.4 _T0 : Timer0 , u vo timer0. P3.5_T1 : Timer1, u vo timer 1. P3.6_ WR: Write, i u khi n ghi d li u. P3.7 _RD: Read , i u khi n c d li u. Chn 18, 19 n i v i th ch anh t o thnh m ch t o dao ng cho V K

DKS_GROUP

-5-

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

T n s th ch anh th ng dng trong cc ng d ng l : 11.0592Mhz(giao ti p v i c ng com my tnh) v 12Mhz T n s t i a 24Mhz. T n s cng l n V K x l cng nhanh. Dao S1 S6 S2 ng c a th ch anh S3 S4 S5

P1

P2

Ring c ng 3 c thm ch c nng nh d i y P3.0 RxD : chn nh n d li u n i ti p khi giao ti p RS232(C ng COM ). P3.1 _ TxD : ph n truy n d li u n i ti p khi giao ti p RS232. P3.2 _ INTO : interrupt 0 , ng t ngoi 0. P3.3 _ INT1: interrupt 1, ng t ngoi 1. P3.4 _T0 : Timer0 , u vo timer0. P3.5_T1 : Timer1, u vo timer 1. P3.6_ WR: Write, i u khi n ghi d li u. P3.7 _RD: Read , i u khi n c d li u. Chn 18, 19 n i v i th ch anh t o thnh m ch t o dao ng cho V K T n s th ch anh th ng c dng trong cc ng d ng l : 11.0592Mhz(giao ti p v i c ng com my tnh) v 12Mhz T n s t i a 24Mhz. T n s cng l n V K x l cng nhanh.5VDC

40 U3 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VP RESET 10Kx9 39 38 37 36 35 34 33 32 31 9 R4 R7 R9 + C3 10uF/25V

R1 10K C2 33p 12Mhz C1 33p

19 18 20

X1 X2 GND 8051

DKS_GROUP

-6-

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

M ch ny cha c kh i ngu n S chn:

t o ngu n 5V cc b n dng con IC sau:U6 LM7805/TO 1 VIN GND VOUT 3

Gi i thi u IC n p 7805 : u vo > 7V u ra 5V 500mA. M ch n p: c n cho V K v n u ngu n cho V K khng n nh th s treo V K, khng ch y ng, ho c reset lin t c, th m ch l ch t chp. M ch ngu n12VDC In 1 U1 LM7805/TO VIN GND VOUT 3 C1 104 5VDC Out C3 10uF/25V

2+ C2 104

1.4. M ch vi i u khi n c b n5VDC

2

U1

VCC

40

+ C3 RESET 9 10uF/25V R1 10K

C2 33p

18

X2

12Mhz C1 33p 19 20 X1 VSS 8051

DKS_GROUP

-7-

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

1.5. C u trc vi i u khi n 89c51EXTERNAL INTERRUPTS INTERRUP T CONTROL ON CHIP RAM

ETC COUNTER INPUTS TIMER 0 TIMER 1

CPU

OS C

BUS CONTRO L

4 I/O PORTS

SERIAL PORT

P P P PADDRESS/DAT A

TXD RXD

Ch :S kh i bn trong con 8051 c nh ng ti nguy n . Interrupt, Ram, Timer, Serial prort. 1.6.Cc thnh vin khc c a h 8051: C hai b vi i u khi n thnh vin khc c a h 8051 l 8052 v 8031. B vi i u khi n 8052: 8052 c t t c cc c tnh chu n c a 8051 ngoi ra n c thm 128 byte RAM v m t b nh th i n a. Hay ni cch khc l 8052 c 256 byte RAM v 3 b nh th i. N cng c 8K byte ROM. Trn chp thay v 4K byte nh 8051. B ng : So snh cc c tnh c a cc thnh vin h 8051. c tnh ROM trn chip RAM B nh th i C ng n i ti p Ngu n ng t 8051 4K byte 128 byte 2 1 6 8052 8K byte 256 byte 3 1 8

Do v y t t c m i chng trnh vi t cho 8051 u ch y trn 8052 nhng i u ng c l i l khng ng. c bi t : M t nh s n xu t chnh c a h 8051 khc n a l Philips Corporation. Hng ny c m t d i l a ch n d ng l n cho cc b vi i u khi n

DKS_GROUP

-8-

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

h 8051. Nhi u s n ph m c a hng c km theo cc c tnh nh cc b chuy n i ADC, DAC, chn PWM, c ng I/0 m r ng . Update s n ph m 8051 m i t i cc trang web c a cc nh s n xu t a ch c ph n gi i thi u. Ch y u:www.atmel.com 1.7.Ram n i v cc thanh ghi F0 E0 D0 B8 B0 A8 A0 99 98 90 8D 8C 8B 8A 89 88 87 83 82 81 80 F7 E7 D7 B7 AF A7 F6 E6 D6 B6 F5 E5 6D B5 F4 E4 6C F3 E3 6B F2 E2 6A F1 E1 69 F0 E0 68 B8 B0 A8 A0 98 90

C c c a ch v FFH

thanh ghi SFR n m gi a 80H cc a ch ny

BC BB B4 B3

BA B9 B2 B1

AE AD AC AB AA A9 A6 A5 A4 A3 A2 A1 99 91

Khng nh a ch t ng bt 9F 9E 9D 9C 9B 9A 97 96 95 94 Khng nh a ch t Khng nh a ch t Khng nh a ch t Khng nh a ch t Khng nh a ch t 8F 8 8D 8C E Khng nh a ch t 93 92 ng bt ng bt ng bt ng bt ng bt 8B 8A ng bt

89

88

Khng nh a ch t ng bt Khng nh a ch t ng bt Khng nh a ch t ng bt 87 86 8 84 83 82 5

81

80

THANH GHI CH C NNG C BIT

DKS_GROUP

-9-

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

trn 80H, v cc a ch t 00 n 7FH l a ch c a b nh RAM bn trong 8051. Khng ph i t t c m i a ch t 80H n FFH u do SFR s d ng, nhng v tr ngn nh t 80H n FFH cha dngl d tr v l p trnh vin 8051 cng khng c s d ng. B ng : ch c nng c a thanh ghi ch c nng SFR nh Thanh ghi / Bit TMOD 7 6 5 4 K hi u GATE C/T M1 M0 c bi t SFR i khi l p trnh c b n C) Ch c nng Ch n model cho b nh th i 1 Bt i u khi n c ng. Khi c set ln 1, b nh th i ch ho t ng trong khi INT1 m c cao Bt ch n ch c nng m ho c nh th i: 1= m s ki n 0= nh th i trong m t kho ng th i gian Bit ch n ch th nh t Bit ch n ch th 2 Chc nng M0 Ch M1 0 0 0 Ch nh th i 13 bit 0 1 1 Ch nh th i 16 bit 1 0 2 Ch t ng n p l i 8 bit 1 1 3 Ch nh th i chia x Bit i u khi n c ng cho b nh th i 0 Bit ch n ch c nng m / nh th i cho b nh th i 0 Bit ch n ch th nh t cho b nh th i 0 Bit ch n ch th 2 cho b nh th i 0 TR0 IE1 IT1 IE0 IT0 Ch c nng i u khi n b inh th i C trn c a b nh th i 1. C ny c set b i ph n c ng khi c trn, c xo b i ph n m m, ho c b i ph n c ng khi b vi x l tr n trnh ph c v ng t Bit i u khi n ho t ng c a b nh th i 1. Bit ny c set ho c xo b i ph n m m i u khi n b nh th i ho t ng hay ngng C trn c a b nh th i 0 Bit i u khi n ho t ng c a b nh th i 0 C ng t bn ngoi 1 (kch kh i c nh). C ny c set b i ph n c ng khi c c nh m (cu ng) xu t hi n trn chn INT1, c xo b i ph n m m, ho c ph n c ng khi CPU tr n trnh ph c v ng t a ch t ng bit( nh ng thanh ghi c n nh

3 2 1 0 TF1 TR1 Thanh ghi / Bit TCON TCON.7

GATE C/T M1 M0 TF1 K hi u TF1

TCON.6 TCON.5 TCON.4 TCON.3

TR1 TF0 TR0 IE1

DKS_GROUP

- 10 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

TCON.2 TCON.1 TCON.0 EA IE IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0

IT1 IE0 IT0 ET2 EA --ET2 ES ET1 EX1 EX0 ET0

C ng t bn ngoi 1 (kch kh i c nh ho c m c). C ny c set ho c xo b i ph n m m khi x y ra c nh m ho c m c th p t i chn ng t ngoi C ng t bn ngoi 0 (kch kh i c nh) C ng t bn ngoi 0 ( kch kh i c nh ho c m c) ES ET1 EX1 EX0 ET0 i u khi n cc ngu n ng t (0: khng cho php; 1: cho php) Cho php/ khng cho php ton c c Khng s d ng Cho php ng t do b nh th i 2 Cho php ng t do port n i ti p Cho php ng t cho b nh th i 1 Cho php ng t t bn ngoi (ng t ngoi 1) Cho php ng t t bn ngoi (ng t ngoi 0) Cho php ng t do b nh th i 0

CH 3 thanh ghi ny cng r t c b n, nh tn thanh ghi, tn cc bt trong thanh ghi, ch c nng t ng thanh ghi v t ng bt trong thanh ghi. 1.8.Gi i thi u s qua cc ngu n ng t: Ng t do Reset h th ng Ng t ngoi 0 B nh th i 0 Ng t ngoi 1 B nh th i 1 Port n i ti p B nh th i 2 Timer Program excution without interrut Main Program C RST IE0 TF0 IE1 TF1 RI ho c TI TF2 ho c EXF2 a ch vector 0000H 0003H 000BH 0013H 001BH 0023H 002BH

ISR

ISR

ISR

*Main

**

*Main

**Main

*

**Main

Program excution with interrupt.

DKS_GROUP

- 11 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

M t chng trnh chnh khng c ng t th ch y lin t c, cn chng trnh c ng t th c khi no i u ki n ng t c m bo th con tr s nh y sang hm ng t th c hi n xong hm ng t l i quay v ng ch c v th c hi n ti p chng trnh. Ta c 1 v d nh sau: B n ang n cm , c ti ng i n tho i , b n t bt cm ra nghe i n tho i , nghe xong l i quay v bng bt cm ln n ti p. Th qu trnh n cm c a b n l chng trnh chnh,c i n tho i g i n l i u ki n ng t, b n ra nghe i n tho i l th c hi n chng trnh ng t(Interrupt Service Rountine),quay v n cm ti p l ti p t c th c hi n chng trnh chnh. Ng t i v i ng i m i h c vi i u khi n l r t kh hi u, v a s cc ti li u u khng gi i thch ng t lm g. C nhi u lo i ng t khc nhau nhng t t c u c chung 1 c i m, ng t dng cho m c ch a nhi m. a t c l nhi u, nhi m t c l nhi m v . Th c hi n nhi u nhi m v .Cc b n nhn vo ti n trnh c a hm main v i chng trnh c ng t : Chng trnh chnh ang ch y, ng t x y ra, th c hi n hm ng t r i quay l i chng trnh chnh. Chng trnh trong vi i u khi n khc v i v d n cm nghe i n tho i c a ti ch , th i gian th c hi n hm chnh l r t l n,th i gian th c hi n hm ng t l r t nh , cho nn th i gian th c thi hm ng t khng nh h ng nhi u l m n ch c nng hm chnh. Nh v y trong hm ng t cc b n lm 1 vi c, trong hm chnh cc b n lm 1 vi c nh v y coi nh cc b n lm c 2 vi c( a nhi m) trong 1 quang th i gian tng i ng n c mS, ch th c ra t i 1 th i i m vi i u khi n ch th c thi 1 l nh. V d : B n th ngh xem lm th no v a i u ch xung PWM i u ch nh t c ng c , v a c cc c m bi n u vo m t c ng c ph thu c u vo c m bi n.

2.1.C u trc m t chng trnh: // nh km cc file #include #include //Khai bo bi n ton c c unsigned char x,y; int z; long n=0; //Khai bo v nh ngha cc hm void Hm1(void) { //Cc cu l nh } void Hm2(unsigned char x) { //Cc cu l nh }

DKS_GROUP

- 12 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

//Hm chnh b t bu c chng trnh no cng ph I c void main(void) { //Cc cu l nh } Cc cu l nh trong hm chnh c th c l i g i cc hm khai bo trn ho c khng Khi c l i g i hm no th chng trnh nh y n hm th c hi n hm xong con tr l i quay v chng trnh chnh(hm main) th c hi n ti p cc hm ho c cu l nh. Cc cu l nh trong C k t thc b ng d u ; Cc l i gi I thch c t trong d u: M u b ng /* k t thc b ng */ N u l i gi I thch trn 1 dng th c th dng d u: // Khi l p trnh nn gi I thch cc cu l nh kh i l nh lm g v sau khi chng trnh l n d s a l i. 2.2.Cc lo i bi n trong C: D ng bi n char unsigned char short unsigned short int unsigned int long S Bit 8 8 16 16 16 16 32 S Byte Mi n gi tr 1 1 2 2 2 2 4 -128 0 0 0 -32,768 -32,768 n +127 n +32,767 n +32,767 n 255 n 65,535 n 65,535

-2,147,483,648 n+2,147,483,647

unsigned long 32 4 0 n 4,294,697,295 Khai bo bi n C u trc : Ki u bi n Tn bi n VD: unsigned char x; Khi khai bo bi n c th gn lun cho bi n gi tr ban u. VD : Thay v: unsigned char x; x=0; Ta ch c n : unsigned char x=0; C th khai bo nhi u bi n cng m t ki u m t lc VD: unsigned int x,y,z; Ngoi ra dng cho vi i u khi n trnh d ch chuyn d ng cn h tr cc lo i bi n sau: D ng bi n S Bit S Byte Mi n gi tr bit sbit 1 1 0 0 0;1 0;1 - 13 -

DKS_GROUP

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

sfr sf16

8 16

1 2

0 0

n 255 n 65,535

VD: Ngoi ra ,chng ta c th nh ngha bi n ki u bt hay ki u SFR (special function register) Bit Kiemtra; Sfr P10=0x90; VD: Bit Kiemtra; Sfr P10=0x90; Cc SFR khng c n ph i h c thu c ch c n bi t, v chng c khai bo trong th vi n AT89X51.H v AT89X52.H 2.3.Hm trong C: Hm trong C c c u trc nh sau C 2 lo i hm Hm tr l i gi tr : C u trc: Ki u gi tr hm tr l ii Tn hm (Bi n truy n vo hm) { // Cc l nh x l y } unsigned char Cong(unsigned char x, unsigned char y) { // Cc l nh x l y } Hm khng tr l i gi tr C u trc: void Tn hm (Bi n truy n vo hm) { // Cc cu l nh x l y } VD d : void Cong(unsigned char x, unsigned char y) { // Cc cu l nh x l y } VD :

Hm c th truy n vo bi n ho c khng VD Hm khng c bi n truy n vo: unsigned char Tnhm(void) { // Cc cu l nh x l y } Hm c bi n truy n vo: void Tnhm(unsigned char x)

DKS_GROUP

- 14 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

{ // Cc cu l nh x l } S bi n truy n vo ty (mi n V d : y b nh ), ngn cch b i d u ,

Void TnHm(unsigned char x, unsigned char y, unsigned char z) { // Cc cu l nh x l y } Ngoi ra ring cho vi i u khi n ph n ph m Keil C cn c m t lo i hm l hm ng t: C u trc: Void Tnhm(void) interrupt ngu nng t using bngthanhghi { } Hm ng t khng c php tr l i gi tr hay truy n tham bi n vo hm. Tn hm b t k Interrupt l t kha ch hm ng t Ngu n ng t t 0 t i 5 theo b ng vector ng t Ng t do C a ch vector Reset h th ng RST 0000H Ng t ngoi 0 IE0 0003H B nh th i 0 TF0 000BH Ng t ngoi 1 IE1 0013H B nh th i 1 TF1 001BH Port n i ti p RI ho c TI 0023H B nh th i 2 TF2 ho c EXF2 002BH Khng tnh ng t reset h th ng b t u m t ng t ngoi 0 Bng thanh ghi trn ram ch n t 0 n 3 2.4.Cc ton t c b n: Php gn: = VD: x=y; // x phi l bi n y c th l bi n ho c gi tr nhng ph i ph h p ki u Php c ng: + Php tr : Php nhn: * Php chia: / Cc ton t logic: B ng : == And: && Or: || Not: ! D ch tri: > 2.5.Cc c u trc l nh r nhnh, ki m tra th ng dng: Cu l nh r nhnh if:

DKS_GROUP

- 15 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

n switch: switch(Bi n) { case giatr 1: { // Cc cu l nh break; } case giatr 2: { // Cc cu l nh break; } case giatr 3: { // Cc cu l nh break; } case giatr n: { // Cc cu l nh break; } } Gi i thch : Ty vo Bi n c giatr 1 th th c hi n cc cu l nh sau tng ng r i thot kh i c u trc nh cu l nh break; Bi n c giatr 2 th th c hi n cc cu l nh sau tng ng r i thot . Bi n c giatr n th th c hi n cc cu l nh sau tng ng r i thot Cu l nh vng l p xc nh for: C u trc: for( n=m; nl), cn n l bi n Th c hi n l p cc cu l nh (l-m) l n Cu l nh vng l p khng xc nh while: C u trc: While( i u ki n) { //Cc cu l nh } Gi I thch: Th c hi n l p cc cu l nh khi i u ki n ng, n u cu l nh sai thi thot kh i vng l p 2.6. B ti n x l: #define : Dng nh ngha. V d : #define dung 1 #define sai 0 c ngha l dung c gi tr b ng 1. Trong chng trnh c th c o n code nh sau: bit kiemtra if (bit==dung) { // Cc cu l nh} if (bit==sai) { // Cc cu l nh} Vi c ny gip l p trnh d s a l i hn. M t s web hay : www.dientuvietnam.net www.svbkol.org www.diendandientu.com

C u trc: Gi i thch: qua Cu l nh l a ch C u trc:

if ( i uki n) { // Cc cu l nh x l } N u i uki n ng th x l cc cu l nh bn trong cn sai th nh y

www.atmel.com www.keil.com www.iguanalabs.com - 16 -

DKS_GROUP

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

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 (Ti p) Ph n 2: S d ng Keil C.Sau khi ci t 1> Kh i t o cho Project:

DKS_GROUP

- 17 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

t o 1 project m i ch n Project

New project nh sau:

DKS_GROUP

- 18 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

c hnh sau:

DKS_GROUP

- 19 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

nh tn v chuy n R i ch n Save.

n th m c b n lu project. B n nn t o m i m t th m c cho 1 project.

DKS_GROUP

- 20 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

c hnh sau:

DKS_GROUP

- 21 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Trong ny c 1 lo t cc hng i n t s n xu t 8051. B n l p trnh cho con no th ch n con ,kch chu t vo cc d u + m r ng cc con IC c a cc hng. y ta l p trnh cho AT89C51 c a hng Atmel nn ta ch n nh sau:

y

DKS_GROUP

- 22 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Khi ch n chip th ngay l p t c ci b ng hi n ra 1 s tnh nng c a chp cc b n c th nhn th y. 8051 based Fully Static 24Mhz . Nhap OK c c a s nh sau:

DKS_GROUP

- 23 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Ch n No. Ch n Yes ch lm cho file l p trnh c a b n thm n ng . c c a s sau:

DKS_GROUP

- 24 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

t o 1 file code cc b n ch n File

New ho c n Ctrl+N. Nh sau:

DKS_GROUP

- 25 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

c c a s nh sau:

DKS_GROUP

- 26 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Cho c a s Text 1 to ra c nh sau:

DKS_GROUP

- 27 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Ti p theo b n ch n File

Save As ho c Ctrl+S.

nh file m c d cha c g. Nh sau:

DKS_GROUP

- 28 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

c c a s sau:

DKS_GROUP

- 29 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Cc b n nh p tn vo text box file name. Ch tn g cng c nhng khng c thi u ui m r ng .C . Nh n Save. c c a s sau:

DKS_GROUP

- 30 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Trong bn tri mn hnh, c a s project workspace, cc b n m r ng ci target 1 ra c nh sau:

DKS_GROUP

- 31 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Nh p chu t ph i vo th m c Suorce Group1 c hnh nh trn. Ch n Add files to Group Source Group1 add file vo project. c nh sau:

DKS_GROUP

- 32 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Ch n file .C m cc b n v a nh . C a ti l Dieukhienled_IO . Nh n Add 1 l n r i n Close. N u b n n Add 2 l n n s thng bo l file add b n ch vi c OK r i nh n Close. c nh sau:

DKS_GROUP

- 33 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

By gi nhn trong Source Group 1 th y file Dieukhienled_IO.C . Cc b n nh p chu t ph i vo vng so n th o file Dieukhienled_IO.C nh sau, thm file th vi n.Ch n Insert #include

DKS_GROUP

- 34 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Cc b n bi t file l g n u cc b n h c bi tr c k theo yu c u c a ti. c nh sau:

DKS_GROUP

- 35 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Ph n cu i cng c a cng vi c kh i t o l cc b n vi t l i gi i thch cho d n c a mnh .Ph n ny r t c n thi t v n ng i khc hi u mnh lm g tron project ny v khi mnh c n s d ng l i code c l i mnh cn bi t n l ci g. Cc b n t o l i gi i thch theo m u sau:

DKS_GROUP

- 36 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

2> So n th o chng trnh: Cc b n vi t chng trnh c a bi 3 vo y lm v d . Khi vi t xong 1 dng l nh nn gi i thch dng l nh lm g. Nh sau:

DKS_GROUP

- 37 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Cc b n nn chia chng trnh nh ti lm. V i 1 file nh th n hi r m r. Nhng v i 1 file l n kho ng 1000 dng code th n l i r t sng s a. Cc b n nn t o 1 file m u r i nh vo 1 file text u m i l n dng ch vi c copy r i paste qua ch khng nn m i l n t o m t ci nh v y l i ph n tc d ng. Pha trn l ph n b ti n x l v khai bo bi n. Ti p theo l vi t hm tr .

DKS_GROUP

- 38 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Ti p theo l vi t hm main. Nh sau:

DKS_GROUP

- 39 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

R i nh n Ctrl+S. Ho c ch n File

Save

nh file v a so n th o.

Cc b n nhn vo code c th cc b n hi u con AT89C51 n lm g n u cc b n n m v ng cc bi tr c. Cn n u khng hi u th ti s gi i thch l i cho cc b n.

DKS_GROUP

- 40 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

y l s nguyn l c a 1 led. Project l 8 led(v ph c v cho bi 3) nhng ti ch gi i thch 1 led l cc b n hi u. M c ch l lm con led nh p nhy.R2 5VDC

U1

D1 1 LED RESET 9 P1.0 + C3 10uF/25V R1 10K

C2 33p

18

X2

12Mhz C1 33p 19 20 X1 VSS 8051

Bi n Led1 c khai bo (gn cho) ch n P0_1 c a vi i u khi n b ng cu l nh sbit Led1=P1^0; . Gi tr b t bat c nh ngha l 0. Khi cc b n gn : Led1=bat; trong hm main th chn P1_0 c a AT89C51 c m c logic l 0V. Theo s nguyn l: 5V Tr 470 Led1 P1_0 (0 V). C chnh l ch p c dng i n qua led Led sng. Cc b n c th tnh tan ch ny d dng l t i sao l i l tr 470 m. i n p m t led l Uak (0,6 n 0,7V) l y =0,6V. i n p chn P1_0 l 0V. i n p hai u tr : 5V -0,6V = 4,4V. Dng qua tr = dng qua led = 4,4V/470 m x p x 10 mA. V i dng 10mA n 15mA l led dng sng v sng r t p. N u dng y u th led m , cn dng l n th cc b n bi t sao r i y. Khi cc b n gn: Led1= tat; t c l chn P1_0 c gi tr 1 tng ng i n p c a n l 5V . Hi u i n th gi a hai u +5V v P1_0 l 0V . Nn khng c dng qua led Led t t.Nhng n u trong hm main cc b n vi t ch c nh sau: While(1) { Led1=bat; Led1=tat; } Khi ch y debug th v n th y led nh p nhy. Nhng khi n p chng trnh vo chp l p vo m ch th led khng nhy ho c ch sng m ho c t t ngm. V l nh Led1=bat; l l nh 1 chu k my , t n s th ch anh l 12 Mhz, 1 chu k my c th i gian l 1uS. V a b t ln 1 uS r i l i t t ngay. Led khng p ng c t n s cao v y nn khng nh p nhy. Do c n t i hm tr . B t led ln tr 1 th i gian kh lu(0,5 gi y), r i t t led i kh lu(0,5s) r i l i b t l i t o thnh vng l p s c led nh p nhy. Tc d ng c a cu l nh while(1) . i u ki n bn trong vng while l 1 lun lun ng nn n l vng l p v h n l n. N u khng c vng while(1) th led c a cc b n ch sng ln 1 l n r i t t

DKS_GROUP

VCC

40

470

- 41 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

v h t chng trnh r i cn u. Ph n ny n u b n no m i h c i n t th no cng c cu h i th c m c c nh n tin ho c g i mail. 3> D ch chng trnh: So n th o song nh n Ctrl +S nh . Nh xong cc b n bin d ch chng trnh b ng cch n phm F7 ho c ch n Build target l bi u t ng ngay trn c a s workspace nh trn hnh:

Cc b n s th y nh sau:

DKS_GROUP

- 42 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Trong c a s Output Window ngay pha trn dng ch ny c cc dng ch Compiling Linking Program Size: data =17.0 code =96 0 error , 0 Warning . Nh v y l OK. N u khng c nh v y n s bo l i v cc b n ki m tra xem so n th o ng cha. Ti v d xa 1 d u ; trong hm main dng : Led1=bat; , gi b i thnh Led1= bat .R i d ch l i ( n F7) trnh bin d ch s bo nh sau:

DKS_GROUP

- 43 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Syntax error near tre. Sai c php g n tr . Cc b n nh p p tri chu t vo dng thng bo ny con tr s ngay dng d i dng c l i thm d u nhn d u mi tn mu xanh hnh d i y, g vo d u ; v d ch l i l OK. Trong chng trnh l n i khi con tr ch n g n ch c l i thi v b n ph i t tm ra l i.

DKS_GROUP

- 44 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Sau khi d ch l i c hnh sau:

DKS_GROUP

- 45 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

4> Ch y m ph ng v s a l i. Tr c khi debug chng ta kh i t o nh sau. Cc ban vo Option for target 1.

DKS_GROUP

- 46 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

c b ng sau. Nh p t n s th ch anh l 12 Mhz ng v i t n s th ch anh.

DKS_GROUP

- 47 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Ch n OK. debug cc b n nh n t h p phm Ctrl + F5. Ho c nh n vo icon c ch D m u knh lp trn thanh cng c . c c a s sau:

trong ci

DKS_GROUP

- 48 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Trong menu Peripherals(cc thi t b ngo i vi) ch n IO port , Port 1. c nh sau:

DKS_GROUP

- 49 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Cc b n th y 1 c a s nh Parallel Port 1 xu t hi n l ci m ph ng cho c ng 1 c a AT89C51. D u tch tng ng chn m c cao(5V) , khng tch chn m c th p (0V). Trong menu peripherals cn cc ngo i vi khc nh timer , interrupt, serial. Cc bi sau dng n cc b n nh l y trong ny. ch y chng trnh cc b n nh p chu t ph i vo mn hnh so n th o. R i n F11. M i l n n s ch y 1 l nh. Khi debug n u cc b n ch hm delay lu qu 1000 l n l p . Cc b n nh n Ctrl + F11 b qua hm.

DKS_GROUP

- 50 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Ho c n F10 ch y t ng dng l nh. Cc b n s th y chn P1_0 thay i gi tr . B ng bn tri , Project workspace by gi c cc thanh ghi. Cc b n c th th y chng thay i. Nhng cc b n khng c n quan tm n cc thanh ghi ny. V mnh h c ngn ng C m. N u h c asembly th m i ph i s d ng chng. Cng m t y. Ci b n quan tm nh t l ci sec. N cng thay i. V th ch anh l 12Mhz, nn m i chu k my l 10-6 giy. Cc b n cn c vo y bi t l nh no m t bao nhiu chu k my, lm th i gian th c th c n l m y. Thot kh i debug l i n Ctrl+F5 ho c n vo icon debug.

.3.1.L p m ch : -Kh i ngu n 5V cc b n nh l p m ch n nhy. -Cc b n l p m ch theo s sau:5VDC R11 RESISTOR SIP 10 1 U1 D2 D3 D4 D5 D6 D7 D8 1 2 3 4 5 6 7 8 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 EA 39 38 37 36 35 34 33 32 31 VCC 2 3 4 5 6 7 8 9 10 D1 40

+ C3 10uF/25V

RESET

9 R1 10K

C2 33p

18

X2

12Mhz C1 33p 19 20 X1 VSS 8051

- H ng d n l p m ch: * Qui nh : n u linh ki n no ti khng nh c n chi u th cc b n l p linh ki n chi u no cng c. Hng d c ngoi l ngu n 5 V. Hng d c trong l GND. Th t chn cc b n ph i nh khng gi ng th t s p x p tronh hnh v m ch. Cch m chn cc b n con chip xui m cc b n nhn dng ch AT89C51/52 xui, chn 1 l chn g n d u trn v hnh tam gic nh m u tr ng. m t trn xu ng d i tri qua ph i. S chn con IC th t s m ng th ny. Khi l p m ch ph i m chn.

DKS_GROUP

- 51 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Khng nn l p ngu n 12V vo v i ch khi n p chp xong l p vo m ch m i l p ngu n. Khi mu n g chp ra ph i rt ngu n ra r i m i g chp.U1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RESET RXD TXD INT0 INT1 T0 T1 WR RD X2 X1 VSS VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VP ALE/P PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

AT89C51

* Chu n b board nh sau: L p 4 dy n i ng n n i cc sng. L p 1 dy n i n i hng trn cng v i hng d i cng lm ngu n +5V. L p 1 dy n i n i hng g n trn cng v i hng g n d i cng lm GND. L p chp nh hnh. * B c 1 l p m ch dao ng: L p 1 con t 33pF t chn 19 xu ng chn 20.( ng h i t i sao). L p 1 con t 33pF t chn 18 xu ng chn 20. L y dy cu t chn 20 xu ng GND. L p 1 con th ch anh 12M vo chn 18 v 19. * B c 2 l p m ch reset. L p 1 con tr 10K(nu en cam) t chn 9 xu ng GND. L p 1 con t 10uF/50V c c dng ln +5V, c c m vo chn 9. * B c 3 l p tr bng. chp ch y v i ROM trong chn EA ph i ln +5V qua 1 i n tr . C ng 0 l c ng c c c mng h mu n th c hi n c IO th ph i c i n tr treo.(Th y ci ny l xem l i bi 2). Nn l p 1 con tr bng 10 chn vo c ng 0 v chn EA. Chn 1 c a tr bng ( Chn u tin c n t trn m u tr ng) vo chn 40. Chn 10 c a tr bng vo chn 31. N u khng c tr bng cc b n c th thay tr bng 10 chn b ng 9 con tr th ng v tr bng 10 chn chnh l 9 con tr u chung 1 u nh trong s m ch pha trn. * B c 4 l p led: d dng khi l p m ch nn chng ta l p led theo s nh trn. L p chn di c a 1 led vo chn 1 vi i u khi n chn ng n vo GND. Tng t l p 7 led cn l i vo chn 2 n chn 8. * B c 5 cu 1 dy nh t chn 40 ln ngu n 5V. 3.2. Nguyn l ho t ng: Led n i t chn v k xu ng t v y n u chn vi i u khi n 5V th led s sng, n u chn vi i u khi n 0V th led s t i. i n p 5V v sao led khng chy m l i cn sng y u?

DKS_GROUP

- 52 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

V vi i u khi n 8051 ch c th cung c p dng nh khng 10mA 1 chn nn led sng y u. Cn n u mu n led sng p th l p nh sau t dng 5V Chn di c a led Chn ng n c a led Chn vi i u khi n. Ci ny s ni sau. * B c 5 l p ngu n: L p 1 dy t chn 40 ln hng ngu n 5V. 3.3. L p trnh : Tr c h t i u khi n 1 led. i u khi n 1 led th cc b n ch vi c gn chn n i v i led b ng 0 ho c 1, th i n p chn s l 0V ho c 5V, ty vo i n p n s sng ho c t i. 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 // 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 /************************************************************/ /*******************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.

DKS_GROUP

- 53 -

www.EmbestDKS.com

04868

DKS_GROUP

Microcontroller Training Center

Dau ra:khong ------------------------------------------------------*/ void tre(long time) { long n;// Khai bao bien cuc bo for(n=0; n