Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
701,72 KB
Nội dung
2013 LP TRèNH VI IU KHIN Phm Ngc Hng - V Huy Th - Lờ Trung Hiu TRNG I HC SPKT HNG YấN KHOA CễNG NGH THễNG TIN B mụn K thut mỏy tớnh LP TRèNH VI IU KHIN MC LC MC LC DANH MC HèNH V DANH MC CC BNG Chng GII THIU TNG QUT Bi KIN TRC H VI X Lí 1.1 S tng quỏt v chc nng h vi x lý 1.2 B x lý trung tõm (CPU-Central Processing Unit) 1.2.1 nh ngha 1.2.2 Cu to 1.2.3 Quỏ trỡnh tỡm np lnh v thc thi lnh ca CPU 1.3 B nh ch c (Read Only Memory - ROM) 10 1.3.1 ROM c bn 10 1.3.2 PROM (Programmable ROM - ROM cú kh nng lp trỡnh c) 11 1.3.3 EPROM (Eraseable PROM-ROM np/xoỏ c nhiu ln) 11 1.3.4 EEPROM (Electrical EPROM-ROM cú kh nng lp trỡnh v xoỏ c bng in) 11 1.4 B nh truy cp ngu nhiờn (Random Acess Memory - RAM) 11 Bi 12 KIN TRC H VI X Lí (TIP) 12 2.1 Cỏc thit b xut/nhp (I/O) 12 2.2 Cu trỳc kờnh chung ca h VXL 12 2.3 Cỏc h thng s 13 2.3.1 2.3.2 2.3.3 H thng s nh phõn 14 H thng s bỏt phõn 14 H thng thp lc phõn 14 2.3.4 Quy i gia cỏc h thng s 14 Chng 16 B VI IU KHIN AT89C51 16 BI 16 CU TRC CHUNG CA B VI IU KHIN AT89C51 16 3.1 Gii thiu chung v cỏc b vi iu khin 16 3.2 S khỏc gia b VXL v b VK 16 3.2.1 Cu trỳc chung ca b Vi iu khin 80C51 17 3.2.2 S chõn tớn hiu 19 BI 22 CC THANH GHI CHC NNG C BIT V CNG VO RA CA AT89C51 22 4.1 Cỏc ghi chc nng c bit 22 4.1.1 Thanh ghi ACC 23 4.1.2 Thanh ghi B 23 LP TRèNH VI IU KHIN 4.1.3 Thanh ghi SP 23 4.1.4 Thanh ghi DPTR 23 4.1.5 Thanh ghi SBUF 23 4.1.6 Cỏc Thanh ghi Timer 24 4.1.7 Cỏc ghi iu khin 24 4.1.8 Thanh ghi PSW 24 4.1.9 Thanh ghi PCON 25 4.1.10 Thanh ghi IE 25 4.1.11 Thanh ghi IP 26 4.1.12 Thanh ghi TCON 26 4.1.13 Thanh ghi TMOD 27 4.1.14 Thanh ghi SCON 28 4.2 Cỏc cng v/ ca 80C51 28 BI 30 KHI TO THI GIAN V B M CA AT89C51 30 5.1 Khỏi quỏt chung v timer/couter 30 5.2 Cỏc ch hot ng ca b timer/counter 30 5.2.1 Ch 30 5.2.2 Ch 31 5.2.3 Ch 31 5.2.4 Ch 32 BI 33 T CHC KHễNG GIAN NGH CA AT89C51 33 6.1 S 33 6.2 B nh chng trỡnh v b nh d liu ni trỳ 34 6.2.1 B nh chng trỡnh ni trỳ 34 6.2.2 B nh d liu ni trỳ 35 6.3 B nh chng trỡnh v b nh d liu ngoi trỳ 38 6.3.1 B nh chng trỡnh ngoi trỳ 38 6.3.2 B nh d liu ngoi trỳ 39 Bi 43 C CH NGT V TRUYN THễNG NI TIP CA 80C51 43 7.1 C ch ngt On-chip AT89C51 43 7.1.1 7.1.2 Phõn loi ngt On-chip 43 Cỏc bc thc hin ngt 44 7.1.3 Mc ngt u tiờn on-chip 44 7.1.4 Nguyờn lý iu khin ngt ca AT89C51 45 7.1.5 Cỏc ngt ngoi 46 7.1.6 Vn hnh Single-Step 47 7.2 Nguyờn lý truyn tin ni tip ca AT89C51 47 7.2.1 Phng thc truyn tin ni tip(Serial Interface) 47 7.2.2 7.2.3 Liờn lc a x lý (Multiprocessor Communications) 48 Cỏc tc Baud 49 7.2.4 S dng Timer to cỏc tc Baud : 49 LP TRèNH VI IU KHIN 7.2.5 Nguyờn lý ng ca On-chip AT89C51 50 7.2.6 Mch dao ng 53 Bi 54 THO LUN V B VI IU KHIN 80C51 54 Chng 55 TP LNH CA H VK AT89/80C51 55 Bi 55 NHểM LNH DI CHUYN D LIU 55 9.1 Tng quỏt 55 9.2 Lnh MOV dng Byte 56 9.3 Lnh MOV dng Bit 57 9.4 9.5 Lnh MOV dng Word 57 Lnh chuyn byte mó lnh 58 9.6 Lnh chuyn d liu ngoi 58 9.7 Lnh chuyn s liu vo ngn xp 59 9.8 9.9 Lnh chuyn s liu ngn xp 59 Hoỏn chuyn d liu 60 9.10 Hoỏn chuyn bit thp 60 Bi 10: 61 THC HNH TP LNH H VI IU KHIN 80C51 61 Bi 11: 62 NHểM LNH TNH TON S HC 62 11.1 Lnh thc hin phộp cng 62 11.2 Lnh cng cú nh 62 11.3 Lnh tr cú mn 63 11.4 Lnh tng lờn n v 63 11.5 Lnh gim n v 64 11.6 Lnh tng tr d liu 64 11.7 Lnh thc hin phộp nhõn 64 11.8 Lnh thc hin phộp chia 65 11.9 Hiu chnh s thp phõn 65 Bi 12: 66 THC HNH TP LNH VI IU KHIN 80C51 (tip) Bi 13: 66 Bi 13: 67 THI GIA HC PHN 67 (theo lch thi chung)Bi 14: 67 Bi 14: 68 BI TP: NHểM LNH DI CHUYN D LIUBi 15: 68 Bi 15: 69 THC HNH: IU KHIN TIMER/COUNTERBi 16: 69 Bi 16: 70 NHểM LNH TNH TON LOGIC 70 16.1 Nhúm lnh tớnh toỏn bin logic 70 16.1.1 Lnh AND cho cỏc bin byte 70 LP TRèNH VI IU KHIN 16.1.2 Lnh AND cho cỏc bin bit 70 16.1.3 16.2 Lnh OR cho cỏc bin byte 71 Nhúm lnh iu khin bin logic 74 16.2.1 Lnh xúa bit 74 16.2.2 Lnh xúa ghi tớch lu 74 Bi 17: 76 THC HNH: IU KHIN CNG VO RA 76 Bi 18: 77 BI TP: NHểM LNH VI BIN LOGIC 77 Bi 19: 78 THC HNH: IU KHIN LED N 78 Bi 20: 79 NHểM LNH R NHNH CHNG TRèNH 79 20.1 Lnh gi tuyt i 79 20.2 Lnh gi di 79 20.3 20.4 Lnh quay tr li t chng trỡnh 80 Lnh quay tr li t ngt 80 20.5 Lnh nhy giỏn tip 81 20.6 Lnh nhy nu bit c thit lp 81 20.7 Lnh nhy nu bit khụng c thit lp 81 20.8 Lnh nhy nu bit c thit lp v xúa bit ú 82 Bi 21: 83 THC HNH: THC HNH IU KHIN LED THANH 83 Bi 22: 84 NHểM LNH R NHNH CHNG TRèNH (TIP) 84 22.1 Lnh nhy nu c nh c thit lp 84 22.2 22.3 Lnh nhy nu c nh khụng c thit lp 84 Lnh nhy nu ghi A bng 84 22.4 Lnh nhy nu ghi A khỏc 85 22.5 22.6 22.7 Lnh nhy so sỏnh toỏn hng 85 Lnh gim v nhy 86 Lnh tm ngng hot ng 87 Bi 24: 89 BI TP: NHểM LNH R NHNH CHNG TRèNH 89 Bi 25: 90 THC HNH: GIAO TIP LCD16X2 90 Bi 26: 91 THC HNH: IU KHIN NG C 91 B 27: 92 THC HNH IU KHIN H THNG NG DNG 92 TI LIU THAM KHO 93 LP TRèNH VI IU KHIN DANH MC HèNH V Hỡnh 1: Khỏi quỏt chung h VXL Hỡnh 2: Hoạt động Bus cho chu kỳ tìm nạp lệnh 10 Hỡnh 3: Cu trỳc kờnh chung ca h thng VXL 13 Hỡnh 1: S h VK AT89C51 17 Hỡnh 2: S chõn IC 80C51/AT89C51 20 Hỡnh 3: S biu din ch ca Timer v 31 Hỡnh 4: S biu din ch ca Timer v 31 Hỡnh 5: S biu din ch ca Timer v 32 Hỡnh 6: S biu din ch ca Timer 32 Hỡnh 7: S khụng gian nh ca VK 89C51 34 Hỡnh 8: S b nh ni trỳ VK 89C51 35 Hỡnh 9: S 128 byte thp b nh RAM 36 Hỡnh 10: Cỏc ghi chc nng c bit (SFR) 37 Hỡnh 11: S truy cp (ghộp ni) b nh ngoi 38 Hỡnh 12: th thi gian quỏ trỡnh nhn lnh t ROM ngoi 39 Hỡnh 13: Truy cp b nh d liu ngoi 40 Hỡnh 14: th thi gian chu k c d liu t RAM ngoi 40 Hỡnh 15: th thi gian chu k ghi d liu vo RAM ngoi 41 Hỡnh 16: Cỏc ngun ngt ca AT89C51 43 Hỡnh 17: H thng ngt ca AT89C51 45 Hỡnh 18: Cỏc tc Baud c to s dng Timer 50 Hỡnh 19: t li thi gian cho AT89C51 51 Hỡnh 20: Khi ng t ng cho AT89C51 52 Hỡnh 21: Khi ng bỏn t ng cho AT89C51 52 Hỡnh 22: S dng mch dao ng trờn On Chip 53 Hỡnh 23: Kt ni mch dao ng 53 LP TRèNH VI IU KHIN DANH MC CC BNG Bng 1:Cỏc thụng s ca cỏc h VK thuc hóng Intel (MSC 51) 18 Bng 2: Các thông số họ VĐK thuộc hãng Atmel 19 Bng 3:Chức riêng ghi SFR 22 Bng 4: a ch, ý ngha v giỏ tr ca cỏc SFR sau Reset 22 Bng 5: Chn bng (bank) ghi 24 Bng 6: Chn Mode SCON 28 Bng 7: a ch vộc t ngt 46 LP TRèNH VI IU KHIN CNG BI GING HC PHN LP TRèNH VI IU KHIN Chng GII THIU TNG QUT Bi KIN TRC H VI X Lí 1.1 S tng quỏt v chc nng h vi x lý CPU CU OUTPUT PC INPUT Interface ALU IR Interface ROM Program Memory RAM Data Memory Hỡnh 1: Khỏi quỏt chung h VXL 1.2 B x lý trung tõm (CPU-Central Processing Unit) 1.2.1 nh ngha B vi x lý (VXL) l thut ng c bt ngun t tờn gi ting Anh l MICROPROCESSOR (MP) hoc CENTRAL PROCESING UNIT (CPU) Trong mi h VXL, CPU luụn l thnh phn quan trng nht, nú qun lý tt c cỏc hot ng ca h VXL v thc hin cỏc thao tỏc trờn d liu Hu ht cỏc CPU ch bao gm mt cỏc mch Logic thc hin liờn tc thao tỏc: tỡm np lnh v thc thi lnh CPU cú kh nng hiu v thc thi cỏc lnh da trờn mt cỏc mó nh phõn, ú mi mt mó thc hin mt thao tỏc no ú Cỏc lnh ny bao gm: - Nhúm lnh di chuyn d liu (Mov, ) LP TRèNH VI IU KHIN - Nhúm lnh s hc (Mul, Div, Add, Subb, ) - Nhúm lnh Logic (ANL, ORL, CPL, XRL, ) - Nhúm lnh r nhỏnh chng trỡnh (Jmp, Call, ) - Nhúm lnh iu khin bin Logic (Setb, Clr, ) Cỏc nhúm lnh trờn c biu th bi cỏc mó nh phõn v c gi l lnh 1.2.2 Cu to Mi b VXL (CPU) thng bao gm: - Cỏc ghi ni (Registers): cú nhim v lu gi tm thi cỏc thụng tin, d liu - n v s hc logic (Arithmetic Logic Unit - ALU): Thc hin cỏc thao tỏc trờn cỏc thụng tin hay d liu ó c lu gi tm thi ghi ni - n v iu khin (Control Unit - CU): Cú nhim v gii mó lnh v iu khin vic thc hin cỏc thao tỏc, ng thi thit lp cỏc hot ng cn thit thc hin cỏc thao tỏc ú - Thanh ghi lnh (Instruction Register - IR): Lu gi mó nh phõn ca lnh c thc thi - B m chng trỡnh (Program Counter - PC): Lu gi i ch ca lnh k tip b nh cn c thc thi 1.2.3 Quỏ trỡnh tỡm np lnh v thc thi lnh ca CPU Vic tỡm np mt lnh t RAM h thng l mt nhng thao tỏc c bn nht m CPU thc hin Quỏ trỡnh tỡm np c thc hin theo cỏc bc sau: - Ni dung ca PC c gi lờn kờnh a ch - Tớn hiu iu khin READ c xỏc lp (chuyn sang trng thỏi tớch cc) - D liu (mó lnh) c c t RAM v gi i trờn kờnh d liu - Mó lnh c cht vo ghi lnh bờn CPU - Ni dung ca PC c tng lờn chun b tỡm np lnh k tip t b nh LP TRèNH VI IU KHIN Address Bus CPU PC n IR opcode Data Bus RAM n+2 Clock Control Bus n+1 opcode Read n n-1 Hỡnh 2: Hoạt động Bus cho chu kỳ tìm nạp lệnh Giai on thc thi lnh bao gm vic gii mó cỏc mó lnh v to cỏc tớn hiu iu khin vic xut nhp gia cỏc ghi ni vi ALU, ng thi thụng bỏo ALU thc hin thao tỏc ó c xỏc nh 1.3 B nh ch c (Read Only Memory - ROM) 1.3.1 ROM c bn ROM dựng lu tr chng trỡnh iu hnh (Monitor) ca h VXL Chng trỡnh ny s quy nh mi hot ng ca h VXL B VXL s cn c vo cỏc lnh cha chng trỡnh iu khin h VXL thc hin cỏc chc nng, nhim v c n nh lnh Núi cỏch khỏc, h VXL s thc hin mt cỏch trung thc thut toỏn m ngi thit k phn mm ó xõy dng v ci t vo ROM ca h Ngoi ra, ROM h VXL cũn dựng lu tr cỏc bng biu, tham s ca h thng m quỏ trỡnh hot ng khụng c thay i nh: bng a ch cng giao tip, cỏc bng tra cu s liu, cỏc b mó cn s dng h ROM cng c qun lý theo phng thc ma trn im, nú cú nhiu chng loi khỏc nhau: ROM, PROM, EPROM, EEPROM, ROM l b nh c nh cú cu trỳc n gin nht Ni dung ca nú nh sn xut ch to, ngi s dng khụng th thay i ni dung ny c na 10 LP TRèNH VI IU KHIN Bi 20: NHểM LNH R NHNH CHNG TRèNH 20.1 Lnh gi tuyt i Cỳ phỏp cõu lnh: ACALL addr11 Chc nng: Gi khụng iu kin mt chng trỡnh t ti a ch c ch cõu lnh Lnh ny tng b m chng trỡnh thờm 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 tr ngn xp lờn n v a ch ớch s c hỡnh thnh bng cỏch ghp bit cao ca ghi PC (sau c tng), bit cao ca byte mó lnh v byte th ca lnh Do ú chng trỡnh c gi phi nm on Kbyte ca b nh chng trỡnh ch it phi cha lnh u tiờn ca chng trỡnh ny Lnh khụng lm nh hng ti cỏc c Cõu lnh S S byte chu k ACALL addr11 Hot ng Mó lnh aaa10001 aaaaaaaa (PC) [...]... on-chip lm vic vi b nh chng trỡnh ni trỳ thỡ chõn phỏt ra xung chn /PSEN khụng s dng Nu b VK lm vic vi b nh chng trỡnh ngoi trỳ thỡ chõn phỏt ra xung chn /PSEN c s dng Khi ú nu /PSEN = 0 thỡ cho 34 LP TRèNH VI IU KHIN phộp b VK c b nh chng trỡnh ngoi, ngc li nu /PSEN = 1 thỡ b VK ch lm vic vi b nh chng trỡnh ni trỳ 6.2.2 B nh d liu ni trỳ AT89C51 cú b nh d liu chim mt khong khụng gian b nh c lp vi b nh... c tc lm vic ca b nh Cu trỳc mch in ca cỏc b nh RAM rt a dng c v cụng ngh ch to chỳng (TTL, MOS, ) v cỏc yờu cu s dng chỳng nh cỏc yờu cu v ghộp ni, tc lm vic, mt linh kin v dung lng cn thit 11 LP TRèNH VI IU KHIN Bi 2 KIN TRC H VI X Lí (TIP) 2.1 Cỏc thit b xut/nhp (I/O) Cỏc thit b xut/nhp hay cỏc thit b ngoi vi kt hp vi cỏc mch giao tip (Interface) s to ra cỏc ng truyn thụng gia h VXL vi th gii... hc v logic 16 LP TRèNH VI IU KHIN ng dng VXL VK Trong cỏc h mỏy vi tớnh Trong cỏc h thng iu khin, o lng v iu chnh 3.2.1 Cu trỳc chung ca b Vi iu khin 80C51 Hỡnh 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ỳ bờn trong v cú th m rng b nh ra ngoi b VK ny cũn cú 4 cng 8 bit (P0P3) vo/ ra 2 chiu giao tip vi thit b ngoi vi Ngoi ra, nú cũn cú:... 8 sang h 16 hoc ngc li ta dựng h 2 lm trung gian Vớ d: (723)8 = (111010011)2 = (1D3)16 (C4)16 = (11000100)2 = (304)8 15 LP TRèNH VI IU KHIN Chng 2 B VI IU KHIN AT89C51 BI 3 CU TRC CHUNG CA B VI IU KHIN AT89C51 3.1 Gii thiu chung v cỏc b vi iu khin Vi iu khin (VK) l mt h Vi x lý (VXL) c t chc trong mt chip Nú bao gm: B VXL B nh chng trỡnh (ROM/EPROM/EEPROM/FLASH) B nh d liu (RAM) Cỏc thanh ghi chc nng,... d liu cho phộp trao i thụng tin gia CPU v b nh, cng nh gia CPU vi thit b ngoi vi Thụng thng cỏc h VXL dnh hu ht thi gian cho vic di chuyn d liu, a s cỏc thao tỏc di chuyn d liu xy ra gia 1 thanh ghi ca CPU vi ROM v RAM ngoi Do ú ln ca kờnh 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 tớnh toỏn cao, nhng vic truy xut d liu di chuyn d liu gia b nh v CPU thụng qua kờnh... nú mc thp Hỡnh 2 2: S chõn IC 80C51/AT89C51 20 LP TRèNH VI IU KHIN - /EA/Vpp: Cho phộp VK truy cp b nh chng trỡnh ngoi khi /EA=0, nu /EA=1 thỡ VK s lm vic vi b nh chng trỡnh ni trỳ Khi chõn ny c cp ngun in ỏp 12V (Vpp) thỡ VK m nhn chc nng np chng trỡnh cho Flash bờn trong nú - Vcc: Cung cp dng ngun cho VK (+ 5V) - GND: ni mỏt 21 LP TRèNH VI IU KHIN BI 4 CC THANH GHI CHC NNG C BIT V CNG VO RA CA... vi th gii bờn ngoi Tuy nhiờn trao i thụng tin gia h VXL vi cỏc thit b ngoi vi, cn cú cỏc phng phỏp iu khin thớch hp nh: - iu khin vo/ra bng chng trỡnh - iu khin vo/ra bng ngt - iu khin vo/ra bng phn cng Ni dung ny s c xột k cỏc chng sau 2.2 Cu trỳc kờnh chung ca h VXL Kờnh (Bus) l tp hp cỏc ng thụng tin cú cựng mc ớch CPU cú th giao tip c vi cỏc b phn khỏc trong h VXL theo yờu cu, mi h VXL cn s... s i 23 LP TRèNH VI IU KHIN vo b m phỏt, 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 4.1.6 Cỏc Thanh ghi Timer Cỏc ụi thanh ghi (TH0, TL0), (TH1, TL1) l cỏc thanh ghi m 16 bit tng ng vi cỏc b Timer/Counter 0 v 1 4.1.7 Cỏc thanh ghi iu khin Cỏc thanh ghi chc nng c bit: IP, IE, TMOD, TCON, SCON, v PCON bao gm cỏc bit trng thỏi v iu khin i vi h thng ngt, cỏc... 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 trỡnh 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 26 LP TRèNH VI IU KHIN * 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 trỡnh con phc v ngt * TR0: Bit iu khin b Timer 0 hot ng c t/xoỏ bi phn... cỏc chõn cng s c gi bit cht tng ng Tt c 4 cng ca VK u l cng I/O hai chiu, mi cng u cú 8 chõn ra, bờn trong mi cht bit cú b Pullup-tng cng do ú nõng cao kh nng ni ghộp ca cng vi ti (cú th giao tip vi 4 n 8 ti loi TTL) 29 LP TRèNH VI IU KHIN BI 5 KHI TO THI GIAN V B M CA AT89C51 5.1 Khỏi quỏt chung v timer/couter On-chip AT89C51 cú 2 thanh ghi Timer/Counter di 16 bit, ú l: Timer 0 v Timer 1 Trong On-chip ... (11000100)2 = (304)8 15 LP TRèNH VI IU KHIN Chng B VI IU KHIN AT89C51 BI CU TRC CHUNG CA B VI IU KHIN AT89C51 3.1 Gii thiu chung v cỏc b vi iu khin Vi iu khin (VK) l mt h Vi x lý (VXL) c t chc mt chip... TRèNH VI IU KHIN Bi KIN TRC H VI X Lí (TIP) 2.1 Cỏc thit b xut/nhp (I/O) Cỏc thit b xut/nhp hay cỏc thit b ngoi vi kt hp vi cỏc mch giao tip (Interface) s to cỏc ng truyn thụng gia h VXL vi th... lm vic vi b nh chng trỡnh ni trỳ thỡ chõn phỏt xung chn /PSEN khụng s dng Nu b VK lm vic vi b nh chng trỡnh ngoi trỳ thỡ chõn phỏt xung chn /PSEN c s dng Khi ú nu /PSEN = thỡ cho 34 LP TRèNH VI