單片機習題教材_第1頁
單片機習題教材_第2頁
單片機習題教材_第3頁
單片機習題教材_第4頁
單片機習題教材_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

習題第1章習題幻燈片2第3章習題幻燈片10C第3章習題幻燈片25第6章習題幻燈片36第8章習題幻燈片63第10章習題幻燈片76第12章習題幻燈片98第2章習題幻燈片3第4章習題幻燈片18第5章習題幻燈片28第7章習題幻燈片48第9章習題幻燈片70第11章習題幻燈片88第13章習題幻燈片1013.8051與8751的區(qū)別是

。A.內(nèi)部數(shù)據(jù)存儲單元數(shù)目不同 B.內(nèi)部數(shù)據(jù)存儲器類型不同C.內(nèi)部程序存儲器的類型不同 D.內(nèi)部寄存器的數(shù)目不同8.AT89C51單片機相當于MCS-51系列單片機中的哪一種型號的產(chǎn)品?答:相當于MCS-51系列中的87C51,只不過是AT89C51芯片內(nèi)的4KBFlash存儲器取代了87C51片內(nèi)的4KB的EPROM。第1章習題C3*.內(nèi)部RAM中,位地址為40H、88H的位,該位所在字節(jié)的字節(jié)地址分別為

?;脽羝?15*.若A中的內(nèi)容為63H,那么,P標志位的值為

。解:(A)=01100011,“1”的個數(shù)為偶數(shù),P=0。6*.AT89C51單片機復位后,R4所對應的存儲單元地址為

,因上電時PSW

=

。這時當前的工作寄存器區(qū)是

組工作寄存器區(qū)。第2章習題28H88H004H00H011*.判斷以下有關PC和DPTR的結論

是正確的。A.DPTR是可以訪問的,而PC不能訪問B.它們都是16位寄存器C.在單片機運行時,它們都具有自動加“1”的功能D.DPTR可以分為2個8位的寄存器使用,但PC不能第2章習題A、B、D13*.PC的值是

。A.當前正在執(zhí)行指令的前一條指令的地址;B.當前正在執(zhí)行指令的地址;C.當前正在執(zhí)行指令的下一條指令的地址;D.控制器中指令寄存器的地址。第2章習題C15.AT89C51單片機的片內(nèi)都集成了哪些功能部件?各個功能部件的最主要的功能是什么?(1).1個微處理器(CPU);(2).128個數(shù)據(jù)存儲器(RAM)單元;(3).4KBFlash程序存儲器;(4).4個8位可編程并行I/O口(P0口、P1口、P2口、P3口);(5).1個全雙工串行口;(6).2個16位定時器/計數(shù)器;(7).一個中斷系統(tǒng),5個中斷源,2個優(yōu)先級;(8).21個特殊功能寄存器(SFR)。第2章習題1.在AT89C51單片機中,若采用6MHz晶振,一個機器周期為

。解:1個機器周期4.片內(nèi)字節(jié)地址為2AH單元的最低位的位地址是

;片內(nèi)字節(jié)地址為88H單元的最低位的位地址是

?;脽羝?3第2章習題2μs50H88H8.通過堆棧操作實現(xiàn)子程序調用,首先要把

的內(nèi)容入棧,以進行斷點保護。調用返回時,再進行出棧,把保護的斷點送回到

。10.判斷下列

項說法是正確的。A.AT89C51單片機的CPU是由RAM和EPROM組成的B.區(qū)分片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠的方法是看其位于地址范圍的低端還是高端C.在AT89C51單片機中,為使準雙向的I/O口工作在輸入方式,必須保證它被事先預置為1D.PC可以看成是程序存儲器的地址指針第2章習題PCPCC、D18.當AT89C51單片機運行出錯或程序陷入死循環(huán)時,如何擺脫困境?答:按下復位按鈕。第2章習題5*.在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令中寄存器的內(nèi)容不是操作數(shù),而是操作數(shù)的

。第3章習題地址6*.已知程序執(zhí)行前有(A)

=

02H,(SP)

=

52H,(51H)

=

FFH,(52H)

=

FFH。下述程序執(zhí)行后,(A)

=

,(SP)

=

,(51H)

=

,(52H)

=

,(PC)

=

。POP DPH ;(SP)=51HPOP DPL ;(SP)=50HMOV DPTR,#4000H;(DPTR)=4000HRL A ;(A)=04HMOV B,A ;(B)=04HMOVC A,@A+DPTR;(A)=30HPUSH Acc;(SP)=51H,(51H)=30H第3章習題MOV A,B ;(A)=04HINC A ;(A)=05HMOVC A,@A+DPTR ;(A)=50HPUSH Acc;(SP)=52H,(52H)=50HRET ;(SP)=50H,(PC)=5030HORG 4000HDB 10H,80H,30H,50H,30H,50H50H50H50H30H5030H7*.假定(A)

=

83H,(R0)

=

17H,(17H)

=

34H,執(zhí)行以下指令后,(A)

=

。ANL A,#17HORL 17H,AXRL A,@R0CPL A第3章習題

10000011∧0001011100001100;(A)∧17H→A(A)=03H;(A)∨(17H)→17H

00000011∨0011010011001110(17H)=37H;(A)⊕((R0))→A

00000011⊕0011011111000010(A)=34H;(A)=CBHCBH11*.判斷下列說法

項是正確的。A.立即尋址方式是被操作的數(shù)據(jù)本身就在指令中,而不是它的地址在指令中B.指令周期是執(zhí)行一條指令的時間C.指令中直接給出的操作數(shù)稱為直接尋址第3章習題A、B15*.寫出完成如下要求的指令,但不能改變未涉及位的內(nèi)容。(1).把Acc.3,Acc.4,Acc.5和Acc.6清“0”。(2).把累加器A的中間4位清“0”。(3).使Acc.2和Acc.3置“1”。答:(1).ANLA,#87H ;87H=10000111B

(2).ANLA,#0C3H ;C3H=11000011B

(3).ORLA,#0CH ;0CH=00001100B也可以使用位操作指令,例如用CLRAcc.3對Acc.3清0例如用SETBAcc.2對Acc.2置1第3章習題3.假定累加器A中的內(nèi)容為30H,執(zhí)行指令1000H: MOVCA,@A+PC后,把程序存儲器

