單片微機(jī)原理及應(yīng)用-第二版-羅印升-總結(jié)-河南城建_第1頁
單片微機(jī)原理及應(yīng)用-第二版-羅印升-總結(jié)-河南城建_第2頁
單片微機(jī)原理及應(yīng)用-第二版-羅印升-總結(jié)-河南城建_第3頁
單片微機(jī)原理及應(yīng)用-第二版-羅印升-總結(jié)-河南城建_第4頁
單片微機(jī)原理及應(yīng)用-第二版-羅印升-總結(jié)-河南城建_第5頁
已閱讀5頁,還剩79頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

總復(fù)習(xí)2/2/20231第1章微型計(jì)算機(jī)基礎(chǔ)知識

1.1微型計(jì)算機(jī)系統(tǒng)概述

1.2計(jì)算機(jī)中的數(shù)制與編碼

1.3計(jì)算機(jī)中數(shù)的表示與編碼2/2/20232微型計(jì)算機(jī)系統(tǒng)----硬件系統(tǒng)+軟件系統(tǒng)(操作系統(tǒng)和應(yīng)用軟件等)一、微型計(jì)算機(jī)系統(tǒng)的組成圖1-2微型計(jì)算機(jī)系統(tǒng)的組成1.1微型計(jì)算機(jī)系統(tǒng)概述2/2/20233存儲器I/O接口輸入設(shè)備I/O接口地址總線AB輸出設(shè)備CPU數(shù)據(jù)總線DB控制總線CBI/O接口AB:AddressBus,DB:DataBus,CB:ControlBus1.中央處理單元二、微型計(jì)算機(jī)的硬件組成2/2/202342.存儲器存儲器是用來存放指令、數(shù)據(jù)、運(yùn)算結(jié)果和各種需要保存信息的器件或設(shè)備。存儲器通常包括三類:

--用于存放當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)的主存儲器(內(nèi)存儲器);

--為解決CPU與主存儲器間的數(shù)據(jù)傳輸率差異而設(shè)計(jì),以提高系統(tǒng)處理效率的高速緩沖存儲器;

--為增大計(jì)算機(jī)系統(tǒng)存儲容量而設(shè)置的磁盤存儲器和光盤存儲器(外存儲器)。存儲器的單位:KB/MB/GB,1個字節(jié)=8個二進(jìn)制位。1KB=1024字節(jié),1MB=1024KB,1GB=1024MBRAMROM2/2/202353.總線總線是微型計(jì)算機(jī)系統(tǒng)中各部件之間傳遞信息的信號線的集合。按總線的功能可分為:地址總線(AddressBus,AB)、數(shù)據(jù)總線(DataBus,DB)和控制總線(ControlBus,CB)。地址總線:傳送由CPU發(fā)出的地址信號,用于選擇要訪問部件的地址。地址總線是單向的,只能計(jì)算機(jī)向外送出。地址總線的數(shù)目決定可直接訪問的存儲單元的數(shù)目。2/2/202363.總線數(shù)據(jù)總線:用于計(jì)算機(jī)系統(tǒng)內(nèi)部各部件,及與外部存儲器之間或與I/O接口之間傳送數(shù)據(jù)。數(shù)據(jù)總線是雙向的。數(shù)據(jù)總線的位數(shù)與CPU處理數(shù)據(jù)的字長一致??刂瓶偩€:傳送保證計(jì)算機(jī)同步和協(xié)調(diào)的定時和控制信號。對于一條具體的控制信號線來說,其傳送方向是單向的,但由不同方向的控制信號線組合的控制總線則是雙向的。(如讀/寫選通線、中斷請求線、中斷響應(yīng)線等)2/2/20237第2章:51系列單片機(jī)的結(jié)構(gòu)及原理

2.151系列單片機(jī)的結(jié)構(gòu)原理2.2

51系列單片機(jī)的存儲器組織2.3

51系列單片機(jī)的輸入/輸出口2.4

51系列單片機(jī)的時鐘電路與時序2.551系列單片機(jī)的復(fù)位電路2.6低功耗工作方式與看門狗定時器2/2/202381.一個8位CPU;2.4KB片內(nèi)程序存儲器;3.128個字節(jié)的片內(nèi)數(shù)據(jù)存儲器;4.4個8bit并行I/O口P0~P3;5.2個16位定時器/計(jì)數(shù)器T0、T1;6.1個全雙工串行I/O接口,可多機(jī)通信。7.片內(nèi)中斷處理系統(tǒng):5個中斷源,2級中斷優(yōu)先級;8.時鐘電路。

89C52的變化,8KFlashROM代替4kROM,RAM增加到256B,增加了一個16bit定時/計(jì)數(shù)器(T2)。2.1.151系列單片機(jī)的基本組成2/2/202391.中央處理單元CPU

CPU是單片機(jī)的控制指揮中心,由運(yùn)算器和控制器兩大部分組成。一個8位CPU;(1)運(yùn)算器:以算術(shù)/邏輯運(yùn)算單元ALU為核心,由累加器ACC(簡稱A)、寄存器B和程序狀態(tài)字寄存器PSW等部件組成。主要完成:算術(shù)運(yùn)算(加、減、乘、除等)、邏輯運(yùn)算(與、或、異或)、位運(yùn)算(位置“1”、置“0”和取反)和數(shù)據(jù)傳送等操作,運(yùn)算結(jié)果的狀態(tài)由PSW保存。

2.1.251系列單片機(jī)的內(nèi)部結(jié)構(gòu)2/2/202310(2)控制器由程序計(jì)數(shù)器PC、指令譯碼器ID、指令寄存器IR、數(shù)據(jù)指針DPTR、堆棧指針SP

