




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)原理及應(yīng)用作業(yè)參考答案12 單片機(jī)的結(jié)構(gòu)特點(diǎn)表現(xiàn)在哪些主要方面?答:(1)在存儲(chǔ)器結(jié)構(gòu)上,嚴(yán)格將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器在空間上分開,并使用不同的尋址方式,使用兩個(gè)不同的地址指針; (2)在內(nèi)部有一個(gè)全雙工的串行接口; (3)有一個(gè)獨(dú)立進(jìn)行操作的位處理器。14 通用單片機(jī)的供應(yīng)狀態(tài)主要取決于什么?供應(yīng)狀態(tài)有哪幾種?用戶選用單片機(jī)的供應(yīng)狀態(tài)的原則是什么?答:通用單片機(jī)的供應(yīng)狀態(tài)主要取決于片內(nèi)ROM的配置狀態(tài)。(1)片內(nèi)ROM的配置狀態(tài)掩膜ROM,適合于低成本。大批量產(chǎn)品的場(chǎng)合(2)片內(nèi)EPROM配置狀態(tài)可通過(guò)高壓脈沖寫入應(yīng)用程序到EPROM,適合于開發(fā)樣機(jī),小批量生產(chǎn)。(3)片內(nèi)無(wú)ROM配置
2、狀態(tài)必須外擴(kuò)EPROM,價(jià)格低,使用靈活,適合于需要外接能在現(xiàn)場(chǎng)進(jìn)行修改和更新程序存儲(chǔ)器的應(yīng)用場(chǎng)合。23 單片機(jī)的端有何功用?8031的端應(yīng)如何處理,為什么?答:端是訪問(wèn)外部程序存儲(chǔ)器的控制信號(hào):當(dāng)無(wú)效時(shí),訪問(wèn)內(nèi)部ROM,當(dāng)為有效時(shí),訪問(wèn)外部ROM。由于8031沒(méi)有內(nèi)部ROM,所以端必須接低電平。24 MCS51引腳中有多少I/O線?它們與單片機(jī)對(duì)外的地址總線、數(shù)據(jù)總線和控制總線有什么關(guān)系?地址總線和數(shù)據(jù)總線各是幾位?2 / 27答:MCS-51引腳中有32根I/O線,一般由P0口提供單片機(jī)對(duì)外的數(shù)據(jù)總線,同時(shí)作為分時(shí)復(fù)用的地址總線的低8位,由P2口作為地址總線的高8位,控制總線由第二功能的狀
3、態(tài)下的P3口以及RST、ALE和提供。25 8051單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器可以分為哪幾個(gè)不同的區(qū)域?各有什么特點(diǎn)?答:數(shù)據(jù)存儲(chǔ)器主要分為兩個(gè)區(qū)域:00H7FH是真正的RAM區(qū),80HFFH專門用作特殊功能寄存器的區(qū)域。其中00H7FH可分為三個(gè)區(qū)域:00H1FH為四組工作寄存器;20H2FH為128位位尋址區(qū),30H7FH為一般RAM區(qū)。26 單片機(jī)對(duì)外有幾條專用控制線?其功能是怎樣的?答:?jiǎn)纹瑱C(jī)對(duì)外的專用控制線有4條,分別是:(1): 外部取指操作,在訪問(wèn)外部ROM時(shí),信號(hào)自動(dòng)產(chǎn)生;(2)ALE/:ALE為地址鎖存允許信號(hào),在訪問(wèn)外部ROM或RAM時(shí),用來(lái)鎖存P0口的低8位地址。第二功能是對(duì)
4、8751的EPROM編程時(shí),編程脈沖輸入。(3)/VPP:是訪問(wèn)外部程序存儲(chǔ)器的控制信號(hào),無(wú)效時(shí),訪問(wèn)內(nèi)部ROM,有效時(shí),訪問(wèn)外部ROM,第二功能VPP為對(duì)8751EPROM的21V編程電源輸入。(4)RST/VPD:RST是復(fù)位信號(hào)輸入端,第二功能VPD是備用電源輸入端。28 有哪幾種方法使單片機(jī)復(fù)位?復(fù)位后各寄存器、RAM中的狀態(tài)如何?答:?jiǎn)纹瑱C(jī)的復(fù)位方式有兩種,上電自動(dòng)復(fù)位和按鈕復(fù)位。復(fù)位后各寄存器狀態(tài)為:PC0000HACC00HPSW00HSP07HDPTR0000HP0P3FFHIPXX000000B IE 0X000000BTMOD00HTCON 00H TL000HTH000H
5、TL100HTH100HSCON 00HSBUFXXHPCON0XXX0000B29 在8051擴(kuò)展系統(tǒng)中,片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器使用相同的地址編址,是否會(huì)在數(shù)據(jù)總線上出現(xiàn)爭(zhēng)總線的現(xiàn)象?為什么?答:不會(huì)發(fā)生爭(zhēng)總線的現(xiàn)象,因?yàn)閺耐獠縍OM取指令需要用ALE和信號(hào)控制讀取操作,由P2和P0提供地址;而片外數(shù)據(jù)存儲(chǔ)器的讀寫除了地址之外還要、控制,所以不會(huì)爭(zhēng)總線。210 如果8051端口P0P3作為通用I/O口使用,則在輸入引腳數(shù)據(jù)時(shí)應(yīng)注意什么?答:8051的P1、P2和作為一般輸入I/O口的P以及第一功能的P3口均為準(zhǔn)雙向口,在輸入數(shù)據(jù)時(shí)應(yīng)先向端口寫1,然后方可作為高阻輸入。以使其場(chǎng)效應(yīng)管T
6、2截止,才不會(huì)影響輸入電平。32 若要完成以下的數(shù)據(jù)傳送,應(yīng)如何用MCS-51的指令實(shí)現(xiàn)?(1)R1的內(nèi)容傳送到R0 MOV A,R1 MOV R0,A (2)外部RAM20H單元的內(nèi)容傳送到R0MOV R0,#20HMOVX A,R0MOV R0,A(3)外部RAM20H單元的內(nèi)容傳送到內(nèi)部RAM20H單元MOV R0,#20HMOVX A,R0MOV 20H,A(4)外部RAM1000H單元內(nèi)容傳送到內(nèi)部RAM20H單元MOV DPTR,#1000HMOVX A,DPTRMOV 20H,A(5)ROM2000H單元的內(nèi)容傳送到R0MOV DPTR,#2000HCLR AMOVC A,A+D
7、PTRMOVR0,A(6)ROM2000H單元的內(nèi)容傳送到內(nèi)部RAM20H單元MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV 20H,A(7)ROM2000H單元的內(nèi)容傳送到外部RAM20H單元MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV R0,#20HMOVX R0,A33 間接轉(zhuǎn)移指令JMP A+DPTR有何優(yōu)點(diǎn)?為什么它能代替眾多的判跳指令?試舉例說(shuō)明。答:該間接轉(zhuǎn)移指令的轉(zhuǎn)移地址由A的內(nèi)容和數(shù)據(jù)指針DPTR的內(nèi)容之和決定,且兩者都是無(wú)符號(hào)數(shù),由DPTR決定多分支轉(zhuǎn)移程序的首地址,由A的不同值實(shí)現(xiàn)多分支轉(zhuǎn)移。因?yàn)榭梢愿鶕?jù)A的內(nèi)容進(jìn)行分
8、支轉(zhuǎn)移,所以可以替代眾多判跳指令。如:根據(jù)A的內(nèi)容調(diào)用相應(yīng)的程序,如A為0調(diào)用OP0,A為1調(diào)用OP1,這里A的值小于128。MOVDPTR,#OPTABRLAJMPA+DPTROPTAB:ACALL OP0ACALL OP1ACALL OP2 34 設(shè)內(nèi)部RAM的30H單元的內(nèi)容為40H,即(30H)40H,還知(40H)10H,(10H)00H,端口P10CAH。問(wèn)執(zhí)行以下指令后,各有關(guān)存儲(chǔ)器單元、寄存器以及端口的內(nèi)容(即R0、R1、A、B、P1以及40H、30H、10H單元的內(nèi)容)。MOV R0,#30H ;(R0)30HMOV A,R0 ;(A)(30H)40HMOV R1,A ;(R
9、1)40HMOV B,R1 ;(B)(40H)10HMOV R1,P1 ;(40H)0CAHMOV P2,P1 ;(P2)0CAHMOV 10H,#20H ;(10H)20HMOV 30H,10H ;(30H)20H35 已知8751單片機(jī)的P1口為輸出,經(jīng)驅(qū)動(dòng)電路接有8只發(fā)光二極管。當(dāng)輸出位是1時(shí),發(fā)光二極管點(diǎn)亮;輸出位是0時(shí)發(fā)光二極管熄滅。試分析下述程序的執(zhí)行過(guò)程及發(fā)光二極管的發(fā)光情況。LP:MOVP1,#81H;1000 0001BLCALLDELAYMOV P1,#42H;0100 0010BLCALLDELAYMOV P1,#24H;0010 0100BLCALLDELAYMOV P
10、1,#18H;0001 1000BLCALLDELAYMOV P1,#24H;0010 0100BLCALLDELAYMOV P1,#42H;0100 0010BLCALLDELAYSJMPLP答:程序執(zhí)行MOV P1,#DATA后,根據(jù)DATA的每位的值點(diǎn)亮相應(yīng)的LED,調(diào)用延時(shí)程序使點(diǎn)亮的LED保持一段時(shí)間。LED發(fā)光的情況為:每次同時(shí)點(diǎn)亮兩個(gè)LED并從兩邊向中間移動(dòng),然后再向兩邊移動(dòng),并一直循環(huán)。36 在上題中,若系統(tǒng)的晶體振蕩器頻率為6MHz,求子程序DELAY的延時(shí)時(shí)間。DELAY: MOV R2,#0FAH ;2SL1: MOV R3,#0FAH ;2SL2: DJNZ R3,L2
11、 ;4S DJNZ R2,L1 ;4S RET ;4S0FAH250D其中執(zhí)行250次,執(zhí)行時(shí)間為250×4S其中循環(huán)250次,該循環(huán)執(zhí)行時(shí)間為(2250×44)×250S加上和的執(zhí)行時(shí)間,DELAY的延時(shí)時(shí)間為2(2250×44)×2504251.506ms延時(shí)程序的設(shè)計(jì):首先設(shè)計(jì)內(nèi)循環(huán):MOVR3,#data1;2sNOP;2sDJNZR3,$;4s×data1延時(shí)時(shí)間t1224×data14×(data11)1000s1ms,則data1249若需要大于1ms時(shí)間,則先增加一層循環(huán) MOVR2,#data2;
12、2sL1:MOVR3,#data1;2sNOP;2sDJNZR3,$;4s×data1DJNZR2,L2;(4st1)×data2延時(shí)時(shí)間為:2(4st1)×data224s4×(data11)×data224×(data12)×data2250ms,這里將data1修正為248,得24×(2482)×data221000×data2250ms則data225037 根據(jù)圖3-3線路,試設(shè)計(jì)燈亮移位程序,使8只發(fā)光二極管每次亮一個(gè),循環(huán)右移或左移,一個(gè)一個(gè)地亮,循環(huán)不止。MOV A,#80H D
13、IS:MOV P1,AACALL DELAYRR AAJMP DIS38 設(shè)邏輯運(yùn)算表達(dá)式為: 其中變量A,B,C分別為P1.0、P1.4、定時(shí)器1溢出標(biāo)志TF1,D,E,F(xiàn)分別為22H.0、22H.3、外中斷方式標(biāo)志IE1;輸出變量為P1.5。試編寫實(shí)現(xiàn)上述邏輯功能的程序段。MOV C,P1.4ORL C,/TF1 ;ANL C,P1.0 ;MOV F0,A ;用戶自定義標(biāo)志位,暫存數(shù)據(jù)MOV C,22H.3ORL C,/IE1 ;ANL C,22H.0 ;CPL C ;ORL C,/F0 ;MOV P1.5,C41 試設(shè)計(jì)數(shù)據(jù)塊傳送程序,將起始地址為0400H的100個(gè)連續(xù)單元中的內(nèi)容送到
14、以4000H為首址的區(qū)域中去解:分析:地址為16位,且進(jìn)行數(shù)據(jù)傳送,所以連續(xù)單元應(yīng)為外部的存儲(chǔ)器,只能使用外部數(shù)據(jù)傳送指令,由于源和目的地址都為16位,所以要保存DPTR的值,但源低8位和目的低8位相同,可以用一個(gè)寄存器保存。MOV R0,#00NEXT: MOV DPH,#04HMOV DPL,R0MOVX A,DPTRMOV DPH,#40HMOVX DPTR,AINC R0 CJNE R0,#100,NEXT42 試編寫程序,計(jì)算片內(nèi)RAM區(qū)40H47H8個(gè)單元中數(shù)的算術(shù)平均值,結(jié)果存放在4AH中。解:分析:8個(gè)數(shù)總和最大值為FFH×87F8H,所以求和時(shí)必須用兩字節(jié)加法,設(shè)R
15、7保存和高8位,R6保存低8位,求和后再除以8即得算術(shù)平均值,這里需使用16/8除法,但因?yàn)槌龜?shù)為23,所以可以直接通過(guò)算術(shù)右移3位實(shí)現(xiàn)除以8,前提存儲(chǔ)的數(shù)據(jù)為無(wú)符號(hào)數(shù)。MOVR0,#40HMOVR6,#00H;和低字節(jié)清零MOVR7,#00H;和高字節(jié)清零NEXT : MOVA,R0;取出一個(gè)字節(jié)INCR0;地址指針下移ADDA,R6;低字節(jié)求和MOVR6,A;保存和的低字節(jié)CLRAADDCA,R7;如果低字節(jié)求和有進(jìn)位,則加至高字節(jié)MOVR7,A;保存和的高字節(jié)CJNER0,#48H,NEXTMOVR1,#03H;循環(huán)移位3次,實(shí)現(xiàn)除以8DIV8: CLRCMOVA,R7RRCA;高字節(jié)先
16、移位,將D0移至CMOVR7,AMOVA,R6RRCA;將C移入低字節(jié)的D7,從而實(shí)現(xiàn)16位數(shù)據(jù)的移位MOVR6,ADJNZR3,DIV816位除以8位除法子程序:被除數(shù)R6R5,除數(shù)R4,商R3R2,余數(shù)R1DIV168: MOV R3,#00H MOV R1,#00HNEXT2: CLR C MOV A,R5 SUBB A,R4 MOV R5,A MOVA,R6 SUBB A,#00H MOV R6,A JC NEXT MOV A,R2 ADD A,#01H MOV R2,A JNC NEXT2 INC R3 AJMP NEXT2NEXT: MOV A,R5 ADD A,R4 MOV R1
17、,ARET43 設(shè)有兩個(gè)長(zhǎng)度為15的數(shù)組,分別存放在0200H和0500H為首地址的存儲(chǔ)區(qū)域中,試編寫程序求其對(duì)應(yīng)項(xiàng)之和,結(jié)果存放在以0300H為首地址的存儲(chǔ)區(qū)域中。解:分析:0200H和0500H都是片外地址,必須利用MOVX指令獲取數(shù)據(jù),這將導(dǎo)致DPTR使用不方便,解決辦法:(1)0200H,0500H和0300H低字節(jié)地址相同,可以共用DPL,DPH單獨(dú)處理;(2)可以考慮先將兩個(gè)存儲(chǔ)區(qū)的數(shù)據(jù)先轉(zhuǎn)移到內(nèi)部RAM中,然后再進(jìn)行運(yùn)算。這里只是求對(duì)應(yīng)項(xiàng)之和,并不是多位數(shù)求和,兩數(shù)相加,可能產(chǎn)生進(jìn)位,這里應(yīng)該只考慮沒(méi)有進(jìn)位的情況。這里采用第一種方法 MOVR0,#15MOV DPL,#00HNE
18、XT: MOVDPH,#02HMOVXA,DPTRMOVB,AMOVDPH,#05HMOVX A,DPTRADDA,BMOV DPH,#03HMOVXDPTR,AINCDPTRDJNZR0,NEXT44 在起始地址為2100H,長(zhǎng)度為64的數(shù)表中找F的ASCII碼,并將其地址送到1000H和1001H單元中去。解:都為RAM單元,只要找到“F”,則停止查找。利用寄存器R7保存高8位地址,R6保存低8位地址。SF: MOV DPTR,#2100HMOV R0,#64NEXT1:MOVX A,DPTRCJNE A,#4FH,NEXT2MOVR7,DPHMOVR6,DPLMOV DPTR,#1000
19、HMOVA,R6MOVX DPTR,AINC DPTRMOVA,R7MOVX DPTR,AAJMP SFENDNEXT2:INCDPTRDJNZ R0,NEXT1SFEND: RET45 設(shè)計(jì)一個(gè)多字節(jié)無(wú)符號(hào)數(shù)加法子程序和減法子程序。解:(1)多字節(jié)無(wú)符號(hào)數(shù)加法設(shè)R0為加數(shù)首地址,R1為被加數(shù)首地址,R2為字節(jié)數(shù)JIAFA: CLR CNEXT: MOV A,R0ADDC A,R1MOV R0,AINC R0INC R1DJNZ R2,NEXTRET(2)多字節(jié)無(wú)符號(hào)數(shù)減法設(shè)R0為被減數(shù)首地址,R1為減數(shù)首地址,R2為字節(jié)數(shù)JIANFA: CLR CNEXT: MOV A,R0SUBB A,R
20、1MOV R0,AINC R0INC R1DJNZ R2,NEXTRET46 試設(shè)計(jì)一個(gè)雙字節(jié)無(wú)符號(hào)數(shù)乘法子程序和除法子程序。解:設(shè)被乘數(shù)為R7R6,乘數(shù)為R5R4,結(jié)果存于R3R2R1R0設(shè)被除數(shù)為R7R6,除數(shù)為R5R4,商存于R3R2,余數(shù)存于R1R0將被除數(shù)減除數(shù),夠減商加1,然后將差作為被減數(shù),繼續(xù)前面的減法操作,直到不夠減為止,這時(shí)需要恢復(fù)余數(shù)。MUL1616:MOVA,R6MOVB,R4MULABMOVR0,AMOVR1,BMOVA,R7MOVB,R4MUL ABADDA,R1MOVR1,AMOVA,BADCA,#0MOVR2,AMOVA,R6MOV B,R5MULABADDA,
21、R1MOVR1,AMOVA,BADCA,R2MOVR2,AMOVA,R7MOVB,R5MULABADDA,R2MOVR2,AMOVA,BADCA,#0MOVR3,ARETDIV1616:MOVDPTR,#0LOOP:CLRCMOVA,R6SUBBA,R4MOVR4,AMOVA,R7SUBBA,R5MOVR7,AJCNEXTINCDPTRJMPLOOPNEXT:MOVA,R6ADD A,R4MOVR0,AMOVA,R7ADCA,R5MOVR1,AMOVA,DPHMOVR3,AMOVA,DPLMOV R2,ARET47 在3000H為首的存儲(chǔ)器區(qū)域中,存放著14個(gè)由ASCII碼表示的09之間的數(shù),
22、試編寫程序?qū)⑺鼈冝D(zhuǎn)換成BCD碼,并以壓縮BCD碼的形式存放在2000H2006H單元中。解:09的ASCII碼為30H39H,首先必須去掉其中的3,可以通過(guò)減去30H實(shí)現(xiàn),也可通過(guò)ANL實(shí)現(xiàn)。另外還得將兩個(gè)BCD碼壓縮成一個(gè)BCD碼,注意低地址對(duì)應(yīng)低字節(jié),比如3000H為31H(低字節(jié)),3001H為38H(高字節(jié)),合并后應(yīng)為81H,存于2000H單元,可利用ORL或ADD進(jìn)行合并。由于涉及到源和目的地址都為16位,為了方便操作,現(xiàn)將轉(zhuǎn)換結(jié)果存于內(nèi)部RAM。MOV R0,#30HMOVR1,#14MOV DPTR,#3000HNEXT: MOVX A,DPTR ;取出低字節(jié)INC DPTR
23、;源區(qū)地址指針下移ANL A,#0FH ;低字節(jié)轉(zhuǎn)換為BCD碼MOV R4,A ;暫存數(shù)據(jù)MOVX A,DPTR ;取出高字節(jié)INCDPTRANL A,#0FH ;高字節(jié)轉(zhuǎn)換為BCD碼SWAP A ;高低四位互換ORL A,R4 ;將兩個(gè)BCD碼合并MOVR0,AINCR0CJNER1,#37H,NEXTMOVR0,#30HMOVDPTR,#2000HNEXT2:MOVA,R0INCR0MOVXDPTR,AINCDPTRCJNER0,#37H,NEXT248 編寫一段程序,模擬如圖所示的邏輯電路的邏輯功能,要求將四個(gè)輸入與非門的邏輯模擬先寫成一個(gè)子程序,然后以多次調(diào)用得到整個(gè)電路的功能模擬。設(shè)
24、X、Y、Z和W都已定義為位地址,若程序中還需要其他地址標(biāo)號(hào),也可以另行定義。解:方法一:設(shè)計(jì)四輸入與非門子程序,利用子程序必定要傳遞參數(shù),但位操作的傳送指令必須由C完成,所以調(diào)用子程序時(shí)參數(shù)傳遞較復(fù)雜。MOVC,WMOV 00H,CMOVC,ZCPL CMOV01H,CMOVC,YMOV 02H,CMOVC,XMOV 03H,CACALLNAND4MOV04H,CSETB00HMOVC,XMOV 01H,CMOVC,YMOV 02H,CMOVC,ZMOV 03H,CACALLNAND4MOV05H,CSETB00HMOVC,XMOV 01H,CCPL01HMOVC,YCPL CMOV 02H,
25、CMOVC,WMOV 03H,CACALLNAND4SETB00HMOV01H,CMOVC,04HMOV02H,CMOVC,05HMOV03H,CACALLNAND4MOVF,CAJMP $NAND4:MOV C,00HANLC,01HANLC,02HANLC,03HCPLCRETEND方法二:利用宏實(shí)現(xiàn)MACRO,宏可以帶參數(shù),所以參數(shù)傳遞將很方便NAND4 MACRO A1,A2,A3,A4MOV C,A1ANLC,A2ANLC,A3ANLC,A4CPLCENDMORG 0000HAJMP MAINORG 0030HMAIN: MOV C,Z CPL C MOV ONE,C NAND4 X
26、,Y,ONE,W MOV 04H,C SETB ONE NAND4 X,Y,ONE,W MOV 05H,C CPL Y SETB ONE NAND4 X,Y,ONE,W MOV 06H,C SETB ONE NAND4 04H,05H,06H,ONE MOV F,C53已知8051單片機(jī)系統(tǒng)時(shí)鐘頻率為6MHz,試?yán)枚〞r(shí)器T0和P1口輸出矩形脈沖,其波形如圖所示(建議用方式2)。解:定時(shí)器T0的工作方式:方式2,定時(shí)方式,所以TMOD為:0000010(02H) 定時(shí)初值:(28TH0初值)×時(shí)鐘周期×12(28X)×(1/6M)×1240s X2360
27、ECH,360s則為9次定時(shí)中斷MOV TMOD,#02HMOV TH0,#0ECHMOV TL0,#0ECHCLR P1.0SETB TR0NEXT3: MOV R0,#09HSETB P1.0JNB TF0,$CLRTF0NEXT1: CLR P1.0WAIT2: JNB TF0,$CLRTF0DJNZ R0,WAIT2AJMP NEXT354 要求8051單片機(jī)定時(shí)器的定時(shí)值以內(nèi)部RAM的20H單元的內(nèi)容為條件而改變;當(dāng)(20H)00H時(shí),定時(shí)值為10ms;當(dāng)(20H)01H時(shí),定時(shí)值為20ms。請(qǐng)根據(jù)以上要求編寫相應(yīng)程序。解:采用定時(shí)器T0,工作方式:方式1,定時(shí)方式,所以TMOD為:
28、0000001(01H) 定時(shí)初值:(216T0初值)×時(shí)鐘周期×12(216X)×(1/6M)×12(216X)2s10(20H)+11000s (這里20H單元的內(nèi)容最大為12,否則超出16為定時(shí)器的范圍)TIMER:MOV A,20HMOV B,#88HMUL AB ;88H×(20H)MOV R0,A ;R0保存低字節(jié)MOV R1,B ;R1保存高字節(jié)MOV A,20HMOV B,#13HMUL AB ;13H×(20H)ADD A,R1MOV R1,A ;只要限制20H單元內(nèi)容小于13,1388H×(20H)即為兩
29、字節(jié)CLR CMOV A,78HSUBB A,R0 ;78H減去1388H×(20H)的低字節(jié)MOV TL0,AMOV A,#0ECHSUBB A,R1 ;ECH減去1388H×(20H)的高字節(jié)MOV TH0,AMOV TMOD,#01HSETB TR0WAIT: JNB TF0,WAIT RET ;定時(shí)時(shí)間到上述定時(shí)初值的設(shè)置適合(20H)為00H12H,即可以實(shí)現(xiàn)10ms190ms的定時(shí)。若僅僅是10ms和20ms兩種情況,初值設(shè)置將更簡(jiǎn)單 TIMER:MOVA,20HCJNEA,#00H,NEXT1MOVTH0,#0ECHMOVTL0,#78HAJMPNEXT2NE
30、XT1:CJNEA,#01H,NEXT2MOVTH0,#0D8HMOVTL0,#0F0HNEXT2:MOV TMOD,#01H;T0工作方式SETB TR0WAIT: JNB TF0,WAIT RET ;定時(shí)時(shí)間到55 試用定時(shí)器T1設(shè)計(jì)外部事件計(jì)數(shù)器。要求每計(jì)數(shù)1萬(wàn)個(gè)脈沖,就將T1轉(zhuǎn)為10ms定時(shí)方式,當(dāng)定時(shí)到后,又轉(zhuǎn)為計(jì)數(shù)方式,如此反復(fù)循環(huán)不止。設(shè)系統(tǒng)的時(shí)鐘頻率為6MHz,建議選用方式1編寫相應(yīng)程序。解:T1工作方式為方式1,計(jì)數(shù)方式:TMOD:01010000(50H),定時(shí)方式:TMOD:00010000(10H) 計(jì)數(shù)初值XM計(jì)數(shù)模值655361000055536D8F0H 定時(shí)初值
31、(65536X)×210000,X60536EC78HMAIN: MOV TMOD,#50HMOV TL1,#0F0HMOV TH1,#0D8HSETB TR1WAIT1: JBC TF1,NEXT1 AJMP WAIT1NEXT1:MOV TMOD,#10HMOV TL1,#78H MOV TH1,#0ECHWAIT2: JBC TF1,MAIN AJMP WAIT257 利用8051單片機(jī)定時(shí)器測(cè)量某正脈沖寬度寬度,采用何種工作方式可以獲得最大的量程?若時(shí)鐘頻率為6MHz,則允許測(cè)量的最大脈寬是多少?解:要獲得最大量程,那么定時(shí)/計(jì)數(shù)器的計(jì)數(shù)值必須達(dá)到最大,只有方式1是工作在16
32、位計(jì)數(shù)模式。因?yàn)闇y(cè)脈寬,所以定時(shí)/計(jì)數(shù)器工作于定時(shí)方式,且由外部中斷引腳電平啟動(dòng)定時(shí)。最大定時(shí)時(shí)間為:(MX)×T(655360)×12×1/6MHz131.072ms73 某異步通訊接口,其幀格式由一個(gè)起始位,7個(gè)數(shù)據(jù)位,1個(gè)奇偶校驗(yàn)位和一個(gè)停止位組成。當(dāng)該接口每分鐘傳送1800個(gè)字符時(shí),計(jì)算其傳送波特率。解:由幀格式可知:一個(gè)字符由171110位組成,波特率1800×10/60300波特。76 為什么定時(shí)器T1用作串行口波特率發(fā)生器時(shí)常采用工作方式2?若已知T1設(shè)置成方式2,用作波特率發(fā)生器,系統(tǒng)時(shí)鐘頻率為11.0592MHz,求可能產(chǎn)生的最高和最低
33、的波特率各是多少?答:因?yàn)槎〞r(shí)器T1的方式2為自動(dòng)重裝定時(shí)初值,這樣操作方便,也避免了因重裝定時(shí)初值引起的定時(shí)誤差。由波特率當(dāng)初值為0,SMOD0時(shí),得到最低波特率112.5當(dāng)初值為255,SMOD1時(shí),得到最低波特率57.6K77在8051應(yīng)用系統(tǒng)中,時(shí)鐘頻率為6MHz?,F(xiàn)需利用定時(shí)器T1方式2產(chǎn)生1200波特的波特率。試計(jì)算定時(shí)器的初值,并指出實(shí)際得到的波特率與所要求的波特率是否有誤差。解:根據(jù)波特率計(jì)算公式當(dāng)SMOD0時(shí),初值為243,此時(shí)實(shí)際的波特率為:1201.92當(dāng)SMOD1時(shí),初值為230,此時(shí)實(shí)際的波特率為:1201.92所以實(shí)際波特率與要求的波特率有誤差。78 試設(shè)計(jì)一個(gè)80
34、51單片機(jī)的雙機(jī)通訊系統(tǒng),并編寫程序?qū)機(jī)片內(nèi)RAM40H5FH的數(shù)據(jù)塊通過(guò)串行口傳送B機(jī)的片內(nèi)RAM 60H7FH中去。解:該雙機(jī)通訊系統(tǒng),是將A機(jī)數(shù)據(jù)發(fā)送到B機(jī),所以可以采用單工工作方式串行口采用方式1 10位異步收發(fā),采用查詢方式A機(jī):發(fā)送MOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HSETBTR1MOVSCON,#40HMOVR0,#40HCLRTINEXT:MOVA,R0INC R0MOVSBUF,AJNBTI,$CJNE R0,#60H,NEXTAJMP$B機(jī):接收MOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HSETBTR1MOV
35、SCON,#50HMOVR0,#60HNEXT:CLRRIJNBRI,$MOVA,SBUFMOVR0,AINC R0CJNE R0,#80H,NEXTAJMP$81 8051有幾個(gè)中斷源,各中斷標(biāo)志是如何產(chǎn)生的,又是如何復(fù)位的?CPU響應(yīng)中斷時(shí)其中斷入口地址各是多少?答:8051有5個(gè)中斷源,分別是外部中斷0,定時(shí)器T0中斷,外部中斷1,定時(shí)器T1中斷,串行口中斷。中斷入口地址分別為0003H,000BH,0013H,001BH,0023H。定時(shí)器中斷標(biāo)志TF1和TF0是當(dāng)計(jì)數(shù)器溢出時(shí)產(chǎn)生的,CPU響應(yīng)中斷時(shí)能自動(dòng)清除;外部中斷IE1和IE0則是根據(jù)外部INT1和INT0的變化產(chǎn)生的,只有邊沿方式的IE1和IE0能在響應(yīng)中斷是自動(dòng)清除,電平方式的只能軟件清除;串行口中斷標(biāo)志RI,TI是在串行口接收和發(fā)送是產(chǎn)生的,它們只能利用軟件清除。83 如何區(qū)分串行通訊中的發(fā)送中斷和接收中斷?答:串行通訊中,發(fā)送和接收中斷共用一個(gè)中斷入口地址,但可以通過(guò)RI和TI標(biāo)志判斷是哪種
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)農(nóng)產(chǎn)品電商平臺(tái)有哪些
- 汽車零配件電商平臺(tái)售后服務(wù)及客戶留存方案設(shè)計(jì)
- 河北垃圾焚燒發(fā)電項(xiàng)目
- 紡織服裝品質(zhì)管理與國(guó)際標(biāo)準(zhǔn)作業(yè)指導(dǎo)書
- 三農(nóng)村地區(qū)農(nóng)業(yè)現(xiàn)代化發(fā)展規(guī)劃
- 全球冷鏈物流公司排名
- 電商訂單處理系統(tǒng)升級(jí)項(xiàng)目風(fēng)險(xiǎn)評(píng)估報(bào)告
- 新能源汽車技術(shù)與充電設(shè)施作業(yè)指導(dǎo)書
- 體育產(chǎn)業(yè)數(shù)字化服務(wù)平臺(tái)開發(fā)及運(yùn)營(yíng)策略
- 三農(nóng)村電子商務(wù)示范基地建設(shè)方案
- 《類風(fēng)濕專病數(shù)據(jù)集技術(shù)規(guī)范》 編制說(shuō)明
- 麻醉機(jī)故障應(yīng)急預(yù)案演練
- 2024年同等學(xué)力申碩英語(yǔ)考試真題
- 2024-2030年實(shí)驗(yàn)室自動(dòng)進(jìn)樣器行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 七年級(jí)信息技術(shù)教案下冊(cè)(合集6篇)
- 專題07說(shuō)明文閱讀(中考??紵狳c(diǎn)題型)20篇(原卷版)-2023-2024學(xué)年九年級(jí)語(yǔ)文上學(xué)期期末(一模)真題分類匯編
- 風(fēng)險(xiǎn)投資中的人工智能應(yīng)用
- DB5204T 10-2024 農(nóng)產(chǎn)品地理標(biāo)志質(zhì)量要求 紫云花豬
- 07FD02 防空地下室電氣設(shè)備安裝
- 承包經(jīng)營(yíng)食堂日控管周排查月調(diào)度記錄和管理表
- 湖州市建筑施工安全標(biāo)準(zhǔn)化圖冊(cè)
評(píng)論
0/150
提交評(píng)論