單元的內(nèi)容送入累加器A中。解:取出指令后(PC)=1001H,(A)+(PC)=1031H第3章習題1031H12.判斷以下指令的正誤。(1).MOV 28H,@R2 (2).DEC DPTR (3).INC DPTR (4).CLR R0 (5).CPL R5 (6).MOV R0,R1(7).PHSH DPTR (8).MOV F0,C (9).MOV F0,Acc.3 (10).MOVX A,@R1(11).MOV C,30H (12).RLC R0第3章習題14.下列程序段的功能是什么?PUSH AccPUSHBPOP AccPOP B答:A的內(nèi)容與B的內(nèi)容互換。第3章習題第4章習題7*.試編寫程序,查找在內(nèi)部RAM的30H~50H單元中是否有0AAH這一數(shù)據(jù)。若有,則將51H單元置為“01H”;若未找到,則將51H單元置為“00H”。典型錯誤如下:START:MOV R0,#30H ;查找內(nèi)部RAM的首地址

MOV R2,#20H ;查找次數(shù)LOOP: MOV A,@R0 CJNE A,#0AAH,NEXT MOV 51H,#01H ;查到,將51H單元置為“01H”NEXT: INC R0 ;指向下一個單元

DJNZ R2,LOOP ;次數(shù)未到繼續(xù)查

MOV 51H,#00H ;未查到,將51H單元置為“00H”EXIT: RET第4章習題7*.試編寫程序,查找在內(nèi)部RAM的30H~50H單元中是否有0AAH這一數(shù)據(jù)。若有,則將51H單元置為“01H”;若未找到,則將51H單元置為“00H”。參考程序如下:START:MOV R0,#30H ;查找內(nèi)部RAM的首地址

MOV R2,#21H ;查找次數(shù),33個單元LOOP: MOV A,@R0 CJNE A,#0AAH,NEXT MOV 51H,#01H ;查到,將51H單元置為“01H”

RETNEXT: INC R0 ;指向下一個單元

DJNZ R2,LOOP ;次數(shù)未到繼續(xù)查

MOV 51H,#00H ;未查到,將51H單元置為“00H”EXIT: RET第4章習題8*.試編寫程序,查找在內(nèi)部RAM的20H~40H單元中出現(xiàn)“00H”這一數(shù)據(jù)的次數(shù),并將查找到的結果存入41H單元。START:MOV 41H,#0 ;次數(shù)單元清0 MOV R2,#21H ;查找次數(shù),33個單元

MOV R0,#20H ;查找內(nèi)部RAM的首地址LOOP: MOV A,@R0 JNZ NEXT

INC 41H ;=0,次數(shù)加1NEXT: INC R0 ;指向下一個單元

DJNZ R2,LOOP ;次數(shù)未到繼續(xù)查

RET參考程序如下:第4章習題9*.在內(nèi)部RAM的21H單元開始存有一組單字節(jié)無符號數(shù),數(shù)據(jù)長度為20H,編寫程序,要求找出最大數(shù)存入MAX單元。START:MOV R0,#21H ;查找內(nèi)部RAM的首地址

MOV R2,#20H ;查找次數(shù),32個單元

MOV MAX,#0LOOP: MOV A,@R0 CLR C SUBB A,MAX JNC NEXT ;(A)<(MAX),不管

MOV MAX,A ;(A)≥(MAX),(A)→MAXNEXT: INC R0 ;指向下一個單元

DJNZ R2,LOOP ;次數(shù)未到繼續(xù)查

RETJC@R0典型錯誤如下:第4章習題9*.在內(nèi)部RAM的21H單元開始存有一組單字節(jié)無符號數(shù),數(shù)據(jù)長度為20H,編寫程序,要求找出最大數(shù)存入MAX單元。參考程序如下:MAX DATA50H START:MOV R0,#21H ;查找內(nèi)部RAM的首地址

MOV R2,#20H ;查找次數(shù),32個單元

MOV MAX,#0LOOP: MOV A,@R0 CJNE A,MAX,$+3 JC NEXT ;(A)<(MAX),不管

MOV MAX,A ;(A)≥(MAX),(A)→MAXNEXT: INC R0 ;指向下一個單元

DJNZ R2,LOOP ;次數(shù)未到繼續(xù)查

RET第4章習題6.試編寫一個程序,將內(nèi)部RAM中45H單元的高4位清“0”,低4位置“1”。答:參考程序如下:

MOV A,45H ANL A,#0FH ORL A,#0FH MOV 45H,A第4章習題10.若SP=60H,標號LABEL所在的地址為3456H。LCALL指令的地址為2000H,執(zhí)行如下指令2000HLCALLLABEL后,堆棧指針SP和堆棧內(nèi)容發(fā)生了哪些變化?PC的值等于什么?如果將指令LCALL直接換成ACALL是否可以?如果換成ACALL指令,可調用的地址范圍是什么?

(1).SP=SP+1=61H (61H)=PC的低字節(jié)=03H SP=SP+1=62H (62H)=PC的高字節(jié)=20H (2).PC=3456H (3).不可以

(4).2KB=2048Byte0010000000000011,0011

010001010110C第3章習題4*.編寫C51程序,將片外2000H為首址的連續(xù)10個單元的內(nèi)容,讀入到片內(nèi)部40H到49H單元中。解:程序設計思路——采用指針的方法。選用指針px,px指向char型數(shù)據(jù)位于xdata,賦值px=2000H

選用指針px1,px1指向char型數(shù)據(jù)位于data,賦值px1=40H

在for循環(huán)中,*px1=*px;

并且當i++時,px++,px1++,。采用數(shù)組的方法。xdata

ucharbuf1[10]_at_0x2000dataucharbuf2[10]_at_0x40;在for循環(huán)中,buf2[i]=buf1[i]C第3章習題采用指針的方法參考程序如下:#defineucharunsignedcharvoidmain()

//主函數(shù)

