Professional Documents
Culture Documents
Leon_heaty@yahoo.com
DKS_GROUP www.EmbestDKS.com
-1-
048684577
DKS_GROUP
Mc Lc:
Bi 1: Gii thiu v vi iu khin.
1.1)Tiu chun trong la chn mt b vi iu khin. 1.2)Vi iu khin v vi x l. 1.3)S chn vi iu khin 8051. 1.4) Mch 8051 ti thiu. (6) 1.5)Cu trc_s khi ca vi iu khin 8051. (8) 1.6)Cc thnh vin khc ca h 8051. (9) 1.7)Ram ni v cc thanh ghi SFR ca 8051. (10) 1.8)Gii thiu s qua cc ngun ngt. (13)
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 vo - 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 ngoi v c ni chung vi chn ca OE (Outout Enable) ca EPROM ngoi cho php c cc byte ca chng trnh. Cc xung tn hiu PSEN h thp trong sut thi gian thi hnh lnh. Nhng m nh phn ca chng trnh c c t EPROM i qua bus d liu v c cht vo thanh ghi lnh ca 8051 bi m lnh.(ch vic c y l c cc lnh (khc vi c d liu), khi VXL ch c cc bit opcode ca lnh v a chng vo hng i lnh thng qua cc Bus a ch v d liu) Chn 30 (ALE : Adress Latch Enable) l tn hiu iu khin xut ra ca 8051, n cho php phn knh bus a ch v bus d liu ca Port 0. Chn 31 (EA : Eternal Acess) c a xung thp cho php chn b nh m ngoI i vi 8051. i vi 8051 th : EA = 5V : Chn ROM ni. ROM ngoi. 32 chn cn li chia lm 4 cng vo ra: Vo ra tc l c th dng chn c mc logic (0;1 tng ng vi 0V ; 5V)vo hay xut mc logic ra(0;1) P0 t chn 39 32 tng ng l cc chn P0_0 P0_7 P1 t chn 1 8 tng ng l cc chn P1_0 P1_7 P2 t chn 21 28 tng ng l cc chn P2_0 P2_7 P3 t chn 10 17 tng ng l cc chn P3_0 P3_7 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 ngoi 0. P3.3 _ INT1: interrupt 1, ngt ngoi 1. P3.4 _T0 : Timer0 , u vo timer0. P3.5_T1 : Timer1, u vo timer 1. P3.6_ WR: Write, iu khin ghi d liu. P3.7 _RD: Read , iu khin c d liu. Chn 18, 19 ni vi thch anh to thnh mch to dao ng cho VK Tn s thch anh thng dng trong cc ng dng l : 11.0592Mhz(giao tip vi cng com my tnh) v 12Mhz Tn s ti a 24Mhz. Tn s cng ln VK x l cng nhanh. Dao dong cua thach anh
S1 S2 S3 S4 S5 S6
P1
P2
1 chu ki may 1 chu k my = 12 dao ng ca thch anh tn s thch anh l 12 Mhz c ngha l tn s lm vic ca chip l 1Mhz <-> chu k l 1uS.Lnh lp trnh cho vi iu khin c lnh vi iu khin mt 1 chu k my mi thc hin 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 ngoi to thnh 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 vo > 7V u ra 5V 500mA. Mch n p: cn cho VK v nu ngun cho VK khng n nh th s treo, khng chy ng, hoc reset lin tc, thm ch l to chp.
Mch ngun
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 ti nguyn . Interrupt, Ram, Timer, Serial prort. 1.6)Cc thnh vin khc ca h 8051: C hai b vi iu khin thnh vin khc ca h 8051 l 8052 v 8031. B vi iu khin 8052: 8052 c tt c cc c tnh chun ca 8051 ngoi ra n c thm 128 byte RAM v mt b nh thi na. Hay ni cch khc l 8052 c 256 byte RAM v 3 b nh thi. N cng c 8K byte ROM. Trn chp thay v 4K byte nh 8051. Bng : So snh cc c tnh ca cc thnh vin h 8051.
c tnh ROM trn chp RAM B nh thi Chn vo 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 ny 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 nm gia 80H v FFH cc a ch ny trn 80H, v cc a ch t 00 n 7FH l a ch ca b nh RAM bn trong 8051. Khng phi tt c mi a ch t 80H n FFH u do SFR s dng, nhng v tr ngn nh t 80H n FFH cha dngl d tr v lp trnh vin 8051 cng khng c s dng. Bng : chc nng ca thanh ghi chc nng c bit SFR
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 trn ca b nh thi 1. C ny c set bi phn cng khi c trn, c xo bi phn mm, hoc bi phn cng khi b vi x l tr n trnh phc v ngt Bit iu khin hot ng ca b nh thi 1. Bit ny c set hoc xo bi phn mm iu khin b nh thi hot ng hay ngng C trn ca b nh thi 0 Bit iu khin hot ng ca b nh thi 0 C ngt bn ngoi 1 (kch khi cnh). C ny c set bi phn cng khi c cnh m (cung) xut hin trn chn INT1, c xo bi phn mm, hoc phn cng khi CPU tr n trnh - 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 ngoi 1 (kch khi cnh hoc mc). C ny c set hoc xo bi phn mm khi xy ra cnh m hoc mc thp ti chn ngt ngoi C ngt bn ngoi 0 (kch khi cnh) C ngt bn ngoi 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 ton 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 ngoi (ngt ngoi 1) Cho php ngt t bn ngoi (ngt ngoi 0) Cho php ngt do b nh thi 0
Ch : 3 thanh ghi ny cng rt c bn, nh tn thanh ghi, tn cc bt trong thanh ghi, chc nng tng thanh ghi v tng bt trong thanh ghi. 1.8)Gii thiu s qua cc ngun ngt:
Ngt do Reset h thng Ngt ngoi 0 B nh thi 0 Ngt ngoi 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 no iu kin ngt c m bo th con tr s nhy sang hm ngt thc hin xong hm ngt li quay v ng ch c thc hin tip chng trnh chnh. Ti c 1 v d nh sau: Bn ang n cm , c ting in thoi , bn t bt cm ra nghe in thoi , nghe xong li quay v bng bt cm ln n tip. Th qu trnh n cm ca bn l chng trnh chnh,c in thoi gi n l iu kin ngt, bn ra nghe in thoi l thc hin chng trnh ngt(Interrupt Service Rountine),quay v n cm tip l tip tc thc hin chng trnh chnh. Ngt i vi ngi mi hc vi iu khin l rt kh hiu, v a s cc ti liu u khng gii thch ngt lm g. C nhiu loi ngt khc nhau nhng tt c u c chung 1 c im, ngt dng cho mc ch a nhim. a tc l nhiu, nhim tc l nhim v. Thc hin nhiu nhim v . Cc bn nhn vo tin trnh ca hm main vi chng trnh c ngt : Chng trnh chnh ang chy, ngt xy ra, thc hin hm ngt ri quay li chng trnh chnh. Chng trnh trong vi iu khin khc vi v d n cm nghe in thoi ca ti ch , thi gian thc hin hm chnh l rt ln,thi gian thc hin hm ngt l rt nh, cho nn thi gian thc thi hm ngt khng nh hng nhiu lm n chc nng hm chnh. Nh vy trong hm ngt cc bn lm 1 vic, trong hm chnh cc bn lm 1 vic nh vy coi nh cc bn lm c 2 vic(a nhim) trong 1 quang thi gian tng i ngn c mS, ch thc ra ti 1 thi im vi iu khin ch thc thi 1 lnh. V d : Bn th ngh xem lm th no va iu ch xung PWM iu chnh tc ng c , va c cc cm bin u vo m tc ng c ph thuc u vo cm bin.
DKS_GROUP 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 hm void Hm1(void) { //Cc cu lnh } void Hm2(unsigned char x) { //Cc cu lnh } //Hm chnh bt buc chng trnh no cng phI c void main(void) { //Cc cu lnh } Cc cu lnh trong hm chnh c th c li gi cc hm khai bo trn hoc k Khi c li gi hm no th chng trnh nhy n hm thc hin hm xong con tr li quay v chng trnh chnh(hm main) thc hin tip cc hm hoc cu lnh. Cc cu lnh trong C kt thc bng du ; Cc li giI thch c t trong du: M u bng /* kt thc bng */ Nu li giI thch trn 1 dng th c th dng du: // Khi lp trnh nn giI thch cc cu lnh khi lnh lm g v sau khi chng trnh ln d sa li. 2.2)Cc loi bin trong C:
Dng bin char unsigned char short unsigned short S Bit 8 8 16 16 Byte 1 1 2 2 S Mi Min gi tr tr -128 n +127 0 n 255 -32,768 n +32,767 0 n 65,535 - 15 S nh 38 ng 36 L Thanh Ngh
DKS_GROUP www.EmbestDKS.com
048684577
DKS_GROUP
16 16 32 32
2 2 4 4
Khai bo bin: Cu trc: Kiubin Tnbin; VD: unsigned char x; Khi khai bo bin c th gn lun cho bin gi tr ban u. VD : Thay v: unsigned char x; x=0; Ta ch cn : unsigned char x=0; C th khai bo nhiu bin cng mt kiu mt lc VD: unsigned int x,y,z; Ngoi ra dng cho vi iu khin trnh dch chuyn dng cn h tr cc loi bin sau:
Dng bin bit sbit sfr sf16 S Bit S Byte Mi Min gi tr tr 1 1 8 16 0 0 1 2 0;1 0;1 0 n 255 0 n 65,535
Trong bit c th dng nh cc bin ca C++ nhng cc loi bin cn li th lin quan n cc thanh ghi hoc a ch cng ca 8051. C ngha l khi khai bo bin kiu bit th khng cn nh a ch trong RAM cho cc bin , cn khi khai bo bin kiu sbit, sfr, sf16 th phi nh r a ch trong RAM v n l cc dng bin c bit gi l special function registers (= cc thanh ghi co chc nng c bit vit tt l SFR) VD: Bit Kiemtra; Sfr P10=0x90; DKS_GROUP www.EmbestDKS.com
- 16 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Cc SFR khng cn phi hc thuc ch cn bit, v chng c khai bo trong th vin AT89X51.H v AT89X52.H
2.3)Hm trong C:
Hm trong C c cu trc nh sau: C hai loi hm: Hm tr li gi tr: Cu trc: Kiugiatrhamtrli Tnhm (Bintruynvohm) { // Cc cu lnh x l y } V d : unsigned char Cong(unsigned char x, unsigned char y) { // Cc cu lnh x l y } Hm khng tr li gi tr: Cu trc: void Tnhm (Bintruynvohm) { // Cc cu lnh x l y } V d : void Cong(unsigned char x, unsigned char y) { // Cc cu lnh x l y }
Hm c th c bin truyn vo hoc khng. V d: Hm khng c bin truyn vo: unsigned char Tnhm(void) { // Cc cu lnh x l y } Hm c bin truyn vo: void Tnhm(unsigned char x) { // Cc cu lnh x l y DKS_GROUP www.EmbestDKS.com
- 17 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
} S bin truyn vo ty (min b nh), ngn cch bi du , V d: Void TnHm(unsigned char x, unsigned char y, unsigned char z) { // Cc cu lnh x l y } NgoI ra ring cho vi iu khin phn phm Keil C cn c mt loi hm l hm ngt: Cu trc: Void Tnhm(void) interrupt ngunngt using bngthanhghi { } Hm ngt khng c php tr li gi tr hay truyn tham bin vo hm. Tn hm bt k Interrupt l t kha ch hm ngt Ngun ngt t 0 ti 5 theo bng vector ngt
Ngt do Reset h thng Ngt ngoi 0 B nh thi 0 Ngt ngoi 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 vo Bin c giatr1 th thc hin cc cu lnh sau tng ng ri thot khi cu trc nh cu lnh break; Bin c giatr2 th thc hin cc cu lnh sau tng ng ri thot . Bin c giatrn th thc hin cc cu lnh sau tng ng ri thot Cu lnh vng lp xc nh for: Cu trc: for( n=m; n<l; n++) {// Cc cu lnh x l } GiI thch: Trong m,l l gi tr (m>l), cn n l bin Thc hin lp cc cu lnh (l-m) ln Cu lnh vng lp khng xc nh while: Cu trc: While( iu kin) { //Cc cu lnh } GiI thch: DKS_GROUP 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
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 lot cc hng in t sn xut 8051. Bn lp trnh cho con no th chn con y ,kch chut vo cc du + m rng cc con IC ca cc hng. y ta lp trnh cho AT89C51 ca hng Atmel nn ta chn nh sau: DKS_GROUP www.EmbestDKS.com
- 25 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Khi chn chip th ngay lp tc ci bng hin ra 1 s tnh nng ca chp cc bn c th nhn thy. 8051 based Fully Static 24Mhz . Nhap OK c ca s nh sau: DKS_GROUP www.EmbestDKS.com
- 26 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Chn No. Chn Yes ch lm cho file lp trnh ca bn thm nng . c ca s sau: DKS_GROUP www.EmbestDKS.com
- 27 S nh 38 ng 36 L Thanh Ngh
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 ca s nh sau:
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 31 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
DKS_GROUP www.EmbestDKS.com
- 32 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
c ca s sau:
DKS_GROUP www.EmbestDKS.com
- 33 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Cc bn nhp tn vo text box file name. Ch tn g cng c nhng khng c thiu ui m rng .C . Nhn Save. c ca s sau:
DKS_GROUP 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
Nhp chut phi vo th mc Suorce Group1 c hnh nh trn. Chn Add files to Group Source Group1 add file vo project. c nh sau:
DKS_GROUP www.EmbestDKS.com
- 36 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Chn file .C m cc bn va nh. Ca ti l Dieukhienled_IO . Nhn Add 1 ln ri n Close. Nu bn n Add 2 ln n s thng bo l file add bn ch vic OK ri nhn Close. c nh sau:
DKS_GROUP www.EmbestDKS.com
- 37 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
By gi nhn trong Source Group 1 thy file Dieukhienled_IO.C . Cc bn nhp chut phi vo vng son tho file Dieukhienled_IO.C nh sau, thm file th vin.Chn Insert #include <AT89X51.H>
DKS_GROUP 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
Phn cui cng ca cng vic khi to l cc bn vit li gii thch cho d n ca mnh .Phn ny rt cn thit v n ngi khc hiu mnh lm g tron project ny v khi mnh cn s dng li code c li mnh cn bit n l ci g. Cc bn to li gii thch theo mu sau:
DKS_GROUP www.EmbestDKS.com
- 40 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
2> Son tho chng trnh: Cc bn vit chng trnh ca bi 3 vo y lm v d. Khi vit xong 1 dng lnh nn gii thch dng lnh lm g. Nh sau:
Cc bn nn chia chng trnh nh ti lm. Vi 1 file nh th n hi rm r. Nhng vi 1 file ln khong 1000 dng code th n li rt sng sa. Cc bn nn to 1 file DKS_GROUP www.EmbestDKS.com
- 41 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
mu ri nh vo 1 file text u mi ln dng ch vic copy ri paste qua ch khng nn mi ln to mt ci nh vy li phn tc dng. Pha trn l phn b tin x l v khai bo bin. Tip theo l vit hm tr.
048684577
DKS_GROUP
048684577
DKS_GROUP
Cc bn nhn vo code c th cc bn hiu con AT89C51 n lm g nu cc bn nm vng cc bi trc. Cn nu khng hiu th ti s gii thch li cho cc bn. y l s nguyn l ca 1 led. Project l 8 led(v phc v cho bi 3) nhng ti ch gii thch 1 led l cc bn hiu. Mc ch l lm con led nhp nhy.
R2 5VDC
U1
18
X2
19 20
X1 VSS 8051
Bin Led1 c khai bo (gn cho) chn P0_1 ca vi iu khin bng cu lnh sbit Led1=P1^0; . Gi tr bt bat c nh ngha l 0. Khi cc bn gn : Led1=bat; trong hm main th chn P1_0 ca AT89C51 c mc logic l 0V. Theo s nguyn l: 5V Tr 470 Led1 P1_0 (0 V). C chnh lch p c dng in qua led Led sng. Cc bn c th tnh tan ch ny d dng l ti sao li l tr 470 m. in p mt led l Uak (0,6 n 0,7V) ly =0,6V.in p chn P1_0 l 0V. in p hai u tr : 5V -0,6V = 4,4V. Dng qua tr = dng qua led = 4,4V/470 m xp x 10 mA. Vi dng 10mA n 15mA l led dng sng v sng rt p. Nu dng yu th led m, cn dng ln th cc bn bit sao ri y. Khi cc bn gn: Led1= tat; tc l chn P1_0 c gi tr 1 tng ng in p ca n l 5V . Hiu in th gia hai u +5V v P1_0 l 0V . Nn khng c dng qua led Led tt.Nhng nu trong hm main cc bn vit ch c nh sau: While(1) { DKS_GROUP www.EmbestDKS.com
- 44 S nh 38 ng 36 L Thanh Ngh
VCC
40
470
048684577
DKS_GROUP
Led1=bat; Led1=tat; } Khi chy debug th vn thy led nhp nhy. Nhng khi np chng trnh vo chp lp vo mch th led khng nhy hoc ch sng m hoc tt ngm. V lnh Led1=bat; l lnh 1 chu k my , tn s thch anh l 12 Mhz, 1 chu k my c thi gian l 1uS. Va bt ln 1 uS ri li tt ngay. Led khng p ng c tn s cao vy nn khng nhp nhy. Do cn ti hm tr . Bt led ln tr 1 thi gian kh lu(0,5 giy), ri tt led i kh lu(0,5s) ri li bt li to thnh vng lp s c led nhp nhy. Tc dng ca cu lnh while(1) . iu kin bn trong vng while l 1 lun lun ng nn n l vng lp v hn ln. Nu khng c vng while(1) th led ca cc bn ch sng ln 1 ln ri tt v ht chng trnh ri cn u. Phn ny nu bn no mi hc in t th no cng c cu hi thc mc c nhn tin hoc gi mail. 3> Dch chng trnh: Son tho song nhn Ctrl +S nh . Nh xong cc bn bin dch chng trnh bng cch n phm F7 hoc chn Build target l biu tng ngay trn ca s workspace nh trn hnh:
DKS_GROUP www.EmbestDKS.com
- 45 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Cc bn s thy nh sau:
Trong ca s Output Window ngay pha trn dng ch ny c cc dng ch Compiling Linking DKS_GROUP 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 vy l OK. Nu khng c nh vy n s bo li v cc bn kim tra xem son tho ng cha. Ti v d xa 1 du ; trong hm main dng : Led1=bat; , gi b i thnh Led1= bat .Ri dch li (n F7) trnh bin dch s bo nh sau:
Syntax error near tre. Sai c php gn tr. Cc bn nhp p tri chut vo dng thng bo ny con tr s ngay dng di dng c li thm du nhn du mi tn DKS_GROUP www.EmbestDKS.com
- 47 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
mu xanh hnh di y, g vo du ; v dch li l OK. Trong chng trnh ln i khi con tr ch n gn ch c li thi v bn phi t tm ra li.
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
4> Chy m phng v sa li. Trc khi debug chng ta khi to nh sau. Cc ban vo Option for target 1.
DKS_GROUP www.EmbestDKS.com
- 50 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Chn OK.
DKS_GROUP www.EmbestDKS.com
- 51 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
debug cc bn nhn t hp phm Ctrl + F5. Hoc nhn vo icon c ch D mu trong ci knh lp trn thanh cng c. c ca s sau:
Trong menu Peripherals(cc thit b ngoi vi) chn IO port , Port 1. c nh sau: DKS_GROUP www.EmbestDKS.com
- 52 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Cc bn thy 1 ca s nh Parallel Port 1 xut hin l ci m phng cho cng 1 ca AT89C51. Du tch tng ng chn mc cao(5V) , khng tch chn mc DKS_GROUP www.EmbestDKS.com
- 53 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
thp (0V). Trong menu peripherals cn cc ngoi vi khc nh timer , interrupt, serial. Cc bi sau dng n cc bn nh ly trong ny. chy chng trnh cc bn nhp chut phi vo mn hnh son tho. Ri n F11. Mi ln n s chy 1 lnh. Khi debug nu cc bn ch hm delay lu qu 1000 ln lp . Cc bn nhn Ctrl + F11 b qua hm. Hoc n F10 chy tng dng lnh. Cc bn s thy chn P1_0 thay i gi tr. Bng bn tri , Project workspace by gi c cc thanh ghi. Cc bn c th thy chng thay i. Nhng cc bn khng cn quan tm n cc thanh ghi ny. V mnh hc ngn ng C m. Nu hc asembly th mi phi s dng chng. Cng mt y. Ci bn quan tm nht l ci sec. N cng thay i. V thch anh l 12Mhz, nn mi chu k my l 10-6 giy. Cc bn cn c vo y bit lnh no mt bao nhiu chu k my, lm thi gian thc th cn lm y. Thot khi debug li n Ctrl+F5 hoc n vo icon debug.
DKS_GROUP www.EmbestDKS.com
- 54 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Bi 3: iu khin IO.
3.1)Lp mch :
- Khi ngun 5V cc bn nh lp mch n nhy. - Cc bn lp mch theo s sau:
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
- Hng dn lp mch: * Qui nh : nu linh kin no ti khng nhc n chiu th cc bn lp linh kin chiu no cng c. Hng dc ngoi l ngun 5 V. Hng dc trong l GND. Th t chn cc bn phi nh khng ging th t sp xp tronh hnh v mch. Cch m chn cc bn con chip xui m cc bn nhn dng ch AT89C51/52 xui, chn 1 l chn gn du trn v hnh tam gic nh mu trng. m t trn xung di tri qua phi. S chn con IC tht s m ng th ny. Khi lp mch phi m chn. Khng nn lp ngun 12V vo vi ch khi np chp xong lp vo mch mi lp ngun. Khi mun g chp ra phi rt ngun ra ri mi g chp. DKS_GROUP 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
* Chun b board nh sau: Lp 4 dy ni ngn ni cc sng. Lp 1 dy ni ni hng trn cng vi hng di cng lm ngun +5V. Lp 1 dy ni ni hng gn trn cng vi hng gn di cng lm GND. Lp chp nh hnh. * Bc 1 lp mch dao ng: Lp 1 con t 33pF t chn 19 xung chn 20.(ng hi ti sao). Lp 1 con t 33pF t chn 18 xung chn 20. Ly dy cu t chn 20 xung GND. Lp 1 con thch anh 12M vo chn 18 v 19. * Bc 2 lp mch reset. Lp 1 con tr 10K(nu en cam) t chn 9 xung GND. Lp 1 con t 10uF/50V cc dng ln +5V, cc m vo chn 9. * Bc 3 lp tr bng. chp chy vi ROM trong chn EA phi ln +5V qua 1 in tr. Cng 0 l cng c cc mng h mun thc hin c IO th phi c in tr treo.(Thy ci ny l xem li bi 2). Nn lp 1 con tr bng 10 chn vo cng 0 v chn EA. Chn 1 ca tr bng ( Chn u tin c nt trn mu trng) vo chn 40. Chn 10 ca tr bng vo chn 31. Nu khng c tr bng cc bn c th thay tr bng 10 chn bng 9 con tr thng v tr bng 10 chn chnh l 9 con tr u chung 1 u nh trong s mch pha trn. * Bc 4 lp led: d dng khi lp mch nn chng ta lp led theo s nh trn. DKS_GROUP www.EmbestDKS.com
- 56 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Lp chn di ca 1 led vo chn 1 vi iu khin chn ngn vo GND. Tng t lp 7 led cn li vo chn 2 n chn 8. * Bc 5 cu 1 dy nh t chn 40 ln ngun 5V.
3.3) Lp trnh :
Trc ht iu khin 1 led. iu khin 1 led th cc bn ch vic gn chn ni vi led bng 0 hoc 1, th in p chn s l 0V hoc 5V, ty vo in p n s sng hoc ti. Code nh sau: /* ==================================================== Mo ta: Dieu khien den led. Phan cung: 8 led noi tu +5V qua dien tro han dong vao 8 chan cong 1. Thach anh: 12 Mhz Tac gia: Nguyen Huy Thanh. Thoi gian: Bat dau: 1h03 16/7/2005 Hoan thanh: 1h07 16/7/2005 =====================================================*/ /******************Bo tien xu li*******************************/ #include <AT89X51.H>// Dinh kem file thu vien #define bat 1 // Dinh nghia gia tri bat den led #define tat 0// Dinh nghia gia tri tat den led DKS_GROUP 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 dng Keil C y nh. Ch #define bat 1 v #define tat 0. V led lp kiu 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 np chng trnh vo chp th fi to ra file .hex. to ra file .hex lm nh sau . Vo Option for target ch chnh tn s thch anh.
DKS_GROUP 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. Nhp OK. Nhn fm F7 bin dch li . Khi di ca s output window c ch Creating hex file
DKS_GROUP www.EmbestDKS.com
- 65 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
3.4) Np chp: Cm u cng COM vo cng COM my tnh. Cm ngun vo mch np. Cho chp vo socket 40 chn mu xanh. Rt ch phi cho ng chiu chp khng l hng. Chiu chp ging chiu con chp c sn trong mch(Chp MASTER). M phn mm EZDL4 ln. Thy c ch identifing target chip . Nhy. Gt cn nh socket 40 chn kp chp cho tip xc. Trn EZDL4 s thy ch AT89C51 hoc AT89C52 ty cc bn dng loi chp no. Kch vo Send. Chn ng dn n th mc lu project ca bn chn file : Dieukhienled_IO.hex . Nhn OK. Ch mch bo ch Complete th gt ny trn socket ly chp ra cm vo mch. 3.5) Kt qu: Cm ngun vo mch . Ch khng cm ngc m dng. Nu mch khng chy rt ngun ra kim tra cc ch sau: 1) Kim tra mch dao ng xem t ng gi tr khng, lp ng s khng, lp c lng khng. 2) Kim tra xem t mch reset chn 9 lp ng cc khng, c lng khng. Dng ng h o chn 9 nu 0V hoc xp x 0V l OK. 3) Tr bng lp ng chiu cha, chn 1 vo chn 40. Dng ng h o chn 31(EA) xem c bng 5V khng , nu 5V th OK. 4) Kim tra chn 20 ni GND cha, chn 40 ni +5V cha dng ng h o in p. 5) Kim tra xem lp ng chiu led cha. 6) Cc bn c th lp lng chp hoc do cht lng board ly tay t mnh con chp xung board . Nu vn khng chy th lin lc vi ti. 3.6) iu khin 8 led tng chic 1: Cc bn c th sa li hm main nh sau: void main(void) { while(1)// Lap vo han { Led1= bat;// Bat led 1 tre(1000);// Tre 1 khoang thoi gian Led1= tat;// Tat led 1 tre(1000);// Tre 1 khoang thoi gian DKS_GROUP 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 } } iu khin 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 bn c th cho th t cc led tt bt khc nhau c cc kiu nhy khc nhau. 3.7) iu khin out c cng: Nu cc bn nhm chn vi vic iu khin tng chn 1 vit code rt tn cng cc bn c th xut gi tr ra c cng. Trc ht cc bn cn nm cc iu nh sau: - 1 cng c 8 bit t hp 8bit c 28 = 256 trng thi. Khi cc bn a ra cng 1 gi tr a(thp phn) t 0 n 255 th s a s c i ra h nh phn ri a ra cc bit( chn) ca cng. V d: Nu c lnh: P1=1; v 1(10) = 0000 0001(2) nn chn P1_0(bit 0) s bng 1(5V) cn li cc t P1_1(bit 1) n P1_7(bit 7) s bng 0(0V). P1=10; v 10(10) = 0000 1001(2) th s c P1_0 v P1_3 bng 1(5V) cn li cc chn khc s l 0(0V). - Cc bn c th a ra cng 1 gi tr s hex t 0 n ff tng ng t 0 n 255. Cc s c s trong h hex. (HEX)0 1 2 3 4 5 6 7 8 9 A B C D E F (10) 10 11 12 13 14 15 Cch s hex ra s thp phn: c s hex : N(16)=abf1 i ra h s 10 N(10)=1.160 + 15.161+ 11.162+ 10.163= Bm my tnh h nh. i s nh phn sang hex: Gp 4 s nh phn thnh 1 s hex V d: 0010 0001(2) = 21(16) 4 s u c bit 1 = 1 nn 1x21= 2 4 s sau c bit 0 =1 nn 1x20=1. Cc bn thy vt v vi phn ny d bn c hiu hay khng hiu 1 lt na s bit cch lm lin. Cch a ra nh sau: V d lnh P1=1; tng ng vi P1=0x01; P1=10; tng ng vi P1=0x0A; Chng trnh xut ra c cng tng ng vi chng trnh iu khin 8 led tng ci 1 nh sau: void main(void) { while(1)// Lap vo han { P1=0x01;// Bat led 1 tre(1000);// Tre 1 khoang thoi gian P1=0x00;// Tat led 1 DKS_GROUP 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 vy g code vn mi tay lm t c mc ch 8 n nhy lin tip cc bn c th lm nh sau: /******************Ham chinh****************************/ void main(void) { DKS_GROUP 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 ca cng 1 thy c li hi ca php dch bit xang tri. hiu thao tc xut ra cng , chn, cc cc bn lm cho mnh 1 v d na nh sau: /***********************Ham chinh*******************************/ void main(void) { unsigned char n; // Khai bao them bien n cho vong for while(1)// Lap vo han { P1=0x01;// Bat led 1 for(n=0 ; n<256;n++)// Lap 8 lan { P1=n; // Dich bit xang trai tre(5000); } } } /****************************************************************/ Debug thy s thay i cc cng. 3.8) Kinh nghim : DKS_GROUP www.EmbestDKS.com
- 71 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
* chuyn i gia cc h s nhanh cc bn dng ci calculator c ngay trong window. Chn Start All programs Accessories Calculator. Trong Calculator cc bn chn menu View Chn scienctific. Cch chuyn i t khm ph nh. * tnh ra s hex nhanh nht . Ti v d mun a chn P3.5 v chn P3.2 xung 0(0V) cn cc chn cn li ta lm nh sau: C cho P3= 100 ; hay 1 gi tr bt k .V code dch khng li c php mi debug c nn phi cho gi tr bt k vo. Dch chng trnh ri nhn Debug. Ra c nh sau:
DKS_GROUP www.EmbestDKS.com
- 72 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Cc bn thy trong ca s m phng cng 3 c ghi gi tr ca cng 3 l : 0xFF tng ng tt c 8 bit l 1111 1111. Gi cc bn b du tch trn chn 3.5 v 3.2 i . m t tri qua phi nh.
DKS_GROUP www.EmbestDKS.com
- 73 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Thy cng 3 c gi tr l 0xDB. Nh vy cc bn mt cng nhm i s nh phn ra s hex. Nu khng dng cch ny l nh trn cc bn phi ngh trong u ra c dy s 1101 1011 ri i qua s HEX kt qu s l 0xDB nhng mt lm.
C hai loi led 7 thanh: Ant chung v Catt chung. Hnh trn l s chn ca hai loi led. N c cu to nh sau:
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
Ch l 8 con led u chung 1 u: Ant hoc Catt. Mch lp s dng led Ant chung nh sau:
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
- Lp mch: Mch bi trc(iu khin led n) nguyn,ch lp thm vo. + Bc1: Lp 7 in vo 7 chn cng P2 t P2.0 n P2.7( T chn 21 Chn 27) ca vi iu khin. Ch m bit ca cng 2 t di ln trn. + Bc2: Lp led 7 thanh 5 chn pha trn sng, 5 chn pha di sng(Ging lp AT89C51). + Bc 3: Dng dy in cu t cc chn theo s . Chn iu khin thanh A vo in tr ni vo P2.0 v c th n chn iu khin thanh G vo in tr ni vo P2.7. B qua chn iu khin du chm(Dot chn 5 ca led 7 thanh). + Bc 4: Dng dy cu chn 3(hoc chn 8, hoc c hai chn 3 v 8) ln +5V. Lp mch nn dy cu khc mu v r rng trnh nhm ln. - Test led: Cho ngun vo( D nhin led n bi trc vn nhp nhy). Rt 1 u in tr ni vi chn P2.0 ca VK cm xung t thy led 7 thanh sng n A,cm li in tr v v tr c. Tng t test 6 thanh cn li. Thanh no khng sng th kim tra li xem cm dy tip xc cha. Vn khng sng th led hng thay led khc vo. DKS_GROUP www.EmbestDKS.com
- 75 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
4.3) Lp trnh :
Cch 1: Lp trnh d hiu khng cn phi tnh ton nhng phi vit v copy, past v sa nhu. Code nh sau:
#include <AT89X52.H> /* Khai bao cac bien bit gan voi chan vi dieu khien*/ sbit ThanhA = P2^0; sbit ThanhB = P2^1; sbit ThanhC = P3^5; sbit ThanhD = P3^4; sbit ThanhE = P3^3; sbit ThanhF = P2^2; sbit ThanhG = P2^3; /* Khai bao bien */ long n;// Cho vong for /* Khai bao ham */ /* Ham tre */ void delay(long time) { for(n=0; n<time; n++) { ; }
DKS_GROUP 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
Cch 2: Cc bn vit 1 chng trnh n gin ri dng cng c Debug xem s hex ri vit vo rt ngn gn. V d: Hm hin th s 1:
void so1(void) { tat(); P2=0xF5; }
Cc bn debug cho hin th cng P2 ln. du tch cc n tt(1) , b du tch cc n cn bt(0). Ri c gi tr hex nh ti hng dn bi trc.
4.4) Np chp:
hng dn. Nu cc bn gp phi vn ca mch np. Thng l: + Treo chip Master: Rt ngun mch np ra, i cht ri cm li. + Khng nhn cng COM. Cc bn nhp chut phi vo Mycomputer, chn Properties Device manage. Nhn vo Scan for hardware change my tnh nhn li cng COM. Ri khi ng li my. + L do khc cc bn th kim tra phn cng mch np. + Vn khng c ti chu. T bi sau s khng c phn ny.
4.5) Kt qu:
Nhn vo hm main cc bn thy chng trnh s hin th s 1 led 7 thanh, tr 1 khong thi gian, ri nhy sang s 2 n s 9 , ri n ch. Nu cc bn khng c hm tr th led s hin th ra sao? Led s hin s 8. V tt c 8 led c bt tt qu nhanh (ch cn >24 Hz) do hin tng lu nh mt cc bn s nhn thy tt c cc led sng ch khng hin s.
- 81 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Sau khi thc hin theo cc rt gn nh vit hm s 1 trn cc bn p dng cu trc lnh switch case vit li chng trnh th chng trnh s rt gn.
void Hienthiled(unsigned char x) // Co 1 bien dau vao de xac dinh xem la hien thi so nao { switch(x) { case 1: { tat(); P2=0xF5; break;} // So 1 case 2: { tat(); P2=0xFF; break;}// So 2 case 9: { tat(); P2=0xFF; break;}// So 9 case 10: { tat(); P2=0xFF; break;}// Chu A . case 20: { tat(); P2=0xFF; break; }// Chu Y } }
DKS_GROUP www.EmbestDKS.com
- 82 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Phn 1: c 1 phm.
Nhim v:
m s ln phm bm gii hn t 0 n 9 hin th ra led 7 thanh.
VCC
40
D12 LED
- Mch bi 5 led 7 thanh gi nguyn. Lp mch: qu n gin. Bc 1: Lp 1 nt bm u trn mch. Bc 2: Dng dy cu 1 chn nt bm vi P1.0( Thay th led bi 4). Bc 3: Dng dy cu 1 chn nt bm xung t. Bc 4: Lp 1 t 104 gia 2 chn nt bm. DKS_GROUP www.EmbestDKS.com
- 83 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Bc 5: Lp tr vo chn P1.0 v led t +5V vo u tr cn li(Ch ng chiu led. - Test nt bm: Cm ngun vo, nhn nt n sng. Nh nt n tt.
5.3) Lp trnh:
Code bi 5 gi nguyn: son thm mt s hm nh sau hm c phm bm. Hm c s ln n phm.
DKS_GROUP 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
DKS_GROUP www.EmbestDKS.com
- 86 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Hm main c sa li 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 di chnh l Watch& Call Stack Window. Chuyn sang tab watch#1, nhp chut vo ch F2 to edit,nhn F2 v g vo tn bin cn quan st.
DKS_GROUP www.EmbestDKS.com
- 91 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Phn 1 kt thc. Chng ta quan st bin I, nn g I vo v c hnh nh trn. Cc bn nhn F11 chy m phng. Mi ln n phm, cho chn P1.0 xung 0 ri ln 1, tng ng vi n phm v nh phm I s tng 1 nh sau: (Khi n phm phi ch hm delay(300) v hm while(P1_0 ==0) xong I mi tng v mnh lp trnh th m.
DKS_GROUP www.EmbestDKS.com
- 92 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
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) Lp trnh:
- To 1 project mi, copy phn hin th cc s 09 cc ch AY ca bi trc. Ri b sung cc hm sau. Hm hin th phm n.
void phim_duoc_an(unsigned char phim) {
DKS_GROUP 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
DKS_GROUP www.EmbestDKS.com
- 96 -
S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Vit 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
Nhim v: iu khin hin th LCD 16x2 dng ch www.EmbestDKS.com chy trn mn hnh LCD. C 16 chn nh sau: Chn K hiu I/O M t 1 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 ant v katt ca 1 con led dng sng LCD trong bng ti. Chng ta khng s dng. Nu cc bn mun dng th ni chn A qua 1 in tr t 1K n 5K ln dng 5V, chn K xung t n s sng.
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
- Hng dn: Cm lun 8 bit d liu ca LCD t D0 n D7 vo cng 2 ca 8051 m khng cn cu dy. tha 6 chn ra ngoi l: EN,RW,RS,Ve, Vcc, GND ra ngoi. Ri dng dy cu chn 1 xung GND, chn 2 ln +5V, chn 3 vo chn gia ca bin tr tinh 5K, 2 chn cn li ca bin tr tinh 1 chn cu ln +5V,1 chn cu xung 0V. 6.2) Nguyn l hot ng ca LCD:
- Chn 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 mn hnh, a con tr v u dng v.v Nu RS = 1 th thanh ghi d liu c chn cho php ngi dng gi d liu cn hin th trn LCD. - Chn c/ ghi (R/W): u vo c/ ghi cho php ngi dng ghi thng tin ln LCD khi R/W = 0 hoc c thng tin t n khi R/W = 1. - Chn cho php E (Enable): Chn cho php E c s dng bi LCD cht d liu ca n. Khi d liu c cp n chn d liu th mt xung mc cao xung thp phi c p n chn ny LCD cht d liu trn cc chn d liu. Xung ny phi rng ti thiu l 450ns. - Chn D0 - D7: y l 8 chn d liu 8 bt, c dng gi thng tin ln LCD hoc c ni dung ca cc thanh ghi trong LCD. hin th cc ch ci v cc con s, chng ta gi cc m ASCII ca cc ch ci t A n Z, a n f v cc con s t 0 - 9 n cc chn ny khi bt RS = 1. Cng c cc m lnh m c th c gi n LCD xo mn hnh hoc a con tr v u dng hoc nhp nhy con tr. - Ch :Chng ta cng s dng RS = 0 kim tra bt c bn xem LCD c sn sng nhn thng tin. C bn l bt D7 v c th c c khi R/W = 1 v RS = 0 nh sau: Nu R/W = 1, RS = 0 khi D7 = 1 (c bn 1) th LCD bn bi cc cng vic bn trong v s khng nhn bt k thng tin mi no. Khi D7 = 0 th LCD sn sng nhn thng tin mi. Lu chng ta nn kim tra c bn trc khi ghi bt k d liu no ln LCD. - Sau y l bng m lnh ca LCD: DKS_GROUP 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 mn 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 ton b hin th sang tri Dch ton 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
- iu khin LCD qua cc bc sau: Bc 0 : Chun b phn cng. Dng tuc vt hay ci g bn c xoay bin tr 5 K iu chnh tng phn ca LCD. Xoay cho n khi cc vung(cc im nh) ca LCD hin ln th xoay ngc bin tr li 1 cht. Bc 1 : Khi to cho LCD. Bc 2 : Gn cc gi tr cho cc bit iu khin cc chn RS,RW,EN cho ph hp vi cc ch : Hin th k t ln LCD hay Thc hin 1 lnh ca LCD. Bc 3: Xut byte d liu ra cng iu khin 8 bit d liu ca LCD. Bc 4: Kim tra c bn xem LCD sn sng nhn d liu mi cha. Bc 5: Quay vng li bc 1.
6.3) Lp trnh:
- c th lp trnh cho LCD ta thm vo th vin string.h ca trnh bin dch bng cu lnh:
#include <string.h> - Khai bo cc chn ca LCD gn vi cc cng: /* RS chon thanh ghi =0 ghi lenh
DKS_GROUP 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; - Vit 1 s hm iu khin LCD nh sau: * Hm kim tra LCD c bn hay khng: void wait(void) { long n = 0; EN=1;// Dua chan cho fep len cao RS=0;// Chon thanh ghi lenh RW=1;// Doc tu LCD LCDdata=0xFF;// Gia tri 0xFF while(BF){n++; if(n>100) break;}// Kiem tra co ban // Neu ban dem n den 100 roi thoat khoi while EN=0;// Dua xung cao xuong thap de chot RW=0;// Doc tu LCD } * Hm iu khin LCD thc hin 1 lnh: void LCDcontrol(unsigned char x) { EN=1;// Dua chan cho fep len cao RS=0;// Chon thanh ghi lenh RW=0;// Ghi len LCD LCDdata=x;// Gia tri x EN=0;// Xung cao xuong thap wait();// Doi LCD san sang } Hm c 1 bin u vo l cc gi tr trong bng m lnh ca LCD. * Hm khi to LCD: void LCDinit(void) {
DKS_GROUP 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 lnh cho LCD hin th 1 k t : void LCDwrite(unsigned char c) { EN=1;// Cho fep muc cao RS=1;// Ghi du lieu RW=0;// Ghi len LCD LCDdata=c;// Gia tri C EN=0;// Xung cao xuong thap wait();// Cho } Hm c 1 bin u vo l m ca k t trong bng ASCII. * Hm lnh cho LCD hin th 1 xu k t ( dng ch): void LCDputs(unsigned char *s,unsigned char row) { unsigned char len; if(row==1) LCDcontrol(0x80);// Ep con tro ve dau dong 1 else LCDcontrol(0xC0);// Ep con tro ve dau dong 2 len=strlen(s);// Lay do dai bien duoc tro boi con tro while(len!=0)// Khi do dai van con { LCDwrite(*s);// Ghi ra LCD gia tri duoc tro boi con tro s++;// Tang con tro len--;// Tru do dai } }
Hm c hai bin u vo l : xu k t cn hin th v dng cn hin th xu (1 hoc 2). *s l con tr, tr ti bin s 6.3.1) Con tr l g? B nh ca VK cc bn tng tng nh 1 ci t nhiu ngn. Khi khai bo 1 bin, v d bin kiu unsigned char i; th vk lu bin I vo 1 ngn trong t_ 1 nh trong b nh, d nhin xc nh cc ngn t ngi ta nh s cho tng ngn, cn vk cp cho cc nh trong b nh 1 a ch xc nh nh .V d tip: I c gi tr l 100, th ni dung ca nh DKS_GROUP www.EmbestDKS.com
- 105 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
lu bin I l 100,i=100, cn con tr tr n I c gi tr l a ch ca nh cha bin I . 6.3.2) Cch s dng con tr: khai bo con tr c thm du * trc tn bin. *I l bin kiu con tr, tr ti bin i(unsigned char). I mang gi tr t 0 n 255, *I mang i ch ca nh cha i.
* Hm hin th 1 s integer: void LCDwritei(int d) { unsigned char i,j,k,l; i=d%10;// Chia lay phan du, duoc chu so hang don vi d=d/10;// Chia lay phan nguyen, duoc nhung chu so da bo hang don vi j=d%10;// Duoc chu so hang chuc d=d/10;// Nhung chu so da bo hang don vi va hang chuc k=d%10;// Duoc hang tram l=d/10;// Duoc hang nghin LCDwrite(48+l);// Hien thi ki tu trong bang ascii LCDwrite(48+k);// Trong bang ascii so 0 co co so thu tu la 48 LCDwrite(48+j); LCDwrite(48+i); }
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
Nhim v:
To ra xung c rng thay i, 10 cp, tn s 1Khz, iu khin tc ng c (10 cp tc ).
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
- Hng dn: Chn ca C828 l ECB, nu cm xui transitor nhn vo mt c ch, tnh t bn tri sang. 7.2) Lp trnh: - Cch to xung c rng thay i bng VK. DKS_GROUP www.EmbestDKS.com
- 108 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
+ Cch 1: Nh cc bn iu khin nhp nhy 1 con led, l to ra 1 xung 1 chn ca vi iu khin, nhng xung c rng c nh, tn s ln, cch bn c th iu chnh li hm delay tn s ca n ng 1 Khz. Tuy nhin v l dng hm delay nn trong thi gian c xung ln 1(5V) v thi gian khng c xung(0V) vi iu khin khng lm g c, hn na to xung bng vic delay m cc bn c nhu cu cn 2 b pht xung 2 knh, c cng tn s m khc rng xung th tr nn rt kh khn. Cho nn chng ta dng b nh thi Timer ca vi iu khin trong trng hp ny rt tin. + Cch 2: Dng ngt Timer ca b vi iu khin. Trc ht nhc li v ngt ca vi iu khin: + Ngt l g ? tr li cu hi ny ti xin trch an v ngt trong bi 2 v d cho ngt timer:
Timer
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 no iu kin ngt c m bo th con tr s nhy sang hm ngt thc hin xong hm ngt li quay v ng ch c thc hin tip chng trnh chnh. Ti c 1 v d nh sau: Bn ang n cm , c ting in thoi , bn t bt cm ra nghe in thoi , nghe xong li quay v bng bt cm ln n tip. Th qu trnh n cm ca bn l chng trnh chnh,c in thoi gi n l iu kin ngt, bn ra nghe in thoi l thc hin 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 ti liu u khng gii thch ngt lm g. C nhiu loi ngt khc nhau nhng tt c u c chung 1 c im, ngt dng cho mc ch a nhim. a tc l nhiu, nhim tc l nhim v. Thc hin nhiu nhim v . Cc bn nhn vo tin trnh ca hm main vi chng trnh c ngt : Chng trnh chnh ang chy, ngt xy ra, thc hin hm ngt ri quay li chng trnh chnh. Chng trnh trong vi iu khin khc vi v d n cm nghe in thoi ca ti ch, thi gian thc hin hm chnh l rt ln,thi gian thc hin hm ngt l rt nh, cho nn thi gian thc thi hm ngt khng nh hng nhiu lm n chc nng hm chnh. Nh vy trong hm ngt cc bn lm 1 vic, trong hm chnh cc bn lm 1 vic nh vy coi nh cc bn lm c 2 vic(a nhim) trong 1 quang thi gian tng i ngn c mS, ch thc ra ti 1 thi im vi iu khin ch thc thi 1 lnh. V d : Bn th ngh xem lm th no va iu ch xung PWM iu chnh tc ng c , va c cc cm bin u vo m tc ng c ph thuc u vo cm bin. Vy ngt l 1 iu kin no xy ra ngu nhin m vi iu khin c th bit do phn cng ca vi iu khin, ri ta cn c vo lp trnh. * V d: Vi ngt b nh thi timer, hay b m counter l khi trn b m th phn cng ca vi iu khin s bo c ngt xy ra v nhy n chng trnh phc v ngt( ISR_ Interrupt Sevice Rountine) 1 cch t ng. Vi ngt ngoi, chn P3.2 chng hn, nu ta khai bo trc chn s dng chn P3.2 s dng cho ngt ngoi ch khng phi s dng cho mc ch IO th c khi c 1 xung xut hin t mch ngoi vi truyn vo chn P3.2 th phn cng ca vi iu khin nhn ra v chuyn ti chng trnh phc v ngt. Vi ngt cng ni tip th c kh thu song 1 k t hay truyn song 1 k t cng ni tip, nu ta c s dng ngt truyn d liu ni tip th vi iu khin s nhy ti chng trnh phc v ngt. - Hm ngt: Cu trc: Void Tnhm(void) interrupt ngunngt using bngthanhghi { // Chuong trinh phuc vu ngat o day } Ch v hm ngt: DKS_GROUP - 110 S nh 38 ng 36 L Thanh Ngh www.EmbestDKS.com 048684577
DKS_GROUP
+ Hm ngt khng c php tr li gi tr hay truyn bin vo hm. + Tn hm bt k. + interrupt l t kha phn bit hm ngt vi hm thng. + Ngun ngt t 0 ti 5 theo bng vector ngt. + Bng thanh ghi trn ram chn t 0 n 3. Ty theo bn vit hm ngt cho ngun no bn chn ngun ngt t bng sau:
Ngt do Reset h thng Ngt ngoi 0 B nh thi 0 Ngt ngoi 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
Ring ngt Reset khng tnh, bt u m t 0 v t ngt ngoi 0. V d: ti cn vit hm ngt cho b nh thi timer 1 hm ngt s l.
void timer1_isr(void) interrupt 3 using 0 { // Lenh can thuc hien. }
- V using 0: C 4 bng thanh ghi bn c th chn cho chng trnh phc v ngt, ci ny cng khng quan trng. Trong hm ngt cc bn c th b i t using 0, khi vi iu khin s t sp xp l dng bng thanh ghi no. - Hm ngt khc hm bnh thng ch no. Hm bnh thng v d hm delay, c khi bn gi n th n s c thc hin, c ngha l n c v tr c nh trong tin trnh hm main, c ngha l bn bit n xy ra khi no. Cn hm ngt th khng c tin trnh c nh, iu kin ngt c th xy ra bt k lc no trong tin trnh hm main v c khi no c iu kin ngt th hm ngt s c gi t ng. - s dng ngt ta phi lm cc cng vic sau: 1) Khi to ngt: dng ngt no th cho php ngt hot ng bng cch gn gi tr tng ng cho thanh ghi cho php ngt IE( Interrupt Enable):
EA 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 ton 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 ngoi (ngt ngoi 1) Cho php ngt t bn ngoi (ngt ngoi 0) Cho php ngt do b nh thi 0
IE l thanh ghi c th x l tng bt. V d : bn mun cho php ngt timer 1 bn dng lnh: ET1=1; Khng cho php na bn dng lnh : ET1=0; Hoc bn c th dng lnh IE= 0x08; th bit 3 ca thanh ghi IE tc(IE) s ln 1. Nhng cch th nht tin hn. 2) Cu hnh cho ngt: Trong 1 ngt n li c nhiu ch v d: vi ngt timer. Bn phi cu hnh cho n chy ch no, ch timer hay counter, ch 16 bit, hay 8 bit, bng cch gn cc gi tr tng ng cho thanh ghi TMOD( Timer MODe).
TMOD 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 cu hnh cho b nh thi 1 ch timer,vi b m 8 bit t ng np li(auto reload) dng lnh sau: TMOD=0x20. Cc bn ng lo v vic phi nh bng thanh ghi ny, cc bn khng phi nh ni trng ra nh vy, chuyn sang phn lp trnh cc bn s c hng dn lm th no khng phi nh, nhng ch lp trnh vi C mi lm c cn lp trnh Asem th bt buc phi nh . 3)Bt u chng trnh c ngt: DKS_GROUP www.EmbestDKS.com
- 112 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
-Trc khi bt u cho chy chng trnh ta phi cho php ngt ton cc c xy ra bng cch gn EA(Enable All interrupt) bng 1, th ngt mi xy ra. -Thng th ngay vo u chng trnh(hm main) trc vng while(1) chng ta t cng vic khi to, cu hnh v cho php kim tra ngt. V d vi b nh thi timer ta gn cc gi tr ph hp cho thanh ghi TCON( Timer CONtrol). TCON iu khin b inh thi TCON.7 TF1 C trn ca b nh thi 1. C ny c set bi phn cng khi c trn, c xo bi phn mm, hoc bi phn cng khi b vi x l tr n trnh phc v ngt TCON.6 TR1 Bit iu khin hot ng ca b nh thi 1. Bit ny c set hoc xo bi phn mm iu khin b nh thi hot ng hay ngng TCON.5 TF0 C trn ca b nh thi 0 TCON.4 TR0 Bit iu khin hot ng ca b nh thi 0 TCON.3 IE1 C ngt bn ngoi 1 (kch khi cnh). C ny c set bi phn cng khi c cnh m (cung) xut hin trn chn INT1, c xo bi phn mm, hoc phn cng khi CPU tr n trnh phc v ngt TCON.2 IT1 C ngt bn ngoi 1 (kch khi cnh hoc mc). C ny c set hoc xo bi phn mm khi xy ra cnh m hoc mc thp ti chn ngt ngoi TCON.1 IE0 C ngt bn ngoi 0 (kch khi cnh) TCON.0 IT0 C ngt bn ngoi 0 ( kch khi cnh hoc mc) V d chy b nh thi timer 1 ta dng cu lnh: TR1=0; TR1(Timer Run 1). Cn bn no thch kh th:TCON=0xxx; Cn cc loi ngt khc qu trnh tng t, y l kha hc c bn ch lm vic vi ngt timer, trong kha nng cao s c cc ngt cn li, tuy nhin lm vic c vi ngt timer th cc ngt khc cc bn cng c th lm tng t, cc bn lm n ngt no th dng ti liu tra bng thanh ghi ca ngt . Ti liu ti s gi cng bi ny. - Quay tr li bi hc: DKS_GROUP www.EmbestDKS.com
- 113 S nh 38 ng 36 L Thanh Ngh
048684577
DKS_GROUP
Sau khi khi to song v cho ngt timer 1 chy th iu g xy ra? Khi bt u cho timer 1 chy th b m ca timer s m dao ng ca thch anh, c 12 dao ng ca thch anh(1 chu k my), b m ca timer 1 TL1(Timer Low1) s tng 1,c thn ni timer 1 m s chu k my. i vi ch 8 bt. TL1 l 1 thanh ghi 8 bt, l b m ca b nh thi r ri. N m c t 0, n 255. Nu n m n 256 th b m trn, TL1 quay vng li bng 0, v c ngt TF1(Timer Flag 1) t ng c gn ln 1(bng phn cng ca vi iu khin) nh 1 cng tc t ng bt, v ngt xy ra. Cn vi ch 16 bt, b m ca b nh thi cn 1 thanh ghi 8 bt na l TH1(Timer high 1), nu cu hnh cho timer 1 hot ng ch 16 bit th khi TL1 trn n s m sang TH1(TH1 s tng 1). Nh vy ta c th m: 216 chu k my( 2 thanh ghi 8+8=16 bt). Ch l khi b m trn ngt s xy ra. Nu ta cn m 256 chu k my th khi khi to ta cho TL1=0; , cn nu khng mun m 256 chu k my m ta ch cn m 100 thi ngt xy ra ri th ta fi lm nh sau: 256-100 = 156; v khi khi to ta gn : TL1=155; v m t 155 n 255 l 100 ln th ngt xy ra. Vi yu cu ca bi. To xung tn s 1Khz Chu k = 1/103 = 0,001 giy= 1 mili giy=1000 uS= 1000 chu k my. Vi 10 cp tc , tc l bn phi to ra c xung 10%, 20%, 30%, 40%, , 90%, 100%. 1 xung nh sau:
048684577
DKS_GROUP
Cc c tnh ny cc bn tham kho trong gio trnh v my in, kh c in, nu cc bn cn thng s chnh xc. c th thay i 10 cp tc vi chu k 1000uS, ta khi to cho ngt timer: 100 uS ngt 1 ln. Trong hm ngt kim tra xem ta cn cp xung bao nhiu % th ta s gn gi tr cho n. C th nh sau: * Hm khi to ngt. Dng ngt timer 0, 100 uS ngt 1 ln, dng ch 2 8 bit t ng np li ca timer (v mnh ch cn m n 100).TL0 np bng 156. i vi ch 2 khi trn b m TL0 s quay vng gi tr bng 0, nhng sau n li c np gi tr lu trong TH0(gi tr np li), do ta ch cn gn gi tr choTL0 v TH0 trong hm khi to, cn cc ch khc 16 bit, 2 timer counter 8 bit, khi trn b m TL0 khng c np li m ta phi t gn li gi tr cho n trong hm ngt.
void khoitaotimer0(void)// Ham khoi tao { EA=0;// Cam ngat toan cuc TMOD=0x02;// Timer 0 che do 2 8 bit auto reload TH0=0x9B;// Gia tri nap lai 155 doi ra so hex TL0=0x9B;// Gia tri khoi tao 155 doi ra so hex ET0=1;// Cho phep ngat timer 0 EA=1;// Cho phep ngat toan cuc TR0=1;// Chay timer 0 bat dau dem so chu ki may }
DKS_GROUP 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 ngt:
unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10 unsigned char phantramxung;// Bien chua phan tram xung(0...10) void timer0(void) interrupt 1 //Ngat timer 0 { TR0=0;// Dung chay timer 0 TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao day dem++; if(dem<phantramxung) P2_0=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra chan, xung 5V else P2_0=0;// Neu dem = phan tram xung if(dem==10) dem=0;// Neu dem du 10 thi gan lai bang 0 de bat dau chu ki moi TR0=1;// Cho chay timer }
c th thay i rng xung th ta lu rng xung vo 1 bin, v hm ngt khng cho truyn bin vo ta khai bo bin l bin ton cc c th gn gi tr mi hm. 100 uS ngt 1 ln xc nh chu k 1000 uS ta cn m t 1 n 10 ta khai bo bin m.
void timer0(void) interrupt 1 //Ngat timer 0 { TR0=0;// Dung chay timer 0 TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao day TH0=0xAB; TL0=0xAB; . TR0=1;// Cho chay timer }
Cu trc hm ngt timer no cng phi theo, do ch 2 t ng np li nn k cn gn gi tr cho TH0 v TL0. V bin dem s m t 1 n 10 nu bng 10 kt thc 1 chu k 10*100 =1000 uS, ta gn li n bng 0 sang chu k mi.
if(dem<phantramxung) P2_0=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra chan, xung 5V else P2_0=0;// Neu dem = phan tram xung
Cu lnh ny kim tra nu m nh hn phantramxung th s a ra cng gi tr 1, bng hoc ln hn s a ra gi tr 0. Khi vo chng trnh chnh ta ch vic thay i gi tr bin phantramxung th rng xung s thay i. * Hm main:
void main(void)
DKS_GROUP 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 bn gn phantramxung=4; Th c mi 100uS ngt xy ra 1 ln, v kim tra bin m. Ln u dem=1 <4 nn gi tr P2_0 = 1 mc cao, ln th 2 , 200 uS, dem =2<4 P2_0 = 1 mc cao, ln th 3, 300uS, dem=3<4, P2_0=1 mc cao, ln th 4, 400uS, dem =4 <4 sai, P2_0=0, bt u xung mc thp, c xung t cao xung thp, dem = 5<4 sai , P2_0=0 mc thp, , dem =10 <4 sai P2_0 mc thp 1000 uS , 400uS cao, 600uS thp quay vng dem=0, ngt ln th 11, dem=1 < 4 , P2_0=1 mc cao, c xung thp ln cao. PWM 2 chn P2_0 v P3_5, cc bn khai bo thm 1 bin phantramxung2 v a thm dng lnh sau vo hm ngt.
if(dem<phantramxung) P3_5=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra chan, xung 5V else P3_5=0;// Neu dem = phan tram xung
Ch : Thc ra 1 chu k nh ta va lm khng chnh xc 100% l 1Khz, v ta cha tnh n di ca hm ngt,mi ln ngt 100uS, 10 ln l 1000uS , cn thi gian thc hin hm ngt na, nh vy l chu k ca ta ln hn 1000uS, tn s s <1Khz, nhng thc s sai s khng ng k. Nu cc bn mun chnh xc ti cng chiu lng cc bn. Cc bn chy debug, thch anh ng 12Mhz, quan sat dng sec xem hm ngt din ra trong bao nhiu chu k my, khi np gi tr cho TL0 v TH0 cc bn ly 155 tr i gi tr c ga tr a gn vo, nh vy a+thi gian thc hin hm ngt ng 100uS.
DKS_GROUP 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: Chn ch , ri quan st gi tr TMOD ri quay li in vo chng trnh. Ch : V cng quan trng cc bn ch c chy vi ng c loi nh, nu ng c loi to phi c mch iu khin ring khng l s chy chip. Nu khng c mch iu khin cc bn c th lm, c th mn ca ti, khng th chu kh chy m phng.
DKS_GROUP 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
Hng 4 2 1 3 6
Chn 9 10 11 12 13 14 15 16
Ct 5 3
Hng 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 vo hng, 0V vo ct, dng 10mA n 15 mA. V d: mun n led v tr 5x4 sng, ta a in p ct 4(P0_3) xung 0V, in p hng 5(P2_5) ln 5V. Hin th ch: thng k cc im sng thnh ch ri cho cc hng ct in p tng ng. C th dng cng c debug ly gi tr cng tng ng vi cc led sng. Ging nh qut bn phm, a in p 0V ra tng ct ni vi cng 0. Nh vy s c 8 gi tr: 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F phI a vo 1 mng 8 phn t, ri sau a vo 1 vng for tng dn 1 bin tng phn t mng cot[8]. Vi mi ln 1 chn cng 0 xung 0V ta dng cng 2 a ra 1 gi tr 8 bt iu khin trong 1 ct nhng n no sng. V d mun hng 1 v hng 3 sng th hng 1 v 3 c gi tr 5V cn cc hng khc 0V, ta c gi tr 8 bt sau: 0x05 ( 1010 000). DKS_GROUP 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 ton b k t. Vi 8 ct ln lt bng 0V ta phI a ra tng ng 8 gi tr 8 bit ra cng 2, do ta fI lu 8 gi tr vo 1 mng 8 k t_ kytu1[8], ta s vit cc k t trn 7 ct. mi k t s cch nhau 1 ct khng sng. Ta khai bo mng kytu1[9] c 9 phn t v phn t u tin c gi tr y ra cng 2 l 0x00 tt ton b ct . Qu trnh iu khin hin th nh sau: Ct 1, hng 1, ct 2 hng 2, , ct 8 , hng 8. lm ch chy: Thm 1 bin vo iu khin th t hin th hng. Hin 1 ch trn led nh trn a ra: Ct 1, hng 1, ct 2 hng 2, , ct 8 , hng 8. Mun ch dch chuyn sang trI ta hin th nh sau: Ct 1, hng 2, ct 2 hng 3, , ct 7, hng 8,ct 8 , hng 1 k t sau. Ct 1, hng 3, ct 2 hng 4, , ct 7 hng 1 k t sau,ct 8 , hng 2 k t sau.
8.3) Code:
#include <REGX51.H> /* Cot tu P0.0 den P0.7 Hang tu P2.0 den P2.7 De quet dua muc logic 0 lan luot ra cong 0 */ /* Ham tre */ void delay(long time) { long n; for(n=0; n<time; n++) { ; } } unsigned char kytu1[9];// Mang 9 phan tu chua gia tri cac hang day ra cong 2 unsigned char k=0;// Bien xac dinh cac ky tu /* Ham nap gia tri hien thi cac ky tu vao mang kytu1 co 8 gia tri dua ra va 1 gia tri khong bat den nao de cac ky tu cach nhau 1 cot */ void mahoa(unsigned char x) { switch(x) {
DKS_GROUP 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 lm mch cc bn thm cc linh kin khuych i hoc n dng n sng u nh ULN2003 hoc ULN 2803 a gi tr logic ra hng, dng transitor hoc dng lun ULN qut ct.
DKS_GROUP www.EmbestDKS.com
- 128 -
S nh 38 ng 36 L Thanh Ngh
048684577