、緩沖器和定時控制電路等部件組成。主要任務(wù)是識別指令,產(chǎn)生相應(yīng)的操作時序和控制信號,協(xié)調(diào)單片機(jī)各部分正常工作。

2.數(shù)據(jù)存儲器RAM

51系列單片機(jī)存儲器空間有程序存儲器和數(shù)據(jù)存儲器兩個獨(dú)立的空間,這種形式為哈佛結(jié)構(gòu)(分別獨(dú)立編址)。

51系列單片機(jī)有128B的片內(nèi)數(shù)據(jù)存儲器RAM、片外可擴(kuò)展64KB;RAM用來存儲單片機(jī)運(yùn)行期間的工作變量、運(yùn)算中間結(jié)果、數(shù)據(jù)暫存和標(biāo)志位等。2.1.251系列單片機(jī)的內(nèi)部結(jié)構(gòu)2/2/2023113.程序存儲器ROM51系列單片機(jī)有4KB可在系統(tǒng)編程的程序存儲器ROM,片外可擴(kuò)展到64KB。8031無此部件。用來存儲程序。4.I/O接口51系列單片機(jī)有4個8位并行I/O接口:P0口、P1口、P2口和P3口。CPU通過內(nèi)部總線對I/O接口中的寄存器進(jìn)行讀寫。5.定時器/計(jì)數(shù)器

51系列單片機(jī)有2個16位定時器/計(jì)數(shù)器T0、T1(52子系列有3個),4種工作方式。6.串行口1個全雙工的異步串行I/O口,具有4種工作方式??蛇M(jìn)行串行通信,擴(kuò)展并行I/O口,還可與多個單片機(jī)構(gòu)成多機(jī)系統(tǒng)。另外,還有中斷系統(tǒng)、時鐘電路。

2.1.251系列單片機(jī)的內(nèi)部結(jié)構(gòu)2/2/202312

40只引腳雙列直插封裝(DIP)44只引腳方形封裝方式(4只無用)2.1.351系列單片機(jī)引腳及功能

40只引腳按功能分為3類:(1)電源及時鐘引腳:

Vcc、Vss;XTAL1、XTAL2。4根(2)控制引腳:、

ALE、、RESET

(即RST)。4根

(3)輸入/輸出I/O口引腳:P0、P1、P2、P3,為4個8位I/O口引腳。

32根2/2/202313電源及時鐘引腳Vcc(+5V)電源輸入端電源引腳(2根)(1)Vcc,(第40引腳):電源端,接+5V電源。(2)Vss(第20引腳):接地引腳,有時標(biāo)記為GND。Vss(GND)共用接地端2/2/202314電源及時鐘引腳1、當(dāng)使用內(nèi)部振蕩電路時,XTAL1(第19引腳)和XTAL2(第18引腳)分別用做晶體振蕩電路的反相器輸入端和輸出端。這兩個端子用來外接一個石英晶體或陶瓷振蕩器,構(gòu)成一個自激振蕩器。常用的時鐘電路有兩種方式:內(nèi)部時鐘方式和外部時鐘方式。2/2/202315單片機(jī)XTAL1XTAL21918C1C2電容C1、C2通常選20~30PF左右振蕩頻率1.2MHz~12MHz晶振內(nèi)部時鐘方式電路C1、C2取值對振蕩頻率輸出大小、穩(wěn)定性及振蕩電路的起振速度有一定的影響。通常外接一個晶振兩個電容內(nèi)部時鐘方式2/2/202316CHMOS型2、當(dāng)采用外部振蕩器時,可直接將外部振蕩脈沖接入XTALl或XTAL2。HMOS和CHMOS單片機(jī)外時鐘信號接入方式不同,如表所示。HMOS型外部時鐘方式2/2/2023172.控制引腳(4根)(1)RST/VPD(RESET,9腳)RST為復(fù)位信號輸入端,高電平有效;正常工作時,此腳電平應(yīng)≤0.5V。VPD為內(nèi)部RAM的備用電源輸入端。當(dāng)主電源Vcc一旦發(fā)生斷電或電壓降到一定值時,可通過VPD為單片機(jī)內(nèi)部RAM提供電源,以保護(hù)片內(nèi)RAM中的信息不丟失,使單片機(jī)上電后能繼續(xù)正常運(yùn)行。出現(xiàn)持續(xù)時間大于2個機(jī)器周期以上的高電平時,單片機(jī)復(fù)位注意:單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC的內(nèi)容為0000H(該單元存放一條跳轉(zhuǎn)指令,跳向主程序入口地址)。2/2/202318復(fù)位可分為上電復(fù)位、按鍵復(fù)位兩種方式。利用電容器的充放電,加給RST引腳一個短的高電平信號來實(shí)現(xiàn)的。為保證系統(tǒng)可靠復(fù)位,RST引腳上的高電平必須維持足夠長的時間。RST引腳上的高電平持續(xù)時間取決于電容C充電時間。通常時鐘頻率為6MHz時,C取22μF,R取1KΩ。上電復(fù)位電路按鍵復(fù)位的電路2/2/202319EA/VPP(31)PSEN(29)名稱功能片外ROM讀選通信號輸出引腳,輸出低電平有效。通過P0口讀回指令或常數(shù)。常與片外ROM的OE(輸出允許)引腳相連內(nèi)外ROM選擇控制引腳/編程電壓EA=0時,選片外ROM;1,地址小于4k時,選片內(nèi)ROM地址大于4k時,選片外ROMP0口是數(shù)據(jù)/地址復(fù)用口P0口傳輸數(shù)據(jù)信息P0口輸出地址信息鎖存地址ALE/PROG(30)地址鎖存允許信號輸出引腳/編程脈沖輸入端如8031芯片該引腳接地其他3個控制引腳為數(shù)據(jù)總線/低8位地址總線為高8位地址總線P0口P2口2/2/2023203.輸入/輸出引腳(32根)(1)P0口(P0.0~P0.7,第39~32引腳)作雙向I/O口使用或者作為低8位地址總線/數(shù)據(jù)總線分時復(fù)用。第一功能:是一個8位的雙向I/O口,這時P0口可看成用戶的數(shù)據(jù)總線;第二功能:當(dāng)外擴(kuò)存儲器及I/O接口芯片時,P0口作為低8位地址總線及數(shù)據(jù)總線的分時復(fù)用端口。在訪問外部存儲器時,先用做地址總線,再用做數(shù)據(jù)總線。2/2/202321(2)P1口(P1.0~P1.7,第1~8引腳):P1口的第一功能是作為準(zhǔn)雙向I/O口使用。第二功能用戶可通過編程自定義。(3)P2口(P2.0~P2.7,第21~28引腳):P2口作為一般的準(zhǔn)雙向I/O口使用或者高8位地址總線輸出引腳。第一功能:一個內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口。第二功能:當(dāng)外擴(kuò)存儲器或I/O接口芯片時,P2口作為高8位地址總線使用。和P0口一起組成16位片外存儲器的地址總線,可訪問64KB存儲空間。作為輸入口時,應(yīng)先向該口寫入“1”2/2/202322(4)P3口(P3.0~P3.7,第10~17引腳):P3口一般作為準(zhǔn)雙向I/O口使用或者第二功能引腳。P3口通常使用其第二功能。2/2/202323引腳第二功能符號第二功能描述P3.0(10)RxD串行通信數(shù)據(jù)接收引腳P3.1(11)TxD串行通信數(shù)據(jù)發(fā)送引腳P3.2(12)外部中斷0請求信號輸入引腳,低電平有效P3.3(13)外部中斷1請求信號輸入引腳,低電平有效P3.4(14)T0定時/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入引腳P3.5(15)T1定時/計(jì)數(shù)器1外部計(jì)數(shù)脈沖輸入引腳P3.6(16)外部數(shù)據(jù)存儲器寫選通信號,低電平有效P3.7(17)外部數(shù)據(jù)存儲器讀選通信號,低電平有效P3口的第二功能