{

datauchari;

ucharxdata*px; //指針px,指向char型數(shù)據(jù)位于xdata

uchardata*px1; //指針px1,指向char型數(shù)據(jù)位于data px=0x2000; px1=0x40; for(i=0;i<10;i++,px++,px1++) *px1=*px;

while(1);

}C第3章習題采用數(shù)組的方法參考程序如下:#defineucharunsignedcharxdata

ucharbuf1[10]_at_0x2000; //位于xdata數(shù)組buf1[0]地址2000Hdataucharbuf2[10]_at_0x40; //位于data數(shù)組buf2[0]地址40Hvoidmain()

//主函數(shù)

{

datauchari;

for(i=0;i<10;i++)

buf2[i]=buf1[i];

while(1);

}C第3章習題5*.do-while構成的循環(huán)與do-while循環(huán)的區(qū)別是什么?答:主要區(qū)別是:

while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當while后面表達式的值非0時,才可能執(zhí)行循環(huán)體,因此有可能一次都不執(zhí)行循環(huán)體;在do-while構成的循環(huán)中,總是先執(zhí)行一次循環(huán)體,然后再判斷表達式的值,因此無論如何,循環(huán)體至少要被執(zhí)行一次。C第3章習題4.3*.用單片機設計一個節(jié)日彩燈控制器,P0口接有8個LED作指示燈,P1.0~P1.3接有4個按鍵開關,實現(xiàn)如下功能。按下P1.0鍵—全亮后全滅,交替閃爍;按下P1.1鍵—8只LED全滅;按下P1.2鍵—8只LED由上向下流動點亮;按下P1.3鍵—8只LED由下向上流動點亮;解:程序設計思路(1).只有一個鍵按下才有效,幾個鍵同時按下視為無效,根據(jù)按下鍵的鍵值進行不同的處理。(2).采用軟件延時,實現(xiàn)交替閃爍和流動點亮。P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3+5VAT89C510EH0DH0BH07H0111101111011110C第3章習題參考程序如下:#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharvoiddelay(

j

) //延時函數(shù)datauintj;{datauinti;while(j--)for(i=0;i<250;i++);}C第3章習題voidmain() //主函數(shù){datauchara;

while(1) //不斷循環(huán)

{

a=0; //保證同亮或同滅,交替閃爍

while((P1&0x0f)==0x0e) //P1.0按下處理

{a=~a; //全亮后全滅,交替閃爍

P0=a;

delay(2250); //調用延時函數(shù),交替閃爍延時

}

P0=0xff; //全滅

while((P1&0x0f)==0x0d); //P1.1按下不作處理C第3章習題

a=1; //保證只有一個點亮

while((P1&0x0f)==0x0b) //P1.2按下處理

{a=a<<1; //左移一位

if(a==0)a=1; //全0

P0=~a; //低電平點亮

delay(2250);

} //流動點亮延時

while((P1&0x0f)==0x07) //P1.3按下處理

{a=a>>1; //右移一位

if(a==0)a=128; //若全0,則10000000

P0=~a; //低電平點亮

delay(2250);} //流動點亮延時

}}第5章習題2*.若(IP)=00010100B,則優(yōu)先級最高者為

,最低者為

。解:00010100同級查詢優(yōu)先高低外部中斷1定時器T1第5章習題8*.下列說法正確的是

。A.同一級別的中斷請求按時間的先后順序響應B.同一時間同一級別的多中斷請求將形成阻塞,系統(tǒng)無法響應C.低優(yōu)先級中斷請求不能中斷高優(yōu)先級中斷請求,但是高優(yōu)先級中斷請求能中斷低優(yōu)先級中斷請求D.同級中斷不能嵌套A、C、D第5章習題13*.某系統(tǒng)有3個外部中斷源1、2、3,當某一中斷源發(fā)出的中斷請求使引腳變?yōu)榈碗娖綍r(見圖5-10),便要求CPU進行處理,它們的優(yōu)先處理次序由高到低為3、2、1,中斷處理程序的入口地址分別為1000H、1100H、1200H。試編寫主程序及中斷服務子程序(轉至相應的中斷處理程序的入口即可)。第5章習題參考程序如下:

ORG 0000H LJMP MAIN ORG 0013H LJMP INT_EX1 ORG 0030HMAIN: CLR IT1 ;采用電平觸發(fā),低電平有效中斷

SETB EX1 ;允許外部中斷1 SETB EA WAIT: LJMP WAIT ;用原地跳轉代替一段用戶程序第5章習題;以下為外部中斷1服務子程序INT_EX1:JBP1.2,INT_IR3;是3號中斷,轉到對應中斷處理程序

JBP1.1,INT_IR2;是2號中斷,轉到對應中斷處理程序

JBP1.0,INT_IR1;是1號中斷,轉到對應中斷處理程序

ORG1000HINT_IR3:插入相應中斷處理程序

RETI ORG1100HINT_IR2:插入相應中斷處理程序

RETI ORG1200HINT_IR1:插入相應中斷處理程序

RETI第5章習題;以下為外部中斷1服務子程序INT_EX1:JNBP1.2,NEXT1 ;P1.2=0,非3號中斷,跳轉NEXT1 LJMPINT_IR3 ;是3號中斷,轉到對應中斷處理程序NEXT1:JNBP1.1,NEXT2 ;P1.1=0,非2號中斷,跳轉NEXT2 LJMPINT_IR2 NEXT2:LJMPINT_IR1 ORG1000HINT_IR3:插入相應中斷處理程序

ORG1100HINT_IR2:插入相應中斷處理程序

ORG1200HINT_IR1:插入相應中斷處理程序第5章習題1.外部中斷1的中斷入口地址為

。定時器1的中斷入口地址為

。11.編寫外部中斷1為跳沿觸發(fā)的中斷初始化程序段。解: SETB IT1 ;外部中斷1為跳沿觸發(fā)

SETB EX1 ;允許外部中斷1中斷

SETB EA ;CPU開中斷0013H001BH第5章習題6.中斷查詢確認后,在下列各種AT89C51單片機運行情況下,能立即進行響應的是

