版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機原理及應用
復習大綱考試題型
一.單項選擇(2分*10)
二.填空(1分*20)
三.簡答題(5分*5)
四.改錯題(2分*5)
五.閱讀程序后填空(4分*2)
六.編程題(7分+10分)第一章緒論
第二章結(jié)構(gòu)
第三章指令系統(tǒng)
第四章匯編語言程序設(shè)計
第五章中斷、定時器/計數(shù)器、串行通信第一章
單片機的基本概念
單片微型計算機(單片機):SingleChipMicrocomputer微處理器:Micro
Processor
Unit(MPU)微控制器:Micro
Controller
Unit(MCU)組成微型計算機的各個功能部件:
中央處理器(CPU)、隨機存儲器(RAM)、只讀存儲器(ROM)、輸入/輸出接口電路、定時器/計數(shù)器以及串行通信接口等集成在一塊芯片中,構(gòu)成一個完整的微型計算機。
單片機有哪兩種基本結(jié)構(gòu)及特點?MCS-51單片機存儲器的結(jié)構(gòu)特點?存儲空間的劃分?訪問不同的存儲空間的指令格式區(qū)別?1)哈佛結(jié)構(gòu)和普林斯頓結(jié)構(gòu)。2)MCS-51系列單片機存儲器采用哈佛結(jié)構(gòu),數(shù)據(jù)存儲器和程序存儲器彼此是獨立的,并有各自存儲空間的訪問指令。3)從物理地址空間看,存儲器分:片內(nèi)程序存儲器ROM、片外程序存儲器ROM、片內(nèi)數(shù)據(jù)存儲器RAM、片外數(shù)據(jù)存儲器RAM。4)訪問片內(nèi)、外程序存儲器空間用:MOVC訪問片內(nèi)數(shù)據(jù)存儲器空間和SFR(SpecialFunctionRegister)用:MOV訪問片外數(shù)據(jù)存儲器地址空間用:MOVX第二章MCS-51系列單片機的硬件結(jié)構(gòu)特點中央處理器
程序存儲器、數(shù)據(jù)存儲器
定時器/計數(shù)器
并行輸入輸出(I/O)接口
全雙工串行口
中斷系統(tǒng)時鐘電路
布爾處理器
P3口第二功能表引腳第二功能P3.0串行口輸入端P3.1串行口輸出端P3.2外部中斷0請求輸入端,低電平有效P3.3外部中斷1請求輸入端,低電平有效P3.4定時器/計數(shù)器0計數(shù)脈沖輸入端P3.5定時器/計數(shù)器1計數(shù)脈沖輸入端P3.6外部數(shù)據(jù)存儲器寫選通信號輸出端,低電平有效P3.7RXDTXDINT0INT1T0T1WRRD外部數(shù)據(jù)存儲器讀選通信號輸出端,低電平有效控制線
(1)ALE/PROG(30腳):地址鎖存有效信號輸出端。ALE在每個機器周期內(nèi)輸出兩個脈沖。在訪問片外程序存儲器期間,下降沿用于控制鎖存P0輸出的低8位地址;在不訪問片外程序存儲器期間,可作為對外輸出的時鐘脈沖或用于定時目的。但要注意,在訪問片外數(shù)據(jù)存儲器期間,ALE脈沖會跳空一個,此時作為時鐘輸出就不妥了(詳見CPU時序)。對于片內(nèi)含有EPROM的機型,在編程期間,該引腳用作編程脈沖PROG的輸入端。2.2MCS-51單片機的引腳功能(2)PSEN(29腳):片外程序存儲器讀選通信號輸出端,低電平有效。當從外部程序存儲器讀取指令或常數(shù)期間,每個機器周期該信號兩次有效,以通過數(shù)據(jù)總線P0口讀回指令或常數(shù)。在訪問片外數(shù)據(jù)存儲器期間,PSEN信號將不出現(xiàn)。
(3)RST/VPD(9腳):RST即為RESET,VPD為備用電源。該引腳為單片機的上電復位或掉電保護端。當單片機振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機器周期的高電平,就可實現(xiàn)復位操作,使單片機回復到初始狀態(tài)。上電時,考慮到振蕩器有一定的起振時間,該引腳上高電平必須持續(xù)10ms以上才能保證有效復位。當VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時,該引腳可接上備用電源VPD(+5V)為內(nèi)部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。(4)EA/VPP(31腳):EA為片外程序存儲器選用端。該引腳有效(低電平)時,只選用片外程序存儲器,否則單片機上電或復位后選用片內(nèi)程序存儲器。對于片內(nèi)含有EPROM的機型,在編程期間,此引腳用作21V編程電源VPP的輸入端。綜上所述,MCS-51系列單片機的引腳可歸納為以下兩點:
(1)單片機功能多,引腳數(shù)少,因而許多引腳都具有第二功能。
(2)單片機對外呈現(xiàn)3總線形式,由P2、P0口組成16位地址總線;由P0口分時復用為數(shù)據(jù)總線;由ALE、PSEN、RST、EA與P3口中的INT0、INT1、T0、T1、WR、RD共10個引腳組成控制總線。由于是16位地址線,因此,可使片外存儲器的尋址范圍達到64KB。 2.3中央處理器、時鐘及時序
運算部件運算部件以算術(shù)邏輯單元ALU為核心,包括布爾處理器、累加器ACC、寄存器B、暫存器、程序狀態(tài)字PSW等許多部件。它能實現(xiàn)數(shù)據(jù)的算術(shù)邏輯運算、位變量處理和數(shù)據(jù)傳輸操作
2.3中央處理器、時鐘及時序
專用寄存器組累加器A(Accumulator)通用寄存器B(GeneralRegister)程序狀態(tài)字PSW(ProgramStatusWord)程序計數(shù)器PC(ProgramCounter)數(shù)據(jù)指針DPTR(DataPointor)堆棧指針SP(StackPointor)CY(PSW.7)——進位標志位。
AC(PSW.6)——輔助進位(或稱半進位)標志。
F0(PSW.5)——由用戶定義的標志位。
RS1(PSW.4)、RS0(PSW.3)——工作寄存器組選擇位。
OV(PSW.2)——溢出標志位。由硬件置位或清零。
PSW.1——未定義位。
P(PSW.0)——奇偶標志位。CYACF0RS1RS0OV—PPSW.7PSW.0
布爾處理機
布爾處理(即位處理)是MCS—51單片機ALU所具有的一種功能。單片機指令系統(tǒng)中的布爾指令集(17條位操作指令),存儲器中的位地址空間,以及借用程序狀態(tài)標志寄存器PSW中的進位標志CY作為位操作“累加器”,構(gòu)成了單片機內(nèi)的布爾處理機。布爾處理機的存儲空間:20F~2FH
振蕩周期:振蕩脈沖的周期,也稱為時鐘周期。狀態(tài)周期:兩個振蕩周期為一個狀態(tài)周期,用S表示。兩個振蕩周期作為兩個節(jié)拍分別稱為節(jié)拍P1和節(jié)拍P2。在狀態(tài)周期的前半周期P1有效時,通常完成算術(shù)邏輯操作;在后半周期P2有效時,一般進行內(nèi)部寄存器之間的傳輸。2.3中央處理器、時鐘及時序
機器周期:一個機器周期包含6個狀態(tài)周期,用S1、S2、…、S6表示;共12個節(jié)拍,依次可表示為S1P1、S1P2、S2P1、S2P2、…、S6P1、S6P2。
指令周期:執(zhí)行一條指令所占用的全部時間,它以機器周期為單位。MCS-51系列單片機除乘法、除法指令是4周期指令外,其余都是單周期指令和雙周期指令。若用12MHz晶振,則單周期指令和雙周期指令的指令周期時間分別為1μs和2μs,乘法和除法指令為4μs。2.3中央處理器、時鐘及時序
復位電路與其它計算機一樣,MCS-51單片機系統(tǒng)常常有上電復位和按鈕復位兩種方法。所謂上電復位,是指計算機加電瞬間,要在RST引腳上出現(xiàn)大于10ms的正脈沖,使單片機進入復位狀態(tài)。按鈕復位是指用戶按下“復位”按鈕,使單片機進入復位狀態(tài)。2.4復位與復位電路2.5存儲器
MCS—51單片機存儲器分類及配置MCS—51單片機存儲器的分類從物理結(jié)構(gòu)上可分為:片內(nèi)、片外程序存儲器(8031和8032沒有片內(nèi)程序存儲器)與片內(nèi)、片外數(shù)據(jù)存儲器4個部分;從尋址空間分布可分為:程序存儲器、內(nèi)部數(shù)據(jù)存儲器和外部數(shù)據(jù)存儲器3大部分;從功能上可分為:程序存儲器、內(nèi)部數(shù)據(jù)存儲器、特殊功能寄存器、位地址空間和外部數(shù)據(jù)存儲器5大部分。51單片機片內(nèi)ROM和RAM大小:片內(nèi)ROM:4KB片內(nèi)RAM:128B2.5存儲器程序的7個特殊入口地址MCS-51單片機復位、中斷入口地址操作入口地址復位0000H外部中斷00003H定時器/計數(shù)器0溢出000BH外部中斷10013H定時器/計數(shù)器1溢出001BH串行口中斷0023H定時器/計數(shù)器器0溢出或T2EX端負跳變(52子系列)002BH2.5存儲器片內(nèi)數(shù)據(jù)存儲器的分區(qū)及地址范圍?工作寄存器區(qū)(00H-1FH)位尋址區(qū)(20H-2FH)堆?;驍?shù)據(jù)緩沖區(qū)(30H-FFH)
工作寄存器分成4組,每組都有8個寄存器,用R0~R7來表示。程序中每次只用1組,其它各組不工作。使用哪一組寄存器工作由程序狀態(tài)字PSW中的PSW.3(RS0)和PSW.4(RS1)兩位來選擇上電復位后選擇哪個工作寄存器組:工作寄存器區(qū)
工作寄存器0組工作寄存器組的選擇表PSW.4(RS1)PSW.3(RS0)當前使用的工作寄存器組R0~R7000組(00H~07H)011組(08H~0FH)102組(10H~17H)113組(18H~1FH)3.1指令格式3.2MCS—51的尋址方式3.3數(shù)據(jù)傳送類指令3.4算術(shù)運算類指令3.5邏輯運算類指令3.6位操作指令3.7控制轉(zhuǎn)移類指令第三章指令系統(tǒng)3.1指令格式MCS-51匯編指令由操作碼助記符字段和操作數(shù)字段所組成。指令格式如下:標號:操作碼助記符[(目的操作數(shù)),(源操作數(shù))];注釋例如:
SS:MOVA,#4FH;立即數(shù)4FH送A標號:用符號標明該指令所在的符號地址,根據(jù)實際需要設(shè)置。在其他指令的操作數(shù)中可以引用該標號作為符號地址,便于控制程序的轉(zhuǎn)向或?qū)ぶ?。標號以英文字母開頭的字母、數(shù)字和某些規(guī)定的特殊符號的序列,一般不超過6個符號,否則,超過部分在源程序匯編時將被刪去。3.1指令格式操作碼:用來規(guī)定指令所完成的操作,用規(guī)定的匯編語言助記符表示。操作數(shù):表示操作的對象,可能是一個具體的數(shù)據(jù),也可能是指出取得數(shù)據(jù)的地址或符號。分為目的操作數(shù)和源操作數(shù)兩部分,中間用“,”分開。操作數(shù)可以有1、2、3個或者沒有(如空操作指令)。注釋:對該指令功能的解釋,可有可無。3.1指令格式數(shù)據(jù)操作
MCS-51系列單片機的CPU能對位、半字節(jié)、字節(jié)和雙字節(jié)數(shù)據(jù)進行各種操作,它們包括數(shù)據(jù)傳送、算術(shù)運算、邏輯運算、布爾處理和控制轉(zhuǎn)移等操作。指令類型
MCS-51匯編語言有111種指令,42種操作碼助記符用來描述33種操作功能。按執(zhí)行時間分:有單周期指令;雙周期指令;四周期指令;按功能分類:
數(shù)據(jù)傳送指令;算術(shù)運算指令;邏輯運算指令;位操作指令;控制轉(zhuǎn)移指令。3.2MCS—51的尋址方式
尋址方式:是在指令中給出的尋找操作數(shù)地址的方法。51單片機共有7種尋址方式:1、寄存器尋址方式:在指令中將指定寄存器的內(nèi)容作為操作數(shù)。在這種尋址中,用符號名稱表示寄存器。例如:MOVA,R3尋址范圍:四個寄存器組的32個通用寄存器R0~R7。
A,B,DPTR,Cy(位)。3.2MCS—51的尋址方式2、直接尋址方式:在指令中直接給出操作數(shù)單元的地址。例如:MOV65H,A
尋址范圍:①內(nèi)部RAM地址空間②SFR地址空間(只能用直接
③位地址空間(20H~2FH)尋址方式)3.2MCS—51的尋址方式3、寄存器間接尋址方式:在指令中給出的寄存器內(nèi)容是操作數(shù)的地址,從該地址中取出的數(shù)才是操作數(shù)。表示形式:應在寄存器名稱前面加@。例如:MOVA,@R0
尋址范圍:①工作寄存器R0、R1②堆棧指針SP③數(shù)據(jù)指針DPTR3.2MCS—51的尋址方式4、立即尋址方式:在指令中直接給出操作數(shù),出現(xiàn)在指令中的操作數(shù)叫立即數(shù)。為區(qū)別于直接地址,立即數(shù)前加上“#”。例如:MOVA,#62H尋址范圍:程序存儲器立即數(shù)。3.2MCS—51的尋址方式5、變址間接尋址方式:以DPTR或PC作基址寄存器,累加器A作變址寄存器,以兩者內(nèi)容相加。形成的16位程序存儲器地址作為操作數(shù)地址。例如:MOVCA,@A+DPTR(A)=54H(DPTR)=1256H3.2MCS—51的尋址方式尋址范圍:只能對程序存儲器進行尋址,或者說是專門針對程序存儲器的尋址方式。變址間接尋址指令只有三條:
MOVCA,@A+DPTR(適用于查表操作)
MOVCA,@A+PC
JMP@A+DPTR3.2MCS—51的尋址方式6、相對尋址方式:以PC的當前值為基準,加上指令中給出的相對偏移量(rel)形成新的有效轉(zhuǎn)移地址。其中,rel是一個帶符號的8位二進制數(shù),能表示的范圍是-128~+127個字節(jié)單元之間。
目的地址=轉(zhuǎn)移指令所在地址+轉(zhuǎn)移指令字節(jié)數(shù)+rel例如:JC75H(設(shè)Cy=1)若rel為負數(shù),計算時用補碼運算3.2MCS—51的尋址方式7、位尋址方式:可以對數(shù)據(jù)位進行操作。例如:CPLP1.0MOVC,2BH;(把位尋址區(qū)的2BH位狀態(tài)送累加位C)尋址范圍:①片內(nèi)RAM中的位尋址區(qū)②可位尋址的SFR的位指令中使用符號說明Rn:當前選定工作寄存器組的R0~R7工作寄存器。其中n=0~7。#data:8位不帶符號的二進制立即數(shù),“?!睘榱⒓磾?shù)標識符(稱為前綴)。#datal6:16位二進制立即數(shù)。data:8位二進制碼內(nèi)部數(shù)據(jù)存儲器單元地址。它可以是內(nèi)部RAM(0~127或0~256)的某個單元地址或一個特殊功能寄存器的地址。@Ri:以當前工作寄存器R0或R1作間接尋址寄存器,以間接尋址(0~256)數(shù)據(jù)存儲器單元。其中“@”為間接尋址標識符(稱前綴),i=0或1。addr16:16位二進制碼地址。提供長調(diào)用(LCALL)或長轉(zhuǎn)移(LJMP)指令16位二進制碼地址,使之可轉(zhuǎn)向或調(diào)用64KB程序存儲器地址空間的任何單元。
指令中使用符號說明addr11:11位二進制碼地址。提供絕對調(diào)用(ACALL)或絕對轉(zhuǎn)移(AJMP)指令低11位(0~10)進制碼地址,高5位維持原值不變,因而只能使程序轉(zhuǎn)向或調(diào)用包含該ACALL或AJMP指令的下一條指令的第一個字節(jié)在內(nèi)的2KB范圍內(nèi)的程序存儲器地址空間。direct:8位直接尋址方式符號。
rel:帶符號的8位二進制碼偏移量(需用2的補碼表示)的符號。常用于相對轉(zhuǎn)移指令中,其轉(zhuǎn)移范圍相對于當前PC值的-128
~+127個字節(jié)單元的地址空間。bit:布爾(位)處理指令的直接尋址位符號。表示可直接位尋址的內(nèi)部RAM或特殊功能寄存器的位地址。C:最高進位標志位或布爾(位)處理累加器。
指令中使用符號說明↓:表示程序走向?!罕硎緮?shù)據(jù)傳送方向。←→
:表示數(shù)據(jù)交換。(X):表示X單元中的內(nèi)容。((X)):表示以X單元中的內(nèi)容為地址進行間接尋址。
指令介紹 51單片機的指令系統(tǒng),共有111條指令,按其功能可分為五大類:(1)數(shù)據(jù)傳送類指令(28條)(2)算術(shù)運算類指令(24條)(3)邏輯運算類指令(25條)(4)控制轉(zhuǎn)移類指令(17條)
(5)布爾操作(位)類指令(17條)
3.7控制轉(zhuǎn)移類指令控制轉(zhuǎn)移類指令有兩種:無條件轉(zhuǎn)移、條件轉(zhuǎn)移。一、無條件轉(zhuǎn)移類指令短跳轉(zhuǎn)指令相對轉(zhuǎn)移指令長跳轉(zhuǎn)指令間接跳轉(zhuǎn)指令3.7控制轉(zhuǎn)移類指令二、條件轉(zhuǎn)移指令
條件轉(zhuǎn)移指令是依某種特定條件轉(zhuǎn)移的指令。條件滿足才轉(zhuǎn)移〔相當于執(zhí)行一條相對轉(zhuǎn)移指令〕,條件不滿足時則順序執(zhí)行下面的指令。目的地址在以下一條指令的起始地址為中心的256字節(jié)范圍中(-128~+127B)。當條件滿足時,把PC加到指向下一條指令的第1個字節(jié)地址,再把有符號的相對偏移量加到PC上,計算出轉(zhuǎn)向地址。3.7控制轉(zhuǎn)移類指令三、調(diào)用與返回指令
在程序設(shè)計中,常常出現(xiàn)幾個地方都需要作功能完全相同的處理,為了減少程序編寫和調(diào)試的工作量,使某一段程序能被公用,于是引入了主程序和子程序的概念,指令系統(tǒng)中一般都有調(diào)用子程序的指令,以及從子程序返回主程序的指令。
通常把具有一定功能的公用程序段作為子程序,在子程序的末尾安排一條返回主程序的指令。
在一個程序中,往往在子程序中還會調(diào)用別的子程序,這稱為子程序嵌套。第4章匯編語言程序設(shè)計
80C51匯編語言語句結(jié)構(gòu)的基本格式偽指令的功能和應用匯編的概念程序設(shè)計的步驟和基本方法順序程序分支程序循環(huán)程序查表程序散轉(zhuǎn)程序標號:操作碼[目的操作數(shù),源操作數(shù)];注釋§4-1匯編語言程序設(shè)計基本概念一.
匯編語言及其語句結(jié)構(gòu)二.偽指令
在匯編時起控制作用,自身并不產(chǎn)生機器碼,而僅是為匯編服務的一些指令,稱為偽指令。偽指令不屬于80C51指令系統(tǒng)。常用的偽指令有以下幾種:⒈起始偽指令
ORG(Origin)
功能:規(guī)定ORG下面目標程序的起始地址。格式:ORG16位地址功能:將一個數(shù)據(jù)或特定的匯編符號賦予規(guī)定 的字符名稱。⒉結(jié)束偽指令END功能:匯編語言源程序的結(jié)束標志。在END后面的指令,匯編程序不再處理。格式:END⒊等值偽指令
EQU(Equate)格式:字符名稱EQU
數(shù)據(jù)或匯編符號⒋數(shù)據(jù)地址賦值偽指令
DATA格式:字符名稱DATA
表達式功能:將數(shù)據(jù)地址或代碼地址賦予規(guī)定的 字符名稱。⒌定義字節(jié)偽指令DB(DefineByte)格式:DB8位二進制數(shù)表功能:從指定的地址單元開始,定義若干 個8位內(nèi)存單元的數(shù)據(jù)。數(shù)據(jù)與數(shù)據(jù)之間用“,”分割。格式:字符名稱BIT
位地址⒍定義字偽指令DW(DefineWord)格式:DW16位二進制數(shù)表功能:從指定的地址單元開始,定義 若干個16位數(shù)據(jù)。⒎定義位地址偽指令BIT功能:將位地址賦予所規(guī)定的字符名稱。三.匯編
將匯編語言源程序轉(zhuǎn)換為計算機所能識別的機器語言代碼程序的過程稱為匯編。
匯編可分為:⒈手工匯編⒉計算機匯編⑷
匯編和調(diào)試四.程序設(shè)計的基本方法編寫程序要求:
不僅要完成規(guī)定的功能任務,而且還要求:
執(zhí)行速度快、占用內(nèi)存少、條理清晰、
閱讀方便、便于移植、巧妙而實用。一般應按以下幾個步驟進行:⑴分析問題,確定算法或解題思路⑵畫流程圖⑶編寫源程序
中斷的基本概念
80C51中斷源中斷控制寄存器中斷處理過程中斷優(yōu)先控制和中斷嵌套中斷系統(tǒng)的應用
80C51定時/計數(shù)器定時/計數(shù)器控制寄存器定時/計數(shù)器工作方式定時/計數(shù)器的應用中斷系統(tǒng)和定時/計數(shù)器
80C51中斷系統(tǒng)CPU暫時中止其正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行請求中斷的那個外設(shè)或事件的服務程序,等處理完畢后再返回執(zhí)行原來中止的程序,叫做中斷。⒉為什么要設(shè)置中斷?⑴提高CPU工作效率⑵具有實時處理功能⑶具有故障處理功能⑷實現(xiàn)分時操作一.中斷概述⒈什么叫中斷?⑴ INT0:外部中斷0,中斷請求信號由P3.2輸入。⑵ INT1:外部中斷1,中斷請求信號由P3.3輸入。⑶T0:定時/計數(shù)器0溢出中斷,對外部脈沖計數(shù)由P3.4輸入。⑷T1:定時/計數(shù)器1溢出中斷,對外部脈沖計數(shù)由P3.5輸入。⑸串行中斷:包括串行接收中斷RI和串行發(fā)送中斷TI。二.中斷源和中斷控制寄存器⒈中斷源
中斷源是指能發(fā)出中斷請求,引起中斷的裝置或事件。
80C51單片機的中斷源共有5個,其中2個為外部中斷源,3個為內(nèi)部中斷源:①中斷請求:定時和外中斷控制寄存器TCON;
串行控制寄存器SCON;②中斷允許控制寄存器IE;③中斷優(yōu)先級控制寄存器IP。⒉中斷控制寄存器
80C51單片機中涉及中斷控制的有3個方面4個特殊功能寄存器:INT0、INT1、T0、T1中斷請求標志放在TCON中串行中斷請求標志放在SCON中。⑴中斷請求控制寄存器(88H)TCOND7D6D5D4D3D2D1D0位名稱TF1—TF0—IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能T1
中斷標志—T0中斷標志—
中斷標志
觸發(fā)方式
中斷標志觸發(fā)方式TCON的結(jié)構(gòu)、位名稱、位地址和功能如下:TCON位功能:①TF1——T1溢出中斷請求標志
T1計數(shù)溢出后,TF1=1②TF0——T0溢出中斷請求標志
T0計數(shù)溢出后,TF0=1③IE1——外中斷中斷請求標志
當P3.3引腳信號有效時,IE1=1④IE0——外中斷中斷請求標志
當P3.2引腳信號有效時,IE0=1⑤IT1——外中斷觸發(fā)方式控制位
IT1=1,邊沿觸發(fā)方式;
IT1=0,電平觸發(fā)方式。⑥IT0——外中斷觸發(fā)方式控制位其意義和功能與IT1相似。串行控制寄存器SCON(98H)TCOND7D6D5D4D3D2D1D0位名稱——————TIRI位地址——————99H98H功能——————串行發(fā)送中斷標志串行接收中斷標志①TI——串行口發(fā)送中斷請求標志②RI——串行口接收中斷請求標志
80C51對中斷源的開放或關(guān)閉由中斷允許控制寄存器IE控制。
IE在特殊功能寄存器中,字節(jié)地址A8H,位地址分別是A8H~AFH。IE控制CPU對中斷源總的開放或禁止以及每個中斷源是否允許中斷。⑵中斷允許控制寄存器IE(A8H)IE的結(jié)構(gòu)、位名稱和位地址如下:IED7D6D5D4D3D2D1D0位名稱EA——ESET1EX1ET0EX0位地址AFH——ACHABHAAHA9HA8H中斷源CPU——串行口T1T0①EA——CPU中斷允許控制位
EA=1,CPU開中;
EA=0,CPU關(guān)中,且屏蔽所有5個中斷源。②EX0——外中斷INT0中斷允許控制位
EX0=1,INT0開中;EX0=0,INT0關(guān)中。③EX1——外中斷INT1中斷允許控制位
EX1=1,INT1開中;EX1=0,INT1關(guān)中。④ET0——定時/計數(shù)器T0中斷允許控制位
ET0=1,T0開中;ET0=0,T0關(guān)中。⑤ET1——定時/計數(shù)器T1中斷允許控制位
ET1=1,T1開中;ET1=0,T1關(guān)中。⑥ES——串行口中斷(包括串發(fā)、串收)允許控制位
ES=1,串行口開中;ES=0,串行口關(guān)中。說明:80C51對中斷實行兩級控制,總控制位是EA,每一中斷源還有各自的控制位。首先要EA=1,其次還要自身的控制位置“1”。(3)中斷優(yōu)先寄存器IP(B8H)
IP在特殊功能寄存器中,字節(jié)地址為B8H,位地址分別是B8H~BFH,IP用來鎖存各中斷源優(yōu)先級的控制位,其格式如圖所示。三.中斷處理過程中斷處理過程大致可分為四步:中斷請求、中斷響應、中斷服務、中斷返回⒈中斷請求中斷源發(fā)出中斷請求信號,相應的中斷請求標志位(在中斷控制寄存器TCON和SCON中)置“1”。⒉中斷響應
CPU查詢(檢測)到某中斷標志為“1”,在滿足中斷響應條件下,響應中斷。
⑴中斷響應條件:
①該中斷已經(jīng)“開中”;②CPU此時沒有響應同級或更高級的中斷;③當前正處于所執(zhí)行指令的最后一個機器周期;④正在執(zhí)行的指令不是RETI或者是訪向IE、IP的指令,否則必須再另外執(zhí)行一條指令后才能響應。⑵中斷響應操作
CPU響應中斷后,進行下列操作:①保護斷點地址;②撤除該中斷源的中斷請求標志;③關(guān)閉同級中斷;④將相應中斷的入口地址送入PC;
80C51五個中斷入口地址:INT0:0003H;
T0:000BH;INT1:0013H T1:001BH;串行口:0023H⒊執(zhí)行中斷服務程序中斷服務程序應包含以下幾部分:⑴保護現(xiàn)場⑵執(zhí)行中斷服務程序主體,完成相應操作⑶恢復現(xiàn)場⒋中斷返回在中斷服務程序最后,必須安排一條中斷返回指令RETI,當CPU執(zhí)行RETI指令后,自動完成下列操作:⑴恢復斷點地址。⑵開放同級中斷,以便允許同級中斷源請求中斷。
四.中斷響應等待時間
若排除CPU正在響應同級或更高級的中斷情況,中斷響應等待時間為:
3~8個機器周期五.中斷請求的撤除中斷源發(fā)出中斷請求,相應中斷請求標志置“1”。CPU響應中斷后,必須清除中斷請求“1”標志。否則中斷響應返回后,將再次進入該中斷,引起死循環(huán)出錯。⑴對定時/計數(shù)器T0、T1中斷,外中斷邊沿觸發(fā)方式,CPU響應中斷時就用硬件自動清除了相應的中斷請求標志。⑵對外中斷電平觸發(fā)方式,需要采取軟硬結(jié)合的方法消除后果。⑶對串行口中斷,用戶應在串行中斷服務程序中用軟件清除TI或RI。六.
中斷優(yōu)先控制和中斷嵌套⒈中斷優(yōu)先控制
80C51中斷優(yōu)先控制首先根據(jù)中斷優(yōu)先級,此外還規(guī)定了同一中斷優(yōu)先級之間的中斷優(yōu)先權(quán)。其從高到低的順序為:
INT0、T0、INT1、T1、串行口。
中斷優(yōu)先級是可編程的,而中斷優(yōu)先權(quán)是固定的,不能設(shè)置,僅用于同級中斷源同時請求中斷時的優(yōu)先次序。
80C51中斷優(yōu)先控制的基本原則:①高優(yōu)先級中斷可以中斷正在響應的低優(yōu)先級中斷,反之則不能。②同優(yōu)先級中斷不能互相中斷。③同一中斷優(yōu)先級中,若有多個中斷源同時請求中斷,CPU將先響應優(yōu)先權(quán)高的中斷,后響應優(yōu)先權(quán)低的中斷。⒉
中斷嵌套
當CPU正在執(zhí)行某個中斷服務程序時,如果發(fā)生更高一級的中斷源請求中斷,CPU可以“中斷”正在執(zhí)行的低優(yōu)先級中斷,轉(zhuǎn)而響應更高一級的中斷,這就是中斷嵌套。
中斷嵌套只能高優(yōu)先級“中斷”低優(yōu)先級,低優(yōu)先級不能“中斷”高優(yōu)先級,同一優(yōu)先級也不能相互“中斷”。
中斷嵌套結(jié)構(gòu)類似與調(diào)用子程序嵌套,不同的是:①子程序嵌套是在程序中事先按排好的;中斷嵌套是隨機發(fā)生的。②子程序嵌套無次序限制,中斷嵌套只允許高優(yōu)先級“中斷”低優(yōu)先級。七.中斷系統(tǒng)的應用⒈中斷初始化⑴設(shè)置堆棧指針SP⑵定義中斷優(yōu)先級⑶定義外中斷觸發(fā)方式⑷開放中斷⑸安排好等待中斷或中斷發(fā)生前主程序應完成的操作內(nèi)容。⒉中斷服務主程序中斷服務子程序內(nèi)容要求:⑴在中斷服務入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務程序的實際入口處。⑵根據(jù)需要保護現(xiàn)場。⑶中斷源請求中斷服務要求的操作。
⑷恢復現(xiàn)場。與保護現(xiàn)場相對應,注意先進后出、后進先出操作原則。⑸中斷返回,最后一條指令必須是RETI。
定時/計數(shù)器是單片機系統(tǒng)一個重要的部件,其工作方式靈活、編程簡單、使用方便,可用來實現(xiàn)定時控制、延時、頻率測量、脈寬測量、信號發(fā)生、信號檢測等。此外,定時/計數(shù)器還可作為串行通信中波特率發(fā)生器。80C51定時/計數(shù)器80C51單片機內(nèi)部有兩個定時/計數(shù)器T0和T1,其核心是計數(shù)器,基本功能是加1。對外部事件脈沖(下降沿)計數(shù),是計數(shù)器;對片內(nèi)機周脈沖計數(shù),是定時器。計數(shù)器由二個8位計數(shù)器組成。定時時間和計數(shù)值可以編程設(shè)定,其方法是在計數(shù)器內(nèi)設(shè)置一個初值,然后加1計滿后溢出。調(diào)整計數(shù)器初值,可調(diào)整從初值到計滿溢出的數(shù)值,即調(diào)整了定時時間和計數(shù)值。定時/計數(shù)器作為計數(shù)器時,外部事件脈沖必須從規(guī)定的引腳輸入。且外部脈沖的最高頻率不能超過時鐘頻率的1/24。一.定時/計數(shù)器概述TCON低4位與外中斷、有關(guān),已在中斷中敘述。高4位與定時/計數(shù)器T0、T1有關(guān)。⑴TF1:定時/計數(shù)器T1溢出標志。⑵TF0:定時/計數(shù)器T0溢出標志。⑶TR1:定時/計數(shù)器T1運行控制位。TR1=1,T1運行;TR1=0,T1停。⑷TR0:定時/計數(shù)器T0運行控制位。TR0=1,T0運行;TR0=0,T0停。TCON的字節(jié)地址為88H,每一位有位地址,均可位操作。⒈定時/計數(shù)器控制寄存器TCON二.定時/計數(shù)器的控制寄存器TCONT1中斷標志T1運行標志T0中斷標志T0運行標志INT1中斷標志INT1觸發(fā)方式INT0中斷標志INT0觸發(fā)方式位名稱TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H高4位控制T1低4位控制T0門控位計數(shù)/定時方式選擇工作方式選擇門控位計數(shù)/定時方式選擇工作方式選擇GC/TM1M0GC/TM1M0TMOD用于設(shè)定定時/計數(shù)器的工作方式低4位用于控制T0,高4位用于控制T1。⒉定時/計數(shù)器工作方式控制寄存器TMOD(89H)⑴M1M0——工作方式選擇位M1M0工作方式功能00方式013位計數(shù)器01方式116位計數(shù)器10方式2兩個8位計數(shù)器,初值自動裝入11方式3兩個8位計數(shù)器,僅適用T0⑵C/T——計數(shù)/定時方式選擇位
C/T=1,計數(shù)工作方式,對外部事件脈沖計數(shù),用作計數(shù)器。
C/T=0,定時工作方式,對片內(nèi)機周脈沖計數(shù),用作定時器。⑶GATE——門控位
GATE=0,運行只受TCON中運行控制位TR0/TR1的控制。
GATE=1,運行同時受TR0/TR1和外中斷輸入信號的雙重控制。只有當INT0/INT1=1且TR0/TR1=1,T0/T1才能運行。
注意:TMOD字節(jié)地址89H,不能位操作,設(shè)置TMOD須用字節(jié)操作指令。三.定時/計數(shù)器工作方式⒈工作方式0
13位計數(shù)器,由TL0低5位和TH08位組成,TL0低5位計數(shù)滿時不向TL0第6位進位,而是向TH0進位,13位計滿溢出,TF0置“1”。最大計數(shù)值213=8192。⒉工作方式1
16位計數(shù)器,最大計數(shù)值為216=65536。⒊工作方式2
8位計數(shù)器,僅用TL0計數(shù),最大計數(shù)值為28=256,計滿溢出后,一方面進位TF0,使溢出標志TF0=1;另一方面,使原來裝在TH0中的初值裝入TL0。優(yōu)點:定時初值可自動恢復;缺點:計數(shù)范圍小。適用于需要重復定時,而定時范圍不大的應用場合。⒋工作方式3
方式3僅適用于T0,T1無方式3。⑴T0方式3
在方式3情況下,T0被拆成二個獨立的8位計數(shù)器TH0、TL0。①TL0使用T0原有的控制寄存器資源:TF0,TR0,GATE,C/T,INT0,組成一個8位的定時/計數(shù)器;②TH0借用T1的中斷溢出標志TF1,運行控制開關(guān)TR1,只能對片內(nèi)機周脈沖計數(shù),組成另一個8位定時器(不能用作計數(shù)器)。⑵T0方式3情況下的T1T1由于其TF1、TR1被T0的TH0占用,計數(shù)器溢出時,只能將輸出信號送至串行口,即用作串行口波特率發(fā)生器。其中:N與工作方式有關(guān):方式0時,N=13;
方式1時,N=16;
方式2、3時,N=8。 機周時間與主振頻率有關(guān):機周時間=12/fosc
fosc=12MHZ時,1機周=1S;
fosc=6MHZ
時,1機周=2S。
四.定時/計數(shù)器的應用⒈計算定時/計數(shù)初值80C51定時/計數(shù)初值計算公式:⑵工作方式1:
T0初值=216-500s/2s=65536–250=65286=FF06HTH0=FFH;TL0=06H。⑶工作方式2:
T0初值=28-500s/2s=256-250=6TH0=06H;TL0=06H。⑷工作方式3:
T0方式3時,被拆成兩個8位定時器,定時初值可分別計算,計算方法同方式2。兩個定時初值一個裝入TL0,另一個裝入TH0。因此:
TH0=06H;TL0=06H。方式0時計算定時初值比較麻煩,根據(jù)公式計算出數(shù)值后,還要變換一下,容易出錯,不如直接用方式1,且方式0計數(shù)范圍比方式1小,方式0完全可以用方式1代替,方式0與方式1相比,無任何優(yōu)點。⒉定時/計數(shù)器應用步驟⑴合理選擇定時/計數(shù)器工作方式⑵計算定時/計數(shù)器定時初值(按上述公式計算)⑶編制應用程序
①定時/計數(shù)器的初始化包括定義TMOD、寫入定時初值、設(shè)置中斷系統(tǒng)、啟動定時/計數(shù)器運行等。②正確編制定時/計數(shù)器中斷服務程序
注意是否需要重裝定時初值,若需要連續(xù)反復使用原定時時間,且未工作在方式2,則應在中斷服務程序中重裝定時初值。定時器/計數(shù)器兩種工作方式用作計數(shù)器時,加法計數(shù)器對芯片引腳T0(P3.4)或T1(P3.5)上的輸入脈沖計數(shù)。每輸入一個脈沖,加法計數(shù)器加1。加法計數(shù)溢出時可向CPU發(fā)出中斷請求信號。作為定時器時,加法計數(shù)器通過對內(nèi)部機器周期脈沖Tcy(機器周期值固定)計數(shù)達到定時的目的。如Tcy=0.5us,計數(shù)值100,相當于定時50us。定時器/計數(shù)器用作定時方式時,其定時時間與哪些因素有關(guān)?作計數(shù)方式時,對外界計數(shù)頻率有什么限制?1)定時器/計數(shù)器用作定時方式時,其定時時間與晶體振蕩器的頻率、機器周期、計數(shù)器的長度、定時器/計數(shù)器初值有關(guān)。2)用作“計數(shù)器”時,對外部輸入端T0、T1上1到0的跳變進行加1計數(shù)。在計數(shù)狀態(tài)下,每個機器周期的S5P2時刻采樣外部輸入。當?shù)谝粋€機器周期采樣為高電平,而在第二個機器周期采樣為低電平時,內(nèi)部計數(shù)器加1。新的計數(shù)值在緊接著采樣到跳變后的下一個機器周期的S3P1出現(xiàn)在計數(shù)器中。由于檢測到一個1到0的跳變需要2個機器周期,即24個振蕩周期,因此外部計數(shù)的最快速率為振蕩頻率的1/24。外部輸入信號的速率向下可以不受限制,但是脈沖寬度必須保證在其電平變化之前能被采樣到一次,即至少保持一個完整的機器周期;否則,將會由于采樣不到而出現(xiàn)漏計現(xiàn)象。串行通信本章要點異步通信和同步通信串行通信波特率串行通信的制式串行通信的校驗串行口特殊功能寄存器串行工作方式
串行通信優(yōu)點:便于長距離傳送
缺點:傳送速度較慢計算機與外界信息交換稱為通信。通信的基本方式可分為并行通信和串行通信:并行通信是數(shù)據(jù)的各位同時發(fā)送或同時接收;串行通信是數(shù)據(jù)的各位依次逐位發(fā)送或接收。并行通信優(yōu)點:傳送速度快
缺點:不便長距離傳送
異步通信對硬件要求較低,實現(xiàn)起來比較簡單、靈活,適用于數(shù)據(jù)的隨機發(fā)送/接收,但因每個字節(jié)都要建立一次同步,即每個字符都要額外附加兩位,所以工作速度較低,在單片機中主要采用異步通信方式。串行通信概述一、異步通信和同步通信串行通信按同步方式可分為異步通信和同步通信。1、異步通信異步通信依靠起始位、停止位保持通信同步。
異步通信數(shù)據(jù)傳送按幀傳輸,一幀數(shù)據(jù)包含起始位、數(shù)據(jù)位、校驗位和停止位。幀格式,一個字符由四部分組成:起始位、數(shù)據(jù)位、奇偶校驗位和停止位。停止位(1)停止位用來表征字符的結(jié)束。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已傳送完畢
同步通信傳輸速度較快,但要求有準確的時鐘來實現(xiàn)收發(fā)雙方的嚴格同步,對硬件要求較高,適用于成批數(shù)據(jù)傳送。2、同步通信同步通信依靠同步字符保持通信同步。
同步通信是由1~2個同步字符和多字節(jié)數(shù)據(jù)位組成,同步字符作為起始位以觸發(fā)同步時鐘開始發(fā)送或接收數(shù)據(jù);多字節(jié)數(shù)據(jù)之間不允許有空隙,每位占用的時間相等;空閑位需發(fā)送同步字符。
波特率的倒數(shù)即為每位傳輸所需的時間。相互通信的甲乙雙方必須具有相同的波特率,否則無法成功地完成串行數(shù)據(jù)通信。二、串行通信波特率波特率bps(bitpersecond)定義:
每秒傳輸數(shù)據(jù)的位數(shù),即:1波特=1位/秒(1bps)三、串行通信的制式
串行通信按照數(shù)據(jù)傳送方向可分為三種制式:
單工制式是指甲乙雙方通信時只能單向傳送數(shù)據(jù),發(fā)送方和接收方固定。1、單工制式(Simplex)
半雙工制式是指通信雙方都具有發(fā)送器和接收器,既可發(fā)送也可接收,但不能同時接收和發(fā)送,發(fā)送時不能接收,接收時不能發(fā)送。2、半雙工制式(HalfDuplex)
全雙工制式是指通信雙方均設(shè)有發(fā)送器和接收器,并且信道劃分為發(fā)送信道和接收信道,因此全雙工制式可實現(xiàn)甲乙雙方同時發(fā)送和接收數(shù)據(jù),發(fā)送時能接收,接收時也能發(fā)送。3、全雙工制式(FullDuplex)四、串行通信的校驗3、循環(huán)冗余碼校驗(CyclicRedundancyCheck,簡稱CRC)1、奇偶校驗2、累加和校驗
80C51系列單片機有一個全雙工的串行口,這個口既可以用于網(wǎng)絡(luò)通信,也可以實現(xiàn)串行異步通信,還可以作為同步移位寄存器使用。80C51串行口
發(fā)送時,只需將發(fā)送數(shù)據(jù)輸入SBUF,CPU將自動啟動和完成串行數(shù)據(jù)的發(fā)送;
接收時,CPU將自動把接收到的數(shù)據(jù)存入SBUF,用戶只需從SBUF中讀出接收數(shù)據(jù)。一、串行口特殊功能寄存器1、串行數(shù)據(jù)緩沖器SBUF
在邏輯上只有一個,既表示發(fā)送寄存器,又表示接收寄存器,具有同一個單元地址99H,用同一寄存器名SBUF。在物理上有兩個,一個是發(fā)送緩沖寄存器,只能寫;另一個是接收緩沖寄存器;只能讀。2、串行控制寄存器SCON3、電源控制寄存器PCONSCOND7D6D5D4D3D2D1D0位名稱SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能工作方式選擇多機通信控制接收允許發(fā)送第9位接收第9位發(fā)送中斷接收中斷①SM0SM1——串行口工作方式選擇位。②SM2——多機通信控制位。③REN——允許接收控制位。REN=1,允許接收。④TB8——方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。⑤RB8——方式2和方式3中要接收的第9位數(shù)據(jù)。⑥TI——發(fā)送中斷標志。⑦RI——接收中斷標志。PCOND7D6D5D4D3D2D1D0位名稱SMOD———GF1GF0PDIDLSMOD=1,串行口波特率加倍。PCON寄存器不能進行位尋址。二、串行工作方式
80C51串行通信共有4種工作方式,由串行控制寄存器SCON中SM0SM1決定。
1、串行工作方式0(同步移位寄存器工作方式)以RXD(P3.0)端作為數(shù)據(jù)移位的輸入/輸出端,以TXD(P3.1)端輸出移位脈沖。移位數(shù)據(jù)的發(fā)送和接收以8位為一幀,不設(shè)起始位和停止位,無論輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版外墻涂料工程質(zhì)量保修與售后服務合同2篇
- 2024版對賭協(xié)議書標準范本:國際貿(mào)易與對賭協(xié)議的挑戰(zhàn)2篇
- 2024版二手房抵押貸款個人資產(chǎn)配置服務合同3篇
- 2024圖書館特色主題閱讀活動策劃與外包服務協(xié)議3篇
- 2024年版自然人信用擔保借款合同版B版
- 2024年度藝術(shù)品修復保護合同3篇
- 學校的健康教育
- 2024夫婦股權(quán)買賣合同樣本3篇
- 內(nèi)科高熱情景演練
- 2024年標準技術(shù)服務協(xié)議精簡版版B版
- 旅行社分店加盟協(xié)議書(2篇)
- 城鎮(zhèn)燃氣經(jīng)營安全重大隱患判定及燃氣安全管理專題培訓
- 個人和企業(yè)間資金拆借合同
- 2025屆陜西省四校聯(lián)考物理高三上期末聯(lián)考試題含解析
- 重大火災隱患判定方法
- 銀行崗位招聘筆試題及解答(某大型央企)2024年
- 外墻裝修合同模板
- 2024年《浙江省政治學考必背內(nèi)容》(修訂版)
- 2個居間人內(nèi)部合作協(xié)議書范文
- JJF(京) 3031-2024 高精度數(shù)字溫度計校準規(guī)范
- (論文)大綱參考模板
評論
0/150
提交評論