2/2/202324小結(jié)RST/VPDP3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0RXDTXDINT0

INT1

T0

WRRDT1

XTAL2XTAL1VssVcc51系列40393837363534333231302928272625242322211234567891011121314151617181920P0口:I/O口或數(shù)據(jù)總線/低8位地址總線復(fù)用口P1口:I/O口P3口:I/O口或第2功能口P2口:I/O口

或高8位地址總線控制總線控制總線EA/VPPALE/PROGPSEN時鐘復(fù)位引腳40個引腳介紹完畢,應(yīng)熟記每一引腳功能,對系統(tǒng)硬件電路設(shè)計(jì)十分重要!2/2/2023252.251系列單片機(jī)的存儲器組織2.2.1程序存儲器的地址空間

2.2.2數(shù)據(jù)存儲器的地址空間

2.2.3特殊功能寄存器簡介【重點(diǎn)與難點(diǎn)】重點(diǎn)是51系列單片機(jī)的存儲器的結(jié)構(gòu)。難點(diǎn)是內(nèi)部數(shù)據(jù)存儲器的結(jié)構(gòu)及高128B數(shù)據(jù)存儲單元與SFR區(qū)域的區(qū)別與使用方法。字節(jié)地址和位地址的區(qū)別。2/2/2023262.251系列單片機(jī)的存儲器組織

51系列單片機(jī)的存儲器從物理位置看,有4個存儲器空間,即片內(nèi)數(shù)據(jù)存儲器(簡稱片內(nèi)RAM)、片內(nèi)程序存儲器(片內(nèi)ROM)、片外數(shù)據(jù)存儲器(片外RAM)和片外程序存儲器(片外ROM),如圖所示

。51系列單片機(jī)存儲器的物理位置

64KB64KBROM和RAM分別獨(dú)立編址128B4KB2/2/202327從尋址空間的角度來看,51系列單片機(jī)的存儲器空間又可分為3個部分,如圖所示。

2.251系列單片機(jī)的存儲器組織

程序存儲器內(nèi)部數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器

片內(nèi)外獨(dú)立編址片內(nèi)外統(tǒng)一編址64KB2/2/2023282.2.1程序存儲器CPU訪問片內(nèi)和片外ROM,由引腳上的電平?jīng)Q定。

(a)ROM空間地址分布片內(nèi)外統(tǒng)一編址的64KB程序存儲器空間,地址范圍0000H~0FFFFH。2/2/2023292.2.1程序存儲器(b)ROM低地址中斷入口單元

在程序存儲器的開始部分,定義了6個具有特殊功能的地址段,用作程序起始和各種中斷服務(wù)程序的入口地址。6個單元組的入口地址均存放一條無條件轉(zhuǎn)移指令。轉(zhuǎn)向主程序入口轉(zhuǎn)向中斷服務(wù)子程序入口2/2/202330

2.2.2數(shù)據(jù)存儲器52系列的高128BRAM區(qū)和特殊功能寄存器區(qū)SFR重疊。采用不同的尋址方式予以區(qū)分。(a)片內(nèi)RAM和SFR空間分布(b)片外RAM空間單元直接或間接尋址2/2/202331

2.2.2數(shù)據(jù)存儲器

