Professional Documents
Culture Documents
Leon_heaty@yahoo.com
DKS_GROUP www.EmbestDKS.com
-1-
048684577
DKS_GROUP
Mc Lc:
B i 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 th nh 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)
2.3)Hm trong C.
2.4)Cc ton t c bn. 2.5)Cc cu trc lnh r nhnh, kim tra.
(17)
(19) (19)
DKS_GROUP www.EmbestDKS.com
-2-
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
c tnh S lng ROM trn chp 4K byte RAM 128 byte B nh thi 2 Cc chn v o - ra 32 Cng ni tip 1 Ngun ngt 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 www.EmbestDKS.com
-3S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 ngo i v c ni chung vi chn ca OE (Outout Enable) ca EPROM ngo i cho php c cc byte ca chng trnh. Cc xung tn hiu PSEN h thp trong sut thi gian thi h nh lnh. Nhng m nh phn ca chng trnh c c t EPROM i qua bus d liu v c cht v o 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 v o h ng 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 ngo I i vi 8051. i vi 8051 th : EA = 5V : Chn ROM ni. ROM ngoi. 32 chn cn li chia l m 4 cng v o ra: V o ra tc l c th dng chn c mc logic (0;1 tng ng vi 0V ; 5V)v o 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 EA = 0V : Chn
DKS_GROUP www.EmbestDKS.com
-4-
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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
Port's Bit D0 D1 D2 D3 D4 D5 D6 D7
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 ngo i 0. P3.3 _ INT1: interrupt 1, ngt ngo i 1. P3.4 _T0 : Timer0 , u v o timer0. P3.5_T1 : Timer1, u v o 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 th nh 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 c ng ln VK x l c ng 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 l m 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 DKS_GROUP www.EmbestDKS.com
-5S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
xong,c lnh nhiu hn mt chu k my. C th khi lp trnh s bit lnh bao nhiu chu k my. U1 1.4) Mch 8051 ti thiu: Mch to dao ng:
Thach anh
33p Tu gom
19 18
X1 X2
Tan so 12Mhz
Chn 9 c mc vi 1 mch ngo i to th nh mch reset. Khi reset VK hot ng li t u.(Ram b xa, cc thanh ghi b xa)
5VDC
Mch RESET
+ C4
RESET
R1 R
20
VSS 8051
DKS_GROUP www.EmbestDKS.com
-6-
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
40 U3 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VP RESET 39 38 37 36 35 34 33 32 31 9
10Kx9 R4 R7 R9 + C3 10uF/25V
19 18 20
X1 X2 GND 8051
ngun to ngun 5V
U6 LM7805/TO 1 VIN GND VOUT 3
Gii thiu IC n p 7805 : u v o > 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
12VDC In 1 U1 LM7805/TO VIN GND VOUT 3 C1 104 + 5VDC Out C3 10uF/25V
C2 104
DKS_GROUP www.EmbestDKS.com
-7-
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
5VDC
U1
VCC
40
18
X2
19 20
X1 VSS 8051
CPU
OSC
BUS CONTROL
4 I/O PORTS
SERIAL PORT
P P P P
ADDRESS/DATA
TXD
RXD
DKS_GROUP www.EmbestDKS.com
-8-
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Ch :S khi bn trong con 8051 c nhng t i nguyn . Interrupt, Ram, Timer, Serial prort. 1.6)Cc th nh vin khc ca h 8051: C hai b vi iu khin th nh vin khc ca h 8051 l 8052 v 8031. B vi iu khin 8052: 8052 c tt c cc c tnh chun ca 8051 ngo i 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 th nh vin h 8051.
c tnh ROM trn chp RAM B nh thi Chn v o ra Cng ni tip Ngun ngt 8051 4K byte 128 byte 2 32 1 6 8052 8K byte 256 byte 3 32 1 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 n y c mt di la chn dng ln cho cc b vi iu khin h 8051. Nhiu sn phm ca h ng 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 E0 F7 E7 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
D0 D7 B8 B0 B7 A8 AF
BC BB B4 B3
BA B9 B2 B1
AE AD AC AB AA A9 -9-
DKS_GROUP www.EmbestDKS.com
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
A0 A7 99 98 90 8D 8C 8B 8A 89 88 87 83 82 81 80
A6
A5
A4
A3
A2
A1
A0
Khng nh a ch tng bt 9F 9E 9D 9C 9B 9A 97 96 95 94 93 92
99 91
98 90
Khng nh a ch tng bt Khng nh a ch tng bt Khng nh a ch tng bt Khng nh a ch tng bt Khng nh a ch tng bt 8F 8 8D 8C 8B 8A E Khng nh a ch tng bt Khng nh a ch tng bt Khng nh a ch tng bt Khng nh a ch tng bt 87 86 8 84 83 82 5
89
88
81
80
Cc thanh ghi SFR c a ch n m gia 80H v FFH cc a ch n y 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
DKS_GROUP www.EmbestDKS.com
- 10 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
5 4
M1 M0
Chc nng Chn model cho b nh thi 1 Bt iu khin cng. Khi c set ln 1, b nh thi ch hot ng trong khi INT1 mc cao Bt chn chc nng m hoc nh thi: 1= m s kin 0= nh thi trong mt khong thi gian Bit chn ch th nht 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 Bit iu khin cng cho b nh thi 0 Bit chn chc nng m / nh thi cho b nh thi 0 Bit chn ch th nht cho b nh thi 0 Bit chn ch th 2 cho b nh thi 0 TR0 IE1 IT1 IE0 IT0 Chc nng iu khin b inh thi C tr n ca b nh thi 1. C n y c set bi phn cng khi c tr n, c xo bi phn mm, hoc bi phn cng khi b vi x l tr n trnh phc v ngt Bit iu khin hot ng ca b nh thi 1. Bit n y c set hoc xo bi phn mm iu khin b nh thi hot ng hay ngng C tr n ca b nh thi 0 Bit iu khin hot ng ca b nh thi 0 C ngt bn ngo i 1 (kch khi cnh). C n y 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 - 11 S nh 38 ng 36 L Thanh Ngh
DKS_GROUP www.EmbestDKS.com
048684577
DKS_GROUP
TCON.2 TCON.1 TCON.0 EA IE IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0
phc v ngt C ngt bn ngo i 1 (kch khi cnh hoc mc). C n y c set hoc xo bi phn mm khi xy ra cnh m hoc mc thp ti chn ngt ngo i C ngt bn ngo i 0 (kch khi cnh) C ngt bn ngo i 0 ( kch khi cnh hoc mc) ES ET1 EX1 EX0 ET0 iu khin cc ngun ngt (0: khng cho php; 1: cho php) Cho php/ khng cho php to n cc Khng s dng Cho php ngt do b nh thi 2 Cho php ngt do port ni tip Cho php ngt cho b nh thi 1 Cho php ngt t bn ngo i (ngt ngo i 1) Cho php ngt t bn ngo i (ngt ngo i 0) Cho php ngt do b nh thi 0
Ch : 3 thanh ghi n y 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 Reset h thng Ngt ngo i 0 B nh thi 0 Ngt ngo i 1 B nh thi 1 Port ni tip B nh thi 2 Timer Program excution without interrut Main Program C RST IE0 TF0 IE1 TF1 RI hoc TI TF2 hoc EXF2 a ch vector 0000H 0003H 000BH 0013H 001BH 0023H 002BH
ISR
ISR
ISR
- 12 Main Main
S nh 38 ng 36 L Thanh Ngh
Main
048684577
DKS_GROUP
**
**
**
Mt chng trnh chnh khng c ngt th chy lin tc, cn chng trnh c ngt th c khi n o iu kin ngt c m b o th con tr s nhy sang h m ngt thc hin xong h m 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 t i liu u khng gii thch ngt l m 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 v o tin trnh ca h m main vi chng trnh c ngt : Chng trnh chnh ang chy, ngt xy ra, thc hin h m 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 h m chnh l rt ln,thi gian thc hin h m ngt l rt nh, cho nn thi gian thc thi h m ngt khng nh hng nhiu lm n chc nng h m chnh. Nh vy trong h m ngt cc bn l m 1 vic, trong h m chnh cc bn l m 1 vic nh vy coi nh cc bn l m 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 l m th n o va iu ch xung PWM iu chnh tc ng c , va c cc cm bin u v o m tc ng c ph thuc u v o cm bin.
DKS_GROUP www.EmbestDKS.com
- 13 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
048684577
DKS_GROUP
long n=0; //Khai bo v nh ngha cc h m void H m1(void) { //Cc cu lnh } void H m2(unsigned char x) { //Cc cu lnh } //H m chnh bt buc chng trnh n o cng phI c void main(void) { //Cc cu lnh } Cc cu lnh trong h m chnh c th c li gi cc h m khai bo trn hoc k Khi c li gi h m n o th chng trnh nhy n h m thc hin h m xong con tr li quay v chng trnh chnh(h m main) thc hin tip cc h m 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 l m g v sau khi chng trnh ln d sa li. 2.2)Cc lo i bi n trong C:
D ng bi n char unsigned char short unsigned short S Bit 8 8 16 16 Byte 1 1 2 2 S Mi tr Min gi tr -128 0 0 -32,768 n +127 n +32,767
DKS_GROUP www.EmbestDKS.com
- 15 -
048684577
DKS_GROUP
16 16 32 32
2 2 4 4
-32,768 0
n +32,767
n 65,535
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 i u khi n trnh d ch chuyn d ng cn h tr cc lo i bi n sau:
D ng bi n bit sbit sfr sf16 Mi tr S Bit S Byte Min gi tr 1 1 8 16 0 0 1 2 0;1 0;1 0 0 n 255 n 65,535
Trong bit c th dng nh cc bi n c a C++ nhng cc lo i bi n cn l i th lin quan n cc thanh ghi ho c a ch c ng c a 8051. C ngha l khi khai bo bi n ki u bit th khng c n nh a ch trong RAM cho cc bi n , cn khi khai bo bi n ki u sbit, sfr, sf16 th ph i nh r a ch trong RAM v n l cc d ng bi n c bi t g i l special function registers (= cc thanh ghi co ch c nng c bi t vi t t t l SFR) VD: Bit Kiemtra; Sfr P10=0x90; DKS_GROUP www.EmbestDKS.com
- 16 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
2.3)Hm trong C:
Hm trong C c c u trc nh sau: C hai lo i hm: Hm tr l i gi tr : C u trc: Ki ugiatr hamtr l i Tnhm (Bintruy nvohm) { // 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 l i gi tr : C u trc: void Tnhm (Bintruy nvohm) { // Cc cu lnh x l y } V d : void Cong(unsigned char x, unsigned char y) { // Cc cu lnh x l y }
H m c th c bin truyn v o hoc khng. V d: H m khng c bin truyn v o: unsigned char Tnh m(void) { // Cc cu lnh x l y } H m c bin truyn v o: void Tnh m(unsigned char x) { // Cc cu lnh x l y DKS_GROUP www.EmbestDKS.com
- 17 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
} S bin truyn v o ty (min b nh), ngn cch bi du , V d: Void TnH m(unsigned char x, unsigned char y, unsigned char z) { // Cc cu lnh x l y } Ngo I ra ring cho vi iu khin phn phm Keil C cn c mt loi h m l h m ngt: Cu trc: Void Tnh m(void) interrupt ngunngt using bngthanhghi { } H m ngt khng c php tr li gi tr hay truyn tham bin v o h m. Tn h m bt k Interrupt l t kha ch h m ngt Ngun ngt t 0 ti 5 theo bng vector ngt
Ngt do Reset h thng Ngt ngo i 0 B nh thi 0 Ngt ngo i 1 B nh thi 1 Port ni tip B nh thi 2 C RST IE0 TF0 IE1 TF1 RI hoc TI TF2 hoc EXF2 a ch vector 0000H 0003H 000BH 0013H 001BH 0023H 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 www.EmbestDKS.com
- 18 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 v o 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 www.EmbestDKS.com
- 19 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Thc hin lp cc cu lnh khi iu kin ng, nu cu lnh sai thi thot khi vng lp
DKS_GROUP www.EmbestDKS.com
- 20 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
t o 1 project m i ch n Project
DKS_GROUP www.EmbestDKS.com
- 21 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
c hnh sau:
DKS_GROUP www.EmbestDKS.com
- 22 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
048684577
DKS_GROUP
048684577
DKS_GROUP
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 y ,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: DKS_GROUP www.EmbestDKS.com
- 25 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 www.EmbestDKS.com
- 26 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 28 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 29 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
c c a s nh sau:
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 31 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Save As ho c Ctrl+S.
nh file m c d cha c g.
DKS_GROUP www.EmbestDKS.com
- 32 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
c c a s sau:
DKS_GROUP www.EmbestDKS.com
- 33 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 www.EmbestDKS.com
- 34 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 35 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 www.EmbestDKS.com
- 36 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 www.EmbestDKS.com
- 37 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 <AT89X51.H>
DKS_GROUP www.EmbestDKS.com
- 38 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 39 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 www.EmbestDKS.com
- 40 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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:
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 DKS_GROUP www.EmbestDKS.com
- 41 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 .
048684577
DKS_GROUP
Save
nh file v a so n th o.
- 43 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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. 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
18
X2
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) { DKS_GROUP www.EmbestDKS.com
- 44 S nh 38 ng 36 L Thanh Ngh
VCC
40
470
048684577
DKS_GROUP
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 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:
DKS_GROUP www.EmbestDKS.com
- 45 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Cc b n s th y nh sau:
Trong c a s Output Window ngay pha trn dng ch ny c cc dng ch Compiling Linking DKS_GROUP www.EmbestDKS.com
- 46 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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:
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 DKS_GROUP www.EmbestDKS.com
- 47 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 48 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 49 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 50 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Ch n OK.
DKS_GROUP www.EmbestDKS.com
- 51 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
debug cc b n nh n t h p phm Ctrl + F5. Ho c nh n vo icon c ch D m u trong ci knh lp trn thanh cng c . c c a s sau:
Trong menu Peripherals(cc thi t b ngo i vi) ch n IO port , Port 1. c nh sau: DKS_GROUP www.EmbestDKS.com
- 52 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 DKS_GROUP www.EmbestDKS.com
- 53 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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. 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.
DKS_GROUP www.EmbestDKS.com
- 54 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Bi 3: i u khi n IO.
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
18
X2
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. 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. DKS_GROUP www.EmbestDKS.com
- 55 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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. DKS_GROUP www.EmbestDKS.com
- 56 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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? 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 <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 www.EmbestDKS.com
- 57 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
/************************************************************/ /*******************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 www.EmbestDKS.com
- 58 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 d ng Keil C y nh. Ch #define bat 1 v #define tat 0. V led l p ki u khc m.
DKS_GROUP www.EmbestDKS.com
- 59 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 60 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 61 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
* c th n p chng trnh vo chp th f i t o ra file .hex. t o ra file .hex lm nh sau . Vo Option for target ch ch nh t n s th ch anh.
DKS_GROUP www.EmbestDKS.com
- 62 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
c hnh sau:
DKS_GROUP www.EmbestDKS.com
- 63 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 64 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Tch vo check : Create Hex File. Nh p OK. Nh n fm F7 d i c a s output window c ch Creating hex file
bin d ch l i . Khi
DKS_GROUP www.EmbestDKS.com
- 65 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
3.4) N p chp: C m u c ng COM vo c ng COM my tnh. C m ngu n vo m ch n p. Cho chp vo socket 40 chn mu xanh. R t ch ph i cho ng chi u chp khng l h ng. Chi u chp gi ng chi u con chp c s n trong m ch(Chp MASTER). M ph n m m EZDL4 ln. Th y c ch identifing target chip . Nhy. G t c n nh socket 40 chn k p chp cho ti p xc. Trn EZDL4 s th y ch AT89C51 ho c AT89C52 ty cc b n dng lo i chp no. Kch vo Send. Ch n ng d n n th m c lu project c a b n ch n file : Dieukhienled_IO.hex . Nh n OK. Ch m ch bo ch Complete th g t n y trn socket l y chp ra c m vo m ch. 3.5) K t qu : C m ngu n vo m ch . Ch khng c m ng c m dng. N u m ch khng ch y rt ngu n ra ki m tra cc ch sau: 1) Ki m tra m ch dao ng xem t ng gi tr khng, l p ng s khng, l p c l ng khng. 2) Ki m tra xem t m ch reset chn 9 l p ng c c khng, c l ng khng. Dng ng h o chn 9 n u 0V ho c x p x 0V l OK. 3) Tr bng l p ng chi u cha, chn 1 vo chn 40. Dng ng h o chn 31(EA) xem c b ng 5V khng , n u 5V th OK. 4) Ki m tra chn 20 n i GND cha, chn 40 n i +5V cha dng ng h o i n p. 5) Ki m tra xem l p ng chi u led cha. 6) Cc b n c th l p l ng chp ho c do ch t l ng board l y tay t m nh con chp xu ng board . N u v n khng ch y th lin l c v i ti. 3.6) i u khi n 8 led t ng chi c 1: Cc b n c th s a l i 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 www.EmbestDKS.com
- 66 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 } } i u khi n 8 led.
DKS_GROUP www.EmbestDKS.com
- 67 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 68 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Ngoi chng trnh ny cc b n c th cho th t cc led t t b t khc nhau c cc ki u nhy khc nhau. 3.7) i u khi n out c c ng: N u cc b n nhm chn v i vi c i u khi n t ng chn 1 vi t code r t t n cng cc b n c th xu t gi tr ra c c ng. Tr c h t cc b n c n n m cc i u nh sau: - 1 c ng c 8 bit t h p 8bit c 28 = 256 tr ng thi. Khi cc b n a ra c ng 1 gi tr a(th p phn) t 0 n 255 th s a s c i ra h nh phn r i a ra cc bit( chn) c a c ng. V d : N u c l nh: P1=1; v 1(10) = 0000 0001(2) nn chn P1_0(bit 0) s b ng 1(5V) cn l i cc t P1_1(bit 1) n P1_7(bit 7) s b ng 0(0V). P1=10; v 10(10) = 0000 1001(2) th s c P1_0 v P1_3 b ng 1(5V) cn l i cc chn khc s l 0(0V). - Cc b n c th a ra c ng 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 th p phn: c s hex : N(16)=abf1 i ra h s 10 N(10)=1.160 + 15.161+ 11.162+ 10.163= B m my tnh h nh. i s nh phn sang hex: G p 4 s nh phn thnh 1 s hex V d : 0010 0001(2) = 21(16) 4 s u c bit 1 = 1 nn 1x21= 2 4 s sau c bit 0 =1 nn 1x20=1. Cc b n th y v t v v i ph n ny d b n c hi u hay khng hi u 1 lt n a s bi t cch lm li n. Cch a ra nh sau: V d l nh P1=1; tng ng v i P1=0x01; P1=10; tng ng v i P1=0x0A; Chng trnh xu t ra c c ng tng ng v i chng trnh i u khi n 8 led t ng 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 www.EmbestDKS.com
- 69 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 v y g code v n m i tay l m t c m c ch 8 n nhy lin ti p cc b n c th lm nh sau: /******************Ham chinh****************************/ void main(void) { DKS_GROUP www.EmbestDKS.com
- 70 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 c a c ng 1 th y c l i h i c a php d ch bit xang tri. hi u thao tc xu t ra c ng , chn, cc cc b n lm cho mnh 1 v d n a 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 th y s thay i cc c ng. 3.8) Kinh nghi m : DKS_GROUP www.EmbestDKS.com
- 71 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
* chuy n i gi a cc h s nhanh cc b n dng ci calculator c ngay trong window. Ch n Start All programs Accessories Calculator. Trong Calculator cc b n ch n menu View Ch n scienctific. Cch chuy n i t khm ph nh. * tnh ra s hex nhanh nh t . Ti v d mu n a chn P3.5 v chn P3.2 xu ng 0(0V) cn cc chn cn l i ta lm nh sau: C cho P3= 100 ; hay 1 gi tr b t k .V code d ch khng l i c php m i debug c nn ph i cho gi tr b t k vo. D ch chng trnh r i nh n Debug. Ra c nh sau:
DKS_GROUP www.EmbestDKS.com
- 72 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Cc b n th y trong c a s m ph ng c ng 3 c ghi gi tr c a c ng 3 l : 0xFF tng ng t t c 8 bit l 1111 1111. Gi cc b n b d u tch trn chn 3.5 v 3.2 i . m t tri qua ph i nh.
DKS_GROUP www.EmbestDKS.com
- 73 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Th y c ng 3 c gi tr l 0xDB. Nh v y cc b n m t cng nh m i s nh phn ra s hex. N u khng dng cch ny l nh trn cc b n ph i ngh trong u ra c dy s 1101 1011 r i i qua s HEX k t qu s l 0xDB nhng m t l m.
C hai lo i led 7 thanh: An t chung v Cat t chung. Hnh trn l s chn c a hai lo i led. N c c u t o nh sau:
7 6 4 2 1 10 9 5 D13A Anot chung A B C D E F G DP 7 6 4 2 1 10 9 5 D12A Catot chung
83
83
DKS_GROUP www.EmbestDKS.com
- 74 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
5VDC
U3
C D E F G
VCC
21 22 23 24 25 26 27
40
EA/VP RESET
- L p m ch: M ch bi tr c( i u khi n led n) nguyn,ch l p thm vo. + B c1: L p 7 i n vo 7 chn c ng P2 t P2.0 n P2.7( T chn 21 Chn 27) c a vi i u khi n. Ch m bit c a c ng 2 t d i ln trn. + B c2: L p led 7 thanh 5 chn pha trn sng, 5 chn pha d i sng(Gi ng l p AT89C51). + B c 3: Dng dy i n cu t cc chn theo s . Chn i u khi n thanh A vo i n tr n i vo P2.0 v c th n chn i u khi n thanh G vo i n tr n i vo P2.7. B qua chn i u khi n d u ch m(Dot chn 5 c a led 7 thanh). + B c 4: Dng dy cu chn 3(ho c chn 8, ho c c hai chn 3 v 8) ln +5V. L p m ch nn dy cu khc mu v r rng trnh nh m l n. - Test led: Cho ngu n vo( D nhin led n bi tr c v n nh p nhy). Rt 1 u i n tr n i v i chn P2.0 c a V K c m xung t th y led 7 thanh sng n A,c m l i i n tr v v tr c. Tng t test 6 thanh cn l i. Thanh no khng sng th ki m tra l i xem c m dy ti p xc cha. V n khng sng th led h ng thay led khc vo. DKS_GROUP www.EmbestDKS.com
- 75 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
4.2) Nguyn l ho t
ng:
Khi c m ngu n vo m ch t t c cc chn c a cc c ng IO c a V K l 5V( N u c ng 0 khng l p i n tr treo th s l 0V). Nhn s m ch khng c chnh l ch i n p nn khng c n no sng. Chng ta mu n sng thanh no ch vi c a ra i n p 0V chn vi i u khi n n i v i thanh . Thanh hi n Thanh t t Gi tr (P2) hi n th s 1: B,C cc thanh cn l i 1111 1001 hi n th s 2: A,B,D,E,G cc thanh cn l i 1010 0100 . hi n th s 8: T t 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 hi n th 1 s ch hi n th ch B: Gi ng s 8 Hi n th ch A: A,B,C,E,F,G D 1000 1000
4.3) L p trnh :
Cch 1: L p trnh d hi u khng c n ph i tnh ton nhng ph i vi t v copy, past v s a 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 www.EmbestDKS.com
- 76 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
} /* Ham tat tat ca cac thanh */ void tat(void) { ThanhA =1; ThanhB =1; ThanhC =1; ThanhD =1; ThanhE =1; ThanhF =1; ThanhG =1; } /* Cac ham hien thi chu va so */ void so1(void) { tat(); ThanhA =1; ThanhB =0; ThanhC =0; ThanhD =1; ThanhE =1; ThanhF =1; ThanhG =1; } void so2(void) { tat(); ThanhA =0; ThanhB =0; ThanhC =1; ThanhD =0; ThanhE =0; ThanhF =1; ThanhG =0; } void so3(void) { tat(); ThanhA =0; ThanhB =0; ThanhC =0; ThanhD =0;
ThanhE =1; ThanhF =1; ThanhG =0; } void so4(void) { tat(); ThanhA =1; ThanhB =0; ThanhC =0; ThanhD =1; ThanhE =1; ThanhF =0; ThanhG =0; } void so5(void) { tat(); ThanhA =0; ThanhB =1; ThanhC =0; ThanhD =0; ThanhE =1; ThanhF =0; ThanhG =0; } void so6(void) { tat(); ThanhA =0; ThanhB =1; ThanhC =0; ThanhD =0; ThanhE =0; ThanhF =0; ThanhG =0; } void so7(void) { tat(); - 77 S nh 38 ng 36 L Thanh Ngh
DKS_GROUP www.EmbestDKS.com
048684577
DKS_GROUP
ThanhA =0; ThanhB =0; ThanhC =0; ThanhD =1; ThanhE =1; ThanhF =1; ThanhG =1; } void so8(void) { tat(); ThanhA =0; ThanhB =0; ThanhC =0; ThanhD =0; ThanhE =0; ThanhF =0; ThanhG =0; } void so9(void) { tat(); ThanhA =0; ThanhB =0; ThanhC =0; ThanhD =0; ThanhE =1; ThanhF =0; ThanhG =0; } void chuA(void) { tat(); ThanhA =0; ThanhB =0; ThanhC =0; ThanhD =1; ThanhE =0; ThanhF =0; ThanhG =0; }
void chuB(void) { tat(); ThanhA =0; ThanhB =0; ThanhC =0; ThanhD =0; ThanhE =0; ThanhF =0; ThanhG =0; } void chuC(void) { tat(); ThanhA =0; ThanhB =1; ThanhC =1; ThanhD =0; ThanhE =0; ThanhF =0; ThanhG =1; } void chuD(void) { tat(); ThanhA =0; ThanhB =0; ThanhC =0; ThanhD =0; ThanhE =0; ThanhF =0; ThanhG =1; } void chuE(void) { tat(); ThanhA =0; ThanhB =1; ThanhC =1; ThanhD =0; ThanhE =0; ThanhF =0; - 78 S nh 38 ng 36 L Thanh Ngh
DKS_GROUP www.EmbestDKS.com
048684577
DKS_GROUP
ThanhG =0; } void chuF(void) { tat(); ThanhA =0; ThanhB =1; ThanhC =1; ThanhD =1; ThanhE =0; ThanhF =0; ThanhG =0; } void chuG(void) { tat(); ThanhA =0; ThanhB =1; ThanhC =0; ThanhD =0; ThanhE =0; ThanhF =0; ThanhG =1; } void chuH(void) { tat(); ThanhA =1; ThanhB =0; ThanhC =0; ThanhD =1; ThanhE =0; ThanhF =0; ThanhG =0; } void chuI(void) { tat(); ThanhA =1; ThanhB =1; ThanhC =1; ThanhD =1;
ThanhE =0; ThanhF =0; ThanhG =1; } void chuL(void) { tat(); ThanhA =1; ThanhB =1; ThanhC =1; ThanhD =0; ThanhE =0; ThanhF =0; ThanhG =1; } void chuO(void) { tat(); ThanhA =0; ThanhB =0; ThanhC =0; ThanhD =0; ThanhE =0; ThanhF =0; ThanhG =1; } void chuP(void) { tat(); ThanhA =0; ThanhB =0; ThanhC =1; ThanhD =1; ThanhE =0; ThanhF =0; ThanhG =0; } void chuR(void) { tat(); ThanhA =0; ThanhB =0; - 79 S nh 38 ng 36 L Thanh Ngh
DKS_GROUP www.EmbestDKS.com
048684577
DKS_GROUP
ThanhC =0; ThanhD =1; ThanhE =0; ThanhF =0; ThanhG =0; } void chuS(void) { tat(); ThanhA =0; ThanhB =1; ThanhC =0; ThanhD =0; ThanhE =1; ThanhF =0; ThanhG =0; } void chuU(void) { /* Ham chinh */ void main(void) { while(1) { so0(); delay(20000); so1(); delay(20000); so2(); delay(20000); so3(); delay(20000); so4(); delay(20000); so5(); delay(20000); so6(); delay(20000); so7(); delay(20000); so8(); delay(20000);
tat(); ThanhA =1; ThanhB =0; ThanhC =0; ThanhD =0; ThanhE =0; ThanhF =0; ThanhG =1; } void chuY(void) { tat(); ThanhA =1; ThanhB =0; ThanhC =0; ThanhD =0; ThanhE =1; ThanhF =0; ThanhG =0; } so9(); delay(20000); chuA(); delay(20000); chuB(); delay(20000); chuC(); delay(20000); chuD(); delay(20000); chuE(); delay(20000); chuF(); delay(20000); chuG(); delay(20000); chuH(); delay(20000); chuI(); delay(20000); chuL(); delay(20000); chuO(); - 80 S nh 38 ng 36 L Thanh Ngh
DKS_GROUP www.EmbestDKS.com
048684577
DKS_GROUP
4.4) N p chp:
h ng d n. N u cc b n g p ph i v n c a m ch n p. Th ng l: + Treo chip Master: Rt ngu n m ch n p ra, i cht r i c m l i. + Khng nh n c ng COM. Cc b n nh p chu t ph i vo Mycomputer, ch n Properties Device manage. Nh n vo Scan for hardware change my tnh nh n l i c ng COM. R i kh i ng l i my. + L do khc cc b n th ki m tra ph n c ng m ch n p. + V n khng c ti ch u. T bi sau s khng c ph n ny.
4.5) K t qu :
Nhn vo hm main cc b n th y chng trnh s hi n th s 1 led 7 thanh, tr 1 kho ng th i gian, r i nh y sang s 2 n s 9 , r i n ch . N u cc b n khng c hm tr th led s hi n th ra sao? Led s hi n s 8. V t t c 8 led c b t t t qu nhanh (ch c n >24 Hz) do hi n t ng lu nh m t cc b n s nhn th y t t c cc led sng ch khng hi n s .
- 81 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Sau khi th c hi n theo cc rt g n nh vi t hm s 1 trn cc b n p d ng c u trc l nh switch case vi t l i chng trnh th chng trnh s r t g n.
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 } }
DKS_GROUP www.EmbestDKS.com
- 82 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Ph n 1:
Nhi m v : 5.1) L p m ch nh sau:
c 1 phm.
n 9 hi n th ra led 7 thanh.
m s l n phm b m gi i h n t 0
5VDC
VCC
40
D12 LED
- M ch bi 5 led 7 thanh gi nguyn. L p m ch: qu n gi n. B c 1: L p 1 nt b m u trn m ch. B c 2: Dng dy cu 1 chn nt b m v i P1.0( Thay th led bi 4). B c 3: Dng dy cu 1 chn nt b m xu ng t. B c 4: L p 1 t 104 gi a 2 chn nt b m. DKS_GROUP www.EmbestDKS.com
- 83 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
B c 5: L p tr vo chn P1.0 v led t +5V vo u tr cn l i(Ch ng chi u led. - Test nt b m: C m ngu n vo, nh n nt n sng. Nh nt n t t.
5.2) Nguyn l ho t
ng:
- Ph n nt b m: (khi khng c t 104) ban u chn P1.0 m c cao +5V, n u b m nt 2 u nt b m thng v i nhau. Chn P1.0 thng v i GND. Led sng do c chnh p. Chn P1.0 thng t. N u c t 104 t i n c n p i n, khi b m nt t i n s phng i n t c c dng sang c c m lm chn P1.0 thng v i GND nhng lu v 0 V hn 1 cht( tr c ng). - Khi b m nt theo nguyn l thi b m 1 ci l xu ng 0 li n, nhng do ti p i m c kh c a nt b m nn khi b m nt n s c 1 s xung i n ch khng ph i l b m ci l n xu ng 0 lun. T 104 gi m nhi u . T 104 cng c th b i khng l p v ta c th kh nhi u b ng ph n m m.
5.3) L p trnh:
Code bi 5 gi nguyn: so n thm m t s hm nh sau hm Hm c s l n n phm. c phm b m.
DKS_GROUP www.EmbestDKS.com
- 84 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 85 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Hm hi n th s tng ng.
DKS_GROUP www.EmbestDKS.com
- 86 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Hm main c s a l i nh sau:
DKS_GROUP www.EmbestDKS.com
- 87 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 www.EmbestDKS.com
- 88 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
- 89 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 90 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Trong khung pha d i chnh l Watch& Call Stack Window. Chuy n sang tab watch#1, nh p chu t vo ch F2 to edit,nh n F2 v g vo tn bi n c n quan st.
DKS_GROUP www.EmbestDKS.com
- 91 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Ph n 1 k t thc. Chng ta quan st bi n I, nn g I vo v c hnh nh trn. Cc b n nh n F11 ch y m ph ng. M i l n n phm, cho chn P1.0 xu ng 0 r i ln 1, tng ng v i n phm v nh phm I s tng 1 nh sau: (Khi n phm ph i ch hm delay(300) v hm while(P1_0 ==0) xong I m i tng v mnh l p trnh th m.
DKS_GROUP www.EmbestDKS.com
- 92 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Gi tr c a I hi n th theo s hex.
Ph n 2:
c ma tr n phm.
Nhi m v : Qut bn phm 16 phm b m(4x4), xem phm no c b m, cc phm c nh s t 0 n 15 r i hi n th gi tr ra led 7 thanh.
5.1) L p m ch theo s
sau:
5V
5VDC 5V 40
R26 10Kx8
R27 R
R28 R
R25 R
A B C D E F G
21 22 23 24 25 26 27
PHIM 2 2 1
PHIM 3 2 1
PHIM 4 2
VCC
HANG 1
PHIM 6 2 1 PHIM 7 2 1 PHIM 8 2 R
R21
EA/VP RESET
PHIM 10 1 2 1
PHIM 11 2 1
PHIM 12 2
LED 7 THANH
C2 33p 18 12Mhz C1 33p 19 20 X1 VSS 8051 X2
10 11 12 13 14 15 16 17
HANG 2
R
R22
PHIM 13 1 2 1
PHIM 14 2 1
PHIM 15 2 1
PHIM 16 2
HANG 3
R
R23
R24
DKS_GROUP www.EmbestDKS.com
- 93 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
5.3) L p trnh:
- T o 1 project m i, copy ph n hi n th cc s 09 cc ch AY c a bi tr c. R i b sung cc hm sau. Hm hi n th phm n.
void phim_duoc_an(unsigned char phim) {
DKS_GROUP www.EmbestDKS.com
- 94 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 Main.
void main(void) { unsigned char i;
DKS_GROUP www.EmbestDKS.com
- 95 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Thm cu l nh #define vo
u chng trnh:
DKS_GROUP www.EmbestDKS.com
- 96 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Vi t hm phm c n:
DKS_GROUP www.EmbestDKS.com
- 97 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 98 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 99 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Nhi m v : i u khi n hi n th LCD 16x2 dng ch www.EmbestDKS.com ch y trn mn hnh LCD. C 16 chn nh sau: Chn K hiu I/O M t 1 VSS t 2 VCC Dng ngun 5v 3 VEE 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 an t v kat t c a 1 con led dng sng LCD trong bng t i. Chng ta khng s d ng. N u cc b n mu n dng th n i chn A qua 1 i n tr t 1K n 5K ln dng 5V, chn K xu ng t n s sng.
6.1) L p m ch theo s
sau:
DKS_GROUP www.EmbestDKS.com
- 100 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
LCD16x02
J1 LCD
+ C3 CAPACITOR POL
R3 10K
AT89C51
20
GND
P1.0 P0.0/AD0 P1.1 P0.1/AD1 P1.2 P0.2/AD2 P1.3 P0.3/AD3 P1.4 P0.4/AD4 P1.5 P0.5/AD5 P1.6 P0.6/AD6 P1.7 P0.7/AD7 RST EA/VPP P3.0/RXD ALE/PROG P3.1/TXD PSEN P3.2/INT0 P2.7/A15 P3.3/INT1 P2.6/A14 P3.4/T0 P2.5/A13 P3.5/T1 P2.4/A12 P3.6/WR P2.3/A11 P3.7/RD P2.2/A10 XTAL2 P2.1/A9 XTAL1 P2.0/A8 VCC
39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
1 D7 D6 D5 D4 D3 D2 D1 D0
EN
DKS_GROUP www.EmbestDKS.com
- 101 -
Rw
RS
048684577
S nh 38 ng 36 L Thanh Ngh
DKS_GROUP
- H ng d n: C m lun 8 bit d li u c a LCD t D0 n D7 vo c ng 2 c a 8051 m khng c n cu dy. th a 6 chn ra ngoi l: EN,RW,RS,Ve, Vcc, GND ra ngoi. R i dng dy cu chn 1 xu ng GND, chn 2 ln +5V, chn 3 vo chn gi a c a bi n tr tinh 5K, 2 chn cn l i c a bi n tr tinh 1 chn cu ln +5V,1 chn cu xu ng 0V. 6.2) Nguyn l ho t ng c a LCD:
- Chn VCC, VSS v VEE: Cc chn VCC, VSS v VEE: Cp dng ngun 5v v t tng ng th VEE 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 m n 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 v o 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 n y LCD cht d liu trn cc chn d liu. Xung n y 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 n y khi bt RS = 1. Cng c cc m lnh m c th c gi n LCD xo m n 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 s ng 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 n o. Khi D7 = 0 th LCD sn s ng nhn thng tin mi. Lu chng ta nn kim tra c bn trc khi ghi bt k d liu n o ln LCD. - Sau y l bng m lnh ca LCD: DKS_GROUP www.EmbestDKS.com
- 102 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
M (Hex) 1 2 4 6 5 7 8 A C E F 10 14 18 1C 80 C0 38
Lnh n thanh ghi ca LCD Xo m n hnh hin th Tr v u dng Gim con tr (dch con tr sang tri) Tng con tr (dch con tr sang phi) Dch hin th sang phi Dch hin th sang tri Tt con tr, tt hin th Tt hin th, bt con tr Bt hin th, tt con tr Bt hin th, nhp nhy con tr Tt con tr, nhp nhy con tr Dch v tr con tr sang tri Dch v tr con tr sang phi Dch to n b hin th sang tri Dch to n b hin th sang phi p con tr v u dng th nht p con tr v u dng th hai Hai dng v ma trn 5 7
- i u khi n LCD qua cc b c sau: B c 0 : Chu n b ph n c ng. Dng tu c vt hay ci g b n c xoay bi n tr 5 K i u ch nh tng ph n c a LCD. Xoay cho n khi cc vung(cc i m nh) c a LCD hi n ln th xoay ng c bi n tr l i 1 cht. B c 1 : Kh i t o cho LCD. B c 2 : Gn cc gi tr cho cc bit i u khi n cc chn RS,RW,EN cho ph h p v i cc ch : Hi n th k t ln LCD hay Th c hi n 1 l nh c a LCD. B c 3: Xu t byte d li u ra c ng i u khi n 8 bit d li u c a LCD. B c 4: Ki m tra c b n xem LCD s n sng nh n d li u m i cha. B c 5: Quay vng l i b c 1.
6.3) L p trnh:
c th l p trnh cho LCD ta thm vo th vi n string.h c a trnh bin d ch b ng cu l nh:
#include <string.h> - Khai bo cc chn c a LCD g n v i cc c ng: /* RS chon thanh ghi =0 ghi lenh
DKS_GROUP www.EmbestDKS.com
- 103 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
=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; - Vi t 1 s hm i u khi n LCD nh sau: * Hm ki m tra LCD c b n 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 i u khi n LCD th c hi n 1 l nh: 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 bi n u vo l cc gi tr trong b ng m l nh c a LCD. * Hm kh i t o LCD: void LCDinit(void) {
DKS_GROUP www.EmbestDKS.com
- 104 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 l nh cho LCD hi n 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 bi n u vo l m c a k t trong b ng ASCII. * Hm l nh cho LCD hi n 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 bi n u vo l : xu k t c n hi n th v dng c n hi n th xu (1 ho c 2). *s l con tr , tr t i bi n s 6.3.1) Con tr l g? B nh c a V K cc b n t ng t ng nh 1 ci t nhi u ngn. Khi khai bo 1 bi n, v d bi n ki u unsigned char i; th v k lu bi n I vo 1 ngn trong t _ 1 nh trong b nh , d nhin xc nh cc ngn t ng i ta nh s cho t ng ngn, cn v k c p cho cc nh trong b nh 1 a ch xc nh nh .V d ti p: I c gi tr l 100, th n i dung c a nh DKS_GROUP www.EmbestDKS.com
- 105 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
lu bi n I l 100,i=100, cn con tr tr n I c gi tr l a ch c a nh ch a bi n I . 6.3.2) Cch s d ng con tr : khai bo con tr c thm d u * tr c tn bi n. *I l bi n ki u con tr , tr t i bi n i(unsigned char). I mang gi tr t 0 n 255, *I mang i ch c a nh ch a i.
* Hm hi n 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 bi n
u vo l s int l n
n hng nghn c n hi n 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 www.EmbestDKS.com
- 106 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
delay(5000);// Tre } } }
DKS_GROUP www.EmbestDKS.com
- 107 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Nhi m v :
t c T o ra xung c r ng thay ng c (10 c p t c ). i, 10 c p, t n s 1Khz, i u khi n
7.1) L p m ch theo s
12V
sau:
5VDC
U1 2C
VCC
40
C828 1E 1
3B
21
P2.0 EA 31 9
+ DC Motor
RESET
A
2 C2 33p 12Mhz C1 33p 19 20 X1 VSS 8051 1 1 2 1
SW2 2
- H ng d n: Chn c a C828 l ECB, n u c m xui transitor nhn vo m t c ch , tnh t bn tri sang. 7.2) L p trnh: - Cch t o xung c r ng thay i b ng V K. DKS_GROUP www.EmbestDKS.com
- 108 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
+ Cch 1: Nh cc b n i u khi n nh p nhy 1 con led, l t o ra 1 xung 1 chn c a vi i u khi n, nhng xung c r ng c nh, t n s l n, cch b n c th i u ch nh l i hm delay t n s c a n ng 1 Khz. Tuy nhin v l dng hm delay nn trong th i gian c xung ln 1(5V) v th i gian khng c xung(0V) vi i u khi n khng lm g c , hn n a t o xung b ng vi c delay m cc b n c nhu c u c n 2 b pht xung 2 knh, c cng t n s m khc r ng xung th tr nn r t kh khn. Cho nn chng ta dng b nh th i Timer c a vi i u khi n trong tr ng h p ny r t ti n. + Cch 2: Dng ng t Timer c a b vi i u khi n. Tr c h t nh c l i v ng t c a vi i u khi n: + Ng t l g ? tr l i cu h i ny ti xin trch 2 v d cho ng t timer: an v ng t trong bi
Timer
ISR
ISR
ISR
Main
**
Main
**
Main
**
Main
Mt chng trnh chnh khng c ngt th chy lin tc, cn chng trnh c ngt th c khi n o iu kin ngt c m b o th con tr s nhy sang h m ngt thc hin xong h m 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 DKS_GROUP www.EmbestDKS.com
- 109 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 t i liu u khng gii thch ngt l m 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 v o tin trnh ca h m main vi chng trnh c ngt : Chng trnh chnh ang chy, ngt xy ra, thc hin h m 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 h m chnh l rt ln,thi gian thc hin h m ngt l rt nh, cho nn thi gian thc thi h m ngt khng nh hng nhiu lm n chc nng h m chnh. Nh vy trong h m ngt cc bn l m 1 vic, trong h m chnh cc bn l m 1 vic nh vy coi nh cc bn l m 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 l m th n o va iu ch xung PWM iu chnh tc ng c , va c cc cm bin u v o m tc ng c ph thuc u v o cm bin. V y ng t l 1 i u ki n no x y ra ng u nhin m vi i u khi n c th bi t do ph n c ng c a vi i u khi n, r i ta cn c vo l p trnh. * V d : V i ng t b nh th i timer, hay b m counter l khi trn b m th ph n c ng c a vi i u khi n s b o c ng t x y ra v nh y n chng trnh ph c v ng t( ISR_ Interrupt Sevice Rountine) 1 cch t ng. V i ng t ngoi, chn P3.2 ch ng h n, n u ta khai bo tr c chn s d ng chn P3.2 s d ng cho ng t ngoi ch khng ph i s d ng cho m c ch IO th c khi c 1 xung xu t hi n t m ch ngo i vi truy n vo chn P3.2 th ph n c ng c a vi i u khi n nh n ra v chuy n t i chng trnh ph c v ng t. V i ng t c ng n i ti p th c kh thu song 1 k t hay truy n song 1 k t c ng n i ti p, n u ta c s d ng ng t truy n d li u n i ti p th vi i u khi n s nh y t i chng trnh ph c v ng t. - Hm ng t: Cu trc: Void Tnh m(void) interrupt ngunngt using bngthanhghi { // Chuong trinh phuc vu ngat o day } Ch v hm ng t: DKS_GROUP - 110 S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP
+ H m ngt khng c php tr li gi tr hay truyn bin v o h m. + Tn h m bt k. + interrupt l t kha phn bi t h m ngt v i hm th ng. + Ngun ngt t 0 ti 5 theo bng vector ngt. + Bng thanh ghi trn ram chn t 0 n 3. Ty theo b n vi t hm ng t cho ngu n no b n ch n ngu n ng t t b ng sau:
Ngt do Reset h thng Ngt ngo i 0 B nh thi 0 Ngt ngo i 1 B nh thi 1 Port ni tip B nh thi 2 C RST IE0 TF0 IE1 TF1 RI hoc TI TF2 hoc EXF2 a ch vector 0000H 0003H 000BH 0013H 001BH 0023H 002BH
- V using 0: C 4 bng thanh ghi b n c th ch n cho chng trnh ph c v ng t, ci ny cng khng quan tr ng. Trong hm ng t cc b n c th b i t using 0, khi vi i u khi n s t s p x p l dng bng thanh ghi no. - Hm ng t khc hm bnh th ng ch no. Hm bnh th ng v d hm delay, c khi b n g i n th n s c th c hi n, c ngha l n c v tr c nh trong ti n trnh hm main, c ngha l b n bi t n x y ra khi no. Cn hm ng t th khng c ti n trnh c nh, i u ki n ng t c th x y ra b t k lc no trong ti n trnh hm main v c khi no c i u ki n ng t th hm ng t s c g i t ng. s d ng ng t ta ph i lm cc cng vi c sau: 1) Kh i t o ng t: dng ng t no th cho php ng t ho t ng b ng cch gn gi tr tng ng cho thanh ghi cho php ng t IE( Interrupt Enable):
EA IE IE.7 IE.6 IE.5 ET2 EA --ET2 ES ET1 EX1 EX0 ET0 iu khin cc ngun ngt (0: khng cho php; 1: cho php) Cho php/ khng cho php to n cc Khng s dng Cho php ngt do b nh thi 2 - 111 S nh 38 ng 36 L Thanh Ngh
DKS_GROUP www.EmbestDKS.com
048684577
DKS_GROUP
Cho php ngt do port ni tip Cho php ngt cho b nh thi 1 Cho php ngt t bn ngo i (ngt ngo i 1) Cho php ngt t bn ngo i (ngt ngo i 0) Cho php ngt do b nh thi 0
IE l thanh ghi c th x l t ng bt. V d : b n mu n cho php ngt timer 1 b n dng l nh: ET1=1; Khng cho php n a b n dng l nh : ET1=0; Ho c b n c th dng l nh IE= 0x08; th bit 3 c a thanh ghi IE t c(IE) s ln 1. Nhng cch th nh t ti n hn. 2) C u hnh cho ng t: Trong 1 ng t n l i c nhi u ch v d : v i no, ch timer hay ng t timer. B n ph i c u hnh cho n ch y ch counter, ch 16 bit, hay 8 bit, b ng cch gn cc gi tr tng ng cho thanh ghi TMOD( Timer MODe).
TMOD 7 6 GATE C/T Chn model cho b nh thi 1 Bt iu khin cng. Khi c set ln 1, b nh thi ch hot ng trong khi INT1 mc cao Bt chn chc nng m hoc nh thi: 1= m s kin 0= nh thi trong mt khong thi gian Bit chn ch th nht 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 Bit iu khin cng cho b nh thi 0 Bit chn chc nng m / nh thi cho b nh thi 0 Bit chn ch th nht cho b nh thi 0 Bit chn ch th 2 cho b nh thi 0
5 4
M1 M0
3 2 1 0
GATE C/T M1 M0
V d ti c u hnh cho b nh th i 1 ch timer,v i b m 8 bit t ng n p l i(auto reload) dng l nh sau: TMOD=0x20. Cc b n ng lo v vi c ph i nh b ng thanh ghi ny, cc b n khng ph i nh ni tr ng ra nh v y, chuy n sang ph n l p trnh cc b n s c h ng d n lm th no khng ph i nh , nhng ch l p trnh v i C m i lm c cn l p trnh Asem th b t bu c ph i nh . 3)B t u chng trnh c ng t: DKS_GROUP www.EmbestDKS.com
- 112 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
-Tr c khi b t u cho ch y chng trnh ta ph i cho php ng t ton c c c x y ra b ng cch gn EA(Enable All interrupt) b ng 1, th ng t m i x y ra. -Th ng th ngay vo u chng trnh(hm main) tr c vng while(1) chng ta t cng vi c kh i t o, c u hnh v cho php ki m tra nh th i timer ta gn cc gi tr ph h p cho thanh ghi ng t. V d v i b TCON( Timer CONtrol). TCON iu khin b inh thi TCON.7 TF1 C tr n ca b nh thi 1. C n y c set bi phn cng khi c tr n, 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 n y c set hoc xo bi phn mm iu khin b nh thi hot ng hay ngng TCON.5 TF0 C tr n ca b nh thi 0 TCON.4 TR0 Bit iu khin hot ng ca b nh thi 0 TCON.3 IE1 C ngt bn ngo i 1 (kch khi cnh). C n y 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 ngo i 1 (kch khi cnh hoc mc). C n y c set hoc xo bi phn mm khi xy ra cnh m hoc mc thp ti chn ngt ngo i TCON.1 IE0 C ngt bn ngo i 0 (kch khi cnh) TCON.0 IT0 C ngt bn ngo i 0 ( kch khi cnh hoc mc) V d ch y b nh th i timer 1 ta dng cu l nh: TR1=0; TR1(Timer Run 1). Cn b n no thch kh th:TCON=0xxx; Cn cc lo i ng t khc qu trnh tng t , y l kha h c c b n ch lm vi c v i ng t timer, trong kha nng cao s c cc ng t cn l i, tuy nhin lm vi c c v i ng t timer th cc ng t khc cc b n cng c th lm tng t , cc b n lm n ng t no th dng ti li u tra b ng thanh ghi c a ng t . Ti li u ti s g i cng bi ny. - Quay tr l i bi h c: DKS_GROUP www.EmbestDKS.com
- 113 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Sau khi kh i t o song v cho ng t timer 1 ch y th i u g x y ra? Khi b t u cho timer 1 ch y th b m c a timer s m dao ng c a th ch anh, c 12 dao ng c a th ch anh(1 chu k my), b m c a timer 1 TL1(Timer Low1) s tng 1,c th n ni timer 1 m s chu k my. i v i ch 8 bt. TL1 l 1 thanh ghi 8 bt, l b mc ab nh th i r r i. N m c t m trn, TL1 quay vng l i b ng 0, 0, n 255. N u n m n 256 th b v c ng t TF1(Timer Flag 1) t ng c gn ln 1(b ng ph n c ng c a vi i u khi n) nh 1 cng t c t ng b t, v ng t x y ra. Cn v i ch 16 bt, b mc ab nh th i cn 1 thanh ghi 8 bt n a l TH1(Timer high 1), n u c u hnh cho timer 1 ho t ng ch 16 bit th khi TL1 trn n s m sang TH1(TH1 s tng 1). Nh v y ta c th 16 m: 2 chu k my( 2 thanh ghi 8+8=16 bt). Ch l khi b m trn ng t s x y ra. N u ta c n m 256 chu k my th khi kh i t o ta cho TL1=0; , cn n u khng mu n m 256 chu k my m ta ch c n m 100 thi ng t x y ra r i th ta f i lm nh sau: 256-100 = 156; v khi kh i t o ta gn : TL1=155; v m t 155 n 255 l 100 l n th ng t x y ra. V i yu c u c a bi. T o xung t n s 1Khz Chu k = 1/103 = 0,001 giy= 1 mili giy=1000 uS= 1000 chu k my. V i 10 c p t c , t c l b n ph i t o ra c xung 10%, 20%, 30%, 40%, , 90%, 100%. 1 xung nh sau:
048684577
DKS_GROUP
Cc c tnh ny cc b n tham kh o trong gio trnh v my i n, kh c i n, n u cc b n c n thng s chnh xc. c th thay i 10 c p t c v i chu k 1000uS, ta kh i t o cho ng t timer: 100 uS ng t 1 l n. Trong hm ng t ki m tra xem ta c n c p xung bao nhiu % th ta s gn gi tr cho n. C th nh sau: * Hm kh i t o ng t. 2 8 bit t ng n p Dng ng t timer 0, 100 uS ng t 1 l n, dng ch l i c a timer (v mnh ch c n m n 100).TL0 n p b ng 156. i v i ch 2 khi trn b m TL0 s quay vng gi tr b ng 0, nhng sau n l i c n p gi tr lu trong TH0(gi tr n p l i), do ta ch c n gn gi tr choTL0 v TH0 trong hm kh i t o, cn cc ch khc 16 bit, 2 timer counter 8 bit, khi trn b m TL0 khng c n p l i m ta ph i t gn l i gi tr cho n trong hm ng t.
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 www.EmbestDKS.com
- 115 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 116 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
* Hm ng t:
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 r ng xung th ta lu r ng xung vo 1 bi n, v hm ng t khng cho truy n bi n vo ta khai bo bi n l bi n ton c c c th gn gi tr m i hm. 100 uS ng t 1 l n xc nh chu k 1000 uS ta c n m t 1 n 10 ta khai bo bi n 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 }
C u trc hm ng t timer no cng ph i theo, do ch 2t ng n p l i nn k c n gn gi tr cho TH0 v TL0. V bi n dem s m t 1 n 10 n u b ng 10 k t thc 1 chu k 10*100 =1000 uS, ta gn l i n b ng 0 sang chu k m i.
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 l nh ny ki m tra n u m nh hn phantramxung th s a ra c ng gi tr 1, b ng ho c l n hn s a ra gi tr 0. Khi vo chng trnh chnh ta ch vi c thay i gi tr bi n phantramxung th r ng xung s thay i. * Hm main:
void main(void)
DKS_GROUP www.EmbestDKS.com
- 117 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 118 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Gi s khi cc b n gn phantramxung=4; Th c m i 100uS ng t x y ra 1 l n, v ki m tra bi n m. L n u dem=1 <4 nn gi tr P2_0 = 1 m c cao, l n th 2 , 200 uS, dem =2<4 P2_0 = 1 m c cao, l n th 3, 300uS, dem=3<4, P2_0=1 m c cao, l n th 4, 400uS, dem =4 <4 sai, P2_0=0, b t u xu ng m c th p, c xung t cao xung th p, dem = 5<4 sai , P2_0=0 m c th p, , dem =10 <4 sai P2_0 m c th p 1000 uS , 400uS cao, 600uS th p quay vng dem=0, ng t l n th 11, dem=1 < 4 , P2_0=1 m c cao, c xung th p ln cao. PWM 2 chn P2_0 v P3_5, cc b n khai bo thm 1 bi n phantramxung2 v a thm dng l nh sau vo hm ng t.
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 : Th c ra 1 chu k nh ta v a lm khng chnh xc 100% l 1Khz, v ta cha tnh n di c a hm ng t,m i l n ng t 100uS, 10 l n l 1000uS , cn th i gian th c hi n hm ng t n a, nh v y l chu k c a ta l n hn 1000uS, t n s s <1Khz, nhng th c s sai s khng ng k . N u cc b n mu n chnh xc ti cng chi u lng cc b n. Cc b n ch y debug, th ch anh ng 12Mhz, quan sat dng sec xem hm ng t di n ra trong bao nhiu chu k my, khi n p gi tr cho TL0 v TH0 cc b n l y 155 tr i gi tr c ga tr a gn vo, nh v y a+th i gian th c hi n hm ng t ng 100uS.
DKS_GROUP www.EmbestDKS.com
- 119 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 120 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Ch vo list mode: Ch n ch , r i quan st gi tr TMOD r i quay l i i n vo chng trnh. Ch : V cng quan tr ng cc b n ch c ch y v i ng c lo i nh , n u ng c lo i to ph i c m ch i u khi n ring khng l s chy chip. N u khng c m ch i u khi n cc b n c th lm, c th m n c a ti, khng th ch u kh ch y m ph ng.
DKS_GROUP www.EmbestDKS.com
- 121 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 122 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Nhim v: iu khin Led ma trn 8x8. Hin th dng ch chy MTC Chun b: Led ma trn 8x8
8 7 6 5 4 3 2 1
10
11
12
13
14
15
16
H ng 4 2 1 3 6
Chn 9 10 11 12 13 14 15 16
Ct 5 3
H ng 8 5
8 7 2 6
048684577
DKS_GROUP
VCC
1 R3 H ang6 H ang3 C o t4 H ang1 C o t6 C o t7 H ang2 H ang4 U1 Cot1 Cot2 Cot3 Cot4 Cot5 Cot6 Cot7 Cot8 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 Y1 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 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 Hang1 Hang2 Hang3 Hang4 Hang5 Hang6 Hang7 Hang8 8 7 6 5 4 3 2 1 LED MATRIX 1 8x8 19 18 X1 X2 31 9 EA RST 40 VCC 8051 C3 + 10uF R2 10K GND 30 ALE 29 PSEN 9 10 11 12 13 14 15 16 H ang8 C o t5 C o t3 H ang5 C o t8 H ang7 C o t2 C o t1 20 10K C1 33p 12M C2 33p
DKS_GROUP www.EmbestDKS.com
9 8 7 6 5 4 3 2
- 124 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Hang 2
LED D2
LED D3
LED D4
LED D5
LED D6
LED D7
LED D8
LED D8
Hang 3
LED D2
LED D3
LED D4
LED D5
LED D6
LED D7
LED D8
LED D8
Hang 4
LED D2
LED D3
LED D4
LED D5
LED D6
LED D7
LED D8
LED D8
Hang 5
LED D2
LED D3
LED D4
LED D5
LED D6
LED D7
LED D8
LED D8
Hang 6
LED D2
LED D3
LED D4
LED D5
LED D6
LED D7
LED D8
LED D8
Hang 7
LED D2
LED D3
LED D4
LED D5
LED D6
LED D7
LED D8
LED D8
LED Cot1
LED Cot2
LED Cot3
LED Cot4
LED Cot5
LED Cot6
LED Cot7
LED Cot8
Hang 8
Mun cho led sng, cp in dng 5V v o h ng, 0V v o 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 h ng 5(P2_5) ln 5V. Hin th ch: thng k cc im sng th nh ch ri cho cc h ng ct in p tng ng. C th dng cng c debug ly gi tr cng tng ng vi cc led sng. Ging nh qut b n 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 v o 1 mng 8 phn t, ri sau a v o 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 n o sng. V d mun h ng 1 v h ng 3 sng th h ng 1 v 3 c gi tr 5V cn cc h ng khc 0V, ta c gi tr 8 bt sau: 0x05 ( 1010 000). DKS_GROUP www.EmbestDKS.com
- 125 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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 to n 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 v o 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 to n b ct . Qu trnh iu khin hin th nh sau: Ct 1, h ng 1, ct 2 h ng 2, , ct 8 , h ng 8. l m ch chy: Thm 1 bin v o iu khin th t hin th h ng. Hin 1 ch trn led nh trn a ra: Ct 1, h ng 1, ct 2 h ng 2, , ct 8 , h ng 8. Mun ch dch chuyn sang trI ta hin th nh sau: Ct 1, h ng 2, ct 2 h ng 3, , ct 7, h ng 8,ct 8 , h ng 1 k t sau. Ct 1, h ng 3, ct 2 h ng 4, , ct 7 h ng 1 k t sau,ct 8 , h ng 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 www.EmbestDKS.com
- 126 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
// 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 www.EmbestDKS.com
- 127 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
} 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 l m 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 h ng, dng transitor hoc dng lun ULN qut ct.
DKS_GROUP www.EmbestDKS.com
- 128 -
S nh 38 ng 36 L Thanh Ngh
048684577