單片機(jī)原理、接口技術(shù)及應(yīng)用課后答案—黃建新_第1頁(yè)
單片機(jī)原理、接口技術(shù)及應(yīng)用課后答案—黃建新_第2頁(yè)
單片機(jī)原理、接口技術(shù)及應(yīng)用課后答案—黃建新_第3頁(yè)
單片機(jī)原理、接口技術(shù)及應(yīng)用課后答案—黃建新_第4頁(yè)
單片機(jī)原理、接口技術(shù)及應(yīng)用課后答案—黃建新_第5頁(yè)
已閱讀5頁(yè),還剩32頁(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)介

1、作業(yè)題及答案第1章1.9 完成下列數(shù)制的轉(zhuǎn)換。(1)1011.1101b( 11.8125 )d( b.d )h (2)110.101b( 6.625 )d( 6.a )h(3)166.25( 10100110.0100 )b( a6.4 )h(4)1011011.101b( 5b.a )h( 1001 0001.0110 0010 0101 )bcd(5)100001100011.01000101bcd( 863.45 )d1.10 寫出下列真值對(duì)應(yīng)的原碼、反碼和補(bǔ)碼。 (1)1100110b 【1100110b】原碼=66h【1100110b】反嗎=66h【1100110b】補(bǔ)碼=66h

2、(2)1000100b 【1000100b】原碼=c4h【1000100b】反碼=bbh【1000100b】補(bǔ)碼=bch (3)86 【86】原碼=d6h【86】反碼=a9h【86】補(bǔ)碼=aah1.11寫出下列機(jī)器數(shù)分別作為原碼、反碼和補(bǔ)碼時(shí),其表示的真值分別是多少?(1)01101110b +110(6eh)(2)10110101b-53(35h), -74(-4ah), -75(-4bh)1.12 已知x和y的真值,試分別計(jì)算xy補(bǔ)和xy補(bǔ),并指出是否產(chǎn)生溢出(設(shè)補(bǔ)碼均用8位二進(jìn)制表示)。 (1)x1000100b,y0010010bx補(bǔ)=01000100b, y補(bǔ)=11101110bxy

3、補(bǔ): 0100 0100 1110 1110 1 0011 0010c7=1,c6=1,相同, 所以無(wú)溢出。 0100 0100 0001 0010 0101 0110xy補(bǔ) c7=0,c6=0,相同, 所以無(wú)溢出。(2)x1100001b,y1000010b xy補(bǔ):有溢出xy補(bǔ)無(wú)溢出(3)x1101001b,y1010101b xy補(bǔ):有溢出xy補(bǔ):無(wú)溢出1.13 用十六進(jìn)制寫出下列字符的ascii碼。 (1)nba nba=4e4241h (2)hello!2009 hello!2009=48454c4c4f2132303039h第2章2.6 80c51單片機(jī)的信號(hào)有何功能?在使用80c

4、31和89c51單片機(jī)時(shí),信號(hào)應(yīng)如何處理?答:是訪問外部程序存儲(chǔ)器選通信號(hào)。當(dāng)其為低電平時(shí),對(duì)rom的讀操作限定為外部存儲(chǔ)器;當(dāng)其為高電平時(shí),對(duì)rom的讀操作是從內(nèi)部開始的,當(dāng)pc值大于內(nèi)部程序存儲(chǔ)器地址范圍時(shí),cpu自動(dòng)轉(zhuǎn)向讀外部程序存儲(chǔ)器。 80c31單片機(jī)片內(nèi)無(wú)rom,應(yīng)將引腳固定接低電平,以迫使系統(tǒng)全部執(zhí)行片外程序存儲(chǔ)器程序。89c51單片機(jī)應(yīng)將引腳接+5v電源。2.9 系統(tǒng)復(fù)位后,cpu使用哪一組工作寄存器?它們的地址是什么?如何改變當(dāng)前工作寄存器組?答:系統(tǒng)復(fù)位后,cpu使用0組寄存器,它們的地址分別是:r0-r7:00h07h. 可以通過改變psw寄存器的psw.4和psw.3兩

