版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案1單片機(jī)應(yīng)用技術(shù)習(xí)題答案第一章 概述1. 什么是總線?總線主要有哪幾部分組成?各部分的作用是什么?總線是連接計(jì)算機(jī)各部件之間的一組公共的信號(hào)線。一般情況下,可分為系統(tǒng)總線和外總線。系統(tǒng)總線應(yīng)包括:地址總線(AB) 控制總線(CB) 數(shù)據(jù)總線(DB)地址總線(AB):CPU 根據(jù)指令的功能需要訪問某一存儲(chǔ)器單元或外部設(shè)備時(shí),其地址信息由地址總線輸出,然后經(jīng)地址譯碼單元處理。地址總線為 16 位時(shí),可尋址范圍為 216=64K,地址總線的位數(shù)決定了所尋址存儲(chǔ)器容量或外設(shè)數(shù)量的范圍。在任一時(shí)刻,地址總線上的地址信息是惟一對(duì)應(yīng)某一存儲(chǔ)單元或外部設(shè)備??刂瓶偩€(CB):由 CP
2、U 產(chǎn)生的控制信號(hào)是通過控制總線向存儲(chǔ)器或外部設(shè)備發(fā)出控制命令的,以使在傳送信息時(shí)協(xié)調(diào)一致的工作。CPU 還可以接收由外部設(shè)備發(fā)來的中斷請(qǐng)求信號(hào)和狀態(tài)信號(hào),所以控制總線可以是輸入、輸出或雙向的。數(shù)據(jù)總線(DB):CPU 是通過數(shù)據(jù)總線與存儲(chǔ)單元或外部設(shè)備交換數(shù)據(jù)信息的,故數(shù)據(jù)總線應(yīng)為雙向總線。在 CPU 進(jìn)行讀操作時(shí),存儲(chǔ)單元或外設(shè)的數(shù)據(jù)信息通過數(shù)據(jù)總線傳送給CPU;在 CPU 進(jìn)行寫操作時(shí),CPU 把數(shù)據(jù)通過數(shù)據(jù)總線傳送給存儲(chǔ)單元或外設(shè)2什么是接口電路? CPU 與接口電路連接一般應(yīng)具有哪些信號(hào)線?外部設(shè)備與接口電路連接一般應(yīng)具有哪些信號(hào)線?CPU 通過接口電路與外部輸入、輸出設(shè)備交換信息,
3、一般情況下,外部設(shè)備種類、數(shù)量較多,而且各種參量(如運(yùn)行速度、數(shù)據(jù)格式及物理量)也不盡相同。CPU 為了實(shí)現(xiàn)選取目標(biāo)外部設(shè)備并與其交換信息,必須借助接口電路。一般情況下,接口電路通過地址總線、控制總線和數(shù)據(jù)總線與 CPU 連接;通過數(shù)據(jù)線(D) 、控制線(C)和狀態(tài)線(S)與外部設(shè)備連接。3. 存儲(chǔ)器的作用是什么?只讀存儲(chǔ)器和隨機(jī)存儲(chǔ)器有什么不同?存儲(chǔ)器具有記憶功能,用來存放數(shù)據(jù)和程序。計(jì)算機(jī)中的存儲(chǔ)器主要有隨機(jī)存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)兩種。隨機(jī)存儲(chǔ)器一般用來存放程序運(yùn)行過程中的中間數(shù)據(jù),計(jì)算機(jī)掉電時(shí)數(shù)據(jù)不再保存。只讀存儲(chǔ)器一般用來存放程序,計(jì)算機(jī)掉電時(shí)信息不會(huì)丟失。4 什么是單
4、片機(jī)?單片機(jī)與微機(jī)相比有何特點(diǎn)?單片機(jī)(Single-Chip-Microcomputer)又稱單片微控制器,其基本結(jié)構(gòu)是將微型計(jì)算機(jī)的基本功能部件:中央處理機(jī)(CPU) 、存儲(chǔ)器、輸入接口、輸出接口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)等全部集成在一個(gè)半導(dǎo)體芯片上,因此,單片機(jī)其體積小、功耗低、價(jià)格低廉,且具有邏輯判斷、定時(shí)計(jì)數(shù)、程序控制等多種功能。單片機(jī)結(jié)構(gòu)上的設(shè)計(jì),在硬件、指令系統(tǒng)及 I/O 能力等方面都有獨(dú)到之處,具有較強(qiáng)而有效的控制功能。雖然單片機(jī)只是一個(gè)芯片,但無論從組成還是從其邏輯功能上來看,都具有微機(jī)系統(tǒng)的含義。另一方面,單片機(jī)畢竟是一個(gè)芯片,只有外加所需的輸入、輸出設(shè)備,才可以構(gòu)成實(shí)用的
5、單片機(jī)應(yīng)用系統(tǒng)。5. 單片機(jī)主要應(yīng)用于哪些領(lǐng)域?(1) 智能儀器。智能儀器是含有微處理器的測(cè)量儀器。單片機(jī)廣泛應(yīng)用于各種儀器儀表,單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案2使儀器儀表智能化取得了令人矚目的進(jìn)展。(2) 工業(yè)控制。單片機(jī)廣泛應(yīng)用于各種工業(yè)控制系統(tǒng)中,如數(shù)控機(jī)床、溫度控制、可編程順序控制等。(3) 家用電器。目前各種家用電器普遍采用單片機(jī)取代傳統(tǒng)的控制電路,如洗衣機(jī)、電冰箱、空調(diào)、彩電、微波爐、電風(fēng)扇及高級(jí)電子玩具等。由于配上了單片機(jī),使其功能增強(qiáng)而身價(jià)倍增,深受用戶的歡迎。(4) 機(jī)電一體化。機(jī)電一體化是機(jī)械工業(yè)發(fā)展的方向,機(jī)電一體化產(chǎn)品是指集機(jī)械技術(shù)、微電子技術(shù)、計(jì)算機(jī)技術(shù)于一體,具有智能化
6、特征的機(jī)電產(chǎn)品。單片機(jī)除以上各方面應(yīng)用之外,還廣泛應(yīng)用于辦公自動(dòng)化領(lǐng)域(如復(fù)印機(jī)) 、汽車電路、通信系統(tǒng)(如手機(jī)) 、計(jì)算機(jī)外圍設(shè)備等,成為計(jì)算機(jī)發(fā)展和應(yīng)用的一個(gè)重要方向。第二章 硬件1. 舉例說明 MCS-51 有哪些典型產(chǎn)品,它們有何區(qū)別? MCS-51 系列單片機(jī)可分為兩大系列:51 子系列和 52 子系列。51 子系列單片機(jī)的典型產(chǎn)品有 8051、8751、8031、80C51、80C31 等。它們的結(jié)構(gòu)基本相同,其主要差別反映在片內(nèi)存儲(chǔ)器的配置上有所不同2. 8051 單片機(jī)內(nèi)部包含哪些主要功能部件?各功能部件的主要作用是什么? 8051 單片機(jī)內(nèi)部由 CPU、4KB 的 ROM、1
7、28B 的 RAM、4 個(gè) 8 位的 I/O 并行端口、一個(gè)串行口、兩個(gè) 16 位定時(shí)/計(jì)數(shù)器及中斷系統(tǒng)等組成。3. 程序狀態(tài)字寄存器 PSW 各位的定義是什么?PSW 是一個(gè) 8 位寄存器,用于寄存當(dāng)前指令執(zhí)行后的某些狀態(tài),即反映指令執(zhí)行結(jié)果的一些特征信息。Cy(PSW.7):即 PSW 的 D7 位,進(jìn)位/借位標(biāo)志。AC(PSW.6):即 PSW 的 D6 位,輔助進(jìn)位標(biāo)志。F0(PSW.5)及 F1(PSE.1):即 PSW 的 D5 位、D1 位,用戶標(biāo)志位。RS1 及 RS0(PSW.4 及 PSW.3):即 PSW 的 D4 位、D3 位,寄存器組選擇控制位。OV(PSW.2):即
8、 PSW 的 D2 位,溢出標(biāo)志。4. MCS-51 存儲(chǔ)器結(jié)構(gòu)的主要特點(diǎn)是什么?程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器各有何不同?MCS-51 單片機(jī)的存儲(chǔ)器結(jié)構(gòu)與一般微機(jī)存儲(chǔ)器的配置方法不同,一般微機(jī)把程序和數(shù)據(jù)共存同一存儲(chǔ)空間,各存儲(chǔ)單元對(duì)應(yīng)惟一的地址。而 MCS-51 的存儲(chǔ)器把程序和數(shù)據(jù)的存儲(chǔ)空間嚴(yán)格區(qū)分開。數(shù)據(jù)存儲(chǔ)器用于存放程序運(yùn)算的中間結(jié)果、狀態(tài)標(biāo)志位等。程序存儲(chǔ)器用于存放已編制好的程序及程序中用到的常數(shù)。5. MCS-51 單片機(jī)內(nèi)部 RAM 可分為幾個(gè)區(qū)?各區(qū)的主要作用是什么?內(nèi)部數(shù)據(jù)存儲(chǔ)器分為高、低 128B 兩大部分。低 128B 為 RAM 區(qū),地址空間為 00H7FH,可分為:寄存器
9、區(qū)、位尋址區(qū)、堆棧及數(shù)據(jù)存儲(chǔ)區(qū)。存放程序運(yùn)算的中間結(jié)果、狀態(tài)標(biāo)志位等。高 128B 為特殊功能寄存器(SFR)區(qū),地址空間為 80HFFH,其中僅有 21 個(gè)字節(jié)單元是有定義的。6. MCS-51 單片機(jī)的 P0P3 四個(gè) I/O 端口在結(jié)構(gòu)上有何異同?使用時(shí)應(yīng)注意哪些事項(xiàng)?單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案3P0 口是一個(gè) 8 位漏極開路型雙向 I/O 端口。P1 口是一個(gè)內(nèi)部帶上拉電阻的 8 位準(zhǔn)雙向 I/O 端口。P2 口也是一個(gè)內(nèi)部帶上拉電阻的 8 位準(zhǔn)雙向 I/O 端口P3 口是一個(gè)內(nèi)部帶上拉電阻的 8 位多功能雙向 I/O 端口。在使用時(shí)應(yīng)注意以下方面: P0P3 都是準(zhǔn)雙向 I/O 口,
10、即 CPU 在讀取數(shù)據(jù)時(shí),必須先向相應(yīng)端口的鎖存器寫入“1” 。各端口名稱與鎖存器名稱在編程時(shí)相同,均可用 P0P3 表示。當(dāng)系統(tǒng)復(fù)位時(shí),P0P3 端口鎖存器全為“1” ,故可直接對(duì)其進(jìn)行讀取數(shù)據(jù)。 P0 口每一輸出位可驅(qū)動(dòng)8 個(gè) LS 型 TTL 負(fù)載,P0 口可作通用輸入、輸出端口使用,此時(shí),若要驅(qū)動(dòng)NMOS 或其他拉電流負(fù)載時(shí),需外接上拉電阻,才能使該位高電平輸出有效。在單片機(jī)進(jìn)行外部存儲(chǔ)器擴(kuò)展時(shí),P0 口必須作為地址/數(shù)據(jù)復(fù)用線使用,此時(shí),不必外接上拉電阻,P0 也不能作通用 I/O 口使用。 P1、P2、P3 口輸出均接有內(nèi)部上拉電阻,輸入端無需外接上拉電阻,每一位輸出可以驅(qū)動(dòng) 4
11、個(gè) LS 型 TTL 電路。 P0、P2 口除可以作通用 I/O 端口、以實(shí)現(xiàn)與外部進(jìn)行數(shù)據(jù)交換外,更主要的是,當(dāng)CPU 訪問外部存儲(chǔ)器時(shí),CPU 將自動(dòng)地把外部存儲(chǔ)器的地址線信號(hào)(16 位)送 P0、P2 口,作為地址總線(P0 口輸出低 8 位地址,P2 口輸出高 8 位地址) ,向外部存儲(chǔ)器輸出 16 位存儲(chǔ)單元地址。在控制信號(hào)作用下,該地址低 8 位被鎖存后,P0 口自動(dòng)切換為數(shù)據(jù)總線,這時(shí)經(jīng) P0 口可向外部存儲(chǔ)器進(jìn)行讀、寫數(shù)據(jù)操作。此時(shí),P2 口不再作通用 I/O 端口,P0 口為地址/數(shù)據(jù)復(fù)用口。7. 在什么情況下,P3 口作為第二功能使用?P3 口的第二功能是作為控制端口使用的
12、。由于單片機(jī)沒有專設(shè)的控制信號(hào)引腳,單片機(jī)在進(jìn)行外部存儲(chǔ)器和 I/O 端口擴(kuò)展時(shí)所需要的控制信號(hào)必須由 P3 口提供,P3 口第二功能相當(dāng)于 PC 機(jī)中 CPU 的控制線引腳。8. 為什么說單片機(jī)具有較強(qiáng)的位處理能力?對(duì)于許多控制系統(tǒng),開關(guān)量控制是控制系統(tǒng)的主要對(duì)象之一。作為傳統(tǒng)的 CPU,對(duì)于簡單的個(gè)別開關(guān)量進(jìn)行控制卻顯得不那么方便,而讓 MCS-51 值得驕傲的正是它有效地解決了單一位的控制。MCS-51 片內(nèi) CPU 還是一個(gè)性能優(yōu)異的位處理器,也就是說 MCS-51 實(shí)際上又是一個(gè)完整而獨(dú)立的 1 位單片機(jī)(也稱布爾處理機(jī)) 。該布爾處理機(jī)除了有自己的 CPU、位寄存器、位累加器(即進(jìn)
13、位標(biāo)志 Cy) 、I/O 口和位尋址空間外,還有專供位操作的指令系統(tǒng),可以直接尋址對(duì)位存儲(chǔ)單元和 SFR 的某一位進(jìn)行操作。MCS-51 單片機(jī)對(duì)于位操作(布爾處理)有置位、復(fù)位、取反、測(cè)試轉(zhuǎn)移、傳送、邏輯與和邏輯或運(yùn)算等功能。所以,單片機(jī)具有較強(qiáng)的位處理能力。9. 指出 8051 可進(jìn)行位尋址的存儲(chǔ)空間。 007FH(即 20H.02FH.7)及 SFR 地址能被 8 整除的寄存器中的各位。10. 位地址 90H 和字節(jié)地址 90H 及 P1.0 有何異同?如何區(qū)別?位地址 90H 表示 P1.0 位字節(jié)地址 90H 表示 P1 口單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案411. 在訪問外部 ROM 或
14、RAM 時(shí),P0 和 P2 口各用來傳送什么信號(hào)?P0 口為什么要采用片外地址鎖存器? P0 口傳送地址低八位后可復(fù)用數(shù)據(jù)線,所以,P0 口要采用片外地址鎖存器。P2 口傳送地址高八位。12. 什么是時(shí)鐘周期?什么是機(jī)器周期?什么是指令周期?當(dāng)振蕩頻率為 12MHz 時(shí),一個(gè)機(jī)器周期為多少微秒?時(shí)鐘周期:也稱振蕩周期,即振蕩器的振蕩頻率 fosc的倒數(shù),是時(shí)序中最小的時(shí)間單位。機(jī)器周期:執(zhí)行一條指令的過程可分為若干個(gè)階段,每一階段完成一規(guī)定的操作,完成一個(gè)規(guī)定操作所需要的時(shí)間稱為一個(gè)機(jī)器周期,一個(gè)機(jī)器周期包含 12 個(gè)時(shí)鐘周期。當(dāng)振蕩頻率為 12MHz 時(shí),一個(gè)機(jī)器周期為 12/(121000
15、000)秒=1 微秒指令周期:定義為執(zhí)行一條指令所用的時(shí)間。13. MCS-51 單片機(jī)有幾種復(fù)位方法?復(fù)位后,CPU 從程序存儲(chǔ)器的哪一個(gè)單元開始執(zhí)行程序?MCS-51 的復(fù)位電路包括上電復(fù)位電路和按鍵(外部)復(fù)位電路0000H14. 8051 系統(tǒng)掉電時(shí)如何保存內(nèi)部 RAM 中的數(shù)據(jù)?單片機(jī)在運(yùn)行過程中,如果發(fā)生掉電,片內(nèi) RAM 和 SFR 中的信息將會(huì)丟失。為防止信息丟失,可以把一組備用電源加到 RST/VPD端,當(dāng) VCC上的電壓低于 VPD上的電壓時(shí),備用電源通過 VPD端,以低功耗保持內(nèi)部 RAM 和 SFR 中的數(shù)據(jù)。15. 8051 單片機(jī)引腳 ALE 的作用是什么?當(dāng) 80
16、51 不外接 RAM 和 ROM 時(shí),ALE 上輸出的脈沖頻率是多少?其作用是什么?地址鎖存使能輸出 ALE:當(dāng)單片機(jī)訪問外部存儲(chǔ)器時(shí),外部存儲(chǔ)器的 16 位地址信號(hào)由 P0口輸出低 8 位,P2 口輸出高 8 位,ALE 可用作低 8 位地址鎖存控制信號(hào);當(dāng)不用作外部存儲(chǔ)器地址鎖存控制信號(hào)時(shí),該引腳仍以時(shí)鐘振蕩頻率的 1/6 固定地輸出正脈沖,可以驅(qū)動(dòng) 8個(gè) LS 型 TTL 負(fù)載。第三章 單片機(jī)指令尋址方式就是處理器根據(jù)指令中給出的地址信息來尋找物理地址的方式。1MCS-51 有哪幾種尋址方式?舉例說明它們是怎樣尋址的?MCS-51 指令系統(tǒng)的尋址方式有以下 7 種:立即尋址方式:操作數(shù)直
17、接出現(xiàn)在指令中。直接尋址方式中:操作數(shù)的單元地址直接出現(xiàn)在指令中。寄存器尋址方式中:寄存器中的內(nèi)容就是操作數(shù)。寄存器間接尋址方式中,指定寄存器中的內(nèi)容是操作數(shù)的地址,該地址對(duì)應(yīng)存儲(chǔ)單元的內(nèi)容才是操作數(shù)。變址尋址方式是以程序指針 PC 或數(shù)據(jù)指針 DPTR 為基址寄存器,以累加器 A 作為變址寄存器,兩者內(nèi)容相加(即基地址+偏移量)形成 16 位的操作數(shù)地址,單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案5相對(duì)尋址是以程序計(jì)數(shù)器 PC 的當(dāng)前值作為基地址,與指令中的第二字節(jié)給出的相對(duì)偏移量rel 進(jìn)行相加,所得和為程序的轉(zhuǎn)移地址。位地址:內(nèi)部 RAM 地址空間的可進(jìn)行位尋址的 128 位和 SFR 地址空間的可位尋
18、址的11 個(gè) 8 位寄存器的 88 位。位尋址給出的是直接地址。2位尋址和字節(jié)尋址如何區(qū)分?在使用時(shí)有何不同?由尋址方式可以看出,不同的尋址方式所尋址的存儲(chǔ)空間是不同的。正確地使用尋址方式不僅取決于尋址方式的形式,而且取決于尋址方式所對(duì)應(yīng)的存儲(chǔ)空間。字節(jié)尋址必須是對(duì) 8 位存儲(chǔ)單元,位尋址的存儲(chǔ)空間只能是片內(nèi) RAM 的 20H2FH 字節(jié)地址中的所有位(位地址為 00H7FH)和部分 SFR 的位,決不能是該范圍之外的任何單元的任何位。3要訪問專用寄存器和片外數(shù)據(jù)寄存器,應(yīng)采用什么尋址方式?舉例說明。 訪問專用寄存器:可采用直接尋址或寄存器尋址。訪問片外數(shù)據(jù)寄存器:寄存器間接尋址4什么是堆棧
19、?其主要作用是什么? 堆棧是后進(jìn)先出的數(shù)據(jù)存儲(chǔ)區(qū)一般用于中斷處理過程中,若需要保護(hù)現(xiàn)場(chǎng)數(shù)據(jù)(如內(nèi)部 RAM 單元的內(nèi)容) ,可使用入棧指令,將數(shù)據(jù)壓入堆棧,中斷處理過程執(zhí)行完后,再使用出棧指令恢復(fù)現(xiàn)場(chǎng)數(shù)據(jù)。5編程將內(nèi)部 RAM 的 20H 單元的內(nèi)容傳送給外部 RAM 的 2000H 單元。 MOV A,20HMOV DPTR,#2000HMOVX DPTR,A6編程將內(nèi)部數(shù)據(jù)存儲(chǔ)器 20H30H 單元內(nèi)容清零。 MOV R0,#20HMOV A,#0MOV R3,#17LOP :MOV R0,AINC R0DJNZ R3,LOP7編程查找內(nèi)部 RAM 的 32H41H 單元中是否有 0AAH
20、 這個(gè)數(shù)據(jù),若有這一數(shù)據(jù),則將50H 單元置為 0FFH,否則清 50H 單元為 0。MOV R3, #10HMOV A,#0AAH MOV R0,#31HLOP :INC R0 SUBB A,R0 JZ LOP1 DJNZ R3,LOP單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案6 MOV 50H,#0H AJMP LOP3 LOP1:MOV 50H,#0FFH LOP3: AJMP 1OP3 8查找 20H4FH 單元中出現(xiàn) 00H 的次數(shù),并將查找結(jié)果存入 50H 單元。 MOV R3,#30H MOV R0,#20H MOV A,#0LOP: MOV A,R0 JZ LOP1LOP3: INC R0 D
21、JNZ R3,LOP AJMP LOP2LOP1: INC 50H AJMP LOP3 LOP2:AJMP LOP2 9已知 A=83H,R0=17H,(17H)=34H,寫出下列程序段執(zhí)行完后的 A 中的內(nèi)容。ANL A, #17HORL 17H, AXRL A, R0CPLA (A)=11001011B=0CBH10已知單片機(jī)的 fosc=12MHz,分別設(shè)計(jì)延時(shí) 0.1s、1s、1min 的子程序。 設(shè)晶振頻率為 12MHz,一個(gè)機(jī)器周期為 1s,延時(shí) 1ms 的子程序:執(zhí)行時(shí)間(機(jī)器周期)DELAY:MOV R7, #0FFH 1 LOOP:NOP 1NOP 1DJNZ R7, LOO
22、P 2RET 2該程序段的總的執(zhí)行時(shí)間為:(1+4255+2)s=1023s1ms延時(shí)時(shí)間為 100ms 的子程序:DELAY: MOV R5,#64H 對(duì)延時(shí) 1ms 的子程序循環(huán) 100 次。LOP1:MOV R7, #0FFH LOOP:NOP 單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案7NOP DJNZ R7, LOOPDJNZ R5,LOP1 RET 延時(shí)時(shí)間為 1s 的子程序:DELAY1: MOV R3, #0AH 對(duì)延時(shí) 100ms 的子程序循環(huán) 10 次DELAY: MOV R5,#64H 。LOP1:MOV R7, #0FFH LOOP:NOP NOP DJNZ R7, LOOPDJNZ
23、R5,LOP1 DJNZ R3, DELAYRET延時(shí)時(shí)間為 60s 的子程序: 對(duì)延時(shí) 1s 的子程序循環(huán) 60 次11MCS-51 匯編語言中有哪些常用的偽指令?各起什么作用? BIT(地址符號(hào)命令)END(結(jié)束匯編)EQU(等值) DB(定義字節(jié))DW(定義字)DS(定義存儲(chǔ)單元)ORG(匯編起始地址)12比較下列各題中的兩條指令有什么異同? MOV A, R1; MOV 0E0H, R1 指令功能相同,尋址方式表示不同 MOV A, P0; MOV A, 80H 指令功能相同,尋址方式表示不同 LOOP:SJMP LOOP; SJMP $ 指令功能相同13下列程序段匯編后,從 3000
24、H 開始各有關(guān)存儲(chǔ)單元的內(nèi)容是什么?ORG 3000HTAB1:EQU 1234HTAB2:EQU 5678HDB65,13,abcABCDWTAB1,TAB2,9ABCH 3000H: 65 3001H: 13 3002H: a單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案8 3003H: b 3004H: c 3005H: A 3006H:B 3007H: C 3008H: 34H 3009H: 12H 300AH: 78H 300BH: 56H 300CH: 0BCH 300DH: 9AH14為了提高匯編語言程序的效率,在編寫時(shí)應(yīng)注意哪些問題?(1) 把要解決的問題化成一個(gè)個(gè)具有一定獨(dú)立性的功能模塊,各模塊
25、盡量采用子程序完成其功能。(2) 力求少用無條件轉(zhuǎn)移指令,盡量采用循環(huán)結(jié)構(gòu)。(3) 對(duì)主要的程序段要下功夫精心設(shè)計(jì),這樣會(huì)收到事半功倍的效果。(4) 能用 8 位數(shù)據(jù)解決問題的就不要使用 16 位數(shù)據(jù)。(5) 累加器是信息傳遞的樞紐,在調(diào)用子程序時(shí)應(yīng)通過累加器傳送子程序的參數(shù),通過累加器向主程序傳送返回參數(shù)。所以,在子程序中一般不把累加器推入堆棧。若需保護(hù)累加器的內(nèi)容時(shí),應(yīng)先把累加器的內(nèi)容存入其他寄存器單元,然后再調(diào)用子程序。(6)為了保證程序運(yùn)行的安全可靠,應(yīng)考慮使用軟件抗干擾技術(shù),如數(shù)字濾波技術(shù)、指令冗余技術(shù)、軟件陷井技術(shù),用匯編語言程序?qū)崿F(xiàn)這些技術(shù),不需要增加硬件成本,可靠性高,穩(wěn)定性好
26、,方便靈活。15試編寫 8 字節(jié)外部數(shù)據(jù)存儲(chǔ)器到內(nèi)部數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)塊傳送程序,外部數(shù)據(jù)存儲(chǔ)器地址范圍為 40H47H,內(nèi)部數(shù)據(jù)存儲(chǔ)器地址范圍為 30H37H。MOV R3,#8 MOV R0,#40H MOV R1,#30HLOP1:MOVX A,R0 MOV R1,A INC R0 INC R1 DJNZ R3,LOP1 16試編寫 8 字節(jié)外部程序存儲(chǔ)器到內(nèi)部數(shù)據(jù) RAM 的傳送程序,外部程序存儲(chǔ)器地址為2040H2047H,內(nèi)部 RAM 地址為 30H37H。參看 15 題答案(提示:外部程序存儲(chǔ)器地址為 16 位地址:2040H2047H,間接尋址采用DPTR)單片機(jī)應(yīng)用技術(shù)習(xí)題參考
27、答案917試編程使內(nèi)部 RAM 的 20H4FH 單元的數(shù)據(jù)塊按降序排列。 參看 23 題答案(提示:本題對(duì) 20H4FH 單元(48 個(gè))數(shù)據(jù)降序排列) 。18內(nèi)部 RAM 的 20H 單元開始有一個(gè)數(shù)據(jù)塊,以 0DH 為結(jié)束標(biāo)志,試統(tǒng)計(jì)該數(shù)據(jù)塊長度,將該數(shù)據(jù)塊傳送到外部數(shù)據(jù)存儲(chǔ)器 7E01H 開始的單元,并將長度存入 7E00H 單元。 MOV R0, #20H MOV DPTR, #7E01HLOP: MOV A, R0 MOV 60H,ASUBB A, #0DH JZ LOP1 MOV A,60H MOVX DPTR, AINC R3 INC R0 INC DPTR AJMP LOPL
28、OP1: MOV DPTR, #7E00H MOV A,R3 MOVX DPTR, A END 19試編寫一個(gè)用查表法查 09 字形 7 段碼(假設(shè)表的首地址為 TABLE)的子程序,調(diào)用子程序前,待查表的數(shù)據(jù)存放在累加器 A 中,子程序返回后,查表的結(jié)果也存放在累加器A 中。SQR1: MOV DPTR,#TABLE MOVC A, A+DPTR RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ; 09 的字形顯示段碼(LED 共陽極。DB 92H,82H,F8H,80H,90H 20內(nèi)部 RAM 的 DATA 開始的區(qū)域中存放著 10 個(gè)單字節(jié)十進(jìn)制數(shù),求其累加和
29、,并將結(jié)果存入 SUM 和 SUM+1 單元。 MOV R0,#DATA MOV R3,#0AH MOV A,#0LOP: ADD A,R0 MOV R4,A ADDC A, #0 MOV R5,A單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案10 INC R0 DJNZ R3, LOP MOV SUM,R4 MOV SUM+1,R5 END21內(nèi)部 RAM 的 DATA1 和 DATA2 單元開始存放著兩個(gè)等長的數(shù)據(jù)塊,數(shù)據(jù)塊的長度在LEN 單元中。請(qǐng)編程檢查這兩個(gè)數(shù)據(jù)塊是否相等,若相等,將 0FFH 寫入 RESULT 單元,否則將 0 寫入 RESULT 單元。 MOV R0,#DATA1 MOV R3,
30、LEN LOP: MOV A, R0 CJNZ A,DATA2, LOP1 INC R0 INC DATA2 DJNZ R3,LOP MOV A,#0FFH MOV RESULT,A AJMP LOP2 LOP1:MOV A,#0 MOV RESULT, A LOP2: AJMP LOP2 END22有一輸入設(shè)備,其端口地址為 20H,要求在 1 秒鐘時(shí)間內(nèi)連續(xù)采樣 10 次讀取該端口數(shù)據(jù),求其算術(shù)平均值,結(jié)果存放在內(nèi)部 RAM 區(qū) 20H 單元。 MOV R0,#20H MOV R2,#0 MOV A,#0 MOV R4,#0LOP : MOV R3,#0AH IN : ACALL DELA
31、Y MOVX A, R0 MOV R2 , A MOV A, R4 ADD A, R2 MOV R4, A DJNZ R3, IN MOV B,#0AH DIV AB MOV 20H,A單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案11 AJMP LOP DELAY: MOV R5,#64H 延時(shí)時(shí)間為 0.1s 的子程序:LOP1: MOV R7, #0FFH LOOP: NOP NOP DJNZ R7, LOOPDJNZ R5,LOP1 RET END 第 4 章 中斷1MCS-51 系列單片機(jī)能提供幾個(gè)中斷源、幾個(gè)中斷優(yōu)先級(jí)?各個(gè)中斷源的優(yōu)先級(jí)怎樣確定?在同一優(yōu)先級(jí)中,各個(gè)中斷源的優(yōu)先順序怎樣確定?答:MC
32、S-51 系列單片機(jī)能提供 5 個(gè)中斷源,2 個(gè)中斷優(yōu)先級(jí)。各個(gè)中斷源的優(yōu)先級(jí)是由特殊功能寄存器 IP 來確定,IP 中和各個(gè)中斷源對(duì)應(yīng)位為 1 時(shí),此中斷源為高優(yōu)先級(jí),否則為低優(yōu)先級(jí)。在同一優(yōu)先級(jí)中,各個(gè)中斷源的優(yōu)先順序是由自然優(yōu)先級(jí)來確定的。2簡述 MCS-51 系列單片機(jī)的中斷響應(yīng)過程。答:MCS-51 系列單片機(jī)的中斷響應(yīng)過程是按照以下順序執(zhí)行的:開中斷-中斷請(qǐng)求-中斷判斷-中斷響應(yīng)-中斷返回。3MCS-51 系列單片機(jī)的外部中斷有哪兩種觸發(fā)方式?如何設(shè)置?對(duì)外部中斷源的中斷請(qǐng)求信號(hào)有何要求?答:MCS-51 系列單片機(jī)的外部中斷有電平觸發(fā)和邊沿觸發(fā)兩種方式。是由特殊功能寄存器TCON
33、 中 IT0,IT1 的狀態(tài)確定的,如:IT0 為 1 時(shí)外部中斷 0 為邊沿觸發(fā)方式,當(dāng) INT0 外部引腳出現(xiàn)下降沿時(shí)向 CPU 提出中斷請(qǐng)求, 否則為電平觸發(fā)方式,當(dāng) INT0 外部引腳出現(xiàn)低電平時(shí)向 CPU 提出中斷請(qǐng)求。4MCS-51 單片機(jī)中斷響應(yīng)時(shí)間是否固定?為什么?答:MCS-51 單片機(jī)中斷響應(yīng)時(shí)間不固定,因?yàn)楫?dāng)中斷源向 CPU 提出中斷請(qǐng)求時(shí),CPU 正在執(zhí)行的指令的指令周期是不一樣的。5MCS-51 單片機(jī)如果擴(kuò)展 6 個(gè)中斷源,可采用哪些方法?如何確定它們的優(yōu)先級(jí)?答:一般可采取中斷加查詢方式,軟件先查詢到的為高優(yōu)先級(jí),最后查詢到的為低優(yōu)先級(jí)。6當(dāng)正在執(zhí)行某一中斷源的中
34、斷服務(wù)程序時(shí),如果有新的中斷請(qǐng)求出現(xiàn),問在什么情況下可響應(yīng)新的中斷請(qǐng)求?在什么情況下不能響應(yīng)新的中斷請(qǐng)求?答:當(dāng)正在執(zhí)行某一中斷源的中斷服務(wù)程序時(shí),如果有新的中斷請(qǐng)求出現(xiàn),當(dāng)新中斷源中斷級(jí)別比正在執(zhí)行中斷源的中斷級(jí)別高時(shí)可響應(yīng)新的中斷請(qǐng)求,否則不能響應(yīng)新的中斷請(qǐng)求。78051 單片機(jī)有 5 個(gè)中斷源,但只能設(shè)置兩個(gè)中斷優(yōu)先級(jí),因此,在中斷優(yōu)先級(jí)安排上受到一定的限制。問以下幾種中斷優(yōu)先級(jí)順序的安排(級(jí)別由高到低)是否可能?如可能,則應(yīng)如何設(shè)置中斷源的中斷級(jí)別?否則,請(qǐng)敘述不可能的理由。(1)定時(shí)器 0,定時(shí)器 1,外中斷 0,外中斷 1,串行口中斷??赡?。其中:定時(shí)器 0,定時(shí)器 1 為高優(yōu)先級(jí)
35、。單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案12(2)串行口中斷,外中斷 0,定時(shí)器 0,外中斷 1,定時(shí)器 1??赡?。其中:串行口中斷為高優(yōu)先級(jí)。(3)外中斷 0,定時(shí)器 1,外中斷 1,定時(shí)器 0,串行口中斷。不可能。(4)外中斷 0,外中斷 1,串行口中斷,定時(shí)器 0,定時(shí)器 1??赡?。其中:外中斷 0,外中斷 1,串行口中斷為高優(yōu)先級(jí)。(5)串行口中斷,定時(shí)器 0,外中斷 0,外中斷 1,定時(shí)器 1。不可能。(6)外中斷 0,外中斷 1,定時(shí)器 0,串行口中斷,定時(shí)器 1。不可能。(7)外中斷 0,定時(shí)器 1,定時(shí)器 0,外中斷 1,串行口中斷??赡?。其中:外中斷 0,定時(shí)器 1 為高優(yōu)先級(jí)。第 5
36、章 定時(shí)計(jì)數(shù)器18051 定時(shí)器/計(jì)數(shù)器有哪幾種工作模式?各有什么特點(diǎn)?答:8051 定時(shí)器/計(jì)數(shù)器有 0,1,2,3 四種工作模式。模式 0 為 13 位 1 定時(shí)器/計(jì)數(shù)器,模式 1 為 16 位 1 定時(shí)器/計(jì)數(shù)器,模式 2 為自動(dòng)賦初值的 8 位定時(shí)器/計(jì)數(shù)器,模式 3 可以增加一個(gè) 8 位定時(shí)器(T1 沒有模式 3) 。28051 定時(shí)器作定時(shí)和計(jì)數(shù)時(shí),其計(jì)數(shù)脈沖分別由誰提供?答:8051 定時(shí)器作定時(shí)器時(shí),輸入的記數(shù)脈沖是由晶體振蕩器的輸出經(jīng) 12 分頻后得到的,所以定時(shí)器可看作是對(duì)單片機(jī)機(jī)器周期的計(jì)數(shù)器。8051 定時(shí)器作計(jì)數(shù)器時(shí),則對(duì)外部事件進(jìn)行計(jì)數(shù)。38051 定時(shí)器的門控信
37、號(hào) GATE 為 1 時(shí),定時(shí)器如何啟動(dòng)?答:8051 定時(shí)器的門控信號(hào) GATE 為 1 時(shí),只有(或)引腳為高電平且INT0INT1TR0(或 TR1)置 1 時(shí),相應(yīng)的 T0 或 T1 才能選通工作。4定時(shí)器/計(jì)數(shù)器 0 已預(yù)置為 156,且選定用于模式 2 的計(jì)數(shù)方式,現(xiàn)在 T0 引腳上輸入周期為 1ms 的脈沖,問:(1) 此時(shí)定時(shí)器/計(jì)數(shù)器 0 的實(shí)際用途是什么? (2) 在什么情況下,定時(shí)器/計(jì)數(shù)器 0 溢出?答:(1)此時(shí)定時(shí)器/計(jì)數(shù)器 0 的實(shí)際用途是 0。1S 脈沖信號(hào)發(fā)生器。 (2)當(dāng) T0 每記數(shù) 100 次后定時(shí)器/計(jì)數(shù)器 0 溢出。5設(shè) fosc=12MHz,定時(shí)器
38、 0 的初始化程序和中斷服務(wù)程序如下:MAIN:MOV TH0, #9DHMOV TL0, #0D0HMOV TMOD, #01HSETB TR0中斷服務(wù)程序:MOV TH0, #9DHMOV TL0, #0D0H單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案13RETI問:(1) 該定時(shí)器工作于什么方式? (2) 相應(yīng)的定時(shí)時(shí)間或計(jì)數(shù)值是多少?答:(1)該定時(shí)器以模式 1 工作于定時(shí)方式。 (2)相應(yīng)的定時(shí)時(shí)間為 25。136ms.68051 單片機(jī)的 fosc=6MHz,如果要求定時(shí)時(shí)間分別位 0.1ms 和 5ms,當(dāng) T0 工作在模式0、模式 1 和模式 2 時(shí),分別求出定時(shí)器的初值。答:(1)定時(shí)時(shí)間分
39、別位 0.1ms 時(shí):模式 0 初值為 8142、模式 1 初值為 65486,模式 2初值 206。 (2)定時(shí)時(shí)間分別位 5ms 時(shí):模式 0 初值為 5692、模式 1 初值為 63036,模式 2 此時(shí)定時(shí)時(shí)間不夠。7以定時(shí)器 1 進(jìn)行外部事件計(jì)數(shù),每計(jì)數(shù) 1000 個(gè)脈沖后,定時(shí)器 1 轉(zhuǎn)為定時(shí)工作方式。定時(shí) 10ms 后,又轉(zhuǎn)為計(jì)數(shù)方式,如此循環(huán)不止。設(shè) fosc=6MHz,試用模式 1 編程。解:先確定 T1 作為計(jì)數(shù)器時(shí)初值為:64536(0FC68H) T1 作為定時(shí)器時(shí)初值為:60536(0EC78H) 程序:SETB TR1 LOOP: MOV TMOD,#50H MOV
40、 TH1,#0FCH MOV TL1,#68H AA : JBC TF1,AA MOV TMOD,#10H MOV TH1,#0E0H MOV TL1,#78H BB: JBC TF1,BB SJMP LOOP END 8已知 8051 單片機(jī)的 fosc=6MHz,試?yán)?T0 和 P1.0 輸出矩形波。矩形波高電平寬100s,低電平寬 300s。解:先確定 T0 作為定時(shí)器工作于模式 2 時(shí)初值為:高電平為 50,低電平為 150。采用中斷方式編程。 ORG 0000H AJMP MAIN ORG 001BH AJMP TIM0 ORG 0030H MAIN: MOV SP,#30H ;
41、設(shè)置棧底 MOV TMOD,#02H MOV TL0,#50 MOV IE,#82H SETB P1.0 SETB TR0 SJMP $ ORG 0100H單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案14 TIM0: JNB P1.0, AA CLR P1.0 MOV TL0,#150 RETI AA: SETB P1.0 MOV TL0,#50 RETI END9設(shè) fosc=12MHz,試編寫一段程序,功能為:對(duì)定時(shí)器 T0 初始化,使之工作在模式 2,產(chǎn)生 200s 定時(shí),并用查詢 T0 溢出標(biāo)志的方法,控制 P1.1 輸出周期為 2ms 的方波。解:先確定 T0 作為定時(shí)器時(shí)初值為:56 程序: MOV
42、 TMOD,#02H MOV TL0,#56 MOV TH0,#56 MOV R7,#5 ; 設(shè)置循環(huán)次數(shù) SETB TR0AA: JBC TF0,AA DJNZ R7,AA CPL P1.1 MOV R7,#5 SJMP AA END10已知 8051 單片機(jī)系統(tǒng)時(shí)鐘頻率為 6MHz,利用其定時(shí)器測(cè)量某正脈沖寬度時(shí),采用哪種工作模式可以獲得最大的量程?能夠測(cè)量的最大脈寬是多少?第第 6 6 章章 串口通信串口通信1異步通信和同步通信的主要區(qū)別是什么?MCS-51 串行口有沒有同步通信功能?答案:異步通信因?yàn)槊繋瑪?shù)據(jù)都有起始位和停止位,所以傳送數(shù)據(jù)的速率受到限制。但異步通信不需要傳送同步脈沖,
43、字符幀的長度不受限制,對(duì)硬件要求較低,因而在數(shù)據(jù)傳送量不很大。同步通信一次可以連續(xù)傳送幾個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)不需起始位和停止位,數(shù)據(jù)之間不留間隙,因而數(shù)據(jù)傳輸速率高于異步通信。但同步通信要求用準(zhǔn)確的時(shí)鐘來實(shí)現(xiàn)發(fā)送端與接收端 之間的嚴(yán)格同步。MCS-51 串行口有同步通信功能。2解釋下列概念:(1) 并行通信、串行通信。(2) 波特率。(3) 單工、半雙工、全雙工。(4) 奇偶校驗(yàn)。答案:(1)并行通信:數(shù)據(jù)的各位同時(shí)進(jìn)行傳送。其特點(diǎn)是傳送速度快、效率高,數(shù)據(jù)有多少位,單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案15就需要有多少根傳輸線。當(dāng)數(shù)據(jù)位數(shù)較多和傳送距離較遠(yuǎn)時(shí),就會(huì)導(dǎo)致通信線路成本提高, 因此它適合于短距離傳
44、輸。串行通信:數(shù)據(jù)一位一位地按順序進(jìn)行傳送。其特點(diǎn)是只需一對(duì)傳輸線就可實(shí)現(xiàn)通信,當(dāng)傳輸?shù)臄?shù)據(jù)較多、距離較遠(yuǎn)時(shí),它可以顯著減少傳輸線,降低通信成本,但是串行傳送的速度慢。(2)波特率:每秒鐘傳送的二進(jìn)制數(shù)碼的位數(shù)稱為波特率(也稱比特?cái)?shù)) ,單位是 bps(bit per second) ,即位/秒。(3)單工:只允許數(shù)據(jù)向一個(gè)方向傳送,即一方只能發(fā)送,另一方只能接收。半雙工:允許數(shù)據(jù)雙向傳送,但由于只有一根傳輸線,在同一時(shí)刻只能一方發(fā)送,另一方接收。全雙工:允許數(shù)據(jù)同時(shí)雙向傳送,由于有兩根傳輸線,在 A 站將數(shù)據(jù)發(fā)送到 B 站的同時(shí),也允許 B 站將數(shù)據(jù)發(fā)送到 A 站。(4)奇偶校驗(yàn):為保證通信
45、質(zhì)量,需要對(duì)傳送的數(shù)據(jù)進(jìn)行校驗(yàn)。對(duì)于異步通信,常用的校驗(yàn)方法是奇偶校驗(yàn)法。采用奇偶校驗(yàn)法,發(fā)送時(shí)在每個(gè)字符(或字節(jié))之后附加一位校驗(yàn)位,這個(gè)校驗(yàn)位可以是 “0”或“1” ,以便使校驗(yàn)位和所發(fā)送的字符(或字節(jié))中 “1”的個(gè)數(shù)為奇數(shù)稱為奇校驗(yàn),或?yàn)榕紨?shù)稱為偶校驗(yàn)。接收時(shí),檢查所接收的字符(或字節(jié))連同奇偶校驗(yàn)位中 “1”的個(gè)數(shù)是否符合規(guī)定。若不符合,就證明傳送數(shù)據(jù)受到干擾發(fā)生了變化, CPU 可進(jìn)行相應(yīng)處理。3MCS-51 串行口控制寄存器 SCON 中 SM2、TB8、RB8 有何作用?主要在哪幾種方式下使用?答案:SM2:多機(jī)通信控制位,主要在方式 1、2、3 下使用;TB8:存放發(fā)送數(shù)據(jù)的
46、第 9 位,主要在方式 2、3 下使用;RB8:存放接收數(shù)據(jù)的第 9 位或停止位,主要在方式 1、2、3 下使用。4試分析比較 MCS-51 串行口在四種工作方式下發(fā)送和接收數(shù)據(jù)的基本條件和波特率的產(chǎn)生方法。答案:發(fā)送數(shù)據(jù)的基本條件:方式 0、1、2、3:CPU 執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器 SBUF 的指令;接收數(shù)據(jù)的基本條件:方式 0:用軟件使 REN=1(同時(shí) RI=0) ;方式 1:用軟件使 REN=1,一幀數(shù)據(jù)接收完畢后,必須同時(shí)滿足以下兩個(gè)條件:RI=0;SM2=0 或接收到的停止位為 1,這次接收才真正有效,將 8 位數(shù)據(jù)送入 SBUF,停止位送 RB8,置位 RI。否則,這次接
47、收到的數(shù)據(jù)將因不能裝入 SBUF 而丟失。方式 2、3:軟件使 REN=1,同時(shí)滿足以下兩個(gè)條件: RI=0; SM2=0或接收到的第 9 位數(shù)據(jù)為 1(SM2=1) ,則這次接收有效,8 位數(shù)據(jù)裝入 SBUF,第 9 位數(shù)據(jù)裝入 RB8,并由硬件置位 RI。否則,接收的這一幀數(shù)據(jù)將丟失。波特率的產(chǎn)生方法:在方式 0 下,串行口的波特率是固定的,即波特率=fosc /12;在方式 1、3 下,串行口波特率由定時(shí)器 T1 的溢出率和 SMOD 值同時(shí)決定。相應(yīng)公式為:波特率=2SMODT1 溢出率/32;單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案16在方式 2 下,串行口的波特率可由 PCON 中的 SMOD
48、位控制:若使 SMOD=0,則所選波特率為 fosc/64;若使 SMOD=1,則波特率為 fosc/32。即5為何 T1 用作串行口波特率發(fā)生器時(shí)常用模式 2?若 fosc=6MHz,試求出 T1 在模式 2 下可能產(chǎn)生的波特率的變化范圍。答案:定時(shí)器 T1 作為波特率發(fā)生器可工作于模式 0、模式 1 和模式 2。其中模式 2 在 T1 溢出后可自動(dòng)裝入時(shí)間常數(shù),避免了重裝參數(shù),因而在實(shí)際應(yīng)用中除非波特率很低,一般都采用模式 2。若 fosc=6MHz,T1 在模式 2 下可能產(chǎn)生的波特率的變化范圍為:61.04 bps 15625 bps。6簡述多機(jī)通信原理。答案:當(dāng)主機(jī)選中與其通信的從機(jī)
49、后,只有該從機(jī)能夠與主機(jī)通信,其他從機(jī)不能與主機(jī)進(jìn)行數(shù)據(jù)交換, 而只能準(zhǔn)備接收主機(jī)發(fā)來的地址幀。上述要求是通過 SCON 寄存器中的 SM2和 TB8 來實(shí)現(xiàn)的。當(dāng)主機(jī)發(fā)送地址幀時(shí)使 TB8=1,發(fā)送數(shù)據(jù)幀時(shí)使 TB8=0,TB8 是發(fā)送的一幀數(shù)據(jù)的第 9 位,從機(jī)接收后將第 9 位數(shù)據(jù)作為 RB8,這樣就知道主機(jī)發(fā)來的這一幀數(shù)據(jù)是地址還是數(shù)據(jù)。另外,當(dāng)一臺(tái)從機(jī)的 SM2=0 時(shí),可以接收地址幀或數(shù)據(jù)幀,而當(dāng) SM2=1時(shí)只能接收地址幀,這就能實(shí)現(xiàn)主機(jī)與所選從機(jī)之間的單獨(dú)通信。7試用 8051 串行口擴(kuò)展 I/O 口,控制 16 個(gè)發(fā)光二極管自右向左以一定速度輪流發(fā)光,畫出電路并編寫程序。答案
50、:電路如下:程序如下:ORG 0000H AJMP MAINORG0023HAJMPSBS; 轉(zhuǎn)向串行口中斷服務(wù)程序ORG2000HMAIN: MOV SCON, #00H; 串行口設(shè)置為方式 0MOV A, #01H; 最右邊一位發(fā)光二極管先亮2SMOD64fosc波特率=單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案17CLRP1.0; 關(guān)閉并行輸出,熄滅顯示CLRP1.1MOV SBUF,A; 開始串行輸出LOOP:SJMPLOOP; 等待中斷SBS:INC R0CJNE R0, #11H, DSPMOV R0, #01HDSP : CJNE R0, #08H, DSPRSETB P1.1 ; 啟動(dòng)高 8
51、位并行輸出DSPR: SETB P1.0 ; 啟動(dòng)低 8 位并行輸出ACALLDELY; 顯示延遲 1sCLRTI; 清發(fā)送中斷標(biāo)志RLA; 準(zhǔn)備點(diǎn)亮下一位CLRP1.0; 關(guān)閉并行輸出,熄滅顯示CLRP1.1MOV SBUF, A; 串行輸出ZDFH: RETIDELY:MOV R2, #05H; 延時(shí) 1s 子程序(fosc=6MHz)DELY0:MOV R3, #0C8HDELY1:MOV R4, #0F8HNOPDELY2:DJNZR4, DELY2DJNZ R3, DELY1DJNZ R2, DELY0RETEND8試設(shè)計(jì)一個(gè) 8051 單片機(jī)的雙機(jī)通信系統(tǒng),串行口工作在方式 1,波
52、特率為 2400bps,編程將甲機(jī)片內(nèi) RAM 中 40H4FH 的數(shù)據(jù)塊通過串行口傳送到乙機(jī)片內(nèi) RAM 的 40H4FH單元中。答案:雙方約定的通信協(xié)議如下:甲機(jī)先發(fā)送請(qǐng)求乙機(jī)接收信號(hào)“0AAH” ,乙機(jī)收到該信號(hào)后,若為準(zhǔn)備好狀態(tài),一個(gè)則發(fā)送數(shù)據(jù)“0BBH”作為應(yīng)答信號(hào),表示同意接收。當(dāng)甲機(jī)發(fā)送完 16 個(gè)字節(jié)后,再向乙機(jī)發(fā)送一個(gè)累加校驗(yàn)和。校驗(yàn)和是針對(duì)數(shù)據(jù)塊進(jìn)行的,即在數(shù)據(jù)發(fā)送時(shí),發(fā)送方對(duì)塊中的數(shù)據(jù)簡單求和,產(chǎn)生一個(gè)單字節(jié)校驗(yàn)字符(校驗(yàn)和) ,附加到數(shù)據(jù)塊結(jié)尾。在數(shù)據(jù)接收時(shí),接收方每接收一個(gè)數(shù)據(jù)也計(jì)算一次校驗(yàn)和;接收完數(shù)據(jù)塊后,再接收甲機(jī)發(fā)送的校驗(yàn)和,并將接收到的校驗(yàn)和與乙機(jī)求出的校驗(yàn)
53、和進(jìn)行比較,向甲機(jī)發(fā)送一個(gè)狀態(tài)字,表示正確(00H)或出錯(cuò)(0FFH) ,出錯(cuò)則要求甲機(jī)重發(fā)。甲機(jī)收到收到乙機(jī)發(fā)送的接收正確應(yīng)答信號(hào)(00H)后,即結(jié)束發(fā)送,否則,就重發(fā)一次數(shù)據(jù)。甲機(jī)采用查詢方式進(jìn)行數(shù)據(jù)發(fā)送,乙機(jī)采用中斷方式進(jìn)行數(shù)據(jù)接收。雙方約定傳輸波特率為2400bps,兩機(jī)主頻均為 11.059MHz,雙機(jī)串行口都工作于方式 1,查表 6-2 可知SMOD=0,定時(shí)器 T1 采用工作模式 2,初值為 F4H。單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案18甲機(jī)發(fā)送子程序:ORG2000HSEND:MOV TMOD, #20H; 定時(shí)器 1 設(shè)為模式 2MOV TL1, #0F4HMOV TH1, #0F4
54、H; 置定時(shí)器初值SETB TR1; 啟動(dòng) T1MOV SCON, #50H; 設(shè)串行口為方式 2MOV PCON, #00H; SMOD=0TLLS: MOV SBUF, #0AAH; 發(fā)送請(qǐng)求接收信號(hào)WFS1: JBCTI, RYD1 ; 等待發(fā)送SJMP WFS1RYD1: JBCRI, RYD2 ; 等待乙機(jī)回答SJMP RYD1RYD2: MOV A, SBUF ; 接收應(yīng)答信號(hào)XRL A, #0BBH JNZ TLLS ; 乙機(jī)未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò)SDD1: MOV R0, #40H; 首地址 40HR0MOV R1, #10H; 數(shù)據(jù)個(gè)數(shù)R1MOV R2, #00H; 清校驗(yàn)和寄存
55、器SDD2: MOV SBUF, R0; 發(fā)送一個(gè)數(shù)據(jù)MOV A, R2ADD A, R0; 求校驗(yàn)和MOV R2, A; 保存校驗(yàn)和INC R0 WFS2: JBCTI, SDD3 ; 等待發(fā)送SJMP WFS2SDD3: DJNZ R1, SDD2; 數(shù)據(jù)塊是否發(fā)送完MOV SBUF, R2; 發(fā)送校驗(yàn)和WFS3:JBCTI, RYD3 SJMP WFS3 RYD3:JBCRI, RYD4 ; 等待乙機(jī)回答SJMP RYD3RYD4: MOV A, SBUFJNZ SDD1 ; 回答出錯(cuò)則重發(fā)RET乙機(jī)接收子程序:ORG2000HRECV:MOV TMOD, #20H; 定時(shí)器 1 設(shè)為模
56、式 2MOV TL1, #0F4HMOV TH1, #0F4H; 置定時(shí)器初值SETB TR1; 啟動(dòng) T1MOV SCON, #50H; 設(shè)串行口為方式 2MOV PCON, #00H; SMOD=0MOV R0, #40H ; 首地址 40HR0MOV R1, #10H; 數(shù)據(jù)個(gè)數(shù)R1單片機(jī)應(yīng)用技術(shù)習(xí)題參考答案19MOV 50H, #00H; 清校驗(yàn)和寄存器SETB 7FHSETB 7EH; 標(biāo)志位初始置 1SETB ES ; 允許接收中斷SETB EA; 開中斷LOOP:SJMPLOOP; 等待中斷中斷服務(wù)子程序:CLR EA CLR RI ; 清中斷JB 7FH, RCMD; 是請(qǐng)求接
57、收信號(hào)嗎JB 7EH, DATA; 是數(shù)據(jù)塊嗎MOV A, SBUF; 接收校驗(yàn)和CJNE A, 50H, ERR; 判斷發(fā)送是否正確MOV A, #00H MOV SBUF, A; 正確,發(fā) 00HWFS1: JNBTI, WFS1 ; 等待發(fā)送CLR TISJMP RETNERR: MOV A, #0FFH MOV SBUF, A; 出錯(cuò),發(fā) 0FFHWFS2: JNBTI, WFS2 ; 等待發(fā)送CLR TISJMP AGANRCMD: MOVA, SBUF ; 接收甲機(jī)請(qǐng)求信號(hào)XRL A, #0AAH JZ TYDX SJMP RETNTYDX: MOVSBUF, #0BBH ; 發(fā)送
58、應(yīng)答信號(hào) 0BBHWFS3: JNBTI, WFS3 ; 等待發(fā)送CLR TICLR 7FHSJMP RETNDATA: MOVA, SBUF ; 接收數(shù)據(jù)MOV R0, AINC DPTRADD A, 50H; 求校驗(yàn)和MOV 50H, A; 保存校驗(yàn)和DJNZ R1, RETN CLR 7EH ; 數(shù)據(jù)接收完后清數(shù)據(jù)標(biāo)志位SJMP RETNAGAN: SETB7FH SETB 7EH; 恢復(fù)標(biāo)志位MOV DPTR, #2000H; 首地址 2000HDPTRMOV R1, #10; 數(shù)據(jù)個(gè)數(shù)R1MOV 50H, #00H; 清校驗(yàn)和寄存器RETN: SETB EA; 開中斷單片機(jī)應(yīng)用技術(shù)習(xí)
59、題參考答案20RETI98051 以方式 2 進(jìn)行串行通信,假定波特率為 1200bps,第 9 位作奇偶校驗(yàn)位,以中斷方式發(fā)送。請(qǐng)編寫程序。答案:主程序:ORG2000HMAIN:MOV SCON, #80H; 將串行口設(shè)置為方式 2,REN=1MOV PCON, #00H; SMOD=0MOV R0, #30H; 發(fā)送數(shù)據(jù)區(qū)首地址R0MOV R1, #50H; 接收數(shù)據(jù)區(qū)首地址R1MOV R2, #20; 置發(fā)送數(shù)據(jù)個(gè)數(shù)R2SETB ESSETB EA; 開中斷LOOP:SJMPLOOP; 等待中斷中斷服務(wù)子程序:ORG0023HAJMPSOUT; 轉(zhuǎn)至中斷服務(wù)程序ORG0200HSOUT
60、: CLRTI; 清發(fā)送中斷標(biāo)志DJNZ R2, LOOP1; 數(shù)據(jù)未發(fā)送完,繼續(xù)發(fā)送SJMP RR1; 發(fā)送完返回LOOP1: MOV A, R0 ; 取發(fā)送數(shù)據(jù)到 AMOV C, PSW.0 MOV TB8, CMOV SBUF, A; 發(fā)送數(shù)據(jù)INCR0; 指向下一個(gè)數(shù)據(jù)RR1: RETI108051 以方式 3 進(jìn)行串行通信,假定波特率為 1200bps,第 9 位作奇偶驗(yàn)位,以查詢方式接收。請(qǐng)編寫程序。答案:ORG2000HRECV:MOV TMOD, #20H; 定時(shí)器 1 設(shè)為模式 2MOV TL1, #0E8HMOV TH1, #0E8H; 置定時(shí)器初值SETB TR1; 啟動(dòng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 26《好的故事》說課稿-2024-2025學(xué)年語文六年級(jí)上冊(cè)統(tǒng)編版
- 1場(chǎng)景歌說課稿-2024-2025學(xué)年統(tǒng)編版語文二年級(jí)上冊(cè)
- 2024年秋一年級(jí)道德與法治下冊(cè) 第二單元 我和大自然 5 風(fēng)兒輕輕吹說課稿 新人教版
- 18古詩三首浪淘沙(其一)說課稿-2024-2025學(xué)年六年級(jí)上冊(cè)語文統(tǒng)編版
- 8 設(shè)計(jì)制作小車(二) 說課稿-2024-2025學(xué)年科學(xué)四年級(jí)上冊(cè)教科版
- 23《月光曲》說課稿-2024-2025學(xué)年語文六年級(jí)上冊(cè)統(tǒng)編版
- 1 24時(shí)計(jì)時(shí)法(說課稿)-2024-2025學(xué)年三年級(jí)上冊(cè)數(shù)學(xué)人教版001
- 2023九年級(jí)道德與法治上冊(cè) 第三單元 文明與家園 第五課 守望精神家園第2框 凝聚價(jià)值追求說課稿 新人教版
- 2025北京市飼料采購合同新
- 2025建造船舶所要用到的合同
- 煙葉復(fù)烤能源管理
- 食品安全管理員考試題庫298題(含標(biāo)準(zhǔn)答案)
- 執(zhí)業(yè)醫(yī)師資格考試《臨床執(zhí)業(yè)醫(yī)師》 考前 押題試卷絕密1 答案
- 2024年山東濟(jì)寧初中學(xué)業(yè)水平考試地理試卷真題(含答案詳解)
- 社會(huì)保險(xiǎn)課件教學(xué)課件
- 訂婚協(xié)議書手寫模板攻略
- 準(zhǔn)備單元 雪地上的“足跡”(教學(xué)設(shè)計(jì))-2023-2024學(xué)年五年級(jí)下冊(cè)科學(xué)大象版
- 宇航用商業(yè)現(xiàn)貨(COTS)器件保證指南-編制說明
- 音樂學(xué)科閱讀方案
- 《立體倉庫鋼結(jié)構(gòu)貨架技術(shù)規(guī)范(征求意見稿)》
- 2024年貴州蔬菜集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
評(píng)論
0/150
提交評(píng)論