。A.當前正在進行高優(yōu)先級中斷處理B.當前正在執(zhí)行RETI指令C.當前指令是DIV指令,且正處于取指令的機器周期D.當前指令是MOVA,R3D第6章習題3*.定時器/計數(shù)器用作定時器模式時,其計數(shù)脈沖由誰提供?定時時間與哪些因素有關?答:定時器/計數(shù)器用作定時器時,其計數(shù)脈沖由系統(tǒng)振蕩器產(chǎn)生的內(nèi)部時鐘信號12分頻后提供。定時時間與時鐘頻率和定時初值有關。外部脈沖初值越大,定時越短。第6章習題7*.已知系統(tǒng)采用6MHz晶振,編寫程序,要求使用T0采用方式2定時,①.使P1.0輸出周期為80μs的方波脈沖。②.使P1.0輸出周期為400μs,占空比為10%的矩形脈沖(高電平40μs,低電平360μs)。第6章習題7.①.使P1.0輸出周期為80μs的方波脈沖。80us40us40us解①:T0定時40us,每40us產(chǎn)生一次中斷,在中斷服務程序中對P1.0取反。①P1.040us計算T0定時40μs初值x特殊功能寄存器設置00000010TMOD:02H方式2定時第6章習題

ORG 0000H LJMP MAIN ORG 000BH CPL P1.0 RETI ORG 0030HMAIN: MOV TMOD,#02H ;定時器/計數(shù)器T0為定時方式2 MOV TL0,#236 ;定時40us初值賦值

MOV TH0,#236 ;定時40us初值賦值

SETB TR0 ;啟動T0,開始計數(shù)

SETB ET0 ;允許T0中斷

SETB EA ;CPU開中斷WAIT: SJMP WAIT ;無事可做7題①.參考程序——中斷方式第6章習題

ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV TMOD,#02H ;定時器/計數(shù)器T0為定時方式2 MOV TL0,#236 ;定時40us初值賦值

MOV TH0,#236 ;定時40us初值賦值

SETB TR0 ;啟動T0,開始計數(shù)LOOP: JNB TF0,LOOP ;時間未到,等待

CPL P1.0 ;時間到,取反

CLR TF0 ;清時間到標志

SJMP LOOP7題①.參考程序——查詢方式第6章習題7.②.使P1.0輸出高電平40μs,低電平360μs的矩形脈沖。解②:方法1設計思想仍然定時40μs中斷,先輸出“0”,采用R7計數(shù),主程序中初始R7=0。中斷程序中:R7+1→R7,判斷:R7<9,不管;R7=9,輸出“1”;R7>9,輸出“0”,并使R7=0。123456789100R7=0P1.012360μs40μs第6章習題

ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P ORG 0030HMAIN: MOV TMOD,#02H ;T0為定時方式2 MOV TL0,#236 ;定時40us初值賦值

MOV TH0,#236 ;定時40us初值賦值

SETB TR0 ;啟動T0,開始計數(shù)

SETB ET0 ;允許T0中斷

SETB EA ;CPU開中斷

MOV R7,#0 ;R7=0 CLR P1.0 ;先輸出“0”WAIT: SJMP WAIT7題②.方法1參考程序第6章習題IT0P: INC R7 ;R7+1→R7 CJNE R7,#9,NEXT SETB P1.0 ;R7=9,P1.0=1 RETINEXT: JC EXIT ;R7≠9處理,R7<9,不管

CLR P1.0 ;R7>9,

P1.0=0 MOV R7,#0 ;R7=0EXIT: RETI中斷程序中:R7+1→R7,判斷:R7<9,不管;R7=9,輸出“1”;R7>9,輸出“0”,并使R7=0。7題②.方法1參考程序第6章習題987654320910R7=10P1.087360μs7.②.使P1.0輸出高電平40μs,低電平360μs的矩形脈沖。解②:方法2設計思想仍定時40μs中斷,先輸出“1”。用R7(j)計數(shù),主程序中初始R7(j)=10。中斷程序中:R7(j)-1→R7(j),判斷:R7(j)≠0,輸出0;R7(j)=0,輸出“1”;并使R7(j)=10。1第6章習題#include<reg51.h>#defineucharunsignedcharsbitP1_0=P1^0;voidmain() //主函數(shù)dataucharj=10; //全局變量j{

TMOD=02; //T0為定時方式2TL0=236; //定時40us初值賦值

TH0=236; //定時40us初值賦值

TR0=1; //啟動T0,開始計數(shù)

ET0=1; //允許T0中斷

EA=1; //CPU開中斷

P1_0=1; //先輸出“1”while(1);}7題②.方法2參考程序第6章習題voidT0_int(

)

intrruput1 //T0中斷函數(shù){j--;

if(j==0){P1_0=1;j=10;}

elseP1_0=0;}7題②.方法2參考程序仍定時40μs中斷,采用R7(j)計數(shù),主程序中初始R7(j)=10。中斷程序中:R7(j)-1→R7(j),判斷:R7(j)≠0,輸出0;R7(j)=0,輸出“1”;并使R7(j)=10。第6章習題7.②.使P1.0輸出高電平40μs,低電平360μs的矩形脈沖。解②:方法3設計思想——此方法更通用,不需要兩時間是整數(shù)倍計算40us定時初值:ECH,計算360us定時初值:4CHECH+4CH=38H,即ECH=38H-4CH,4CH=38H-ECH初始設置時,TL0=4CH,P1.0=0;TH0=ECH。中斷后,會自動(TH0)→TL0,中斷程序中:CPLP1.0;并且38H-(TH0)→TH0TL0TH0TL0=4CHP1.0360μs40μsTH0=ECHTL0=ECHTH0=4CHTL0=4CHTH0=ECH第6章習題

ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P ORG 0030HMAIN: MOV TMOD,#02H ;T0為定時方式2 MOV TL0,#4CH ;定時360us初值賦值

MOV TH0,#ECH ;定時40us初值賦值

SETB TR0 ;啟動T0,開始計數(shù)

SETB ET0 ;允許T0中斷

SETB EA ;CPU開中斷