5、位的值來(lái)改變工作寄存器組。2.10 80c51單片機(jī)具有很強(qiáng)的布爾(位)處理功能?共有多少單元可以位尋址?采用布爾處理有哪些優(yōu)點(diǎn)?答:是的,80c51單片機(jī)具有很強(qiáng)的布爾處理功能,在內(nèi)部ram區(qū)20h2fh的16個(gè)單元都可以位尋址;同時(shí)21個(gè)特殊功能寄存器中還有部分特殊功能寄存器可以位尋址。 布爾(位)處理機(jī),是80c5l系列單片機(jī)的突出優(yōu)點(diǎn)之一,給“面向控制”的實(shí)際應(yīng)用帶來(lái)了極大的方便。布爾(位)處理機(jī)借用進(jìn)位標(biāo)志cy作為位累加器,在布爾運(yùn)算中,cy是數(shù)據(jù)源之一,又是運(yùn)算結(jié)果的存放處,位數(shù)據(jù)傳送的中心。布爾(位)處理機(jī)指令系統(tǒng)中有專門進(jìn)行位處理的指令集,利用位邏輯操作功能進(jìn)行隨機(jī)邏輯設(shè)計(jì),可

6、把邏輯表達(dá)式直接變換成軟件執(zhí)行,方法簡(jiǎn)便,免去了過多的數(shù)據(jù)往返傳送、字節(jié)屏蔽和測(cè)試分支,大大簡(jiǎn)化了編程,節(jié)省了存儲(chǔ)器空間,加快了處理速度,增強(qiáng)了實(shí)時(shí)性能。還可實(shí)現(xiàn)復(fù)雜的組合邏輯處理功能。所有這些,特別適用于某些數(shù)據(jù)采集、實(shí)時(shí)測(cè)控等應(yīng)用系統(tǒng)。2.12 單片機(jī)的復(fù)位方法有哪兩種?復(fù)位后各寄存器及ram中的狀態(tài)如何?答:按鍵復(fù)位和外部脈沖復(fù)位。 單片機(jī)復(fù)位后,21個(gè)寄存器中,sp=07h,p0p3均為ffh,sbuf為不定值,其余均為0.2.13 80c51單片機(jī)的、xtal1和xtal2引腳各有何作用?單片機(jī)時(shí)鐘電路分別采用內(nèi)部和外部振蕩方式時(shí),xtal1和xtal2引腳應(yīng)如何連接?答:是片外程序

7、存儲(chǔ)器選通信號(hào),低電平有效。(片外數(shù)據(jù)存儲(chǔ)器讀選通),輸出,低電平有效。(片外數(shù)據(jù)存儲(chǔ)器寫選通),輸出,低電平有效。xtal1和xtal2內(nèi)部振蕩方式:在80c51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳xtall,其輸出端為引腳xtal2。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),這兩根引線用于外接石英晶體和微調(diào)電容。外部振蕩方式:把外部已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi)。該方式適宜用來(lái)使單片機(jī)的時(shí)鐘信號(hào)與外部信號(hào)保持同步。外部振蕩信號(hào)由xtal1引入,xtal2端懸空不用。第3章3.7用指令實(shí)現(xiàn)下述功能。(1)內(nèi)部ram30h單元內(nèi)容送r0。mov r0,30h(2)將立即數(shù)10h送入內(nèi)部ram30h單元。

8、mov 30h,#10h(3)r0內(nèi)容送入r1。mov a,r0mov r1,a(4)內(nèi)部ram30h單元內(nèi)容送外部ram30h單元。mov r0,#30hmov a,r0movx r0,a(5)外部ram3000h單元內(nèi)容送內(nèi)部ram30h單元。mov dptr,#3000hmovx a,dptrmov 30h,a(6)rom3000h單元內(nèi)容送內(nèi)部ram30h單元。mov dptr,#3000hmov a,#00hmovc a,(a+dptr)mov 30h,a3.8已知內(nèi)部ram中,(30h)40h,(40h)50h,(50h)5ah,(5ah)60h,rom中(125ah)88h,試分

