Giáo trình Vi xử lý - Chương 2: Phần cứng chip vi điều khiển 8051 - Phạm Quang Trí

I. TỔNG QUÁT:
1. Giới thiệu chung:
MCS-51 là họ vi ñiều khiển của hãng Intel. Vi mạch tổng quát của họ MCS-51 là chip 8051.
Chip 8051 có một số ñặc trưng cơ bản sau:
- Bộ nhớ chương trình bên trong: 4 KB (ROM).
- Bộ nhớ dữ liệu bên trong: 128 byte (RAM).
- Bộ nhớ chương trình bên ngoài: 64 KB (ROM).
- Bộ nhớ dữ liệu bên ngoài: 64 KB (RAM).
- 4 port xuất nhập (I/O port) 8 bit.
- 2 bộ ñịnh thời 16 bit.
- Mạch giao tiếp nối tiếp.
- Bộ xử lý bit (thao tác trên các bit riêng lẻ).
- 210 vị trí nhớ ñược ñịnh ñịa chỉ, mỗi vị trí 1 bit.
- Nhân / Chia trong 4 µs. 
pdf 31 trang thamphan 28/12/2022 2460
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Vi xử lý - Chương 2: Phần cứng chip vi điều khiển 8051 - Phạm Quang Trí", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfgiao_trinh_vi_xu_ly_chuong_2_phan_cung_chip_vi_dieu_khien_80.pdf