CLR P1.0 ;先輸出“0”WAIT: SJMP WAIT7題②.方法3參考程序第6章習題IT0P: CPL P1.0 MOV A,#38H CLR C SUBB A,TH0 MOV TH0,A RETIECH+4CH=38H,即ECH=38H-4CH,4CH=38H-ECH初始設置時,TL0=4CH,P1.0=0;TH0=ECH。中斷后,會自動(TH0)→TL0,中斷程序中:CPLP1.0;并且38H-(TH0)→TH07題②.方法3參考程序第6章習題作業(yè)中也有更好的方法,但有一些錯誤,以下是中斷服務程序IT0P: DJNZR1,LOOP1 SETBP1.0 MOVR1,#09H LCALLLOOP2LOOP1:CLR P1.0 LOOP2:RETISJMP87654321089R1=9P1.076320μs#0AH987654320101R1=10P1.098360μs第6章習題另外一種方法,不需要低電平時間是高電平時間的整數(shù)倍,更通用。如產(chǎn)生如圖矩形波。100us60us40us計算40us定時初值:ECH計算60us定時初值:E2HECH+E2H=CEH主程序中:MOV TL0,#0E2H ;60us初值MOV TH0,#0ECH ;40us初值CLR P1.0中斷服務程序:CPL P1.0MOV A,#0CEHCLR CSUBB A,TH0MOV TH0,ARETITL0TH0第6章習題1.下列

項說法是正確的。A.特殊功能寄存器SCON,與定時器/計數(shù)器的控制無關B.特殊功能寄存器TCON,與定時器/計數(shù)器的控制無關C.特殊功能寄存器IE,與定時器/計數(shù)器的控制無關D.特殊功能寄存器TMOD,與定時器/計數(shù)器的控制無關A第6章習題6.定時器/計數(shù)器的工作方式2有什么特點?適用于哪些應用場合?答:定時器/計數(shù)器的工作方式2具有自動恢復初值的特點,適用于精確定時,如波特率的產(chǎn)生。第7章習題6*.在異步串行通信中,接收方是如何知道發(fā)送方開始發(fā)送數(shù)據(jù)的?答:當接收方檢測到RXD引腳上的有效的負跳變時,即可知道發(fā)送方開始發(fā)送數(shù)據(jù)。8*.假定串行口串行發(fā)送的字符格式為1個起始位、8個數(shù)據(jù)位、1個奇校驗位、1個停止位,請畫出傳送字符“B”(42H)的幀格式。解:字符“B”的ASCII碼為42H=01000010B,幀格式如圖所示。起始位010000101奇校驗位停止位D0D1D2D3D4D5D6D712*.AT89C51串行口按方式3進行數(shù)據(jù)通信,假定波特率為2400bit/s,偶校驗,以中斷方式傳送數(shù)據(jù)。編寫發(fā)送和接收的通信程序。要求:發(fā)送方,將RAM單元20H~25H的內(nèi)容發(fā)送,共6個字節(jié),其中25H的數(shù)據(jù)是20H~24H異或的結果,即縱向冗余校驗碼;接收方,接收到6字節(jié)數(shù)據(jù),經(jīng)奇偶校驗,且縱向冗余校驗(6字節(jié)異或為0)正確后,數(shù)據(jù)放在RAM20H~24H單元。時鐘振蕩頻率為11.0592MHz。采用T1作波特率發(fā)生器。第7章習題解:程序準備:波特率為2400b/s,SMOD=0,查表初值為F4H。第7章習題T1作波特率發(fā)生器,定時模式,方式200100000TMOD:20H串行口方式3,非多機通信方式1100/10000SCON:C0H/D0H中斷允許設置,只允許串行口中斷10010000IE:90H作業(yè)中有用E0H/F0H第7章習題發(fā)送程序設計思想題目要求:將20H~25H的內(nèi)容發(fā)送,其中25H的數(shù)據(jù)是20H~24H異或的結果,即縱向冗余校驗碼;①.初始化設置:定時器/計數(shù)器工作方式,根據(jù)波特率設置時間初值;設置串行口工作方式3;允許串行口中斷,CPU開中斷。②.求縱向冗余碼放入25H;③.發(fā)送第一字節(jié),注意將偶校驗位送TB8,等待全部發(fā)完,全部發(fā)完后關中斷。④.中斷服務程序,每進入一次發(fā)送一字節(jié)。第7章習題 ORG 0000H LJMP MAIN ORG 0023H

LJMP COM_INT ORG 1000HMAIN: MOV SP,#60H ;設置堆棧指針

MOV TMOD,#20H ;設置定時器/計數(shù)器工作方式

MOV TH1,#0F4H ;設置波特率為2400 MOV TL1,#0F4H SETB TR1 ;開定時器T1 MOV SCON,#0C0H ;設置串行口工作方式為方式3 MOV IE,#90H ;允許串行口中斷

(1).甲機發(fā)送方的子程序波特率設置第7章習題TRAN: MOV R0,#20H ;要發(fā)送數(shù)據(jù)的單元的首地址

MOV A,#00H ;求縱向冗余碼LOOP: XRL A,@R0 INC R0 CJNE R0,#25H,LOOP MOV @R0,A ;縱向冗余碼放在發(fā)送最后單元

MOV R0,#20H ;要發(fā)送數(shù)據(jù)的單元的首地址

MOV A,@R0 MOV C,PSW.0 MOV TB8,C ;偶校驗位送TB8 MOV SBUF,A ;發(fā)送第一字節(jié)

HERE: CJNE R0,#25H,HERE MOV IE,#00H ;關中斷

······

第7章習題COM_INT: CLR TI INC R0 MOV A,@R0 MOV C,PSW.0 MOV TB8,C ;偶校驗位送TB8 MOV SBUF,A ;發(fā)送第一字節(jié)

RETI第7章習題接收程序設計思想題目要求:接收到6字節(jié)數(shù)據(jù),經(jīng)奇偶校驗,且縱向冗余校驗(6字節(jié)異或為0)正確后,數(shù)據(jù)放在RAM20H~24H單元。①.初始化設置:定時器/計數(shù)器工作方式,根據(jù)波特率設置時間初值;設置串行口工作方式3;中斷設置允許串行口中斷,CPU開中斷。②.判斷是否有出錯標志F0,有,出錯處理;③.判斷是否接收到6字節(jié)數(shù)據(jù),若是,進行縱向冗余校驗,正確,將30H~34H數(shù)據(jù)放在RAM20H~24H單元。出錯,出錯處理。②.中斷服務程序,a.每進入一次接收一字節(jié),b.進行奇偶校驗正確后,放入臨時單元30H~35H;第7章習題 ORG 0000H LJMP MAIN ORG 0023H

