Professional Documents
Culture Documents
Mc lc
Trang Li gii thiu Chng 1: Kin trc h Vi x l (VXL). 1.1. n v x l trung tm (CPU). 1.2. Qu trnh tm np lnh v thc thi lnh ca CPU. 1.3. B nh trung tm ca h VXL. 1.3.1. B nh ch c. 1.3.2. B nh truy cp ngu nhin. 1.4. Cc thit b xut/nhp. 1.5. Cu trc knh chung ca h VXL. Chng 2. B Vi iu khin AT89C51 (80C51). 2.1. Gii thiu chung. 2.2. S khc nhau gia b VXL v b Vi iu khin (VK). 2.3. S khi. 2.4. S chn tn hiu ca 80C51/AT89C51. 2.5. Chc nng cc thnh phn ca AT89C51. 2.5.1. Cc thanh ghi chc nng c bit. 2.5.1.1. Thanh ghi ACC. 2.5.1.2. Thanh ghi B. 2.5.1.3. Thanh ghi SP. 2.5.1.4. Thanh ghi DPTR . 2.5.1.5. Cc cng vo/ ra d liu (Ports 0 to 3). 2.5.1.6. Thanh ghi SBUF. 2.5.1.7. Cc Thanh ghi Timer. 2.5.1.8. Cc thanh ghi iu khin. 2.5.1.9. Thanh ghi PSW. 2.5.1.10. Thanh ghi PCON. 2.5.1.11. Thanh ghi IE. 2.5.1.12. Thanh ghi IP. 2.5.1.13. Thanh ghi TCON. 2.5.1.14. Thanh ghi TMOD. 2.5.1.15. Thanh ghi SCON. 2.5.2. Khi to thi gian v b m (Timer/Counter). 2.5.3. B nh chng trnh v b nh d liu ni tr.
1
6 7 8 8 9 9 9
12 12 13 15 17 17 19 19 19 20 20 20 20 20 20 21 22 22 23 23 24 25 28
I HC SPKT HNG YN
2.5.3.1. B nh chng trnh ni tr. 2.5.3.2. B nh d liu ni tr. 2.5.3.2.1. Vng nh 128 Byte thp. 2.5.3.2.2. Vng nh dnh cho SFR. 2.5.3.2.3. Cc lnh truy cp b nh d liu ni tr. 2.5.4. B nh chng trnh v b nh d liu ngoi tr. 2.5.4.1. B nh chng trnh ngoi tr. 2.5.4.2. B nh d liu ngoi tr. 2.5.5. C ch ngt trong On-chip AT89C51. 2.5.5.1. Phn loi ngt trong On-chip. 2.5.5.2. Cc bc thc hin ngt. 2.5.5.3. Mc ngt u tin trong on-chip. 2.5.5.4. Nguyn l iu khin ngt ca AT89. 2.5.5.4.1.Cc ngt ngoi. 2.5.5.4.2. Vn hnh Single-Step. 2.5.6. Nguyn l truyn tin ni tip ca AT89C51. 2.5.6.1. Phng thc truyn tin ni tip. 2.5.6.2. Lin lc a x l . 2.5.6.3. Cc tc Baud. 2.5.6.4. S dng Timer 1 to ra cc tc Baud . 2.5.6.5. Hot ng ca ch 0. 2.5.6.6. Hot ng ca ch 1. 2.5.6.7. Hot ng ca ch 2 v 3. 2.5.7. Nguyn l khi ng ca On-chip AT89C51. 2.5.8. Mch dao ng. 2.5.9. Ch ngun gim v ch ngh. 2.5.11. Bo v chng trnh. Chng 3: Tp lnh ca h VK AT89/80C51. 3.1. Nhm lnh di chuyn d liu. 3.1.1. Lnh MOV dng Byte. 3.1.2. Lnh MOV dng Bit. 3.1.3. Lnh MOV dng Word. 3.1.4. Lnh chuyn byte m lnh. 3.1.5. Lnh chuyn d liu ra ngoi. 3.1.6. Lnh chuyn s liu vo ngn xp. 3.1.7. Lnh chuyn s liu ra khi ngn xp .
2
61 61 62 63 63 64 64 65
I HC SPKT HNG YN
3.1.8. Hon chuyn d liu. 3.1.9. Hon chuyn 4 bit thp. 3.2. Nhm lnh tnh ton s hc. 3.2.1. Lnh thc hin php cng. 3.2.2. Lnh cng c nh. 3.2.3. Lnh tr c mn. 3.2.4. Lnh tng ln 1 n v. 3.2.5. Lnh gim 1 n v. 3.2.6. Lnh tng con tr d liu. 3.2.7. Lnh thc hin php nhn. 3.2.8. Lnh thc hin php chia . 3.2.9. Hiu chnh s thp phn. 3.3. Nhm lnh tnh ton logic. 3.3.1. Lnh AND cho cc bin 1 byte. 3.3.2. Lnh AND cho cc bin 1 bit. 3.3.3. Lnh OR cho cc bin 1 byte. 3.3.4. Lnh OR cho cc bin 1 bit. 3.3.5. Lnh X-OR cho cc bin 1 byte. 3.3.6. Lnh dch tri thanh ghi A. 3.3.7. Lnh dch tri thanh ghi A cng vi c nh. 3.3.8. Lnh dch phi thanh ghi A. 3.3.9. Lnh dch phi thanh ghi A cng vi c nh. 3.3.10. Lnh tro i ni dung hai na byte ca A. 3.4. Nhm lnh r nhnh chng trnh. 3.4.1. Lnh gi tuyt i . 3.4.2. Lnh gi di. 3.4.3. Lnh quay tr li t chng trnh con. 3.4.4. Lnh quay tr li t ngt. 3.4.5. Lnh nhy gin tip. 3.4.6. Lnh nhy nu 1 bit c thit lp. 3.4.7. Lnh nhy nu 1 bit khng c thit lp. 3.4.8. Lnh nhy nu 1 bit c thit lp v xo bit . 3.4.9. Lnh nhy nu c nh c thit lp. 3.4.10. Lnh nhy nu c nh khng c thit lp. 3.4.11. Lnh nhy nu thanh ghi A bng 0. 3.4.12. Lnh nhy nu thanh ghi A khc 0. 3.4.13. Lnh nhy khi so snh 2 ton hng.
3
I HC SPKT HNG YN
3.4.14. Lnh gim v nhy. 3.4.15. Lnh tm ngng hot ng. 3.5. Nhm lnh iu khin bin logic. 3.5.1. Lnh xo bit. 3.5.2. Lnh xo thanh ghi tch lu. 3.5.3. Lnh thit lp bit. 3.5.4. Lnh ly b ca bit. 3.5.5. Lnh ly b ca thanh ghi tch lu. Chng 4: lp trnh ng dng. 4.1. Truy cp d liu vi RAM. 4.1.1. Truy cp d liu vi RAM ni tr 4.1.2. Truy cp d liu vi RAM ngoi tr 4.2. Hm ch. 4.3. Lp trnh vi cc B Timer 4.4. Lp trnh vi cc ngt 4.4.1. Lp trnh vi cc ngt ngoi 4.4.2. Lp trnh vi cc ngt Timer 4.5. iu khin ng c 1 chiu. Ph lc A : Tra cu nhanh tp lnh Bng 1. Cc lnh ton hc ca b VK h ATMEL. Bng 2. Cc lnh chuyn i d liu truy cp vng nh d liu trong. Bng 3. Cc lnh s hc. Bng 4. Cc lnh i s. Bng 5. Cc lnh chuyn i d liu truy cp RAM ngoi. Bng 6. Cc lnh chuyn Byte m lnh. Bng 7. Cc lnh nhy khng iu kin trong Flash Microcontrollers. Bng 8. Cc lnh nhy c iu kin. Ph lc B : cc h thng s 1. Bng chuyn i h thp phn/nh phn 2. Bng m thp lc phn 3. H thng s c du TI liu tham kho.
90 90 90 91 91 93 93 93 94
95 95 96 97 97 98 98 98
I HC SPKT HNG YN
Li gii thiu
Khoa hc k thut ang ngy cng pht trin rt mnh m, cc cng ngh mi thuc cc lnh vc khc nhau cng nh ra i nhm p ng nhu cu ca x hi v k thut Vi iu khin cng nm trong s . Hin nay k thut Vi iu khin c ging dy rng ri cc trng i hc v Cao ng trong c nc nhm p ng nhu cu v iu khin, o lng v iu chnh ca cc dy chuyn cng nghip. Qua qu trnh tham gia ging dy ti trng i hc SPKT Hng yn, tc gi tp trung nghin cu, tng hp v bin son gio trnh k thut Vi iu khin nhm phc v cng vic ging dy lnh vc ny ti trng. Ton b ni dung gio trnh c chia lm 2 phn. Phn 1 bao gm cc kin thc c bn v phn cng v cc tp lnh ca h Vi iu khin 80C51/ AT89C51. phn 2 tc gi tp trung trnh by phn cng h Vi iu khin 80C52/ AT89S8252 v k thut lp trnh bng hp ng. i tng ca quyn gio trnh ny l cc sinh vin ngnh in, in t, C in t, Cng ngh thng tin. Tuy nhin tip thu tt ni dung t quyn gio trnh ny, ngi hc cn c kin thc v k thut s, k thut mch in t v bit qua mt ngn ng lp trnh cp cao nh Pascal, C Mc d rt c gng trong qu trnh bin son, nhng do trnh v thi gian cn b hn ch nn chc chn quyn gio trnh ny khng trnh khi nhng thiu st, rt mong nhn c nhng kin ng gp, ph bnh ca bn c.
I HC SPKT HNG YN
PC
Interface
OUTPUT
ALU
IR
Interface
ROM RAM
I HC SPKT HNG YN
- n v iu khin (Control Unit - CU): C nhim v gii m lnh v iu khin vic thc hin cc thao tc, ng thi thit lp cc hot ng cn thit thc hin cc thao tc . - Thanh ghi lnh (Instruction Register - IR): Lu gi m nh phn ca lnh c thc thi. - B m chng trnh (Program Counter - PC): Lu gi i ch ca lnh k tip trong b nh cn c thc thi.
CPU
PC
IR opcode
Clock Read
Control Bus
+ Giai on thc thi lnh bao gm vic gii m cc m lnh v to ra cc tn hiu iu khin vic xut nhp gia cc thanh ghi ni vi ALU, ng thi thng bo ALU thc hin thao tc c xc nh.
7
I HC SPKT HNG YN
1.3. B nh trung tm ca h Vi x l:
B nh trung tm l b phn rt quan trng i vi mi h VXL, n l tp hp cc thanh ghi thng tin vi s lng ln. Chc nng c bn ca b nh l trao i v lu tr thng tin.
I HC SPKT HNG YN
I HC SPKT HNG YN
Nu kch hot tn hiu iu khin Read, thao tc c ly 1 byte d liu t b nh v tr xc nh v t byte ny ln knh d liu. CPU s c d liu v ct d liu vo 1 trong cc thanh ghi ni ca CPU. Nu kch hot tn hiu iu khin Write, CPU s thc hin thao tc ghi bng cch xut d liu ln knh d liu. Nh vo tn hiu iu khin, b nh nhn bit c y l thao tc ghi v lu d liu vo v tr c xc nh. Knh d liu cho php trao i thng tin gia CPU v b nh, cng nh gia CPU vi thit b ngoi vi. Thng thng cc h VXL dnh hu ht thi gian cho vic di chuyn d liu, a s cc thao tc di chuyn d liu xy ra gia 1 thanh ghi ca CPU vi ROM v RAM ngoi. Do ln ca knh d liu nh hng rt ln ti hiu sut ca h VXL. Nu b nh ca h thng rt ln v CPU c kh nng tnh ton cao, nhng vic truy xut d liu di chuyn d liu gia b nh v CPU thng qua knh d liu li b nghn th hin tng nghn c chai ny chnh l hu qu ca rng knh d liu khng ln. khc phc hin tng ny, cn tng ng tn hiu cho knh d liu.
D A T E N B U S 8 Bit
CPU
Control Bus
ROM
A D R E S S B U S 16 Bit
RAM
I/O
Hnh 1.3. Cu trc knh chung ca h thng VXL Nh hnh 1.3, knh d liu l knh 2 chiu, cn knh a ch l knh 1 chiu. Cc thng tin v a ch lun c cung cp bi CPU, trong khi cc d liu di chuyn theo c 2 hng tu thuc vo thao tc thc hin l c hay ghi. Thut ng d liu c s dng theo ngha tng qut: thng tin di chuyn trn knh d
10
I HC SPKT HNG YN
liu c th l lnh ca chng trnh, a ch theo sau lnh hoc d liu c s dng bi chng trnh. Knh iu khin l tp hp cc tn hiu, mi tn hiu c mt vai tr ring trong vic iu khin c trt t hot ng ca h thng. Cc tn hiu iu khin c cung cp bi CPU ng b vic di chuyn thng tin trn cc knh a ch v d liu. Cc b VXL thng c 3 tn hiu iu khin: Read, Write, Clock. Tuy nhin tu vo yu cu c th cng nh cu trc phn cng ca tng h VXL m s lng tn hiu iu khin c th khc nhau.
11
I HC SPKT HNG YN
Tp lnh
S dng cc tp lnh bao qut, mnh v kiu nh a ch. Cc lnh ny c th truy xut d liu ln, thc hin dng 1/2 Byte, Byte, Word, Double Word.
ng dng
Trong cc h my vi tnh.
I HC SPKT HNG YN
2.3. S khi.
External Interrupts Interrupt Control 4K FLASH 128 Bytes RAM Timer 1 Timer 0 Counter Inputs
CPU
OSC
4 I/O Ports
P0 P2 P1 P3 Address/Data
Hnh 2.1. S khi h VK AT89C51 B VK 8 bit AT89C51 hot ng tn s 12 MHz, vi b nh ROM 4Kbyte, b nh RAM 128 Byte c tr bn trong v c th m rng b nh ra ngoi. b VK ny cn c 4 cng 8 bit (P0P3) vo/ ra 2 chiu giao tip vi thit b ngoi vi. Ngoi ra, n cn c: - CPU - 2 b inh thi 16 bit (Timer 0 v Timer 1) - Mch giao tip ni tip. - B x l bit (thao tc trn cc bit ring r). - H thng iu khin v x l ngt. - Cc knh iu khin/ d liu/ a ch. - Cc thanh ghi chc nng c bit (SFR). Tuy nhin, tu thuc vo tng h VK ca tng hng sn xut khc nhau m tnh nng cng nh phm vi ng dng ca mi b VK l khc nhau, v chng c th hin trong cc bng thng k sau:
13
RAM (bytes)
128 128 128 128 128 256 256 256 128 128 128 128
Chn I/O
32 32 32 32 32 32 32 32 32 32 32 32 32
Timer/ Counter
2 2 2 2 2 3 3 3 2 2 2 2
UART
Ngun ngt
5 5 5 5 5 6 6 6 5 5 5 5
8051
8031AH 8051AH 8051AHP 8751H 8751BH
1 1 1 1 1 1 1 1 1 1 1 1
8052
8032AH 8052AH 8752BH
80C51
80C31BH 80C51BH 80C31BHP 87C51 8xC52/54/58 80C32 80C52 87C52 80C54 87C54 H VK 80C58 87C58 8xL52/54/58 80L52 87L52 80L54 87L54 80L58 87L58
ROM (bytes)
32K ROM 32K EPROM
256 256 256 256 256 RAM (bytes) 256 256 256 256 256 256 256 256
Tc (MHz)
12,16,20,24 12,16,20,24 12,16,20 12,16,20 12,16,20 12,16,20 12,16,20 12,16,20
32 32 32 32 32 Chn I/O 32 32 32 32 32 32 32 32
3 3 3 3 3 Timer/ Counter 3 3 3 3 3 3 3 3
1 1 1 1 1
8K ROM 8K OTP ROM 16K ROM 16K OTP ROM 32K ROM 32K OTP ROM
I HC SPKT HNG YN
Gio trnh: K thut Vi iu Khin B nh d liu (Bytes) 64 RAM 128 RAM 128 RAM 256 RAM 256 RAM 256 RAM + 2K EEPROM 256 RAM Timer 16 bit 1 2 2 3 3 3 3 Cng ngh CMOS CMOS CMOS CMOS CMOS CMOS CMOS
B nh chng trnh(Bytes) 1K Flash 2K Flash 4K Flash 8K Flash 20K Flash 8K Flash 12K Flash
Bng 2.2. Cc thng s ca cc h VK thuc hng Atmel Trong khun kh ti liu ny, tc gi s tp trung trnh by cu trc phn cng ca h VK AT89C51 thuc hng Atmel.
15
I HC SPKT HNG YN
Chc nng ca cc chn tn hiu nh sau: - P0.0 n P0.7 l cc chn ca cng 0. - P1.0 n P1.7 l cc chn ca cng 1. - P2.0 n P2.7 l cc chn ca cng 2 - P3.0 n P3.7 l cc chn ca cng 3 - RxD: Nhn tn hiu kiu ni tip. - TxD: Truyn tn hiu kiu ni tip. - /INT0: Ngt ngoi 0. - /INT1: Ngt ngoi 1. - T0: Chn vo 0 ca b Timer/Counter 0. - T1: Chn vo 1 ca b Timer/Counter 1. - /Wr: Ghi d liu vo b nh ngoi. - /Rd: c d liu t b nh ngoi. - RST: Chn vo Reset, tch cc mc logic cao trong khong 2 chu k my. - XTAL1: Chn vo mch khuych a dao ng - XTAL2: Chn ra t mch khuych a dao ng. - /PSEN : Chn cho php c b nh chng trnh ngoi (ROM ngoi). - ALE (/PROG): Chn tn hiu cho php cht a ch truy cp b nh ngoi, khi On-chip xut ra byte thp ca a ch. Tn hiu cht c kch hot mc cao, tn s xung cht = 1/6 tn s dao ng ca b VK. N c th c dng cho cc b Timer ngoi hoc cho mc ch to xung Clock. y cng l chn nhn xung vo np chng trnh cho Flash (hoc EEPROM) bn trong On-chip khi n mc thp. - /EA/Vpp: Cho php On-chip truy cp b nh chng trnh ngoi khi /EA=0, nu /EA=1 th On-chip s lm vic vi b nh chng trnh ni tr (trng hp cn truy cp vng nh ln hn dung lng b nh chng trnh ni tr, th b nh chng trnh ngoi cng c s dng). Khi chn ny c cp ngun in p 12V (Vpp) th On-chip m nhn chc nng np chng trnh cho Flash bn trong n. - Vcc: Cung cp dng ngun cho On-chip (+ 5V). - GND: ni Mass.
I HC SPKT HNG YN
Thanh ghi
IE IP PSW TMOD TCON SCON PCON P1 P3
MSB
EA CY GATE TF1 SM0 SMOD T2 RXD AC C/(/T) TR1 SM1 T2EX TXD /INT0 /INT1 ET2 PT2 FO M1 TF0 SM2 ES PS RS1 M0 TR0 REN -
Bng 2.3. Chc nng ring ca tng thanh ghi trong SFR
I HC SPKT HNG YN
Gio trnh: K thut Vi iu Khin Address 0E0h 0F0h 0D0h 81h 82h 83h 80h 90h Address 0A0h 0B0h 0B8h 0A8h 89h 88h 8Ch 8Ah 8Dh 8Bh 98h 99h 87h Reset Values 00000000b 00000000b 00000000b 00000111b 00000000b 00000000b 11111111b 11111111b Reset Values 11111111b 11111111b xxx00000b 0xx00000b 00000000b 00000000b 00000000b 00000000b 00000000b 00000000b 00000000b indeterminate 0xxx0000b
Symbol Name * ACC Thanh ghi tch lu *B Thanh ghi B * PSW T trng thi chng trnh SP Con tr ngn xp DP0L Byte cao ca con tr d liu 0 DP0H Byte thp ca con tr d liu 0 * P0 Cng 0 * P1 Cng 1 Symbol Name * P2 Cng 2 * P3 Cng 3 * IP TG iu khin ngt u tin * IE TG iu khin cho php ngt TMOD iu khin kiu Timer/Counter * TCON TG iu khin Timer/Counter TH0 Byte cao ca Timer/Counter 0 TL0 Byte thp ca Timer/Counter 0 TH1 Byte cao ca Timer/Counter 1 TL1 Byte thp ca Timer/Counter 1 * SCON Serial Control SBUF Serial Data Buffer PCON Power Control * : c th nh a ch bit, x: khng nh ngha
Bng 2.4. a ch, ngha v gi tr ca cc SFR sau khi Reset 2.5.1.1. Thanh ghi ACC: l thanh ghi tch lu, dng lu tr cc ton hng v kt qu ca php tnh. Thanh ghi ACC di 8 bits. Trong cc tp lnh ca On-chip, n thng c quy c n gin l A. 2.5.1.2. Thanh ghi B : Thanh ghi ny c dng khi thc hin cc php ton nhn v chia. i vi cc lnh khc, n c th xem nh l thanh ghi m tm thi. Thanh ghi B di 8 bits. N thng c dng chung vi thanh ghi A trong cc php ton nhn hoc chia.
18
I HC SPKT HNG YN
2.5.1.3. Thanh ghi SP: Thanh ghi con tr ngn xp di 8 bit. SP cha a ch ca d liu hin ang hin hnh nh ca ngn xp hay ni khc l SP lun tr ti ngn nh s dng cui cng (gi l nh ngn xp). Gi tr ca n c t ng tng ln khi thc hin lnh PUSH trc khi d liu c lu tr trong ngn xp. SP s t ng gim xung khi thc hin lnh POP. Ngn xp c th t bt c ni no trong RAM on-chip, nhng sau khi khi ng li h thng th con tr ngn xp mc nh s tr ti a ch khi u l 07h, v vy ngn xp s bt u t a ch 08h. Ta cng c th nh con tr ngn xp ti a ch mong mun bng cc lnh di chuyn d liu thng qua nh a ch tc thi. Ni thm v ngn xp: Ngn xp l mt vng ca b nh RAM dng lu tr thng tin tm thi (c th l d liu hoc a ch), l do cn c khng gian lu tr ny l v s lng thanh ghi c hn. Ngn xp chim 1 vng nh c a ch t 08h 1Fh tc l ton b 3 bank thanh ghi1,2,3 (gm24 Byte). Nu trong 1 chng trnh m cn phi c ngn xp > 24 Byte th phi gn a ch cho ngn xp ln vng nh c a ch t 30h tr ln. Nh rng khi reset h thng th gi tr ca SP = 07h. 2.5.1.4. Thanh ghi DPTR: Thanh ghi con tr d liu (16 bit) bao gm 1 thanh ghi byte cao (DPH-8bit) v 1 thanh ghi byte thp (DPL-8bit). DPTR c th c dng nh thanh ghi 16 bit hoc 2 thanh ghi 8 bit c lp. Thanh ghi ny c dng truy cp RAM ngoi. 2.5.1.5. Ports 0 to 3: P0, P1, P2, P3 l cc cht ca cc cng 0, 1, 2, 3 tng ng. Mi cht gm 8 bit. Khi ghi mc logic 1 vo mt bit ca cht, th chn ra tng ng ca cng mc logic cao. Cn khi ghi mc logic 0 vo mi bit ca cht th chn ra tng ng ca cng mc logic thp. Khi cc cng m nhim chc nng nh cc u vo th trng thi bn ngoi ca cc chn cng s c gi bit cht tng ng. Tt c 4 cng ca on-chip u l cng I/O hai chiu, mi cng u c 8 chn ra, bn trong mi cht bit c b Pullup-tng cng do nng cao kh nng ni ghp ca cng vi ti (c th giao tip vi 4 n 8 ti loi TTL). 2.5.1.6. Thanh ghi SBUF: m d liu ni tip gm 2 thanh ghi ring bit, mt thanh ghi m pht v mt thanh ghi m thu. Khi d liu c chuyn ti SBUF, n s i vo b m pht, v c gi y ch bin thnh dng truyn tin ni tip. Khi d liu c truyn i t SBUF, n s i ra t b m thu. 2.5.1.7. Cc Thanh ghi Timer: Cc i thanh ghi (TH0, TL0), (TH1, TL1) l cc thanh ghi m 16 bit tng ng vi cc b Timer/Counter 0 v 1.
19
I HC SPKT HNG YN
2.5.1.8. Cc thanh ghi iu khin: Cc thanh ghi chc nng c bit: IP, IE, TMOD, TCON, SCON, v PCON bao gm cc bit trng thi v iu khin i vi h thng ngt, cc b Timer/Counter v cng ni tip. Chng s c m t phn sau. 2.5.1.9. Thanh ghi PSW: T trng thi chng trnh dng cha thng tin v trng thi chng trnh. PSW c di 8 bit, mi bit m nhim mt chc nng c th. Thanh ghi ny cho php truy cp dng mc bit. CY AC FO RS1 RS0 OV P * CY: C nh. Trong cc php ton s hc, nu c nh t php cng bit 7 hoc c s mn mang n bit 7 th CY c t bng 1. * AC: C nh ph (i vi m BCD). Khi cng cc gi tr BCD, nu c mt s nh c to ra t bit 3 chuyn sang bit 4 th AC c t bng 1. Khi gi tr c cng l BCD, lnh cng phi c thc hin tip theo bi lnh DA A (hiu chnh thp phn thanh cha A) a cc kt qu ln hn 9 v gi tr ng. * F0: C 0 (C hiu lc vi cc mc ch chung ca ngi s dng) * RS1: Bit 1 iu khin chn bng thanh ghi. * RS0: Bit 0 iu khin chn bng thanh ghi. Lu : RS0, RS1 c t/xo bng phn mm xc nh bng thanh ghi ang hot ng (Chn bng thanh ghi bng cch t trng thi cho 2 bit ny) RS1 (PSW. 4) RS0 (PSW. 3) 0 0 Bank 0 0 1 Bank 1 1 0 Bank 2 1 1 Bank 3 Bng 2.5. Chn bng thanh ghi * OV: C trn. Khi thc hin cc php ton cng hoc tr m xut hin mt trn s hc, th OV c t bng 1. Khi cc s c du c cng hoc c tr, phn mm c th kim tra OV xc nh xem kt qu c nm trong tm hay khng. Vi php cng cc s khng du, OV c b qua. Kt qu ln hn +128 hoc nh hn -127 s t OV=1. * -: Bit dnh cho ngi s dng t nh ngha(Nu cn).
20
I HC SPKT HNG YN
* P: C chn l. c t ng t/ xo bng phn cng trong mi chu trnh lnh ch th s chn hay l ca bit 1 trong thanh ghi tch lu. S cc bit 1 trong A cng vi bit P lun lun l s chn. 2.5.1.10. Thanh ghi PCON: Thanh ghi iu khin ngun. GF1 GF0 PD IDL SMOD * SMOD: Bit to tc Baud gp i. Nu Timer 1 c s dng to tc baud v SMOD=1, th tc Baud c tng ln gp i khi cng truyn tin ni tip c dng bi cc kiu 1, 2 hoc 3. * -: Khng s dng, cc bit ny c th c dng cc b VXL trong tng lai. Ngi s dng khng c php t nh ngha cho cc bit ny. * GF0, GF1: C dng cho cc mc ch chung (a mc ch). * PD: bit ngun gim. t bit ny mc tch cc vn hnh ch ngun gim trong AT89C51. Ch c th ra khi ch bng Reset. * IDL: bit chn ch ngh. t bit ny mc tch cc vn hnh kiu Idle (Ch khng lm vic) trong AT89C51. Lu : Nu PD v IDL cng c kch hot cng 1 lc mc tch cc, th PD c u tin thc hin trc. Ch ra khi ch bng 1 ngt hoc Reset li h thng. 2.5.1.11. Thanh ghi IE: Thanh ghi cho php ngt EA ET2 ES ET1 EX1 ET0 EX0
* EA: Nu EA=0, khng cho php bt c ngt no hot ng. Nu EA=1, mi ngun ngt ring bit c php hoc khng c php hot ng bng cch t hoc xo bit Enable ca n. * -: Khng dng, ngi s dng khng nn nh ngha cho Bit ny, bi v n c th c dng cc b AT89 trong tng lai. * ET2: Bit cho php hoc khng cho php ngt b Timer 2. * ES: Bit cho php hoc khng cho php ngt cng ni tip (SPI v UART). * ET1: Bit cho php hoc khng cho php ngt trn b Timer 1 * EX1: Bit cho php hoc khng cho php ngt ngoi 1. * ET0: Bit cho php hoc khng cho php ngt trn b Timer 0
21
I HC SPKT HNG YN
* EX0: Bit cho php hoc khng cho php ngt ngoi 0. 2.5.1.12. Thanh ghi IP: Thanh ghi u tin ngt. PT2 PS PT1 PX1 PT0
PX0
* - : Khng dng, ngi s dng khng nn ghi 1 vo cc Bit ny. * PT2: Xc nh mc u tin ca ngt Timer 2. * PS: nh ngha mc u tin ca ngt cng ni tip. * PT1: nh ngha mc u tin ca ngt Timer 1. * PX1: nh ngha mc u tin ca ngt ngoI 1. * PT0: nh ngha mc u tin ca ngt Timer 0. * PX0: nh ngha mc u tin ca ngt ngoI 0. 2.5.1.13. Thanh ghi TCON : Thanh ghi iu khin b Timer/Counter TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 * TF1: C trn Timer 1. c t bi phn cng khi b Timer 1 trn. c xo bi phn cng khi b vi x l hng ti chng trnh con phc v ngt. * TR1: Bit iu khin b Timer 1 hot ng. c t/xo bi phn mm iu khin b Timer 1 ON/OFF * TF0: C trn Timer 0. c t bi phn cng khi b Timer 0 trn. c xo bi phn cng khi b vi x l hng ti chng trnh con phc v ngt. * TR0: Bit iu khin b Timer 0 hot ng. c t/xo bi phn mm iu khin b Timer 0 ON/OFF. * IE1: C ngt ngoi 1. c t bi phn cng khi sn xung ca ngt ngoi 1 c pht hin. c xo bi phn cng khi ngt c x l. * IT1: Bit iu khin ngt 1 to ra ngt ngoi. c t/xo bi phn mm. * IE0: C ngt ngoi 0. c t bi phn cng khi sn xung ca ngt ngoi 0 c pht hin. c xo bi phn cng khi ngt c x l. * IT0: Bit iu khin ngt 0 to ra ngt ngoi. c t/xo bi phn mm. 2.5.1.14. Thanh ghi TMOD: Thanh ghi iu khin kiu Timer/Counter GATE C/(/T) M1 M0 GATE C/(/T) M1 M0 Dnh cho Timer 1 Dnh cho Timer 0 * GATE: Khi GATE=1 v TRx =1, b TIMER/COUTERx hot ng ch khi chn INTx mc cao. Khi GATE=0, b TIMER/COUNTERx s hot ng ch khi TRx=1.
22
I HC SPKT HNG YN
* C/(/T): Bit ny cho php chn chc nng l Timer hay Counter. - Bit ny =0 th thc hin chc nng Timer - Bit ny =1 th thc hin chc nng Counter * M0, M1: Bit chn Mode, xc nh trng thi v kiu Timer/Counter: - M1=0, M0=0: Chn kiu b Timer 13 bit. Trong THx di 8 bit, cn TLx di 5 bit. - M1=0, M0=1: Chn kiu b Timer 16 bit. THx v TLx di 16 bit c ghp tng. - M1=1, M0=0: 8 bit Auto reload. Cc thanh ghi t ng np li mi khi b trn. Khi b Timer b trn, THx di 8 bit c gi nguyn gi tr, cn gi tr np li c a vo TLx. - M1=1, M0=1: Kiu phn chia b Timer. TL0 l 1 b Timer/Counter 8 bit, c iu khin bng cc bit iu khin b Timer 0, Cn TH0 ch l b Timer 8 bit, c iu khin bng cc bit iu khin Timer 1. - M1=1, M0=1: Timer/Counter 1 Stopped 2.5.1.15. Thanh ghi SCON: SM0 SM1 SM2
REN
TB8
RB8
TI
RI
SCON l thanh ghi trng thi v iu khin cng ni tip. N khng nhng cha cc bit chn ch , m cn cha bit d liu th 9 dnh cho vic truyn v nhn tin (TB8 v RB8) v cha cc bit ngt cng ni tip. * SM0, SM1: L cc bit cho php chn ch cho cng truyn ni tip. SM0 0 0 1 1 SM1 0 1 0 1 Mode 0 1 2 3 c im Thanh ghi dch 8 bit UART 9 bit UART 9 bit UART Tc Baud Fosc /12 C th thay i (c t bi b Timer) Fosc /64 hoc Fosc /32 C th thay i (c t bi b Timer)
Bng 2.6. Chn Mode trong SCON * SM2: Cho php truyn tin a x l, th hin Mode 2 v 3. ch 2 hoc 3, nu t SM2 = 1 th RI s khng c kch hot nu bit d liu th 9 (RB8) nhn
23
I HC SPKT HNG YN
c gi tr bng 0. Mode 1, nu SM2=1 th RI s khng c kch hot nu bit dng c hiu lc khng c nhn. ch 0, SM2 nn bng 0 * REN: Cho php nhn ni tip. c t hoc xo bi phn mm cho php hoc khng cho php nhn. * TB8: L bit d liu th 9 m s c truyn Mode 2 v 3. c t hoc xo bi phn mm. * RB8: L bit d liu th 9 c nhn Mode 2 v 3. Mode 1, nu SM2=0 th RB8 l bit dng c nhn. Mode 0, RB8 khng c s dng. * TI: C ngt truyn. c t bi phn cng ti cui thi im ca bit th 8 trong Mode 0, hoc u thi im ca bit dng trong cc Mode khc. bt k qu trnh truyn ni tip no, n cng phi c xo bng phn mm. * RI: C ngt nhn. c t bi phn cng ti cui thi im ca bit th 8 trong Mode 0, hoc gia thi im ca bit dng trong cc Mode khc. bt k qu trnh nhn ni tip no (tr trng hp ngoi l, xem SM2), n cng phi c xo bng phn mm.
I HC SPKT HNG YN
Do xung nhp bn ngoi c tn s bt k nn cc b Timer (0 v 1) c 4 ch lm vic khc nhau lu chn: (13 bit Timer, 16 bit Timer, 8 bit auto-reload, split Timer).
Timer 0 v Timer 1:
Trong AT89C51 v AT89C52 u c cc b Timer 0 v 1. Chc nng Timer hay Counter c chn la bi cc bit iu khin C/(/T) trong thanh ghi TMOD. Hai b Timer/Counter ny c 4 ch hot ng, c la chn bi cp bit (M0, M1) trong TMOD. Ch 0, 1 v 2 ging nhau cho cc chc nng Timer/Counter, nhng ch 3 th khc. Bn ch hot ng c m t nh sau: + Ch 0: C 2 b Timer 0 v 1 ch 0 c cu hnh nh mt thanh ghi 13 bit, bao gm 8 bit ca thanh ghi THx v 5 bit thp ca TLx. 3 bit cao ca TLx khng xc nh chc chn, nn c lm ng. Khi thanh ghi c xo v 0, th c ngt thi gian TFx c thit lp. B Timer/Counter hot ng khi bit iu khin TRx c thit lp (TRx=1) v, hoc Gate trong TMOD bng 0, hoc /INTx=1. Nu t GATE=1 th cho php iu khin Timer/ Counter bng ng vo ngoi /INTx, d dng xc nh rng xung. Khi hot ng chc nng thi gian th bit C/(/T)=0, do vy xung nhp t b dao ng ni, qua b chia tn cho ra tn s f=fosc/12 c a vo m trong
OS T1 PIN GATE
& 1
Hinh 2.4: Ch 0 ca Timer 1
/INT1 PIN
thanh ghi Timer/Counter. Khi hot ng chc nng b m th bit C/(/T)=1, lc xung nhp ngoi a vo s c m. + Ch 1: hot ng tng t nh ch 0, ch khc l thanh ghi Timer/Counter c s dng c 16 bit. Xung nhp c dng kt hp vi cc thanh ghi thi gian byte thp v byte cao (TH1 v TL1). Khi xung Clock c nhn, b Timer s m tng ln: 0000h, 0001h, 0002, Khi hin tng trn xy ra, c trn s chuyn FFFFh v 0000h, v b Timer tip tc m. C trn ca Timer 1 l bit TF1 trong TCON, n c c hoc ghi bi phn mm, xem hnh 2.5 (Timer/Counter 1 Mode 1: 16 bit Counter).
25
I HC SPKT HNG YN
Timer Clock
TF1
Overlow Flag
2.5 : Ch ghi 1 ca Timer + Ch 2: Ch Hinh ny c a thanh Timer cng 1 hot ng tng t nh 2 ch trn, nhng n c t chc nh b m 8 bit (TL1) vi ch t ng np li, nh hnh 2.6. Khi xy ra hin tng trn TL1, khng ch thit lp bit TF1 m cn t ng np li cho TL1 bng ni dung ca TH1, c thit lp bi phn mm. Qu trnh np li cho php ni dung ca TH1 khng b thay i. Ch 2 ca Timer/Counter 0 cng tng t nh Timer/Counter 1. OSC /12
C/ T=0
C/ T=1
TL1 8 bits
TF 1 Interrupt Reload
Control
& 1
TH1 8 bits
/INT1 PIN
+ Ch 3: ch ny, chc nng Timer/Counter 0 v chc nng Timer/Counter 1 khc nhau. B Timer 1 ch 3 ch cha chc nng m ca n, kt qu ging khi t TR1=0. B Timer 0 ch 3 thit lp TH0, TL0 nh l 2 b m ring bit. Mch Logic i vi ch 3 ca Timer 0 th hin hnh 2.7. B m TL0 c iu khin bi cc bit: C/(/T), GATE, TR0, /INT0 v khi m trn n thit lp c ngt TF0. B m TH0 ch c iu khin bi bit TR1, v khi m trn n thit lp c ngt TF1. Vy, TH0 iu khin ngt Timer/Counter 1. Ch 3 thng c dng khi yu cu cn c b thi gian hoc b m ngoi 8 bit. i vi Timer 0 ch 3, AT89C51 c th c 3 b Timer/Counter, cn AT89C52 c th c 4 b. Khi Timer 0 hot ng ch 3, th Timer 1 c th c bt hoc tt bng chuyn mch ngoi. ch ny, Timer 1 c th c s dng bi cng ni tip nh mt b to tc Baud, hoc trong bt k ng dng no m khng yu cu mt ngt. OSC T0 PIN GATE
/12
C/ C/
TL0 8 bits
TF 0
Interrupt Interrupt
TR0
& 1
Control
26
/INT0 PIN
TH0 8 bits
TF1
I HC SPKT HNG YN
/EA=0 External
0000
/EA=1 Internal
7Fh 00 0000
/PSEN
/RD /WR
27
I HC SPKT HNG YN
C th truy cp bng a ch gin tip C th truy cp bng a ch trc tip v gin tip
FFh
80h
28
I HC SPKT HNG YN
AT89C51 c b nh d liu chim mt khong khng gian b nh c lp vi b nh chng trnh. Dung lng ca RAM ni tr h VK ny l 128 Byte, c nh a ch t 00h n 7Fh. Phm vi a ch t 80h n FFh dnh cho SFR. Tuy nhin b VK cng c th lm vic vi RAM ngoi tr c dung lng cc i l 64 Kbyte c nh a ch t 0000h n FFFFh.
29
I HC SPKT HNG YN
30
I HC SPKT HNG YN
Byte Address
7F
31
I HC SPKT HNG YN
Byte address
FF F0 E0 D0 B8 B0 A8 A0 99 98 90 8D 8C 8B 8A 89 88 87 83 82 81 80 87 8F 8E F7 E7 D7 B7 AF A7 F6 E6 D6 B6 -
Bit address
B ACC PSW IP P3 IE P2 SBUF SCON P1 TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0
F5 E5 D5 B5 -
F4 E4 D4
F3 E3 D3
F2 E2 D2
F1 E1 -
F0 E0 D0 B8 B0 A8 A0
BC BB BA B9 B4 B3 B2 B1 A9 A1
AC AB AA A4 A3 A2
A6 A5
Not bit addressable Not bit addressable Not bit addressable Not bit addressable Not bit addressable
8D 8C 8B 8A 89 88
Not bit addressable Kh ng cho ph p truy xu t bit Khng cho php truy xut bit Kh ng cho ph p truy xu t bit
86 85 84 83 82 81 80
32
I HC SPKT HNG YN
2.5.4.1. B nh chng trnh ngoi tr. AT89C51 P1 P0 /EA ALE P3 P2 /PSEN A8...A15 /0E Latch D Q EPROM AD0...AD7 A0...A7
33
I HC SPKT HNG YN
B nh chng trnh ngoi l b nh ch c, c cho php bi tn hiu /PSEN. Khi c mt EPROM ngoi c s dng, c P0 v P2 u khng cn l cc cng I/O na. Khi b VK truy cp b nh chng trnh ngoi tr, n lun s dng knh a ch 16 bit thng qua P0 v P2. Mt chu k my ca b VK c 12 chu k dao ng. Nu b dao ng trn chip c tn s 12 MHz, th 1 chu k my di 1s. Trong mt chu k my in hnh, ALE c 2 xung v 2 Byte ca lnh c c t b nh chng trnh (nu lnh ch c 1 byte th byte th 2 c loi b). Khi truy cp b nh chng trnh ngoi tr, b VK pht ra 2 xung cht a ch trong mi chu k my. Mi xung cht tn ti trong 2 chu k dao ng t P2-S1 n P1-S2, v t P2-S4 n P1-S5. a ch ho b nh chng trnh ngoi tr, byte thp ca a ch (A0A7) t b m chng trnh ca b VK c xut qua cng P0 ti cc trng thi S2 v S5 ca chu k my, byte cao ca a ch (A8A15) t b m chng trnh c xut qua cng P2 trong khong thi gian ca c chu k my. Tip theo xung cht, b VK pht ra xung chn /PSEN. Mi chu k my ca chu k lnh gm 2 xung chn, mi xung chn tn ti trong 3 chu k dao ng t P1-S3 n ht P1-S4 v t P1-S6 n ht P1-S1 ca chu k my tip theo. Trong khong thi gian pht xung chn th byte m lnh c c t b nh chng trnh nhp vo On chip.
34
I HC SPKT HNG YN
I/O
Page Bits
/OE /WE
Hnh 2. 14. Truy cp b nh d liu ngoi
35
I HC SPKT HNG YN
B nh d liu ngoi tr c cho php bi cc tn hiu /WR v /RD cc chn P3.6 v P3.7. VK truy cp b nh d liu ngoi bng a ch 2 byte (thng qua cng P0 v P2) hoc 1 byte (thng qua cng P0). Lnh dng truy xut b nh d liu ngoi l MOVX, s dng hoc DPTR hoc Ri (R0 v R1) lm thanh ghi cha a ch. hnh 2.14 ta thy: - /EA c ni vi +Vcc cho php VK lm vic vi b nh chng trnh ni tr. - /RD ni vi ng cho php xut d liu (/OE-Output Data Enable) ca RAM. - /WR ni vi ng cho php ghi d liu (/WE-Write Data Enable) ca RAM. Nguyn l truy cp b nh d liu ngoi tr c th hin bng cc th thi gian trn. Tuy nhin, tu thuc vo nhim v c d liu t b nh hay ghi d liu vo b nh m nguyn l truy cp b nh d liu l khc nhau. * Qu trnh c d liu t b nh ngoi tr: Khi truy cp b nh d liu ngoi tr, b VK pht ra 1 xung cht a ch (ALE) cho b cht bn ngoi
36
I HC SPKT HNG YN
(Latch) trong mi chu k my, tn ti trong 2 chu k dao ng t P2-S4 n P1S5. a ch ho b nh d liu ngoi, byte thp ca a ch t thanh ghi con tr d liu (DPL) hoc t Ri ca VK c xut qua cng P0 trong khong cc trng thi S5 ca chu k my trong chu k lnh. Tip theo byte thp ca a ch t b m chng trnh (PCL) cng c xut ra qua cng P0 a ti b m chng trnh thc hin lnh tip theo. Byte cao ca a ch t DPTR (DPH) ca VK c xut qua cng P2 trong khong thi gian t S5 n S4 ca chu k my tip theo. Sau byte cao ca a ch t PC (PCH) cng c xut qua cng P2 a n b nh chng trnh. Nu a ch c di 1 byte th n c xut qua cng P0 t DPL hoc Ri. Tip theo xung cht, VK xut ra tn hiu iu khin /RD cho php c d liu t b nh ngoi. Xung /RD tn ti trong 3 trng thi ca mi chu k my t P1-S1 n P2-S3, v trong khong thi gian ny d liu t b nh ngoi c c vo VK . * Qu trnh ghi d liu vo b nh ngoi tr: Tng t nh qu trnh c d liu, nhng y dng tn hiu iu khin ghi /WR. * Cc lnh truy cp b nh d liu ngoi tr: - MOVX A, @Ri: Chuyn (c) d liu 8 bit t nh ca RAM ngoi ti a ch c xc inh trong thanh ghi ca bng thanh ghi hin hnh vo A. - MOVX @Ri, A: Chuyn (ghi) d liu 8 bit t A vo nh ca RAM ngoi ti a ch c xc nh trong thanh ghi ca bng thanh ghi hin hnh. - MOVX A,@DPTR: Chuyn (c) d liu 16 bit t nh ca RAM ngoi ti a ch c xc inh trong thanh ghi con tr d liu vo A. - MOVX @DPTR, A: Chuyn (ghi) d liu 16 bit t A vo nh ca RAM ngoi ti a ch c xc nh trong thanh ghi con tr d liu. V d: MOV R0, #4Fh MOVX A,@R0 S chuyn ni dung RAM ngoi ti a ch 4Fh vo A.
2.5.5. C ch ngt trong On-chip AT89C51: 2.5.5.1- Phn loi ngt trong On-chip:
B AT89C51 c tt c 5 Vectors ngt bao gm: 2 ngt ngoi (/INT0 v /INT1), 2 ngt ca khi thi gian (Timer 0, 1), v ngt cng truyn tin ni tip. Mi ngun ngt c th c kch hot hoc khng kch hot bng cch t hoc xo Bit trong IE. IE cng cha bit c th khng cho tt c cc ngt hot ng EA (Nu EA=0). Cc ngt ngoi c th c kch hot theo mc hoc theo sn xung, tu thuc vo gi tr ca cc bit IT0, IT1 trong TCON. Ngt ngoi c 2 c ngt tng ng l IE0, IE1 cng nm trong TCON. Khi mt ngt c thc
37
I HC SPKT HNG YN
hin th c ngt tng ng ca n b xo bng phn cng. Chng trnh con phc v ngt hot ng ch khi ngt c kch hot theo sn xung. Nu ngt c kch hot theo mc th ngun yu cu ngt t bn ngoi iu khin c ngt.
Hnh 2.17. Cc ngun ngt ca AT89C51 Cc ngt trong, vi ngt Timer/Counter 0, 1 c pht sinh bi c ngt TF0, TF1. Hai c ngt ny c thit lp khi thanh ghi Timer/Counter thc hin quay vng, ti thi im S5P2 ca chu trnh my. Khi mt ngt c thc hin th c ngt tng ng pht sinh ra ngt s b xo bng phn cng trong On-chip. Ngt cng ni tip c pht sinh bi cc ngt RI, TI, SPIF thng qua phn t Logic OR, khi chng trnh con phc v ngt c kch hot th cc c ngt pht sinh tng ng c xo bng phn mm. Cc ngt trong c th c php hoc khng uc php kch hot bng cch t hoc xo mt bit trong IE.
I HC SPKT HNG YN
- t bit EA trong IE mc logic 1. - t bit cho php ngt tng ng trong IE mc logic 1. - Bt u chng trnh con phc v ngt ti a ch ca ngt tng ng . (Xem bng a ch Vector ca cc ngun ngt) Ngoi ra, i vi cc ngt ngoi, cc chn /INT0, /INT1 phi c t mc 1. V tu thuc vo ngt c kch hot bng mc hay sn xung, m cc bit IT0, IT1 trong TCON c th cn phi t mc 1. ITx=0: Kch hot bng mc ITx=1: Kch hot bng sn xung.
39
I HC SPKT HNG YN
Hnh 2.18. H thng ngt ca AT89C51 Bt k mt trong 3 iu kin ny xut hin s cn tr vic to ra LCALL i vi chng trnh phc v ngt. iu kin 2 m bo rng, lnh ang thc hin s c hon thnh trc khi tr ti bt k chng trnh phc v no. iu kin 3 m bo rng, nu lnh ang thc hin l RETI hoc bt k s truy cp no vo IE hoc IP, th t nht mt lnh na s c thc hin trc khi bt k ngt no c tr ti. Chu trnh kim tra vng c lp li vi mi chu trnh my, v cc gi tr c kim tra l cc gi tr m xut hin thi im S5P2 ca chu trnh my trc . Nu mt ch th ngt c hiu lc nhng khng c p ng v cc iu kin trn v nu ch th ny vn cha c hiu lc khi iu kin cn tr c loi b, th ngt b t chi ny s khng c phc v na. LCALL do phn cng to ra s chuyn ni dung ca b m chng trnh vo ngn xp (Nhng khng ghi vo PSW) v np li cho PC mt a ch ph thuc vo ngun gy ngt ang c phc v, nh bng di y:
40
I HC SPKT HNG YN
Gio trnh: K thut Vi iu Khin Ngun ngt IE0 TF0 IE1 TF1 RI hoc TI TF2 hoc EXF2 RST a ch Vc t 0003h 000Bh 0013h 001Bh 0023h 002Bh 0000h
Ngt External 0 Timer 0 External 1 Timer 1 Serial Port Timer 2 (AT89C52) System Reset
Bng 2.7. a ch vc t ngt Lnh RETI thng bo cho b VXL rng th tc ngt ny kt thc, sau ly ra 2 Byte t ngn xp v np li cho PC tr li quyn iu khin cho chng trnh chnh.
I HC SPKT HNG YN
cch s dng c im ny i vi hot ng theo bc n l l lp trnh cho 1 trong nhng ngt ngoi(chng hn /INT0) c kch hot theo mc. Nu chn /INT0 c duy tr mc thp, th CPU s chuyn ngay n th tc ngt ngoi 0 v dng cho ti khi INT0 c nhn xung t thp ln cao ri xung thp. Sau n s thc hin lnh RETI, tr li nhim v chng trnh, thc hin mt lnh, v ngay sau nhp li th tc ngft ngoi 0 i xung nhp tip theo ca P3.2. Mi bc ca nhim v chng trnh c thc hin vo mi thi im chn P3.2 c nhn xung.
I HC SPKT HNG YN
c chuyn vo RB8 thanh ghi SCON, trong khi bit dng c lc b. Tc Baud c th lp trnh c bng 1/32 hoc 1/64 tn s b dao ng. + Ch 3: 11 bit c truyn (thng qua TxD) hoc c nhn (thng qua RxD) bao gm: 1 bit khi ng (c gi tr 0), 8 bit d liu (u tin l LSB), 1 bit d liu th 9 c th lp trnh c, v 1 bit dng (c gi tr 1). Trn thc t, ch 3 ging ch 2 mi gc tr tc Baud. Tc Baud ch 3 l kh bin v c xc nh theo b Timer 1. Trong c 4 ch trn, vic truyn c bt u bi bt k mt lnh no m s dng thanh ghi SBUF nh l mt thanh ghi ch. Vic nhn c bt u ch 0 khi RI=0 v REN=1. i vi cc ch khc, vic nhn c bt u khi bit REN=1.
43
I HC SPKT HNG YN
2.5.6.3. Cc tc Baud:
+ Tc Baud ch 0 c c nh, v bng Tn s b dao ng/12 + Tc Baud ch 2 ph thuc vo gi tr ca bit SMOD trong thanh ghi PCON. Nu SMOD=0 (gi tr sau khi reset), th tc Baud =1/64 tn s ca b dao ng. Nu SMOD=1 th tc Baud =1/32 tn s ca b dao ng. Tc Baud ch 2 = (2SMOD*Tn s b dao ng)/64 Trong AT89C51, cc tc Baud ch 1 v 3 do Timer 1 quyt nh, Trong AT89C52 tc Baud ca cc ch ny c th c quyt nh bi Timer 1 hoc Timer 2, hoc c hai (mt b timer xc nh tc truyn, b kia xc nh tc nhn).
44
I HC SPKT HNG YN
Tn s d.ng (MHz) Mode 0 Max: 1M 12 Mode 2 Max: 375K 12 Mode 1,3 12 Max:62,5K 19,2K 11,059 9,6K 11,059 4,8K 11,059 2,4K 11,059 1,2K 11,059 137,5 11,966 110 6 110 12
Tc Baud (Hz)
SMODE C/(/T) x 1 1 1 0 0 0 0 0 0 0 X X 0 0 0 0 0 0 0 0 0
Timer 1 Mode Gi tr np li X X 2 2 2 2 2 2 2 2 1 X X FFh FDh FDh FAh F4h E8h 1Dh 72h FEEBh
2.5.6.5. Hot ng ca ch 0:
D liu ni tip vo v ra thng qua RxD. TxD cho ra ng h xung nhp. 8 bit d liu c truyn/nhn (vi LSB u tin) c thc hin ch ny. Tc Baud c c nh bng 1/12 tn s b dao ng. Hnh 2.19 (Seriel Port Mode 0) m t s chc nng ca cng ni tip ch 0 v cc mc thi gian c lin quan. Qu trnh truyn c bt u bng bt k lnh no m s dung SBUF nh l mt thanh ghi ch. Tn hiu ghi vo SBUF ti thi im S6P2 cng np gi tr 1 vo v tr th 9 ca thanh ghi dch trong qu trnh truyn v bt c bo cho khi iu khin pht (Tx Control) v yu cu truyn tin. Thi gian c xc lp bn trong cho 1 chu trnh my y s bt u t thi im ghi vo SBUF cho ti khi SEND c kch hot. SEND cho php ni dung ca thanh ghi dch a ti u ra P3.0 v cho php tn hiu SHIFT CLOCK n u ra P3.1. SHIFT CLOCK c gi tr thp trong cc trng thi S3, S4 v S5 ca mi chu trnh my, v c gi tr cao trong cc trng thi S6, S1 v S2. Ti thi im S6P2 ca mi chu trnh my khi SEND c mc tch cc, th ni dung ca thanh ghi dch pht c dch sang bn phi mt bit.
45
I HC SPKT HNG YN
Hnh 2.19.
Khi cc bit d liu dch sang bn phi i ra ngoi th cc gi tr 0 c gn vo bn tri. Khi bit c trng s ln nht MSB ca Byte d liu v tr u ca thanh ghi dch, th gi tr 1 ( c np t u vo v tr th 9) c t vo bn tri ca MSB, v tt c cc v tr bn tri cn li ca MSB u cha gi tr 0. iu kin ny s ch th cho khi iu khin pht thc hin mt php dch cui
46
I HC SPKT HNG YN
cng v sau hu tc dng ca SEND v thit lp c ngt truyn TI. C 2 tc ng ny xy ra ti thi im S1P1 ca chu trnh my th 10 k t thi im ghi vo SBUF. Qu trnh nhn tin c khi u bng iu kin REN=1 v RI=0. Ti thi im S6P2 ca chu trnh my tip theo, khi iu khin nhn (Rx Control) s ghi cc bit 11111110 (Xa RI) vo thanh ghi dch nhn, v s kch hot RECEIVE trong pha xung nhp tip theo. RECEIVE cho php SHIFT CLOCK (ng h xung nhp) a n u ra P3.1. SHIFT CLOCK s to ra vic pht tin ti thi im S3P1 v S6P1 ca mi chu trnh my. Ti giai on S6P2 ca mi chu trnh my khi RECEIVE c mc tch cc th ni dung ca thanh ghi dch nhn tin c dch sang tri mt v tr. Gi tr a vo t bn phi l gi tr c to mu chn P3.0 ti thi im S5P2 ca cng chu trnh my. Khi cc bit d liu c a vo t bn phi, th cc gi tr 1 s i ra bn tri. Khi gi tr 0 ( c np ban u vo v tr tn cng bn phi) dch n v tr tn cng bn tri trong thanh ghi dch, th n ch th cho khi iu khin nhn thc hin php dch cui cng v np vo SBUF. Ti thi im S1P1 ca chu trnh my th 10 sau thi im ghi vo SCON ( xo RI), th RECEIVE c xo v RI c thit lp.
2.5.6.6. Hot ng ca ch 1:
ch ny 10 bit c truyn (thng qua TxD) hoc nhn (thng qua RxD) bao gm: 1 bit khi u(c gi tr 0), 8 bit d liu (LSB u tin) v 1 bit dng (C gi tr 1). Khi nhn tin, bit dng chuyn vo RB8 trong SCON. Trong AT89C51, tc Baud c xc nh bng tc trn ca Timer 1. Trong AT89C52, tc Baud c xc nh bng tc trn ca Timer 1 hoc tc trn ca Timer 2 hoc bng tc trn ca c 2 b Timer ny. Trong trng hp ny, khi c 2 b Timer c s dng th mt b Timer s xc nh tc truyn tin, cn b Timer kia xc nh tc nhn tin. Hnh 2.20 (Seriel Port Mode 1) l s chc nng ca cng ni tip ch 1 v th thi gian lin quan ti qu trnh truyn v nhn tin ca ch ny. Qu trnh truyn tin c khi u bi bt k lnh no c s dng SBUF nh 1 thanh ghi ch. Tn hiu ghi vo SBUF s np gi tr 1 vo bit th 9 ca thanh ghi dch truyn v bt c bo cho khi iu khin pht (Tx Control) v yu cu cn truyn tin. Qu trnh truyn thc t bt u ti thi im S1P1 ca chu k my theo sau qu trnh quay vng (rollover) k tip trong b m /16 (-:-16). Do , cc
47
I HC SPKT HNG YN
thi im ca bit truyn c ng b vi nhp b m chia16, ch khng phi vi tn hiu ghi vo SBUF. Qu trnh truyn tin bt u khi /SEND c kch hot m cng OR v bit khi u c t ti TxD. Sau tn hiu DATA c kch hot m tip cng AND. iu ny cho php m thng ng truyn t thanh ghi dch truyn n u ra TxD. Xung nhp u tin dch cc bit trong thanh ghi dch truyn s xut hin ngay sau .
Hnh 2.20
48
I HC SPKT HNG YN
Khi cc bit d liu dch sang phi, th cc gi tr 0 c a vo t bn tri. Khi MSB ca Byte d liu v tr u ra ca thanh ghi dch th gi tr 1(ban u c np vo bit th 9) s c in vo ngay bn tri ca bit MSB, cn cc bit k t n sang tri u c gi tr 0. iu kin ny s ch th cho khi iu khin pht thc hin ln dch cui cng v sau a tr /SEND v mc th ng, ng thi thit lp c ngt TI. Thi im ny ri vo chu k th 10 ca b m chia 16, sau thi im ghi vo SBUF. Qu trnh nhn tin c khi u bng vic pht hin c s chuyn trng thi t 1 v 0 ng thu ni tip RxD. pht hin chnh xc, tn hiu trn RxD c ly mu tc gp 16 ln tc Baud ca ng truyn. Khi s chuyn trng thi (t 1 v 0) c pht hin th b m chia 16 c ti xc lp ngay v gi tr 1FFh c ghi vo thanh ghi dch u vo (Input shift register). Vic ti thit lp b m chia 16 s ng nht thi im trn ca n vi cc bin (ranh gii) thi gian ca bit ang i ti u thu. Mi bit c chia thnh 16 phn (States) thi gian bng nhau (16 phn ca b m). Ti cc phn thi gian th 7, 8, 9 ca mi bit, b pht hin bit (Bit Detector) s trch mu gi tr ca RxD. Gi tr c chp nhn l gi tr c t nht 2 trong 3 mu. Phng php ny c thc hin chng nhiu ng truyn. Nu gi tr c chp nhn i vi bit u tin khng phI l 0 (khng phI bit START), th cc mch thu c ti xc lp quay li ch mt t bin t 1 v 0 khc. Nu bit khi u (START) c gi tr hp l th d liu c dch vo thanh ghi dch u vo, v qu trnh nhn tin c tip tc. Khi cc bit d liu i vo t bn phi ca thanh ghi dch, th cc gi tr 1 c dch ra bn tri ca n. Khi bit khi u n v tr tn cng bn tri ca thanh ghi dch ( ch 1, n l thanh ghi 9 bit), n s ch th cho khi iu khin nhn (Rx Control) thc hin php dch chuyn cui cng, ri np SBUF v RB8, v thit lp RI. Tn hiu np SBUF v RB8, v thit lp RI s c to ra khi v ch khi cc iu kin sau y c tho mn thi im xung nhp cui cng c to ra: 1. RI=0, v 2. Hoc SM2=0, hoc bit STOP nhn c =1. Nu mt trong hai iu kin ny khng c tho mn, th Byte tin nhn c s b mt. Nu c 2 iu kin c tho mn, th bit dng chuyn vo RB8, 8 bit d liu chuyn vo SBUF, v RI c kch hot. Ti thi im ny, bt k cc iu kin trn c tho mn hay khng, th khi iu khin vn quay tr li tip tc chc nng pht hin t bin mi t 1 v 0 trn ng thu tin RxD.
49
I HC SPKT HNG YN
2.5.6.7. Hot ng ca ch 2 v 3:
ch ny 11 bit c truyn i (thng qua TxD) hoc nhn vo (thng qua RxD), bao gm: 1 bit khi u (0), 8 bit d liu (LSB u tin), 1 bit d liu th 9 c th lp trnh c v 1 bit dng (1). Khi truyn tin i, bit d liu th 9 (TB8) c th c gn gi tr 0 hoc 1. Khi nhn tin, bit d liu th 9 chuyn vo RB8 trong SCON. Tc Baud c th lp trnh c bng 1/32 hoc 1/64 tn s ca b dao ng ch 2. Ch 3 c th c tc Baud kh bin do Timer 1 hoc Timer 2 to ra, tu thuc vo trng thi ca cc bit TCLK v RCLK. Hnh 2.21 (Seriel Port Mode 2) v Hnh 2.22 (Seriel Port Mode 3) l cc s chc nng v th thi gian ca cc ch 2 v 3. Phn nhn tin c t chc ging nh ch 1. Phn truyn tin khc vi ch 1 ch bit th 9 ca thanh ghi dch truyn. Qu trnh truyn tin c khi u bng bt k lnh no m c s dng SBUF nh mt thanh ghi ch. Tn hiu ghi vo SBUF cng np bit TB8 vo v tr bit th 9 ca thanh ghi dch truyn v ch th cho khi iu khin truyn (Tx Control) rng c yu cu phi truyn tin. Qu trnh truyn c bt u ti S1P1 ca chu k my ngay sau thi im trn ca b m chia 16. Do , cc bit c ng b i vi chu k b m chia 16, ch khng phi vi tn hiu ghi vo SBUF. Qu trnh truyn bt u khi tn hiu /SEND c kch hot, v bit khi u c t ti TxD. Sau n tn hiu DATA c kch hot. iu ny cho php m thng ng truyn t thanh ghi dch truyn n u ra TxD. Xung nhp u tin chuyn gi tr 1 (Bit dng) vo v tr bit th 9 ca thanh ghi dch. Cn sau ch cc gi tr 0 c a vo. V vy, khi cc bit d liu dch ra sang phi, th cc gi tr 0 c a vo t bn tri. Khi TB8 v tr u ra ca thanh ghi dch, th bit dng chuyn n bn tri ca TB8, v tt c cc gi tr bn tri ca n u l gi tr 0. iu kin ny ch th cho khi iu khin pht (Tx Control) thc hin php dch cu cng v sau tr SEND v trng thi th ng, ng thi thit lp TI. Thi im ny ng vi chu k ln th 11 (s quay vng ln th 11) ca b m chia 16 sau khi c tn hiu ghi vo SBUF.
50
I HC SPKT HNG YN
Hnh 2.21
51
I HC SPKT HNG YN
Hnh 2.22
52
I HC SPKT HNG YN
Qu trnh nhn tin c khi u bng s pht hin t bin (chuyn trng thi) t 1 v 0 RxD. Vi mc ch m bo tin cy khi trch mu trn RxD, th tc trch mu c ly gp 16 ln tc Baud ca ng truyn (Tn hiu trn RxD c ly mu vi tc gp 16 ln tc Baud ca ng truyn). Khi s chuyn trng thi t 1 v 0 c pht hin, b m chia 16 c ti xc lp (reset) li ngay, v gi tr 1FFh c ghi vo thanh ghi dch u vo. cc phn thi gian th 7, 8 v 9 ca mi bit, b pht hin bit (Bit Detector) s trch mu gi tr ca RxD. Gi tr c chp nhn l gi tr thy t nht 2 trong 3 mu. Phng php ny c thc hin chng nhiu ng truyn. Nu gi tr c chp nhn i vi bit u tin khng phi l 0 (khng phi bit START), th cc mch thu c ti xc lp quay li ch mt t bin t 1 v 0 khc. Nu bit khi u (START) c gi tr hp l th d liu c dch vo thanh ghi dch u vo, v qu trnh nhn tin c tip tc. Khi cc bit d liu thu c i vo t bn phi ca thanh ghi dch, th cc gi tr 1 c dch ra bn tri ca n. Khi bit khi u n v tr tn cng bn tri ca thanh ghi dch ( ch 2 v 3, n l thanh ghi 9 bit), n s ch th cho khi iu khin nhn (Rx Control) thc hin php dch chuyn cui cng, ri np SBUF v RB8, v thit lp RI. Tn hiu np SBUF v RB8, v thit lp RI s c to ra khi v ch khi cc iu kin sau y c tho mn thi im xung nhp cui cng c to ra: 1. RI=0, v 2. Hoc SM2=0, hoc bit STOP nhn c =1 Nu mt trong hai iu kin ny khng c tho mn, th Byte tin nhn c s b mt v RI cng khng c xc lp. Nu c 2 iu kin c tho mn, th bit dng chuyn vo RB8, 8 bit d liu chuyn vo SBUF, v RI c kch hot. Ti thi im ny, bt k cc iu kin trn c tho mn hay khng, th khi iu khin vn quay tr li tip tc chc nng pht hin t bin mi t 1 v 0 trn ng thu tin RxD.
53
I HC SPKT HNG YN
Hnh 2.23. t li thi gian cho AT89C51 Tn hiu khi ng li bn ngoi a vo chn RST khng ng b vi xung Clock bn trong. Chn RST c ly mu ti thi im P2S5 ca mi chu k my. Cc chn ca cng s gi hot ng hin hnh ca chng cho 19 chu k dao ng sau khi gi tr logic 1 c ly mu chn RST. Trong khi chn RST mc cao, ALE v /PSEN c y dn ln mc cao. Sau RST c y xung, n s gi 1 n 2 chu k my i vi ALE v /PSEN khi ng xung Clock. V l do ny m cc dch v khc(a t ngoi vo) khng th ng b c vi b thi gian bn trong ca AT89C51. Khi Reset c hiu lc th gi tr ca cc SFR, c m t (Table -Reset Values of SFRs ). Trong thanh ghi SBUF, v mt s bit ca PCON, T2MOD, IE, IP c gi tr bt nh. Cc cht cng t P0P3 c gi tr FFh, SP c gi tr 07h. Cc thanh ghi cn li c gi tr 00h. Ring i vi RAM bn trong On-chip AT89S8252 khi cp ngun hay Reset li khng b tc ng, m ni dung trong RAM c gi tr ngu nhin. Khi ng li cho On-chip c th hot ng trng thi t ng hoc bn t ng .
54
I HC SPKT HNG YN
55
I HC SPKT HNG YN
Khi ng t ng c th c to ra khi cp ngun in +Vcc cho on-chip bng mch in RC. Sau khi cp ngun, mch RC gi cho chn RST trng thI cao trong thi gian tu thuc vo hng s thi gian ca mch RC. m bo khi ng c on-chip, thi gian chn RST trng thi cao phi ln (Khong ln hn 2 chu k my) mch dao ng chuyn sang trng thi dao ng n nh Nu khi ng bn t ng, sau khi cp ngun mch s t ng Reset nh khi ng t ng. Khi cn khi ng li phi nhn cng tc thng ngt K, thi gian nhn cng tc chn RST phi trng thi cao.
C1=33P
56
I HC SPKT HNG YN
57
I HC SPKT HNG YN
Kho b nh chng trnh cho h VK AT89C51: Ch 1 2 Loi bo v Khng c c trng kho chng trnh. Cc lnh MOVC c thc thi t b nh chng trnh ngoi, khng c php tm np lnh t b nh ni. EA c ly mu v cht khi reset. Vic lp trnh trn Flash b cm. 3 P P U Nh ch 2, ngoi ra cn cm vic kim tra chng trnh. 4 P P P Nh ch 3, ngoi ra cn cm vic thc thi chng trnh ngoi. Lu : P=Programmed, U = Unprogrammed
58
LB1 U P
LB2 U U
LB3 U U
I HC SPKT HNG YN
59
I HC SPKT HNG YN
I HC SPKT HNG YN
mun b qua mt cu lnh no pha trc ca cu lnh cng phi c du chm phy.
ngha
c thay th bi Ni dung ca D liu c tr bi 1 trong 8 thanh ghi (R0-R7) ca cc bng thanh ghi Cc bit d liu Cc bit a ch a ch ca 1 bit nh a ch gin tip thng qua R0 hoc R1 a ch tng i 8 bit
3.1. Nhm lnh di chuyn d liu 3.1.1. Lnh MOV dng Byte:
C php cu lnh: MOV <dest-byte>, <src-byte> Chc nng: Sao chp ni dung ca ton hng ngun vo ton hng ch, ni dung ca ton hng ngun khng thay i. Lnh ny khng lm nh hng ti cc c v cc thanh ghi khc. Cu lnh MOV A, Rn MOV A, direct MOV A, @Ri MOV A, #data MOV Rn, A MOV Rn, direct MOV Rn, #data MOV direct, A MOV direct, Rn MOV direct, direct MOV direct, @Ri MOV direct, #data S byte 1 2 1 2 1 2 2 2 2 3 2 3 Schuk 1 1 1 1 1 2 1 1 2 2 2 2 M lnh 11101rrr 11100101 aaaaaaaa 1110111i 01110100 dddddddd 11111rrr 10101rrr aaaaaaaa 01111rrr dddddddd 11110101 aaaaaaaa 10001rrr aaaaaaaa 10000101 aaaaaaaa aaaaaaaa 1000011i aaaaaaaa 01110101 aaaaaaaa dddddddd
61
Hot ng (A)<-(Rn) (A)<-(direct) (A)<-((Ri)) (A)<-#data (Rn)<-(A)) (Rn)<-(direct) (Rn)<-#data (direct)<-(A) (direct)<-(Rn) (direct)<-(direct) (direct)<-((Ri)) (direct)<-#data
I HC SPKT HNG YN
MOV @Ri, A 1 1 1111011i ((Ri))<-(A) MOV @Ri, direct 2 2 1010011i ((Ri))<-(direct) MOV @Ri, #data 2 1 0111011i dddddddd ((Ri))<-#data V d 1: Chuyn ni dung ca R1 vo RAM trong ti a ch 30h. - Cch 1: nh a ch kiu thanh ghi v trc tip MOV 30h, R1 ; (30h) = (R1) - Cch 2: nh a ch kiu trc tip MOV 30h, 01h ; (30h) = (01h) - Cch 3: nh a ch kiu gin tip MOV R0, #30h ; (R0) = 30h MOV @R0, 01h ; ((R0)) = (01h) V d 2: Chuyn ni dung 35h vo RAM trong ti a ch 20h. - Cch 1: nh a ch kiu d liu tc thi v trc tip MOV 20h, #35h ; (20h) = 35 - Cch 2: nh a ch kiu d liu tc thi v gin tip MOV R1,#20h ; (R1) = 20h MOV @R1,#35h ; ((R1)) = 35h
V d: Thit lp c nh bng lnh MOV MOV A, #80h ; (A) = 80h MOV C, Acc.7 ; (C) =(Acc.7) = 1
I HC SPKT HNG YN
S byte Schu M lnh Hot ng k MOV DPTR,#data16 3 2 10010000 dddddddd (C)<-(bit) V d: Tr DPTR ti vng d liu c a ch bt u l 1020h ` - Cch 1: MOV DPTR,#1020h ; (DPTR) = 1020h - Cch 2: MOV DPH,#10h ; (DPH) = 10h MOV DPL, #20h ; (DPL) = 20h
Cu lnh
V d: Chuyn ni dung ti a ch 1234h trong b nh chng trnh ra cng P1 MOV A, #0 ; (A) = 0 MOV DPTR, #1234h ; (DPTR) = 1234h MOVC A, @A+DPTR ; (A) = ((DPTR)) MOV P1, A ; (P1) = (A)
I HC SPKT HNG YN
thc tng i nh. Vi cc dy RAM c kch thc ln hn mt cht, mt vi chn ca cng bt k no c th c s dng to ra cc bit a ch cao. Cc chn ny nn c iu khin bi 1 lnh xut t trc lnh MOVX. Nu d liu c chuyn l 16 bit, th DPTR to ra a ch 16 bit. P2 xut ra 8 bit a ch cao (ni dung ca DPH), cn P0 xut ra 8 bit a ch thp a hp vi d liu.Thanh ghi chc nng c bit P2 duy tr ni dung trc trong khi cc b m xut ca P2 ang pht cc ni dung ca DPH. Dng ny nhanh hn v hiu qu hn khi truy xut nhiu dy d liu rt ln (ln n 64 Kb) do ta khng cn thm lnh thit lp cc cng khc. S S chu M lnh Hot ng Cu lnh byte k MOVX A, @Ri 1 2 11100011 (A)<-((Ri)) MOVX @Ri, A 1 2 11110011 ((Ri))<(A) MOVX A, @DPTR 1 2 11100000 (A)<-((DPTR)) MOVX @DPTR, A 1 2 11110000 ((DPTR))<-(A) V d: Chuyn ni dung 34h vo a ch 1234h RAM ngoi MOV A, #34h ; (A) = 34h MOV DPTR, #1234h ; (DPTR) = 1234h MOVX @DPTR, A ; ((DPTR)) = (A)
V d: Ghi gi tr 55h vo a ch 35h ca ngn xp MOV SP,#34h ; (SP) = 34h MOV A, #55h ; (A) = 55h PUSH 0E0h ; (SP) = (SP) + 1 = 35h
64
I HC SPKT HNG YN
; ((SP)) = (A) Ta thy rng, khi lnh PUSH c thc hin th gi tr m SP ang tr s t ng tng ln 1 n v.
V d: Chuyn ni dung ti nh ngn xp (c a ch 20h) ra A MOV SP,#20h ; (SP) = 20h POP 0E0h ; (A) = ((SP)) ; (SP) = (SP) -1= 1Fh Sau khi thc hin lnh POP th gi tr ca SP s gim i 1 n v.
I HC SPKT HNG YN
Sau khi thc hin lnh XCH th ni dung ca A trc y s nm trong thanh ghi R1 cn ni dung ca R1 s c chuyn vo A.
V d: Hon chuyn 4 bit thp ca A vi 4 bit thp ca R5 MOV 30h, R5 ; (30h) = (R5) MOV R0, #30h ; (R0) = 30h XCHD A, @R0 ; (A3-A0)<-->((R0.3-R0.0))
3.2. Nhm lnh tnh ton s hc. 3.2.1. Lnh thc hin php cng.
C php ca cu lnh: ADD A, <scr-byte> Chc nng: Cng gi tr 1 byte a ch c ch ra cu lnh vi ni dung trong thanh ghi tch lu, kt qu c lu vo thanh ghi tch lu. Nu c nh t bit s 7 hoc bit s 3 th c nh hoc c nh ph c thit lp, ngc li cc c nu trn c xo. Khi cng 2 s nguyn khng du m b trn th c nh cng c thit lp cho ta bit php ton b trn. Trng hp thc hin lnh ADD m c nh t bit s 6 nhng khng c nh t bit s 7, hoc c nh t bit s 7 nhng khng c nh t bit s 6 th c trn s c thit lp, ngc li th OV b xo. Khi cng 2 s nguyn c du m tng l 1 s m th OV c thit lp. Cu lnh ADD ADD ADD ADD A, Rn A, direct A, @Ri A, #data S byte 1 2 1 2 S chu k 1 1 1 1 M lnh 00101rrr 00100101 aaaaaaaa 0010011i 00100100 dddddddd
66
Hot ng (A)<- (A) + (Rn) (A)<- (A) + (direct) (A)<- (A) + ((Ri)) (A)<- (A) + #data
I HC SPKT HNG YN
V d: Thc hin php tnh F = 25h + 34h MOV A, #25h ; (A) = 25h ADD A, #34h ; (A) = (A) + 34h = 59h ; (PSW) = 00h
V d: Thc hin php tnh F = 25h + 34h + (C) MOV A, #25h ; (A) = 25h SETB C ; (C) = 1 ADDC A, #34h ; (A) = (A) + 34h + (C) = 5Ah ; (PSW) = 00h
I HC SPKT HNG YN
7(khng phi cho bit 6), hoc cho bit 6 (khng phi cho bit 7) th c trn s c thit lp, ngc li th OV b xo. Khi tr cc s nguyn c du m kt qu l 1 s m th OV c thit lp. Cu lnh SUBB A, Rn SUBB A, direct SUBB A, @Ri SUBB A, #data S byte 1 2 1 2 S chu k 1 1 1 1 M lnh 10011rrr 10010101 aaaaaaaa 1001011i 10010100 dddddddd Hot ng (A)<- (A) - (C) - (Rn) (A)<- (A) - (C) - (direct) (A)<- (A) - (C) - ((Ri)) (A)<- (A) - (C) - #data
V d: Thc hin php tnh F = 95h - 34h MOV A, #95h ; (A) = 95h SUBB A, #34h ; (A) = (A) - (C) - 34h = 61h ; (PSW) = 05h
I HC SPKT HNG YN
INC
Gim ni dung ti a ch 7Eh ca RAM ni i 2 n v DEC DEC 7Eh 7Eh ; (7Eh) = (7Eh) -1 ; (0FEh) = (7Eh) -1
V d: Tng ni dung ca DPTR ln 2 n v INC DPTR ; (DPTR) = (DPTR) +1 INC DPTR ; (DPTR) = (DPTR) +1
69
I HC SPKT HNG YN
V d: Thc hin php tnh F = 80h x 90h MOV A, #80h ; (A) = 80h = 128 MOV B,#90h ; (B) = 90h = 144 MUL AB ; (A) = 00h v (B) = 48h ; F = 4800h = 18432 ; (PSW) = 04h
V d: Thc hin php tnh F = 65 : 15 MOV A, #65 ; (A) = 65 = 41h MOV B,#15 ; (B) = 15 = 0Fh DIV AB ; (A) = 04h v (B) = 05h ; F = 4 d 5 ; (PSW) = 01h
70
I HC SPKT HNG YN
3.3. Nhm lnh tnh ton logic. 3.3.1. Lnh AND cho cc bin 1 byte.
C php cu lnh: ANL <dest-byte>, <src-byte> Chc nng: Thc hin php ton logic AND theo mc bit gia cc bin di 1 byte cho, kt qu c lu vo ton hng ch. Ton hng ngun cho php 6 ch a ch ho. Khi ton hng ch l thanh ghi tch lu th ton hng ngun c th l thanh ghi, trc tip, thanh ghi-gin tip hoc tc thi. Khi ton hng ch l a ch trc tip th ton hng ngun c th l thanh ghi tch lu hoc d liu tc thi. Lnh ny khng lm nh hng ti trng thi cc c.
71
I HC SPKT HNG YN
Gio trnh: K thut Vi iu Khin M lnh 01011rrr 01010101 aaaaaaaa 0101011i 01010100 dddddddd 01010010 aaaaaaaa 01010011 aaaaaaaa dddddddd Hot ng (A)<-(A) AND (Rn) (A)<-(A) AND (dir.) (A)<- (A) AND ((Ri)) (A)<- (A) AND #data (dir.)<-(dir.)AND (A) (dir.)<(dir.)AND#data
V d: Thc hin php AND logic gia 2 Byte 54h v 67h MOV A, #54h ; (A) = 54h ANL A, #67h ; (A) = 54h AND 67h = 44h
V d: Thc hin cng AND Logic vi 2 u vo (P1.0 v P1.1) v 1 u ra (P1.2) MOV ANL MOV C, P1.0 C, P1.1 P1.2, C ; (C) = (P1.0) ; (C) = (P1.0) AND (P1.1) ; (P1.2) = (C)
72
I HC SPKT HNG YN
V d: Thc hin php OR logic gia 2 Byte 55h v 0A5h MOV A, #55h ; (A) = 55h ORL A, #0A5h ; (A) = 55h OR 0A5h = 0F5h
I HC SPKT HNG YN
V d: Thc hin cng OR Logic vi 2 u vo (P1.0 v P1.1) v 1 u ra (P1.2) MOV C, P1.0 ; (C) = (P1.0) ORL C, P1.1 ; (C) = (P1.0) OR (P1.1) MOV P1.2, C ; (P1.2) = (C)
I HC SPKT HNG YN
00110011 (An+1) <- (An), vi n = 06 (A0) <- (C) (C) <- (A7)
V d: MOV MOV RLC A, #11111110b C, ACC.0 A ; (A) = 11111110b ; (C) = 0 ; (A) = 11111100b ; (C) = 1
75
I HC SPKT HNG YN
00010011 (An) <- (An+1), vi n = 06 (A7) <- (C) (C) <- (A0)
V d: MOV MOV RRC A, #01111111b C, ACC.7 A ; (A) = 01111111b ; (C) = 0 ; (A) = 00111111b ; (C) = 1
V d: Tro i ni dung 2 na thp v cao ca Byte 56h MOV A, #56h ; (A) = 56h = 01010110b SWAP A ; (A) = 65h = 01100101b
addr11
I HC SPKT HNG YN
Chc nng: Gi khng iu kin mt chng trnh con t ti a ch c ch ra trong cu lnh. Lnh ny tng b m chng trnh thm 2 n v PC cha a ch ca lnh k lnh ACALL, sau ct ni dung 16 bit ca PC vo ngn xp (byte thp ct trc) v tng con tr ngn xp ln 2 n v. a ch ch s c hnh thnh bng cch ghp 5 bit cao ca thanh ghi PC (sau khi c tng), 3 bit cao ca byte m lnh v byte th 2 ca lnh. Do chng trnh con c gi phi nm trong on 2 Kbyte ca b nh chng trnh ch it phi cha lnh u tin ca chng trnh con ny. Lnh khng lm nh hng ti cc c. Cu lnh S byte S chu k M lnh Hot ng (PC) <- (PC) + 2 (SP) <- (SP) + 1 ((SP)) <- (PC7-PC0) (SP) <- (SP) + 1 ((SP)) <- (PC15-PC8) (PC10-PC0) <- (page address)
ACALL addr11
aaa10001 aaaaaaaa
V d:
.Ch M lnh 0000 0000 0003 0005 Chng trnh $INCLUDE(REG51.INC) ORG 0000H MOV SP,#07H MOV R1,#01H ACALL GIAM_R1 ; (PC) = (PC) +2 = 0007h ; (SP) = (SP) + 1 = 08h ; (08h) = (PCL) = 07h ; (SP) = (SP) + 1 = 09h ; (09h) = (PCH) = 00h ; (PC) = 0030h STOP: JMP STOP
80FE 19 22
; Nhy ti ch
ORG 0030H GIAM_R1: DEC R1 ; Gim R1 i 1 n v RET ; Quay tr li ch.trnh chnh ; (PCH) = ((SP)) = (09h) = 00h ; (SP) = (SP) - 1 = 08h ; (PCL) = ((SP)) = (08h) = 07h ; (SP) = (SP) - 1 = 07h END
addr16
I HC SPKT HNG YN
Chc nng: Gi mt chng trnh con t ti a ch c ch ra trong cu lnh. Lnh ny tng b m chng trnh thm 3 n v PC cha a ch ca lnh k lnh LCALL, sau ct ni dung 16 bit ca PC vo ngn xp (byte thp ct trc) v tng con tr ngn xp ln 2 n v. Tip theo n s chuyn byte th 2 v byte th 3 trong cu lnh LCALL vo byte cao v byte thp ca PC. Vic thc thi chng trnh tip tc vi lnh a ch ny. Nh vy chng trnh con c th bt u bng bt c ni no trong khng gian b nh chng trnh 64 Kbyte. Lnh khng lm nh hng ti cc c. Cu lnh LCALL addr16
S byte S chu k
Hot ng (PC) <- (PC) + 3 00010010 aaaaaaaa (SP) <- (SP) + 1 aaaaaaaa ((SP)) <- (PC7-PC0) (SP) <- (SP) + 1 ((SP)) <- (PC15PC8) (PC) <- addr15addr0
M lnh
V d:
.Ch M lnh 0000 0000 0003 0005 Chng trnh $INCLUDE(REG51.INC) ORG 0000H MOV SP,#07H MOV R1,#01H LCALL GIAM_R1 ; (PC) = (PC) +3 = 0008h ; (SP) = (SP) + 1 = 08h ; (08h) = (PCL) = 08h ; (SP) = (SP) + 1 = 09h ; (09h) = (PCH) = 00h ; (PC) = 1130h STOP: JMP STOP
80FE 19 22
ORG 1130H GIAM_R1: DEC R1 ; Gim R1 i 1 n v RET ; Quay tr li ch.trnh chnh ; (PCH) = ((SP)) = (09h) = 00h ; (SP) = (SP) - 1 = 08h ; (PCL) = ((SP)) = (08h) = 08h ; (SP) = (SP) - 1 = 07h END ; Kt thc chng trnh 78
I HC SPKT HNG YN
I HC SPKT HNG YN
lnh k tip. Vic cng 16 bit c thc hin: S nh t 8 bit thp c truyn n tt c cc bit cao. C 2, thanh ghi A v DPTR u khng b thay i. Lnh ny khng nh hng ti trng thi cc c. S S chu byte k JMP @A+DPTR 1 2 Cu lnh M lnh 01110011 Hot ng (PC)<-(A)+(DPTR)
1000h: 1002h:
V d: Thay i ni dung ca cng P1 theo trng thi ca bit P0.0, nh sau: - Nu P0.0 = 0 th P1 = 00h - Nu P0.0 = 1 th P1 = 0FFh ORG 0000h
80
I HC SPKT HNG YN
Gio trnh: K thut Vi iu Khin P0.0, nhan1 P1,#00h lap P1,#0FFh lap
Lap:
Nhan1:
V d: Thay i ni dung ca cng P1 theo trng thi ca bit P0.0, nh sau: - Nu P0.0 = 0 th P1 = 00h - Nu P0.0 = 1 th P1 = 0FFh ORG JNB MOV JMP MOV JMP END 0000h P0.0, nhan1 P1,#0FFh lap P1,#00h lap
Lap:
Nhan1:
81
I HC SPKT HNG YN
Chc nng: Nu bit cho c gi tr bng 1 th n nhy ti a ch xc nh trong cu lnh v xo bit ny, ngc li n s tip tc thc hin lnh tip theo. a ch ch c tnh bng cch cng thm lch c du (tng i) trong byte th 3 ca lnh vi ni dung trong PC (sau khi c tng n a ch ca byte u tin ca lnh k tip). Lnh khng nh hng ti cc c. Cu lnh JBC bit, rel M lnh S S chu Hot ng byte k 3 2 00010000 bbbbbbbbb (PC)<-(PC)+3 eeeeeeee Nu (bit)=1 th: (bit)<- 0 (PC)<- (PC) + rel ORG MOV JBC MOV JMP MOV JMP END 0000h A,#10101010b ACC.1, nhan1 P1,#02h $ P1,#01h $
V d: ; (A) = 0AAh ; So snh v nhy ; (P1) = 02h ; Nhy ti ch ; (P1) = 01h ; Nhy ti ch ; Kt thc chng trnh
Nhan1:
Do (ACC.1) = 1 nn (P1) = 01h v (A) = 10101000b 3.4.9. Lnh nhy nu c nh c thit lp.
C php cu lnh: JC rel Chc nng: Nu c CF c gi tr bng 1 th n nhy ti a ch xc nh trong cu lnh, ngc li th lnh ny c b qua v n s tip tc thc hin lnh k tip. a ch ch c tnh bng cch cng thm lch c du (tng i) trong byte th 2 ca lnh vi ni dung trong PC (sau khi c tng bi 2). Lnh khng nh hng ti cc c. Cu lnh JC rel S S chu byte k 2 2 M lnh 01000000 eeeeeeee Hot ng (PC)<-(PC)+2 Nu (C)=1 th: (PC)<- (PC) + rel
82
I HC SPKT HNG YN
V d: tng t nh lnh JNB bit,rel. Tuy nhin lnh ny ch dng so snh vi gi tr ca c nh.
83
I HC SPKT HNG YN
V d: ORG MOV MOV JZ DEC JMP INC JMP END 0000h A, #0 R1,#5 nhan1 R1 $ R1 $ ; Bt u chng trnh ti /c 0000h ; (A) = 00h ; (R1) = 5 ; Nhy ti nhan1 nu (A) = 0 ; Gim R1 i 1 n v ; Nhy ti ch ; Tng ni dung R1 ln 1 n v ; Nhy ti ch ; Kt thc chng trnh
Nhan1:
Nhan1:
Kt qu: Do (A) khc 0 nn (R1) = 4. 3.4.13. Lnh nhy khi so snh 2 ton hng.
C php cu lnh: CJNE
84
I HC SPKT HNG YN
Chc nng: So snh gi tr ca 2 ton hng u tin, nu 2 ton hng khng bng nhau th chng trnh c r nhnh. a ch ch r nhnh c tnh bng cch cng lch tng i (c du) trong byte sau cng ca lnh vi ni dung ca PC (sau khi ni dung ca PC c tng n a ch bt u ca lnh k tip CJNZ). C nh (CF) s c thit lp nu nh gi tr nguyn khng du ca ton hng ch nh hn gi tr nguyn khng du ca ton hng ngun, ngc li th c ny b xo. Lnh ny khng lm thay i gi tr ca cc ton hng Cu lnh CJNE A, direct, rel S S M lnh Hot ng byte chu k 3 2 10110101 (PC)<-(PC)+3 aaaaaaaa Nu (A) < > (dir.) th: eeeeeeee (PC)<- (PC) + offset Nu (A) < (dir.) th: (C) <- 1, ngc li: (C) <- 0 3 2 10110100 (PC)<-(PC)+3 dddddddd Nu (A) < > #data th: (PC)<- (PC) + offset eeeeeeee Nu (A) < #data th: (C) <- 1, ngc li: (C) <- 0 3 2 10111rrr (PC)<-(PC)+3 dddddddd Nu (Rn)< >#data th: eeeeeeee (PC)<- (PC) + offset Nu (Rn) < #data th: (C) <- 1, ngc li: (C) <- 0 3 2 1011011i (PC)<-(PC)+3 dddddddd Nu ((Ri))< >#data th: (PC)<- (PC) + offset eeeeeeee Nu ((Ri)) < #data th: (C) <- 1, ngc li: (C) <- 0
I HC SPKT HNG YN
Gio trnh: K thut Vi iu Khin A,#01h A R1 R1,#7,lap ; t gi tr ban u cho A ; Dch tri A ; Tng bin m ln 1 n v ; Kim tra s ln dch tri A ; Kt thc chng trnh
(PC)<-(PC)+2 (Rn)<- (Rn) - 1 Nu (Rn) < > 0 th: (PC) <- (PC) + rel 11010101 (PC)<-(PC)+2 aaaaaaaa (dir.)<- (dir.) - 1 eeeeeeee Nu (dir.) < > 0 th: (PC) <- (PC) + rel
V d: Dch tri thanh ghi A 7 ln. MOV R1,#7 MOV A,#01h Lap: RL A DJNZ R1,lap END
; t gi tr ban u cho bin m ; t gi tr ban u cho A ; Dch tri A ; Kim tra s ln dch tri A ; Kt thc chng trnh
I HC SPKT HNG YN
Cu lnh NOP
Hot ng (PC)<-(PC)+2
V d: To ra mt xung c mc thp ti bit P1.0 chnh xc 4 chu k my. CLR P1.0 ; (P1.0) = 0 NOP ; tm ngng hot ng NOP NOP SETB P1.0 ; (P1.0) = 1
I HC SPKT HNG YN
Gio trnh: K thut Vi iu Khin M lnh 11010011 11010010 bbbbbbbb Hot ng (C) <- 1 (bit) <- 1
S S chu byte k 1 1 2 1
V d: Xem v d mc 3.4.15
V d: To ra 4 xung xut hin bit 7 ca cng P1. Mi mt xung chim 3 chu k my. MOV R1, #8 Lap: CPL P1.7 DJNZ R1, lap
A,#01010101b A
88
I HC SPKT HNG YN
Lap:
; Xc nh a ch ban u ca vng nh ; Chuyn d liu vo tng a ch trong vng nh ; Tng i ch ; Kim tra iu kin ; Kt thc chng trnh
Kt qu:
Bi tp 1: Thc hin V d 1 bng phng php khc. (s dng cu lnh DEC Byte ). Bi tp 2: Vit chng trnh chuyn ni dung ca vng nh c a ch t 10h n 30h vo vng nh c a ch t 40h n 60h ca RAM ni tr. 4.1.2. Truy cp d liu vi RAM ngoi tr V d 2: Chuyn gi tr 32h vo vng nh c a ch t 1000h n 1020h ca RAM ngoi tr.
ORG 0000H MOV A,#32h MOV DPTR,#1000h MOVX @DPTR,A INC DPL MOV R1,DPL CJNE R1,#21h,Lap END 89
Lap:
Kt qu:
I HC SPKT HNG YN
Bi tp 3: Vit chng trnh chuyn ni dung ca vng nh c a ch t 1000h n 1020h vo vng nh c a ch t 1040h n 1060h ca RAM ngoi tr. C bao nhiu phng php thc hin nhim v ny? Bi tp 4: Vit chng trnh chuyn ni dung ti a ch 1010h ca RAM ngoi tr vo vng nh c a ch t 20h n 60h ca RAM ni tr. Bi tp 5: Vit chng trnh chuyn ni dung ca vng nh c a ch t 20h n 50h ca RAM ni tr vo vng nh c a ch bt u l 1000h ca RAM ngoi tr. (Lu : c th thc hin bng nhiu phng php khc nhau)
4.2. Hm ch.
V d 3a: Vit hm ch 1 ms Cho_1ms: Lap: mov r2,#249 nop nop djnz r2, lap ret ; 2s ; 1s ; 1s ; 2s ; 249*(1s +1s +2s) = 996 s ; 2s ; Tng thi gian l: (2+996+2) s = 1ms
Bi tp 6: Hy xc nh thi gian ch ca chng trnh sau. wait: mov r2,#10 w3: w2: w1: mov mov djnz djnz djnz ret r1,#200 r0,#248 r0,w1 r1,w2 r2,w3
I HC SPKT HNG YN
wait: mov mov lap: clr mov mov setb jnb djnz ret
r1,#20 TMOD,#01h TF0 TL0, #0B0h TH0, #03Ch TR0 TF0,$ r1,lap
; Chn Timer 0, ch 1 ; Xa c ngt Timer 0 ; t gi tr ban u cho TL0 ; t gi tr ban u cho TH0 ; Khi ng Timer 0 ; Kim tra c trn Timer 0 ; m ri th thot
Bi tp 7: Hy vit li chng trnh trn c thi gian ch chnh xc 1 s. V d 5: Vit chng trnh to sng vung c tn s 1 KHz ti chn P1.7 ;65535(0FFFFh) 500 (01F4h) = 65035 (0FE0Bh) ; Chn Timer 1, ch 1 mov TMOD,#10h Lap: mov TH1,#0FEh ; TH1 cha gi tr 0FEh mov TL1,#0Bh ; TL1 cha gi tr 0Bh ; B Timer 1 hot ng setb TR1 Cho: jnb TF1,cho ; Ch trn clr TR1 ; B Timer 1 ngng hot ng clr TF1 ; Xo c trn cpl P1.7 ; i trng thi bit P1.7 sjmp Lap ; Lp li Bi tp 8: Hy vit chng trnh to sng vung c tn s 10 KHz ti chn P1.0.
I HC SPKT HNG YN
R0,#0 $
R0 R0,#255,tiep EX1
; Tng bin m s lng sn phm ; So snh bin m vi gi tr ti a ; Ngt ngng hot ng ; Thot khi chng trnh con phc v ngt
Bi tp 9: Vit chng trnh m sn phm vi s lng ti a l 250, s dng ngt ngoi 0. Hin th kt qu trn 3 LED 7 thanh. Trong : - LED 7 l loi chung Ant - 3 LED 7 thanh c kt ni vi cc cng P0, P1, P2. 4.4.2. Lp trnh vi cc ngt Timer V d 7: To tn hiu di dng xung vung c tn s 10 KHz ti chn P1.0 ca b VK. S dng ngt Timer 0. org ljmp org ljmp main: mov mov mov setb mov jmp Timer0: cpl reti TMOD,#02h TL0,#-50 TH0,#-50 TR0 IE,#82h $ P1.0
; La chn Timer 0 , ch 2. ; Xc nh gi tr ban u cho TL0. ; Xc nh gi tr ban u cho TH0. ; Khi to Timer 0. ; Khi to ngt Timer 0.
; Chng trnh con phc v ngt Timer 0. ; o trng thi to xung. ; Thot khi chng trnh con phc v ngt.
92
I HC SPKT HNG YN
Bi tp 10: To tn hiu di dng xung vung c tn s 5 KHz ti chn P1.0 ca b VK. S dng ngt Timer 1.
93
I HC SPKT HNG YN
ADD ADDC SUBB INC INC INC DEC DEC MUL DIV DA
Trc tip A = A + <byte> x A = A + <byte> + C x A = A - <byte> x A=A+1 Ch <byte> = <byte>+1 x DPTR = DPTR + 1 Ch A=A-1 Ch <byte> = <byte>+1 x BA = A*B Ch A=Int(A/B); Ch B=Mode(A/B) Hiu chnh s thp Ch phn
MOV A,<scr> MOV <dest>,A MOV <dest>,<scr> MOV <DPTR>, #data16 PUSH <scr> POP XCH <dest> a,<byte>
XCHD A,@Ri
DPTR = h/s tc thi 16 bit INC SP; x Mov @SP, <scr> Mov <dest>,@SP x ;DEC SP i d liu gia x A&byte i na bit thp gia A&@Ri
94
I HC SPKT HNG YN
95
I HC SPKT HNG YN
Bng 4. Cc lnh i s:
Cu lnh ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit MOV C,bit MOV bit,C CLR C CLR bit SETB C SETB bit CPL C CPL bit JC rel JNC rel JB bit,rel JNB bit,rel JBC bit,rel Chc nng C = C AND bit C = C AND NOT bit C = C ORL bit C = C ORL NOT bit C = bit Bit = C C=0 Bit = 0 C=1 Bit = 1 C = NOT C Bit = NOT bit Nhy nu C = 1 Nhy nu C = 0 Nhy nu bit = 1 Nhy nu bit = 0 Nhy nu bit=1, sau xo bit Thi gian Thc hin(us) 2 2 2 2 1 2 1 1 1 1 1 1 2 2 2 2 2
96
I HC SPKT HNG YN
x x
Ch vi A Ch vi A x x x x
97
I HC SPKT HNG YN
Ph lc B : cc h thng s
1. Bng chuyn i h thp phn / nh phn. H thp H thp H nh phn phn phn 0 00000000 32 1 00000001 33 2 00000010 . 3 00000011 . 4 00000100 . 5 00000101 . 6 00000110 . 7 00000111 . 8 00001000 . 9 00001001 63 10 00001010 64 11 00001011 65 12 00001100 . 13 00001101 . 14 00001110 . 15 00001111 . 16 00010000 . 17 00010001 . . . . 127 . 128 . 129 . . . . . . . . . . . . . . . . . 254 31 00011111 255
98
11111110 11111111
I HC SPKT HNG YN
2. bng M thp lc phn: H thp phn 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3. H thng s c du: H nh phn 0111 1111 0111 1110 0111 1101 . . . 0001 0000 0000 1111 . . . . H thp lc phn 7F 7E 7D . . . 10 0F . . . .
99
H nh phn 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
H thp lc phn 0 1 2 3 4 5 6 7 8 9 A B C D E F
I HC SPKT HNG YN
0000 0010 0000 0001 0000 0000 1111 1111 1111 1110 1111 1101 . . . 1001 0000 1000 1111 . . . . . 1000 0010 1000 0001 1000 0000
1. 2. 3. 4. 5. 6. 7. 8.
The 8051 Microcontroller - I. Scott Mackenzie. The MCS*51 Microcontroller Family Users Manuel - INTEL - 1994. The AT89 Family of Microcontrollers - ATMEL - 2003. Microcomputer Components SAB80C515 8 bit Single-chip Microcontroller Family - SIEMENS - 1995. Mikrocomputertechnik Prof.Dr.Ing. G.Schnell Fachhochschule Frankfurt am Main - 2001. K thut Vi x l - Vn Th Minh - NXB GD - 1997. K thut VXL & lp trnh ASSEMBLY cho h VXL - Xun Tin NXB KH&KT - 2001. H VK 8051 - Tng Vn On & Hong c Hi - NXB LXH - 2001
100