




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——單片機(jī)原理與應(yīng)用王洪君部分習(xí)題參考解答第2章部分習(xí)題參考解答
1、試述MCS-51單片機(jī)內(nèi)部有哪些主要規(guī)律部件并說出其功能,畫出片內(nèi)結(jié)構(gòu)圖。
MCS-51單片機(jī)的內(nèi)部除包含CPU外,還包含程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器、并行I/O接口、串行I/O接口、總線控制規(guī)律和中斷控制規(guī)律等規(guī)律部件,其結(jié)構(gòu)框圖如下圖:
外接時(shí)鐘源電源振蕩器和時(shí)序規(guī)律定時(shí)計(jì)數(shù)器程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器CPU內(nèi)部總線64K空間總線控制中斷控制規(guī)律并行I/O口串行I/O口其中,CPU是單片機(jī)的最核心部分,它是整個(gè)單片機(jī)的控制和指揮中心,完成所有的計(jì)算和控制任務(wù)。振蕩器和時(shí)序規(guī)律,產(chǎn)生CPU工作所需要的內(nèi)部時(shí)鐘。中斷控制規(guī)律用來應(yīng)付一些臨時(shí)到達(dá)的突發(fā)事件,并能保證當(dāng)有多個(gè)突發(fā)事件發(fā)生時(shí),CPU能夠有序地為這些事件進(jìn)行服務(wù),所有突發(fā)事件服務(wù)完成后CPU還能繼續(xù)以前的工作。并行I/O接口和串行I/O接口作為CPU與外部設(shè)備通信的信息傳輸通道。程序存儲(chǔ)器用于存放單片機(jī)的程序。數(shù)據(jù)存儲(chǔ)器用于存放內(nèi)部待處理的數(shù)據(jù)和處理后的結(jié)果。定時(shí)器/計(jì)數(shù)器主要是完成對(duì)外部輸入脈沖的計(jì)數(shù)或者根據(jù)內(nèi)部的時(shí)鐘及定時(shí)設(shè)置,周期性的產(chǎn)生定時(shí)信號(hào)。64K總線控制規(guī)律,用于產(chǎn)生外部64KB存儲(chǔ)空間的有關(guān)讀寫控制信號(hào)。
2、MCS-51單片機(jī)有4個(gè)8位并行口(P0、P1、P2、P3),哪個(gè)口可作為地址/數(shù)據(jù)利用總線?
P0口可作為地址/數(shù)據(jù)復(fù)用總線口。
3、P0口作為通用I/O口使用時(shí),在輸出狀態(tài)下應(yīng)注意什么?在輸入狀態(tài)下應(yīng)注意什么?
P0口作為通用I/O口使用時(shí),輸出級(jí)是漏極開路的,因此在輸出狀態(tài)下外部應(yīng)加上拉電阻。在輸入狀態(tài)下應(yīng)先向端口鎖存器寫入1,這樣引腳便處于懸浮狀態(tài),可作高阻抗輸入。
5、MCS-51單片機(jī)的最大尋址空間是多少?為什么?
MCS-51單片機(jī),程序存儲(chǔ)器空間采用片內(nèi)、片外統(tǒng)一編址的方式,共有64KB,地址范圍為000OH~FFFFH。片內(nèi)有256字節(jié)數(shù)據(jù)存儲(chǔ)器地址空間,地址范圍為00H~FFH。片外數(shù)據(jù)存儲(chǔ)器空間有64KB,其地址范圍也是000OH~FFFFH。
7、MCS-51單片機(jī)片內(nèi)低128字節(jié)的RAM中,分了幾個(gè)基本區(qū)域?說出這些區(qū)域的名稱。
MCS-51系列單片機(jī)片內(nèi)低128字節(jié)的RAM包含:工作寄放器區(qū)(00H:1FH)、可位尋址區(qū)(20H:2FH)、通用RAM區(qū)(30H:7FH)3個(gè)組成部分。
8、片內(nèi)和片外數(shù)據(jù)存儲(chǔ)器地址重疊的區(qū)域是哪些地址?
片內(nèi)與片外數(shù)據(jù)存儲(chǔ)器空間的低地址部分(000OH~OOFFH)是重疊的,MCS-51單片機(jī)有MOV和MO兩種指令,用以區(qū)分片內(nèi)、片外RAM空間,當(dāng)使用MOV指令時(shí),訪問的是片內(nèi)區(qū)域,當(dāng)使用MO指令時(shí),訪問的是片外區(qū)域。
9、訪問程序存儲(chǔ)器的片外空間,是通過什么方式實(shí)現(xiàn)的?
程序存儲(chǔ)器空間的片內(nèi)、片外選擇通過單片機(jī)的引腳EA來實(shí)現(xiàn),當(dāng)EA接低電平日,程序存儲(chǔ)器空間的64KB全部由片外實(shí)現(xiàn),當(dāng)EA接高電平日,程序存儲(chǔ)器空間的前4KB(MCS-52是8KB)由片內(nèi)實(shí)現(xiàn),對(duì)于片內(nèi)沒有的高地址空間部分單元,不管EA引腳接的是高電平還是低電平都由片外實(shí)現(xiàn)。片外程序存儲(chǔ)器空間
和片外數(shù)據(jù)存儲(chǔ)器空間,采用的外部地址總線和數(shù)據(jù)總線是一致的,不同的是控制總線,程序存儲(chǔ)空間的讀信號(hào)PSEN,而數(shù)據(jù)存儲(chǔ)空間的讀信號(hào)為。
10、說出程序狀態(tài)字寄放器(PSW)各位的含義。
PSW的位結(jié)構(gòu)如下表所示。D7D6D5D4D3D2D1D0CyACF0RS1RS0OV-P其中,各位的含義如下:?Cy:高位進(jìn)位標(biāo)志位,當(dāng)ALU的算術(shù)運(yùn)算過程中有進(jìn)位或借位時(shí),Cy=1;否則,Cy=0。同時(shí),該位
還可以用作位累加器,這時(shí)一般只用“C〞表示。?AC:輔助進(jìn)位標(biāo)志,當(dāng)ALU的算術(shù)運(yùn)算過程中低4位向高4位有進(jìn)位或借位時(shí),AC=1;否則,AC=0。
該位常用于BCD碼的調(diào)整。?F0:用戶標(biāo)志位。
?RS1、RS0:選擇工作寄放器組位,用于選擇內(nèi)部數(shù)據(jù)存儲(chǔ)器區(qū)內(nèi)4組工作寄放器中的某一組。具體
選擇狀況見寄放器介紹部分。
?OV:溢出標(biāo)志位,當(dāng)ALU的算術(shù)運(yùn)算過程中有溢出時(shí),OV=1;否則,OV=0。
?P:奇偶校驗(yàn)標(biāo)志位,根據(jù)累加器ACC中1的個(gè)數(shù)由硬件置位或清除,當(dāng)累加器ACC中有奇數(shù)個(gè)1
時(shí)P=1;否則,P=0。
?PSW.1:保存位,無定義。
11、在MCS-51單片機(jī)的工作時(shí)序中,一個(gè)機(jī)器周期包含幾個(gè)狀態(tài)周期、幾個(gè)振蕩周期?
一個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期、12個(gè)振蕩周期。
12、單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC指向哪個(gè)地址?PC=0000H
第3章部分習(xí)題參考解答
1、寫出MCS-51單片機(jī)匯編指令的指令格式,并簡單舉例。
MCS-51單片機(jī)的匯編指令格式如下:
[標(biāo)號(hào):]操作碼[目的操作數(shù)][,源操作數(shù)][;解釋]
操作碼表示該指令所實(shí)現(xiàn)的操作功能,一般由2~5個(gè)英文字母表示。例如ORL,ADD,LCALL等。操作數(shù)表示參與操作的數(shù)據(jù)來源和目的單元。操作數(shù)可以是一個(gè)馬上數(shù),也可以是一個(gè)內(nèi)存單元或者是一個(gè)寄放器單元。
操作碼和第一個(gè)操作數(shù)之間一般用一個(gè)或幾個(gè)空格隔開,而操作數(shù)與操作數(shù)之間用逗號(hào)隔開。操作數(shù)可以有1個(gè),2個(gè),3個(gè)或沒有。
假使需要對(duì)指令進(jìn)行解釋說明的話,在最終一個(gè)操作數(shù)后加一個(gè)分號(hào),分號(hào)后面是解釋。如:MOVA,60H;(60H)→A
標(biāo)號(hào)由1~8個(gè)字母或數(shù)字構(gòu)成,以字母開頭以“:〞結(jié)尾,標(biāo)號(hào)可有可無,它僅僅代表了該指令所在的地址,便于源程序編寫過程中使用該地址。
2、指出下面程序每個(gè)語句的尋址方式。目的操作數(shù)原操作數(shù)
MOVA,P1寄放器尋址直接尋址MOVA,#40H寄放器尋址馬上尋址MOV80H,A直接尋址寄放器尋址MOVA,R5寄放器尋址寄放器尋址MOV@R0,A寄放器間接尋址寄放器尋址MOA,@DPTR寄放器尋址寄放器間接尋址MOVCA,@A+DPTR寄放器尋址基址+變址尋址MOV74H,#80H直接尋址馬上尋址
3、寫出下面程序被執(zhí)行后,各數(shù)據(jù)存儲(chǔ)器地址中的內(nèi)容。
MOV40H,#33HMOV41H,#44H
MOVA,40HMOV50H,AMOVA,41HMOV51H,A
(40H)=33H,(41H)=44H,(50H)=33H,(51H)=44H
4、設(shè)置堆棧指針SP中內(nèi)容為60H,編寫程序,將上題中數(shù)據(jù)存儲(chǔ)器50H、51H的內(nèi)容壓棧后,分別將棧內(nèi)數(shù)據(jù)彈出到DPTR寄放器中。
MOVSP,#60HPUSH50HPUSH51HPOPDPLPOPDPH
5、訪問片內(nèi)、外數(shù)據(jù)存儲(chǔ)器,都用什么指令?訪問片內(nèi)數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)傳送指令用MOV,訪問片外數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)傳送指令用MO。
6、下面的指令語句對(duì)嗎?為什么?
MOVR0,#0400H;不對(duì),R0是8位寄放器源操作數(shù)超過了8位MOV100H,A;不對(duì),片內(nèi)數(shù)據(jù)存儲(chǔ)器用8位地址訪問,目的操作數(shù)的地址超過了8位。MOV@R2,A;不對(duì),能夠用于間接尋址的只能是R0或R1MO@R1,A;對(duì),R1做為間址寄放器來提供尋址存儲(chǔ)器的低8位,高8位由P2提供
7、查表指令MOVCA,@A+DPTR所查的表數(shù)據(jù)是在程序存儲(chǔ)區(qū)還是數(shù)據(jù)存儲(chǔ)區(qū)?程序存儲(chǔ)區(qū)。
9、使用位操作指令完成以下操作。⑴將P1.1置“1〞。SETBP1.1⑵將ACC.7置“1〞。SETBACC.7
10、編寫程序,將40H為首的8個(gè)單元內(nèi)容,依次反序送入到60H為首的8個(gè)單元中去。MOVR0,#47H;40H開始的8字節(jié)數(shù)據(jù)中最終一個(gè)單元的地址MOVR1,#60HMOVR2,#8LOOP:MOVA,@R0MOV@R1,ADECR0INCR1DJNZR2,LOOPSJMP$
11、兩個(gè)四位壓縮類型BCD碼數(shù),被加數(shù)放在30H和31H內(nèi)存單元中,加數(shù)放在32H和33H內(nèi)存單元中,所求的和放在34H和35H中。位數(shù)排列按高位在低地址,低位在高地址的順序,編寫此加法程序。MOVPSW,#00H;取0組工作寄放器MOVR0,#31HMOVR1,#33HSETBRS0;取1組工作寄放器MOVR0,#35HCLRRS0MOVR2,#02HCLRC;清除進(jìn)位標(biāo)志,準(zhǔn)備進(jìn)行帶進(jìn)位加LOOP:MOVA,@R0ADDCA,@R1DAASETBRS0;取1組工作寄放器
MOV@R0,ADECR0CLRRS0;恢復(fù)0組工作寄放器DECR0DECR1DJNZR2,LOOPSJMP$
13、寫出ACALL和LCALL兩個(gè)調(diào)用指令的調(diào)用范圍,試寫出這兩條指令執(zhí)行時(shí),CPU的操作過程。ACALL的調(diào)用范圍是包括調(diào)用指令下一條指令的第一個(gè)字節(jié)所在的2KB范圍的程序存儲(chǔ)器空間。ACALL調(diào)用指令的執(zhí)行過程是:PC加2(本指令代碼為兩個(gè)字節(jié))獲得下一條指令的地址,并把該斷點(diǎn)地址(當(dāng)前的PC值)入棧,然后將斷點(diǎn)地址的高五位與11位目標(biāo)地址(指令代碼第一字節(jié)的高3位,以及其次字節(jié)的八位)連接構(gòu)成16位的子程序入口地址,使程序轉(zhuǎn)向子程序。調(diào)用子程序的入口地址和ACALL指令的下一條指令的地址,其高五位必需一致。因此子程序的入口地址和ACALL指令下一條指令的第一個(gè)字節(jié)必需在同一個(gè)2KB范圍的程序存儲(chǔ)器空間內(nèi)。LCALL調(diào)用指令的目標(biāo)地址以16位給出,允許子程序放在64KB空間的任何地方。
指令的執(zhí)行過程是把PC加上本指令代碼數(shù)(三個(gè)字節(jié))獲得下一條指令的地址,并把該斷點(diǎn)地址入棧(斷點(diǎn)地址保護(hù)),接著將被調(diào)子程序的入口地址(16位目標(biāo)地址)裝入PC,然后從該入口地址開始執(zhí)行子程序。
14、分析以下程序,說出此程序完成什么樣的功能。
MOVP1,#0FFHLOOP:MOVR7,#03H;該指令1個(gè)機(jī)器周期1LOOP1:MOVR6,#0FFH;該指令1個(gè)機(jī)器周期2DJNZR6,$;該指令2個(gè)機(jī)器周期3DJNZR7,LOOP1;該指令2個(gè)機(jī)器周期4CPLP1.0;該指令1個(gè)機(jī)器周期5JMPLOOP;該指令2個(gè)機(jī)器周期6END
該程序的功能是從P1.0引腳輸出連續(xù)方波,方波的周期為(11+(12+23×255+24)×3+15+26)×2個(gè)機(jī)器周期
15、試編寫程序,完成對(duì)十個(gè)數(shù)從大到小的排序(建議用氣泡排序法)。十個(gè)源字節(jié)數(shù)據(jù)放在30H為首的內(nèi)存區(qū)域,排序后的目標(biāo)數(shù)據(jù)放在50H為首的區(qū)域。假使不破壞30H開始存放的源字節(jié)數(shù)據(jù),可以把從30H開始的數(shù)據(jù)先傳送到50H開始的數(shù)據(jù)區(qū),然后對(duì)50H開始的數(shù)據(jù)進(jìn)行排序。假使不需考慮30H開始存放的數(shù)據(jù)使用后的順序,則可先對(duì)30H開始存放的數(shù)據(jù)進(jìn)行排序,然后再傳送到50H開始的數(shù)據(jù)區(qū)中?,F(xiàn)根據(jù)第1種狀況進(jìn)行編程。MOVR0,#30HMOVR1,#50HMOVR2,#10LOP1:MOVA,@R0MOV@R1,AINCR0INCR1DJNZR2,LOP1MOVR2,#9LOP4:MOVR0,#50HMOVR1,#51HMOVA,R2MOVR3,ALOP3:MOVA,@R0CLRCSUBBA,@R1LOP2:JCNEXT
MOVA,@R0XCHA,@R1MOV@R0,ANEXT:INCR0INCR1DJNZR3,LOP3DJNZR2,LOP4SJMP$
第4章部分習(xí)題參考解答
1、MCS-51單片機(jī)中,有幾個(gè)16位定時(shí)/計(jì)數(shù)器?其實(shí)際用途?
MCS-51單片機(jī)中,有2個(gè)16位定時(shí)/計(jì)數(shù)器。
可以用定時(shí)器在規(guī)定的時(shí)間對(duì)溫度、濕度、流量、轉(zhuǎn)速等參數(shù)進(jìn)行檢測采樣,用于環(huán)境檢測、工業(yè)控制;或者利用定時(shí)器按一定的周期產(chǎn)生方波信號(hào)進(jìn)行輸出;還可以通過計(jì)數(shù)器對(duì)脈沖進(jìn)行計(jì)數(shù),用于信息的采集處理領(lǐng)域等。
2、通過對(duì)定時(shí)/計(jì)數(shù)器中的哪個(gè)特別寄放器進(jìn)行工作模式設(shè)置?試表達(dá)幾種工作模式功能。
通過特別寄放器TMOD對(duì)定時(shí)/計(jì)數(shù)器進(jìn)行工作模式設(shè)置。工作方式0,為13位的定時(shí)/計(jì)數(shù)器。工作方式1,為16位定時(shí)器/計(jì)數(shù)器。
工作方式2,為8位自動(dòng)重裝定時(shí)器/計(jì)數(shù)器。
工作方式3,只有定時(shí)器/計(jì)數(shù)器T0具有此工作方式,為兩個(gè)8位定時(shí)器/計(jì)數(shù)器。
3、門控制信號(hào)GATE為1時(shí),外部中斷引腳INTx在什么狀態(tài)下啟動(dòng)計(jì)數(shù)?
GATE為1時(shí),在外部中斷引腳INTx=1、TRx=1時(shí)啟動(dòng)定時(shí)器/計(jì)數(shù)器。
5、定時(shí)/計(jì)數(shù)器作為計(jì)數(shù)器時(shí),對(duì)外界技術(shù)頻率有什么要求(假定時(shí)鐘頻率為12MHz)?
當(dāng)定時(shí)/計(jì)數(shù)器設(shè)置為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)器對(duì)來自輸入引腳T0和T1的外部脈沖信號(hào)計(jì)數(shù),在每個(gè)機(jī)器周期的S5P2期間采樣外部脈沖,若前一個(gè)機(jī)器周期采樣到高電平,后一個(gè)機(jī)器周期采樣到低電平,則將觸發(fā)計(jì)數(shù)器加1,更新的計(jì)數(shù)值將在下一個(gè)機(jī)器周期的S3P1期間裝入計(jì)數(shù)器。因此,單片機(jī)檢測一個(gè)從高電平到低電平的下降沿需要2個(gè)機(jī)器周期,要使下降沿能被檢測到,需要保證被采樣高、低電平至少維持一個(gè)機(jī)器周期的時(shí)間,即外部輸入信號(hào)的頻率不超過晶振頻率的1/24。當(dāng)晶振頻率為12MHz時(shí),最高計(jì)數(shù)頻率不超過0.5MHz,即計(jì)數(shù)脈沖的周期要大于2微秒。
6、定時(shí)/計(jì)數(shù)器在何種設(shè)置下可提供3個(gè)8位定時(shí)器?當(dāng)T0運(yùn)行在模式3下,TH0作為定時(shí)器使用時(shí),其啟動(dòng)和關(guān)閉受誰的控制?
定時(shí)器/計(jì)數(shù)器T0工作在方式3下,定時(shí)器/計(jì)數(shù)器T1工作在方式2下,可提供3個(gè)8位定時(shí)器。當(dāng)T0運(yùn)行在方式3下,TH0作為定時(shí)器使用時(shí),其啟動(dòng)和關(guān)閉受TR1的控制。
7、當(dāng)定時(shí)/計(jì)數(shù)器T0被設(shè)置為模式3時(shí),怎樣使T1啟動(dòng)運(yùn)行?又怎樣使其中止運(yùn)行?
當(dāng)定時(shí)/計(jì)數(shù)器T0被設(shè)置為模式3時(shí),定時(shí)/計(jì)數(shù)器T1只要設(shè)置好工作方式、時(shí)間常數(shù)初值,然后用控制位C/T切換其為定時(shí)或計(jì)數(shù)功能就可以使T1運(yùn)行,若想中止它的運(yùn)行,只要把它的工作方式設(shè)置為方式3即可,由于定時(shí)器T1沒有方式3,將它設(shè)置為方式3就使它中止工作。
8、時(shí)鐘頻率為12MHz。要求定時(shí)值分別為:0.1ms、1ms、10ms;定時(shí)/計(jì)數(shù)器T0分別工作在模式0、模式1、模式2,其定時(shí)初值各為多少?
方式0時(shí),0.1ms定時(shí)的計(jì)數(shù)值為100,時(shí)間常數(shù)初值為:TH0=0FCH,TL0=1CH
方式0時(shí),1ms定時(shí)的計(jì)數(shù)值為1000,時(shí)間常數(shù)初值為:TH0=0E0H,TL0=18H方式0時(shí),最長的定時(shí)時(shí)間只能到8.192ms
方式1時(shí),0.1ms定時(shí)的計(jì)數(shù)值為100,時(shí)間常數(shù)初值為:TH0=0FFH,TL0=9CH方式1時(shí),1ms定時(shí)的計(jì)數(shù)值為1000,時(shí)間常數(shù)初值為:TH0=0FCH,TL0=18H方式1時(shí),10ms定時(shí)的計(jì)數(shù)值為10000,時(shí)間常數(shù)初值為:TH0=0D8H,TL0=0F0H方式2時(shí),0.1ms定時(shí)的計(jì)數(shù)值為100,時(shí)間常數(shù)初值為:TH0=9CH,TL0=9CH
方式2時(shí),最長的定時(shí)時(shí)間只能到0.256ms
9、時(shí)鐘頻率為12MHz。編寫程序完成從P1.0輸出占空比為1:4,頻率為1000Hz的脈沖波型。
1000Hz周期為1ms,則高電平持續(xù)時(shí)間為1ms/4=0.25ms=250us。用T0實(shí)現(xiàn)250um定時(shí),采用工作方式2,定時(shí)時(shí)間常數(shù)為256-250=6。
從P1.0輸出占空比為1:4,頻率為1000Hz的脈沖波型,既P1.0持續(xù)250us的高電平,250us×3的低電平。采用查詢方式實(shí)現(xiàn):MOVTMOD,#02HMOVTH0,#06HMOVTL0,#06HSETBTR0LOP2:SETBP1.0JNBTF0,$CLRTF0CLRP1.0MOVR0,#03HLOP1:JNBTF0,$CLRTF0DJNZR0,LOP1JMPLOP2采用中斷方式實(shí)現(xiàn):ORG0000HLJMPMAINORG000BHLJMPT0SORG0030HMAIN:MOVSP,#60HMOVTMOD,#02HMOVIE,#82HMOVR0,#03HMOVTH0,#06HMOVTL0,#06HSETBTR0SETBP1.0SJMP$
T0S:JNBP1.0,T01CLRP1.0SJMPEXITT01:DJNZR0,EXITSETBP1.0MOVR0,#03HEXIT:RETI
10、編寫程序。時(shí)鐘頻率為12MHz,使用T1,由P1.0、P1.1分別輸出周期為500μs和2ms的方波。
用T1實(shí)現(xiàn)250um定時(shí),采用工作方式2,定時(shí)時(shí)間常數(shù)為256-250=6。P1.0每250us改變狀態(tài)一次,P1.1每250us×4改變狀態(tài)一次。ORG0000HLJMPMAINORG001BHLJMPT1SORG0030HMAIN:MOVSP,#60HMOVTMOD,#20HMOVIE,#88HMOVR0,#04HMOVTH1,#06HMOVTL1,#06HSETBTR1SETBP1.0SETBP1.1SJMP$
T1S:CPLP1.0DJNZR0,EXITCPLP1.1MOVR0,#04HEXIT:RETI
15、半雙工通信和全雙工通信的區(qū)別?
半雙工是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。全雙工是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。
16、使用哪個(gè)特別功能寄放器來確定串行口的工作方式?MCS-51單片機(jī)串行口有幾種工作方式?各工作方式的波特率如何確定?
SCON用來設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志;MCS-51單片機(jī)串行口有4種工作方式。
方式0的波特率由振蕩器的頻率所確定,波特率為fosc/12;
方式2時(shí)的波特率由振蕩器的頻率(fosc)和SMOD位所確定,即:
fosc2SMOD波特率??
322方式1和3時(shí)的波特率由定時(shí)器T1和T2的溢出率和SMOD所確定。
2SMOD波特率?T1溢出率?
32
17、晶振為11.059MHz,工作于方式1,波特率為1200b/s,用定時(shí)器/計(jì)數(shù)器T1作為波特率發(fā)生器,寫出其方式字和計(jì)數(shù)初值。
T1工作在方式2下,其方式字為20H
2SMOD由串行口方式1的波特率?T1溢出率?,取SMOD=0,可計(jì)算出T1的溢出率=38400。則T1
32的計(jì)數(shù)值為11.0592/(38400×12)=24,T1的初值為232或0E8H。
18、串行口按工作方式1進(jìn)行串行數(shù)據(jù)通信。晶振為11.059MHz,波特率為4800b/s,請(qǐng)編寫具有收發(fā)功能的串口通信程序(兩種接收方式):
a、以查詢方式接收數(shù)據(jù)。b、以中斷方式接收數(shù)據(jù)。
將接收數(shù)據(jù)放到30H為首的片內(nèi)存儲(chǔ)區(qū)中。設(shè)T1工作在方式2下,其方式字為20H
2SMOD由串行口方式1的波特率?T1溢出率?,取SMOD=0,可計(jì)算出T1的溢出率=153600。則
32T1的計(jì)數(shù)值為11.0592/(153600×12)=6,T1的初值為250或0FAH。
二者之間的通信約定如下:
(1)當(dāng)1號(hào)機(jī)發(fā)送時(shí),先發(fā)送一個(gè)0E1H聯(lián)絡(luò)信號(hào),2號(hào)機(jī)收到后回復(fù)一個(gè)0E2H應(yīng)答信號(hào),表示同
意接收。
(2)當(dāng)1號(hào)機(jī)收到應(yīng)答信號(hào)0E2H后,開始發(fā)送數(shù)據(jù),每發(fā)送一個(gè)數(shù)據(jù)字節(jié)都計(jì)算校驗(yàn)和,假定數(shù)據(jù)
塊長度為16個(gè)字節(jié),一個(gè)數(shù)據(jù)塊發(fā)送完畢后馬上發(fā)送校驗(yàn)和。
(3)2號(hào)機(jī)接收數(shù)據(jù)并轉(zhuǎn)存到數(shù)據(jù)緩沖區(qū),每接收到一個(gè)數(shù)據(jù)字節(jié)便計(jì)算一次校驗(yàn)和,當(dāng)收到一個(gè)數(shù)
據(jù)塊后,再接收1號(hào)機(jī)發(fā)來的校驗(yàn)和,并將它與2號(hào)機(jī)求出的校驗(yàn)和進(jìn)行比較。若兩者相等,說明接收正確,2號(hào)機(jī)回復(fù)00H;若兩者不相等,說明接收不正確,2號(hào)機(jī)回復(fù)0FFH,請(qǐng)求重發(fā)。
(4)1號(hào)機(jī)接到00H后終止發(fā)送。若收到的答復(fù)非零,則重新發(fā)送數(shù)據(jù)一次。a、以查詢方式接收數(shù)據(jù)。
1號(hào)機(jī)程序清單如下:
ASTART:MOVTMOD,#20H;定時(shí)器1置為方式2
MOVTH1,#0FAH;裝載定時(shí)器初值,波特率4800
MOVTL1,#0FAH
MOVPCON,#00HSETBTR1;啟動(dòng)定時(shí)器MOVSCON,#50H;設(shè)定串口方式1,且準(zhǔn)備接收應(yīng)答信號(hào)
ALOOP1:MOVSBUF,#0E1H;發(fā)聯(lián)絡(luò)信號(hào)
JNBTI,$;等待一幀發(fā)送完畢CLRTI;允許再發(fā)送
JNBRI,$;等待2號(hào)機(jī)的應(yīng)答信號(hào)CLRRI;允許再接收
MOVA,SBUF;2號(hào)機(jī)應(yīng)答后,讀至AXRLA,#0E2H;判斷2號(hào)機(jī)是否準(zhǔn)備完畢JNZALOOP1;2號(hào)機(jī)未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò)
ALOOP2:MOVR0,#30H;2號(hào)機(jī)準(zhǔn)備好,設(shè)定數(shù)據(jù)塊地址指針初值
MOVR7,#10H;設(shè)定數(shù)據(jù)塊長度初值MOVR6,#00H;清校驗(yàn)和單元
ALOOP3:MOVSBUF,@R0;發(fā)送一個(gè)數(shù)據(jù)字節(jié)
MOVA,R6
ADDA,@R0;求校驗(yàn)和MOVR6,A;保存校驗(yàn)和INCR0
JNBTI,$CLRTI
DJNZR7,ALOOP3;整個(gè)數(shù)據(jù)塊是否發(fā)送完畢MOVSBUF,R6;發(fā)送校驗(yàn)和JNBTI,$CLRTI
JNBRI,$;等待2號(hào)機(jī)的應(yīng)答信號(hào)CLRRI
MOVA,SBUF;2號(hào)機(jī)應(yīng)答,讀至A
JNZALOOP2;2號(hào)機(jī)應(yīng)答“錯(cuò)誤〞,轉(zhuǎn)重新發(fā)送RET;2號(hào)機(jī)應(yīng)答“正確〞,返回
2號(hào)機(jī)接收程序清單如下:
BSTART:MOVTMOD,#20H
MOVTH1,#0FAHMOVTL1,#0FAHMOVPCON,#00HSETBTR1
MOVSCON,#50H;設(shè)定串口方式1,且準(zhǔn)備接收
BLOOP2:JNBRI,$;等待1號(hào)機(jī)的聯(lián)絡(luò)信號(hào)
CLRRI
MOVA,SBUF;收到1號(hào)機(jī)信號(hào)XRLA,#0E1H;判是否為1號(hào)機(jī)聯(lián)絡(luò)信號(hào)JZBLOOP1;是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),準(zhǔn)備接收數(shù)據(jù)
MOVSBUF,#0FFH;不是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),回送錯(cuò)誤標(biāo)志JNBTI,$CLRTISJMPBLOOP2
BLOOP1:MOVSBUF,#0E2H;是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),發(fā)應(yīng)答信號(hào)
JNBTI,$CLRTI
MOVR0,#30H;設(shè)定數(shù)據(jù)塊地址指針初值MOVR7,#10H;設(shè)定數(shù)據(jù)塊長度初值MOVR6,#00H;清校驗(yàn)和單元
BLOOP3:JNBRI,$
CLRRI
MOVA,SBUFMOV@R0,A;接收數(shù)據(jù)轉(zhuǎn)儲(chǔ)INCR0
ADDA,R6;求校驗(yàn)和MOVR6,A
DJNZR7,BLOOP3;判數(shù)據(jù)塊是否接收完畢JNBRI,$;完畢,接收1號(hào)機(jī)發(fā)來的校驗(yàn)和CLRRI
MOVA,SBUFXRLA,R6;比較校驗(yàn)和JNZERROR;校驗(yàn)和不相等,跳至發(fā)錯(cuò)誤標(biāo)志MOVSBUF,#00H;校驗(yàn)和相等,發(fā)正確標(biāo)志SJMPEND1
ERROR:MOVSBUF,#0FFH;要求重新發(fā)送數(shù)據(jù)END1:JNBTI,$
CLRTIRET
b、以中斷方式接收數(shù)據(jù)。1號(hào)機(jī)程序同上。
2號(hào)機(jī)接收程序清單如下:ORG0000HLJMPBSTARTORG0023HLJMPSIOS
ORG0030H
BSTART:MOVTMOD,#20H
MOVTH1,#0FAHMOVTL1,#0FAHMOVPCON,#00HSETBTR1
MOVIE,#90H;開放CPU、串行口中斷MOVSCON,#50H;設(shè)定串口方式1,且準(zhǔn)備接收SJMP$;等待中斷接收中斷ORG0100H
SIOS:PUSHPSW
PUSHACC
MOVA,SBUF;收到1號(hào)機(jī)信號(hào)XRLA,#0E1H;判是否為1號(hào)機(jī)聯(lián)絡(luò)信號(hào)JZBLOOP1;是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),準(zhǔn)備接收數(shù)據(jù)
MOVSBUF,#0FFH;不是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),回送錯(cuò)誤標(biāo)志JNBTI,$CLRTISJMPEXIT
BLOOP1:MOVSBUF,#0E2H;是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),發(fā)應(yīng)答信號(hào)
JNBTI,$CLRTI
MOVR0,#30H;設(shè)定數(shù)據(jù)塊地址指針初值MOVR7,#10H;設(shè)定數(shù)據(jù)塊長度初值MOVR6,#00H;清校驗(yàn)和單元
BLOOP2:JNBRI,$
CLRRI
MOVA,SBUFMOV@R0,A;接收數(shù)據(jù)轉(zhuǎn)儲(chǔ)INCR0
ADDA,R6;求校驗(yàn)和MOVR6,A
DJNZR7,BLOOP2;判數(shù)據(jù)塊是否接收完畢JNBRI,$;完畢,接收1號(hào)機(jī)發(fā)來的校驗(yàn)和CLRRI
MOVA,SBUFXRLA,R6;比較校驗(yàn)和JNZERROR;校驗(yàn)和不相等,跳至發(fā)錯(cuò)誤標(biāo)志MOVSBUF,#00H;校驗(yàn)和相等,發(fā)正確標(biāo)志SJMPEND1
ERROR:MOVSBUF,#0FFH;要求重新發(fā)送數(shù)據(jù)END1:JNBTI,$
CLRTI
EXIT:POPACC
POPPSWRETI
20、簡述中斷的基本概念。
中斷是指CPU正在處理某任務(wù)的過程中,由于計(jì)算機(jī)系統(tǒng)內(nèi)、外的某種原因,發(fā)生的某一事件請(qǐng)求CPU及時(shí)處理,CPU暫時(shí)中止當(dāng)前的工作,自動(dòng)轉(zhuǎn)去處理所發(fā)生的事件。處理完該事件后,再返回到原來被中止的斷點(diǎn)處繼續(xù)工作,這樣的過程稱為中斷。
21、MCS-51單片機(jī)可以響應(yīng)幾個(gè)中斷源?有幾個(gè)中斷優(yōu)先級(jí)?說出各中斷源的中斷矢量地址。
MCS-51單片機(jī)可以響應(yīng)5個(gè)中斷源,有2個(gè)中斷優(yōu)先級(jí),各中斷源的中斷矢量地址是:INT0:0003H、T0:000BH、INT1:0013H、T1:001BH、串行口:0023H。
22、在執(zhí)行中斷服務(wù)程序后,用什么指令完成返回到中斷點(diǎn)發(fā)生處?
在執(zhí)行中斷服務(wù)程序后,用RETI中斷返回指令返回到中斷點(diǎn)發(fā)生處。23、外部中斷有哪兩種觸發(fā)方式?對(duì)哪個(gè)特別功能寄放器的哪個(gè)位進(jìn)行設(shè)置,從而確定外部中斷的觸發(fā)方式?
電平觸發(fā)方式和邊沿觸發(fā)方式兩種。對(duì)TCON寄放器中的ITx置0為電平觸發(fā)方式,置1為邊沿觸發(fā)方式。
24、說出在中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)的排列順序(由高到低)。
自然優(yōu)先級(jí)的排列順序是:INT0、T0、INT1、T1、串行口。
25、MCS-51單片機(jī)有五個(gè)中斷源,但只能設(shè)置兩個(gè)中斷優(yōu)先級(jí),因此,在中斷優(yōu)先級(jí)安排上受到一定的限制。試問以下幾種中斷優(yōu)先順序的安排(級(jí)別由高到低)是否可能:若可能,則應(yīng)如何設(shè)置中斷源的中斷級(jí)別:否則,請(qǐng)簡述不可能的理由。
(1)定時(shí)器0,定時(shí)器1,外中斷0,外中斷1,串行口中斷??梢?。T0,T1設(shè)置為高優(yōu)先級(jí),其它中斷源為低優(yōu)先級(jí)。IP=00001010B(2)串行口中斷,外中斷0,定時(shí)器0,外中斷1,定時(shí)器1。可以。串行口設(shè)置為高優(yōu)先級(jí),其它中斷源為低優(yōu)先級(jí)。IP=00010000B(3)外中斷0,定時(shí)器1,外中斷1,定時(shí)器0,串行口中斷。不可以。由于在同級(jí)中,T1的優(yōu)先級(jí)低于INT1的優(yōu)先級(jí),因此要使T1的優(yōu)先級(jí)高于INT1的優(yōu)先級(jí),只能把T1設(shè)置為高優(yōu)先級(jí),INT1設(shè)置為低優(yōu)先級(jí),一旦INT1設(shè)置為低優(yōu)先級(jí),那么它的優(yōu)先級(jí)將總是低于T0的優(yōu)先級(jí)的。
(4)外中斷0,外中斷1,串行口中斷,定時(shí)器0,定時(shí)器1??梢?。INT0、INT1和串行口均設(shè)置為高優(yōu)先級(jí),其它中斷源為低優(yōu)先級(jí)。IP=00010101B(5)串行口中斷,定時(shí)器0,外中斷0,外中斷1,定時(shí)器1??梢?。串行口、T0設(shè)置為高優(yōu)先級(jí),其它中斷源為低優(yōu)先級(jí)。IP=00010010B(6)外中斷0,外中斷1,定時(shí)器0,串行口中斷,定時(shí)器1。不可以。同級(jí)中INT1的優(yōu)先級(jí)低于T0的優(yōu)先級(jí),所以只能把INT0設(shè)置為高優(yōu)先級(jí),T0為低優(yōu)先級(jí),但這時(shí)同樣為低優(yōu)先級(jí)的串行口的優(yōu)先級(jí)是不可能比T1的優(yōu)先級(jí)高的。(7)外中斷0,定時(shí)器1,定時(shí)器0,外中斷1,串行口中斷。
可以。INT0、T1設(shè)置為高優(yōu)先級(jí),其它中斷源設(shè)置為低優(yōu)先級(jí)。IP=00001001B
第5章部分習(xí)題參考解答
1、簡述單片機(jī)最小系統(tǒng)的構(gòu)成。
使單片機(jī)能運(yùn)行的最少器件構(gòu)成的系統(tǒng),就是最小系統(tǒng)。對(duì)于無ROM的單片機(jī)芯片如803
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 前期物業(yè)公司合同范本
- 出租樓房協(xié)議合同范本
- 廠房倉庫包租合同范本
- 二手車評(píng)估師勞動(dòng)合同范本
- 代儲(chǔ)代銷合同范本
- 別墅代理銷售合同范本
- 卡座安裝合同范例
- 變更營業(yè)執(zhí)照合同范本
- 單位對(duì)外擔(dān)保合同范本
- 中式快餐合同范本
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 學(xué)校裝飾裝修工程施工方案
- 2025屆東方電氣集團(tuán)校園招聘正式開啟筆試參考題庫附帶答案詳解
- DeepSeek科普學(xué)習(xí)解讀
- 第一單元第2課《生活之美》課件-七年級(jí)美術(shù)下冊(cè)(人教版)
- 危險(xiǎn)化學(xué)品目錄(2024版)
- 人教版八年級(jí)數(shù)學(xué)第二學(xué)期教學(xué)計(jì)劃+教學(xué)進(jìn)度表
- 金屬補(bǔ)償器計(jì)算大全
- 凈菜配送標(biāo)準(zhǔn)
- 水工環(huán)地質(zhì)調(diào)查技術(shù)標(biāo)準(zhǔn)手冊(cè)
- 基本力學(xué)性能-鋼筋混凝土原理_過鎮(zhèn)海
評(píng)論
0/150
提交評(píng)論