51系列單片機(jī)的數(shù)據(jù)存儲器RAM主要用來存放中間運(yùn)算結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等。AT89S51的片內(nèi)RAM有128B,對應(yīng)地址范圍是00H~7FH。AT89S52的片內(nèi)RAM有256B,對應(yīng)地址范圍是00H~FFH。片外最大擴(kuò)展64KB,片內(nèi)外獨(dú)立編址。地址范圍是0000H~FFFFH。片內(nèi)/外RAM的低地址0000H~00FFH是重復(fù)的,通過不同的指令訪問以區(qū)分它們。從外部RAM讀數(shù)據(jù)MOVXA,@Ri

向片外RAM寫數(shù)據(jù)MOVX@Ri,A2/2/2023322.2.2數(shù)據(jù)存儲器—內(nèi)部低128B1.通用工作寄存器區(qū):共4組,每組8個寄存單元,32個單元,暫存運(yùn)算數(shù)據(jù)和中間結(jié)果。字節(jié)地址為00H~1FH。2.位尋址區(qū):字節(jié)地址為20H~2FH,既可作RAM,也可位操作。共有16個單元,共128位,位地址為00H~7FH。(字節(jié)尋址或位尋址)3.用戶RAM區(qū):80個單元,地址為30H~7FH,只能字節(jié)尋址,在一般應(yīng)用中常作堆棧區(qū)及數(shù)據(jù)緩沖區(qū)。2/2/202333(1)工作寄存器區(qū)工作寄存器也稱為通用寄存器,供用戶編程時使用,用于臨時存儲8位數(shù)據(jù)信息。工作寄存器地址為00H~1FH的32個單元,并分成4個工作寄存器組,每個組有8個工作寄存器,名稱為R0~R7。工作寄存器和RAM地址的對應(yīng)關(guān)系如表所示。只能有一組工作寄存器被選為CPU的當(dāng)前工作寄存器,通過改變程序狀態(tài)字寄存器(PSW)中的RS1、RS0兩位來實(shí)現(xiàn)。2/2/202334表2-3表2-4工作寄存器區(qū)位尋址區(qū)用戶RAM區(qū)字節(jié)地址位地址2/2/202335

2.2.3

特殊功能寄存器共21個單元,其中字節(jié)地址的末位是0H或8H可位尋址(11個)。

下面介紹SFR塊中的某些寄存器。2/2/202336

2.2.3

特殊功能寄存器(1)

累加器ACC(E0H8位)用于存放操作數(shù)或運(yùn)算中間結(jié)果的8位專用寄存器,是CPU中使用最頻繁的寄存器,可寫為Acc。其物理地址為0E0H,也可使用ACC代表物理地址。對ACC可進(jìn)行位尋址,通常用ACC.n(n=0~7)表示。(2)寄存器B(F0H8位)

與累加器A配合執(zhí)行乘、除運(yùn)算,并存放運(yùn)算結(jié)果。在無乘除運(yùn)算時,它可作為內(nèi)部RAM的一個單元。如ACC中位地址三種表示形式:ACC.1~(E0H).1~E1H2/2/202337

2.2.3特殊功能寄存器PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CYACF0RS1RS0OVF1P(3)

程序狀態(tài)字PSW(D0H8位)PSW是可位尋址的8位寄存器,主要用于存儲當(dāng)前指令執(zhí)行后的程序狀態(tài),供程序查詢和判斷。各位定義如下:進(jìn)位標(biāo)志位輔助進(jìn)位標(biāo)志位用戶自定義狀態(tài)標(biāo)志位工作寄存器組選擇位溢出標(biāo)志位奇偶校驗(yàn)標(biāo)志位2/2/202338

2.2.3特殊功能寄存器(4)堆棧指針SP。SP是8位專用寄存器,作為堆棧指針?biāo)冀K指向堆棧的頂部。

51系列單片機(jī)的堆棧是為子程序調(diào)用和中斷操作而設(shè),主要作用:保護(hù)斷點(diǎn)和現(xiàn)場保護(hù)。所謂堆棧是一個連續(xù)的數(shù)據(jù)存儲區(qū)域,其存取原則為“后進(jìn)先出”,或“先進(jìn)后出”。堆棧的操作有兩種:進(jìn)棧和出棧。51系列單片機(jī)的堆棧是向上生成型(向地址增大的方向生成),進(jìn)棧操作過程是SP先加1,然后數(shù)據(jù)壓入;出棧過程是SP指向的數(shù)據(jù)從中彈出,然后SP減1。

AT89S51單片機(jī)復(fù)位后,SP的內(nèi)容為07H,此時堆棧實(shí)際上是從08H單元開始的,而08H~1FH是工作寄存器組區(qū),所以,通常在片內(nèi)數(shù)據(jù)存儲區(qū)的30H~7FH設(shè)置堆棧,一般在初始化時將SP設(shè)置成60H。2/2/202339

(5)數(shù)據(jù)指針DPTR。DPTR是16位專用地址指針寄存器,用來存放讀片外ROM或讀/寫片外RAM的16位地址。既可作為16位寄存器使用,也可作為兩個獨(dú)立的8位寄存器DPH和DPL來使用。其中DPH是DPTR的高8位,DPL是DPTR的低8位。對于AT89S51來說,DPTR就是DP0。

例如:當(dāng)對片外RAM尋址時,DPTR可作為間接尋址寄存器使用:從外部數(shù)據(jù)存儲器取數(shù)MOVXA,@DPTR送數(shù)到外部數(shù)據(jù)存儲器MOVX@DPTR,A

2.2.3特殊功能寄存器2/2/202340(6)程序計(jì)數(shù)器PC(ProgramCounter)PC是16位的二進(jìn)制計(jì)數(shù)器,專門用于存儲CPU要執(zhí)行的下一條指令在ROM中的地址,控制程序的執(zhí)行順序。PC沒有地址,是不可尋址的,用戶無法對它進(jìn)行讀寫,但可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其值,以實(shí)現(xiàn)程序的轉(zhuǎn)移。單片機(jī)復(fù)位時,PC中內(nèi)容為0000H,從0000H單元取轉(zhuǎn)移指令,轉(zhuǎn)到主程序開始執(zhí)行。