9、析下面程序的運(yùn)行結(jié)果,并指出每條指令的源操作數(shù)尋址方式。 mov a,50h;直接尋址 mov r0,a;寄存器尋址 mov p1,0f0h;立即尋址 mov r0,30h;直接尋址 mov dptr,1200h;立即尋址 movx dptr,a;寄存器尋址 movc a,adptr;變址尋址 mov 40h,50h;直接尋址 mov p2,p1;直接尋址程序執(zhí)行后,p2=f0h ; (40h)= 5ah ;(a)=88h ;(1200h)=5ah; (5ah)=40h3.9設(shè)(r1)31h,內(nèi)部ram31h的內(nèi)容為68h,32h單元的內(nèi)容為60h,(a)10h。請(qǐng)指出運(yùn)行下面的程序后各單元內(nèi)

10、容的變化。 mov a,r1;(a)=68h mov r1,32h;(31h)60h mov 32h,a;(32h)=68h mov r1,45h;(r1)=45h程序前3條指令將內(nèi)部ram31h和32h單元內(nèi)容互換。3.10 已知當(dāng)前pc值為2000h,用兩種方法將rom207fh單元中的常數(shù)送入累加器a。(1)mov dptr,#207fhmov a,#00hmovc a,a+dptr(2)mov a,#7chmovc a,a+pc3.16 已知延時(shí)程序?yàn)?delay:mov r0,0a0h loop1:mov r1,0ffh loop2:nopdjnz r1,loop2djnz r0,l

11、oop1 若系統(tǒng)的晶振頻率為12mhz,請(qǐng)指出該延時(shí)子程序的延時(shí)時(shí)間。機(jī)器周期數(shù)delay:mov r0,0a0h1 loop1:mov r1,0ffh1 loop2:nop1djnz r1,loop22djnz r0,loop12由于晶振頻率為12mhz,1m=1s該程序延時(shí)時(shí)間為:【1+(1+2)*255+2】*160+1=122.881ms第4章4.13編寫程序?qū)?nèi)部ram40h60h單元清0mov r7,#21hmov r0,#40hloop:mov r0,#00hinc r0djnz r7,loopsjmp $4.15 編程將外部ram的1000h1fff區(qū)域的數(shù)據(jù)送到2000h2f

12、ffh區(qū)域。org 0100hmov dptr,#1000hmovr7,#10hll1:movr6,#00hll:movxa,dptrmovb,amova,dphadda,#10hmovdph,amova,bmovxdptr,amova,dphclrcsubba,#10hmovdph,aincdptrdjnzr6,ll incdphdjnzr7,ll1sjmp$4.16已知一內(nèi)部ram以block1和block2為起始地址的存儲(chǔ)區(qū)中分別有5字節(jié)無(wú)符號(hào)被減數(shù)和減數(shù)(低位在前,高位在后。請(qǐng)編寫減法子程序令它們相減,并把差放入以block1為起始地址的存儲(chǔ)單元。block1 equ 30h bloc

13、k2 equ 40h org 0000h ljmp startstart:mov r0,#block1 mov r1,#block2 mov r7,#1 lp:mov r6,#5 clr c lp1:mov a,r0 subb a,r1 mov r0,a inc r0 inc r1 djnz r6,lp1 djnz r7,lp sjmp $ end4.17 從內(nèi)部ram20h單元開始存有一組帶符號(hào)數(shù),其個(gè)數(shù)已存放在1fh單元中。要求統(tǒng)計(jì)出大于0、等于0和小于0的數(shù)的數(shù)目,并把統(tǒng)計(jì)結(jié)果分別存放在one、two、three三個(gè)單元中。one equ 1ehtwo equ 1dh three equ