Nội dung text: Giáo trình Vi xử lý - Chương 2: Phần cứng chip vi điều khiển 8051 - Phạm Quang Trí

  1. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. CHƯƠNG2 PHNCNGCHIPVIðIUKHIN8051 I.TNGQUÁT: 1. Giithiuchung: MCS51làhviñiukhincahãngIntel.VimchtngquátcahMCS51làchip8051. Chip8051cómtsñctrưngcơbnsau: Bnhchươngtrìnhbêntrong:4KB( ROM ). Bnhdliubêntrong:128byte( RAM ). Bnhchươngtrìnhbênngoài:64KB( ROM ). Bnhdliubênngoài:64KB( RAM ). 4portxutnhp( I/Oport )8bit. 2bñnhthi16bit. Mchgiaotipnitip. Bxlýbit( thaotáctrêncácbitriêngl). 210vtrínhñưcñnhñach,mivtrí1bit. Nhân/Chiatrong4s. Ngoàira,tronghMCS51còncómtschipviñiukhinkháccócutrúctươngñươngnhư: Chip ROMtrong RAMtrong Bñnhthi 8031 0KB 128byte 2 8032 0KB 256byte 3 8051 4KBPROM 128byte 2 8052 8KBPROM 256byte 3 8751 4KBUVEPROM 128byte 2 8752 8KBUVEPROM 256byte 3 8951 4KBFLASHROM 128byte 2 8952 8KBFLASHROM 256byte 3 2. Cácphiênbncachipviñiukhin8051: 2.1 Bviñiukhin8031: 8031làmtphiênbnkháccah8051.Chipnàythưngñưccoilà8051khôngcóROMtrên chip.ðcóthdùngñưcchipnàycnphibsungthêmROMngoàichachươngtrìnhcnthitcho 8031.8051cóchươngtrìnhñưcchaROMtrênchipbgiihnñn4KB,cònROMngoàica 8031thìcóthlênñn64KB.Tuynhiên,ñcóthtruycphtbnhROMngoàithìcndùngthêm haicng( Port0vàPort2 ),dovychcònlicóhaicng(Port1vàPort3 )ñsdng.Nhmkhc phcvnñnày,chúngtacóthbsungthêmcngvào/racho8031. 2.2 Bviñiukhin8052: 8052làmtphiênbncah8051.8052cóttccácthôngskthutca8051,ngoàiracòn cóthêm128byteRAM,4KBROMvàmtbñnhthina.Nhưvy,8052cótngcng256byte RAM,8KBROMvàbabñnhthi. GiáotrìnhVixlý. 8 Biênson:PhmQuangTrí
  2. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. camáytínhPC.ðâylàmtñimmnhrtñưcưachung.Ngoàira,NVRAMcòncóưuvitlàcho phépthayñinidungRAMtheotngbytemàkhôngcnphixóahttrưckhilptrìnhnhưbnh EPROM. Kýhiu ROM RAM I/O Timer Ngt Vcc SchânIC DS50008 8KB 128 32 2 6 5V 40 DS500032 32KB 128 32 2 6 5V 40 DS5000T8 8KB 128 32 2 6 5V 40 DS5000T32 32KB 128 32 2 6 5V 40 ðimñcbitlàcácchipcóch“T”theosaukýhiu“5000”cónghĩalàchipñócóthitk thêmmtñnghthigianthc( RTC:RealTimeClock )bêntrong.LưuýñnghthigianthcRTC hoàntoànkhácvibñnhthiTimer.RTCtovàlưugithigiancangày( gi/phút/giây )vàngày tháng( ngày/tháng/năm )trênthctngayckhikhôngcónguncungcp. 2.6 BviñiukhinP89V51xxcaPhilipsCorporation: ðâylàmtphiênbncitinsdngCPUlàbviñiukhin80C51vinhiutínhnăngvưt tri:dunglưngROM/RAMtrênchiprtln,3Timer16bit+1WatchdogTimer,2thanhghiDPTR, 8ngunngt,PWM( PulseWidthModulator ),SPI( SerialPeripheralInterface )vàñcbitlàbnh chương trình trên chip có tính năng ISP ( InSystem Programming ) và IAP ( InApplication Programming ), II.CÁCCHÂNCACHIP8051: 1. Sơñkhivàchcnăngcáckhicachip8051: GiáotrìnhVixlý. 10 Biênson:PhmQuangTrí
  3. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. 2.1. Port0: Port0( P0.0–P0.7 )cóschânt32–39. Port0cóhaichcnăng: • Portxutnhpdliu( P0.0P0.7 ) →khôngsdngbnhngoài. • Busñachbytethpvàbusdliuñahp( AD0–AD7) →cósdngbnh ngoài.  Lưuý:KhiPort0ñóngvaitròlàportxutnhpdliuthìphisdngcácñintrkéolên bênngoài . chñmcñnh(khireset )thìcácchânPort0( P0.0P0.7 )ñưccuhìnhlàportxut dliu.MuncácchânPort0làmportnhp dliuthìcnphilptrìnhli,bngcáchghimclogic cao( mc1 )ñnttccácbitcaporttrưckhibtñunhpdliutport(vnñnàyñưctrình bàyphnktip ). KhilptrìnhchoROMtrongchipthìPort0ñóngvaitròlàngõvàocadliu( D0–D7) (xemsách“Hviñiukhin8051”trang333352) . 2.2. Port1: Port1( P1.0–P1.7 )cóschânt1–8. Port1cómtchcnăng: • Portxut nhpdliu( P1.0 – P1.7 ) →sdnghockhôngsdngbnh ngoài. chñmcñnh(khireset )thìcácchânPort1( P1.0–P1.7 )ñưccuhìnhlàportxut dliu.MuncácchânPort1làmportnhp dliuthìcnphilptrìnhli,bngcáchghimclogic cao( mc1 )ñnttccácbitcaporttrưckhibtñunhpdliutport(vnñnàyñưctrình bàyphnktip ). KhilptrìnhchoROMtrongchipthìPort1ñóngvaitròlàngõvàocañachbytethp (A0–A7) (xemsách“Hviñiukhin8051”trang333352) . 2.3. Port2: Port2( P2.0–P2.7 )cóschânt21–28. Port2cóhaichcnăng: • Portxutnhpdliu( P2.0–P2.7 ) →khôngsdngbnhngoài. • Busñachbytecao( A8–A15 ) →cósdngbnhngoài. chñmcñnh(khireset )thìcácchânPort2( P2.0–P2.7 )ñưccuhìnhlàportxut dliu.MuncácchânPort2làmportnhp dliuthìcnphilptrìnhli,bngcáchghimclogic cao(mc1 )ñnttccácbitcaporttrưckhibtñunhpdliutport(vnñnàyñưctrình bàyphnktip ). KhilptrìnhchoROMtrongchipthìPort2ñóngvaitròlàngõvàocañachbytecao( A8 –A11 )vàcáctínhiuñiukhin(xemsách“Hviñiukhin8051”trang333352) . 2.4. Port3: Port3( P3.0–P3.7 )cóschânt10–17. Port3cóhaichcnăng: • Portxutnhpdliu( P3.0–P3.7 ) →khôngsdngbnhngoàihoccác chcnăngñcbit. • Cáctínhiuñiukhin→cósdngbnhngoàihoccácchcnăngñcbit. chñmcñnh(khireset )thìcácchânPort3( P3.0–P3.7 )ñưccuhìnhlàportxut dliu.MuncácchânPort3làmportnhp dliuthìcnphilptrìnhli,bngcáchghimclogic cao( mc1 )ñnttccácbitcaporttrưckhibtñunhpdliutport(vnñnàyñưctrình bàyphnktip ). GiáotrìnhVixlý. 12 Biênson:PhmQuangTrí
  4. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. • Làtínhiunhp,tíchccmcthp. EA\=0 →Chip8051sdngchươngtrìnhcaROMngoài. EA\=1 →Chip8051sdngchươngtrìnhcaROMtrong. KhilptrìnhchoROMtrongchipthìchânEAñóngvaitròlàngõvàocañináplptrình (Vpp=12V–12,5Vchoh89xx;21Vchoh80xx,87xx ) (xemsách“Hviñiukhin8051”trang 333352) .  Lưuý:ChânEA\phiñưcnilênVcc( nusdngchươngtrìnhcaROMtrong )hocni xungGND( nusdngchươngtrìnhcaROMngoài ),khôngbaogiñưcphépbtrngchânnày. 2.8. ChânXTAL1,XTAL2: XTAL( Crystal ):tinhththchanh,châns1819. Chcnăng: • Dùngñnivithchanhhocmchdaoñngtoxungclockbênngoài,cung cptínhiuxungclockchochiphotñng. • XTAL1 →ngõvàomchtoxungclocktrongchip. • XTAL2 →ngõramchtoxungclocktrongchip. ===  Lưuý: fTYP 12MHz fTYP (MHz):tnsdanhñnh. 2.9. ChânRST: RST( Reset ):thitlpli,châns9. Chcnăng: • Làtínhiuchophépthitlp( ñt )litrngtháibanñuchohthng. • Làtínhiunhp,tíchccmccao. RST=0 →Chip8051hotñngbìnhthưng. RST=1 →Chip8051ñưcthitlplitrngtháibanñu. Lưuý: ≥ × 12  tRe set 2 TMachine = TMachine fOSC tRESET (s):thigianreset. fOSC (MHz):tnsthchanh. TMACHINE (s):chukỳmáy. GiáotrìnhVixlý. 14 Biênson:PhmQuangTrí
  5. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. • Cácchântrongcùngmtportkhôngnhtthitphicócùngkiucuhình( portxuthoc portnhp ).Nghĩalàtrongcùngmtportcóthcóchândùngñnhpdliu,cóthcóchândùngñ xutdliu.ðiunàylàtùythucvàonhucuvàmcñíchcangưilptrình. Quátrìnhghichânport( xutdliurachânport ). Quátrìnhñcchânport( nhpdliutchânport ). Quátrìnhñcbcht( kimtradliutichânport ). GiáotrìnhVixlý. 16 Biênson:PhmQuangTrí
  6. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. 1. Bnhtrong: GiáotrìnhVixlý. 18 Biênson:PhmQuangTrí
  7. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. • Cácdãythanhghi: →chophéptruyxutdliunhanh,lnhtruyxutñơnginvàngngn. Bngsliudưiñâyminhhañachcacácônhtrongmtdãyvàcáckýhiuthanhghi R0–R7ñưcgánchotngônhtrongdãytíchcc.  Lưuý: o chñmcñnhthìdãythanhghitíchcc(ñangñưcsdng)làdãy0 vàcácthanh ghitrongdãylnlưtcótênlàR0R7.Cóththayñidãytíchccbngcáchthayñicácbitchn dãythanhghiRS1vàRS0trongthanhghiPSW(xemphnthanhghiPSW). o Nuchươngtrìnhcatachsdngdãythanhghiñutiên( dãy0 )thìtacóthsdng vùngnh08H–1FHchocácmcñíchkháccata.Nhưngnutrongchươngtrìnhcósdngcácdãy thanhghi( dãy1,2hoc3 )thìphirtcnthnkhisdngvùngnht1FHtrxungvìnusơsut tacóthghidliuñèlêncácthanhghiR0–R7cata.  Víd1: QuanhgiakýhiuthanhghiR4vicácônhcóñachtươngngtrongdãythanh ghitíchcc? o Nudãy0tíchcc:ThanhghiR4Ônh04HRAMni. o Nudãy1tíchcc:ThanhghiR4Ônh0CH RAMni. o Nudãy2tíchcc:ThanhghiR4Ônh14HRAMni. o Nudãy3tíchcc:ThanhghiR4Ônh1CHRAMni.  Víd2: Khichip8051thchinlnhMOVR4,#1AH thìgiátr“1AH”sñưcnpvàotrong ônhcóñachlàbaonhiêuthucRAMni.Xéttươngngchotngtrưnghpdãythanhghitích cclàDãy0 vàDãy3 ? GiáotrìnhVixlý. 20 Biênson:PhmQuangTrí
  8. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. • Thươngs→chavàothanhghiA. • Sdư→chavàothanhghiB.  Víd:Thchinphéptính12Hx2AH.Hi(A)=?,(B)=? x 1 2 H 2 A H B 4 (A) = F4H 2 4 (B) = 02H 0 2F 4 H (B) (A)  Víd:ThchinphéptínhA6H:21H.Hi(A)=?,(B)=?  Víd:ThchinphéptínhFDH:0CH.Hi(A)=?,(B)=? 1.3.3. ThanhghitPSW: CCY( CarryFlag ):cnh→báocónh/mưntibit7. • CY=0:nukhôngcónhtbit7hockhôngcómưnchobit7. • CY=1:nucónhtbit7hoccómưnchobit7. CAC( AuxiliaryCarry ):cnhph→báocónh/mưntibit3. • AC=0:nukhôngcónhtbit3hockhôngcómưnchobit3. • AC=1:nucónhtbit3hoccómưnchobit3. CF0( Flag0 ):czero→cónhiumcñíchdànhchocácngdngkhácnhauca ngưilptrình( dtrchocácphiênbnchiptrongtươnglai ). GiáotrìnhVixlý. 22 Biênson:PhmQuangTrí
  9. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM.  Víd:Minhhacách8051biudins128. Cácbưcthchin: B1: 10000000 Biudins128dngnhphân8bit. B2: 01111111 Lybù1. B3: 10000000 Lybù2. Vys80Hlàbiudinscódudngbù2cas128.  Víd:MinhhatrngtháihotñngcacáccCY,AC,OVvàPkhithchinphépcng/tr shchaigiátrvinhau.  Cnh(CY): MinhhahotñngcacCYtrongtrưnghpCY=1: XétcCYtronghaitrưnghp“ 7AH+28H”và“ 9AH5DH ”: XétcCYtronghaitrưnghp“ 95H+86H”và“ 00HA6H”:  Cnhph(AC): MinhhahotñngcacACtrongtrưnghpAC=1 AC=1 AC=1 ? 7 6 5 4 3 2 1 0 B H L H 7 6 5 4 3 2 1 0 B H L H - - + + 7 6 5 4 3 2 1 0 B H L H 7 6 5 4 3 2 1 0 B H L H ? AC=1 AC=1 Kieåu BIN Kieåu HEX Kieåu BIN Kieåu HEX GiáotrìnhVixlý. 24 Biênson:PhmQuangTrí
  10. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM.  Víd:XácñnhnidungcácônhthucRAMnicañonchươngtrìnhsau:  Víd:XácñnhnidungcácônhthucRAMnicañonchươngtrìnhsau: 1.3.4. ThanhghiSP: Ngănxplàvùngnhdùngñlưutrtmthicácdliu. ðivichip8051thìvùngnhñưcdùngñlàmngănxpñưcgitrongRAMni. ðsdngngănxpthìtaphikhiñngthanhghiSP( nghĩalànpgiátrchothanh ghiSP ) →vùngnhcangănxpcóñachbtñu: (SP)+1 vàñachktthúc:7FH . NukhôngkhiñngSP→vùngnhcangănxpcóñachbtñu: 08Hvàñach ktthúc:7FH(chñmcñnh ).  Lưuý:TrongtrưnghpkhôngkhiñngSP( chñmcñnh )thìdãythanhghi1( vàcóth làdãy2vàdãy3 )skhôngcònhplvìkhiñóvùngnhnàyñãñưcsdngñlàmngănxp.ðiu nàycónghĩalànutasdngcácdãythanhghinàyvàlưutrdliuvàoñóthìcókhnăngsb mtdotácñngctdliuvàongănxpcacáclnh( PUSH,ACALL,LCALL, ). GiáotrìnhVixlý. 26 Biênson:PhmQuangTrí
  11. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM.  Víd:Khitamuntruyxut( ghi/ñc )dliutmtônhthucRAMngoàicóñachlà 0123Hthìtaphilàmsaonpñưcgiátr0123HvàothanhghiDPTRvàsauñóthchinlnhtruy xutMOVX(xemgiithíchlnhtrong“ Chương3:Tplnhca8051.” ). (DPTR)=0123H⇔(DPH)=01Hvà(DPL)=23H  Ví d: Khi ta mun truy xut ( ñc )bytemãtmtônhthucROMtrongcóñachlà 0ABCHthìtaphilàmsaonpñưcgiátr0ABCHvàothanhghiDPTRvàsauñóthchinlnhtruy xutMOVC ( xemgiithíchlnhtrong“ Chương3:Tplnhca8051.” ). (DPTR)=0ABCH⇔(DPH)=0AHvà(DPL)=BCH 1.3.6. Thanhghiportxutnhp:  Lưuý:  TrongtrưnghpphncngcósdngROMhocRAMbênngoàithìtakhôngths dngPort0vàPort2ñxutnhpdliu.Vìkhiñóchip8051ssdnghaiportnàyñxácñnhña chvàdliuchobnhngoài.Khiñó,tachcóthsdngPort1vàPort3ñxutnhpdliu.  chñmcñnh( khireset )thìttccácchâncacácport( P0–P3)ñưccuhìnhlà portxut dliu.Muncácchânportcachip8015làmportnhp dliuthìtacnphiñưclp trìnhli,bngcáchghimclogiccao( mc1 )ñnttccácbit( cácchân )caporttrưckhibtñu nhpdliutport.  Víd1:Hotñngxut( ghi )vànhp( ñc )dliuticácchânport(Port0)cachip8051 (xemhìnhminhhabêndưi ). • Hình phía trái:Minhhatrngtháihotñngcaportkhithchin lnh xut (ghi )dliuraPort0cachip8051. • Hìnhphíaphi:Minhhatrngtháihotñngcaportkhithchinlnhnhp (ñc )dliutPort0cachip8051. +VCC +VCC LED saùng LED taét Nhaán SW Nhaû SW +VCC PORT 0 10K PORT 0 10K 0 P0.0 39 0 P0.0 39 CPU - 8051 1 P0.1 38 CPU - 8051 1 P0.1 38 0 P0.2 37 0 P0.2 37 1 P0.3 36 0 P0.3 36 CAH WRITE 92H READ 0 P0.4 35 1 P0.4 35 0 P0.5 34 0 P0.5 34 33 33 Xuaát giaù trò CAH 1 P0.6 Nhaäp giaù trò töø Port 0 0 P0.6 32 32 (11001010B) töø chip 1 P0.7 vaøo chip 8051 1 P0.7 330 8051 ra Port 0. (P0)=CAH (P0)=92H GiáotrìnhVixlý. 28 Biênson:PhmQuangTrí
  12. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. 1.3.8. Thanhghiñnhthi: (xemthêmtrong“Chương4:Hotñngcabñnhthi.” ) GiáotrìnhVixlý. 30 Biênson:PhmQuangTrí
  13. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM.  Lưuý:HthngphiphchiVcc=5Vtrưckhithoátkhichñngungiãm. 2. Bnhngoài: Chip8051chotakhnăngmrng: • Khônggianbnhchươngtrìnhlênñn64KB. • Khônggianbnhdliulênñn64KB. Khisdngbnhngoài: • Port0 →busñachbytethpvàbusdliuñahp( AD0AD7). • Port2 →busñachbytecao( A8A15 ). • Port3 →cáctínhiuñiukhin( WR\,RD\). Skhácnhaugiañahpvàkhôngñahpbusñachvàbusdliu: →nhmlàmgiãmslưngchânñưarangoàichip→giãmkíchthưccachip. GiáotrìnhVixlý. 32 Biênson:PhmQuangTrí
  14. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. 2.2. Ktnivàtruyxutbnhdliungoài: Moät chu kyø maùy Moät chu kyø maùy S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 ALE PSEN\ RD\ PORT 2 PCH DPH PORT 0 PCL Leänh DPL Data GiáotrìnhVixlý. 34 Biênson:PhmQuangTrí
  15. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. 2.4. Cáckhônggiannhchươngtrìnhvàdliuginhau: GiáotrìnhVixlý. 36 Biênson:PhmQuangTrí
  16. Chương2:Phncngchipviñiukhin8051. TrưngðHCôngnghipTp.HCM. Bài2: Sdngmtvimch74138vàcáccngcnthitñthitkmchgiimãñachtora cáctínhiuchnchiptươngngcácvùngñachsau: Tínhiuchn Vùngñach ðctínhtruyxut chip CS0 9800H9BFFH PSEN CS1 9800H9BFFH RD, WR CS2 9C00H9DFFH RD, WR CS3 9E00H9EFFH RD, WR Bài3: Chdùngmtvimch74138( khôngdùngthêmcng ),thitkmchgiimãñachto ramttínhiuchnchip/CStươngngtmñachF000HF3FFH. GiáotrìnhVixlý. 38 Biênson:PhmQuangTrí