2.2.3特殊功能寄存器2/2/202341注意事項(xiàng)1、訪問SFR寄存器只能使用直接尋址方式,書寫時既可使用寄存器符號,也可使用寄存器單元地址。2、ROM與RAM片內(nèi)外地址重疊,但不會產(chǎn)生操作混亂。因?yàn)樗鼈冇刹煌牟僮髦噶詈虴A信號控制來自動區(qū)分重疊空間的。(指令MOVC專用訪問ROM,EA信號控制片內(nèi)外ROM,指令MOVX專用訪問片外RAM)。3、片外RAM與I/O端口統(tǒng)一編址。所有外圍I/O端口的地址均占用RAM單元地址,使用與訪問外部RAM相同的傳送指令。(7)并行I/O口P0~P3均為8位,可實(shí)現(xiàn)數(shù)據(jù)在端口的輸入和輸出。分別是I/O端口P0~P3的鎖存器,可進(jìn)行位尋址。所有訪問RAM單元的指令,都可用來訪問I/O端口。2/2/202342下圖為各類存儲器在存儲器空間的位置總結(jié)2/2/2023432.3.1P0口的工作原理及應(yīng)用

2.3.2P1口的工作原理及應(yīng)用

2.3.3P2口的工作原理及應(yīng)用

2.3.4P3口的工作原理及應(yīng)用【重點(diǎn)與難點(diǎn)】重點(diǎn)是四個I/O口的功能及應(yīng)用方法。難點(diǎn)是四個I/O口的工作原理。

2.351系列單片機(jī)的輸入/輸出口2/2/20234451系列單片機(jī)有4個8位并行I/O端口P0~P3。每個端口都有8根I/O口線,每根線都能獨(dú)立的作為輸入或輸出。具有字節(jié)尋址和位尋址功能。

P0口是一個三態(tài)雙向I/O口,可作為地址/數(shù)據(jù)總線使用,也可作為通用I/O口使用??沈?qū)動8個LS型TTL負(fù)載。(1)用作通用I/O口(當(dāng)系統(tǒng)無外擴(kuò)展存儲器時)

①用作輸出口。需要外接10KΩ上拉電阻。

②用作輸入口。有兩種讀入方式:“讀鎖存器”和“讀引腳”。當(dāng)執(zhí)行“讀引腳”指令前,需人為的在鎖存器中寫入“1”。(2)用作地址/數(shù)據(jù)總線(當(dāng)系統(tǒng)外擴(kuò)展存儲器時)

P0口作為地址/數(shù)據(jù)總線使用時是一個真正的雙向口,而作為通用I/O口使用時屬于準(zhǔn)雙向口。2/2/202345P1口作為通用I/O使用,屬于準(zhǔn)雙向口。作為輸出時,無需再接上拉電阻,每個引腳可驅(qū)動4個LSTTL門電路。作輸入口時,必須先向鎖存器寫“1”。P2口作為通用I/O或高8位地址總線使用。(1)作通用I/O口(當(dāng)片外只擴(kuò)展256BRAM且無外擴(kuò)ROM時)特點(diǎn)同P1口(2)作高8位地址總線(當(dāng)外擴(kuò)RAM>256B或外擴(kuò)ROM時)P2口中只有某幾根口線作地址使用時,剩下的口線不能作為通用I/O口線使用,可作為RAM或I/O口的片選信號;P3口(1)P3口用作第一功能(通用I/O口)特點(diǎn)同P1口(2)P3口第二功能P3口的某些口線作第二功能時,剩下的口線可以單獨(dú)作為通用I/O口線使用。2/2/2023462.4.1片內(nèi)振蕩器及時鐘信號的產(chǎn)生

2.4.2時序及有關(guān)概念

2.4.3指令的取指令/執(zhí)行時序

2.4.4訪問片外存儲器的操作時序【重點(diǎn)與難點(diǎn)】重點(diǎn)是時鐘電路的設(shè)計(jì)、時序有關(guān)的幾個概念及指令執(zhí)行時序。難點(diǎn)是訪問片外存儲器的操作時序。

2.4時鐘電路與時序2/2/202347時鐘電路有兩種方式:內(nèi)部時鐘方式和外部時鐘方式時鐘周期(節(jié)拍)、狀態(tài)、機(jī)器周期、指令周期時鐘周期:Tosc=1/fosc1個機(jī)器周期=6個狀態(tài)周期=12個時鐘周期1條指令周期=1、2、4個機(jī)器周期指令的取指/執(zhí)行時序CPU執(zhí)行任何一條指令都分為取指令和執(zhí)行指令兩個階段。

ALE信號是用于鎖存地址的選通信號,由時鐘頻率的1/6。通常,在每個機(jī)器周期內(nèi)ALE信號出現(xiàn)兩次,時刻為S1P2-S2P1和S4P2-S5P1。每出現(xiàn)一次ALE信號,CPU進(jìn)行一次讀指令操作,但并不是每條指令在ALE信號生效時都能有效地讀取指令。

2.4時鐘電路與時序2/2/2023482.5.1復(fù)位與復(fù)位電路介紹

2.5.2單片機(jī)復(fù)位后的狀態(tài)【重點(diǎn)與難點(diǎn)】重點(diǎn)是復(fù)位電路和復(fù)位后各寄存器的初始狀態(tài)。難點(diǎn)是復(fù)位后各寄存器的初始狀態(tài)。

2.551系列單片機(jī)的復(fù)位電路

