8051 co ban dks
-
Upload
hoang-nguyen -
Category
Documents
-
view
148 -
download
4
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