LJMP COM_INT ORG 1000HMAIN: MOV SP,#60H ;設置堆棧指針

MOV TMOD,#20H ;設置定時器/計數(shù)器工作方式

MOV TH1,#0F4H ;設置波特率為2400 MOV TL1,#0F4H SETB TR1 ;開定時器

MOV SCON,#0D0H ;設置串行口工作方式為方式3

MOV IE,#90H ;串行口中斷允許,CPU開中斷

MOV R0,#30H ;接收數(shù)據(jù)存放單元的首地址

CLR F0 ;清出錯標志(2).乙機接收方的子程序波特率設置第7章習題HERE: JB F0,NEXT CJNE R0,#36H,HERE MOV IE,#00H ;關中斷

MOV A,#0LOOP: DEC R0 XRL A,@R0 CJNE R0,#30H,LOOP JNZ NEXT ;接收6個字節(jié)異或≠0,出錯

MOV R1,#20H ;接收正確,放入20H~24HLOOP1: MOV A,@R0 MOV @R1,A INC R0 INC R1 CJNE R0,#35H,LOOP1 ·······

(2).乙機接收方的子程序第7章習題COM_INT: CLR RI MOV A,SBUF ;讀出接收數(shù)據(jù)

JB PSW.0,JSBW1 ;奇偶校驗,P=1轉

JB RB8,ERR ;P=0,RB8=1,出錯

SJMP JSBW2JSBW1: JNB RB8,ERR ;P=1,RB8=0,出錯JSBW2: MOV @R0,A INC R0 RETIERR: SETB F0 MOV IE,#00H ;關中斷

RETI 第7章習題作業(yè)中的錯誤:CJNERB8,C,LOOP2MOVA,@R2在中斷服務程序中,奇偶校驗錯,轉移到中斷服務程序中ERR標號處;在主程序中,縱向冗余校驗錯,也轉移到中斷服務程序中ERR標號處。沒有這樣的指令沒有這樣的指令第7章習題2.在串行通信中,收發(fā)雙方對波特率的設定應該是

的。3.下列選項中,

是正確的。A.串行口通信的第9數(shù)據(jù)位的功能可由用戶定義B.發(fā)送數(shù)據(jù)的第9數(shù)據(jù)位的內(nèi)容是在SCON寄存器的TB8位中預先準備好的C.串行通信幀發(fā)送時,指令把TB8位的狀態(tài)送入發(fā)送SBUF中D.串行通信接收到的第9位數(shù)據(jù)送SCON寄存器的RB8中保存E.串行口方式1的波特率是可變的,通過T1的溢出率設定A、B、D、E相等第8章習題10*.編寫程序,將外部數(shù)據(jù)存儲器中4000H~40FFH單元全部清“0”。解:本題主要考察對外部數(shù)據(jù)塊的寫操作;編程時只要注意循環(huán)次數(shù)和MOVX指令的使用就可以了。CLEAR0: MOV A,#0 ;0給A MOV R0,#00H ;設置循環(huán)次數(shù)

MOV DPTR,#4000H ;設置數(shù)據(jù)指針的初值LOOP: MOVX @DPTR,A ;當前單元清“0” INC DPTR ;指向下一個單元

DJNZ R0,LOOP ;是否結束

RET #0FFH,只有255次0000H~3FFFH4000H~7FFFH8000H~BFFFHC000H~FFFFH第8章習題12*.請寫出圖8-14中4片程序存儲器27128各自所占的地址空間。A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

0

0

0/10/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0

1

0/10/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

1

0

0/10/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

1

10/10/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

第8章習題13*.現(xiàn)有AT89C51單片機、74LS373鎖存器、1片2764EPROM和兩片6264RAM,請用它們組成一個單片機應用系統(tǒng),要求如下:(1).畫出硬件電路連線圖,并標注主要引腳;(2).指出該應用系統(tǒng)程序存儲器空間和數(shù)據(jù)存儲器空間各自地址范圍。解:由于沒有譯碼器,只能采用線選法;若增加一個譯碼器74LS39,則可以采用譯碼法。第8章習題線選法設計的電路如圖IC12764C000H~DFFFHIC26264A000H~BFFFHIC362646000H~7FFFH110A15

A14A13A12A11A10A9A8A7A6A5A4A3A2A1A01

10

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

1

01

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0

11

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

101011123第8章習題譯碼法設計的電路如圖IC127640000H~1FFFHIC262642000H~3FFFHIC362644000H~5FFFH123000A15

A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

0

000/10/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0

010/10/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0

10

0/10/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

001010第8章習題2.假設外部數(shù)據(jù)存儲器2000H單元的內(nèi)容為80H,執(zhí)行下列指令后累加器A中的內(nèi)容為

。MOVP2,#20HMOVR0,#00HMOVXA,@R03.在存儲器擴展中,無論是線選法還是譯碼法最終都是為擴展芯片的片選端提供

控制信號。4.起止范圍為0000H~3FFFH的存儲器的容量是

KB。解:存儲器的容量=4000H=214=24×210=16×210=16KB80H片選16;提供高位地址;提供低位地址第8章習題8.區(qū)分AT89C51單片機片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠方法是