2/2/202349復(fù)位是一種操作,就是使CPU和系統(tǒng)中的其它部件都置為一個確定的初始狀態(tài),并從這個初始狀態(tài)開始工作。

復(fù)位可以使死機(jī)狀態(tài)下的單片機(jī)重新啟動。

2.551系列單片機(jī)的復(fù)位電路

1.復(fù)位與復(fù)位電路

復(fù)位可分為上電復(fù)位、按鍵復(fù)位(外部復(fù)位)和內(nèi)部復(fù)位。外部復(fù)位就是使RST端上保持2個機(jī)器周期以上的高電平,內(nèi)部復(fù)位就是WDT產(chǎn)生的復(fù)位。

2/2/202350

2.551系列單片機(jī)的復(fù)位電路

上電復(fù)位和按鍵復(fù)位的電路

2.單片機(jī)復(fù)位后的狀態(tài)

單片機(jī)復(fù)位后,所有的內(nèi)部SFR和一些引腳都被賦予默認(rèn)值,SFR狀態(tài)如下表所示。ALE和PSEN引腳輸出高電平,即ALE==1,PC=0000H,單片機(jī)從起始地址0000H開始執(zhí)行程序。晶振為6MHz2/2/202351寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTH000HACC00HTL000HB00HTH100HPSW00HTL100HSP07HTH200HDP00000HTL200HDP10000HTMOD00HP0~P3FFHT2MOD00HSCON00HTCON00HIP×××0000BT2CON00HIE0×××0000BRCAP1H00HWDTRST××××××××BRCAP2H00HAUXR×××00××0BAUXR1×××××××0B表2-7復(fù)位后片內(nèi)SFR的狀態(tài)2/2/202352第3章:指令系統(tǒng)和程序設(shè)計(jì)方法

3.1指令系統(tǒng)概述3.2尋址方式3.3數(shù)據(jù)傳送類指令3.4算術(shù)運(yùn)算類指令

3.8匯編語言程序設(shè)計(jì)3.5邏輯運(yùn)算類指令3.6位操作類指令3.7控制轉(zhuǎn)移類指令2/2/20235351系列單片機(jī)的指令系統(tǒng)有七種尋址方式:立即尋址:MOVA,#30H;(A)←30H直接尋址:MOVA,30H;(A)←(30H)寄存器尋址:MOVA,Rn;(A)←(Rn)間接尋址:MOVA,@Ri;(A)←((Ri))位尋址:SETBPSW.3;(PSW.3)←1

變址尋址:

MOVCA,@A+PC/MOVCA,@A+DPTR相對尋址:JZrel

2/2/202354片內(nèi)RAM數(shù)據(jù)傳送類指令:

1.以累加器A為目的操作數(shù)的指令(4條)

MOVA,Rn;(A)←(Rn),(n=0~7) MOVA,direct;(A)←(direct) MOVA,@Ri;(A)←((Ri)),(i=0、1) MOVA,#data;(A)←data

2.以寄存器Rn為目的操作數(shù)的指令(3條)

MOVRn,A;(Rn)←(A),(n=0~7)MOVRn,direct;(Rn)←(direct),(n=0~7)

MOVRn,#data;(Rn)←data,(n=0~7)

4.以間接地址為目的操作數(shù)的指令(3條)

MOV@Ri,A;((Ri))←(A)MOV@Ri,direct;((Ri))←(direct)MOV@Ri,#data;((Ri))←data

3.3數(shù)據(jù)傳送類指令2/2/202355片內(nèi)RAM數(shù)據(jù)傳送類指令:

3.以直接地址為目的操作數(shù)的指令(5條)

MOVdirect,A;(direct)←(A)MOVdirect,Rn;(direct)←(Rn),(n=0~7)MOVdirectl,direct2;(direct1)←(direct2)MOVdirect,@Ri;(direct)←((Ri)),(i=0、1)MOVdirect,#data;(direct)←data5.十六位數(shù)據(jù)的傳遞指令(1條)

MOVDPTR,#data16;(DPTR)←data16

指令功能:將16位立即數(shù)送入DPTR,高8位送入DPH,低8位送入DPL。2/2/202356訪問外部RAM數(shù)據(jù)傳送指令:

MOVXA,@Ri;(A)←((Ri))讀操作MOVX@Ri,A;((Ri))←(A)寫操作MOVXA,@DPTR;(A)←((DPTR))讀MOVX@DPTR,A;((DPTR))←(A)寫程序存儲器向A傳送數(shù)據(jù)指令:共有2條,又稱為查表指令屬于變址尋址指令,用于從ROM中查找數(shù)據(jù)。指令的格式為:MOVCA,@A十DPTR;(A)←((A)十(DPTR))MOVCA,@A十PC;(PC)←(PC)十1,(A)←((A)十(PC))2/2/202357堆棧操作指令:

共有2條,對應(yīng)進(jìn)棧和出棧兩種操作指令的格式為:PUSHdirect;(SP)←(SP)+1,(SP)←(direct)POPdirect;(direct)←(SP),(SP)←(SP)-1堆棧操作特點(diǎn)是“先進(jìn)后出”主要作用是保護(hù)斷點(diǎn)和恢復(fù)現(xiàn)場。數(shù)據(jù)交換指令1.字節(jié)交換指令(XCH,Exchange

3條)

XCHA,Rn;(A)←→(Rn)XCHA,@Ri;(A)←→((Ri))XCHA,direct;(A)←→(direct)2.半字節(jié)交換指令(1條)

XCHDA,@Ri;(A)3~0←→((Ri))3~03.累加器A高低半字節(jié)交換指令(1條)

SWAPA;(A)7~4←→(A)3~0

