




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、思考與練習題解析 第2章 【單片機的基本結構】【2-1】8()C51單片機在片內集成了哪些主要邏輯功能部件?各個邏輯部件的最主要功能是什么? 【答】80C51單片機在片內主要包含中央處理器CPU(算術邏輯單元ALU及控制器等)、只讀存儲器ROM、讀寫存儲器RAM、定時器計數器、并行IO口PoP3、串行口、中斷系統以及定時控制邏輯電路等,各部分通過內部總線相連。 1中央處理器(CPU) 單片機中的中央處理器和通用微處理器基本相同,是單片機的最核心部分,主要完成運算和控制功能,又增設了“面向控制”的處理功能,增強了實時性。80C51的CPU是一個字長為8位的中央處理單元。 2內部程序存儲器 根據內
2、部是否帶有程序存儲器而形成三種型號:內部沒有程序存儲器的稱為80C31;內部帶ROM的稱為80c51,80c51共有4 KB掩膜ROM;內部以EPROM代替RoM的稱為87C51。 程序存儲器用于存放程序和表格、原始數據等。 3內部數據存儲器(RAM) 在單片機中,用讀寫存儲器(RAM)來存儲程序在運行期間的工作變量和數據。80C51中共有256個RAM單元。 4IO口 單片機提供了功能強、使用靈活的IO引腳,用于檢測與控制。有些IO引腳還具有多 種功能,比如可以作為數據總線的數據線、地址總線的地址線或控制總線的控制線等。有的單片機I0引腳的驅動能力增大。 5串行IO口目前高檔8位單片機均設置
3、了全雙工串行I0口,用以實現與某些終端設備進行串行通信,或與一些特殊功能的器件相連的能力,甚至用多個單片機相連構成多機系統。有些型號的單片機內部還包含兩個串行IO口。 6·定時器計數器 80c51單片機內部共有兩個16位定時器計數器,80C52則有3個16位定時器計數器。定時器計數器可以編程實現定時和計數功能。 7中斷系統 80C51單片機的中斷功能較強,具有內、外共5 個中斷源,具有兩個中斷優先級。 8定時電路及元件 單片機內部設有定時電路,只需外接振蕩元件。近年來有些單片機將振蕩元件也集成到芯片內部。單片機整個工作是在時鐘信號的驅動下,按照嚴格的時序有規律地一個節拍一個節拍地執行
4、各種操作。【2-2】80C51單片機引腳有哪些第二功能?【答】80C51單片機的P0、P2和P3引腳都具有第二功能。 第一功能 第二變異功能 P0.0P0.7 地址總線AoA7數據總線D0D7 P2.0P2.7 地址總線A8A15 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INT0外部中斷0) P3.3 IINT1(外部中斷1) P3.4 TO(定時器計數器0的外部輸入) P3.5 T1(定時器計數器0的外部輸出) P3.6 WR(外部數據存儲器或IO的寫選通) P3.7 RD外部數據存儲器或IO的讀選通)【2-3】程序計數器PC和數據指針DPTR有哪些異同?【
5、答】程序計數器PC中存放的是下一條將要從程序存儲器中取出的指令的地址。DPTR是數據指針,在訪問外部數據存儲器或IO時,作為地址使用;在訪問程序存儲器時,作為基址寄存器。 PC和DPTR都是與地址有關的16位寄存器。其中PC與程序存儲器的地址有關,而DPTR與數據存儲器或I/O的端口地址有關。作為地址寄存器使用時,PC與DPTR都是通過P0和P2口輸出的。PC的輸出與ALE及PSEN信號有關,DPTR的輸出則與ALE、WR和RD信號有關。 PC只能作為16位寄存器。PC是不可訪問的,它不屬于特殊功能寄存器,有自己獨特的變化方式。DPTR可以作為16位寄存器,也可以作為兩個8位寄存器DPL和DP
6、H。DPTR是可以訪問的,DPL和DPH都位于特殊功能寄存器區中。【24】 80C51單片機的存儲器在結構上有何特點?在物理上和邏輯上各有哪幾種地址空間?訪問片內RAM和片外RAM的指令格式有何區別?【答】80C5l單片機采用哈佛(Haryard)結構,即將程序存儲器和數據存儲器截然分開,分別進行尋址。不僅在片內駐留一定容量的程序存儲器和數據存儲器及眾多的特殊功能寄存器,而且還具有較強的外部存儲器擴展能力,擴展的程序存儲器和數據存儲器尋址范圍都可達64 KB。 1在物理上設有4個存儲器空間 ·片內程序存儲器; ·片外程序存儲器; ·片內數據存儲器; ·片
7、外數據存儲器。 2在邏輯上設有3個存儲器地址空間l 片內、片外統一的64 KB程序存儲器地址空間。l 片內256字節(80C52為384字節)數據存儲器地址空間。 片內數據存儲器空間在物理上又包含兩部分:l 對于80C51型單片機,0127字節為片內數據存儲器空間;128255字節為特殊功能寄存器(SFR)空間(實際僅占用了20多個字節)。l 對于80C52型單片機,O127字節為片內數據存儲器空間;128255字節共128個字節是數據存儲器和特殊功能寄存器地址重疊空間。 片外64 KB的數據存儲器地址空間。 在訪問3個不同的邏輯空間時,應采用不同形式的指令,以產生不同存儲空間的選通信號。訪問
8、片內RAM采用MOV指令,訪問片外RAM則一定要采用MOVX指令,因為MOVX指令會產生控制信號RD或WR,用來訪問片外RAM。訪問程序存儲器地址空間,則應采用MOVC指令。【25】80C51單片機的EA信號有什么功能?在使用80C51時,EA信號引腳應如何處理?在使用80C31時,EA信號引腳應如何處理?【答】80C51單片機的EA信號被稱為“片外程序存儲器訪問允許信號”。CPU訪問片內還是片外程序存儲器,可由EA引腳所接的電平來確定:l EA引腳接高電平時,程序從片內程序存儲器地址為0000H開始執行,即訪問片內存儲器;當PC值超出片內ROM容量時,程序會自動轉向片外程序存儲器空間執行。片
9、內和片外的程序存儲器地址空間是連續的。l EA引腳接低電平時,迫使系統全部執行片外程序存儲器0000H開始存放的程序。對于有片內ROM的80C5187C51單片機,應將EA引腳接高電平。在使用80C31單片機時,EA信號引腳應接低電平,即此時程序存儲器全部為外部擴展。 【26】80C51單片機片內RAM低128個存儲單元劃分為哪3個主要部分?各部分主要功能是什么? 【答】80C51片內RAM的低128個存儲單元劃分為3個主要部分: ·寄存器區。共4組寄存器,每組8個存儲單元,各組以R0R7作為單元編號。常用于保存操作數及中間結果等。:R0R7也稱為“通用工作寄存器”,占用00H1FH
10、共32個單元地址。 ·位尋址區。單元地址為20H2FH,既可作為一般RAM單元使用,按字節進行操作,也可對單元中的每一位進行位操作。因此,稱為“位尋址區”。尋址區共有16個RAM單元,共計128位,位地址為OOH7FH。 ·用戶RAM區。在內部RAM低128單元中,除去前面兩個區,剩下80個單元,單元地址為30H7FH。在用戶RAM區內可以設置堆棧區。 【27】程序存儲器的哪些單元被保留用于特定場合? 【答】80C51單片機復位后,程序計數器PC的地址為0000H,所以系統從0000H單元開 始取指,并執行程序。0000H是系統的啟動地址,一般在該單元設置一條絕對轉移指令,
11、使之轉向用戶主程序處執行。 0003H002DH單元被保留用于6個中斷源的中斷服務程序的入口地址,故有以下7個特定地址被保留: 復位 0000H 外部中斷O 0003H 計時器TO溢出 000BH 外部中斷1 0013H 計時器T1溢出 001BH 串行口中斷 0023H 計時器T2T2EX 002BH(僅對80C52單片機)由于每個中斷入口之間的間隔僅為8個地址單元,所以在程序設計時,通常在這些中斷入口處設置一條無條件轉移指令,使之轉向對應的中斷服務子程序處執行。【28】80C51單片機設有4個通用工作寄存器組,有什么特點?如何選用?如何實現工作寄存器的現場保護?【答】片內數據RAM區的O3
12、1(OOH1FH),共32個單元,是4個通用工作寄存器組,每個組包含8個8位寄存器,編號為R0R7,工作寄存器組如表2-l所列。在某一時刻,只能選用一個寄存器組。可以通過軟件對程序狀態字PSW中:RS0、RSl兩位的設置來實現。設置RS0,RSl時,可以對PSW采用字節尋址方式,也可以采用位尋址方式,間接或直接修改RS0、RSl的內容。例如,若RS0、RSl均為1,則選用工作寄存器3組為當前工作寄存器。若需要選用工作寄存器2組,則只需將RS0改成0可用位尋址方式 (即“CLR PSW.3”;其中:PSW.3為RS0位的符號地址)來實現。特別是在中斷嵌套時,只要通過軟件對程 序狀態字PSW中的R
13、S0、RSl兩位進行設置,切換工作寄存器組,就可以極其方便地實現對工作寄存器的現場保護。【29】什么是堆棧?堆棧有哪些功能? 設計時,為什么還要對SP重新賦值?表21工作寄存器組 RSI RS0 組號 寄存器ROR7地址 O 0 O組 00H07H O 1 l組 08HOFH 1 O 2組 :10H17H 1 l 3組 18H1FH 堆棧指針SP的作用是什么?在程序 【答】堆棧是在片內數據RAM區中,數據按照“先進后出”或“后進先出”原則進行管理的區域。堆棧功能有兩個:保護斷點和保護數據。在子程序調用和中斷操作時這兩個功能特別有用。在80C51單片機中,堆棧在子程序調用和中斷時會把斷點地址自動
14、進棧和出棧。進棧和出棧的指令(PUSH、POP)操作可用于保護現場和恢復現場。由于子程序調用和中斷都允許嵌套,并可以多級嵌套,而現場的保護也往往使用堆棧,所以一定要注意給堆棧以一定的深度,以免造成堆棧內容的破壞而引起程序執行的“跑飛”。 堆棧指針SP在80C51中存放當前的堆棧棧頂所指存儲單元地址的一個8位寄存器。80C51單片機的堆棧是向上生成的,即進棧時SP的內容是增加的;出棧時SP的內容是減少的。 系統復位后。80C51的SP內容為07H。若不重新定義,則以07H為棧底,壓棧的內容從08H單元開始存放。但工作寄存器R0R7有4組,占有內部RAM地址為00H1FH,位尋址區占有內部RAM地
15、址為20H2FH。若程序中使用了工作寄存器13組或位尋址區,則必須通過軟件對SP的內容重新定義,使堆棧區設定在片內數據RAM區中的某一區域內(如30H),堆棧深度不能超過片內RAM空間。【2-10】80C51單片機的特殊功能寄存器SFR區有哪些特點?【答】特殊功能寄存器SFR區是80C51單片機中各功能部件所對應的寄存器區,用來存放相應功能部件的控制命令寄存器、狀態寄存器或數據寄存器的區域。這是80C51系列單片機中最有特色的部分。 80C51系列單片機設有128字節片內數據RAM結構的特殊功能寄存器區。除程序計數器PC和4個通用工作寄存器組外,其余所有的寄存器都在這個地址空間之內。特殊功能寄
16、存器在128字節空間中只分布了很小部分,這為80C51單片機系列功能的增加提供了極大的可能性。所有80C51單片機系列功能部件的增加和擴展幾乎都是通過增加特殊功能寄存器來達到的。 在80C51的21個特殊功能寄存器中,字節地址中低位地址為0H或8H的特殊功能寄存 器,除有字節尋址能力外,還有位尋址能力。其中對于POP1口4個特殊功能寄存器的位尋址使IO的控制功能得到了增強。【2-11】80C51單片機的布爾處理機包括哪些部分?它們具有哪些功能?共有多少個單元可以位尋址?【答】在80C51單片機系統中,專門設置了一個結構完整、功能極強的布爾(位)處理機。這是一個完整的一位微計算機,它具有自己的C
17、PU、寄存器、I0、存儲器和指令集。80C51單片機把8位機和布爾(位)處理機的硬件資源復合在一起,這是80C51系列單片機的突出優點之一,給實際應用帶來了極大的方便。布爾處理機系統包括以下幾個功能部件。 ·位累加器:借用進位標志位CY。在布爾運算中,cY既是數據源之一,又是運算結果的存放處和位數據傳送的中心。根據CY的狀態實現程序條件轉移:JC rel、JNC reI·位尋址的RAM:內部RAM位尋址區中的0127位(20H2FH)。·位尋址的寄存器:特殊功能寄存器SF、R中的可位尋址的位。·位尋址的IO口:并行IO口中可位尋址的位(如P10)。
18、83;位操作指令系統:位操作指令可實現對位的置位、清零、取反、位狀態判跳、傳送、位邏輯運算、位輸入輸出等操作。布爾處理機的程序存儲器和ALU與字節處理器合用。利用內部并行IO口的位操作,提高了測控速度,增強了實時性。利用位邏輯操作功能把邏輯表達式直接變換成軟件進行設計和運算,免去了過多的數據往返傳送、字節屏蔽和測試分支,大大簡化了編程,增強了實時性能。還可實現復雜的組合邏輯處理功能。因此,一位機在開關決策、邏輯電路仿真和實時控制方面非常有效。可以位尋址的單元包括兩部分:一是內部RAM位尋址區中的0127位(20H2FH); 二是SFR中字節地址的低位地址為0H或8H的特殊功能寄存器。【2一12
19、】80C5l單片機的節拍、狀態、機器周期、指令周期是如何設置的?當主頻為12 MHz時,各種周期等于多少微秒?【答】把單片機振蕩脈沖的周期定義為節拍。節拍經過二分頻后,就是單片機的時鐘信號。時鐘信號周期定義為狀態S,其前半周期對應的節拍叫P1,后半周期對應的節拍叫P2。一個機器周期寬度為6個狀態,并依次表示為S1S6。由于一個機器周期共有12個振蕩脈沖周期,因此,機器周期就是振蕩頻率的112。機器周期是80C51單片機的最小時間單位。執行一條指令的時間被稱為“指令周期”,80C51單片機執行一條指令的時間包含有1個、2個或4個機器周期。當主頻為12 MHz時,振蕩脈沖的周期為112s,狀態周期
20、為16s,機器周期為1 s, 指令周期為14s【2一13】程序存儲器指令地址、堆棧地址和外接數據存儲器地址各使用什么指針?為什么?【答】程序存儲器指令地址使用程序計數器PC指針,PC中存放的是下一條將要從程序存儲器中取出的指令的地址。程序計數器PC變化的軌跡決定程序的流程。PC最基本的工作方式是自動加1。在執行條件轉移或無條件轉移指令時,將轉移的目的地址送入程序計數器,程序流向發生變化。在執行調用指令或響應中斷時,將子程序的入口地址或者中斷矢量地址送人PC,程序流向發生變化。 堆棧地址使用堆棧指針SP。SP在80C51中存放當前的堆棧棧頂所指存儲單元地址,是一個8位寄存器,對數據按照“先進后出
21、”原則進行管理。外接數據存儲器地址使用數據指針DPTR。DPTR是一個16位特殊功能寄存器,主要功能是作為片外數據存儲器或I0尋址用的地址寄存器,這時會產生RD或wR控制信號,用于單片機對外擴的數據存儲器或I0的控制。數據指針DPTR也可以作為訪問程序存儲器時的基址寄存器,此時是尋址程序存儲器中的表格、常數等單元,而不是尋址指令。【2-14】請說明80C51單片機ALE引腳的時序功能,并舉例說明其在系統中有哪些應用?【答】80C51單片機ALE引腳是地址鎖存允許信號。在系統中主要有兩種應用: 在訪問片外存儲器或IO時,用于鎖存低8位地址,以實現低8位地址A0A7與數據DOD7的隔離。在ALE的
22、下降沿將P0口輸出的地址A0A7通過鎖存器鎖存,然后在PO口上出現DOD7。 由于ALE以16振蕩頻率的固定速率輸出,因此,可以作為對外輸出的時鐘或外部定 時脈沖,比如ALE信號可以做ADC0809的時鐘。【215】說明80C51單片機的程序狀態字PSW的主要功能。【答】程序狀態字PSW(Program Status Word)是一個程序可訪問的8位寄存器,其內容的主要部分是算術邏輯運算單元ALU的輸出,例如,奇偶校驗位P、溢出標志位OV、輔助進位標志位AC及進位標志位CY,都是ALU運算結果的直接輸出。一些條件轉移指令就是根據PSW中的相關標志位的狀態來實現程序的條件轉移。程序狀態字PSW如
23、圖2-1所示。 CY AC FO Rsl l RS0 OV P l圖21程序狀態字PSW 1P奇偶標志位 該位表示累加器A中值為1的個數的奇偶性。若累加器A中值為1的個數是奇數,則P 置位(奇校驗);否則,P清除(偶校驗)。 在串行通信中,常以傳送奇偶校驗位來檢驗傳輸數據的可靠性。通常將P置入串行幀中的奇偶校驗位。 2OV溢出標志位 當執行運算指令時,由硬件置位或清除,以指示運算是否產生溢出。OV置位表示運算結果超出了目的寄存器A所能表示的帶符號數的范圍(一128+127)。 若以Ci表示位i向位i+1有進位,則0V=C6C7。當位6向位7有進位(或借位),而位7不向cY進位(或借位);或當位
24、7向c進位(或借位),而位6不向位7進位(或借位)時,OV標志置位,表示帶符號數運算時運算結果是錯誤的;否則,清除0V標志,運算結果正確。 對于MUL乘法,當A、B兩個乘數的積超過255時,OV置位;否則,OV=0。 對于DIV除法,若除數為0,OV=l;否則,OV=O。3RSl、RS04組工作寄存器組選擇位用于設定當前工作寄存器的組號,參見表21。 4AC輔助進位標志位 當進行加法或減法運算時,若低4位向高4位數發生進位(或借位),AC將被硬件置位;否則,被清除。在十進制調整指令DA中要用到AC標志位狀態。 5CY進位標志位 在進行算術運算時,可以被硬件置位或清除,以表示運算結果中高位是否有
25、進位(或借位)。在布爾處理器中,CY被認為是位累加器。 6F0用戶標志位 開機時該位為0。用戶可根據需要,通過位操作指令將FO置1或者清0。當CPU執行對F0位測試條件轉移指令時,根據FO的狀態實現分支轉移,相當于“軟開關”。【216】80C51單片機的片內外最大存儲容量可達多大? 【答】80C51單片機存儲容量應包括程序存儲器和數據存儲器兩部分。80C51具有16條地址線,PC指針為16位,因此,程序存儲器最大容量為64 KB。數據指針DPTR為16位,因此,外擴數據存儲器最大容量為64 KB,再加上片內具有的256個存儲單元,80C51單片機的 片內外最大存儲容量可達128256 KB。采
26、用其他地址譯碼方法,80C51單片機存儲容量會得到更大的擴展。 【2-17】80C51單片機片外數據存儲器與片內數據存儲器地址允許重復,并與程序存儲器地址也允許重復,如何區分? 【答】80C5l單片機對片外數據存儲器、片內數據存儲器及程序存儲器采用不同的指令,會產生不同的控制信號。片外數據存儲器有讀RD和寫WR控制信號,程序存儲器有讀PSEN控制信號,因此,擴展時雖然數據線和地址線重復,但由不同的控制信號加以區別。片內數據存儲器地址采用MOVC指令,不會產生讀RD和寫WR控制信號。【2-18】使80C51單片機復位有哪幾種方法?復位后單片機的初始狀態,即各寄存器及RAM中的狀態如何?【答】復位
27、操作有上電自動復位、按鍵電平復位和外部脈沖復位3種方式。上電自動復位是通過外部復位電路的電容充電來實現的;按鍵電平復位是通過按壓鍵使復位端經電阻與VCC接通而實現的;外部脈沖復位是由外部提供一個寬度大于兩個機器周期復位脈沖而實現的。 復位操作把Pc初始化為0000H,使單片機從0000H單元開始執行程序。當由于程序運行出錯或操作錯誤使系統處于死鎖狀態時,可以按復位鍵以重新啟動,也可以通過監視定時器來強迫復位。 除PC之外,復位操作還對其他一些特殊功能寄存器有影響,SFR的復位狀態如表2-2所列。復位操作還對單片機的個別引腳信號有影響。例如在復位期間,ALE和PSEN信號變為無效狀態,即ALE=
28、1,PSEN=1。復位操作對RAM內容沒有影響。 表2-2 SFR的復位狀態 寄存器 復位時的內容 寄存器 復位時的內容 PC 00H TCON 0X000000B ACC 00H TLO OOH B 00H THO OOH PSW 00H TLl 00H SP 07H THl 00H DPTR 00H SCON 00H POP3 FFH SBUF 不定 TMOD XX000000B PCON 0XXX0000B 【2一19】80C51單片機的4個IO口在使用上有哪些分工和特點?【答】4個IO口的分工和特點如下: P0口是一個多功能的8位口,可按字節訪問也可按位訪問。l 用作I0口。相當于一個
29、真正的雙向口:輸出鎖存,輸入緩沖,但輸入時須先將口置l;每根口線可以獨立定義為輸入或輸出。l 用作地址數據復用總線。作數據總線使用時,輸入輸出8位數據D0D7;作地址總 線用時,輸出低8位地址AOA7。 P1口是一個8位口,可按字節訪問也可按位訪問,因此,P1口不僅可以8位一組進行 輸入、輸出操作,還可以逐位分別定義各口線為輸入線或輸出線。輸入時有條件,即需要先輸出1,將該口設為輸入狀態。一般作Io口用。 P2口是一個多功能的8位口,可按字節訪問也可按位訪問。在單片機采用并行擴展方式時,P2口作為地址總線的高8位D8D15。 P3口是一個多功能的8位口,可按字節訪問,也按可位訪問。可作為I0口
30、使用,為準雙向口。既可以字節操作,也可以位操作;既可以8位口操作,也可以逐位定義口線為輸入線或輸出線。P3可替代輸入、輸出功能。替代輸入功能: P30一一RXD,串行輸入口。 P32一一IN'I、0,外部中斷O的請求。 P33一一INTl,外部中斷1的請求。 P34一TO,定時器計數器O外部計數脈沖輸入。 P35一一T1,定時器計數器1外部計數脈沖輸入。 替代輸出功能: P31一一TXD,串行輸出口。 P36一一wR,外部數據存儲器寫選通,輸出,低電平有效。 P37RD,外部數據存儲器讀選通,輸出,低電平有效。【220】80C51單片機的I0口P0P3用作通用IO口時,要注意什么?【答
31、】POP3用作通用I0口時,輸入時都須先將相應端口鎖存器置1,類似于置為輸入方式。 IO口:PoP3都具有位地址,所以每根Io口線可以獨立定義為輸入或輸出。 PO口輸出時為漏極開路輸出,與NM0S的電路接口時,必須要用電阻上拉,才能有高電平輸出;輸入時為懸浮狀態,為一個高阻抗的輸入口。P1P3口輸出級接有內部上拉負載電阻,能向外提供上拉負載電流,所以不必外接上拉電阻。【22l】80C51單片機有哪幾種工作方式?簡單說明其應用場合和特點。【答】80C51單片機共有復位、程序執行、低功耗以及編程和校驗4種工作方式。l 復位方式:是單片機的初始化操作,其主要功能是把程序計數器Pc初始化為0000H,
32、使單片機從000H單元開始執行程序。除了進入系統的正常初始化之外,當由于程序運行出錯或操作錯誤使系統處于死鎖狀態時,為擺脫困境,可以按復位鍵重新啟動,也可以通過監視定時器WDT來強迫復位。l 程序執行方式:是單片機的基本工作方式。l 低功耗方式:80C5l單片機有兩種低功耗方式,即待機方式和掉電保護方式。用于降低功耗,提高可靠性。l 編程和校驗方式:對于片內具有EPROM型程序存儲器的87C51(87C52)和片內具有 閃速存儲器的89C51(89C52)、78E51(78E52)等單片機,可以通過編程來修改程序儲器中的程序。【222】舉例說明80C51單片機在工業控制系統中低功耗工作方式的意
33、義及實現方法。【答】有些產品和系統要求工作時功耗盡量低,有的要求在停電時采用備用電池能工作較長時間,以上這些設計和要求往往與工業控制系統的低功耗設計密切相連。工業控制系統低功耗設計除了降低功耗,節省能源,滿足綠色電子的基本要求之外,還能提高系統的可靠性,滿足便攜式、電池供電等特殊應用場合產品的要求。80C51單片機有兩種低功耗方式,即待機(空閑)方式和掉電(停機)保護方式。待機(空閑)方式和掉電(停機)保護方式都是由電源控制寄存器PCON的有關位來控制的。電源控制寄存器是一個逐位定義的8位寄存器,其格式如圖2-2所示。SMOD GFl GF0 PD IDl。 圖2-2電源控制寄存器PCONSM
34、OD 波特率倍增位,在串行口工作方式時,設SMOD=1,則波特率加倍。GFl、GF0 通信標志位1、O,由軟件置位或復位。PD 掉電方位式,PD=1,則進入掉電工作方式。IDL 待機方式位,IDL=1,則進入待機工作方式。若PD位和IDL位同時為1,則先激活掉電方式。復位時PCON中所有位均為0。1待機方式 使用指令使PCON寄存器IDL位置1,則80C51進入待機方式。l 此時振蕩器仍然運行,并向中斷邏輯、串行口和定時器計數器電路提供時鐘,中斷功 能繼續存在。l 向CPU提供時鐘的電路被阻斷,因此,CPU不能工作,與CPU有關的SP、PC、PSW、ACC以及全部通用寄存器都被凍結在原狀態。
35、可以采用中斷方式或硬件復位來退出待機方式。 在待機方式下,若產生一個外部中斷請求信號,在單片機響應中斷的同時,IDL位被硬件自動清0,單片機就退出待機方式,而進入正常工作方式。在中斷服務程序中安排一條RETI指令,就可以使單片機恢復正常工作,從設置待機方式指令的下一條指令開始繼續執行程序。在待機方式下,振蕩器仍然在工作,因此,硬件復位只需保持兩個機器周期的高電平就可以完成。RST端復位信號直接將IDL位清O,從而退出待機方式。CPU則從進入待機方式的下一條指令開始重新執行程序。 2掉電保護方式 PCON寄存器的PD位控制單片機進入掉電保護方式。 80C51單片機在檢測到電源故障時,除進行信息保
36、護外,還應把PD位置1,使之進入掉電保護方式。此時單片機一切工作都停止,只有內部RAM單元的內容被保護。只能依靠復位退出掉電保護方式。80C51單片機備用電源由VCC端引人。當VCC恢復正常后,只要硬件復位信號維持10 ms,就能使單片機退出掉電保護方式,CPU則從進入待機方式的下一條指令開始重新執行【22】單片機“面向控制”應用的特點,在硬件結構方面有哪些體現?【答】單片機“面向控制”應用的特點,在硬件結構方面有以下幾個方面的體現:提供了數量多、功能強、使用靈活的IO口和串行口。在80C51單片機系統中,還特別設置了布爾(位)處理機,對并行IO口的口線直接進行位的控制,對“面向控制”的應用帶
37、來了極大方便。設置多個中斷源,并具有可編程的中斷優先級,對于實時控制非常有利。提供了多個定時器計數器,有的單片機內部還具有監視定時器,有利于提高單片機的實時控制能力和控制的可靠性。第3章 【單片機的指令系統】 思考與練習題解析【31】什么是指令及指令系統?【答】控制單片機進行某種操作的命令稱為“指令”。單片機就是根據指令來指揮和控制單片機各部分協調工作。指令由二進制代碼表示,指令通常包括操作碼和操作數兩部分:操作碼規定操作的類型,操作數給出參加操作的數或存放數的地址。 所有指令的集合稱為“指令系統”。80C51單片機的指令系統專用于80C51系列單片機,是一個具有255種操作碼(OOHFFH,
38、除A5H外)的集合。 【32】80C51單片機的指令系統具有哪些特點? 【答】80C51單片機的指令系統容易理解和閱讀。只要熟記代表33種功能的42種助記即可。有的功能如數據傳送,可以有幾種助記符,如MOV、MOVc、MOVX。而指令功能助記符與操作數各種尋址方式的結合,共構造出111種指令,而同一種指令所對應的操作碼可以多至8種(如指令中Rn對應寄存器R0R7)。 80C51單片機的指令系統具有較強的控制操作類指令,容易實現“面向控制”的功能;具有位操作類指令,有較強的布爾變量處理能力。 【33】簡述80C51指令的分類和格式。 【答】80C51的指令系統共有111條指令,按其功能可分為5大
39、類:數據傳送類指令(28條)、算術運算類指令(24條)、邏輯運算類指令(25條)、控制轉移類指令(17條)和布爾操作(位)類指令(17條)。 指令的表示方法稱之為“指令格式”,其內容包括指令的長度和指令內部信息的安排等。在80C51系列的指令系統中,有單字節、雙字節和三字節等不同長度的指令。 ·單字節指令:指令只有一個字節,操作碼和操作數同在一個字節中。 ·雙字節指令:包括兩個字節。其中一個字節為操作碼,另一個字節是操作數。 ·三字節指令:操作碼占一個字節,操作數占兩個字節。其中操作數既可能是數據,也可能是地址。【34】簡述80C51的指令尋址方式,并舉例說明。【
40、答】執行任何一條指令都需要使用操作數,尋址方式就是在指令中給出的尋找操作數或操作數所在地址的方法。 80C5l系列單片機的指令系統中共有以下7種尋址方式。 立即尋址。在指令中直接給出操作數。出現在指令中的操作數稱為“立即數”,為了與直接尋址指令中的直接地址相區別,在立即數前面必須加上前綴“#”。 例如:MOV DPTR,#1234H ;1234H為立即數,直接送DPTR 直接尋址。在指令中直接給出操作數單元的地址。 例如: MOV A,55H ;55H是操作數單元的地址,55H單元內的數據才是操作數,取出后送累加器A 寄存器尋址。在指令中將指定寄存器的內容作為操作數。因此,指定了寄存器就能得到
41、操作數。寄存器尋址方式中,用符號名稱來表示寄存器。 例如: INC R7 ;R7的內容為操作數,加1后再送回R7 寄存器間接尋址。在指令中給出的寄存器內容是操作數的地址,從該地址中取出的才是操作數。可以看出,在寄存器尋址方式中,寄存器中存放的是操作數;而在寄存器間接尋址方式中,寄存器中存放的則是操作數的地址。 寄存器間接尋址須以寄存器符號名稱的形式表示。為了區別寄存器尋址和寄存器間接尋址,在寄存器間接尋址中,應在寄存器的名稱前面加前綴“”。 例如: ORL ARo; 當R0寄存器的內容是60H時,該指令功能是以RO寄存器的內容60H為地址,將60H地址單元的內容與累加器A中的數相“或”,其結果
42、仍存放在A中。 相對尋址。在指令中給出的操作數為程序轉移的偏移量。相對尋址方式是為實現程序的相對轉移而設立的,為相對轉移指令所采用。 在相對轉移指令中,給出地址偏移量(在80C51系列單片機的指令系統中,以“rel”表示,為8位帶符號數),把PC的當前值加上偏移量就構成了程序轉移的目的地址。而PC的當前值是指執行完轉移指令后的PC值,即轉移指令的PC值加上轉移指令的字節數。轉移的目的地址可用如下公式表示: 目的地址=(轉移指令所在地址+轉移指令字節數)+rel 例如:SJMP 80H ;80H為程序轉移的偏移量,即一128。當前PC值減去128后即為轉移地址 變址尋址。以DPTR或PC作基址寄
43、存器,累加器A作變址寄存器,以兩者內容相加形成的16位程序存儲器地址作為操作數地址。又稱“基址寄存器+變址寄存器間接尋址”。變址尋址方式只能對程序存儲器進行尋址。 例如: MOVC A,A+DPTR ;功能是把DPTR和A的內容相加,所得到的程序存儲器地址單元的內容送A 位尋址。80C51系列單片機有位處理功能,可以對數據位進行操作,因此,就有相應的位尋址方式。位尋址的尋址范圍: 片內RAM中的位尋址區。 ·可位尋址的特殊功能寄存器位。 例如:MOV c,80H ;功能是把位尋址區的80H位(即P00)狀態送累加位C【35】訪問特殊功能寄存器SFR,可使用哪些尋址方式?【答】訪問特殊
44、功能寄存器SFR的惟一尋址方式是直接尋址方式。這時除了可以單元地址形式(如90H)給出外,還可以寄存器符號形式(如P1)給出。雖然特殊功能寄存器可以使用寄存器符號標志,但在指令代碼中還是按地址進行編碼的。【36】若訪問外部RAM單元,可使用哪些尋址方式?【答】訪問外部RAM單元的惟一尋址方式是寄存器間接尋址方式。片外RAM的64 KB單元,使用DPTR作為間址寄存器,其形式為DPTR,例如“MOVX A,DPTR”的功能是把DPTR指定的片外RAM單元的內容送累加器A。 片外RAM低256個單元,除了可使用DPTR作為間址寄存器外,也可使用:R0或R1作間址寄存器。例如“MOVX A,R0
45、39;即把R0指定的片外RAM單元的內容送累加器A。【37】若訪問內部RAM單元,可使用哪些尋址方式?【答】片內RAM的低128單元可以使用寄存器間接尋址方式,但只能采用R0或R1為間址寄存器,其形式為Ri(i=0,1)。 片內RAM的低128單元可以使用直接尋址方式,在指令中直接以單元地址形式給出。 片內RAM的低128單元中的20H2FH有128個可尋址位,還可以使用位尋址方式,對這128個位的尋址使用直接位地址表示。【38】若訪問程序存儲器,可使用哪些尋址方式?【答】訪問程序存儲器可使用的尋址方式有立即尋址方式、變址尋址方式和相對尋址方式三種。立即尋址是指在指令中直接給出操作數。變址尋址
46、方式只能對程序存儲器進行尋址,或者說這是專門針對程序存儲器的尋址方式。相對尋址方式是為實現程序的相對轉移而設立的。這三種尋址方式所得到的操作數或操作數地址都在程序存儲器中。【39】MOV、MOVC、MO(指令有什么區別?分別用于哪些場合?為什么?【答】MOV指令用于對內部RAM的訪問。MOVC指令用于對程序存儲器的訪問,從程序存儲器中讀取數據(如表格、常數等)。MOVX指令采用間接尋址方式訪問外部數據存儲器有Ri和DPTR兩種間接尋址方式。執行MOVX指令時,在P37引腳上輸出RD有效信號或在P36引腳上輸出WR有效信號,可以用做外部數據存儲器或IO的讀寫選通信號,與單片機擴展電路有關。【31
47、0】說明“DA A”指令功能,并說明二一十進制調整的原理和方法。【答】“DA A”指令的功能是對兩個BCD碼的加法結果進行調整。兩個壓縮型BCD碼按二進制數相加之后,必須經過該指令的調整才能得到壓縮型BCD碼的和數。“DA A”指令對兩個BCD碼的減法結果不能進行調整。 BCD碼采用4位二進制數編碼,并且只采用了其中的10個編碼,即00001001,分別代表BCD碼09,而10lO1111為無效碼。當兩個BCD碼相加結果大于9時,說明已進入無效編碼區;當兩個BCD碼相加結果有進位時,說明已跳過無效編碼區。若結果進入或跳過無效編碼區,則結果是錯誤的,相加結果均比正確結果小6(差6個無效編碼)。十
48、進制調整的修正方法為:當累加器低4位大于9或半進位標志AC=1時,進行低4位加6修正;當累加器高4位大于9或進位標志CY=l時,進行高4位加6修正。【3一11】說明80C51單片機的布爾處理機的構造及功能。【答】80C51單片機內部有一個布爾(位)處理機,具有較強的布爾變量處理能力。布爾處理機實際上是一位微處理機,它包括硬件和軟件。布爾處理機以進位標志CY作為位累加器,以80C51單片機內部RAM的20H2FH單元及部分特殊功能寄存器為位存儲器,以80C51單片機的PO、P1、P2和P3為位IO。對位地址空間具有豐富的位操作指令,包括布爾傳送指令、布爾狀態控制指令、位邏輯操作指令及位條件轉移指
49、令,為單片機的控制帶來很大方便。【312】試分析以下程序段的執行結果。MOV SP,#60HMOV A,#88HMOV B,#OFFHPUSH ACCPUSH BPOP ACCPOP B【答】結果如下:MOV SP,#60tt ;(SP)=60HNOV A,#88tt ;(A)=88HMOV B#0FFH ;(B)=FFHPUSH ACC ;(SP)=61H,(61H)=88HPUSH B ;(SP)=62H,(62H)=FFHPOP ACC ;(A)=FFH,(SP)=61HPOP B ;(B)=88H,(SP)=60H程序段的執行結果:累加器A和寄存器B的內容通過堆棧進行了交換。注意:80
50、C51單片機的堆棧是按照先進后出的原則進行管理的。【3-1】已知(A)=7AH,(RO)=30H,(30H)=A5 H,(PSW)=80H。請填寫各條指令單獨執行后的結果。(1) XCH A,R0(2) XCH A,30tt(3) XCH A,R0(4) XCHD A,R0(5) SWAP A(6) ADD A,R0(7) ADD A,30H(8) ADD A,#30H(9) ADDC A,30H(10) SUBB A,30H(11) SUBB A,#30H【答】結果如下:(1) XCH A,R0 ;(A)=30H,(R0):7AH(2) XCH A,30H ;(A)=A5H,(30H)=7AH,(PSW)=81H(3) XCH A,R0 ;(A)=R5H,(30H)=7AH,(PSW)=81H(4) XCHD A,R0 ;(A)=75H,(30H)=AAH,(PSW)=81H(5) SWAP A ;(A)=A7H(6) ADD A,R0 ;(A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 備考必看嵌入式考試試題及答案
- 金屬加工中的金屬鑄造工藝考核試卷
- 計算機四級網軟件測試工程師簡易備考試題及答案
- 行政組織理論的前沿技術探究試題及答案
- 跨境電商毛織品營銷考核試卷
- 嵌入式系統開發行業動態試題及答案
- 軟件開發與測試協作試題及答案
- 數據庫中的多用戶并發控制方案試題及答案
- 地產公司銷控管理制度
- 奧迪服務前臺管理制度
- 采購詢價單模板
- 聯合體內部協議
- 海南省近5年中考語文作文真題及模擬題匯編(含參考例文)
- 《數字經濟概論》補充習題196道及答案 謝衛紅
- 價值流PSI拉動暢流
- 金屬百葉窗安裝方案
- 電廠鍋爐爐膛內腳手架施工方案
- 木家具制造工藝學-南京林業大學中國大學mooc課后章節答案期末考試題庫2023年
- 小學六年級閱讀理解說明文課件
- T-JAMIA 001-2023 超高強度聚乙烯纖維
- 內科-心內簡答題(干貨分享)
評論
0/150
提交評論