。A.看其位于地址范圍的低端還是高端B.看其離AT89C51單片機芯片的遠近C.看其芯片的型號是ROM還是RAMD.看其是與RD信號連接還是與PSEN信號連接D第9章習題4*.常用的I/O端口編址有哪兩種方式?它們各有什么特點?AT89C51單片機的I/O端口編址采用的是哪種方式?答:有兩種。(1).獨立編址方式。就是I/O地址空間和存儲器地址空間分開編址。其優(yōu)點是,I/O地址空間和存儲器地址空間相互獨立,界限分明。但是,卻需要設置一套專門的讀/寫I/O的指令和控制信號。(2).統(tǒng)一編址方式。它是把I/O端口的寄存器與數(shù)據(jù)存儲器單元同等對待,統(tǒng)一編址。統(tǒng)一編址的優(yōu)點是不需要專門的I/O指令,直接使用訪問數(shù)據(jù)存儲器的指令進行I/O操作,簡單、方便且功能強大。AT89C51單片機使用的是I/O和外部數(shù)據(jù)存儲器RAM統(tǒng)一編址的方式。第9章習題6*.編寫程序,采用82C55的PC口按位置位/復位控制字,將PC7置“0”,PC4置“1”(已知82C55各端口的地址為7FFCH~7FFFH)。解:按位置位/復位控制字是對控制寄存器操作,控制字最高位為0,低4位選擇PC的位與置1或清0。控制寄存器地址7FFFH。SEPC: MOV DPTR,#7FFFH ;控制字寄存器地址送DPTR MOV A,#0EH ;將PC7置0——00001110 MOVX @DPTR,A MOV A,#09H ;將PC4置1——00001001 MOVX @DPTR,A RETA1A000A口 7FFCH01 B口 7FFDH10 C口 7FFEH11 控制口 7FFFH第9章習題11.設81C55TIMERIN引腳輸入脈沖頻率1MHz,要在81C55的TIMEROUT引腳上輸出周期為0.1ms方波,試編寫程序(I/O口地址為7F00H~7F05H)。解:(1).初值計算:輸出方波周期為0.1ms,其頻率為10kHz,將頻率1MHz的脈沖100分頻就是頻率10kHz的方波,所以將定時器初值設置為64H。(2).地址分析64H40H01(3).寄存器設置M2M1=01定時器輸出方波A2A1A0000 控制口7F00H001 A口 7F01H010 B口 7F02H011 C口7F03H011 TL7F04H011 TH7F05H(4).控制字D7D6組合用來設置計數(shù)器的操作。11啟動計數(shù)器。C0H第9章習題參考程序START:MOV DPTR,#7F04H ;指針指向計數(shù)器低8位

MOV A,#64H ;送初值給A MOVX@DPTR,A ;初值送給計數(shù)器低8位

INC DPTR ;指向計數(shù)器高8位

MOV A,#40H ;計數(shù)器方波輸出

MOVX@DPTR,A MOV DPTR,#7F00H ;指向命令/狀態(tài)口

MOV A,#0C0H ;設定控制字

MOVX@DPTR,A ;啟動計數(shù)器

END作業(yè)中2710H?第9章習題5.82C55的“方式控制字”和“PC口按位置位/復位控制字”都可以寫入82C55的同一控制寄存器,82C55是如何來區(qū)分這兩個控制字的?答:82C55通過寫入控制字寄存器的控制字最高位來判斷,最高位為1時,為方式控制字;最高位為0時,為PC口按位置位/復位控制字。第9章習題10.假設81C55的TIMERIN引腳輸入的頻率為4MHz,問81C55的最大定時時間是多少?解:81C55計數(shù)器的最大計數(shù)值為214,即初值為00H時,有最大計數(shù)值。計數(shù)一次的時間為一個周期的時間:最大定時時間==0.004096s答:當頻率為4MHz時,81C55計數(shù)器最大定時時間為0.004096s。第10章習題3*.LED靜態(tài)顯示方式與動態(tài)顯示方式有何區(qū)別?各有什么優(yōu)缺點?靜態(tài)顯示時,數(shù)據(jù)是分開送到每一位LED上。靜態(tài)顯示亮度很高,但口線占用較多。動態(tài)顯示時,數(shù)據(jù)同時送到每一個LED上,由位選線來確定是哪一位顯示??诰€占用較少,適合用在顯示位數(shù)較多的場合。第10章習題6*.對于圖10-10所示的鍵盤,采用線反轉法原理編寫出識別某一按鍵被按下并得到其鍵號的程序。解:程序設計思想①.線反轉法讀取按鍵特征碼:先對P1口高4位送低電平,讀取P1口低4位的值;再對P1口低4位送低電平,讀取P1口高4位的值,將兩次讀到的值組合在一起(相或

)就得到了按鍵的特征碼。②.根據(jù)按鍵特征碼查找鍵值:將鍵0、鍵1、······鍵15的特征碼依次放在程序存儲區(qū)標號KEYCOD為首的區(qū)域。得到了按鍵的特征碼后,依次與標號KEYCOD為首的區(qū)域的特征碼比較,用R3作順序計數(shù),第0次比較相等,則是鍵0按下,R3=0,······第n次比較相等,則是鍵n按下,R3=n,16個特征碼比較完后,無相等,認為按鍵無效。①.線反轉法思想第1步:列線輸出,行線輸入列線輸出為全低電平,則檢測=0的行線,為按鍵所在行。第2步:行線輸出,列線輸入行線輸出為全低電平,則檢測=0的列線,為按鍵所在列。結合上述兩步,可確定按鍵所在行和列。由此得到鍵3的特征碼EEH鍵0:E7H,鍵1:EBH,鍵8:B7H,鍵13:7BH,1步:輸出P1=F0H,輸入P1=E0H;確定按下鍵在行1;2步:輸出P1=0FH,輸入P1=0EH;確定按下鍵在列4;000011110111000001111111第10章習題第10章習題②.根據(jù)按鍵特征碼查找鍵值:將鍵0、鍵1、······鍵15的特征碼依次放在程序存儲區(qū)標號KEYCOD為首的區(qū)域。得到了按鍵的特征碼后,依次與標號KEYCOD為首的區(qū)域的特征碼比較,用R3作順序計數(shù),第0次比較相等,則是鍵0按下,R3=0,······第n次比較相等,則是鍵n按下,R3=n,16個特征碼比較完后,無相等,認為按鍵無效。特征碼表如下鍵0鍵1鍵2鍵3鍵4鍵5鍵6KEYCOD:DB0E7H,0EBH,0EDH,0EEH,0D7H,0DBH,0DDH······若(A)=EDH,開始R3=FFH第0次,R3+1,R3=0,(A)與E7H比較,相等R3=0是鍵值,不等繼續(xù)第1次,R3+1,R3=1,(A)與EBH比較,相等R3=1是鍵值,不等繼續(xù)第2次,R3+1,R3=2,(A)與EDH比較,相等R3=2是鍵值。第10章習題KEYIN: MOV P1,#0F0H ;列輸出0 MOV A,P1 ;反轉讀鍵