2/2/202358算術(shù)運(yùn)算類指令:共有24條,包括加、減、乘、除4種基本算術(shù)運(yùn)算指令,運(yùn)算的結(jié)果將使PSW的相應(yīng)標(biāo)志位置1或清0。

加法指令1.不帶進(jìn)位位的加法指令(ADD,Addition4條)

ADDA,Rn ;(A)←(A)+(Rn) ADDA,direct ;(A)←(A)+(direct) ADDA,@Ri;(A)←(A)+((Ri)) ADDA,#data;(A)←(A)+#data

3.4算術(shù)運(yùn)算類指令2/2/202359使用加法指令時,運(yùn)算結(jié)果對PSW中各標(biāo)志位的影響:(1)如果位7有進(jìn)位,則進(jìn)位標(biāo)志Cy置1,否則Cy清0。(2)如果位3有進(jìn)位,輔助進(jìn)位標(biāo)志Ac置1,否則Ac清0。(3)如果位6有進(jìn)位,而位7沒有進(jìn)位,或者位7有進(jìn)位,而位6沒有進(jìn)位,則溢出標(biāo)志位OV置1,否則OV清0。2.帶進(jìn)位加法指令(ADDC,4條)ADDCA,Rn;(A)←(A)+(Rn)+(CY)ADDCA,direct;(A)←(A)+(direct)+(CY)ADDCA,@Ri;(A)←(A)+((Ri))+(CY)ADDCA,#data;(A)←(A)+data+(CY)說明:指令運(yùn)行對于標(biāo)志位的影響與不帶進(jìn)位加法指令相同。

帶進(jìn)位加法指令A(yù)DDC常用于完成“多字節(jié)運(yùn)算”2/2/2023603.增量指令(INC,Increase5條)INC A ;(A)←(A)+1影響PINC Rn ;(Rn)←(Rn)+1INC direct;(direct)←(direct)+1INC @Ri ;((Ri))←((Ri))+1INC DPTR ;(DPTR)←(DPTR)+14.十進(jìn)制調(diào)整指令(DecimalAdjustforAddition

1條)DAA注意:(1)這條指令必須緊跟在ADD或ADDC指令之后,對加法指令的結(jié)果進(jìn)行調(diào)整,且這里的ADD或ADDC的操作是對壓縮的BCD碼表示的數(shù)進(jìn)行運(yùn)算。(2)DA指令不影響溢出標(biāo)志。2/2/2023611.帶借位減法指令(SUBB,SubtractwithBorrow4條)SUBBA,#data;(A)←(A)-data-CySUBBA,Rn;(A)←(A)-(Rn)-CySUBBA,direct;(A)←(A)-(direct)-CySUBBA,@Ri;(A)←(A)-((Ri))-Cy2.減1指令(DEC,

Decrease4條)DECA;(A)←(A)-1DECRn;(Rn)←(Rn)-1DECdirect;(direct)←(direct)-1DEC@Ri;((Ri))←((Ri))-1對標(biāo)志位的影響和ADD相同。2/2/202362

功能:A和B中數(shù)相乘,乘積的低8位存于A中,高8位存于B中。指令執(zhí)行后對PSW的影響如下: (1)若乘積大于255,OV=1;否則OV=0; (2)Cy總是為“0”。P受累加器A中的內(nèi)容影響。乘法指令(MUL,Multiplication) MUL AB;(B)(A)←(A)×(B)功能:A中的數(shù)除以B中數(shù),商放在A中,余數(shù)放在B中。指令執(zhí)行對PSW的影響如下:(1)Cy、OV,均清“0”(2)若(B)=0(即除數(shù)為0時),則存放結(jié)果的A、B中的內(nèi)容不定,則溢出標(biāo)志位OV置1。P隨累加器A中的內(nèi)容變化。

除法指令(DIV,Division)DIVAB;(A)←(A/B)的商,(B)←(A/B)的余數(shù))2/2/202363

邏輯運(yùn)算指令共24條,涉及累加器A時,影響P,但對AC、OV及CY沒有影響。1.累加器清“0”(CLR,Clear1條) CLRA;(A)←02.累加器按位取反指令(CPL,Complment1條) CPLA;(A)←(/A)3.循環(huán)移位指令(4條)RLA;將A的內(nèi)容循環(huán)左移1位RRA;循環(huán)右移1

RLCA;帶Cy循環(huán)左移1RRCA;帶Cy循環(huán)右移1位3.5邏輯運(yùn)算類指令2/2/202364

1.邏輯“與”操作指令(6條)具有對某位清0的作用ANL A,Rn ;(A)←

(A)∧(Rn)ANL A,direct ;(A)←

(A)∧(direct)ANL A,@Ri ;(A)←

(A)∧((Ri))ANL A,#data ;(A)←

(A)∧dataANL direct,A ;(direct)←

(direct)∧(A)ANLdirect,#data;(direct)←(direct)∧data2.邏輯“或”操作指令(6條)具有對某位置1的作用ORL A,Rn ;(A)←

(A)∨(Rn)ORL A,direct ;(A)←

(A)∨(direct)ORL A,@Ri ;(A)←

(A)∨((Ri))ORL A,#data ;(A)←

(A)∨dataORL direct,A ;(direct)←

(direct)∨(A)ORL direct,#data;(direct)←

(direct)∨data2/2/202365

3.邏輯異或指令(6條)對某些位進(jìn)行取反,其它位保持不變的作用;與“1”相異或?qū)ο鄳?yīng)位取反;與“0”相“異或”則保留相應(yīng)位不變。XRL A,Rn ;XRL A,direct ;XRL A,@Ri ;XRL A,#data ;XRL direct,A ;XRL direct,#data;

位變量傳送指令有互逆的2條,可實(shí)現(xiàn)進(jìn)位位C與某直接尋址位bit間內(nèi)容的傳送。MOV C,bit ;(CY)←

