已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第一章1給出下列有符號數(shù)的原碼、反碼和補碼假設(shè)計算機字長為8位。45896112答【45】原00101101,【45】反00101101,【45】補00101101【89】原11011001,【89】反10100110,【89】補10100111【6】原10000110,【6】反11111001,【6】補11111010【112】原01110000,【45】反01110000,【45】補011100002指明下列字符在計算機內(nèi)部的表示形式。ASENDFJFMDSV120答41H73H45H4EH64H66H4AH46H6DH64H73H76H31H32H30H3什么是單片機答單片機是把微型計算機中的微處理器、存儲器、I/O接口、定時器/計數(shù)器、串行接口、中斷系統(tǒng)等電路集成到一個集成電路芯片上形成的微型計算機。因而被稱為單片微型計算機,簡稱為單片機。4單片機的主要特點是什么答主要特點如下1在存儲器結(jié)構(gòu)上,單片機的存儲器采用哈佛HARVARD結(jié)構(gòu)2在芯片引腳上,大部分采用分時復用技術(shù)3在內(nèi)部資源訪問上,采用特殊功能寄存器SFR的形式4在指令系統(tǒng)上,采用面向控制的指令系統(tǒng)5內(nèi)部一般都集成一個全雙工的串行接口6單片機有很強的外部擴展能力5指明單片機的主要應用領(lǐng)域。答單機應用1工業(yè)自動化控制;2智能儀器儀表;3計算機外部設(shè)備和智能接口;4家用電器多機應用功能彌散系統(tǒng)、并行多機處理系統(tǒng)和局部網(wǎng)絡(luò)系統(tǒng)。第二章1MCS51單片機由哪幾個部分組成答MCS51單片機主要由以下部分組成的時鐘電路、中央處理器CPU、存儲器系統(tǒng)RAM和ROM、定時/計數(shù)器、并行接口、串行接口、中斷系統(tǒng)及一些特殊功能寄存器SFR。2MCS51的標志寄存器有多少位,各位的含義是什么答MCS51的標志寄存器PSW有8位;D7D6D5D4D3D2D1D0CACF0RS1RS0OVP含義如下CPSW7進位或借位標志位。ACPSW6輔助進位或借位可標志位。F0PSW5用戶標志位。是系統(tǒng)預留給用戶自己定義的標志位。RS1、RS0PSW4、PSW3寄存器組選擇位??捎密浖梦换蚯辶?,用于從四組工作寄存器中選定當前的工作寄存器組。OVPSW2溢出標志位。在加法或減法運算時,如運算的結(jié)果超出8位二進制數(shù)的范圍,則OV置1,標志溢出,否則OV清零。PPSW0奇偶標志位。用于記錄指令執(zhí)行后累加器A中1的個數(shù)的奇偶性。若累加器A中1的個數(shù)為奇數(shù),則P置位,若累加器A中1的個數(shù)為偶數(shù),則P清零。其中PSW1未定義,可供用戶使用。3在8051的存儲器結(jié)構(gòu)中,內(nèi)部數(shù)據(jù)存儲器可分為幾個區(qū)域各有什么特點答片內(nèi)數(shù)據(jù)存儲器按功能可以分成以下幾個部分工作寄存器組區(qū)、位尋址區(qū)、一般RAM區(qū)和特殊功能寄存器區(qū),其中還包含堆棧區(qū)。工作寄存器組區(qū),00H1FH單元,可用R0R7等8個寄存器訪問;位尋址區(qū),20H2FH單元,可按位方式訪問;一般RAM區(qū),30H7FH單元;堆棧區(qū),可從08到7F單元;特殊功能寄存器區(qū)位于80HFFH單元。4什么是堆棧說明MCS51單片機的堆棧處理過程。答堆棧是按先入后出、后入先出的原則進行管理的一段存儲區(qū)域。CS51單片機的堆棧是向上生長型的,存入數(shù)據(jù)是從地址低端向高端延伸,取出數(shù)據(jù)是從地址高端向低端延伸。入棧和出棧數(shù)據(jù)是以字節(jié)為單位的。入棧時,SP指針的內(nèi)容先自動加1,然后再把數(shù)據(jù)存入到SP指針指向的單元;出棧時,先把SP指針指向單元的數(shù)據(jù)取出,然后再把SP指針的內(nèi)容自動減1。5MCS51單片機有多少根I/O線它們和單片機的外部總線有什么關(guān)系答MCS51單片機有32根I/O線,由P0口經(jīng)地址鎖存器提供低8位A7A0,P2口提供高8位A15A8而形成。數(shù)據(jù)總線寬度為8位,由P0口直接提供??刂瓶偩€由第二功能狀態(tài)下的P3口和4根獨立的控制線RST、EA、ALE和PSEN組成。6什么是機器周期MCS51單片機的一個機器周期包括多少個時鐘周期答機器周期機器周期是單片機的基本操作周期,每個機器周期包含S1、S2、S66個狀態(tài),每個狀態(tài)包含兩拍P1和P2,每一拍為一個時鐘周期振蕩周期。因此,一個機器周期包含12個時鐘周期。7如果時鐘周期的頻率為12MHZ,那么ALE信號的頻率為多少答2MHZ第三章1在MCS51單片機中,尋址方式有幾種其中對片內(nèi)RAM可以用哪幾種尋址方式對片外RAM可以用哪幾種尋址方式答尋址方式可分為數(shù)的尋址和指令尋址,數(shù)的尋址有常數(shù)尋址(立即尋址)、寄存器數(shù)尋址(寄存器尋址)、存儲器數(shù)尋址(直接尋址方式、寄存器間接尋址方式、變址尋址方式)和位尋址,指令的尋址有絕對尋址和相對尋址。片內(nèi)RAM尋址有寄存器尋址、直接尋址方式和寄存器間接尋址方式。片外RAM尋址有寄存器間接尋址方式。2在對片外RAM單元尋址中,用RI間接尋址與用DPTR間接尋址有什么區(qū)別答片外數(shù)據(jù)存儲器尋址中,用RI間接尋址只能訪問低端的256字節(jié)單元,而用DPTR作指針間接訪問可訪問整個64K字節(jié)。3在位處理中,位地址的表示方式有哪幾種答1直接位地址(00H0FFH)。例如20H2字節(jié)地址帶位號。例如20H3表示20H單元的3位。3特殊功能寄存器名帶位號。例如P01表示P0口的1位。4位符號地址。例如TR0是定時/計數(shù)器T0的啟動位。4寫出完成下列操作的指令。(1)R0的內(nèi)容送到R1中。MOVA,R0MOVR1,A(2)片內(nèi)RAM的20H單元內(nèi)容送到片內(nèi)RAM的40H單元中。MOV40H,20H(3)片內(nèi)RAM的30H單元內(nèi)容送到片外RAM的50H單元中。MOVA,30HMOVR0,50HMOVXR0,A(4)片內(nèi)RAM的50H單元內(nèi)容送到片外RAM的3000H單元中。MOVA,50HMOVDPTR,3000HMOVXDPTR,A(5)片外RAM的2000H單元內(nèi)容送到片外RAM的20H單元中。MOVDPTR,2000HMOVXA,DPTRMOV20H,A(6)片外RAM的1000H單元內(nèi)容送到片外RAM的4000H單元中。MOVDPTR,1000HMOVXA,DPTRMOVDPTR,4000HMOVDPTR,A(7)ROM的1000H單元內(nèi)容送到片內(nèi)RAM的50H單元中。MOVA,0MOVDPTR,1000HMOVCA,ADPTRMOV20H,A(8)ROM的1000H單元內(nèi)容送到片外RAM的1000H單元中。MOVA,0MOVDPTR,1000HMOVCA,ADPTRMOVXDPTR,A5區(qū)分下列指令有什么不同(1)MOVA,20H和MOVA,20H答前者源操作數(shù)是直接尋址,后者源操作數(shù)立即尋址。(2)MOVA,R1和MOVXA,R1答前者源操作數(shù)是訪問片內(nèi)數(shù)據(jù)存儲器,后者源操作數(shù)訪問片外數(shù)據(jù)存儲器低256字節(jié)。(3)MOVA,R1和MOVA,R1答前者源操作數(shù)是寄存器尋址,后者源操作數(shù)寄存器間接尋址。(4)MOVXA,R1和MOVXA,DPTR答前者源操作數(shù)是訪問片外數(shù)據(jù)存儲器低256字節(jié),后者源操作數(shù)訪問片外數(shù)據(jù)存儲器整個64K字節(jié)。(5)MOVXA,DPTR和MOVCA,ADPTR答前者源操作數(shù)是訪問片外數(shù)據(jù)存儲器,后者源操作數(shù)訪問程序數(shù)據(jù)存儲器。6設(shè)片內(nèi)RAM的(20H)40H,(40H)10H,(10H)50H,(P1)0CAH。分析下列指令執(zhí)行后片內(nèi)RAM的20H、40H、10H單元以及P1、P2中的內(nèi)容。MOVR0,20HMOVA,R0;A40HMOVR1,A;R140HMOVA,R1;A10HMOVR0,P1;(40H)0CAHMOVP2,P1P20CAHMOV10H,A(10H)10HMOV20H,10H(20H)10H結(jié)果(20H)10H、(10H)10H、(40H)0CAH、P20CAH和P10CAH7已知(A)02H,(R1)7FH,(DPTR)2FFCH,片內(nèi)RAM(7FH)70H,片外RAM(2FFEH)11H,ROM(2FFEH)64H,試分別寫出以下各條指令執(zhí)行后目標單元的內(nèi)容。(1)MOVA,R1結(jié)果累加器A等于70H(2)MOVXDPTR,A結(jié)果片外RAM(2FFCH)單元等于02H(3)MOVCA,ADPTR結(jié)果累加器A等于64H(4)XCHDA,R1結(jié)果累加器A等于00H,片內(nèi)RAM(7FH)單元等于72H8已知(A)78H,(R1)78H,(B)04H,CY1,片內(nèi)RAM(78H)0DDH,(80H)6CH,試分別寫出下列指令執(zhí)行后目標單元的結(jié)果和相應標志位的值。(1)ADDA,R1;累加器A等于55H,CY等于1(2)SUBBA,77H;累加器A等于00H,CY等于0(3)MULAB;累加器A等于E0H,B寄存器等于01H,CY等于1,OV等于0(4)DIVAB;累加器A等于1EH,B寄存器等于00H,CY、OV等于0(5)ANL78H,78H;片內(nèi)RAM(78H)單元等于58H(6)ORLA,0FH;累加器A等于7FH(7)XRL80H,A;片內(nèi)RAM(80H)等于14H9設(shè)(A)83H,(R0)17H,(17H)34H,分析當執(zhí)行完下面指令段后累加器A、R0、17H單元的內(nèi)容。ANLA,17H;A03HORL17H,A;(17H)37HXRLA,R0;A34HCPLA;ACBH結(jié)果ACBH,(R0)17H,(17H)37H10寫出完成下列要求的指令。(1)累加器A的低2位清零,其余位不變。ANLA,11111100B(2)累加器A的高2位置“1”,其余位不變。ORLA,11000000B(3)累加器的高4位取反,其余位不變。XRLA,11110000B(4)累加器第0位、2位、4位、6位取反,其余位不變。XRLA,01010101B11說明LJMP指令與AJMP指令的區(qū)別答LJMP指令后面提供的是16位目標地址,所以可以轉(zhuǎn)移到64KB程序存儲器的任意位置,缺點是執(zhí)行時間長,字節(jié)數(shù)多。AJMP指令后帶的是11位直接地址,執(zhí)行時,先將程序指針PC的值加2(該指令長度為2字節(jié)),然后把指令中的11位地址ADDR11送給程序指針PC的低11位,而程序指針的高5位不變,只能在當前2K范圍內(nèi)轉(zhuǎn)移。12設(shè)當前指令CJNEA,12H,10H的地址是0FFEH,若累加器A的值為10H,則該指令執(zhí)行后的PC值為多少若累加器A的值為12H呢答指令執(zhí)行后的PC值為1011H,若累加器A的值為12H,則指令執(zhí)行后的PC值為1001H。13用位處理指令實現(xiàn)P14P10(P11P12)/P13的邏輯功能。程序MOVC,P11ORLC,P12ANLC,P10ORLC,/P13MOVP14,C14下列程序段匯編后,從1000H單元開始的單元內(nèi)容是什么ORG1000HTABDB12H,34HDS3DW5567H,87H答(1000H)12H,(1001H)34H,(1002H)00H,(1003H)00,(1004H)00,(1005H)67H,(1006H)55H,(1007H)87H,(1008H)00H15試編一段程序,將片內(nèi)RAM的20H、21H、22H單元的內(nèi)容依次存入片外RAM的20H、21H、22H中。程序MOVR0,20HMOVR2,03HLOOPMOVA,R0MOVXR0,AINCR0DJNZR2,LOOPSJMP16編程實現(xiàn)將片外RAM的2000H2030H單元的內(nèi)容,全部搬到片內(nèi)RAM的20H單元開始位置,并將源位置清零。程序MOVR0,20HMOVDPTR,2000HMOVR2,30HLOOPMOVXA,DPTRMOVR0,AMOVA,00MOVXDPTR,AINCDPTRINCR0DJNZR2,LOOPSJMP17編程將片外RAM的1000H單元開始的100個字節(jié)數(shù)據(jù)相加,結(jié)果放于R7R6中。程序MOVDPTR,1000HMOVR2,100MOVR7,00MOVR6,00LOOPMOVXA,DPTRADDA,R6MOVR6,AMOVA,R7ADDCA,0MOVR7,AINCDPTRDJNZR2,LOOPSJMP18編程實現(xiàn)R4R3R2,結(jié)果放于R7R6R5中。程序ORG0100HMUL1MOVA,R2MOVB,R3MULAB;R2R3,結(jié)果的低字節(jié)直接存入積的R5MOVR5,A;結(jié)果的高字節(jié)存入R6中暫存起來MOVR6,BMUL2MOVA,R2MOVB,R4MULAB;R2R4,結(jié)果的低字節(jié)與R6相加后,再存入R6中ADDA,R6MOVR6,AMOVA,B;結(jié)果的高字節(jié)加上進位位后存入R7中ADDCA,00MOVR7,ASJMP19編程實現(xiàn)把片內(nèi)RAM的20H單元的0位、1位,21H單元的2位、3位,22H單元的4位、5位,23H單元的6位、7位,按原位置關(guān)系拼裝在一起放于R2中。程序MOVC,20H0MOVA0,CMOVC,20H1MOVA1,CMOVC,21H2MOVA2,CMOVC,21H3MOVA3,CMOVC,22H4MOVA4,CMOVC,22H5MOVA5,CMOVC,23H6MOVA6,CMOVC,23H7MOVA7,CMOVR2,A20用查表的方法實現(xiàn)一位十六進制數(shù)轉(zhuǎn)換成ASCII。程序(設(shè)一位十六進制數(shù)放在R2中,輪換的ASCII也放于R2中)C16STASCMOVDPTR,TABMOVA,R2MOVCA,ADPTRMOVR2,ARETTABDB30H,31H,32H,33H,34H,35H,36H,37HDB38H,391H,41H,42H,43H,44H,45H,46H21編程統(tǒng)計從片外RAM2000H開始的100個單元中“0”的個數(shù)放于R2中。程序MOVDPTR,2000HMOVR3,100MOVR2,00LOOPMOVXA,DPTRJNZNEXTINCR2NEXTINCDPTRDJNZR3,LOOPSJMP第四章1C語言有哪些特點答C語言具有以下特點1語言簡潔、緊湊,使用方便、靈活2運算符豐富3數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)4可進行結(jié)構(gòu)化程序設(shè)計5可以直接對計算機硬件進行操作6生成的目標代碼質(zhì)量高,程序執(zhí)行效率高7可移植性好2有哪些數(shù)據(jù)類型是MCS51單片機直接支持的答MCS51單片機直接支持的數(shù)據(jù)類型標準分為基本數(shù)據(jù)類型和組合數(shù)據(jù)類型,基本數(shù)據(jù)類型有字符型CHAR、短整型SHORT、整型INT、長整型LONG、浮點型FLOAT、雙精度型DOUBLE、特殊功能寄存器型和位類型,其中CHAR型與SHORT型相同,F(xiàn)LOAT型與DOUBLE型相同。組合數(shù)據(jù)類型有數(shù)組類型、結(jié)構(gòu)體類型、共同體類型和枚舉類型,另外還有指針類型和空類型。3C51特有的數(shù)據(jù)類型有哪些答C51特有的數(shù)據(jù)類型有特殊功能寄存器型和位類型。4C51中的存儲器類型有幾種,它們分別表示的存儲器區(qū)域是什么答C51中的存儲器類型有6種,分別如下DATA直接尋址的片內(nèi)RAM低128B,訪問速度快BDATA片內(nèi)RAM的可位尋址區(qū)20H2FH,允許字節(jié)和位混合訪問IDATA間接尋址訪問的片內(nèi)RAM,允許訪問全部片內(nèi)RAMPDATA用RI間接訪問的片外RAM低256BXDATA用DPTR間接訪問的片外RAM,允許訪問全部64KB片外RAMCODE程序存儲器ROM64KB空間5在C51中,BIT位與SBIT位有什么區(qū)別答B(yǎng)IT位類型符用于定義一般的位變量。存儲器類型只能是BDATA、DATA、IDATA,只能是片內(nèi)RAM的可位尋址區(qū),嚴格來說只能是BDATA。SBIT位類型符用于定義在可位尋址字節(jié)或特殊功能寄存器中的位,定義時需指明其位地址,可以是位直接地址,可以是可位尋址變量帶位號,也可以是特殊功能寄存器名帶位號。6在C51中,通過絕對地址來訪問的存儲器有幾種答通過絕對地址來訪問存儲器有三種方法1使用C51運行庫中預定義宏。2通過指針訪問。3使用C51擴展關(guān)鍵字_AT_7在C51中,中斷函數(shù)與一般函數(shù)有什么不同答中斷函數(shù)在定義時后面帶INTERRUPTM修飾符,M的取值為031,對應的中斷情況如下0外部中斷0,1定時/計數(shù)器T0,2外部中斷1,3定時/計數(shù)器T1,4串行口中斷,5定時/計數(shù)器T2,其他值預留。編寫MCS51中斷函數(shù)需要注意如下幾點。1中斷函數(shù)不能進行參數(shù)傳遞,如果中斷函數(shù)中包含任何參數(shù)聲明都將導致編譯出錯。2中斷函數(shù)沒有返回值。3在任何情況下都不能直接調(diào)用中斷函數(shù)4如果在中斷函數(shù)中調(diào)用了其他函數(shù),則被調(diào)用函數(shù)所使用的寄存器必須與中斷函數(shù)相同,否則會產(chǎn)生不正確的結(jié)果。5C51編譯器對中斷函數(shù)編譯時會自動在程序開始和結(jié)束處加上相應的內(nèi)容。6C51編譯器從絕對地址8M3處產(chǎn)生一個中斷向量,其中M為中斷號,也即INTERRUPT后面的數(shù)字。該向量包含一個到中斷函數(shù)入口地址的絕對跳轉(zhuǎn)。7中斷函數(shù)最好寫在文件的尾部,并且禁止使用EXTERN存儲類型說明。防止其他程序調(diào)用。8按給定的存儲類型和數(shù)據(jù)類型,寫出下列變量的說明形式。1在DATA區(qū)定義字符變量VAL1。CHARDATAVAL12在IDATA區(qū)定義整型變量VAL2。INTIDATAVAL23在XDATA區(qū)定義無符號字符型數(shù)組VAL34。UNSIGNEDCHARXDATAVAL344在XDATA區(qū)定義一個指向CHAR類型的指針PX。CHARXDATAPX5定義可尋址位變量FLAG。BITFLAG6定義特殊功能寄存器變量P3。SFRP30XA07定義特殊功能寄存器變量SCON。SFRSCON0X988定義16位的特殊功能寄存器T0。SFR16T00X8A9寫出下列關(guān)系表達式或邏輯表達式的結(jié)果,設(shè)A3,B4,C5。1ABCMAININTX,Y,ZSERIAL_INITIALXY8ZXPRINTF“NDDD“,Y,Z,XXY8ZXPRINTF“NDDD“,Y,Z,XXY8ZXPRINTF“NDDD“,Y,Z,XXY8ZXPRINTF“NDDD“,Y,Z,XPRINTF“N“WHILE1結(jié)果8998898778872INCLUDEEXTERNSERIAL_INITIALMAININTX,Y,ZSERIAL_INITIALPRINTF“INPUTDATAX,YN“SCANF“DD“,PRINTF“NXYXYXYXYXY“PRINTF“N“PRINTF“N3D3D“,X,YZXYPRINTF“5D“,ZZXYPRINTF“5D“,ZZXYPRINTF“5D“,ZZXYPRINTF“5D“,ZWHILE1執(zhí)行結(jié)果INPUTDATAX,Y12XYXYXYXYXY121100103INCLUDEEXTERNSERIAL_INITIALMAININTX,Y,ZSERIAL_INITIALPRINTF“INPUTDATAX,YN“SCANF“DD“,PRINTF“NXYXX|YXPRINTF“N3D3D“,X,YZYPRINTF“5D“,ZZX|YPRINTF“5D“,ZZXPRINTF“5D“,ZPRINTF“N“PRINTF“N“PRINTF“THATISALLN“WHILE1執(zhí)行結(jié)果INPUTDATAX,YXYXX|YXMAININTA,BUNSIGNEDINTX,YSERIAL_INITIALAB0XAA55XY0XAA55PRINTF“NA4XB4XX4XY4X“,A,B,X,YAA1XX1PRINTF“NA4XB4XX4XY4X“,A,B,X,YPRINTF“N“PRINTF“N“PRINTF“THATISALLN“WHILE1執(zhí)行結(jié)果AAA55BAA55XAA55YAA55A54AABD52AX54AAY552ATHATISALL11BREAK和CONTINUE語句的區(qū)別是什么答B(yǎng)REAK語句可以跳出SWITCH結(jié)構(gòu),使程序繼續(xù)執(zhí)行SWITCH結(jié)構(gòu)后面的一個語句。BREAK語句還可以從循環(huán)體中跳出循環(huán),提前結(jié)束循環(huán)而接著執(zhí)行循環(huán)結(jié)構(gòu)下面的語句。CONTINUE語句用在循環(huán)結(jié)構(gòu)中,用于結(jié)束本次循環(huán),跳過循環(huán)體中CONTINUE下面尚未執(zhí)行的語句,直接進行下一次是否執(zhí)行循環(huán)的判定。CONTINUE語句和BREAK語句的區(qū)別在于CONTINUE語句只是結(jié)束本次循環(huán)而不是終止整個循環(huán);BREAK語句則是結(jié)束循環(huán),不再進行條件判斷。12用分支結(jié)構(gòu)編程實現(xiàn)輸入“1”顯示“A”,輸入“2”顯示“B”,輸入“3”顯示“C”,輸入“4”顯示“D”,輸入“5”結(jié)束。參考程序INCLUDEINCLUDEVOIDMAINVOIDUNSIGNEDCHARXSCON0X52/串口初始化TMOD0X20TH10XF3TR11WHILE1PRINTF“INPUTXN“/輸出提示信息SCANF“C“,SWITCHXCASE1PRINTF“AN“BREAKCASE2PRINTF“BN“BREAKCASE3PRINTF“CN“BREAKCASE4PRINTF“DN“BREAKCASE5PRINTF“QUITN“BREAKDEFAULTPRINTF“RETRYN“IFX5BREAKWHILE113輸入3個無符號的字符數(shù)據(jù),要求按由大到小的順序輸出。參考程序INCLUDEINCLUDEVOIDMAINVOIDUNSIGNEDCHARX,Y,Z,MSCON0X52/串口初始化TMOD0X20TH10XF3TR11PRINTF“INPUTX,Y,Z“/輸出提示信息SCANF“C,C,C“,PRINTF“N“IFX/包含特殊功能寄存器庫INCLUDE/包含I/O函數(shù)庫VOIDMAINVOID/主函數(shù)INTI,S0/定義整型變量I1SCON0X52/串口初始化TMOD0X20TH10XF3TR11WHILEI/包含特殊功能寄存器庫INCLUDE/包含I/O函數(shù)庫VOIDMAINVOID/主函數(shù)INTI,S0/定義整型變量I1SCON0X52/串口初始化TMOD0X20TH10XF3TR11DO/累加1到10的平方之和在S中SSIIIWHILEI/包含特殊功能寄存器庫INCLUDE/包含I/O函數(shù)庫VOIDMAINVOID/主函數(shù)INTI,S0/定義整型變量SCON0X52/串口初始化TMOD0X20TH10XF3TR11FORI1I/包含特殊功能寄存器庫INCLUDE/包含I/O函數(shù)庫MAINUNSIGNEDCHARF5,M,I,JSCON0X52/串口初始化TMOD0X20TH10XF3TR11PRINTF“輸入任意5個字符“SCANF“C,C,C,C,C“,PRINTF“N“FORI0IFJ1MFJFJFJ1FJ1MPRINTF“由小到大的順序為C,C,C,C,C“,F0,F1,F2,F3,F4PRINTF“N“WHILE116用指針實現(xiàn),輸入3個無符號字符數(shù)據(jù),按由大到小的順序輸出。參考程序INCLUDE/包含特殊功能寄存器庫INCLUDE/包含I/O函數(shù)庫MAINUNSIGNEDCHARX,Y,ZUNSIGNEDCHARP,P1,P2,P3SCON0X52/串口初始化TMOD0X20TH10XF3TR11PRINTF“INPUTX,YANDZN“SCANF“C,C,C“,PRINTF“N“P1P2P3IFP1/包含特殊功能寄存器庫INCLUDE/包含I/O函數(shù)庫STRUCTSTUDENTUNSIGNEDCHARNUMBER10UNSIGNEDCHARNAME10UNSIGNEDINTGRADEP13MAINUNSIGNEDCHARI,J0SCON0X52/串口初始化TMOD0X20TH10XF3TR11PRINTF“INPUT3STUDENDNUMBER,NAMEANDGRADEN“FORI0IP1JGRADEJIPRINTF“成績最高的學生是S,成績是D“,P1JNAME,P1JGRADEPRINTF“N“WHILE1第五章1單片機C語言與匯編語言混合編程有哪幾種方式通常采用什么方式答單片機C語言和匯編語言混合編程分為匯編中調(diào)用C51函數(shù)和C51程序中引用匯編,通常使用的是在C51程序中引用匯編。在C51程序中使用匯編語言有兩種情況一種是匯編程序部分和C51程序部分為不同的模塊,或不同的文件,通常由C51程序調(diào)用匯編程序模塊的變量和函數(shù)也可稱為子程序或過程;另一種是嵌入式匯編,即在C51程序中嵌入一段匯編語言程序。2簡述C51程序調(diào)用匯編程序時如何實現(xiàn)參數(shù)傳遞。答C51中調(diào)用匯編程序進行參數(shù)傳遞時都必須嚴格遵守C51函數(shù)的參數(shù)和返回值的相關(guān)約定。行參數(shù)傳遞的方式有兩種,一種是通過寄存器傳遞參數(shù),C51中不同類型的實參會存入相應的寄存器,在匯編中只需對相應寄存器進行操作,即可達到傳遞參數(shù)的目的;第二種是通過固定存儲區(qū)傳遞。3簡述嵌入式匯編的實現(xiàn)方法。答在C51程序中嵌入?yún)R編程序通常的處理方法如下。第一步在C文件中以如下方式嵌入?yún)R編程序。第二步在KEILC51軟件的PROJECT窗口右擊嵌入?yún)R編程序的C文件,在彈出的快捷菜單中選擇OPTIONSFOR命令,選中右邊的GENERATEASSEMBLERSRCFILE和ASSEMBLESRCFILE復選框,使檢查框由灰色變成黑色有效狀態(tài)。第三步根據(jù)選擇的編譯模式,把相應的庫文件如SMALL模式時,是KEILC51LIBC51SLIB加入到工程中,該文件必須作為工程的最后文件。4簡述C51中調(diào)用匯編程序的實現(xiàn)方法。答編寫為C51調(diào)用的匯編程序,參數(shù)須按規(guī)定的寄存器或存儲器傳送,程序格式有相應的規(guī)則,這些規(guī)則比較繁瑣,為了便于處理,在實際中我們往往先用C51寫出這個程序的主體,然后用SRC控制指令編譯產(chǎn)生ASM文件,修改這個ASM文件得到我們所要的匯編函數(shù)。處理過程具體如下。第一步先用C語言程序編寫出程序框架,如文件名為A1C注意參數(shù)。第二步在KEILC51的PROJECT窗口中右擊該C語言文件,在彈出的快捷菜單中選擇OPTIONSFOR,右邊的GENERATEASSEMBLERSRCFILE和ASSEMBLESRCFILE,使檢查框由灰色變成黑色有效狀態(tài)第三步根據(jù)選擇的編譯模式,把相應的庫文件如SMALL模式時,是KEILC51LIBC51SLIB加入工程中,該文件必須作為工程的最后文件。庫文件與編譯模式的關(guān)系如前面。第四步編譯后將會產(chǎn)生一個SRC的文件,將這個文件擴展名改為ASM。這樣就形成了可供C51程序調(diào)用的匯編程序。隨后可在該文件的代碼段中加入所需的指令代碼。第五步將該匯編程序與調(diào)用它的主程序一起加到工程文件中,這時工程文件中不再需要原來的C語言文件和庫文件,主程序只需要在程序開始處用EXTERN對所調(diào)用的匯編程序中的函數(shù)作聲明,在主程序中就可調(diào)用匯編程序中的函數(shù)了。第六章1何為“準雙向I/O接口”在MCS51單片機的四個并口中,哪些是“準雙向I/O接口”答準雙向I/O接口是能實現(xiàn)輸入輸出功能,但在使用時只能從輸入和輸出中選擇一個。MCS51單片機的四個并口中P1、P2、P3是準雙向I/O接口。280C51單片機內(nèi)部有幾個定時/計數(shù)器它們由哪些功能寄存器組成怎樣實現(xiàn)定時功能和計數(shù)功能答80C51單片機內(nèi)部有兩個16位的可編程定時/計數(shù)器,由TH0,TL0,TH1,TL1,TMOD和TCON功能寄存器組成。通過TMOD中的C/T位選擇對機器周期計數(shù)實現(xiàn)計數(shù)功能,選擇對外部脈沖計數(shù)實現(xiàn)計數(shù)功能。3定時/計數(shù)器T0有幾種工作方式各自的特點是什么答有四種工作方式,特點見下表M1M0工作方式方式說明00013位定時/計數(shù)器01116位定時/計數(shù)器1028位自動重置定時/計數(shù)器113兩個8位定時/計數(shù)器只有T0有4定時/計數(shù)器的四種工作方式各自的計數(shù)范圍是多少如果要計10個單位,不同的方式初值應為多少答有四種方式。方式0計數(shù)范圍18192;方式1計數(shù)范圍165536;方式2計數(shù)范圍1256;方式3計數(shù)范圍1256。如果計10個單位,方式0初值為8192108182;方式1初值為655361065526;方式2初值為25610246;方式2初值為25610246。5設(shè)振蕩頻率為12MHZ,如果用定時/計數(shù)器T0產(chǎn)生周期為100MS的方波,可以選擇哪幾種方式,其初值分別設(shè)為多少答只能選擇方式1,初值為655365000015536。6何為同步通信何為異步通信各自的特點是什么答異步通信方式的特點是數(shù)據(jù)在線路上傳送時是以一個字符字節(jié)為單位,未傳送時線路處于空閑狀態(tài),空閑線路約定為高電平“1”。特點是對發(fā)送時鐘和接收時鐘的要求相對不高,線路簡單,但傳送速度較慢。同步通信方式的特點是數(shù)據(jù)在線路上傳送時以字符塊為單位,一次傳送多個字符,傳送時須在前面加上一個或兩個同步字符,后面加上校驗字符。特點是對發(fā)送時鐘和接收時鐘要求較高,往往用同一個時鐘源控制,控制線路復雜,傳送速度快。7單工、半雙工和全雙工有什么區(qū)別答單工方式只有一根數(shù)據(jù)線,信息只能單向傳送;半雙工方式也只有一根數(shù)據(jù)線,但信息可以分時雙向傳送;全雙工方式有兩根數(shù)據(jù)線,在同一個時刻能夠?qū)崿F(xiàn)數(shù)據(jù)雙向傳送。8設(shè)某異步通信接口,每幀信息格式為10位,當接口每秒傳送1000個字符時,其波特率為多少答10000波特9串行口數(shù)據(jù)寄存器SBUF有什么特點答發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器合起用一個特殊功能寄存器SBUF串行口數(shù)據(jù)寄存器,執(zhí)行MOVSBUF,A發(fā)送時為發(fā)送數(shù)據(jù)寄存器,執(zhí)行MOVA,SBUF接收時為接收數(shù)據(jù)寄存器。10MCS51單片機串行口有幾種工作方式各自特點是什么答有四種工作方式,分別是方式0、方式1、方式2和方式3。其中方式0,稱為同步移位寄存器方式,一般用于外接移位寄存器芯片擴展I/O接口。方式1,稱為8位的異步通信方式,通常用于雙機通信。方式2和方式3,稱為9位的異步通信方式,通常用于多機通信。11說明SM2在方式2和方式3對數(shù)據(jù)接收有何影響。答通過SM2對方式2和方式3數(shù)據(jù)接收進行控制,SM21,那么只有接收的第9位為“1”才接收有效。如SM20,接收的第9位無論為1還是0都接收有效。12怎樣來實現(xiàn)利用串行口擴展并行輸入/輸出口答利用串行口在方式0時,當外接一個串入并出的移位寄存器,就可以擴展并行輸出口;當外接一個并入串出的移位寄存器時,就可以擴展并行輸入口。13什么是中斷、中斷允許和中斷屏蔽答在計算機中,由于計算機內(nèi)外部的原因或軟硬件的原因,使CPU從當前正在執(zhí)行的程序中暫停下來,而自動轉(zhuǎn)去執(zhí)行預先安排好的為處理該原因所對應的服務程序。執(zhí)行完服務程序后,再返回被暫停的位置繼續(xù)執(zhí)行原來的程序,這個過程稱為中斷,實現(xiàn)中斷的硬件系統(tǒng)和軟件系統(tǒng)稱為中斷系統(tǒng)。中斷允許是允許中斷請求送CPU產(chǎn)生中斷,中斷屏蔽是禁止中斷請求信號送CPU產(chǎn)生中斷。148051有幾個中斷源中斷請求如何提出答MCS51單片機提供5個硬件中斷源兩個外部中斷源P32和P33,兩個定時/計數(shù)器T0和T1中斷;1個串行口中斷。INT0I1外部中斷源和的中斷請求信號從外部引腳P32和P33輸入;兩個定時/計數(shù)器T0和T1的溢出中斷TF0和TF1定時/計數(shù)器T0或T1溢出時INT01提出;串行口中斷由發(fā)送中斷標志T1和接收中斷標志R1產(chǎn)生。158051的中斷源中,哪些中斷請求信號在中斷響應時可以自動清除哪些不能自動清除應如何處理答工作在邊沿觸發(fā)方式下的兩個外部中斷源和兩個定時/計數(shù)器中斷中斷請求信號在中斷響應時可以自動清除,工作在電平觸發(fā)方式下的兩個外部中斷源和串行口中斷不能自動清除。工作在電平觸發(fā)方式下的兩個外部中斷源的中斷請求信號通過外加硬件和加軟件的方式清除,串行口中斷標志T1和標志R1完全由軟件清除。168051的中斷優(yōu)先級有幾級在形成中斷嵌套時各級有何規(guī)定答8051的中斷優(yōu)先級有兩級;形成中斷嵌套時規(guī)定1正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷,直到該中斷服務程序結(jié)束,返回了主程序且執(zhí)行了主程序中的一條指令后,CPU才響應新的中斷請求。2正在進行的低優(yōu)先級中斷服務程序能被高優(yōu)先級中斷請求所中斷,實現(xiàn)兩級中斷嵌套。3CPU同時接收到幾個中斷請求時,首先響應優(yōu)先級最高的中斷請求。17設(shè)8051的P1中各位接發(fā)光二極管,分別用匯編語言和C語言編程實現(xiàn)逐個輪流點亮二極管,并循環(huán)顯示。參考程序ORG0000HLJMPMAINORG0100H;主程序MAINMOVA,01HLOOPMOVP1,ACALLDELAYRLASJMPLOOPSJMPDELAYMOVR7,0FFHDJNZR7,RETENDC語言程序INCLUDE/包含特殊功能寄存器庫VOIDDELAYUNSIGNEDINTXVOIDMAINUNSIGNEDCHARI,JWHILE1I01FORJ0J/包含特殊功能寄存器庫SBITP1_0P10VOIDMAINTMOD0X01TH00XFCTL00X18EA1ET01TR01WHILE1VOIDTIME0_INTVOIDINTERRUPT1/中斷服務程序TH00XFCTL00X18P1_0P1_0198051系統(tǒng)中,已知振蕩頻率為12MHZ,用定時/計數(shù)器T1,實現(xiàn)從P11產(chǎn)生周期為2S的方波。要求分別用匯編語言和C語言進行編程。解從P11產(chǎn)生2S的方波,應產(chǎn)生500MS的周期性的定時,定時到對P11取反就可實現(xiàn)。由于定時時間較長,一個定時/計數(shù)器T1不能直接實現(xiàn),采用定時/計數(shù)器T1產(chǎn)生周期性為10MS的定時,然后用一個寄存器R2對10MS計數(shù)100次來實現(xiàn)。系統(tǒng)時鐘為12MHZ,定時/計數(shù)器T1定時10MS,計數(shù)值N為10000,只能選方式1,方式控制字為00010000B(10H),初值XX6553610000555361101100011110000B則TH111011000BD8H,TL111110000BF0H。定時/計數(shù)器T1采用中斷處理方式。匯編程序ORG0000HLJMPMAINORG001BHLJMPINTT1ORG0100HMAINMOVTMOD,10HMOVTH1,0D8HMOVTL1,0F0HMOVR2,00HSETBEASETBET1SETBTR1SJMPINTT1MOVTH1,0D8HMOVTL1,0F0HINCR2CJNER2,64H,NEXTCPLP11MOVR2,00HNEXTRETIENDC語言程序INCLUDE/包含特殊功能寄存器庫SBITP1_1P11CHARIVOIDMAINTMOD0X10TH10XD8TL10XF0EA1ET11I0TR11WHILE1VOIDTIME0_INTVOIDINTERRUPT3/中斷服務程序TH10XD8TL10XF0IIFI100P1_1P1_1I0208051系統(tǒng)中,已知振蕩頻率為12MHZ,用定時/計數(shù)器T1,實現(xiàn)從P11產(chǎn)生高電平寬度為10MS,低電平寬度為20MS的矩形波。要求分別用匯編語言和C語言進行編程。解本題處理方式有多種,這里采用對定時/計數(shù)器T1形成10MS周期定時,用R2對10MS計數(shù),當計到1,則對P11置1,當計到2和3,則對P11置0來實現(xiàn)。用定時/計數(shù)器T1形成10MS周期定時見上題。程序如下ORG0000HLJMPMAINORG001BHLJMPINTT1ORG0100HMAINMOVTMOD,10HMOVTH1,0D8HMOVTL1,0F0HMOVR2,00HSETBEASETBET1SETBTR1SJMPINTT1MOVTH1,0D8HMOVTL1,0F0HINCR2CJNER2,01H,NEXTSETBP11SJMPEXITNEXTCJNER2,02H,NEXT1CLRP11SJMPEXITNEXT1CJNER2,03H,NEXTSETBP11MOVR2,00EXITRETIENDC語言程序INCLUDE/包含特殊功能寄存器庫SBITP1_1P11CHARIVOIDMAINTMOD0X10TH10XD8TL10XF0EA1ET11I0TR11WHILE1IFI0P1_11IFI1P1_10IFI2P1_10VOIDTIME0_INTVOIDINTERRUPT3/中斷服務程序TH10XD8TL10XF0IIFI3I021用8051單片機的串行口擴展并行I/O接口,控制16個發(fā)光二極管依次發(fā)光,畫出電路圖,用匯編語言和C語言分別編寫相應的程序。解采用在串口連接兩個CD4094來實現(xiàn),電路圖如下8051RXDTXDP10DATACLKSTBDATACLKSTB程序如下;ORG0000HLJMPMAINORG0100HMAINMOVSCON,00HMOVR4,10HMOVR3,00HMOVR2,01HCLRP10STARTMOVA,R3MOVSBUF,ALOOPJNBTI,LOOPMOVA,R2MOVSBUF,ALOOP1JNBTI,LOOP1SETBP10ACALLDELAYCLRTICLRCMOVA,R2RLCAMOVR2,AMOVA,R3RLCAMOVR3,ACLRP10DJNZR4,START1SJMPMAINDELAYMOVR7,05HLOOP2MOVR6,0FFHLOOP1DJNZR6,LOOP1DJNZR7,LOOP2RETENDC語言程序INCLUDEVOIDDELAYUNSIGNEDINTXUNIONUNSIGNEDINTWORDSTRUCTUNSIGNEDCHARHIGHUNSIGNEDCHARLOWBYTESNUMBERVOIDMAININTISCON0X00WHILE1NUMBERWORD0X01FORI0IINCLUDEMAINUNSIGNEDCHARIXBYTE0X7F030X90WHILE1IXBYTE0X7F00XBYTE0X7F01I17用匯編語言編寫出定時掃描方式下矩陣鍵盤的處理程序。該程序放于定時器的中斷服務程序中。定時器每10MS中斷一次,執(zhí)行一次中斷服務程序。F1和F2標志位用片內(nèi)RAM的50H和51H單元。ACALLKS1JNZLK1MOV50H,0;無鍵按下,F(xiàn)1的F0標志清0結(jié)束MOV51H,0SJMPOUTLK1CJNE50H,1,OUT1;有鍵按下檢查F1標志是否為1,不為1置1結(jié)束。CJNE51H,01,OUT;再檢查F2標志是否為1,為1說明已處理按鍵則結(jié)束。LK2MOVR2,0FEH掃描查詢鍵碼MOVR4,00HLK4MOVDPTR,7F00HMOVA,R2MOVXDPTR,AINCDPTRINCDPTRMOVXA,DPTRJBACC0,LONEMOVA,00HAJMPLKPLONEJBACC1,LTWOMOVA,08HAJMPLKPLTWOJBACC2,LTHRMOVA,10HAJMPLKPLTHRJBACC3,NEXTMOVA,18HLKPADDA,R4求鍵碼放累加大器A,MOV51H,1F2標志置1,結(jié)束SJMPOUTNEXTINCR4MOVA,R2JNBACC7,KENDRLAMOVR2,ASJMPLK4KENDSJMPOUT掃描完結(jié)束KS1MOVDPTR,7F00H檢查有無按鍵MOVA,00HMOVXDPTR,AINCDPTRINCDPTRMOVXA,DPTRCPLAANLA,0FHRETOUT1MOV50H,1OUT18用C語言編寫出定時掃描方式下矩陣鍵盤的處理程序。F1和F2標志已在主函數(shù)前定義。/檢測有無鍵按下函數(shù)UCHARCHECKKEY/檢測有無鍵按下函數(shù),有返回0XFF,無返回0UCHARIXBYTE0X7F000X00IXBYTE0X7F02IIIFI0X0FRETURN0ELSERETURN0XFF/鍵盤掃描函數(shù)UCHARKEYSCAN/鍵盤掃描函數(shù),如果有鍵按下,則返回該鍵的編碼,如果無鍵按下,則返回0XFFUCHARSCANCODE/定義列掃描碼變量UCHARCODEVALUE/定義返回的編碼變量UCHARM/定義行首編碼變量UCHARK/定義行檢測碼UCHARI,JIFCHECKKEY0RETURN0XFF/檢測有無鍵按下,無返回0XFFELSEDELAY200/延時IFCHECKKEY0RETURN0XFF/檢測有無鍵按下,無返回0XFFELSESCANCODE0XFEM0X00/列掃描碼,行首碼賦初值FORI0IINCLUDE/定義絕對地址訪問DEFINEUCHARUNSIGNEDCHARDEFINEIN0XBYTE0X0000/定義IN0為通道0的地址STATICUCHARDA
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋買賣協(xié)議合同2026年格式
- 家長會安全課件設(shè)計方案
- 2026年服務器租賃托管合同協(xié)議
- 2026年美容美發(fā)技術(shù)合作合同
- 2026年兒童繪本出版印數(shù)分成合同協(xié)議書
- 2026年直播推廣服務合同
- 2026年投資風險分擔合同
- 2026年品牌營銷策劃服務合同
- 2026年供應鏈金融延期還款合同
- 2026年跨境電商平臺使用合同
- 2025至2030中國細胞存儲行業(yè)調(diào)研及市場前景預測評估報告
- 《中華人民共和國危險化學品安全法》解讀
- 水暖施工員考試及答案
- 2025年省級行業(yè)企業(yè)職業(yè)技能競賽(老人能力評估師)歷年參考題庫含答案
- 2025年淮北市相山區(qū)公開招考村(社區(qū))后備干部66人備考題庫及一套完整答案詳解
- 黑龍江省哈爾濱市第九中學校2024-2025學年高二上學期期末考試生物試題 含解析
- 國家開放大學電大《國際私法》形考任務1-5題庫及答案
- 樁基礎(chǔ)負摩阻計算表格(自動版)
- T-CCMI 20-2022 乘用車發(fā)動機曲軸鍛造毛坯件 技術(shù)條件
- 九年級上英語復習句型轉(zhuǎn)換
- 茶藝師培訓教材ppt課件
評論
0/150
提交評論