ANL A,#0F0H MOV B,A ;行值保存在B寄存器

MOV P1,#0FH ;行輸出0 MOV A,P1 ;反轉讀鍵

ANL A,#0FH ORL A,B ;得到特征碼 CJNE A,#0FFH,KEYIN1 RET ;=FFH,未按鍵KEYIN1: MOV B,A ;特征碼暫存B

MOV DPTR,#KEYCOD ;指向特征碼表第10章習題

MOV R3,#0FFH ;順序碼初始化,-1開始KEYIN2: INC R3 MOV A,R3 MOVC A,@A+DPTR CJNE A,B,KEYIN3

MOV A,R3 ;找到,取順序碼

RETKEYIN3: CJNE R3,#0FH,KEYIN2 ;未完,再查

RET ;未找到,以未按鍵處理KEYCOD: DB 0E7H,0EBH,0EDH,0EEH ;特征碼表

DB 0D7H,0DBH,0DDH,0DEH DB 0B7H,0BBH,0BDH,0BEH DB 77H,7BH,7DH,7EH第10章習題10.如果把圖10-25所示的打印機的BUSY線斷開,然后與AT89C51單片機的INT0線相接,請簡述電路的工作原理并編寫將以20H為起始地址的連續(xù)20個內(nèi)存單元中的內(nèi)容輸出的打印程序。INT0地址:A:7CHB:7DHC:7EH控:7FH08255設置方式0輸出:80H第10章習題解:本程序采用外部中斷來完成數(shù)據(jù)打印,先打印一個數(shù)據(jù),當BUSY線從高電平變成低電平時,再打印下一個數(shù)據(jù)。參考程序如下:

ORG 0000H LJMP MAIN ORG 0003H LJMP INORG 0030HMAIN: SETB EX0 ;允許外部中斷

SETB IT0 ;下降沿中斷

SETB EA ;CPU開中斷

MOV R0,#7FH ;控制口地址

MOV A,#81H ;控制字:10000000,方式0輸出

MOVX @R0,A第10章習題

MOV R1,#20H ;數(shù)據(jù)區(qū)首地址

MOV R2,#19 ;計數(shù)器:中斷中輸出19字節(jié)數(shù)據(jù)打印

MOV A,@R1 ;打印內(nèi)容第1字節(jié)數(shù)據(jù)

MOV R0,#7CH ;A口地址

MOVX @R0,A ;打印第1字節(jié)數(shù)據(jù)

MOV R0,#7FH ;控制口地址

MOV A,#0EH ;按位置位/復位控制字:00001110 MOVX @R0,A ;PC7=0 MOV A,#0FH ;按位置位/復位控制字:00001111 MOVX @R0,A ;PC7=1 SJMP $PC7第10章習題IN: DJNZ R2,EX ;20個數(shù)據(jù)都結束了嗎?

INC R1 ;指向下一個數(shù)據(jù)

MOV A,@R1 MOV R0,#7CH ;A口地址

MOVX @R0,A ;打印該字節(jié)數(shù)據(jù)

MOV R0,#7FH ;控制口地址

MOV A,#0EH ;按位置位/復位控制字:00001110 MOVX @R0,A ;PC7=0 MOV A,#0FH ;按位置位/復位控制字:00001111 MOVX @R0,A ;PC7=1EX: RETI第10章習題1.下列

項說法正確。A.HD7279是一個用于鍵盤和LED顯示器的專用接口芯片B.在單片機與微型打印機的接口中,打印機的BUSY信號可作為查詢信號或中斷請求信號使用C.為給掃描法工作的8×8鍵盤提供接口電路,在接口電路中只需要提供兩個輸入口和一個輸出口D.LED顯示器的字型碼是固定不變的A、B第10章習題5.說明矩陣式鍵盤按鍵按下的識別原理。答:按鍵設置在行、列線交點上,行、列線分別連接到按鍵開關的兩端。行線通過上拉電阻接到+5V上,無按鍵按下時,行線處于高電平狀態(tài),而當有按鍵按下時,行線電平狀態(tài)將由與此行線相連的列線的電平?jīng)Q定。列線的電平如果為低,則行線電平為低;列線的電平如果為高,則行線的電平亦為高。將行、列線信號配合起來并做適當?shù)奶幚恚拍艽_定閉合鍵的位置。第11章習題3*.判斷下列說法是否正確。(1).“轉換速度”這一指標僅適用于A/D轉換器,D/A轉換器不用考慮“轉換速度”問題。(2).ADC0809可以利用“轉換結束”信號EOC向AT89C51單片機發(fā)出中斷請求。(3).輸出模擬量的最小變化量稱為A/D轉換器的分辨率。(4).對于周期性的干擾電壓,可使用雙積分型A/D轉換器,并選擇合適的積分元件,可以將該周期性的干擾電壓帶來的轉換誤差消除。第11章習題9*.在一個由AT89C51單片機與一片ADC0809組成的數(shù)據(jù)采集系統(tǒng)中,ADC0809的8個輸入通道的地址為7FF8H~7FFFH,試畫出有關接口的電路圖,并編寫每隔1分鐘輪流采集一次8個通道數(shù)據(jù)的程序,共采樣50次,其采樣值存入片外RAM中以2000H單元開始的存儲區(qū)中。解:接口電路如圖。通道地址A15=0A14~A3可任意,取1A2A1A0選擇通道通道0地址:7FF8H通道1地址:7FF9H·······通道7地址:7FFFH第11章習題9.ADC0809的8個輸入通道地址為7FF8H~7FFFH,并編寫每隔1分鐘輪流采集一次8個通道數(shù)據(jù)的程序,共采樣50次,其采樣值存入片外RAM中以2000H單元開始的存儲區(qū)中。設計思想:AT89C51指令系統(tǒng)中,只有一個16位指針DPTR,在每次循環(huán)過程中,既要用DPTR指示不同的通道,又要用DPTR指示不同的存儲單元,而不能用R1=2000H作指針——

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論