(bit)MOV bit,C ;(bit)←

(CY)2/2/202366位變量邏輯操作指令:位變量邏輯“與”和邏輯“或”,共有4條指令。

ANLC,bit ;(Cy)←(Cy)∧(bit)ANLC,/bit ;(Cy)←(Cy)∧(/bit)ORLC,bit ;(Cy)←(Cy)∨(bit)ORLC,/bit ;(Cy)←(Cy)∨(/bit)注意:位變量邏輯運(yùn)算中無邏輯異或(XRL)。CPLbit;SETBC;SETBbit;

CLRC;CLRbit;CPLC;位變量修改指令分別是對位進(jìn)行清0、置1和取反指令。2/2/2023673.7控制轉(zhuǎn)移類指令

轉(zhuǎn)移類指令的共同特點(diǎn)是可以改變程序執(zhí)行的順序,使CPU轉(zhuǎn)移到另一處執(zhí)行程序,或者是繼續(xù)順序地執(zhí)行程序。無論是哪一類指令,執(zhí)行后都將改變程序計(jì)數(shù)器PC的值。

轉(zhuǎn)移類指令分為四類:無條件轉(zhuǎn)移、條件轉(zhuǎn)移、調(diào)用指令及返回指令,共計(jì)有21條指令,另外還有一條NOP指令。除NOP指令執(zhí)行時間為一個機(jī)器周期外,其它轉(zhuǎn)移指令的執(zhí)行時間都是兩個機(jī)器周期。2/2/2023683.7.3調(diào)用與返回指令3.返回指令(2條)(1)子程序的返回 RET;PC15~PC8←(SP),(SP)←(SP)-1 ;PC7~PC0←(SP),(SP)←(SP)-1

功能:RET(Return)指令從堆棧中取出16位斷點(diǎn)地址送回PC,使子程序返回主程序。(2)中斷返回指令 RETI;PC15~PC8←(SP),(SP)←(SP)-1 ;PC7~PC0←(SP),(SP)←(SP)-1

功能:RETI(ReturnforInterrupt)將堆棧頂部2字節(jié)的內(nèi)容送到PC中,該指令用于中斷服務(wù)程序的末尾。與RET指令不同之處,RET1指令清除了中斷響應(yīng)時被置1的相關(guān)內(nèi)部寄存器的狀態(tài)。2/2/2023691.ORG(ORiGin)匯編起始地址命令格式:ORG16位絕對地址或表達(dá)式功能:規(guī)定程序塊或數(shù)據(jù)塊存放的起始地址。例如:ORG2000HSTART:MOVA,#00H ┋規(guī)定標(biāo)號START代表地址為2000H開始。在一個源程序中,可多次使用ORG指令,來規(guī)定不同的程序段的起始地址。但是,地址必須由小到大排列,地址不能交叉、重疊。如程序段前無ORG偽指令,則匯編得到的目標(biāo)程序?qū)?000H開始。

1.匯編起始地址例如: ORG2000H ┇ORG2500H ┇ORG3000H ┇錯誤:ORG 2500H┇

ORG 2000H┇

ORG 3000H

2/2/202370END(ENDofassembly)匯編終止命令格式:END功能:匯編語言源程序的結(jié)束標(biāo)志,用于終止源程序的匯編工作。在整個源程序中只能有一條END命令,且位于程序的最后。如果END出現(xiàn)在程序中間,其后的源程序,將不進(jìn)行匯編處理。2.匯編結(jié)束命令

2/2/202371格式:[標(biāo)號:]DB8位字節(jié)數(shù)據(jù)表功能:用于從指定的地址開始,在程序存儲器連續(xù)單元中定義字節(jié)數(shù)據(jù)。常用于存放數(shù)據(jù)表格。說明:字節(jié)數(shù)據(jù)可以是1個字節(jié)的常數(shù)或字符,或用逗號分開的字符串,或用引號括起來的字符串。例如:ORG 2001HDB 40H,24,“C”,“B”;匯編后(2001H)=40H(2002H)=18H(十進(jìn)制數(shù)24)(2003H)=43H(字符“C”的ASCII碼)(2004H)=42H(字符“B”的ASCII碼)顯然,DB功能是從指定單元開始定義(存儲)若干字節(jié),十進(jìn)制數(shù)自然轉(zhuǎn)換成十六進(jìn)制數(shù),字母按ASCII碼存儲。3.定義字節(jié)命令2/2/202372第4章:中斷系統(tǒng)

4.1中斷系統(tǒng)概述4.251系列單片機(jī)的中斷系統(tǒng)4.3

中斷處理過程4.4中斷系統(tǒng)應(yīng)用2/2/2023734.1中斷系統(tǒng)概述引起中斷的原因稱為中斷源。中斷源提出的服務(wù)請求稱為中斷請求。原來正在運(yùn)行的程序稱為主程序,主程序被斷開的位置(地址)稱為斷點(diǎn)。中斷處理包括4個步驟:中斷請求、中斷響應(yīng)、中斷處理和中斷返回。CPU響應(yīng)中斷請求時,將先把斷點(diǎn)處的PC值壓入堆棧保存起來,這個過程稱為保護(hù)斷點(diǎn)。(恢復(fù)斷點(diǎn):執(zhí)行RETI指令)在中斷服務(wù)程序開始,由用戶把相關(guān)寄存器和標(biāo)志位的狀態(tài)也壓入堆棧保存起來,這稱為保護(hù)現(xiàn)場。(恢復(fù)現(xiàn)場)2/2/2023744.251系列單片機(jī)的中斷系統(tǒng)2/2/202375中斷控制(1)定時器控制寄存器TCON(2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論