單片機(jī)課后習(xí)題答案_第1頁
單片機(jī)課后習(xí)題答案_第2頁
單片機(jī)課后習(xí)題答案_第3頁
單片機(jī)課后習(xí)題答案_第4頁
單片機(jī)課后習(xí)題答案_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

9574-章1緒論1.第一臺(tái)計(jì)算機(jī)的問世有何意義?答:第一臺(tái)電子數(shù)字計(jì)算機(jī)ENIAC問世,標(biāo)志著計(jì)算機(jī)時(shí)代的到來。與現(xiàn)代的計(jì)算機(jī)相比,ENIAC有許多不足,但它的問世開創(chuàng)了計(jì)算機(jī)科學(xué)技術(shù)的新紀(jì)元,對(duì)人類的生產(chǎn)和生活方式產(chǎn)生了巨大的影響。2.計(jì)算機(jī)由哪幾部分組成?答:由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備組成,運(yùn)算器與控制器合稱為CPU。3.微型計(jì)算機(jī)由哪幾部分構(gòu)成?答:微型計(jì)算機(jī)由微處理器、存儲(chǔ)器和I/O接口電路構(gòu)成。各部分通過地址總線(AB)、數(shù)據(jù)總線(DB)和控制總線(CB)相連。4.微處理器與微型計(jì)算機(jī)有何區(qū)別?答:微處理器集成了運(yùn)算器和控制器(即CPU);而微型計(jì)算機(jī)包含微處理器、存儲(chǔ)器和I/O接口電路等。5.什么叫單片機(jī)?其主要特點(diǎn)有哪些?答:在一片集成電路芯片上集成微處理器、存儲(chǔ)器、I/O接口電路,從而構(gòu)成了單芯片微型計(jì)算機(jī),即單片機(jī)。單片機(jī)主要特點(diǎn)有:控制性能和可靠性高;體積小、價(jià)格低、易于產(chǎn)品化;具有良好的性能價(jià)格比。。6.微型計(jì)算機(jī)有哪些應(yīng)用形式?各適于什么場合?答:微型計(jì)算機(jī)有三種應(yīng)用形式:多板機(jī)(系統(tǒng)機(jī))、單板機(jī)和單片機(jī)。多板機(jī),通常作為辦公或家庭的事務(wù)處理及科學(xué)計(jì)算,屬于通用計(jì)算機(jī)。單板機(jī),I/O設(shè)備簡單,軟件資源少,使用不方便。早期主要用于微型計(jì)算機(jī)原理的教學(xué)及簡單的測控系統(tǒng),現(xiàn)在已很少使用。單片機(jī),單片機(jī)體積小、價(jià)格低、可靠性高,其非凡的嵌入式應(yīng)用形態(tài)對(duì)于滿足嵌入式應(yīng)用需求具有獨(dú)特的優(yōu)勢。目前,單片機(jī)應(yīng)用技術(shù)已經(jīng)成為電子應(yīng)用系統(tǒng)設(shè)計(jì)的最為常用技術(shù)手段。7.當(dāng)前單片機(jī)的主要產(chǎn)品有哪些?各有何特點(diǎn)?答:多年來的應(yīng)用實(shí)踐已經(jīng)證明,80C51的系統(tǒng)結(jié)構(gòu)合理、技術(shù)成熟。因此,許多單片機(jī)芯片生產(chǎn)廠商傾力于提高80C51單片機(jī)產(chǎn)品的綜合功能,從而形成了80C51的主流產(chǎn)品地位,近年來推出的與80C51兼容的主要產(chǎn)品有:ATMEL公司融入Flash存儲(chǔ)器技術(shù)推出的AT89系列單片機(jī);Philips公司推出的80C51、80C552系列高性能單片機(jī);華邦公司推出的 W78C51、W77C51系列高速低價(jià)單片機(jī);ADI公司推出的ADμC8xx系列高精度ADC單片機(jī);LG公司推出的GMS90/97系列低壓高速單片機(jī);Maxim公司推出的DS89C420高速(50MIPS)單片機(jī);Cygnal公司推出的C8051F系列高速SOC單片機(jī)等。8.簡述單片機(jī)的開發(fā)過程。答:系統(tǒng)需求分析,硬件方案設(shè)計(jì),軟件編程,仿真調(diào)試,實(shí)際運(yùn)行。9.單片機(jī)應(yīng)用系統(tǒng)開發(fā)方法有哪些新方法?答:在系統(tǒng)編程(ISP)技術(shù),在應(yīng)用編程(IAP)技術(shù)。章280C51的結(jié)構(gòu)和原理1.80C51單片機(jī)在功能上、工藝上、程序存儲(chǔ)器的配置上有哪些種類?答:功能上分為基本型和增強(qiáng)型;工藝上分為HMOS工藝和CHMOS工藝;在片內(nèi)程序存儲(chǔ)器的配置上有掩膜ROM、EPROM和Flash、無片內(nèi)程序存儲(chǔ)器形式。2.80C51單片機(jī)的存儲(chǔ)器的組織采用何種結(jié)構(gòu)?存儲(chǔ)器地址空間如何劃分?各地址空間的地址范圍和容量如何?在使用上有何特點(diǎn)?答:采用哈佛結(jié)構(gòu),在物理上設(shè)計(jì)成程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間;80C51基本型單片機(jī)片內(nèi)程序存儲(chǔ)器為4KB,地址范圍是0000H-0FFFH,用于存放程序或常數(shù);片內(nèi)數(shù)據(jù)存儲(chǔ)器為128字節(jié)RAM,地址范圍是00H-7FH,用于存放運(yùn)算的中間結(jié)果、暫存數(shù)據(jù)和數(shù)據(jù)緩沖;另外在80H-FFH還配有21個(gè)SFR。3.80C51單片機(jī)的P0~P3口在結(jié)構(gòu)上有何不同?在使用上有何特點(diǎn)?答:作為通用I/O口時(shí),P0、P1、P2和P3都是準(zhǔn)雙向口。P0可以作為地址/數(shù)據(jù)總線,此時(shí)是一個(gè)真正的雙向口;P2口可以作為地址線的高8位;P3口是雙功能口,每條口線還具有不同的第二功能。另外,P0口的驅(qū)動(dòng)能力為8個(gè)TTL負(fù)載,而其它口僅可驅(qū)動(dòng)4個(gè)TTL負(fù)載。4.如果80C51單片機(jī)晶振頻率分別為6MHz、11.0592MHz、12MHz時(shí),機(jī)器周期分別為多少?答:MOV@R1,40HMOV40H,AMOVR1,#7FH答:(R1)=7FH(A)=60H(30H)=08H(40H)=60H12.若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20H)=0FH,試寫出下列各指令獨(dú)立執(zhí)行后有關(guān)寄存器和存儲(chǔ)單元的內(nèi)容?若該指令影響標(biāo)志位,試指出CY、AC、和OV的值。(1)MOVA,@R0(2)ANL40H,#0FH(3)ADDA,R4(4)SWAPA(5)DEC@R1(6)XCHDA,@R1答:(1)(A)=2CH(2)(40H)=0CH(3)(A)=22H,(CY)=1,(AC)=1,(OV)=0(4)(A)=8EH(5)(20H)=0EH,P=1(6)(A)=EFH,(20)=08H13.若(50H)=40H,試寫出執(zhí)行以下程序段后累加器A、寄存器R0及內(nèi)部RAM的40H、41H、42H單元中的內(nèi)容各為多少?MOVA,50HMOVR0,AMOVA,#00HMOV@R0,AMOVA,#3BHMOV41H,AMOV42H,41H答:(A)=3BH,(R0)=40H,(40H)=00H,(41H)=3BH,(42H)=3BH。14.試用位操作指令實(shí)現(xiàn)下列邏輯操作。要求不得改變未涉及的位的內(nèi)容。(1)使ACC.0置位;(2)清除累加器高4位;(3)清除ACC.3,ACC.4,ACC.5,ACC.6。答:(1)SETBACC.0(2)ANLA,#0FH(3)ANLA,#87H15.試編寫程序,將內(nèi)部RAM的20H、21H、22H三個(gè)連續(xù)單元的內(nèi)容依次存入2FH、2EH和2DH單元。答:MOV2FH,20HMOV2EH,21HMOV2DH,22H16.試編寫程序,完成兩個(gè)16位數(shù)的減法:7F4DH-2B4EH,結(jié)果存入內(nèi)部RAM的30H和31H單元,30H單元存差的高8位,31H單元存差的低8位。(注意:此題與書上的題要求不一樣,書中要求31H單元存差的高8位,30H單元存差的低8位)答:CLRCYMOV30H,#7FHMOV31H,#4DHMOVR0,#31HMOVA,@R0SUBBA,#4EMOV@R0,A;保存低字節(jié)相減結(jié)果DECR0MOVA,@R0SUBBA,#2BHMOV@R0,A;保存高字節(jié)相減結(jié)果17.試編寫程序,將R1中的低4位數(shù)與R2中的高4位數(shù)合并成一個(gè)8位數(shù),并將其存放在R1中。答:MOVA,R2ANLA,#0F0HORLR1,A18.試編寫程序,將內(nèi)部RAM的20H、21H單元的兩個(gè)無符號(hào)數(shù)相乘,結(jié)果存放在R2、R3中,R2中存放高8位,R3中存放低8位。答:MOVA,20HMOVB,21HMULABMOVR3,AMOVR2,B19.若(CY)=1,(P1)=10100011B,(P3)=01101100B。試指出執(zhí)行下列程序段后,CY、P1口及P3口內(nèi)容的變化情況。MOVP1.3,CMOVP1.4,CMOVC,P1.6MOVP3.6,CMOVC,P1.0MOVP3.4,C答:(CY)=1,(P1)=10111011B,(P3)=00111100B章480C51的匯編語言程序設(shè)計(jì)1.80C答:匯編語言結(jié)構(gòu)緊湊、靈活,匯編成的目標(biāo)程序效率高,具有占存儲(chǔ)空間少、運(yùn)行速度快、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn)。它是面向機(jī)器的語言,對(duì)于單片機(jī)硬件的操作直接、方便,有利于初學(xué)者對(duì)單片機(jī)結(jié)構(gòu)的認(rèn)知。但它與高級(jí)語言相比移植性不好、編程復(fù)雜、對(duì)編程人員的基礎(chǔ)要求高。2.利用80C答:一、任務(wù)分析首先,要對(duì)單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)目標(biāo)進(jìn)行深入分析,明確系統(tǒng)設(shè)計(jì)任務(wù):功能要求和技術(shù)指標(biāo)。然后對(duì)系統(tǒng)的運(yùn)行環(huán)境進(jìn)行調(diào)研。這是應(yīng)用系統(tǒng)程序設(shè)計(jì)的基礎(chǔ)和條件。二、算法設(shè)計(jì)經(jīng)過任務(wù)分析和環(huán)境調(diào)研后,已經(jīng)明確的功能要求和技術(shù)指標(biāo)可以用數(shù)學(xué)方法(或模型)來描述,進(jìn)而把一個(gè)實(shí)際的系統(tǒng)要求轉(zhuǎn)化成由計(jì)算機(jī)進(jìn)行處理的算法。并對(duì)各種算法進(jìn)行分析比較,并進(jìn)行合理的優(yōu)化。三、流程描述程序的總體構(gòu)建。先要確定程序結(jié)構(gòu)和數(shù)據(jù)形式,資源分配和參數(shù)計(jì)算等。然后根據(jù)程序運(yùn)行的過程,規(guī)劃程序執(zhí)行的邏輯順序,用圖形符號(hào)將程序流程繪制在平面圖上。應(yīng)用程序的功能通常可以分為若干部分,用流程圖將具有一定功能的各部分有機(jī)地聯(lián)系起來。流程圖可以分為總流程圖和局部流程圖。總流程圖側(cè)重反映程序的邏輯結(jié)構(gòu)和各程序模塊之間的相互關(guān)系;局部流程圖反映程序模塊的具體實(shí)施細(xì)節(jié)。3.常用的程序結(jié)構(gòu)有哪幾種?特點(diǎn)如何?答:順序程序:無分支、無循環(huán)結(jié)構(gòu)的程序,其執(zhí)行流程是依指令在存儲(chǔ)器中的存放順序進(jìn)行的;分支程序:可以改變程序的執(zhí)行順序;循環(huán)程序:按某種控制規(guī)律重復(fù)執(zhí)行的程序,控制一部分指令重復(fù)執(zhí)行若干次,以便用簡短的程序完成大量的處理任務(wù)。4.子程序調(diào)用時(shí),參數(shù)的傳遞方法有哪幾種?答:利用累加器或寄存器;利用存儲(chǔ)器;利用堆棧。5.什么是偽指令?常用的偽指令功能如何?答:偽指令是匯編程序能夠識(shí)別并對(duì)匯編過程進(jìn)行某種控制的匯編命令。常用的偽指令包括:ORG,功能是向匯編程序說明下面緊接的程序段或數(shù)據(jù)段存放的起始地址;END,功能是結(jié)束匯編;DB,功能是從標(biāo)號(hào)指定的地址單元開始,在程序存儲(chǔ)器中定義字節(jié)數(shù)據(jù);DW,功能是從標(biāo)號(hào)指定的地址單元開始,在程序存儲(chǔ)器中定義字?jǐn)?shù)據(jù)空間;EQU,功能是將表達(dá)式的值或特定的某個(gè)匯編符號(hào)定義為一個(gè)指定的符號(hào)名;BIT,功能是將位地址賦給指定的符號(hào)名。6.設(shè)被加數(shù)存放在內(nèi)部RAM的20H、21H單元,加數(shù)存放在22H、23H單元,若要求和存放在24H、25H中,試編寫出16位無符號(hào)數(shù)相加的程序(采用大端模式存儲(chǔ))。答:程序如下:ORG0000HMOVR0,#21HMOVR1,#23HMOVA,@R0ADDA,@R1MOV25H,ADECR0DECR1MOVA,@R0ADDCA,@R1MOV24H,ASJMP$END7.編寫程序,把外部RAM中1000H~101FH的內(nèi)容傳送到內(nèi)部RAM的30H~4FH中。答:ORG0000HMOVDPTR,#1000HMOVR0,#30HMOVR7,#32LOOP:MOVXA,@DPTRMOV@R0,AINCR0INCDPTRDJNZR7,LOOPRET8.編寫程序,實(shí)現(xiàn)雙字節(jié)無符號(hào)數(shù)加法運(yùn)算,要求(R0R1)+(R6R7)→(60H61H)。答:ORG0000HMOVA,R1ADDA,R7MOV61H,AMOVA,R0ADDCA,R6MOV60H,ASJMP$END9.若80CDELAY:MOVR7,#0F6HLP:MOVR6,#0FAHDJNZR6,$DJNZR7,LPRET答:延時(shí)時(shí)間:2μs*{[1+((1+2*250+2)*246)+2]+2}=0.247486秒(含調(diào)用指令2個(gè)機(jī)器周期)10.在內(nèi)部RAM的30H~37H單元存有一組單字節(jié)無符號(hào)數(shù)。要求找出最大數(shù)存入BIG單元。試編寫程序?qū)崿F(xiàn)。答:ORG0000HBIGDATA2FHONEDATA2AHTWODATA2BHSTART:MOVR7,#7;比較次數(shù)MOVR0,#30HLOOP:MOVA,@R0MOVONE,AINCR0MOVTWO,@R0CLRCSUBBA,@R0JCNEXT;ONE小,TWO大繼續(xù)比下一對(duì)數(shù)MOV@R0,ONE;ONE大放后面(交換)DECR0 MOV@R0,TWO;TWO小放前面INCR0;NEXT:DJNZR7,LOOPMOVBIG,37HSJMP$ END11.編寫程序,把累加器A中的二進(jìn)制數(shù)變換成3位BCD碼,并將百、十、個(gè)位數(shù)分別存放在內(nèi)部RAM的50H、51H、52H中。答:單字節(jié)二進(jìn)制數(shù)轉(zhuǎn)換為壓縮的BCD碼僅需要2個(gè)字節(jié);在將壓縮的BCD碼拆分存于3個(gè)單元。 org0 MOV52H,#0 MOV51H,#0 MOV50H,#0 MOVA,#0FDh LCALLDCDTH SJMP$DCDTH:MOVR7,#8MOVR0,A;暫存于R0LOOP:CLRCMOVA,R0RLCAMOVR0,A MOVR1,#51H;MOVA,@R1;ADDCA,@R1;DAA;MOV@R1,A; DECR1MOVA,@R1ADDCA,@R1DAAMOV@R1,A DJNZR7,LOOP INCR1;50H已是結(jié)果,R1指向51H,51H單元需拆分 MOVA,#00H XCHDA,@R1 MOV52H,A MOVA,@R1 SWAPA MOV@R1,A RET END12.編寫子程序,將R1中的2個(gè)十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼后存放在R3和R4中。答:ORG0 MOVR1,#5BH MOVA,R1ANLA,#0F0HSWAPAACALLASCIIMOVR3,A MOVA,R1ANLA,#0FHACALLASCIIMOVR4,ASJMP$ASCII:PUSHACCCLRCSUBBA,#0AHPOPACCJCLOOPADDA,#07HLOOP:ADDA,#30HRET END13.編寫程序,求內(nèi)部RAM中50H~59H十個(gè)單元內(nèi)容的平均值,并存放在5AH單元。答:ORG0000HMOVR7,#10MOVR0,#50HMOVB,#10CLRCCLRALOOP:ADDCA,@R0INCR0DJNZR7,LOOPDIVABMOV5AH,ASJMP$ END14.如圖4.10所示,編制程序?qū)崿F(xiàn):上電后顯示“P”,有鍵按下時(shí)顯示相應(yīng)的鍵號(hào)“0”~“7答:實(shí)現(xiàn)程序如下:TEMPEQU30H ORG0000H JMPSTART ORG0100HSTART:MOVSP,#5FHMOVP0,#8CH;正序顯示"P" MOVP3,#0FFH;輸入方式 CLRCYNOKEY:MOVA,P3CPLA JZNOKEY;無鍵按下 MOVTEMP,P3;有鍵按下 CALLD10ms MOVA,P3 CJNEA,TEMP,NOKEY ;去抖動(dòng) MOVR2,#0;鍵號(hào)計(jì)數(shù)器復(fù)位 MOVA,TEMP LP:RRCA JNCDONE INCR2 SJMPLPDONE:MOVA,R2 MOVDPTR,#CODE_P0 MOVCA,@A+DPTRMOVP0,A JMPNOKEYD10ms:MOVR5,#10;10MSD1ms:MOVR4,#249DL:NOPNOPDJNZR4,DLDJNZR5,D1msRETCODE_P0:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,90H,88H,83H,0C6H,0A1H,86H,8EHEND 章580C51的中斷系統(tǒng)及定時(shí)/計(jì)數(shù)器1.答:5個(gè)中斷源,分別為外中斷和、T0和T1溢出中斷、串口中斷。電平方式觸發(fā)的外中斷標(biāo)志與引腳信號(hào)一致;邊沿方式觸發(fā)的外中斷響應(yīng)中斷后由硬件自動(dòng)復(fù)位。T0和T1,CPU響應(yīng)中斷時(shí),由硬件自動(dòng)復(fù)位。RI和TI,由硬件置位。必須由軟件復(fù)位。另外,所有能產(chǎn)生中斷的標(biāo)志位均可由軟件置位或復(fù)位。各中斷入口地址:―0003H,T0—000BH,—0013H,T1—001BH,RI和TI—0023H。2.某系統(tǒng)有三個(gè)外部中斷源1、2、3,當(dāng)某一中斷源變低電平時(shí)便要求CPU處理,它們的優(yōu)先處理次序由高到低為3、2、1,處理程序的入口地址分別為2000H、2100H、2200H。試編寫主程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)的入口即可)。答:將3個(gè)中斷信號(hào)經(jīng)電阻線或,接。ORG0000HLJMPMAINORG00013HLJMPZDFZORG0040HMAIN:SETBEASETBEX1SJMP$0RG0200HZDFZ:PUSHPSWPUSHACCJBP1.0,DV0JBP1.1,DV1JBP1.2,DV2INRET:POPACCPOPPSWRETIORG2000HDV0:JMPINRETORG2100HDV1:JMPINRETORG2200HDV2:JMPINRET3.外部中斷源有電平觸發(fā)和邊沿觸發(fā)兩種觸發(fā)方式,這兩種觸發(fā)方式所產(chǎn)生的中斷過程有何不同?怎樣設(shè)定?答:當(dāng)IT0=0時(shí),為電平觸發(fā)方式。電平觸發(fā)方式時(shí),CPU在每個(gè)機(jī)器周期的S5P2采樣引腳電平,當(dāng)采樣到低電平時(shí),置IE0=1向CPU請(qǐng)求中斷;采樣到高電平時(shí),將IE0清0。在電平觸發(fā)方式下,CPU響應(yīng)中斷時(shí),不能自動(dòng)清除IE0標(biāo)志。電平觸發(fā)方式時(shí),外部中斷源的有效低電平必須保持到請(qǐng)求獲得響應(yīng)時(shí)為止,不然就會(huì)漏掉;在中斷服務(wù)結(jié)束之前,中斷源的有效的低電平必須撤除,否則中斷返回之后將再次產(chǎn)生中斷。該方式適合于外部中斷輸入為低電平,且在中斷服務(wù)程序中能清除外部中斷請(qǐng)求源的情況。當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式。邊沿觸發(fā)方式時(shí),CPU在每個(gè)機(jī)器周期的S5P2采樣引腳電平,如果在連續(xù)的兩個(gè)機(jī)器周期檢測到引腳由高電平變?yōu)榈碗娖剑吹谝粋€(gè)周期采樣到=1,第二個(gè)周期采樣到=0,則置IE0=1,產(chǎn)生中斷請(qǐng)求。在邊沿觸發(fā)方式下,CPU響應(yīng)中斷時(shí),能由硬件自動(dòng)清除IE0標(biāo)志。邊沿觸發(fā)方式時(shí),在相繼兩次采樣中,先采樣到外部中斷輸入為高電平,下一個(gè)周期采樣到為低電平,則在IE0或IE1中將鎖存一個(gè)邏輯1。若CPU暫時(shí)不能響應(yīng),中斷申請(qǐng)標(biāo)志也不會(huì)丟失,直到CPU響應(yīng)此中斷時(shí)才清0。另外,為了保證下降沿能夠被可靠地采樣到,和引腳上的負(fù)脈沖寬度至少要保持一個(gè)機(jī)器周期(若晶振頻率為12MHz,為1微秒)。邊沿觸發(fā)方式適合于以負(fù)脈沖形式輸入的外部中斷請(qǐng)求。4.定時(shí)/計(jì)數(shù)器工作于定時(shí)和計(jì)數(shù)方式時(shí)有何異同點(diǎn)?答:定時(shí)/計(jì)數(shù)器實(shí)質(zhì)是加1計(jì)數(shù)器。不同點(diǎn):設(shè)置為定時(shí)器模式時(shí),加1計(jì)數(shù)器是對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)(1個(gè)機(jī)器周期等于12個(gè)振蕩周期,即計(jì)數(shù)頻率為晶振頻率的1/12)。計(jì)數(shù)值乘以機(jī)器周期就是定時(shí)時(shí)間。設(shè)置為計(jì)數(shù)器模式時(shí),外部事件計(jì)數(shù)脈沖由T0或T1引腳輸入到計(jì)數(shù)器。在每個(gè)機(jī)器周期的S5P2期間采樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時(shí),則計(jì)數(shù)器加1,更新的計(jì)數(shù)值在下一個(gè)機(jī)器周期的S3P1期間裝入計(jì)數(shù)器。相同點(diǎn):它們的工作原理相同,它們都有4種工作方式,由TMOD中的M1M0設(shè)定,即方式0:13位計(jì)數(shù)器;方式1:16位計(jì)數(shù)器;方式2:具有自動(dòng)重裝初值功能的8位計(jì)數(shù)器;方式3:T0分為兩個(gè)獨(dú)立的8位計(jì)數(shù)器,T1停止工作。5.定時(shí)/計(jì)數(shù)器的4種工作方式各有何特點(diǎn)?答:方式0位13位計(jì)數(shù)器,由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時(shí)向TH0進(jìn)位,TH0溢出時(shí),置位TCON中的TF0標(biāo)志,向CPU發(fā)出中斷請(qǐng)求。計(jì)數(shù)初值計(jì)算的公式為:X=213-N方式1的計(jì)數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計(jì)數(shù)器。計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:X=216-N方式2為自動(dòng)重裝初值的8位計(jì)數(shù)方式。TH0為8位初值寄存器。當(dāng)TL0計(jì)滿溢出時(shí),由硬件使TF0置1,向CPU發(fā)出中斷請(qǐng)求,并將TH0中的計(jì)數(shù)初值自動(dòng)送入TL0。TL0從初值重新進(jìn)行加1計(jì)數(shù)。周而復(fù)始,直至TR0=0才會(huì)停止。計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:X=28-N方式3只適用于定時(shí)/計(jì)數(shù)器T0,定時(shí)器T1處于方式3時(shí)相當(dāng)于TR1=0,停止計(jì)數(shù)。方式3時(shí),T0分成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0,TL0使用T0的所有控制位。當(dāng)TL0計(jì)數(shù)溢出時(shí),由硬件使TF0置1,向CPU發(fā)出中斷請(qǐng)求。而TH0固定為定時(shí)方式(不能進(jìn)行外部計(jì)數(shù)),并且借用了T1的控制位TR1、TF1。因此,TH0的啟、停受TR1控制,TH0的溢出將置位TF1。6.要求定時(shí)/計(jì)數(shù)器的運(yùn)行控制完全由TR1、TR0確定和完全由、高低電平控制時(shí),其初始化編程應(yīng)作何處理?答:TMOD中GATE的值不同:完全由TR1、TR0確定時(shí)GATE為0;完全由、高低電平控制時(shí)GATE為1。7.當(dāng)定時(shí)/計(jì)數(shù)器T0用作方式3時(shí),定時(shí)/計(jì)數(shù)器T1可以工作在何種方式下?如何控制T1的開啟和關(guān)閉?答:T0用作方式3時(shí),T1可以工作在方式0、1和2。T1的開啟由TR1控制,即TR1=1時(shí),T1開始工作;TR1=0時(shí)或者定時(shí)/計(jì)數(shù)器工作在方式3時(shí),T1停止工作。8.利用定時(shí)/計(jì)數(shù)器T0從P1.0輸出周期為1s,脈寬為20ms的正脈沖信號(hào),晶振頻率為12MHz。試設(shè)計(jì)程序。答:采用定時(shí)20ms,然后再計(jì)數(shù)1、49次的方法實(shí)現(xiàn)。a、T0工作在定時(shí)方式1時(shí),控制字TMOD配置:M1M0=01,GATE=0,C/=0,可取方式控制字為01H;b、計(jì)算計(jì)數(shù)初值X:晶振為12MHz,所以機(jī)器周期Tcy為1。N=t/Tcy=20×10-3/1×10-6=20000X=216-N=65536-20000=45536=4E20H即應(yīng)將4EH送入TH1中,20H送入TL1中。c、實(shí)現(xiàn)程序如下:ORG0000HAJMPMAIN;跳轉(zhuǎn)到主程序ORG0030HMAIN:MOVTMOD,#01H;設(shè)T1工作于方式2MOVTH0,#4EH;裝入循環(huán)計(jì)數(shù)初值MOVTL0,#20H;首次計(jì)數(shù)值LP0:SETBP1.0ACALLNT0CLRP1.0MOVR7,#49;計(jì)數(shù)49次LP1:ACALLNT0DJNZR7,LP1AJMPLP0NT0:MOVTH0,#4EHMOVTL0,#20HSETBTR0 JNBTF0,$ CLRTR0 CLRTF0RETEND9.要求從P1.1引腳輸出1000Hz方波,晶振頻率為12MHz。試設(shè)計(jì)程序。答:采用T0實(shí)現(xiàn)a、T0工作在定時(shí)方式1時(shí),控制字TMOD配置:M1M0=01,GATE=0,C/=0,可取方式控制字為01H;b、計(jì)算計(jì)數(shù)初值X:晶振為12MHz,所以機(jī)器周期Tcy為1。1/1000=1×10-3N=t/Tcy=0.5×10-3/1×10-6=500X=216-N=65536-500=65036=FE0CH即應(yīng)將FEH送入TH0中,0CH送入TL0中。c、實(shí)現(xiàn)程序如下:ORG0000HAJMPMAIN;跳轉(zhuǎn)到主程序ORG000BH;T0的中斷入口地址LJMPDVT0ORG0030HMAIN:MOVTMOD,#01H;設(shè)T0工作于方式2MOVTH0,#0FEH;裝入循環(huán)計(jì)數(shù)初值MOVTL0,#0CH;首次計(jì)數(shù)值SETBET0;T0開中斷SETBEA;CPU開中斷SETBTR0;啟動(dòng)T0SJMP$;等待中斷DVT0:CPLP1.1MOVTH0,#0FEHMOVTL0,#0CHSETBTR0RETIEND10.試用定時(shí)/計(jì)數(shù)器T1對(duì)外部事件計(jì)數(shù)。要求每計(jì)數(shù)100,就將T1改成定時(shí)方式,控制P1.7輸出一個(gè)脈寬為10ms的正脈沖,然后又轉(zhuǎn)為計(jì)數(shù)方式,如此反復(fù)循環(huán)。設(shè)晶振頻率為12MHz。答:a、T1工作在計(jì)數(shù)方式2時(shí),控制字TMOD配置:M1M0=10,GATE=0,C/=1,可取方式控制字為60H;T1工作在定時(shí)方式1時(shí),控制字TMOD配置:M1M0=01,GATE=0,C/=0,可取方式控制字為10H;b、計(jì)算初值X:定時(shí)10ms時(shí):晶振為12MHz,所以機(jī)器周期Tcy為1。N=t/Tcy=10×10-3/1×10-6=10000X=216-N=65536-10000=55536=D8F0H即應(yīng)將D8H送入TH1中,F(xiàn)0H送入TL1中。計(jì)數(shù)100時(shí):N=100X=28-N=256-100=156=9CHc、實(shí)現(xiàn)程序如下:ORG0000HAJMPMAIN;跳轉(zhuǎn)到主程序ORG001BH;T1的中斷入口地址LJMPDVT1ORG0030HMAIN:MOVTMOD,#60H;T1工作于計(jì)數(shù)方式2MOVTH1,#9CH;裝入計(jì)數(shù)初值MOVTL1,#9CH;CLRP1.7SETBET1;T1開中斷SETBEA;CPU開中斷SETBTR1;啟動(dòng)T1SJMP$;等待中斷DVT1:SETBP1.7CLRET1CLRTR1 MOVTMOD,#10H;T1工作于定時(shí)方式1MOVTH1,#0D8H;裝初值MOVTL1,#0F0HSETBTR1 JNBTF1,$;查詢等待10ms CLRTF1CLRTR1CLRP1.7MOVTMOD,#60H;T1工作于計(jì)數(shù)方式2MOVTH1,#9CH;裝初值MOVTL1,#9CH;SETBET1;T1開中斷 SETBTR1;啟動(dòng)T1RETIEND11.利用定時(shí)/計(jì)數(shù)器T0產(chǎn)生定時(shí)時(shí)鐘,由P1口控制8個(gè)指示燈。編一個(gè)程序,使8個(gè)指示燈依次閃動(dòng),閃動(dòng)頻率為1次/秒(即,亮1秒后熄滅并點(diǎn)亮下一個(gè),)。答:采用定時(shí)20ms,計(jì)數(shù)50次實(shí)現(xiàn)1秒定時(shí)。編制1秒延時(shí)子程序,由主程序調(diào)用。a、T0工作在定時(shí)方式1時(shí),控制字TMOD配置:M1M0=01,GATE=0,C/=0,可取方式控制字為01H;b、計(jì)算計(jì)數(shù)初值X:晶振為12MHz,所以機(jī)器周期Tcy為1。N=t/Tcy=20×10-3/1×10-6=20000X=216-N=65536-20000=45536=4E20H即應(yīng)將4EH送入TH1中,20H送入TL1中。c、實(shí)現(xiàn)程序如下:ORG0000HAJMPMAIN;跳轉(zhuǎn)到主程序ORG0030HMAIN:CLRCYMOVA,#01HLP0:MOVP1,ACALLD1SECRLAAJMPLP0D1SEC:MOVR7,#50;計(jì)數(shù)50次MOVTMOD,#01HDL:MOVTH0,#4EHMOVTL0,#20HSETBTR0 JNBTF0,$ CLRTR0 CLRTF0DJNZR7,DLRETEND章680C51的串行口1.80C答:四種工作方式,由SCON中的SM0、SM1進(jìn)行定義:方式0:同步移位寄存器的輸入輸出方式,主要用于擴(kuò)展并行輸入或輸出口,波特率固定。方式1:10位數(shù)據(jù)的異步通信口,波特率可變。方式2:11位數(shù)據(jù)的異步通信口,波特率固定。方式3:11位數(shù)據(jù)的異步通信口,波特率可變。2.串行通信的接口標(biāo)準(zhǔn)有那幾種?答:RS-232C接口、RS-422A接口、RS-485接口3.在串行通信中通信速率與傳輸距離之間的關(guān)系如何?答:最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每0.3m(約1ft)有50PF電容的非平衡屏蔽雙絞線時(shí),傳輸距離隨傳輸速率的增加而減小。當(dāng)波特率超過1000bps時(shí),最大傳輸距離將迅速下降。4.在利用RS-422/RS-485通信的過程如果通信距離(波特率固定)過長,應(yīng)如何處理?答:在波特率一定的情況下,帶負(fù)載數(shù)的多少,與信號(hào)能傳輸?shù)淖畲缶嚯x是直接相關(guān)的。在總線允許的范圍內(nèi),帶負(fù)載數(shù)越多,信號(hào)能傳輸?shù)木嚯x就越小;帶負(fù)載數(shù)越少,信號(hào)能傳輸?shù)木嚯x就越遠(yuǎn)。故應(yīng)減小通信距離或減少負(fù)載數(shù)量。5.利用單片機(jī)串行口擴(kuò)展并行輸入接口電路如圖所示。試編寫程序完成將SW1~SW8的狀態(tài)反應(yīng)在P0口所接的LED上(如SW1閉合時(shí)L7應(yīng)點(diǎn)亮)。答:電路圖如下:ORG0000HMOVSCON,#10HLOOP:CLRP1.7NOPNOPNOPSETBP1.7CLRRIJNBRI,$MOVA,SUBFSJMPLOOPEND6.利用單片機(jī)串行口擴(kuò)展并行輸出接口電路如圖所示。試編寫程序完成將SW1~SW8的狀態(tài)反應(yīng)在移位寄存器74LS164所接的LED上(如SW1閉合時(shí)L0應(yīng)點(diǎn)亮)。答:電路圖如下:ORG0000HMOVSCON,#00HMOVP1,#0FFHLOOP:MOVA,P1MOVSUBF,AJNBTI,$CLRTISJMPLOOPEND章780C51單片機(jī)的系統(tǒng)擴(kuò)展1.以80C31為主機(jī),用2片27C256擴(kuò)展64K答:2.以80C31為主機(jī),用1片27C512擴(kuò)展64K答:3.以80C31為主機(jī),用1片27C256擴(kuò)展32KRA答:4.當(dāng)單片機(jī)應(yīng)用系統(tǒng)中數(shù)據(jù)存儲(chǔ)器RAM地址和程序存儲(chǔ)器EPROM地址重疊時(shí),它們內(nèi)容的讀取是否會(huì)發(fā)生沖突,為什么?答:不會(huì)。由于80C51對(duì)ROM的讀操作由PSEN控制,指令用MOVC類;對(duì)RAM讀操作用RD控制,指令用MOVX。所以,盡管ROM與RAM的邏輯地址是重疊的,它們內(nèi)容的讀取也不會(huì)發(fā)生沖突。5.根據(jù)圖7.14電路,編程完成對(duì)81C55的操作:a、讀81C55的80H單元。b、將立即數(shù)88H寫入81C55的30H單元。答:a、MOVDPTR,#7E80HMOVXA,@DPTRb、MOVA,#88HMOVDPTR,#7E30HMOVXA,@DPTR6.I2C總線的特點(diǎn)是什么?答:a、二線制傳輸。器件引腳少,器件間連接簡單,電路板體積減小,可靠性提高。b、傳輸速率高標(biāo)準(zhǔn)模式傳輸速率為100Kb/s,快速模式為400Kb/s,高速模式為3.4Mb/s。c、支持主/從和多主兩種工作方式7、I2C答:SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號(hào);SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號(hào)。起始和終止信號(hào)如圖所示。8、I2C答:在主機(jī)發(fā)出起始信號(hào)后要再傳輸1個(gè)控制字節(jié):7位從器件地址,1位傳輸方向控制位(用“0”表示主機(jī)發(fā)送數(shù)據(jù),“1”表示主機(jī)接收數(shù)據(jù))。9、具備I2C總線接口的E2答:典型產(chǎn)品如ATMEL公司的AT24C系列:型號(hào)容量AT24C01AAT24C02 256AT24C04 512AT24C08AAT24C16AAT24C32AAT24C64AAT24C128B 16KAT24C256B 32KAT24C512B 64K10、AT24C系列芯片的讀寫格式如何?答:a、寫操作過程對(duì)AT24C02寫入時(shí),單片機(jī)發(fā)出起始信號(hào)之后再發(fā)送的是控制字節(jié),然后釋放SDA線并在SCL線上產(chǎn)生第9個(gè)時(shí)鐘信號(hào)。被選中的存儲(chǔ)器器件在確認(rèn)是自己的地址后,在SDA線上產(chǎn)生一個(gè)應(yīng)答信號(hào),單片機(jī)收到應(yīng)答后就可以傳送數(shù)據(jù)了。傳送數(shù)據(jù)時(shí),單片機(jī)首先發(fā)送一個(gè)字節(jié)的預(yù)寫入存儲(chǔ)單元的首地址,收到正確的應(yīng)答后,單片機(jī)就逐個(gè)發(fā)送各數(shù)據(jù)字節(jié),但每發(fā)送一個(gè)字節(jié)后都要等待應(yīng)答。單片機(jī)發(fā)出停止信號(hào)P后,啟動(dòng)AT24C02的內(nèi)部寫周期,完成數(shù)據(jù)寫入工作(約10ms內(nèi)結(jié)束)。AT24C02片內(nèi)地址指針在接收到每一個(gè)數(shù)據(jù)字節(jié)后自動(dòng)加1,在芯片的“一次裝載字節(jié)數(shù)”(頁面字節(jié)數(shù))限度內(nèi),只需輸入首地址。裝載字節(jié)數(shù)超過芯片的“一次裝載字節(jié)數(shù)”時(shí),數(shù)據(jù)地址將“上卷”,前面的數(shù)據(jù)將被覆蓋。要寫入的數(shù)據(jù)傳送完后,單片機(jī)應(yīng)發(fā)出終止信號(hào)以結(jié)束寫入操作。寫入n個(gè)字節(jié)數(shù)據(jù)格式如下:b、讀操作過程對(duì)AT24C02讀出時(shí),單片機(jī)也要發(fā)送該器件的控制字節(jié)(“偽寫”),發(fā)送完后釋放SDA線并在SCL線上產(chǎn)生第9個(gè)時(shí)鐘信號(hào),被選中的存儲(chǔ)器在確認(rèn)是自己的地址后,在SDA線上產(chǎn)生一個(gè)應(yīng)答信號(hào)作為響應(yīng)。然后,單片機(jī)再發(fā)送一個(gè)字節(jié)的要讀出器件的存儲(chǔ)區(qū)的首地址,收到器件的應(yīng)答后,單片機(jī)要重復(fù)一次起始信號(hào)并發(fā)出器件地址和讀方向位(“1”),收到器件應(yīng)答后就可以讀出數(shù)據(jù)字節(jié),每讀出一個(gè)字節(jié),單片機(jī)都要回復(fù)應(yīng)答信號(hào)。當(dāng)最后一個(gè)字節(jié)數(shù)據(jù)讀完后,單片機(jī)應(yīng)返回以“非應(yīng)答”(高電平),并發(fā)出終止信號(hào)以結(jié)束讀出操作。讀出n個(gè)字節(jié)的數(shù)據(jù)格式如下圖所示:章880C51單片機(jī)的模擬量接口1.D/A與A/D轉(zhuǎn)換器的主要功能是什么?答:D/A轉(zhuǎn)換器:將數(shù)字量轉(zhuǎn)換為模擬量。A/D轉(zhuǎn)換器:將模擬量轉(zhuǎn)換為數(shù)字量。2.DAC0832采用輸入寄存器和DAC寄存器二級(jí)緩沖有何優(yōu)點(diǎn)?答:可以使多路通道同步輸出。3.試根據(jù)圖8.3的接口電路編制程序,實(shí)現(xiàn)產(chǎn)生正向的鋸齒波。答:設(shè)DATA1和DATA2為鋸齒波的最低和最高值,有:START:MOVDPTR,#7FFFHMOVR7,#DATA1STEP1:MOVA,R7MOVX@DPTR,AINCR7CJNER7,#DATA2,STEP1JMPSTART4.根據(jù)圖8.6所示的接口電路,若要從該A/D轉(zhuǎn)換器的通道1采集數(shù)據(jù),每隔10ms讀入4個(gè)數(shù)據(jù),并將數(shù)據(jù)存入地址為30H~33H的內(nèi)部數(shù)據(jù)存儲(chǔ)器中。試設(shè)計(jì)該程序。答:ORG0JMPMAINORG0013HJMPINT1ORG0040HMAIN:MOVSP,#5FHMOVDPTR,#7FF9HSETBIT1SETBEX1SETBEALP1:MOVR0,#30HMOVR7,#4LP2:MOVX@DPTR,ASJMP$DJNZR7,LP2CALLD10msSJMPLP1D10ms:MOVR5,#10D1ms:MOVR4,#249DL:NOPNOPDJNZR4,DLDJNZR5,D1msRETORG0300HINT1:MOVXA,@DPTRMOV@R0,ARETI章980C51單片機(jī)C語言程序設(shè)計(jì)1.C51應(yīng)用程序具有怎樣的結(jié)構(gòu)?答:C51程序由一個(gè)或多個(gè)函數(shù)構(gòu)成,其中至少應(yīng)包含一個(gè)主函數(shù)main。程序從主函數(shù)開始執(zhí)行,調(diào)用其它函數(shù)后又返回主函數(shù),被調(diào)用函數(shù)如果位于主調(diào)函數(shù)前面,可以直接調(diào)用,否則應(yīng)先說明后調(diào)用。被調(diào)用函數(shù)可以是用戶自編的函數(shù),或是C51編譯器提供的庫函數(shù)。2.C51支持的數(shù)據(jù)類型有哪些?答:字符型、整型、長整型、浮點(diǎn)型、位型、訪問SFR。3.C51支持的存儲(chǔ)器類型有哪些?與單片機(jī)存儲(chǔ)器有何對(duì)應(yīng)關(guān)系?答:見表9.2所示。4.C51有哪幾種編譯模式?每種編譯模式的特點(diǎn)如何?答:SMALL:小模式。變量默認(rèn)在片內(nèi)RAM。空間小,速度塊;COMPACT:緊湊模式。變量默認(rèn)在片外RAM的頁(256字節(jié),頁號(hào)由P2口決定);LARGE:大模式。變量默認(rèn)在片外RAM的64KB范圍。空間大,速度慢。5、中斷函數(shù)是如何定義的?各種選項(xiàng)的意義如何?答:interruptn用于定義中斷函數(shù),n為中斷號(hào),可以為0~31,通過中斷號(hào)可以決定中斷服務(wù)程序的入口地址。常用的中斷源對(duì)應(yīng)的中斷號(hào)中斷源外中斷0定時(shí)器0外中斷1定時(shí)器1串行口中斷號(hào)012346、C51應(yīng)用程序的參數(shù)傳遞有哪些方式?特點(diǎn)如何?答:參數(shù)傳遞可以采用寄存器、固定存儲(chǔ)器位置方式。寄存器傳遞方式最多可以傳遞3個(gè)參數(shù)。這種參數(shù)傳遞可以產(chǎn)生高效的代碼。當(dāng)無寄存器可用時(shí),參數(shù)可以采用固定的存儲(chǔ)器位置傳遞。在SMALL模式下,參數(shù)傳遞在內(nèi)部RA

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論