14、 1ch org 0000h ljmp startstart:mov one,#00h mov two,#00h mov three,#00h mov r0,#20h mov r7,1fhloop3: mov a,r0 inc r0 jz loop1 jb acc.7,loop2 inc one sjmp haltloop1: inc twosjmp haltloop2: inc threehalt: djnz r7,loop3 sjmp $4.18 設(shè)內(nèi)部ram30h單元有兩個(gè)非零的bcd數(shù),請(qǐng)編寫求兩個(gè)bcd數(shù)的積,并將積以壓縮型bcd數(shù)形式送入31h單元的程序。 org 0000hmov

15、a, 30hanla, #0f0hswapamovb, amova, 30hanla, #0fhmula, bmovb, #0ahdivabswap aorla, bmov31h, asjmp$4.20 編制絕對(duì)值函數(shù)程序。絕對(duì)值函數(shù)方程如下: 假設(shè)x存于30h單元,y存于40h單元。x 及y均為補(bǔ)碼數(shù). x equ 30h y equ 40h org 0000h ljmp startstart: mov a,x jz loop jnb acc.7,loop cpl a add a,#01h loop: mov y,a sjmp $ end4.21 試編寫統(tǒng)計(jì)數(shù)據(jù)區(qū)長(zhǎng)度的程序,設(shè)數(shù)據(jù)區(qū)從內(nèi)ra

16、m30h開始,該數(shù)據(jù)區(qū)以0結(jié)束,統(tǒng)計(jì)結(jié)果送人2fh中。且數(shù)據(jù)區(qū)結(jié)束字符,也計(jì)入統(tǒng)計(jì)數(shù)據(jù)區(qū)的長(zhǎng)度中去. org 0000h ljmp start start:mov r0,#30h mov r7,#00h loop:mov a,r0 inc r0 inc r7 cjne a,#00h,loop mov 2fh, r7 sjmp $4.23巳知r7中為2位十六進(jìn)制數(shù),試編程將其轉(zhuǎn)換為ascii碼,存人內(nèi)部ram 31h、32h中(低字節(jié)在前)。英文字母為大寫.org 0000h ljmp start start:mov sp,#60h mov a,r7 lcall bcdascii mov 31h

17、,a mov a,r7 swap a lcall bcdascii mov 32h,asjmp $ bcdascii:anl a,#0fh cjne a,#10,loop loop: jc ad30h add a,#07h ad30h:add a,#30h ht: ret end解法2 org 0000h ljmp startstart: mov dptr,#tab mov a,r7 anl a,#0fh movc a,a+dptr mov 31h,a mov a,r7 anl a,#0f0h swap a movc a,a+dptr mov 32h,a sjmp $ tab:db30h,31

18、h,32h,33h,34h,35h,36h,37h,38hdb 39h,41h,42h,43h,44h,45h,46h end4.24設(shè)在ma和mb單元中有兩個(gè)補(bǔ)碼形式的8位二進(jìn)制帶符號(hào)數(shù)。請(qǐng)編寫求兩數(shù)之和并把它放在suml和sumh單元(低8位在suml單元)的子程序。提示:在兩個(gè)8位二進(jìn)制帶符號(hào)數(shù)相加時(shí),其和很可能會(huì)超過8位數(shù)所能表示的范圍,從而需要采用16位數(shù)形式來(lái)表示。因此,在進(jìn)行加法時(shí)、可以預(yù)先把這兩個(gè)加數(shù)擴(kuò)張成16位二進(jìn)制補(bǔ)碼形式,然后對(duì)它完成雙字節(jié)相加。org 0000hljmp startstart:mov a,ma jb acc.7,lla mov r7,#00h sjmp

