單片機(jī)原理及應(yīng)用(合肥工業(yè)大學(xué)出版社)_第1頁(yè)
單片機(jī)原理及應(yīng)用(合肥工業(yè)大學(xué)出版社)_第2頁(yè)
單片機(jī)原理及應(yīng)用(合肥工業(yè)大學(xué)出版社)_第3頁(yè)
單片機(jī)原理及應(yīng)用(合肥工業(yè)大學(xué)出版社)_第4頁(yè)
單片機(jī)原理及應(yīng)用(合肥工業(yè)大學(xué)出版社)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)原理及應(yīng)用(合肥工業(yè)大學(xué)出版社)第1章習(xí)題參考答案1-1什么是單片機(jī)?它與一般微型計(jì)算機(jī)在結(jié)構(gòu)上何區(qū)別?答:?jiǎn)纹⑿陀?jì)算機(jī)簡(jiǎn)稱為單片機(jī)SingleChipComputer,又稱為微控制器(MCU即Micro-ControllerUnit。它是在一塊芯片上集成了中央處理器(CPU)、存儲(chǔ)器(RAM、ROM)、定時(shí)器/計(jì)數(shù)器、中斷控制、各種輸入/輸出(I/O)接口(如并行I/O口、串行I/O口和A/D轉(zhuǎn)換器)等為一體的器件。微型計(jì)算機(jī)的基本結(jié)構(gòu)由CPU(運(yùn)算器、控制器)、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備五大部分組成,各部分通過(guò)外部總線連接而成為一體。單片機(jī)的結(jié)構(gòu)是在一塊芯片上集成了中央處理器(CPU)、存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器、中斷控制、各種輸入/輸出接口(如并行I/O口、串行I/O口和A/D轉(zhuǎn)換器)等,它們通過(guò)單片機(jī)內(nèi)部部總線連接而成為一體。1-2MCS-51系列單片機(jī)內(nèi)部資源配置如何?試舉例說(shuō)明8051與51兼容的單片機(jī)的異同。答:MCS-51系列單片機(jī)內(nèi)部資源配置型號(hào)程序存儲(chǔ)器片內(nèi)RAM8031/80C31無(wú)128B2×164×815/28751/87C514KBEPROM128B2×164×815/28052/80C524KBROM256B3×164×816/2定時(shí)/計(jì)數(shù)器并行I/O口串行口中斷源/中斷優(yōu)先級(jí)8051/80C514KBROM128B2×164×815/28032/80C32無(wú)256B3×164×816/28051與51兼容的單片機(jī)的異同廠商型號(hào)程序存儲(chǔ)器片內(nèi)RAM定時(shí)/計(jì)數(shù)器并行I/O口串行口中斷源/優(yōu)先級(jí)其它特ATMELAT89C20512KB點(diǎn)Intel8051/80C514KBROM128B2×164×815/2FlashROM128B2×161516/2直接驅(qū)動(dòng)LED輸出,片上模擬比較器AT89S5312KBFlashROM256B3×163219/2SPI,WDT,2個(gè)數(shù)據(jù)指針W77E5832KBFlashROM256B+1024B3×1636212/2擴(kuò)展了4位I/O口,雙數(shù)據(jù)指針,WDTAnalogDevicesADuC8128KBEEPROM256B+640B2×163219/2WDT,SPI8通道12位ADC,2通道12位DAC,片上DMA控制器80C552無(wú)256B3×1648115/4CMOS型10位ADC,捕捉/比較單元,PWM83/87C5528KBEEPROM256B3×1648115/4CMOS型10位ADC,捕捉/比較單元,PWM83/89CE55832KBEEPROM256B+1024B3×1640115/48通道10位ADC,捕捉/比較單元,PWM,雙數(shù)據(jù)指針I(yè)2C總線,PLL(32kHz)。83C59216KBEEPROM256B+256B3×1648215/2CMOS型CAN微控制器SSTSST89E55432KB+8KBFlashROM1KB3×163228/440MHz,SPI,雙數(shù)據(jù)指針,WDTTIMSC1210Y24KB+2KBFlashROM1280B3×163222132位累加器,WDT,SPI,低電壓檢測(cè),16位PWM可編程串口83/87C51GB8KBEPROM256B3×1648115/4PWM,WDT,8通道8位ADC具有幀檢測(cè)和識(shí)別的串口2-1MCS-51系列單片機(jī)內(nèi)部有哪些主要的邏輯部件?一個(gè)8位CPU;一個(gè)片內(nèi)振蕩器及時(shí)鐘電路;4K字節(jié)ROM程序存儲(chǔ)器;128字節(jié)RAM數(shù)據(jù)存儲(chǔ)器;兩個(gè)16位定時(shí)器/計(jì)數(shù)器;可尋址64K外部數(shù)據(jù)存儲(chǔ)器和64K外部程序存儲(chǔ)器空間的控制電路;32條可編程的I/O線(四個(gè)8位并行I/O端口);一個(gè)可編程全雙工串行口;具有五個(gè)中斷源、兩個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)2-2MCS-51設(shè)有4個(gè)8位端口(32條I/O線),實(shí)際應(yīng)用中8位數(shù)據(jù)信息由哪一個(gè)端口傳送?16位地址線怎樣形成?P3口有何功能?實(shí)際應(yīng)用中8位數(shù)據(jù)信息由口傳送P0口輸?shù)?位地址P2口輸出高8位地址A15A8。外部中斷0輸入線,P3.3―外部中斷1輸入線,P3.4―T0定時(shí)器0外部輸入,P3.5―T1定時(shí)器1外部輸入,P3.6―外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)輸出,P3.7―外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸入。2-3MCS-51的存儲(chǔ)器結(jié)構(gòu)與一般的微型計(jì)算機(jī)有何不同?程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器各有何用?MCS-51存儲(chǔ)器結(jié)構(gòu)與常見(jiàn)的微型計(jì)算機(jī)的配置方式不同,它把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi),各有自已的尋址系統(tǒng)控制信號(hào)和功能程序存儲(chǔ)器用來(lái)存放程序和始終要保留的常數(shù),如經(jīng)匯編后所編程序的機(jī)器碼。數(shù)據(jù)存儲(chǔ)器通常用來(lái)存放程序運(yùn)行中所需要的常數(shù)或變量例如模/數(shù)轉(zhuǎn)換時(shí)實(shí)時(shí)的數(shù)據(jù)等。2-4MCS-51內(nèi)部RAM區(qū)功能結(jié)構(gòu)如何分配?4組工作寄存器使用時(shí)如何選用?位尋址區(qū)域的字節(jié)地址范圍是多少?MCS-51系列單片機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)器:00H7FH單元組成的128字節(jié)地址空間的RAM區(qū)工作寄存器位尋址區(qū)(20H2FH)數(shù)據(jù)緩沖區(qū)(0H~7FH)80H~FFH(128255)單元組成的高128字節(jié)地址空間的特殊功能寄存器又稱SFR區(qū)。單片機(jī)組成的128字節(jié)地址空間的RAM區(qū)工作寄存區(qū)是由程序狀態(tài)字PSW特殊功能寄存器,字節(jié)地址為0D0H中的D4、D3位(RS1和RS0)來(lái)的PSW.4RS1PSW.3RS0當(dāng)前使用的工作寄存器區(qū)000區(qū)(0007H)R0R7011區(qū)(080FH)102區(qū)(1017H)113區(qū)(181FH)位尋址區(qū)域的字節(jié)地址范圍20H~2FH(對(duì)應(yīng)的位地址范圍是00H~7FH)。2-5特殊功能寄存器中哪些寄存器可以位尋址?它們的字節(jié)地址是什么?2-6簡(jiǎn)述程序狀態(tài)字PSW中各位的含義。CY(PSW??7)進(jìn)位標(biāo)志AC(PSW??6)輔助進(jìn)位標(biāo)志F0(PSW??5)用戶標(biāo)志位RS1RS0(PSW??4PSW??3)寄存器區(qū)選擇控制位OV(PSW??2)溢出標(biāo)志P(PSW.0)奇偶標(biāo)志,每個(gè)指令周期都由硬件來(lái)置位或清“0”,以表示累加器A中1的位數(shù)的奇偶數(shù)2-7一個(gè)時(shí)鐘頻率為MHz的單片機(jī)應(yīng)用系統(tǒng),它的時(shí)鐘周期、機(jī)器周期、指令周期分別是多少?2-8單片機(jī)有幾種主要的工作方式?其特點(diǎn)是什么?有復(fù)位、程序執(zhí)行、低功耗工作方式復(fù)位操作是單片機(jī)的初始化操作,單片機(jī)在進(jìn)入運(yùn)行前和在運(yùn)行過(guò)程中程序出錯(cuò)或操作失誤使系統(tǒng)不能正常運(yùn)行時(shí),需要進(jìn)行復(fù)位操作復(fù)位操作后,程序?qū)?000H開(kāi)始重新執(zhí)行單片機(jī)的的執(zhí)行過(guò)程分為取指令、譯碼、執(zhí)行三個(gè)過(guò)程。待機(jī)方式,也稱為空閑工作。系統(tǒng)進(jìn)入待機(jī)工作方式時(shí),振蕩器繼續(xù)工作,中斷系統(tǒng)、串行口以及定時(shí)器模塊由時(shí)鐘驅(qū)動(dòng)繼續(xù)工作,但時(shí)鐘不提供給CPU。單片機(jī)進(jìn)入掉電工作方式,只有內(nèi)部RAM單元的內(nèi)容被保存,其它一切工作都停止2-9堆棧有何功能?堆棧指針的作用是什么?二者的關(guān)系?為什么在程序設(shè)計(jì)時(shí),要對(duì)SP重新賦值?堆棧的主要功能:保護(hù)斷點(diǎn)和程序現(xiàn)場(chǎng)保存用戶數(shù)據(jù)堆棧指針的作用是棧指針SP是一個(gè)8位特殊功能寄存器指示出堆棧頂部在內(nèi)部RAM中的位置。SP的初始值越小,堆棧深度就越深系統(tǒng)復(fù)位后,SP初始化為07H,使得堆棧事實(shí)上由08H單元開(kāi)始。考慮到08H1FH單元分屬于工作寄存器區(qū)13,若程序設(shè)計(jì)中要用到這些區(qū),則最好把SP值改置為1FH或更大的值,SP的初始值越小,堆棧深度就越深,堆棧指針的值可以由軟件改變,因此堆棧在內(nèi)部RAM中的位置比較靈活。@R0,A;50H00HMOVA,#25H;A25HMOV51H,A;51H25HMOV52H,#70H;52H70HA25HR050H50H00H51H25H3-2訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器可以用哪些指令來(lái)實(shí)現(xiàn)?舉例說(shuō)明。答:訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器指令有:MOVX@DPTR,AMOVDPTR,#0100HMOV@DPTR,AMOVXA,@DPTRMOVDPTR,#0200HMOVA,@DPTRMOVXA,@RiMOVX@Ri,AMOVCA,@A+PCMOVCA,@A+DPTR3-3設(shè)堆棧指針SP中的內(nèi)容為60H,內(nèi)部RAM中30H和31H單元的內(nèi)容分別為24H和10H,執(zhí)行下列程序段后,61H,62H,30H,31H,DPTR及SP中的內(nèi)容將有何變化?PUSHPUSHPOP30H31H;61H24H;62H10HSP62H;DPL10HDPLDPHPOP;DPH24HSP60HMOVMOV30H,#00H;30H00H31H,#0FFH;31H0FFH3-4設(shè)(A)40H,(R1)23H,(40H)05H。執(zhí)行下列兩條指令后,累加器A和R1以及內(nèi)部RAM中40H單元的內(nèi)容各為何值?XCHA,R1;A23HR140H;A25H40H03HXCHDA,@R13-5兩個(gè)四位BCD碼數(shù)相加,被加數(shù)和加數(shù)分別存于50H,51H和52H,53H單元中(千位、百位在低地址中,十位、個(gè)位在高地址中),和存放在54H,55H和56H中(56H用來(lái)存放最高位的進(jìn)位),試編寫(xiě)加法程序。ORG0000HLJMPSTARTORG0100HSTART:MOVA,53HADDA,51HDAAMOV55H,AMOVA,52HADDCA,50HDAAMOV56H,CSJMP$END3-6設(shè)(A)01010101B,(R5)10101010B,分別寫(xiě)出執(zhí)行下列指令后結(jié)果。ANLA,R5;ORLA,R5;XRLA,R5;00000000B11111111B11111111B3-7指令SJMPrel中,設(shè)rel60H,并假設(shè)該指令存放在2114H和2115H單元中。當(dāng)該條指令執(zhí)行后,程序?qū)⑻D(zhuǎn)到何地址?答:2116H+60H2176H3-8簡(jiǎn)述轉(zhuǎn)移指令A(yù)JMPaddr11、SJMPrel、LJMPaddr16及JMP@A+DPTR的應(yīng)用場(chǎng)合。答:AJMPaddr11為2K字節(jié)范圍內(nèi)的無(wú)條件轉(zhuǎn)跳指令,把程序的執(zhí)行轉(zhuǎn)移到指定的地址。SJMPrel是無(wú)條件轉(zhuǎn)跳指令,執(zhí)行時(shí)在PC加2后,把指令中補(bǔ)碼形式的偏移量值加到PC上,并計(jì)算出轉(zhuǎn)向目標(biāo)地址。轉(zhuǎn)向的目標(biāo)地址可以在這條指令前128字節(jié)到后127字節(jié)之間。LJMPaddr16執(zhí)行這條指令時(shí)把指令的第二和第三字節(jié)分別裝入PC的高位和低位字節(jié)中,無(wú)條件地轉(zhuǎn)向指定地址。轉(zhuǎn)移的目標(biāo)地址可以在64K程序存儲(chǔ)器地址空間的任何地方,不影響任何標(biāo)志。JMP@A+DPTR指令的功能是把累加器中8位無(wú)符號(hào)數(shù)與數(shù)據(jù)指針DPTR中的16位數(shù)相加,將結(jié)果作為下條指令地址送入PC,利用這條指令能實(shí)現(xiàn)程序的散轉(zhuǎn)。3-9試分析下列程序段,當(dāng)程序執(zhí)行后,位地址00H,01H中的內(nèi)容將為何值?P1口的8條I/O線為何狀態(tài)?CLRMOVJCC;CY0;A66HA,#66HLOOP1CCPLSETB;CY1;20H.11C,ACC.0ACC.2,LOOP2;01HLOOP1:ORL;CY1JBCLR00HLOOP2:MOVP1,ASJMP$;P101100110B20H.0020H.11P166H3-10查指令表,寫(xiě)出下列兩條指令的機(jī)器碼,并比較一下機(jī)器碼中操作數(shù)排列次序的特點(diǎn)。MOV58H,80H858058直接尋址字節(jié)送直接尋址字節(jié):匯編時(shí)源操作數(shù)在目標(biāo)操作數(shù)之前。MOV58H,#80H755880立即數(shù)送直接尋址字節(jié):匯編時(shí)目標(biāo)操作數(shù)在原操作數(shù)之前。第4章習(xí)題參考答案4-1什么是單片機(jī)的程序設(shè)計(jì)語(yǔ)言。答:?jiǎn)纹瑱C(jī)的程序設(shè)計(jì)語(yǔ)言是指計(jì)算機(jī)能理解和執(zhí)行的語(yǔ)言,人與CPU、MCU交流的語(yǔ)言。MCS-51系列單片機(jī)的程序設(shè)計(jì)語(yǔ)言,按照語(yǔ)言的結(jié)構(gòu)及其功能可以分為三種:機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言。4-2單片機(jī)的程序設(shè)計(jì)包括哪幾個(gè)步驟。答:程序設(shè)計(jì)步驟如下:(1)分析問(wèn)題。即仔細(xì)分析任務(wù)書(shū)中要實(shí)現(xiàn)的功能和性能指標(biāo)。(2)確定算法。即找到解決問(wèn)題思路、方法。(3)分配內(nèi)存單元。即確定數(shù)據(jù)結(jié)構(gòu)。這一步往往與算法同時(shí)考慮。(4)根據(jù)算法和數(shù)據(jù)結(jié)構(gòu),畫(huà)出程序流程圖。(5)根據(jù)流程圖編寫(xiě)匯編語(yǔ)言源程序。編輯錄入,保存為*.ASM文件。(6)匯編。排除語(yǔ)法錯(cuò)誤。(7)調(diào)試(DEBUG)。找出錯(cuò)誤并更正,再調(diào)試,直至通過(guò)。(8)編寫(xiě)相關(guān)說(shuō)明文檔。4-3畫(huà)出單片機(jī)的三種基本程序結(jié)構(gòu)。答:順序結(jié)構(gòu)流程圖分支結(jié)構(gòu)流程圖循環(huán)結(jié)構(gòu)流程圖4-4單片機(jī)的分支結(jié)構(gòu)程序指令有哪幾條?答:分支結(jié)構(gòu)程序指令有JB、JNB、JC、JNC、JZ、JNZ、CJNE、JBC4-5什么是單片機(jī)的程序嵌套?生活中有哪些現(xiàn)象與單片機(jī)的嵌套類似?答:一個(gè)程序中還會(huì)調(diào)用別的程序,這稱為程序嵌套。生活例子:在學(xué)習(xí),有電話了,去接電話,水開(kāi)了,放下電話去關(guān)掉電水壺,接著打電話,打完電話,接著學(xué)習(xí)。4-6能否從一個(gè)子程序內(nèi)部使用轉(zhuǎn)移指令直接跳轉(zhuǎn)到另一個(gè)子程序執(zhí)行?答:可以,為了保證正確地從子程序2返回子程序1,再?gòu)?返回主程序,每次調(diào)用子程序時(shí)必須將下條指令地址保存起來(lái),返回時(shí)按后進(jìn)先出原則依次取出舊PC值。4-7能否使用轉(zhuǎn)移指令從主程序跳到子程序?答:不可以,當(dāng)主程序需要執(zhí)行某子程序的功能時(shí),只需執(zhí)行一條調(diào)用指令。而并非使用轉(zhuǎn)移指令4-8能否使用轉(zhuǎn)移指令從子程序跳到主程序?答:不可以,子程序的最后一條指令應(yīng)該是返回指令RET或RETI,以確保子程序能夠正確返回主程序。執(zhí)行RET指令時(shí)單片機(jī)將原來(lái)存在堆棧中的斷點(diǎn)地址彈出給PC,保證子程序返回主程序中調(diào)用子程序的地方繼續(xù)執(zhí)行主程序。子程序從子程序的標(biāo)號(hào)開(kāi)始,到RET或RETI指令結(jié)束。RET指令是一般子程序的返回指令。RETI指令是中斷服務(wù)子程序的返回指令。4-9畫(huà)出主程序的一般流程圖。答:主程序流程圖4-10畫(huà)出子程序的一般流程圖。答:子程序流程圖4-11子程序的規(guī)范化設(shè)計(jì)包括那幾個(gè)部分?答:子程序的規(guī)范化設(shè)計(jì)包括:(1)子程序名稱。給子程序起名字,起名的原則是子程序名能夠反映子程序功能,該名字就是子程序的入口地址標(biāo)識(shí)符。(2)子程序功能,對(duì)子程序的功能給予簡(jiǎn)要的描述。(3)入口參數(shù),子程序所要運(yùn)算或處理的數(shù)據(jù)(加工前的原料),在調(diào)用子程序之前,主程序要先準(zhǔn)備好入口參數(shù)。(4)出口參數(shù),子程序運(yùn)算或處理的結(jié)果(加工完成的數(shù)據(jù)),子程序結(jié)束之前,最終結(jié)果(出口參數(shù))存放在約定的RAM單元,供主程序取用。(5)資源占用情況,指出該子程序運(yùn)行時(shí)所使用的片內(nèi)工作寄存器(R0~R7)、SFR(特殊功能寄存器)、片內(nèi)RAM單元及片外RAM單元,以便在主程序調(diào)用該子程序之前,考慮將這些資源中的哪些字節(jié)保護(hù)入棧。4-12在片內(nèi)RAM地址40H到4FH的存儲(chǔ)單元中存有16個(gè)無(wú)符號(hào)數(shù),找出其中的最大值,放入50H單元,請(qǐng)用“循環(huán)結(jié)構(gòu)”和“分支結(jié)構(gòu)”編程。答:流程圖:N源程序:ORG0000HLJMPMAINORG0100HMAIN:MOVR2,#0FHMOVR0,#40HMOVA,@R0SUB:INCR0MOVB,@R0CJNEA,B,NEXTNEXT:JCNEXT1DJNZR2,SUBJMPLASTNEXT1:MOVA,BDJNZR2,SUBJMPLASTLAST:MOV50H,ASJMP$4-13將片內(nèi)若干個(gè)RAM單元的內(nèi)容復(fù)制到片外RAM單元,請(qǐng)用“主程序”調(diào)用“子程序”編程,要求子程序入口參數(shù)為:R0存放片內(nèi)RAM起始地址,DPTR存放片外RAM起始地址,R1存放字節(jié)數(shù)。請(qǐng)分別編寫(xiě)主程序和子程序。答:流程圖主程序子程序源程序:ORG0000HLJMPMAINORG0100HMAIN:MOVR1,#10HMOVR0,#40HMOVDPTR,#0000HLCALLCOPYSJMP$COPY:NEXT:MOVA,@R0MOVX@DPTR,AINCR0INCDPLDJNZR1,NEXTRET第5章習(xí)題參考答案5-1簡(jiǎn)述中斷、中斷源、中斷源的優(yōu)先級(jí)及中斷嵌套的含義。答:當(dāng)CPU正在處理某項(xiàng)事件的時(shí),如果外界或內(nèi)部發(fā)生了緊急情況,要求CPU暫停正在處理的工作轉(zhuǎn)而去處理這個(gè)緊急情況,待處理完以后再回到原來(lái)被中斷的地方,繼續(xù)執(zhí)行原來(lái)被中斷了的程序,這樣的過(guò)程稱為中斷。向CPU提出中斷請(qǐng)求的源稱為中斷源。當(dāng)系統(tǒng)有多個(gè)中斷源時(shí),就可能出現(xiàn)同時(shí)有幾個(gè)中斷源申請(qǐng)中斷,而CPU在一個(gè)時(shí)刻只能響應(yīng)并處理中斷優(yōu)先高的請(qǐng)求。在實(shí)際應(yīng)用系統(tǒng)中,當(dāng)CPU正在處理某個(gè)中斷源,即正在執(zhí)行中斷服務(wù)程序時(shí),會(huì)出現(xiàn)優(yōu)先級(jí)更高的中斷源申請(qǐng)中斷。為了使更緊急的級(jí)別高的中斷源及時(shí)得到服務(wù),需要暫時(shí)中斷(掛起)當(dāng)前正在執(zhí)行的級(jí)別較低的中斷服務(wù)程序,去處理級(jí)別更高的中斷源,待處理完以后,再返回到被中斷了的中斷服務(wù)程序繼續(xù)執(zhí)行,但級(jí)別相同或級(jí)別低的中斷源不能中斷級(jí)別高的中斷服務(wù),這就是所謂的中斷嵌套。5-2MCS-51單片機(jī)能提供幾個(gè)中斷源?幾個(gè)中斷優(yōu)先級(jí)?各個(gè)中斷的源的優(yōu)先級(jí)怎樣確定?在同一優(yōu)先級(jí)中各個(gè)中斷源的優(yōu)先級(jí)怎樣確定?答:MCS-51單片機(jī)能提供五個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)。中斷優(yōu)先級(jí)是由片內(nèi)的中斷優(yōu)先級(jí)寄存器IP(特殊功能寄存器)控制的。PS:串行口中斷優(yōu)先級(jí)控制位。PS1,串行口定義為高優(yōu)先級(jí)中斷源;PS0,串行口定義為低優(yōu)先級(jí)中斷源。PT1:T1中斷優(yōu)先級(jí)控制位。PT11,定時(shí)器/計(jì)數(shù)器1定義為高優(yōu)先級(jí)中斷源;PT10,定時(shí)器/計(jì)數(shù)器1定義為低優(yōu)先級(jí)中斷源。PX1:外部中斷1中斷優(yōu)先級(jí)控制位。PX11,外中斷1定義為高優(yōu)先級(jí)中斷源;PX10,外中斷1定義為低優(yōu)先級(jí)中斷源。PT0:定時(shí)器/計(jì)數(shù)器0(T0)中斷優(yōu)先級(jí)控制位,功能同PT1。PX0:外部中斷0中斷優(yōu)先級(jí)控制位,功能同PX1。在同一優(yōu)先級(jí)中,循環(huán)輪流排隊(duì)。不分級(jí)別高低,所有中斷源優(yōu)先級(jí)都一律平等,CPU輪流響應(yīng)各個(gè)中斷源的中斷請(qǐng)求。5-3簡(jiǎn)述MCS-51單片機(jī)中斷響應(yīng)過(guò)程。答:CPU在每個(gè)機(jī)器周期的S5P2時(shí)刻采樣中斷標(biāo)志,而在下一個(gè)機(jī)器周期對(duì)采樣到的中斷進(jìn)行查詢。如果在前一個(gè)機(jī)器周期的S5P2有中斷標(biāo)志,則在查詢周期內(nèi)便會(huì)查詢到并按優(yōu)先級(jí)高低進(jìn)行中斷處理,中斷系統(tǒng)將控制程序轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。5-4MCS-51單片機(jī)外部中斷有哪兩種觸發(fā)方式?如何選擇?對(duì)外部中斷源的觸發(fā)脈沖或電平有何要求?答:MCS-51單片機(jī)外部中斷有:負(fù)邊沿觸發(fā)方式和電平觸發(fā)方式。外部中斷1觸發(fā)方式控制位。如果IT1為1,則外中斷1為負(fù)邊沿觸發(fā)方式(CPU在每個(gè)機(jī)器周期的S5P2采樣腳的輸入電平,如果在一個(gè)周期中采樣到高電平,在下個(gè)周期中采樣到低電平,則硬件使IE1置1,向CPU請(qǐng)求中斷);如果IT1為0,則外中斷1為電平觸發(fā)方式。采用電平觸發(fā)時(shí),輸入到的外部中斷源必須保持低電平有效,直到該中斷被響應(yīng)。同時(shí)在中斷返回前必須使電平變高,否則將會(huì)再次產(chǎn)生中斷。5-5在MCS-51單片機(jī)的應(yīng)用系統(tǒng)中,如果有多個(gè)外部中斷源,怎樣進(jìn)行處理?答:當(dāng)系統(tǒng)有多個(gè)中斷源時(shí),就可能出現(xiàn)同時(shí)有幾個(gè)中斷源申請(qǐng)中斷,而CPU在一個(gè)時(shí)刻只能響應(yīng)并處理一個(gè)中斷請(qǐng)求,為此,要進(jìn)行排隊(duì)。排隊(duì)的方式有:(1)按優(yōu)先級(jí)排隊(duì)。(2)循環(huán)輪流排隊(duì)。MCS-51單片機(jī)優(yōu)先級(jí)比較簡(jiǎn)單,只有兩級(jí),可以通過(guò)優(yōu)先級(jí)控制寄存器設(shè)置不同的優(yōu)先級(jí)。當(dāng)優(yōu)先級(jí)相同時(shí),約定有5個(gè)中斷源優(yōu)先級(jí)順序由高到低分別為:外部中斷0、定時(shí)器/計(jì)數(shù)器0溢出、外部中斷1、定時(shí)器/計(jì)數(shù)器1溢出、串行口中斷。5-6MCS-51有哪幾種擴(kuò)展外部中斷源的方法?各有什么特點(diǎn)?答:1利用定時(shí)器作為外部中斷使用特點(diǎn):把MCS-51的兩個(gè)定時(shí)器/計(jì)數(shù)器(T0和T1)選擇為計(jì)數(shù)器方式,每當(dāng)P3.4(T0)或P3.5(T1)引腳上發(fā)生負(fù)跳變時(shí),T0和T1的計(jì)數(shù)器加1。可為外部中斷請(qǐng)求輸入線,而定時(shí)器的溢出中斷作為外部中斷請(qǐng)求標(biāo)志。2)采用中斷和查詢相結(jié)合的方法擴(kuò)充外部中斷源特點(diǎn):這種方法是把系統(tǒng)中多個(gè)外部中斷源經(jīng)過(guò)與門(mén)連接到一個(gè)外部中斷輸入端(例如),并同時(shí)還接到一個(gè)I/O口,中斷請(qǐng)求由硬件電路產(chǎn)生,而中斷源的識(shí)別由程序查詢來(lái)處理,查詢順序決定了中斷源的優(yōu)先級(jí)。5-7MCS-51單片機(jī)響應(yīng)中斷的典型時(shí)間是多少?在哪些情況下,CPU將推遲對(duì)中斷請(qǐng)求的響應(yīng)?和的電平在每個(gè)機(jī)器周期的S5P2時(shí)被采樣并鎖存到IE0和IE1中,這個(gè)置入到IE0和IE1的狀態(tài)在下一個(gè)機(jī)器周期才被其內(nèi)部的查詢電路查詢,未產(chǎn)生了一個(gè)中斷請(qǐng)求。2、沒(méi)有滿足響應(yīng)的條件,CPU沒(méi)有響應(yīng)中斷。3、沒(méi)有由硬件生成一條長(zhǎng)調(diào)用指令轉(zhuǎn)到相應(yīng)的服務(wù)程序入口。第6章習(xí)題參考答案6-18051單片機(jī)內(nèi)設(shè)有幾個(gè)可編程的定時(shí)器/計(jì)數(shù)器?它們可以有4種工作方式,如何選擇和設(shè)定?MCS-51單片機(jī)內(nèi)部有兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器,即定時(shí)器T0和定時(shí)器T1M1M0:定時(shí)器/計(jì)數(shù)器四種工作方式選擇M1M0方式00013位定時(shí)器/計(jì)數(shù)器01116位定時(shí)器/計(jì)數(shù)器102自動(dòng)裝入時(shí)間常數(shù)的8位定時(shí)器/計(jì)數(shù)器式3時(shí)停止工作(無(wú)中斷重裝8位計(jì)數(shù)器)113對(duì)T0分為兩個(gè)8位獨(dú)立計(jì)數(shù)器;對(duì)T1置方-28051單片機(jī)內(nèi)的定時(shí)/計(jì)數(shù)器T0、T1工作在模式3時(shí),有何不同?方式3對(duì)定時(shí)器T0和定時(shí)器T1是不相同的。若T1設(shè)置為方式3,則停止工作方式3只適用于T0。當(dāng)T0設(shè)置為方式3時(shí),將使TL0和TH0成為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器,TL0利用了T0本身的一些控制方式,它的操作與方式0和方式1類似。而TH0被規(guī)定為用作定時(shí)器功能,對(duì)機(jī)器周期計(jì)數(shù),并借用了T1的控制位TR1和TF1。在這種情況下TH0控制了T1的中斷。-3已知單片機(jī)時(shí)鐘振蕩頻率為6MHz,利用T0定時(shí)器,在P1.1引腳上輸出連續(xù)方波,波形如下:計(jì)算定時(shí)常數(shù):100us方式0TcFE0E;方式1TcFFCE;方式2TcCE150us方式0TcFD15;方式1TcFFB5;方式2TcB5方法一:采用方式一,定時(shí)器中斷。源程序:ORG0000HLJMPSTARTORG000BHLJMPTINT0ORG0100HSTART:MOVTMOD,#01HMOVTL0,#0CEHMOVTH0,#0FFHSETBTR0SETBEASETBET0SETB20H.0SETBP1.1SJMP$TINT0:JNB20H.0,NEXTMOVTL0,#0B5HMOVTH0,#0FFHCLRP1.1CPL20H.0SJMPLASTNEXT:MOVTL0,#0CEHMOVTH0,#0FFHSETBP1.1CPL20H.0LAST:RETI方法二:采用方式2定時(shí)器中斷加延時(shí)程序源程序:ORG0000HLJMPSTARTORG000BHLJMPTINT0ORG0100HSTART:MOVTMOD,#02HMOVTL0,#0CEHMOVTH0,#0CEHSETBTR0SETBEASETBET0SETB20H.0SETBP1.1SJMP$TINT0:JNB20H.0,NEXTCLRTR0CLRP1.1LCALLDELAYCPL20H.0SETBTR0SJMPLASTNEXT:SETBP1.1CPL20H.0LAST:RETIDELAY:MOVR7,#8DELAY1:DJNZR7,DELAY1RET6-4定時(shí)器/計(jì)數(shù)器的工作方式2有什么特點(diǎn)?適用于什么應(yīng)用場(chǎng)合?方式2把TL0配置成一個(gè)可以自動(dòng)恢復(fù)初值的8位計(jì)數(shù)器,TH0作為常數(shù)緩沖器,TH0由軟件預(yù)置值。當(dāng)TL0產(chǎn)生溢出時(shí),一方面使溢出標(biāo)志TF0置1,同時(shí)把TH0中的8位數(shù)據(jù)重新裝入TL0中。方式2常用于定時(shí)控制作串行口波特率發(fā)生器。-5定時(shí)器/計(jì)數(shù)器測(cè)量某正單脈沖的寬度,采用何種方式可得到最大量程?若時(shí)鐘頻率為6MHz,求允許測(cè)量的最大脈沖寬度是多少?-6定時(shí)器/計(jì)數(shù)器作為外部中斷源使用時(shí),需要如何初始化,以T0為例通過(guò)程序說(shuō)明。7-1波特率的含義是什么?所謂波特率是每秒鐘傳送信號(hào)的數(shù)量,單位為波特(Baud)。7-2什么是串行異步通信?它有哪些特征?通信接收器和發(fā)送器有各自的時(shí)鐘。異步通信的優(yōu)點(diǎn)是不需要傳送同步脈沖,可靠性高,所需設(shè)備簡(jiǎn)單,缺點(diǎn)是字符幀中因包含有起始位和停止位而降低了有效數(shù)據(jù)的傳輸速率7-3單片機(jī)的串行接口由哪些功能部件組成?各有什么作用?MCS-51單片機(jī)串行口主要由兩個(gè)物理上獨(dú)立的串行數(shù)據(jù)緩沖寄存器SBUF、發(fā)送控制器、接收控制器、輸入移位寄存器和輸出控制門(mén)組成SBUF為串行口的收發(fā)緩沖寄存器,它是可尋址的專用寄存器,其中包含了發(fā)送寄存器SBUF(發(fā)送)和接收寄存器SBUF(接收)可以實(shí)現(xiàn)全雙工通信。7-4簡(jiǎn)述串行接口接收和發(fā)送數(shù)據(jù)的過(guò)程。:發(fā)送操作是在TI0下進(jìn)行的,此時(shí)發(fā)送緩沖寄存器SBUF(發(fā)送)相當(dāng)于一個(gè)并入串出的移位寄存器。CPU通過(guò)指令MOVSBUF,A,將數(shù)據(jù)寫(xiě)入“SBUF(發(fā)送)”,立即啟動(dòng)發(fā)送,將8位數(shù)據(jù)以波特率從RXD輸出,低位在前,高位在后。發(fā)送完一幀數(shù)據(jù)后,發(fā)送中斷標(biāo)志TI由硬件置位,并可向CPU發(fā)出中斷請(qǐng)求。:接收過(guò)程是在RI0且REN1條件下啟動(dòng)的,此時(shí)接收緩沖寄存器SBUF(接收)相當(dāng)于一個(gè)串入并出的移位寄存器。接收時(shí),先置位允許接收控制位REN,此時(shí),RXD為串行數(shù)據(jù)輸入端。當(dāng)RI0和REN1同時(shí)滿足時(shí),開(kāi)始接收。當(dāng)接收到第8位數(shù)據(jù)時(shí),將數(shù)據(jù)移入接收緩沖寄存器SBUF(接收),并由硬件置位RI,同時(shí)向CPU發(fā)出中斷請(qǐng)求。CPU查到RI1或響應(yīng)中斷后,通過(guò)指令MOVA,SBUF將SBUF(接收)接收到的數(shù)據(jù)讀入累加器A7-58051串行接口有幾種工作方式?有幾種幀格式?各工作方式的波特率如何確定?①方式0的波特率固定為系統(tǒng)晶振頻率的1/12,其值為fosc/12。其中,fosc為系統(tǒng)主機(jī)晶振頻率。②方式2的波特率由PCON中的選擇位SMOD來(lái)決定,可由下式表示:即:當(dāng)SMODl時(shí),波特率為fosc/32;當(dāng)腳SMOD0時(shí),波特率為fosc/64。③方式1和方式3的波特率由定時(shí)器Tl的溢出率控制。因而波特率是可變的。定時(shí)器TI作為特率發(fā)生器,相應(yīng)公式如下:波特率定時(shí)器溢出率溢出率計(jì)數(shù)率/產(chǎn)生溢出所需的周期數(shù)式中K定時(shí)器T1的位數(shù),K的值等于8、13、16;TC定時(shí)器T1的預(yù)置初值。MCS-51單片機(jī)外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器地址范圍都是0000H~FFFFH,在實(shí)際使用時(shí)如何區(qū)分?答:訪問(wèn)(讀)ROM時(shí)(程序存儲(chǔ)器),通過(guò)引腳有效選中程序存儲(chǔ)器,PC指針指向程序存儲(chǔ)器的地址指針。訪問(wèn)外部RAM(數(shù)據(jù)存儲(chǔ)器),通過(guò)、引腳有效選中數(shù)據(jù)存儲(chǔ)器(DPTR為外部RAM存儲(chǔ)器的地址指針)8-2訪問(wèn)8051片外數(shù)據(jù)存儲(chǔ)器MOVX指令采用的是間接采用的是基址加變址尋址方式。訪問(wèn)片外程序存儲(chǔ)器MOVC指令尋址方式。8-3MCS-51單片機(jī)可以外接64KB的程序存儲(chǔ)器和64KB數(shù)據(jù)存儲(chǔ)器。這兩種片外存儲(chǔ)器地址重疊而不發(fā)生總線沖突,主要依靠單片機(jī)引腳上的那些信號(hào)來(lái)區(qū)分?答:同8-1.8-4給8031單片機(jī)擴(kuò)展一片2716和6116,請(qǐng)畫(huà)出系統(tǒng)連接圖。方法一:地址自定:(其中一種解法如下)設(shè)2716地址:0000H―07FFH6116地址:0000H―07FFH(不用譯碼器)方法二:采用部分譯碼如:2716的地址0000H―07FFH6116的地址0800H―08FFH方法三:采用全譯碼如:2716的地址0000H―07FFH6116的地址0800H―08FFH8-5試畫(huà)出MCS-51系列8051最小應(yīng)用系統(tǒng)的原理結(jié)構(gòu)圖。答:8051最小應(yīng)用系統(tǒng)如圖所示。這種最小應(yīng)用系統(tǒng)只要將單片機(jī)的時(shí)鐘電路和復(fù)位電路接上,同時(shí)接高電平,系統(tǒng)就可以工作。此類應(yīng)用系統(tǒng)只能用作一些小型的控制單元。其應(yīng)用特點(diǎn)是:(1)全部I/O口線均可供用戶用。(2)內(nèi)部存儲(chǔ)器容量有限(只有4KB地址空間)。(3)應(yīng)用系統(tǒng)開(kāi)發(fā)具有特殊性。8-6如何構(gòu)造MCS-51單片機(jī)擴(kuò)展的系統(tǒng)總線?見(jiàn)課本P129-P130第9章習(xí)題參考答案9-1設(shè)計(jì)用P1、P2口擴(kuò)展4×4矩陣鍵盤(pán)、4位共陰極LED硬件電路。9-2已知一單片機(jī)應(yīng)用系統(tǒng)如9-12圖所示。試回答問(wèn)題并編寫(xiě)顯示程序,以1秒為間隔,亮暗相間,顯示“88888888”。9-4若8255芯片的片選端與8051的P2.7相連,A1A0端與地址總線A1A0相連,現(xiàn)要求8255工作在方式0,A口作為輸入,B口作為輸出,且將C口的第6位PC5置1,請(qǐng)編寫(xiě)初始化工作程序。答:9-5已知系統(tǒng)的連接如圖9-12所示,試編寫(xiě)程序?qū)崿F(xiàn)下列功能:(1)編寫(xiě)上電顯示程序,顯示“123456”。(2)編寫(xiě)主程序,功能為:當(dāng)有鍵按下(0~7號(hào))時(shí),都顯示鍵號(hào);無(wú)鍵按下,保持原有顯示狀態(tài)。答:主程序流程圖:流程圖:鍵盤(pán)掃描方案二:(注意鍵值的不同)9-6如何消除鍵的抖動(dòng)?對(duì)于一般的小鍵盤(pán)來(lái)說(shuō),為什么不能雙鍵或多鍵同時(shí)按下?答:方法一:軟件延時(shí)方法二:硬件防抖動(dòng)電路(R-S觸發(fā)器)因?yàn)閱捂I按下,一個(gè)鍵只代表一個(gè)功能,當(dāng)雙鍵或多建同時(shí)按下時(shí),程序視為非法按鍵。(除按鍵不夠用,擴(kuò)展雙鍵或多鍵同時(shí)按下的功能)9-7什么是LED數(shù)碼顯示器?它有幾種接法?如何得到顯示段碼?答:①施加電壓有電流流過(guò)使之發(fā)光的二極管。(一個(gè)發(fā)光二極管發(fā)光時(shí)電流約為10~20mA,管壓降2.0V左右)8個(gè)LED發(fā)光二極管封裝在一起,組成一個(gè)8段碼②8段碼有兩種接法按結(jié)構(gòu):共陽(yáng)極,共陰極按顯示:動(dòng)態(tài)顯示,靜態(tài)顯示③以共陰極為例,公共端接地,某段上加上高電平,則亮,否則滅,從而得到相應(yīng)符號(hào)的段碼9-8什么是D/A轉(zhuǎn)換器?DAC0832主要特性參數(shù)有哪些?DAC0832與8051單片機(jī)連接時(shí)有哪些控制信號(hào)?其作用是什么?A/D轉(zhuǎn)換器DAC0809的編程要點(diǎn)是什么?具有8位分辨率的A/D轉(zhuǎn)換器,當(dāng)輸入05V電壓時(shí),其最大量化誤差是多少?RDG2AG2B輸入模塊人機(jī)接口(鍵盤(pán)顯示)模塊上電/復(fù)位否是A條件成立嗎?否是BA條件成立嗎?BA初始化模塊模塊A模塊B模塊C返回開(kāi)始Y輸出模塊結(jié)束A50HB@R0+1判斷AB?R2-150?N開(kāi)始A中放大值指針加1Y調(diào)用復(fù)制子程序結(jié)束初始化常數(shù)R0←40HDPTR←0200HR1←10H初始化:R215賦判斷次數(shù),R0指針指向40H單元開(kāi)始R0單元送DPTR指針加1返回R1-10?YN100μsP1.1150μs開(kāi)始主程序流程圖:初始化T0,設(shè)置工作方式開(kāi)T0中斷,設(shè)置標(biāo)志位20H.0開(kāi)定時(shí)器T0,P1.11等待中斷中斷子程序流程圖:開(kāi)始20H.01?T0賦初值150usP1.10取反20H.0中斷返回T0賦初值100usP1.11取反20H.0中斷返回YN返回返回取反20H.0取反20H.0,開(kāi)定時(shí)器CE調(diào)用50us延時(shí)P1.11P1.10,關(guān)定時(shí)器20H.01?開(kāi)始中斷子程序流程圖等待中斷開(kāi)定時(shí)器T0,P1.11開(kāi)T0中斷,設(shè)置標(biāo)志位20H.0初始化T0,設(shè)置工作方式主程序流程圖開(kāi)始NYOEPSENP2.0~P2.2P0.0~P0.72716D0~D7A0~A7A8~A10ALE地址鎖存器373G8051WRWEOECED0-D76116A0-A7A8-A1074LS138Y0Y1CBA+5VRDP2.0-P2.2OEPSENP2.5P2.4P2.3P0.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論