Upload
gaikieuuc
View
215
Download
0
Embed Size (px)
Citation preview
8/7/2019 giaotrinh8051
1/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 1 - www.EmbestDKS.com
8/7/2019 giaotrinh8051
2/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 2 - www.EmbestDKS.com
MC LCBi 1: Gii thiu v vi iu khin 3
1.1.Tiu chun trong la chn mt b vi iu khin 3
1.2.Vi iu khin v vi x l 3
1.3.S chn vi iu khin 8051 3
1.4.Mch 8051 ti thiu 6
1.5.Cu trc s khi ca vi iu khin 7
1.6.Cc thnh vin khc ca h 8051 9
1.7.Ram ni v cc thanh ghi SFR ca 8051 11
Bi 2.Ngn nglp trnh cho vi iu khin (Phn 1) 12
2.1.Cu trc mt chng trnh
122.2.Cc loi bin trong C 13
2.3.Hm trong C 15
2.4.Ton t cbn 15
2.5.Cu trc lnh r nhnh 15
2.6.B tin x l 16
Bi 2.Hng dn sdng keil C (Phn 2) 17
2.1.Khi to project 17
2.2.Son tho chng trnh 362.3.Dch chng trnh 41
2.4.M phng 45
Bi 3.iu khin O(out) vi Led n 50
3.1.Lp mch 50
3.2.Nguyn l hot ng 51
3.3.Lp trnh 52
3.4.Np chng trnh 60
3.5.Kt qu 61
3.6.iu khin Led tng chic 1 62
3.7.iu khin Out 62
Bi 4.iu khin led 7 thanh 67
4.1.Lp mch 67
8/7/2019 giaotrinh8051
3/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 3 - www.EmbestDKS.com
4.2.Nguyn l hot ng 68
4.3.Lp trnh 69
4.4.Np chp75
4.5.Kt qu 75
Bi 5.c bn phm 78
5.1.Lp mch 78
5.2.Nguyn l qut phm 79
5.3.Lp trnh 79
Bi 6.iu khin LCD 16x2 94
6.1.Lp mch 94
6.2.Nguyn l hot ng ca LCD 97
6.3.Lp trnh 97
6.3.1.nh ngha con tr 99
6.3.2.Cch s dng 99
Bi7.iu ch rng xung 100
7.1.Lp mch theo s 101
7.2.Nguyn l hot ng 110
Bi 8.Led ma trn1148.1.Lp mch 114
8.2.Nguyn l hot ng 116
8.2.Code 117
8/7/2019 giaotrinh8051
4/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 4 - www.EmbestDKS.com
Ch : y hon ton l phn l thuyt, mnh rt gn ti a, do cc bn nn c
ht. Cha nn thc hnh vi v ti s hng dn sau.1.1 Tiu chun trong la chn mt b vi iu khinL kh nng sn sng p ng v s lng trong hin ti v tng lai. i vi mt s
nh thit kiu ny l quan trong hn c . Hin nay, cc b vi iu khin 8 bit ngu l h 8051 c s lng ln nht cc nh cung cp a dng (nhiu ngun). Nhcung cp c ngha l nh sn xut bn cnh nh sng ch ca b vi iu khin. Trongtrng hp 8051 th nh sng ch ca n l Intel, nhng hin nay c rt nhiu hngsn xut n (cng nh trc kia sn xut).
Cc hng ny bao gm: Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matrav Dallas, Semicndictior.
Bng a ch ca mt s hng sn xut cc thnh vin ca h 8051.Hng a ch WebsiteIntelAntelPlips/ SignetisSiemensDallas Semiconductor
www.intel.com/design/mcs51www.atmel.comwww.semiconductors.philips.comwww.sci.siemens.comwww.dalsemi.com
8051 l mt b x l 8 bit c ngha l CPU ch c th lm vic vi 8 bit dliu ti mt thi im. D liu ln hn 8 bit c chia ra thnh cc d liu 8 bit cho x l. 8051 c tt c 4 cng vo - ra I/O mi cng rng 8 bit. Cc nh sn xut cho xut xng ch vi 4K byte ROM trn chp.
Bng cc c tnh ca 8051 u tin.c tnh S lng
ROM trn chpRAMBnh thiCc chn vo - raCng ni tipNgun ngt
4K byte128 byte23216
1.2.Vi iu khin v vi xl: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 khincha 1 b vi x l v RAM,ROM, cng IO, v c th c cc thit b ngoi vi.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 nhngoi 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
8/7/2019 giaotrinh8051
5/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 5 - www.EmbestDKS.com
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 chc
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 nhm ngoI
i vi 8051.
i vi 8051 th : EA = 5V : Chn ROM ni. EA = 0V : Chn ROM ngoi.
32 chn cn li chia lm 4 cng vo ra:
Vo ra tc l c th dng chn c mc logic (0;1 tng ng vi 0V ; 5V)vohay xut mc logic ra(0;1)
P0 t chn 39 32 tng ng l cc chn P0_0 P0_7P1 t chn 1 8 tng ng l cc chn P1_0 P1_7P2 t chn 2128 tng ng l cc chn P2_0 P2_7P3 t chn 10 17 tng ng l cc chn P3_0 P3_7
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
P0 P1 P2 P3 Port's BitP0.0 P1.0 P2.0 P3.0 D0
P0.1 P1.1 P2.1 P3.1 D1P0.2 P1.2 P2.2 P3.2 D2P0.3 P1.3 P2.3 P3.3 D3P0.4 P1.4 P2.4 P3.4 D4P0.5 P1.5 P2.5 P3.5 D5P0.6 P1.6 P2.6 P3.6 D6P0.7 P1.7 P2.7 P3.7 D7
U1
AT89C51
31
1918
9
12131415
1234567
8
393837363534
3332
2122232425262728
1716
293011
10
40
20
EA/VP
X1X2
RESET
INT0INT1T0T1
P1.0P1.1P1.2P1.3P1.4P1.5P1.6
P1.7
P0.0P0.1P0.2P0.3P0.4P0.5
P0.6P0.7
P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7
RDWR
PSENALE/PTXD
RXD
VCC
VSS
8/7/2019 giaotrinh8051
6/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 6 - www.EmbestDKS.com
Tn s thch anh thng dng trong cc ng dng l : 11.0592Mhz(giao tip vi cngcom my tnh) v 12Mhz Tn s ti a 24Mhz. Tn s cng ln VK x l cngnhanh.
Dao ng ca thch anhS1 S2 S3 S4 S5
S6
P1 P2
Ring cng 3 c thm chc nng nh di yP3.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 VKTn s thch anh thng c dng trong cc ng dng l : 11.0592Mhz(giao tipvi cng com my tnh) v 12Mhz
Tn s ti a 24Mhz. Tn s cng ln VK x l cng nhanh.
U3
8051
31
1918
9
3938373635343332
20
40
EA/VP
X1X2
RESET
P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7
GND
VCC
R110K
5VDC
C133p
+ C310uF/25V
C233p
R7
R410Kx9
R9
12Mhz
8/7/2019 giaotrinh8051
7/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 7 - www.EmbestDKS.com
Mch ny cha c khi ngun to ngun 5V cc bn dng con IC sau:
S chn:
Gii thiu IC n p 7805 : u vo > 7V u ra 5V 500mA. Mch n p: cn choVK v nu ngun cho VK khng n nh th s treo VK, khng chy ng, hocreset lin tc, thm ch l cht chp.Mch ngun
U1
LM7805/TO1
2
3VIN
GND
VOUT
+ C3
10uF/25V
12VDC In
C2
104
5VDC Out
C1
104
1.4. Mch vi iu khin cbn
12Mhz
U1
8051
19
18
9
40
20 X1
X2
RESET
VCC
VSS
+ C3
10uF/25V
5VDC
R110K
C233p
C133p
U6LM7805/TO1 3
2
VIN VOUT
GND
8/7/2019 giaotrinh8051
8/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 8 - www.EmbestDKS.com
1.5. Cu trc vi iu khin 89c51
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 cthm 128 byte RAM v mt bnh thi na. Hay ni cch khc l 8052 c 256 byteRAM v 3 bnh thi. N cng c 8K byte ROM. Trn chp thay v 4K byte nh8051.
Bng : So snh cc c tnh ca cc thnh vin h 8051.
c tnh 8051 8052ROM trn chip 4K byte 8K byteRAM 128 byte 256 byteBnh thi 2 3Cng ni tip 1 1Ngun ngt 6 8
Do vy tt c mi chng trnh vit cho 8051 u chy trn 8052 nhng iungc li l khng ng.c bit : Mt nh sn xut chnh ca h 8051 khc na lPhilips Corporation. Hng ny c mt di la chn dng ln cho cc b vi iu khin
COUNTER
OS
INTERRUPT
4 I/OPORTS
BUSCONTRO
SERIALPORT
EXTERNALINTERRUPTS
CPU
ON -CHIP
ETC
TIMER
TIMER
ADDRESS/DAT
TXD RXDP P P P
8/7/2019 giaotrinh8051
9/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 9 - www.EmbestDKS.com
h 8051. Nhiu sn phm ca hng c km theo cc c tnh nh cc b chuyni ADC, DAC, chn PWM, cng I/0 mrng .
Update sn phm 8051 mi ti cc trang web ca cc nh sn xut a chc phn gii thiu. Ch yu:www.atmel.com1.7.Ram ni v cc thanh ghi
Cc thanh ghi SFRc a ch nm gia 80Hv FFH cc a ch ny
F0 F7 F6 F5 F4 F3 F2 F1 F0
E0 E7 E6 E5 E4 E3 E2 E1 E0
D0 D7 D6 6D 6C 6B 6A 69 68
B8 - - - BC BB BA B9 B8
B0 B7 B6 B5 B4 B3 B2 B1 B0
A8 AF AE AD AC AB AA A9 A8
A0 A7 A6 A5 A4 A3 A2 A1 A0
99 Khng nh a ch tng bt98 9F 9E 9D 9C 9B 9A 99 98
90 97 96 95 94 93 92 91 908D Khng nh a ch tng bt8C Khng nh a ch tng bt8B Khng nh a ch tng bt8A Khng nh a ch tng bt89 Khng nh a ch tng bt88 8F 8
E8D 8C 8B 8A 89 88
87 Khng nh a ch tng bt
83 Khng nh a ch tng bt82 Khng nh a ch tng bt81 Khng nh a ch tng bt80 87 86 8
5
84 83 82 81 80
THANH GHI CHC NNG C BIT
8/7/2019 giaotrinh8051
10/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 10 - www.EmbestDKS.com
trn 80H, v cc a ch t 00 n 7FH l a ch ca b nhRAM bn trong8051. Khng phi tt c mi a ch t 80H n FFH u do SFR s dng, nhngv tr ngn nht 80H n FFH cha dngl d tr v lp trnh vin 8051 cngkhng c s dng.
Bng : chc nng ca thanh ghi chc nng c bit SFR
SFR nh a ch tng bit( nhng thanh ghi cn nhi khi lp trnh cbn C)
Thanh ghi /Bit
K hiu Chc nng
TMOD Chn model cho bnh thi 17 GATE Bt iu khin cng. Khi c set ln 1, bnh
thi ch hot ng trong khi INT1 mc cao6 C/T Bt chn chc nng m hoc nh thi:
1= m skin0= nh thi trong mt khong thi gian
5 M1 Bit chn ch thnht4 M0 Bit chn ch th2
M1 M0 Ch
Chc nng
0 0 0 Chnh thi 13 bit0 1 1 Chnh thi 16 bit1 0 2 Ch tng np li 8
bit1 1 3 Chnh thi chia x
3 GATE Bit iu khin cng cho bnh thi 02 C/T Bit chn chc nng m /nh thi cho bnh
thi 01 M1 Bit chn ch thnht cho bnh thi 00 M0 Bit chn ch th2 cho bnh thi 0
TF1 TR1 TF1 TR0 IE1 IT1 IE0 IT0Thanh ghi / Bit K hiu Chc nng
TCON iu khin binh thiTCON.7 TF1 Ctrn ca bnh thi 1. Cny c set bi
phn cng khi c trn, c xo bi phn mm,hoc bi phn cng khi b vi xl trn trnh
phc v ngtTCON.6 TR1 Bit iu khin hot ng ca bnh thi 1. Bit
ny c set hoc xo bi phn mm iukhin bnh thi hot ng hay ngng
TCON.5 TF0 Ctrn ca bnh thi 0TCON.4 TR0 Bit iu khin hot ng ca bnh thi 0TCON.3 IE1 Cngt bn ngoi 1 (kch khi cnh). Cny
c set bi phn cng khi c cnh m (cung)xut hin trn chn INT1, c xo bi phnmm, hoc phn cng khi CPU trn trnh
phc v ngt
8/7/2019 giaotrinh8051
11/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 11 - www.EmbestDKS.com
TCON.2 IT1 Cngt bn ngoi 1 (kch khi cnh hoc mc).Cny c set hoc xo bi phn mm khi xyra cnh m hoc mc thp ti chn ngt ngoi
TCON.1 IE0 Cngt bn ngoi 0 (kch khi cnh)TCON.0 IT0 Cngt bn ngoi 0 ( kch khi cnh hoc mc)EA ET2 ES ET1 EX1 EX0 ET0
iu khin cc ngun ngtIE (0: khng cho php; 1: cho php)
IE.7 EA Cho php/ khng cho php ton ccIE.6 --- Khng sdngIE.5 ET2 Cho php ngt do bnh thi 2IE.4 ES Cho php ngt do port ni tipIE.3 ET1 Cho php ngt cho bnh thi 1IE.2 EX1 Cho php ngt tbn ngoi (ngt ngoi 1)IE.1 EX0 Cho php ngt tbn ngoi (ngt ngoi 0)
IE.0 ET0 Cho php ngt do bnh thi 0
CH 3 thanh ghi ny cng rt cbn, nhtn thanh ghi, tn cc bt trong thanh ghi,
chc nng tng thanh ghi v tng bt trong thanh ghi.
1.8.Gii thiu squa cc ngun ngt:
Ngt do C a ch vectorReset h thng RST 0000HNgt ngoi 0 IE0 0003H
Bnh thi 0 TF0 000BHNgt ngoi 1 IE1 0013HBnh thi 1 TF1 001BHPort ni tip RI hoc TI 0023H
Bnh thi 2 TF2 hoc EXF2 002BH
Timer
* ** * ** * **
Main Program
Main
ISR
Main
ISR
Main
ISR
Main
Program excution without interrut
Program excution with interrupt.
8/7/2019 giaotrinh8051
12/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 12 - www.EmbestDKS.com
Mt chng trnh chnh khng c ngt th chy lin tc, cn chng trnh cngt th c khi no iu kin ngt c m bo th con tr s nhy sang hm ngtthc hin xong hm ngt li quay vng ch c v thc hin tip chng trnh. Tac 1 v d nh sau: Bn ang n cm , c ting in thoi , bn t bt cm ra nghein thoi , nghe xong li quay v bng bt cm ln n tip. Th qu trnh n cm cabn l chng trnh chnh,c in thoi gi n l iu kin ngt, bn ra nghe inthoi l thc hin chng trnh ngt(Interrupt Service Rountine),quay vn cm tipl 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 ukhng gii thch ngt lm g. C nhiu loi ngt khc nhau nhng tt cu cchung 1 c im, ngt dng cho mc ch a nhim. a tc l nhiu, nhim tc lnhim v. Thc hin nhiu nhim v .Cc bn nhn vo tin trnh ca hm main vichng 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 dn cm nghe in thoica ti ch , thi gian thc hin hm chnh l rt ln,thi gian thc hin hm ngtl rt nh, cho nn thi gian thc thi hm ngt khng nh hng nhiu lm n chcnng hm chnh. Nh vy trong hm ngt cc bn lm 1 vic, trong hm chnh ccbn lm 1 vicnh vy coi nh cc bn lm c 2 vic(a nhim) trong 1 quang thi gian tng ingn c mS, ch thc ra ti 1 thi im vi iu khin ch thc thi 1 lnh.V d : Bn th nghxem lm th no va iu ch xung PWM iu chnh tcng c, va c cc cm bin u vo m tc ng cph thuc u vo cmbin.
2.1.Cu trc mt chng trnh://nh km cc file#include #include //Khai bo bin ton ccunsigned char x,y;int z;long n=0;//Khai bo v nh ngha cc hm
void Hm1(void){//Cc cu lnh
}
void Hm2(unsigned char x){
//Cc cu lnh}
8/7/2019 giaotrinh8051
13/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 13 - www.EmbestDKS.com
//Hm chnh bt buc chng trnh no cng phI cvoid main(void){
//Cc cu lnh}
Cc cu lnh trong hm chnh c th c li gi cc hm khai bo trnhoc khngKhi c li gi hm no th chng trnh nhy n hm thc hin hm xong contr 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: Mu 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 trnhln d sa li.
2.2.Cc loi bin trong C:
Dng bin S Bit S Byte Min gi tr
char 8 1 -128 n +127
unsigned char 8 1 0 n 255
short 16 2 -32,768 n +32,767
unsigned short 16 2 0 n 65,535
int 16 2 -32,768 n +32,767
unsigned int 16 2 0 n 65,535
long 32 4-2,147,483,648n+2,147,483,647
unsigned long 32 4 0 n 4,294,697,295
Khai bo binCu trc : Kiu bin Tn binVD: 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 lcVD: unsigned int x,y,z;Ngoi ra dng cho vi iu khin trnh dch chuyn dng cn h trcc loi binsau:
Dng bin S Bit S Byte Min gi tr
bit 1 0 0 ; 1
sbit 1 0 0 ; 1
8/7/2019 giaotrinh8051
14/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 14 - www.EmbestDKS.com
sfr 8 1 0 n 255
sf16 16 2 0 n 65,535
VD:Ngoi ra ,chng ta c th nh ngha bin kiu bt hay kiu SFR (special functionregister)Bit Kiemtra;Sfr P10=0x90;VD:Bit Kiemtra;Sfr P10=0x90;Cc SFR khng cn phi hc thuc ch cn bit, v chng c khai bo trong thvinAT89X51.H v AT89X52.H
2.3.Hm trong C:Hm trong C c cu trc nh sauC 2 loi hm
Hm tr li gi tr:Cu trc: Kiu gi tr hm tr lii Tn hm (Bin truyn vo hm)
{// Cc lnh x l y}
VD : unsigned char Cong(unsigned char x, unsigned char y){// Cc lnh x l y
}Hm khng tr li gi trCu trc: void Tn hm (Bin truyn vo hm)
{// Cc cu lnh x l y}
VD d : void Cong(unsigned char x, unsigned char y){
// Cc cu lnh x l y}
Hm c th truyn vo bin hoc khngVD
Hm khng c bin truyn vo:unsigned char Tnhm(void)
{// Cc cu lnh x ly
}Hm c bin truyn vo:
void Tnhm(unsigned char x)
8/7/2019 giaotrinh8051
15/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 15 - www.EmbestDKS.com
{// Cc cu lnh x ly
}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 ly}
Ngoi ra ring cho vi iu khin phn phm Keil C cn c mt loi hm l hmngt: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 kInterrupt l t kha ch hm ngt
Ngun ngt t 0 ti 5 theo bng vector ngtNgt do C a ch vector
Reset h thng RST 0000HNgt ngoi 0 IE0 0003H
Bnh thi 0 TF0 000BHNgt ngoi 1 IE1 0013H
Bnh thi 1 TF1 001BH
Port ni tip RI hoc TI 0023HBnh thi 2 TF2 hoc EXF2 002BH
Khng tnh ngt reset h thng bt u m t ngt ngoi 0Bng thanh ghi trn ram chn t 0 n 32.4.Cc ton tcbn:Php gn: =VD: x=y; // x phi l bin y c th l bin hoc gi tr nhng phi ph hp kiuPhp cng: +Php tr: -Php nhn: *Php chia: /Cc ton t logic:
Bng : ==And: &&Or: ||Not: !Dch tri: >2.5.Cc cu trc lnh r nhnh, kim tra thng dng:Cu lnh r nhnh if:
8/7/2019 giaotrinh8051
16/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 16 - www.EmbestDKS.com
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
quaCu 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 rithot khi cu trc nhcu 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
thotCu lnh vng lp xc nh for:
Cu trc: for( n=m; nl), cn n l binThc 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:Thc hin lp cc cu lnh khi iu kin ng, nu cu lnh sai thi thot khi
vng lp2.6. B tin xl:#define : Dng nh ngha. V d:#define dung 1#define sai 0c ngha l dung c gi tr bng 1. Trong chng trnh c th c on code nh sau:bit kiemtra
if (bit==dung) { // Cc cu lnh}if (bit==sai) { // Cc cu lnh}Vic ny gip lp trnh d sa li hn.
Mt s web hay :www.dientuvietnam.net www.atmel.comwww.svbkol.org www.keil.comwww.diendandientu.com www.iguanalabs.com
8/7/2019 giaotrinh8051
17/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 17 - www.EmbestDKS.com
www.microchip.comwww.elechtro-tech-online.comwww.diendansv.hutech.edu.vnwww.ttvnol.comwww.8052.comwww.kmitl.ac.thwww.ftdichip.com
Bi 2 (Tip)Phn 2: Sdng Keil C.
Sau khi ci t1> Khi to cho Project:
8/7/2019 giaotrinh8051
18/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 18 - www.EmbestDKS.com
to 1 project mi chn Project New project nh sau:
8/7/2019 giaotrinh8051
19/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 19 - www.EmbestDKS.com
c hnh sau:
8/7/2019 giaotrinh8051
20/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 20 - www.EmbestDKS.com
nh tn v chuyn n th mc bn lu project. Bn nn to mi mt th mc cho 1 project.Ri chn Save.
8/7/2019 giaotrinh8051
21/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 21 - www.EmbestDKS.com
c hnh sau:
8/7/2019 giaotrinh8051
22/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 22 - www.EmbestDKS.com
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 + mrng cc con IC ca cc hng. y ta lp trnh choAT89C51 ca hng Atmel nn ta chn nh sau:
8/7/2019 giaotrinh8051
23/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 23 - www.EmbestDKS.com
Khi chn chip th ngay lp tc ci bng hin ra 1 s tnh nng ca chp cc bn c th nhnthy. 8051 based Fully Static 24Mhz . Nhap OK c ca s nh sau:
8/7/2019 giaotrinh8051
24/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 24 - www.EmbestDKS.com
Chn No. Chn Yes ch lm cho file lp trnh ca bn thm nng . c ca s sau:
8/7/2019 giaotrinh8051
25/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 25 - www.EmbestDKS.com
to 1 file code cc bn chn File New hoc n Ctrl+N. Nh sau:
8/7/2019 giaotrinh8051
26/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 26 - www.EmbestDKS.com
c ca s nh sau:
8/7/2019 giaotrinh8051
27/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 27 - www.EmbestDKS.com
Cho ca s Text 1 to ra c nh sau:
8/7/2019 giaotrinh8051
28/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 28 - www.EmbestDKS.com
Tip theo bn chn File Save As hoc Ctrl+S. nhfile mc d cha c g. Nh sau:
8/7/2019 giaotrinh8051
29/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 29 - www.EmbestDKS.com
c ca s sau:
8/7/2019 giaotrinh8051
30/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 30 - www.EmbestDKS.com
Cc bn nhp tn vo text box file name. Ch tn g cng c nhng khng c thiu uimrng .C . Nhn Save. c ca s sau:
8/7/2019 giaotrinh8051
31/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 31 - www.EmbestDKS.com
Trong bn tri mn hnh, ca s project workspace, cc bn mrng ci target 1 ra c nhsau:
8/7/2019 giaotrinh8051
32/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 32 - www.EmbestDKS.com
Nhp chut phi vo th mc Suorce Group1 c hnh nh trn. Chn Add files to GroupSource Group1 add file vo project. c nh sau:
8/7/2019 giaotrinh8051
33/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 33 - www.EmbestDKS.com
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 nhsau:
8/7/2019 giaotrinh8051
34/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 34 - www.EmbestDKS.com
By ginhn trong Source Group 1 thy file Dieukhienled_IO.C . Cc bn nhp chut phivo vng son tho file Dieukhienled_IO.C nh sau, thm file th vin.Chn Insert#include
8/7/2019 giaotrinh8051
35/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 35 - www.EmbestDKS.com
Cc bn bit file l g nu cc bn hc bi trc k theo yu cu ca ti. c nhsau:
8/7/2019 giaotrinh8051
36/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 36 - www.EmbestDKS.com
Phn cui cng ca cng vic khi to l cc bn vit li gii thch cho d n ca mnh .Phnny rt cn thit v n ngi khc hiu mnh lm g tron project ny v khi mnh cn s dngli code c li mnh cn bit n l ci g.Cc bn to li gii thch theo mu sau:
8/7/2019 giaotrinh8051
37/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 37 - www.EmbestDKS.com
2> Son tho chng trnh:
Cc bn vit chng trnh ca bi 3 vo y lm v d. Khi vit xong 1 dng lnh nngii thch dng lnh lm g. Nh sau:
8/7/2019 giaotrinh8051
38/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 38 - www.EmbestDKS.com
Cc bn nn chia chng trnh nh ti lm. Vi 1 file nh th n hi rm r. Nhng vi 1 fileln khong 1000 dng code th n li rt sng sa. Cc bn nn to 1 file mu ri nhvo 1 filetext u mi ln dng ch vic copy ri paste qua ch khng nn mi ln to mt cinh vy li phn tc dng. Pha trn l phn b tin x l v khai bo bin. Tip theo l vithm tr.
8/7/2019 giaotrinh8051
39/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 39 - www.EmbestDKS.com
Tip theo l vit hm main. Nh sau:
8/7/2019 giaotrinh8051
40/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 40 - www.EmbestDKS.com
Ri nhn Ctrl+S. Hoc chn File Save nhfile va son tho.
Cc bn nhn vo code c th cc bn hiu con AT89C51 n lm g nu cc bn nmvng cc bi trc. Cn nu khng hiu th ti s gii thch li cho cc bn.
8/7/2019 giaotrinh8051
41/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 41 - www.EmbestDKS.com
y l s nguyn l ca 1 led. Project l 8 led(v phc v cho bi 3) nhng ti ch giithch 1 led l cc bn hiu. Mc ch l lm con led nhp nhy.
+ C3
10uF/25V
C2
33p
C133p X1
19
X218
RESET9
P1.01
VCC
40
VSS20
U1
8051
R110K
5VDC
12Mhz
D1
LED
R2
470
Bin Led1 c khai bo (gn cho) chn P0_1 ca vi iu khin bng cu lnh sbitLed1=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 Tr470 Led1 P1_0 (0 V). C chnh lch p c dngin qua led Led sng. Cc bn c th tnh tan ch ny d dng l ti sao li l tr470 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 utr: 5V -0,6V = 4,4V. Dng qua tr= dng qua led = 4,4V/470 m xp x 10 mA. Vi dng10mA n 15mA l led dng sng v sng rt p. Nu dng yu th led m, cn dngln 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 l5V . Hiu in th gia hai u +5V v P1_0 l 0V . Nn khng c dng qua led Ledtt.Nhng nu trong hm main cc bn vit ch c nh sau:
While(1){
Led1=bat;Led1=tat;
}Khi chy debug th vn thy led nhp nhy. Nhng khi np chng trnh vo chp lp vo mchth led khng nhy hoc ch sng mhoc 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 ledln tr 1 thi gian kh lu(0,5 giy), ri tt led i kh lu(0,5s) ri li bt li to thnh vng lpsc led nhp nhy.Tc dng ca cu lnh while(1) . iu kin bn trong vng while l 1 lun lun ng nn n lvng lp v hn ln. Nu khng c vng while(1) th led ca cc bn ch sng ln 1 ln ri tt
8/7/2019 giaotrinh8051
42/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 42 - www.EmbestDKS.com
v ht chng trnh ri cn u. Phn ny nu bn no mi hc in t th no cng c cu hithc mc c nhn tin hoc gi mail.3> Dch chng trnh:Son tho song nhn Ctrl +S nh. Nhxong cc bn bin dch chng trnh bng cch nphm F7 hoc chn Build target l biu tng ngay trn ca s workspace nh trn hnh:
Cc bn s thy nh sau:
8/7/2019 giaotrinh8051
43/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 43 - www.EmbestDKS.com
Trong ca s Output Window ngay pha trn dng ch ny c cc dng ch Compiling
LinkingProgram 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 thong cha. Ti v d xa 1 du ; trong hm main dng : Led1=bat; , gibi thnh Led1=bat .Ri dch li (n F7) trnh bin dch s bo nh sau:
8/7/2019 giaotrinh8051
44/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 44 - www.EmbestDKS.com
Syntax error near tre. Sai c php gn tr. Cc bn nhp p tri chut vo dng thng bo nycon tr sngay dng di dng c li thm du nhn du mi tn mu xanh hnh di y,g vo du ; v dch li l OK. Trong chng trnh ln i khi con tr chn gn ch c lithi v bn phi t tm ra li.
8/7/2019 giaotrinh8051
45/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 45 - www.EmbestDKS.com
Sau khi dch li c hnh sau:
8/7/2019 giaotrinh8051
46/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 46 - www.EmbestDKS.com
4> Chy m phng v sa li.Trc khi debug chng ta khi to nh sau. Cc ban vo Option for target 1.
8/7/2019 giaotrinh8051
47/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 47 - www.EmbestDKS.com
c bng sau. Nhp tn s thch anh l 12 Mhz ng vi tn s thch anh.
8/7/2019 giaotrinh8051
48/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 48 - www.EmbestDKS.com
Chn OK. debug cc bn nhn t hp phm Ctrl + F5. Hoc nhn vo icon c ch D mu trong ciknh lp trn thanh cng c. c ca s sau:
8/7/2019 giaotrinh8051
49/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 49 - www.EmbestDKS.com
Trong menu Peripherals(cc thit b ngoi vi) chn IO port , Port 1. c nh sau:
8/7/2019 giaotrinh8051
50/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 50 - www.EmbestDKS.com
Cc bn thy 1 ca s nh Parallel Port 1 xut hin l ci m phng cho cng 1 caAT89C51. Du tch tng ng chn mc cao(5V) , khng tch chn mc thp (0V).Trong menu peripherals cn cc ngoi vi khc nh timer , interrupt, serial. Cc bi sau dngn cc bn nhly 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 chhm delay lu qu 1000 lnlp . Cc bn nhn Ctrl + F11 b qua hm.
8/7/2019 giaotrinh8051
51/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 51 - www.EmbestDKS.com
Hoc n F10 chy tng dng lnh. Cc bn s thy chn P1_0 thay i gi tr.Bng bn tri , Project workspace by gic cc thanh ghi. Cc bn c th thy chng thayi. 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 voy bit lnh no mt bao nhiu chu k my, lm thi gian thc th cn lm y. Thot khidebug li n Ctrl+F5 hoc n vo icon debug.
.3.1.Lp mch :
-Khi ngun 5V cc bn nh lp mch n nhy.-Cc bn lp mch theo s sau:
+ C3
10uF/25V
C233p
C133p X1
19
X218
RESET
9
P1.01
VCC
40
VSS20
P1.12
P1.23
P1.34
P1.45
P1.56
P1.67
P1.78
EA31
P0.039
P0.138
P0.237
P0.336
P0.435
P0.534
P0.633
P0.732
U1
8051
R110K
5VDC
12Mhz
D1
D2
D3
D4
D5
D6
D7
D8
1
2 3 4 5 6 7 8 910
R11
RESISTOR SIP 10
- Hng dn lp mch:* Qui nh : nu linh kin no ti khng nhc n chiu th cc bn lp linh kin chiu
no cng c.Hng dc ngoi l ngun 5 V.Hng dc trong l GND.Th t chn cc bn phi nhkhng ging th t sp xp tronh hnh v mch.
Cch m chn cc bn con chip xui m cc bn nhn dng ch AT89C51/52xui, chn 1 l chn gn du trn v hnh tam gic nh mu trng. m t trn xungdi tri qua phi. S chn con IC tht sm ng th ny. Khi lp mch phim chn.
8/7/2019 giaotrinh8051
52/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 52 - www.EmbestDKS.com
Khng nn lp ngun 12V vo vi ch khi np chp xong lp vo mch mi lpngun.Khi mun gchp ra phi rt ngun ra ri mi gchp.
* 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 tr10K(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 trbng.
chp chy vi ROM trong chn EA phi ln +5V qua 1 in tr.Cng 0 l cng c cc mng hmun thc hin c IO th phi c in tr
treo.(Thy ci ny l xem li bi 2). Nn lp 1 con trbng 10 chn vo cng 0 vchn EA.Chn 1 ca trbng ( Chn u tin c nt trn mu trng) vo chn 40. Chn 10 catrbng vo chn 31.Nu khng c trbng cc bn c th thay trbng 10 chn bng 9 con trthng vtrbng 10 chn chnh l 9 con tru 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.Lp chn di ca 1 led vo chn 1 vi iu khin chn ngn vo GND.Tng t lp 7 led cn li vo chn 2 n chn 8.* Bc 5 cu 1 dy nh t chn 40 ln ngun 5V.3.2. Nguyn l hot ng:
Led ni t chn vk xung t vy nu chn vi iu khin 5V th led s sng,nu chn vi iu khin 0V th led s ti.
in p 5V v sao led khng chy m li cn sng yu?
U1
AT89C51
31
1918
9
12131415
12345678
3938373635343332
21
22232425262728
1716
293011
10
40
20
EA/VP
X1X2
RESET
INT0INT1T0T1
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7
P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7
RDWR
PSENALE/PTXD
RXD
VCC
VSS
8/7/2019 giaotrinh8051
53/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 53 - www.EmbestDKS.com
V vi iu khin 8051 ch c th cung cp dng nh khng 10mA 1 chn nn ledsng yu. Cn nu mun led sng p th lp nh sau t dng 5V Chn di caled Chn ngn ca ledChn vi iu khin. Ci ny s ni sau.* Bc 5 lp ngun:
Lp 1 dy t chn 40 ln hng ngun 5V.3.3. Lp trnh :Trc ht iu khin 1 led. iu khin 1 led th cc bn ch vic gn chn ni viled bng 0 hoc 1, th in p chn s l 0V hoc 5V, ty vo in p n ssng 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 MhzTac gia:
Nguyen Huy Thanh.Thoi gian:
Bat dau: 1h03 16/7/2005Hoan thanh: 1h07 16/7/2005
=====================================================*/
/******************Bo tien xu li*******************************/#include // Dinh kem file thu vien#define bat 1 // Dinh nghia gia tri bat den led
#define tat 0// Dinh nghia gia tri tat den led
/************************************************************/
/*******************Khai bao bien toan cuc**********************/sbit Led1=P1^0; //Khai bao bien Led1 kieu bit chan P1_0sbit 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.
8/7/2019 giaotrinh8051
54/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 54 - www.EmbestDKS.com
Dau ra: khong------------------------------------------------------*/void tre(long time){
long n;// Khai bao bien cuc bofor(n=0; n
8/7/2019 giaotrinh8051
55/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 55 - www.EmbestDKS.com
8/7/2019 giaotrinh8051
56/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 56 - www.EmbestDKS.com
8/7/2019 giaotrinh8051
57/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 57 - www.EmbestDKS.com
* c th np chng trnh vo chp th fi to ra file .hex. to ra file .hex lmnh sau . Vo Option for target ch chnh tn s thch anh.
8/7/2019 giaotrinh8051
58/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 58 - www.EmbestDKS.com
c hnh sau:
8/7/2019 giaotrinh8051
59/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 59 - www.EmbestDKS.com
Kch vo tab Output. c hnh sau:
8/7/2019 giaotrinh8051
60/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 60 - www.EmbestDKS.com
Tch vo check : Create Hex File. Nhp OK. Nhn fm F7 bin dch li . Khi di cas output window c ch Creating hex file
8/7/2019 giaotrinh8051
61/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 61 - www.EmbestDKS.com
Creating hex file from Dieukhienled_IO nh ngay trn hnh.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).Mphn mm EZDL4 ln. Thy c ch identifing target chip . Nhy. Gt cn nh
socket 40 chn kp chp cho tip xc.
8/7/2019 giaotrinh8051
62/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 62 - www.EmbestDKS.com
Trn EZDL4 s thy ch AT89C51 hoc AT89C52 ty cc bn dng loi chpno.
Kch vo Send. Chn ng dn n th mc lu project ca bn chn file :Dieukhienled_IO.hex . Nhn OK. Chmch bo ch Complete th gt ny trn socketly 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 tng gi tr khng, lp ng s khng,
lp c lng khng.2) Kim tra xem tmch reset chn 9 lp ng cc khng, c lng khng.
Dng ng ho chn 9 nu 0V hoc xp x 0V l OK.3) Trbng lp ng chiu cha, chn 1 vo chn 40. Dng ng ho 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 gianLed1= tat;// Tat led 1tre(1000);// Tre 1 khoang thoi gianLed2= bat;// Bat led 2tre(1000);// Tre 1 khoang thoi gianLed2= tat;// Tat led 2tre(1000);// Tre 1 khoang thoi gianLed3= bat;// Bat led 3tre(1000);// Tre 1 khoang thoi gianLed3= tat;// Tat led 3tre(1000);// Tre 1 khoang thoi gianLed4= bat;// Bat led 4
tre(1000);// Tre 1 khoang thoi gianLed4= tat;// Tat led 4tre(1000);// Tre 1 khoang thoi gianLed5= bat;// Bat led 5tre(1000);// Tre 1 khoang thoi gianLed5= tat;// Tat led 5tre(1000);// Tre 1 khoang thoi gianLed6= bat;// Bat led 6tre(1000);// Tre 1 khoang thoi gian
8/7/2019 giaotrinh8051
63/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 63 - www.EmbestDKS.com
Led6= tat;// Tat led 6tre(1000);// Tre 1 khoang thoi gianLed7= bat;// Bat led 7tre(1000);// Tre 1 khoang thoi gianLed7= tat;// Tat led 7tre(1000);// Tre 1 khoang thoi gianLed8= bat;// Bat led 8tre(1000);// Tre 1 khoang thoi gianLed8= tat;// Tat led 8tre(1000);// Tre 1 khoang thoi gian
}
}iu khin 8 led.Vi 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 1gi tr a(thp phn) t 0 n 255 th s a sc i ra h nh phn ri a racc 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) cnli cc chn khc s l 0(0V).
- Cc bn c tha ra cng 1 gi tr s hex t 0 n ff tng ng t 0 n 255.Cc s cstrong 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 15Cch 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 hexV d: 0010 0001(2) = 21(16) 4 su c bit 1 = 1 nn 1x2
1= 24 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 bitcch 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 ci1 nh sau:
void main(void){
while(1)// Lap vo han{
8/7/2019 giaotrinh8051
64/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 64 - www.EmbestDKS.com
P1=0x01;// Bat led 1tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 1tre(1000);// Tre 1 khoang thoi gianP1=0x02;// Bat led 2tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 2tre(1000);// Tre 1 khoang thoi gianP1=0x04;// Bat led 3tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 3tre(1000);// Tre 1 khoang thoi gianP1=0x08;// Bat led 4tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 4
tre(1000);// Tre 1 khoang thoi gianP1=0x10;// Bat led 5tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 5tre(1000);// Tre 1 khoang thoi gianP1=0x20;// Bat led 6tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 6tre(1000);// Tre 1 khoang thoi gianP1=0x40;// Bat led 7tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 7
tre(1000);// Tre 1 khoang thoi gianP1=0x80;// Bat led 8tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 8tre(1000);// Tre 1 khoang thoi gian
}
}
Nh vy g code vn mi tay lm t c mc ch 8 n nhy lin tip cc bnc th lm 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 1for(n=0 ; n
8/7/2019 giaotrinh8051
65/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 65 - www.EmbestDKS.com
tre(1000);}
}
}
/***********************************************************/
Debug quan st s thay i ca cng 1 thy c li hi ca php dch bit xangtri.
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 1for(n=0 ; n
8/7/2019 giaotrinh8051
66/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 66 - www.EmbestDKS.com
Cc bn thy trong ca s m phng cng 3 c ghi gi tr ca cng 3 l : 0xFF tngng tt c 8 bit l 1111 1111. Gicc bn b du tch trn chn 3.5 v 3.2 i . m ttri qua phi nh.
8/7/2019 giaotrinh8051
67/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 67 - www.EmbestDKS.com
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 nghtrong u ra c dy s 11011011 ri i qua s HEX kt qu s l 0xDB nhng mt lm.
8/7/2019 giaotrinh8051
68/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 68 - www.EmbestDKS.com
4.1 Lp mch :
a b
dotcV-de
f g V -
1 2 3 4 5
678910
A
B
C
DOD
E
F
G
D10
LED CATOT Chung
a b
dotcV+de
f g V +
1 2 3 4 5
678910
A
B
C
DOTD
E
F
G
D11
LED CATOT Chung
C hai loi led 7 thanh: Ant chung v Catt chung. Hnh trn l s chnca hai loi led. N c cu to nh sau:
3
7 6 4 2 1 10 9 5
A B C D E F G DP
8
D12A
Catot chung
3
7 6 4 2 1 10 9 5
8
D13AAnot chung
Ch l 8 con led u chung 1 u: Ant hoc Catt.Mch lp s dng led Ant chung nh sau:
8/7/2019 giaotrinh8051
69/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 69 - www.EmbestDKS.com
+ C3
10uF/25V
C233p
C133p
R110K
5VDC
EA/VP31
X119
X2
18
RESET9
P2.021
P2.122
P2.223
P2.324
P2.425
P2.526
P2.627
VCC
40
VSS20
U3
8051
R310K
12Mhz
A
B
D
C
G
F
E
- Lp mch: Mch bi trc(iu khin led n) nguyn,ch lp thm vo.+ Bc1: Lp 7 in vo 7 chn cng P2 t P2.0 n P2.7( T chn 21 Chn27) 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 lpAT89C51).+ Bc 3: Dng dy in cu t cc chn theo s. Chn iu khin thanh A
vo in trni vo P2.0 v c thn chn iu khin thanh G vo in trnivo 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( Dnhin led n bi trc vn nhp nhy).Rt 1 u in trni vi chn P2.0 ca VK cm xung t thy led 7thanh sng n A,cm li in trv v tr c. Tng t test 6 thanh cnli. Thanh no khng sng th kim tra li xem cm dy tip xc cha. Vnkhng sng th led hng thay led khc vo.
4.2. Nguyn l hot ng:Khi cm ngun vo mch tt c cc chn ca cc cng IO ca VK l 5V(
Nu cng 0 khng lp in trtreo th s l 0V). Nhn s mch khng c chnhlch in p nn khng c n no sng. Chng ta mun sng thanh no ch vic ara in p 0V chn vi iu khin ni vi thanh .
Thanh hin Thanh tt Gi tr(P2) hin th s 1: B,C cc thanh cn li 1111 1001 hin th s 2: A,B,D,E,G cc thanh cn li 1010 0100. hin th s 8: Tt c cc thanh khng thanh no 1000 0000
8/7/2019 giaotrinh8051
70/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 70 - www.EmbestDKS.com
gfe dcbaBt th 8 P2.7 khng
dng.Ngoi ra led 7 thanh cn c th hin th 1 s ch hin th ch B: Ging s 8Hin th ch A: A,B,C,E,F,G D 1000 1000
4.3.Lp trnh :Cch 1: Lp trnh d hiu khng cn phi tnh ton nhng phi vit v copy,
past v sa nhu.Code nh sau:#include /* 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
8/7/2019 giaotrinh8051
71/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 71 - www.EmbestDKS.com
/* 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();
8/7/2019 giaotrinh8051
72/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 72 - www.EmbestDKS.com
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;
8/7/2019 giaotrinh8051
73/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 73 - www.EmbestDKS.com
ThanhE =0;ThanhF =0;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;}
8/7/2019 giaotrinh8051
74/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 74 - www.EmbestDKS.com
void chuR(void){tat();
ThanhA =0;ThanhB =0;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){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;}
8/7/2019 giaotrinh8051
75/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 75 - www.EmbestDKS.com
/* 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);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();
8/7/2019 giaotrinh8051
76/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 76 - www.EmbestDKS.com
delay(20000);chuO();delay(20000);
chuP();delay(20000);chuR();delay(20000);chuS();delay(20000);chuU();delay(20000);chuY();delay(20000);}
}Cch 2: Cc bn vit 1 chng trnh n gin ri dng cng c Debug xem s hex rivit 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, chnProperties Device manage. Nhn vo Scan for hardware change my tnh nhnli 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 1khong thi gian, ri nhy sang s 2 n s 9 , ri n ch. Nu cc bn khng c hmtr 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 tnglu nh mt cc bn s nhn thy tt c cc led sng ch khng hin s.4.6.Kinh nghim :
Sau khi thc hin theo cc rt gn nh vit hm s 1 trn cc bn p dngcu trc lnh switch case vit li chng trnh th chng trnh s rt gn.
8/7/2019 giaotrinh8051
77/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 77 - www.EmbestDKS.com
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 1case 2: { tat(); P2=0xFF; break;}// So 2case 9: { tat(); P2=0xFF; break;}// So 9case 10: { tat(); P2=0xFF; break;}// Chu A.case 20: { tat(); P2=0xFF; break; }// Chu Y
}}
Cc gi trtrn ch l v d cc bn rt gn v t copy vo. Vi hm hin th led ccbn vit hin cc s v cc ch gihm main ch cn nh sau:
void main (void){while(1){
for(n=0; n
8/7/2019 giaotrinh8051
78/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 78 - www.EmbestDKS.com
Phn 1: c 1 phm.Nhim v:
m s ln phm bm gii hn t 0 n 9 hin th ra led 7 thanh.5.1.Lp mch nhsau:
+ C3
10uF/25V
C233p
C133p X1
19
X218
RESET9
P2.021
VCC
40
VSS20
P2.122
P1.01
P1.12
P2.223
P2.324
P2.425
P2.526
P2.627
U1
8051
R110K
5VDC
12Mhz
1 2
SW1
C4
CAP NP
D12LED
R291K
a b
dotcV+de
f g V +
1 2 3 4 5
678910
A
B
C
DOTD
E
F
G
D11
LED ANOT Chung
- Mch bi 5 led 7 thanh gi nguyn.Lp mch: qu n gin.
Bc 1: Lp 1 nt bm u trn mch.Bc 2: Dng dy cu 1 chn nt bm vi P1.0( Thay th led bi 4).Bc 3: Dng dy cu 1 chn nt bm xung t.Bc 4: Lp 1 t 104 gia 2 chn nt bm.Bc 5: Lp trvo chn P1.0 v led t +5V vo u trcn li(Ch ng
chiu led.- Test nt bm: Cm ngun vo, nhn nt n sng. Nh nt n tt.
8/7/2019 giaotrinh8051
79/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 79 - www.EmbestDKS.com
5.2.Nguyn l hot ng:- Phn nt bm: (khi khng c t 104) ban u chn P1.0 mc cao +5V, nu
bm nt 2 u nt bm thng vi nhau. Chn P1.0 thng vi GND. Led sng do c chnh
p. Chn P1.0 thng t.Nu c t 104 tin c np in, khi bm nt tin s phng in t cc
dng sang cc m lm chn P1.0 thng vi GND nhng lu v 0 V hn 1 cht( trcng).
- Khi bm nt theo nguyn l thi bm 1 ci l xung 0 lin, nhng do tip imckh ca nt bm nn khi bm nt n s c 1 s xung in ch khng phi lbm ci l n xung 0 lun. T 104 gim nhiu . T 104 cng c th bi khng lp v ta c th kh nhiu bng phn mm.
5.3.Lp trnh:Code bi 5 gi nguyn: son thm mt s hm nh sau hm c phm bm.Hm c s ln n phm
8/7/2019 giaotrinh8051
80/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 80 - www.EmbestDKS.com
8/7/2019 giaotrinh8051
81/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 81 - www.EmbestDKS.com
Hm hin th s tng ng.
8/7/2019 giaotrinh8051
82/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 82 - www.EmbestDKS.com
Hm main c sa li nh sau:
8/7/2019 giaotrinh8051
83/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 83 - www.EmbestDKS.com
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 nhieuwhile(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 switchcase 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 phimhienthisolannhanphim(i);// Hien thi so lan nhan phim, bien i la bien toan cuc
}}
8/7/2019 giaotrinh8051
84/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 84 - www.EmbestDKS.com
5.4) Kinh nghim:- Xem cc gi tr ca bin trong Debug.Sau khi vit xong chng trnh v bin dch chng trnh cc bn vo cng c Debug ca
Keil C. c mn hnh sau: Chn ViewWatch& Call Stack Window.
c nh sau:
8/7/2019 giaotrinh8051
85/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 85 - www.EmbestDKS.com
8/7/2019 giaotrinh8051
86/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 86 - www.EmbestDKS.com
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.
Phn 1 kt thc.
8/7/2019 giaotrinh8051
87/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 87 - www.EmbestDKS.com
Chng ta quan st bin I, nn g I vo v c hnh nh trn. Cc bn nhn F11 chym phng. Mi ln n phm, cho chn P1.0 xung 0 ri ln 1, tng ng vi n phmv nh phm I s tng 1 nh sau: (Khi n phm phi chhm delay(300) v hm
while(P1_0 ==0) xong I mi tng v mnh lp trnh th m.
Gi tr ca I hin th theo s hex.
8/7/2019 giaotrinh8051
88/119
8/7/2019 giaotrinh8051
89/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 89 - www.EmbestDKS.com
6.2 Nguyn l qut phm:- V sao mch phm u theo ma trn. Nu c t 16 nt bm bnh thng phi
dng 16 chn vi iu khin. Nu u theo dng ma trn th ch mt 8 chn ta cng c th
c c 16 phm bm.- C 2 cch qut phm theo ct v theo hng, ti chn cch qut theo hng, qut
theo ct cc bn c th lm tng t.- Bc 1 : Ta a chn P3.0 ni vi Hng 1 xung 0V.Ri ta kim tra gi tr logic
ca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 1 c bm th Ct 1_ P3.4 s c gi tr bng0. Nu phm 2 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 3 c bm thCt 3_ P3.6 s c gi tr bng 0. Nu phm 4 c bm th Ct 4_ P3.7 s c gi tr bng0. Ta cn c vo xc nh xem phm no c bm.
- Bc 2 : Ta a chn P3.1 ni vi Hng 2 xung 0V.Ri ta kim tra gi tr logicca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 5 c bm th Ct 1_ P3.4 s c gi tr bng0. Nu phm 6 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 7 c bm th
Ct 3_ P3.6 s c gi tr bng 0. Nu phm 8 c bm th Ct 4_ P3.7 s c gi tr bng0. Ta cn c vo xc nh xem phm no c bm.
- Bc 3 : Ta a chn P3.2 ni vi Hng 3 xung 0V.Ri ta kim tra gi tr logicca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 9 c bm th Ct 1_ P3.4 s c gi tr bng0. Nu phm 10 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 11 c bm thCt 3_ P3.6 s c gi tr bng 0. Nu phm 12 c bm th Ct 4_ P3.7 s c gi tr bng0. Ta cn c vo xc nh xem phm no c bm.
- Bc 4 : Ta a chn P3.3 ni vi Hng 1 xung 0V.Ri ta kim tra gi tr logicca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 13 c bm th Ct 1_ P3.4 s c gi trbng 0. Nu phm 14 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 15 cbm th Ct 3_ P3.6 s c gi tr bng 0. Nu phm 16 c bm th Ct 4_ P3.7 s c gi
tr bng 0. Ta cn c vo xc nh xem phm no c bm.Ta s dng cu lnh if kim tra.
6.3. Lp trnh:- To 1 project mi, copy phn hin th cc s 09 cc ch AY ca bi trc. Ri bsung cc hm sau. Hm hin th phm n.void phim_duoc_an(unsigned char phim){
switch(phim)// Tuy vao so lan{
case 0: { so0(); break; }// Neu so lan =0 hien so 0 thoat khoi switchcase 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
8/7/2019 giaotrinh8051
90/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 90 - www.EmbestDKS.com
}}Hm qut phm:
/*Khai bao 1 mang 4 phan tu nhu sau: quetphim[4]={P0=0xFE,0xFD,0xFB,0xF7}De dua 0 ra lan luot cac hang phim, khi do neu nut nao duoc an thi chan vi dieu khien sexuong 0.Chu y fai kiem tra phim khoang 100 lan.*/unsigned char quetphim[4]={0xFE,0xFD,0xFB,0xF7};// Dinh nghia so lan quet phim#define solanquetphim 100 // Cac ban co the thay doi gia tri nay cho phu hopunsigned char quetbanphim(void){unsigned char giatribanphim;// Bien de luu gia tri phim an tu 0 den 15 ma hoa 16 phimunsigned char x,y;
//Quet 4 hang phim
for(x=0; x
8/7/2019 giaotrinh8051
91/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 91 - www.EmbestDKS.com
Vit hm phm c n:
8/7/2019 giaotrinh8051
92/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 92 - www.EmbestDKS.com
Vit hm qut bn phm v hm main.
8/7/2019 giaotrinh8051
93/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 93 - www.EmbestDKS.com
8/7/2019 giaotrinh8051
94/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 94 - www.EmbestDKS.com
5.4. Kinh nghim:- Cc bn chy Debug xem s thay i gi tr ca bin gi tr bn phm.- Cc bn mi dng 10 phm t 09 . Bi tp cho cc bn l dng phm 16
chn mode: nhn phm 16 th thay i ch hin s thnh hin ch v phm 1 tngng ch A,phm 2 tng ng ch B v c nh vy.
- Cc bn th thay i gi tr #define solanquetphim 100 xem sao.- ng lo lng v cc warning. Cc warning n cnh bo l bn c khai bo 1 s
hm m bn khng dng n. Nh hm delay(); hm ch A, vv.
Nhim v: iu khin hin th LCD 16x2 dng ch www.EmbestDKS.comchy trn mn hnh LCD.C 16 chn nh sau:
Chn K hiu I/O M t1 VSS - t2 VCC - Dng ngun 5v3 VEE - Cp ngun iu khin phn4 RS I RS = 0 chn thanh ghi lnh. RS = 1 chn
thanh d liu5 R/W I R/W = 1 c d liu. R/W = 0 ghi6 E I/O Cho php7 DB0 I/O Cc bt d liu8 DB1 I/O Cc bt d liu9 DB2 I/O Cc bt d liu10 DB3 I/O Cc bt d liu11 DB4 I/O Cc bt d liu12 DB5 I/O Cc bt d liu13 DB6 I/O Cc bt d liu14 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 LCDtrong bng ti. Chng ta khng s dng. Nu cc bn mun dng th ni chn A qua 1in trt 1K n 5K ln dng 5V, chn K xung t n s sng.6.1.Lp mch theo s sau:
8/7/2019 giaotrinh8051
95/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 95 - www.EmbestDKS.com
D5
D6D7
R
S
R
w
E
N
ENRw
RS
RST9
XTAL218
XTAL119
G
N
D
2
0
PSEN29ALE/PROG30EA/VPP31
V
CC
4
0
P1.01
P1.12
P1.23
P1.34
P1.45
P1.56
P1.67
P1.78
P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528
P3.0/RXD10
P3.1/TXD11
P3.2/INT012
P3.3/INT113
P3.4/T014
P3.5/T115
P3.6/WR16
P3.7/RD17
P0.0/AD039
P0.1/AD138
P0.2/AD237
P0.3/AD336
P0.4/AD435
P0.5/AD534
P0.6/AD633
P0.7/AD732
U1
AT89C51
1
23456789
1
0
R1 10K
5VVCC
123456789
1
0
1
1
1
2
1
3
1
4
1
5
1
6
J1
LCD
R2
5K
Y112Mhz
C133p
C233p
R310K
5V
LCD16x02
+ C3CAPACITOR POL
5V5V
C6
104
D0D1D2D3D4
8/7/2019 giaotrinh8051
96/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 96 - www.EmbestDKS.com
- Hng dn: Cm lun 8 bit d liu ca LCD t D0 n D7 vo cng 2 ca 8051 mkhng 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 trtinh 5K, 2 chn cn li ca bin trtinh 1 chn ln +5V,1 chn 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 ttng ng th VEEc dng iu khin tng phn ca LCD.
- Chn chn thanh ghi RS (Register Select): C hai thanh ghi trong LCD, chnRS(Register Select) c dng chn thanh ghi, nh sau: Nu RS = 0 th thanh ghi mlnh c chn cho php ngi dng gi mt lnh chng hn nh xo mn hnh, acon tr vu dng v.v Nu RS = 1 th thanh ghi d liu c chn cho php ngidng 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 phic p n chn ny LCD cht d liu trn cc chn d liu. Xung ny phi rng tithiu l 450ns.
- Chn D0 - D7: y l 8 chn d liu 8 bt, c dng gi thng tin ln LCDhoc 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 ncc chn ny khi bt RS = 1.
Cng c cc m lnh m c thc gi n LCD xo mn hnh hoc a contr vu dng hoc nhp nhy con tr.
- Ch :Chng ta cng s dng RS = 0 kim tra bt cbn xem LCD c snsng nhn thng tin. C bn l bt D7 v c thc c khi R/W = 1 v RS = 0 nhsau:
Nu R/W = 1, RS = 0 khi D7 = 1 (cbn 1) th LCD bn bi cc cng vic bntrong v s khng nhn bt k thng tin mi no. Khi D7 = 0 th LCD sn sng nhnthng tin mi. Lu chng ta nn kim tra cbn trc khi ghi bt k d liu no lnLCD.
- Sau y l bng m lnh ca LCD:
M (Hex) Lnh n thanh ghi ca LCD1 Xo mn hnh hin th
2 Trvu dng4 Gim con tr (dch con tr sang tri)6 Tng con tr (dch con tr sang phi)5 Dch hin th sang phi7 Dch hin th sang tri8 Tt con tr, tt hin thA Tt hin th, bt con trC Bt hin th, tt con tr
8/7/2019 giaotrinh8051
97/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 97 - www.EmbestDKS.com
E Bt hin th, nhp nhy con trF Tt con tr, nhp nhy con tr10 Dch v tr con tr sang tri
14 Dch v tr con tr sang phi18 Dch ton b hin th sang tri1C Dch ton b hin th sang phi80 p con tr vu dng th nhtC0 p con tr vu dng th hai38 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 tr5 K
iu chnh tng phn ca LCD. Xoay cho n khi cc vung(cc im nh) caLCD hin ln th xoay ngc bin trli 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 cbn 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 - Khai bo cc chn ca LCD gn vi cc cng:/*RS chon thanh ghi
=0 ghi lenh=1 ghi du lieu
RW doc ghi=0 ghi=1 doc
E cho fep chot du lieuxung cao xuong thap toi thieu 450 ns.
Bit co ban D7khi 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 0xA0sbit BF = 0xA7; // Co ban bit 7sbit RS = P3^5;sbit RW = P3^4;sbit EN = P3^3;
8/7/2019 giaotrinh8051
98/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 98 - www.EmbestDKS.com
- 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 caoRS=0;// Chon thanh ghi lenhRW=1;// Doc tu LCDLCDdata=0xFF;// Gia tri 0xFFwhile(BF){n++; if(n>100) break;}// Kiem tra co ban// Neu ban dem n den 100 roi thoat khoi whileEN=0;// Dua xung cao xuong thap de chotRW=0;// Doc tu LCD
}
* Hm iu khin LCD thc hin 1 lnh:void LCDcontrol(unsigned char x){
EN=1;// Dua chan cho fep len caoRS=0;// Chon thanh ghi lenhRW=0;// Ghi len LCDLCDdata=x;// Gia tri xEN=0;// Xung cao xuong thapwait();// 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){
LCDcontrol(0x30);//Che do 8 bit.LCDcontrol(0x30);LCDcontrol(0x30);LCDcontrol(0x38);// 2 dong va ma tran 5x7LCDcontrol(0x0C);// Bat con troLCDcontrol(0x06);// Tang con tro xang faiLCDcontrol(0x01);// Xoa man hinh
}
* Hm lnh cho LCD hin th 1 k t :void LCDwrite(unsigned char c){
EN=1;// Cho fep muc caoRS=1;// Ghi du lieuRW=0;// Ghi len LCDLCDdata=c;// Gia tri CEN=0;// Xung cao xuong thap
8/7/2019 giaotrinh8051
99/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 99 - www.EmbestDKS.com
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 1else LCDcontrol(0xC0);// Ep con tro ve dau dong 2
len=strlen(s);// Lay do dai bien duoc tro boi con trowhile(len!=0)// Khi do dai van con{
LCDwrite(*s);// Ghi ra LCD gia tri duoc tro boi con tros++;// 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 s6.3.1. nh ngha con trB nhca 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 nhtrong b nh, dnhin xc nh cc ngn t ngi ta nh s cho tng ngn, cn vkcp cho cc nhtrong b nh1 a ch xc nh nh.V d tip: I c gi tr l100, th ni dung ca nhlu bin I l 100,i=100, cn con tr trn I c gi tr l a
ch ca nhcha 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 nhcha 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 vid=d/10;// Chia lay phan nguyen, duoc nhung chu so da bo hang don vij=d%10;// Duoc chu so hang chuc
d=d/10;// Nhung chu so da bo hang don vi va hang chuck=d%10;// Duoc hang traml=d/10;// Duoc hang nghinLCDwrite(48+l);// Hien thi ki tu trong bang asciiLCDwrite(48+k);// Trong bang ascii so 0 co co so thu tu la 48LCDwrite(48+j);LCDwrite(48+i);
8/7/2019 giaotrinh8051
100/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 100 - www.EmbestDKS.com
}Hm c 1 bin u vo l s int ln n hng nghn cn hin th.
* Hm tr:
void delay(long time){
long n;for(n=0;n
8/7/2019 giaotrinh8051
101/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 101 - www.EmbestDKS.com
Nhim v:To ra xung c rng thay i, 10 cp, tn s 1Khz, iu khin tc ng
c(10 cp tc ).7.1. Lp mch theo s sau:
+ C3
10uF/25V
C233p
C133p
R110K
5VDC
1 2
SW1
1 2
SW2
X119
X218
RESET9
P2.021
VCC
40
VSS20
EA31
P1.01
P1.12
U1
8051
12Mhz
3 B
2C
1E
C828
1
2
A
-
+
DC Motor
12V
R210K
- Hng dn: Chn ca C828 l ECB, nu cm xui transitor nhn vo mt c ch, tnh tbn tri sang.7.2.Lp trnh:- Cch to xung c rng thay i bng VK.
+ Cch 1: Nh cc bn iu khin nhp nhy 1 con led, l to ra 1 xung 1chn ca vi iu khin, nhng xung c rng cnh, tn s ln, cch bn c thiu chnh li hm delay tn s ca n ng 1 Khz. Tuy nhin v l dng hm delaynn trong thi gian c xung ln 1(5V) v thi gian khng c xung(0V) vi iu khinkhng lm g c, hn na to xung bng vic delay m cc bn c nhu cu cn 2 b pht
8/7/2019 giaotrinh8051
102/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 102 - www.EmbestDKS.com
xung 2 knh, c cng tn s m khc rng xung th trnn rt kh khn. Cho nnchng ta dng bnh thi Timer ca vi iu khin trong trng hp ny rt tin.
+ Cch 2: Dng ngt Timer ca b vi iu khin.
Trc ht nhc li v ngt ca vi iu khin:+ Ngt l g ? tr li cu hi ny ti xin trch an v ngt trong bi 2 v d cho
ngt timer:
Timer
* ** * ** * **
Mt chng trnh chnh khng c ngt th chy lin tc, cn chng trnh c ngtth c khi no iu kin ngt c m bo th con tr s nhy sang hm ngt thc hinxong hm ngt li quay vng ch c thc hin tip chng trnh chnh. Ti c 1 v dnh 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 chngtrnh chnh,c in thoi gi n l iu kin ngt, bn ra nghe in thoi l thc hinchng trnh ngt(Interrupt Service Rountine),quay vn cm tip l tip tc thc hinchng trnh chnh.
Ngt i vi ngi mi hc vi iu khin l rt kh hiu, v a s cc ti liu ukhng gii thch ngt lm g. C nhiu loi ngt khc nhau nhng tt cu c chung1 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 trnhchnh. Chng trnh trong vi iu khin khc vi v dn 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, chonn thi gian thc hin hm ngt khng nh hng g n thi gian thc hin hm chnhNh vy trong hm ngt cc bn lm 1 vic, trong hm chnh cc bn lm 1 vic
Main Program
Main
ISR
Main
ISR
Main
ISR
Main
Program excution without interrut
Program excution with interrupt.
8/7/2019 giaotrinh8051
103/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 103 - www.EmbestDKS.com
nh vy coi nh cc bn lm c 2 vic(a nhim) trong 1 qung thi gian tng ingn cmS, ch thc ra ti 1 thi im vi iu khin ch thc thi 1 lnh.V d : Bn th nghxem lm th no va iu ch xung PWM iu chnh tc
ng c, va c cc cm bin u vo m tc ng cph 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 bnh thi timer, hay bm counter l khi trn bm th
phn cng ca vi iu khin s bo c ngt xy ra v nhy n chng trnh phc vngt( ISR_ Interrupt Sevice Rountine) 1 cch tng.
Vi ngt ngoi, chn P3.2 chng hn, nu ta khai bo trc chn s dng chnP3.2 s dng cho ngt ngoi ch khng phi s dng cho mc ch IO thi c khi c 1xung xut hin t mch ngoi vi truyn vo chn P3.2 th phn cng ca vi iu khinnhn ra v chuyn ti chng trnh phc v ngt.
Vi ngt ni tip th c khi c k t truyn t my tnh xung vi iu khin th s
c hin tng ngt xy ra.- Hm ngt:Cu trc:Void Tnhm(void) interrupt ngunngt using bngthanhghi{// Chuong trinh phuc vu ngat o day}Ch v hm ngt:
+ Hm ngt khng c php tr li gi tr hay truyn bin vo hm.+ Tn hm bt k.+ interrupt l t kha phn bit hm ngt vi hm thng.
+ Ngun ngt t 0 ti 5 theo bng vector ngt.+ Bng thanh ghi trn ram chn t 0 n 3.
Ty theo bn vit hm ngt cho ngun no bn chn ngun ngt t bng sau:
Ngt do C a ch vectorReset h thng RST 0000HNgt ngoi 0 IE0 0003H
Bnh thi 0 TF0 000BHNgt ngoi 1 IE1 0013H
Bnh thi 1 TF1 001BH
Port ni tip RI hoc TI 0023HBnh thi 2 TF2 hoc EXF2 002BH
Ring ngt Reset khng tnh, bt u m t 0 v t ngt ngoi 0. V d: ti cn vit hmngt cho bnh thi timer 1 hm ngt s l.void timer1_isr(void) interrupt 3 using 0{// Lenh can thuc hien.}
8/7/2019 giaotrinh8051
104/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 104 - www.EmbestDKS.com
- V using 0: C 4 bng thanh ghi bn c th chn cho chng trnh phc v ngt, ci nycng khng quan trng. Trong hm ngt cc bn c th bi t using 0, khi vi iukhin 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 khibn gi n th n sc thc hin, c ngha l n c v tr cnh trong tin trnh hmmain, c ngha l bn bit n xy ra khi no. Cn hm ngt th khng c tin trnh cnh, iu kin ngt c th xy ra bt k lc no trong tin trnh hm main v c khi noc iu kin ngt th hm ngt sc gi tng.- 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 gitr tng ng cho thanh ghi cho php ngt IE( Interrupt Enable):
EA ET2 ES ET1 EX1 EX0 ET0iu khin cc ngun ngt
IE (0: khng cho php; 1: cho php)
IE.7 EA Cho php/ khng cho php ton ccIE.6 --- Khng s dngIE.5 ET2 Cho php ngt do bnh thi 2IE.4 ES Cho php ngt do port ni tipIE.3 ET1 Cho php ngt cho bnh thi 1IE.2 EX1 Cho php ngt t bn ngoi (ngt ngoi 1)IE.1 EX0 Cho php ngt t bn ngoi (ngt ngoi 0)IE.0 ET0 Cho php ngt do bnh thi 0
IE l thanh ghi c th x l tng bt. V d : bn mun cho php ngt timer 1 bn dnglnh: ET1=1; Khng cho php na bn dng lnh : ET1=0; Hoc bn c th dng lnhIE= 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, hay8 bit, bng cch gn cc gi tr tng ng cho thanh ghi TMOD( Timer MODe).
8/7/2019 giaotrinh8051
105/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 105 - www.EmbestDKS.com
TMOD Chn model cho bnh thi 1
7 GATE Chn model cho bnh thi 16 C/T Bt chn chc nng m hoc nh thi:
5 M1 Bit chn ch thnht4 M0 Bit chn ch th2
M1 M0 Ch
Chc nng
0 0 0 Chnh thi 13 bit0 1 1 Chnh thi 16 bit1 0 2 Ch t ng np li 8
bit
1 1 3 Chnh thi chia x3 GATE Bit iu khin cng cho bnh thi 02 C/T Bit chn chc nng m /nh thi cho bnh
thi 01 M1 Bit chn ch thnht cho bnh thi 00 M0 Bit chn ch th2 cho bnh thi 0
V d ti cu hnh cho bnh thi 1 ch timer,vi bm 8 bit tng np li(autoreload) dng lnh sau: TMOD=0x20.Cc bn ng lo v vic phi nhbng thanh ghi ny, cc bn khng phi nhni trngra nh vy, chuyn sang phn lp trnh cc bn sc hng dn lm th no khngphi 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:-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 bnh thi timerta gn cc gi tr ph hp cho thanh ghi TCON( Timer CONtrol).
TCON iu khin binh thiTCON.7 TF1 Ctrn ca bnh thi 1. Cny c set bi
phn cng khi c trn, c xo bi phn mm,hoc bi phn cng khi b vi x l trn trnh
phc v ngtTCON.6 TR1 Bit iu khin hot ng ca bnh thi 1. Bitny c set hoc xo bi phn mm iu khin
bnh thi hot ng hay ngngTCON.5 TF0 C trn ca bnh thi 0TCON.4 TR0 Bit iu khin hot ng ca bnh thi 0TCON.3 IE1 C ngt bn ngoi 1 (kch khi cnh). Cny c
set bi phn cng khi c cnh m (cung) xut hin
8/7/2019 giaotrinh8051
106/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 106 - www.EmbestDKS.com
trn chn INT1, c xo bi phn mm, hocphn cng khi CPU trn trnh phc v ngt
TCON.2 IT1 Cngt bn ngoi 1 (kch khi cnh hoc mc). C
ny c set hoc xo bi phn mm khi xy racnh m hoc mc thp ti chn ngt ngoi
TCON.1 IE0 Cngt bn ngoi 0 (kch khi cnh)TCON.0 IT0 Cngt bn ngoi 0 ( kch khi cnh hoc mc)
V d chy bnh 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 cbn ch lm vic vi ngttimer, trong kha nng cao s c cc ngt cn li, tuy nhin lm vic c vi ngt timerth cc ngt khc cc bn cng c th lm tng t, cc bn lm n ngt no th dng tiliu tra bng thanh ghi ca ngt . Ti liu ti s gi cng bi ny.- Quay trli bi hc:
Sau khi khi to song v cho ngt timer 1 chy th iu g xy ra?Khi bt u cho timer 1 chy th bm ca timer sm dao ng ca thch anh, c 12dao ng ca thch anh(1 chu k my), bm ca timer 1 TL1(Timer Low1) s tng1,c thn ni timer 1 m s chu k my. i vi ch 8 bt.TL1 l 1 thanh ghi 8 bt, l bm ca bnh thi r ri. N m c t 0, n 255.Nu n m n 256 th bm trn, TL1 quay vng li bng 0, v cngt TF1(TimerFlag 1) tng c gn ln 1(bng phn cng ca vi iu khin) nh 1 cng tc tngbt, v ngt xy ra.
Cn vi ch 16 bt, bm ca bnh thi cn 1 thanh ghi 8 bt na lTH1(Timer high 1), nu cu hnh cho timer 1 hot ng ch 16 bit th khi TL1 trnn sm sang TH1(TH1 s tng 1). Nh vy ta c thm: 216 chu k my( 2 thanh ghi
8+8=16 bt).Ch l khi bm trn ngt s xy ra. Nu ta cn m 256 chu k my th khi khi tota cho TL1=0; , cn nu khng mun m 256 chu k my m ta ch cn m 100 thingt 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 miligiy=1000 uS= 1000 chu k my. Vi 10 cp tc , tc l bn phi to ra c xung10%, 20%, 30%, 40%, , 90%, 100%. 1 xung nh sau:
5V
0V
T : Chu k1000 miro giy.
Khong thi gian xung ko di 5V l T1. Xung 10% tc l T1/ T= 10%=1/10. Xung 20%T2/T=2/10PWM(Thay i rng xung)By giti mi xin ni v phn 2.
8/7/2019 giaotrinh8051
107/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 107 - www.EmbestDKS.com
7.3) Nguyn l hot ng:- Xung PWM: a ra mtransitor, xung vi rng ln hn transitor s mlu
hn ng cs quay nhanh hn,dnhin khng tuyn tnh. Khng c xung ng cs
khng quay, c xung 100% ng cs quay max.Tuy nhin xung phi ln hn 1 mcno th mi khi ng cho ng c. Cc c tnh ny cc bn tham kho trong giotrnh v my in, kh cin, 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 uSngt 1 ln. Trong hm ngt kim tra xem ta cn cp xung bao nhiu % th ta s gn gi trcho n. C th nh sau:* Hm khi to ngt.
Dng ngt timer 0, 100 uS ngt 1 ln, dng ch 2 8 bit tng np li catimer (v mnh ch cn m n 100).TL0 np bng 156. i vi ch 2 khi trn bmTL0 s quay vng gi tr bng 0, nhng sau n li c np gi tr lu trong TH0(gitr 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 bm TL0 khng c np li m ta phit gn li gi tr cho n trong hm ngt.void khoitaotimer0(void)// Ham khoi tao{EA=0;// Cam ngat toan cucTMOD=0x02;// Timer 0 che do 2 8 bit auto reloadTH0=0x9B;// Gia tri nap lai 155 doi ra so hexTL0=0x9B;// Gia tri khoi tao 155 doi ra so hexET0=1;// Cho phep ngat timer 0EA=1;// Cho phep ngat toan cucTR0=1;// Chay timer 0 bat dau dem so chu ki may
}
8/7/2019 giaotrinh8051
108/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 108 - www.EmbestDKS.com
8/7/2019 giaotrinh8051
109/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 109 - www.EmbestDKS.com
* Hm ngt:unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10unsigned char phantramxung;// Bien chua phan tram xung(0...10)
void timer0(void) interrupt 1 //Ngat timer 0{TR0=0;// Dung chay timer 0TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao daydem++;if(dem
8/7/2019 giaotrinh8051
110/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 110 - www.EmbestDKS.com
phantramxung=9;delaylong(20000);phantramxung=4;
delaylong(20000);}}
Gi s khi cc bn gn phantramxung=4; Th c mi 100uS ngt xy ra 1 ln, v kim trabin m. Ln u dem=1
8/7/2019 giaotrinh8051
111/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 111 - www.EmbestDKS.com
P2_0=0 mc thp, , dem =10
8/7/2019 giaotrinh8051
112/119
8/7/2019 giaotrinh8051
113/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 113 - www.EmbestDKS.com
Ch vo list mode: Chn ch, ri quan st gi trTMOD ri quay li in vochng trnh.Ch : V cng quan trng cc bn chc chy vi ng cloi nh, nu ng cloi
to phi c mch iu khin ring khng l s chy chip. Nu khng c mch iu khincc bn c th lm, c th mn ca ti, khng th chu kh chy m phng.
8/7/2019 giaotrinh8051
114/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 114 - www.EmbestDKS.com
Nhim v:iu khin Led ma trn 8x8. Hin th dng ch chy MTC
Chun b:Led ma trn 8x8
12345678
9 10 11 12 13 14 15 16
LED MATRIX 1
8x8
S chn led ma trn 8x8:Chn Ct Hng Chn Ct Hng1 4 9 8
2 2 10 53 7 11 34 6 12 55 1 13 86 4 14 77 3 15 28 6 16 6
8.1. Lp mch theo s sau:
8/7/2019 giaotrinh8051
115/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 115 - www.EmbestDKS.com
Hang6
VCC
C
o
t3
Cot4
H
a
n
g
1
H
a
n
g
3
Hang4
Hang8Cot7
H
a
n
g
7
Cot3 Hang3
C233p
C
o
t2
Cot2Hang1
H
a
n
g
6
12345678
9 10 11 12 1 3 14 15 1
LED MATRIX 1
8x8
C
t1
H
a
n
g
5
C
o
t5
10K
H
a
n
g
2
Cot1
Hang7
Cot5
C133p
C
o
t6
C
o
t8
Hang5
R2
10K
Hang2
U1
8051
2930
40
2
0
31
1918
9
3938
373635343332
12345678
2122
232425262728
1011121314151617
PSENALE
VCC GN
D
EA
X1X2
RST
P0.0/AD0
P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
P1.0P1.1P1.2P1.3P1.4P1.5P1.6
P1.7
P2.0/A8
P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXD
P3.2/INT0P3.3/INT1
P3.4/T0P3.5/T1
P3.6/WR
P3.7/RD
Cot6
H
4
C
o
t4
+C3
10uF
R3
1
23456789
Cot8
Y1
12M
C
o
t7
H
a
n
g
8
8/7/2019 giaotrinh8051
116/119
8/7/2019 giaotrinh8051
117/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 117 - www.EmbestDKS.com
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 /* Cot tu P0.0 den P0.7Hang tu P2.0 den P2.7De quet dua muc logic 0 lan luot ra cong 0*//* Ham tre */void delay(long time){long n;for(n=0; n
8/7/2019 giaotrinh8051
118/119
DKS_GROUP Microcontroller Training Center
DKS_GROUP - 118 - www.EmbestDKS.com
kytu1[4]=0xFF; kytu1[5]=0x01; kytu1[6]=0x01; kytu1[7]=0x01; kytu1[8]=0x00;break;}
// Chu Ccase 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 trangcase 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}; // Cacphan tuquet cotfor(m=0; m
8/7/2019 giaotrinh8051
119/119