19、llllla: mov r7,#0ffhlll: mov a,mb jb acc.7,llb mov r6,#00h sjmp laddllb: mov r6,#0ffhladd:mov a,ma add a,mb mov suml,a mov a,r6 addc a,r7 mov sumh,a sjmp$4.25 設(shè)外部ram1000h10ffh數(shù)據(jù)區(qū)中的數(shù)均為無(wú)符號(hào)數(shù)。試編寫程序,找出該區(qū)域中的數(shù)的最大值,并放人內(nèi)部ram30h單元中。movdptr,#1000hmovr7,#00h;計(jì)數(shù)器movb,#00h;放中間結(jié)果l1:movx a, dptrcjnea, b, l2l2:jcl3m

20、ovb, a; b中放大值l3:incdptrdjnzr7, l1mov30h, bsjmp$4.28 已知a、b、c均為09的整數(shù),試編程求解表達(dá)式y(tǒng)=(a-b)2+(b-c)2+(c-a)2的值 aa equ 31h bb equ 32h cc equ 33h y equ 34h org 0000h ljmp start start:mov sp,#60h mov a,aa clr c subb a,bb acall chunci mov r6,a mov a,bb clr c subb a,cc acall chunci add a,r6 mov r6,a mov a,cc clr c

21、subb a,aa acall chunci add a,r6 mov r6,a mov y,r6sjmp $chunci:jnb acc.7,sqr cpla adda,#01h sqr: add a,#01h movc a,a+pc retsqrtab:db 0,1,4,9,16,25,36,49,64,814.29 從內(nèi)部ram的score單元開始放有16位同學(xué)某門課程的考試成績(jī),試編程求平均成績(jī),存入average單元。 org 0100hmovr5,#00hmovr6,#00hmovr0,#scoremovr7,#16ll:mova,r0adda,r5movr5,amova,r6ad

22、dca,#00hmovr6,aincr0djnzr7,llmovr4,#04hll1:clrcmova,r6rrcamovr6,amova,r5rrcamovr5,adjnzr4,ll1movaverage,r5sjmp$第5章5.8 80c51外擴(kuò)rom時(shí),為什么p0口要接一個(gè)8位鎖存器,而p2口卻不接?答:p0口既作為地址線傳送地址的低8位,又要作為數(shù)據(jù)線傳送8位數(shù)據(jù),只能分時(shí)用做地址線,故p0口輸出的低8位地址數(shù)據(jù)必須用鎖存器鎖存。鎖存器的鎖存控制信號(hào)為引腳ale輸出的控制信號(hào)。p2口只用作地址高8位。5.9 若要設(shè)計(jì)一個(gè)32k×8位的外ram存儲(chǔ)器,分別采用2114(1k&#

23、215;4位)和6264(8k×8位)芯片,各需多少塊存儲(chǔ)芯片?答:2114芯片需要:(8/4)*(32/1)=64片 6264芯片需要:32/8=4片5.12 80c51擴(kuò)展2片6264存儲(chǔ)器芯片,試用p2.6、p2.7對(duì)其片選,并指出它們的地址范圍。答:地址范圍:6264(1)10*0 0000 0000 0000 0000 1 1111 1111 1111 11118000h9fffh6264(2) 01*0 0000 0000 0000 0000 1 1111 1111 1111 11114000h5fffh第6章6.1 輸入/輸出信息有哪幾種?答:通過接口傳送的信息包括數(shù)據(jù)

24、信息、狀態(tài)信息和控制信息。6.2 什么是接口?接口應(yīng)具有哪些功能?接口是將外設(shè)連接到總線上的一組邏輯電路的總稱。功能:1. 地址譯碼與設(shè)備選擇2. 緩沖鎖存數(shù)據(jù)3. 信息的輸入輸出4. 信息轉(zhuǎn)換6.7 什么是中斷源?80c51有哪些中斷源?cpu響應(yīng)中斷時(shí),其入口地址是什么?答:能引起中斷的外部設(shè)備或內(nèi)部原因稱為中斷源,包括外部中斷源和內(nèi)部中斷源。80c51中有5個(gè)中斷源: (1)(p3.2):外部中斷0。 (2) (p3.3):外部中斷1。(3)tf0(p3.4):定時(shí)器/計(jì)數(shù)器t0溢出中斷。(4)tf1(p3.5):定時(shí)器/計(jì)數(shù)器t1溢出中斷。(5)rx,tx:串行中斷入口地址:外部中斷0

25、():0003h定時(shí)器/計(jì)數(shù)器0(t0):000bh外部中斷1():0013h定時(shí)器/計(jì)數(shù)器1(t1):001bh串行口(ri、ti):0023h定時(shí)器計(jì)數(shù)器2(t2)(僅80c52有):002bh6.11 80c51的外部中斷有哪幾種觸發(fā)方式?如何選擇?答:有電平觸發(fā)方式和邊沿觸發(fā)方式。通過對(duì)icon寄存器的d0位it0和d2位it1置位或清0實(shí)現(xiàn)。該為為0,為低電平觸發(fā)方式,該位為1,為下降沿觸發(fā)方式。第7章7.8 8255a各端口可以工作在幾種方式下?當(dāng)端口 a工作在方式2時(shí),端口b和c工作于什么方式下?答:8255a共有三種工作方式:方式0、方式1和方式2。其中a口可以工作在方式0、方

26、式1和方式2,b口可以工作在方式0、方式1,而c口只能工作在方式0。在a口工作在方式2時(shí),b口可以工作在方式0或方式1。c口高5位為a口提供聯(lián)絡(luò)信號(hào),c口低3位可作為輸入輸出線使用或用作b口方式1之下的控制線。7.9 某8255a芯片的地址范圍為7f80h7f83h,工作于方式0,a口、b口為輸出口。c口低4位為輸入,高4位為輸出,試編寫初始化程序。mov dptr,#7f83hmov a,#1000 0001bmovx dptr, a7.11 8255a的方式控制字和c口按位置位/復(fù)位控制字都可以寫入8255a的同一控制寄存器,8255a是如何區(qū)分這兩個(gè)控制字的?答:看控制字的最高位d7,如

27、果該位的值為“1”,則認(rèn)為是方式控制字;反之,則認(rèn)為是c口置位/復(fù)位控制字。7.12 編寫程序,采用8255a的c口按位置位/復(fù)位控制字,將pc7置0,pc4置1,(已知8255a各端口的地址為7ffch-7fffh)。mov dptr,#7fffhmov a,#0ehmovx dptr,amov dptr,#7fffhmov a,#09hmovx dptr,a7.13 設(shè)8255a接到系統(tǒng)中,端口a、b、c及控制口地址分別為220h、221h、222h及223h,工作在方式0,試編程將端口b的數(shù)據(jù)輸入后,從端口c輸出,同時(shí),將其取反后從端口a輸出。mov dptr,#223hmov a,#8

28、2hmovx dptr,amov dptr,#221hmovx a,dptrinc dptrmovx dptr,acpl amov dptr,#220hmovx dptr,asjmp $第8章8.3 定時(shí)器t1用于對(duì)外部脈沖計(jì)數(shù),每計(jì)滿1000個(gè)脈沖后使內(nèi)部ram 60h單元內(nèi)容加一,要求t1以方式1中斷實(shí)現(xiàn),tr1啟動(dòng)。解:計(jì)數(shù)常數(shù)為:tc216100064536fc18h,由于采用t1方式1 計(jì)數(shù)方式,故方式控制字為:0101 0000b50h程序如下:org 0000hajmp mainorg 001bh ljmp t1intorg 0200hmain:mov tmod,50hmovth1,0fchmovtl1,18hsetb et1setbeasetbtr1sjmp$org0800ht1int:inc 60hmovth1,0fchmovtl1,18hreti8.4 利用定時(shí)器t0方式2產(chǎn)生一個(gè)5khz的方波,已知晶振頻率為12mh

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論