




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)原理及應(yīng)用作業(yè)參考答案1. 2單片機(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)行操作的位處理器.1. 4通用單片機(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)可通過高壓脈沖寫入應(yīng)用程序到EPROM ,適合于開發(fā)樣機(jī),小批量生產(chǎn).(3)片內(nèi)無ROM配置
2、狀態(tài)必須外擴(kuò)EPROM,價(jià)格低,使用靈活,適合于需要外接能在現(xiàn)場(chǎng)進(jìn)行修改和更新程序存儲(chǔ)器的應(yīng) 用場(chǎng)合.2. 3單片機(jī)的EA端有何功用 8031的EA端應(yīng)如何處理,為什么?答:EA端是訪問外部程序存儲(chǔ)器的限制信號(hào):當(dāng)EA無效時(shí),訪問內(nèi)部 ROM ,當(dāng)EA為有效時(shí),訪問外部ROM.由于8031沒有內(nèi)部ROM ,所以EA端必須接低電平.2. 4 MCS 51引腳中有多少I/O線它們與單片機(jī)對(duì)外的地址總線、數(shù)據(jù)總線和限制總線有什么關(guān)系地址總線和數(shù)據(jù)總線各是幾位答:MCS-51引腳中有32根I/O線,一般由P0 口提供單片機(jī)對(duì)外的數(shù)據(jù)總線,同時(shí)作為分時(shí)復(fù)用的地址總線的低8位,由P2 口作為地址總線的高
3、8位,限制總線由第二功能的狀態(tài)下的P3 口以及RST、EA、ALE和PSEN提供.2. 5 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ū).2. 6單片機(jī)對(duì)外有幾條專用限制線其功能是怎樣的答:?jiǎn)纹瑱C(jī)對(duì)外的專用限制線有4條,分別是:(1) PSEN :外部取指操作,在訪問外部ROM時(shí),PSEN信號(hào)自動(dòng)產(chǎn)生;(2) ALE/ PROG : ALE為
4、地址鎖存允許信號(hào),在訪問外部 ROM或RAM時(shí),用來鎖存 P0 口的低8 位地址.第二功能 PROG是對(duì)8751的EPROM編程時(shí),編程脈沖輸入.(3) EA/Vpp: EA是訪問外部程序存儲(chǔ)器的限制信號(hào),EA無效時(shí),訪問內(nèi)部 ROM, EA有效時(shí),訪問外部ROM ,第二功能 Vpp為對(duì)8751EPROM的21V編程電源輸入.(4) RST/Vpd: RST是復(fù)位信號(hào)輸入端,第二功能 Vpd是備用電源輸入端.2. 8有哪幾種方法使單片機(jī)復(fù)位復(fù)位后各存放器、RAM中的狀態(tài)如何答:?jiǎn)纹瑱C(jī)的復(fù)位方式有兩種,上電自動(dòng)復(fù)位和按鈕復(fù)位.復(fù)位后各存放器狀態(tài)為:PC 0000HP0P3FFHTCON 00HS
5、CON 00HACC00HPSW 00HSP 07HDPTR 0000HIPXX000000BIE0X000000BTMOD 00HTL0 00HTH000HTL100HTH100HSBUF XXHPCON 0XXX0000B2. 9在8051擴(kuò)展系統(tǒng)中,片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器使用相同的地址編址,是否會(huì)在數(shù)據(jù)總線上出現(xiàn)爭(zhēng)總線的現(xiàn)象為什么答:不會(huì)發(fā)生爭(zhēng)總線的現(xiàn)象,由于從外部ROM取指令需要用 ALE和PSEN信號(hào)限制讀取操作,由 P2和P0提供地址;而片外數(shù)據(jù)存儲(chǔ)器的讀寫除了地址之外還要RD、WR限制,所以不會(huì)爭(zhēng)總線.2. 10如果8051端口 P0P3作為通用I/O 使用,那么在輸入引
6、腳數(shù)據(jù)時(shí)應(yīng)注意什么答:8051的P1、P2和作為一般輸入I/O 的P以及第一功能的 P3 口均為準(zhǔn)雙向口,在輸入數(shù)據(jù)時(shí)應(yīng)先向端口寫1,然前方可作為高阻輸入.以使其場(chǎng)效應(yīng)管T2截止,才不會(huì)影響輸入電平.3. 2假設(shè)要完成以下的數(shù)據(jù)傳送,應(yīng)如何用(1) R1的內(nèi)容傳送到 R0MOV A,R1MOV 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,#
7、1000H movx a,dptrMCS-51的指令實(shí)現(xiàn)(5) ROM2000H 單元的內(nèi)容傳送到 R0MOV DPTR,#2000HCLR Amovc a,a+dptrMOVR0,A(6) ROM2000H 單元的內(nèi)容傳送到內(nèi)部RAM20H 單元MOV DPTR,#2000HCLR Amovc a,a+dptr MOV 20H,A(7) ROM2000H 單元的內(nèi)容傳送到外部RAM20H 單元MOV DPTR,#2000HCLR Amovc a,a+dptr MOV R0,#20HMOVX R0,AMOV 20H,A3. 3間接轉(zhuǎn)移指令JMP A+DPTR有何優(yōu)點(diǎn)為什么它能代替眾多的判跳指令
8、試舉例說明.答:該間接轉(zhuǎn)移指令的轉(zhuǎn)移地址由A的內(nèi)容和數(shù)據(jù)指針 DPTR的內(nèi)容之和決定,且兩者都是無符號(hào)數(shù),由DPTR決定多分支轉(zhuǎn)移程序的首地址,由a的不同值實(shí)現(xiàn)多分支轉(zhuǎn)移.由于可以根據(jù) a的內(nèi)容進(jìn)行分支轉(zhuǎn)移,所以可以替代眾多判跳指令.如:根據(jù)A的內(nèi)容調(diào)用相應(yīng)的程序,如 A為0調(diào)用OP0, A為1調(diào)用OP1,這里A的值小于128.MOV dptr,#optabRLAJMPA+DPTROPTAB: ACALL OP0ACALL OP1ACALL OP23. 4 設(shè)內(nèi)部 RAM 的 30H 單元的內(nèi)容為 40H ,即(30H) = 40H ,還知(40H) = 10H , (10H) = 00H ,
9、R0、R1、A、B、端口 P1=0CAH .問執(zhí)行以下指令后,各有關(guān)存儲(chǔ)器單元、存放器以及端口的內(nèi)容(即P1 以及 40H、30H、MOV R0,#30HMOV A,R0MOV R1,AMOV B,R1 ;MOV R1,P1MOV P2,P1MOV 10H,#20HMOV 30H,10H10H(B)單元的內(nèi)容).(R0) = 30H(A) = ( 30H) = 40H(R1) = 40H(40H) = 10H(40H) = 0CAH(P2) = 0CAH(10H) = 20H(30H) = 20H3. 58751單片機(jī)的P1 口為輸出,經(jīng)驅(qū)動(dòng)電路接有8只發(fā)光二極管.當(dāng)輸出位是 1時(shí),發(fā)光二極管
10、點(diǎn)亮;輸出位是 0時(shí)發(fā)光二極管熄滅.試分析下述程序的執(zhí)行過程及發(fā)光二極管的發(fā)光情況.LP:MOVP1,#81H;1000 0001BLCALLDELAYLCALLDELAYMOVP1,#24H;0010 0100BMOVP1,#42H;0100 0010BLCALLDELAYLCALLDELAYMOVP1,#42H;0100 0010BMOVP1,#24H;0010 0100BLCALLDELAYLCALLDELAYSJMPLPMOVP1,#18H;0001 1000B答:程序執(zhí)行 MOVP1,#DATA后,根據(jù)DATA的每位的值點(diǎn)亮相應(yīng)的 LED,調(diào)用延時(shí)程序使點(diǎn)亮的LED保持一段時(shí)間.LE
11、D發(fā)光的情況為:每次同時(shí)點(diǎn)亮兩個(gè)LED并從兩邊向中間移動(dòng),然后再向兩邊移動(dòng),并一直循環(huán).3. 6在上題中,假設(shè)系統(tǒng)的晶體振蕩器頻率為6MHz ,求子程序 DELAY的延時(shí)時(shí)間.DELAY:MOV R2,#0FAH;CD 2 pSL1:MOVR3,#0FAH;而L2:DJNZR3,L2;4 而DJNZ R2,L1; 4pSRET; ®4pS0FAH = 250D其中執(zhí)行250次,執(zhí)行時(shí)間為250X4而其中循環(huán)250次,該循環(huán)執(zhí)行時(shí)間為(2+250X4+4) X 250必加上和的執(zhí)行時(shí)間,DELAY的延時(shí)時(shí)間為 2 + (2+250X4+ 4) X 250 + 4= 251.506ms延
12、時(shí)程序的設(shè)計(jì): 首先設(shè)計(jì)內(nèi)循環(huán):MOVR3,#data1;2 的NOP;2 的DJNZR3,$;4 的Xdata1延時(shí)時(shí)間 t1 = 2+2+4Xdata1 =4X (data1+ 1) = 1000 肉=1ms,那么 data1 = 249假設(shè)需要大于1ms時(shí)間,那么先增加一層循環(huán)MOVR2,#data2;2 psL1:MOVR3,#data1;2 psNOP;2 psDJNZR3,$;4 jjsX data1DJNZR2,L2;(4 必+11) x data2延時(shí)時(shí)間為:2 +(4 必+ t1 )x data2=2 + 4 肉+4X (data1+1) Xdata2= 2+4X (data
13、1+2) x data2= 250ms,這里將 datal 修正為 248,得2+4X ( 248+2) Xdata2= 2+ 1000 x data2= 250ms 貝 U data2= 2503. 7根據(jù)圖3-3線路,試設(shè)計(jì)燈亮移位程序,使 8只發(fā)光二極管每次亮一個(gè),循環(huán)右移或左移,一個(gè)一 個(gè)地亮,循環(huán)不止.MOV A,#80HDIS:MOV P1,AACALL DELAY RR A AJMP DIS3. 8設(shè)邏輯運(yùn)算表達(dá)式為:Y =A (B C) D (E F)其中變量 A, B, C分別為P1.0、P1.4、定時(shí)器1溢出標(biāo)志TF1 , D, E, F分別為22H.0、22H.3、外中斷
14、 方式標(biāo)志IE1 ;輸出變量為 P1.5.試編寫實(shí)現(xiàn)上述邏輯功能的程序段.MOV C,P1.4ORL C,/TF1ANL C,P1.0MOV F0,A MOV C,22H.3ORL C,/IE1ANL C,22H.0;(B C);A (B C);用戶自定義標(biāo)志位,暫存數(shù)據(jù);(E F);D (E F)CPLC; D (E F)ORL C,/F0; A (B C) D (E F)MOV P1.5,C4. 1試設(shè)計(jì)數(shù)據(jù)塊傳送程序,將起始地址為0400H的100個(gè)連續(xù)單元中的內(nèi)容送到以4000H為首址的區(qū)域中去解:分析:地址為 16位,且進(jìn)行數(shù)據(jù)傳送,所以連續(xù)單元應(yīng)為外部的存儲(chǔ)器,只能使用外部數(shù)據(jù)傳送
15、指 令,由于源和目的地址都為16位,所以要保存 DPTR的值,但源低8位和目的低8位相同,可以用一個(gè)存放器保存.MOV R0,#00NEXT: MOV DPH,#04HMOV DPL,R0MOVXA,DPTRMOV DPH,#40HMOVXDPTR,AINC R0CJNE R0,#100,NEXT4. 2試編寫程序,計(jì)算片內(nèi) RAM區(qū)40H47H8個(gè)單元中數(shù)的算術(shù)平均值,結(jié)果存放在4AH中.解:分析:8個(gè)數(shù)總和最大值為 FFHX8=7F8H,所以求和時(shí)必須用兩字節(jié)加法,設(shè) R7保存和高8位, R6保存低8位,求和后再除以 8即得算術(shù)平均值,這里需使用 16/8除法,但由于除數(shù)為 23,所以可以
16、直接通過算術(shù)右移3位實(shí)現(xiàn)除以8,前提存儲(chǔ)的數(shù)據(jù)為無符號(hào)數(shù).MOVR0,#40HMOVR6,#00H;和低字節(jié)清零MOVR7,#00H;和高字節(jié)清零NEXT : MOV A,R0;取出一個(gè)字節(jié)INCR0;地址指針下移ADDA,R6;低字力求和MOVR6,A;保存和的低字節(jié)CLR A ADDCA,R7;如果低字節(jié)求和后進(jìn)位,那么加至高字節(jié)MOVR7,A;保存和的高字節(jié)CJNER0,#48H,NEXTMOVR1,#03H;循環(huán)移位3次,實(shí)現(xiàn)除以8DIV8: CLR CMOV A,R7RRC A;高字節(jié)先移位,將 D0移至CMOV R7,AMOV A,R6RRC A;W C移入低字節(jié)的D7,從而實(shí)現(xiàn)1
17、6位數(shù)據(jù)的移位MOV R6,ASUBB A,#00HMOV R6,ADJNZ R3,DIV8DIV168:JCNEXTMOVR3,#00HMOVA,R2MOVR1,#00HADDA,#01HNEXT2:MOVR2,ACLRCJNCNEXT2MOVA,R5INCR3SUBB A,R4AJMP NEXT2MOV R5,ANEXT: MOVA,R5MOVA,R6ADDA,R416位除以8位除法子程序:被除數(shù)R6R5,除數(shù)R4,商R3R2,余數(shù)R1MOVR1,ARET4. 3設(shè)有兩個(gè)長(zhǎng)度為15的數(shù)組,分別存放在0200H和0500H為首地址的存儲(chǔ)區(qū)域中,試編寫程序求其對(duì)應(yīng)項(xiàng)之和,結(jié)果存放在以0300H
18、為首地址的存儲(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)該只考慮沒有進(jìn)位的情況.這里采用第一種方法MOV R0,#15MOV DPL,#00HNEXT:MOVMOVXDPH,#02H A,DPTRADDMOVA,BDPH,#03HMOVB,AMOVXDPTR,AMOVDPH,#
19、05HINCDPTRMOVXA,DPTRDJNZR0,NEXT4. 4在起始地址為 2100H,長(zhǎng)度為64的數(shù)表中找 F的ASCII碼,并將其地址送到兀中去.解:都為RAM單兀,只要找到“ F,那么停止查找.利用存放器R7保存高8位地址,址.1000H 和 1001H 單R6保存低8位地SF:MOVDPTR,#2100HMOVX DPTR,AMOVR0,#64INCDPTRNEXT1:MOVXA,DPTRMOVA,R7CJNEA,#4FH,NEXT2MOVX DPTR,AMOVR7,DPHAJMPSFENDMOVR6,DPLNEXT2:INCDPTRMOVDPTR,#1000HDJNZR0,N
20、EXT1MOVA,R6SFEND: RET4. 5設(shè)計(jì)一個(gè)多字節(jié)無符號(hào)數(shù)加法子程序和減法子程序. 解:(1)多字節(jié)無符號(hào)數(shù)加法(2)多字節(jié)無符號(hào)數(shù)減法設(shè)R0為加數(shù)首地址,R1為被加數(shù)首地址,R2 設(shè)R0為被減數(shù)首地址,R1為字節(jié)數(shù)為字節(jié)數(shù)為減數(shù)首地址,R2JIAFA: CLR CNEXT: MOV A,R0ADDC A,R1MOV R0,AINC R0INC R1JIANFA: CLR CNEXT: MOV A,R0SUBB A,R1MOV R0,AINC R0INC R1DJNZ R2,NEXTRETDJNZ R2,NEXTRET4. 6試設(shè)計(jì)一個(gè)雙字節(jié)無符號(hào)數(shù)乘法子程序和除法子程序.解:設(shè)
21、被乘數(shù)為 R7R6,乘數(shù)為R5R4,結(jié)果存于 R3R2R1R0R7 R6工 R5 R4C2 C1 R6XR4=C2 C1C4 C3 R7 X R4=C4 C3C6 C5 R6 X R5=C6 C5C8 C7 R7 X R5=C8 C7設(shè)被除數(shù)為 R7R6,除數(shù)為R5R4,商存于R3R2,余數(shù)存于 R1R0將被除數(shù)減除數(shù),夠減商加1,然后將差作為被減數(shù),繼續(xù)前面的減法操作,直到不夠減為止,這時(shí)需要恢復(fù)余數(shù).MUL1616:MOVA,R6MOVA,BMOVR2,AMOVB,R4ADCA,#0MOVA,R7MULABMOVR2,AMOVB,R5MOVR0,AMOVA,R6MULABMOVR1,BMO
22、VB,R5ADDA,R2MOVA,R7MULABMOVR2,AMOVB,R4ADDA,R1MOVA,BMULABMOVR1,AADCA,#0ADDA,R1MOVA,BMOVR3,AMOVR1,AADCA,R2RETDIV1616:MOVDPTR,#0JCNEXTMOVR1,ALOOP: CLR CINCDPTRMOVA,DPHMOVA,R6JMPLOOPMOVR3,ASUBBA,R4NEXT:MOVA,R6MOVA,DPLMOVR4,AADDA,R4MOVR2,AMOVA,R7MOVR0,ARETSUBBA,R5MOVA,R7MOVR7,AADCA,R54. 7在3000H為首的存儲(chǔ)器區(qū)域中,
23、存放著14個(gè)由ASCII碼表示的09之間的數(shù),試編寫程序?qū)⑺鼈冝D(zhuǎn)換成 BCD碼,并以壓縮 BCD碼的形式存放在 2000H2006H單元中.解:09的ASCII碼為30H39H,首先必須去掉其中的 3,可以通過減去 30H實(shí)現(xiàn),也可通過 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.MOVR0,#30HMOVR0,AMOVR1,#14INCR0MOVD
24、PTR,#3000HCJNER1,#37H,NEXTNEXT:MOVXA,DPIR ;取出低字節(jié)MOVR0,#30HINC DPTR;源區(qū)地址指針下移MOVDPTR,#2000HANL A,#0FH;低字節(jié)轉(zhuǎn)換為BCD碼NEXT2:MOV A,R0MOVR4,A;暫存數(shù)據(jù)INCR0MOVXA,DPIR ;取出高字節(jié)MOVXDPTR,AINCDPTRINCDPTRANLA,#0FH;高字節(jié)轉(zhuǎn)換為 BCD碼CJNER0,#37H,NEXT2SWAPA;上下四位互換ORLA,R4;將兩個(gè)BCD碼合并4. 8編寫一段程序,模擬如下列圖的邏輯電路的邏輯功能,要求將四個(gè)輸入與非門的邏輯模擬先寫成一個(gè)子程序
25、,然后以屢次調(diào)用得到整個(gè)電路的功能模擬.設(shè)X、Y、Z和W都已定義為位地址,假設(shè)程序中還需要其他地址標(biāo)號(hào),也可以另行定義. 解:方法一:設(shè)計(jì)四輸入與非門子程序,利用子程序必定要傳遞參數(shù),但位操作的傳送指令必須由C完成,所以調(diào)用子程序時(shí)參數(shù)傳遞較復(fù)雜.MOVC,WMOV 00H,CMOVC,ZMOVC,YCPL CCPLCMOV01H,CMOV02H,CMOVC,YMOVC,WMOV02H,CMOV03H,CMOVC,XACALLNAND4MOV03H,CACALLNAND4SETB00HMOV04H,CMOV01H,CMOVC,04HSETB00HMOV02H,CMOVC,XMOVC,05HMO
26、V01H,CMOV03H,CMOVC,YACALLNAND4MOV02H,CMOVF,CMOVC,ZAJMP$MOV03H,CNAND4: MOV C,00HACALLNAND4ANLC,01HMOV05H,CANLC,02HANLC,03HSETB00HCPL CMOVC,XRETMOV01H,CENDCPL 01H00H方法二:利用宏實(shí)現(xiàn) MACRO ,宏可以帶參數(shù),所以參數(shù)傳遞將很方便NAND4 MACRO A1,A2,A3,A4MOV ONE,CMOVC,A1NAND4 X,Y,ONE,WANLC,A2MOV 04H,CANLC,A3SETB ONEANLC,A4NAND4 X,Y,O
27、NE,WCPL CMOV 05H,CENDMCPL YSETB ONEORG0000HNAND4 X,Y,ONE,WAJMPMAINMOV 06H,CORG0030HSETB ONEMAIN: MOVC,ZNAND4 04H,05H,06H,ONECPLCMOV F,C時(shí),定時(shí)值為10ms;當(dāng)(20H) =01H時(shí),定時(shí)值為20ms.請(qǐng)根據(jù)以上要求編寫相應(yīng)程序.解:采用定時(shí)器 T0,工作方式:方式 1,定時(shí)方式,所以 TMOD為:0000001 (01H)定時(shí)初值:(216T0初值)X時(shí)鐘周期X 12= (216 X) X(1/6M) X 12= (216X)2 科= 10(20H)+1 10
28、00 ds10(20H) 11000=65536 -= 65536 -5000 -5000 (20H)= 60536 -5000(20H) = EC78H -1388H (20H)(這里20H單元的內(nèi)容最大為 12,否那么超出16為定時(shí)器的范圍)TIMER:MOV A,20HMOV B,#88HMUL AB;88Hx (20H)MOV R0,A;R0保存低字節(jié)MOV R1,B;R1保存高字節(jié)MOV A,20HMOVB,#13HMUL AB ;13Hx (20H)ADD A,R1MOV R1,A;只要限制20H單元內(nèi)容小于13, 1388Hx ( 20H)即為兩字節(jié)CLR CMOV A,78HS
29、UBB A,R0 78H 減去 1388HX ( 20H)的彳氐字節(jié)MOV TL0,AMOV A,#0ECHSUBB A,R1 ;ECH 減去 1388HX (20H)的高字節(jié)MOV TH0,AMOV TMOD,#01HSETB TR0WAIT: JNB TF0,WAITRET;定時(shí)時(shí)間到 5試用定時(shí)器T1設(shè)計(jì)外部事件計(jì)數(shù)器.要求每計(jì)數(shù) 1萬個(gè)脈沖,就將 T1轉(zhuǎn)為10ms定時(shí)方式,當(dāng) 定時(shí)到后,又轉(zhuǎn)為計(jì)數(shù)方式,如此反復(fù)循環(huán)不止.設(shè)系統(tǒng)的時(shí)鐘頻率為6MHz ,建議選用方式1編寫相 應(yīng)程序. 解:工作方式為方式 1,計(jì)數(shù)方式:TMOD : 01010000 (50H),定時(shí)方式:TMOD : 00
30、010000 (10H) 計(jì)數(shù)初值 X=M計(jì)數(shù)模值=65536- 10000 = 55536 = D8F0H 定時(shí)初值(65536 X) X 2= 10000, X = 60536= EC78H MAIN: MOV TMOD,#50HAJMP WAIT1 MOV TL1,#0F0HNEXT1:MOV TMOD,#10H MOV TH1,#0D8HMOV TL1,#78H SETB TR1MOV TH1,#0ECH WAIT1: JBC TF1,NEXT1WAIT2: JBC TF1,MAIN假設(shè)僅僅是10ms,F口 20ms兩種情況,初值設(shè)置將更簡(jiǎn)單X00H 二60536=EC78H X01H
31、=EC78H -1388H (01H) = D8F0HTIMER:MOVA,20HMOV TH0,#0D8HCJNEA,#00H,NEXT1MOV TL0,#0F0HMOVTH0,#0ECHNEXT2:MOV TMOD,#01H ;T0 工作方式MOVTL0,#78HSETB TR0AJMPNEXT2WAIT:JNB TF0,WAITNEXT1:CJNEA,#01H,NEXT2RET;定時(shí)時(shí)間到上述定時(shí)初值的設(shè)置適合(20H)為00H12H,即可以實(shí)現(xiàn)10ms190ms的定時(shí).AJMP WAIT25. 7利用8051單片機(jī)定時(shí)器測(cè)量某正脈沖寬度寬度,采用何種工作方式可以獲得最大的量程假設(shè)時(shí)鐘頻
32、率為6MHz ,那么允許測(cè)量的最大脈寬是多少解:要獲得最大量程,那么定時(shí) /計(jì)數(shù)器的計(jì)數(shù)值必須到達(dá)最大,只有方式1是工作在16位計(jì)數(shù)模式.由于測(cè)脈寬,所以定時(shí)/計(jì)數(shù)器工作于定時(shí)方式,且由外部中斷引腳電平啟動(dòng)定時(shí).最大定時(shí)時(shí)間為:(M X) X T= ( 65536 0) X 12X 1/6MHz = 131.072ms7. 3某異步通訊接口,其幀格式由一個(gè)起始位,7個(gè)數(shù)據(jù)位,1個(gè)奇偶校驗(yàn)位和一個(gè)停止位組成.當(dāng)該接口每分鐘傳送1800個(gè)字符時(shí),計(jì)算其傳送波特率.解:由幀格式可知:一個(gè)字符由1 + 7+1+1 = 10位組成,波特率=1800 X 10/60=300波特.7. 6為什么定時(shí)器T1用
33、作串行口波特率發(fā)生器時(shí)常采用工作方式2?假設(shè)T1設(shè)置成方式2,用作波特率發(fā)生器,系統(tǒng)時(shí)鐘頻率為11.0592MHz ,求可能產(chǎn)生的最高和最低的波特率各是多少答:由于定時(shí)器 T1的方式2為自動(dòng)重裝定時(shí)初值,這樣操作方便,也預(yù)防了因重裝定時(shí)初值引起的定fOSC12 1256 初值?SMOD時(shí)誤差.由波特率=232當(dāng)初值為0, SMOD =0時(shí),得到最低波特率=112.5當(dāng)初值為255, SMOD = 1時(shí),得到最低波特率= 57.6K7. 7在8051應(yīng)用系統(tǒng)中,時(shí)鐘頻率為6MHz.現(xiàn)需利用定時(shí)器 T1方式2產(chǎn)生1200波特的波特率.試計(jì)算定時(shí)器的初值,并指出實(shí)際得到的波特率與所要求的波特率是否有
34、誤差.解:根據(jù)波特率計(jì)算公式°SMOD2f osc3212 1256 -初值 JSMOD1200 =326MHz12,1<256 -初值= 15625 2SMOD,1;256 初值當(dāng)SMOD =0時(shí),初值為當(dāng)SMOD = 1時(shí),初值為243,此時(shí)實(shí)際的波特率為:230,此時(shí)實(shí)際的波特率為:1201.921201.92所以實(shí)際波特率與要求的波特率有誤差.7. 8試設(shè)計(jì)一個(gè)8051單片機(jī)的雙機(jī)通訊系統(tǒng),并編寫程序?qū)機(jī)片內(nèi)RAM40H5FH的數(shù)據(jù)塊通過串行口傳送 B機(jī)的片內(nèi) RAM 60H7FH中去.解:該雙機(jī)通訊系統(tǒng),是將 A機(jī)數(shù)據(jù)發(fā)送到B機(jī),所以可以采用單工工作方式串彳丁 口米
35、用方式1 10位異步收發(fā),米用查詢方式A機(jī):發(fā)送CLRTIMOVTMOD,#20HNEXT: MOVA,R0MOVTL1,#0F3HINCR0MOVTH1,#0F3HMOVSBUF,ASETBTR1JNBTI,$MOVSCON,#40HCJNER0,#60H, NEXTMOVR0,#40HAJMP$B機(jī):接收NEXT: CLRRIMOVTMOD,#20HJNBRI,$MOVTL1,#0F3HMOVA,SBUFMOVTH1,#0F3HMOVR0,ASETBTR1INCR0MOVSCON,#50HCJNER0,#80H, NEXTMOVR0,#60HAJMP$8. 1 8051有幾個(gè)中斷源,各中斷
36、標(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)生的,它們只能利用軟件去除.8. 3如何區(qū)分串行通訊中的發(fā)
37、送中斷和接收中斷RI和TI標(biāo)志判斷是哪種中斷,答:串行通訊中,發(fā)送和接收中斷共用一個(gè)中斷入口地址,但可以通過TI = 1表不發(fā)送中斷,RI = 1表不接收中斷.8. 4如何設(shè)定外部中斷源是采用邊沿觸發(fā)還是電平觸發(fā)這兩種中斷觸發(fā)所產(chǎn)生的中斷過程有和不 同答:可通過IT1和IT0標(biāo)志位進(jìn)彳T設(shè)置,IT = 0時(shí),為電平觸發(fā),IT = 1時(shí),為邊沿觸發(fā).電平觸發(fā),CPU 響應(yīng)中斷時(shí)不會(huì)去除IE標(biāo)志,所以中斷返回前應(yīng)撤銷 INT引腳上的低電平;邊沿觸發(fā)方式, CPU連續(xù) 兩個(gè)機(jī)器周期采樣到先高后低的電平,那么置位IE標(biāo)志,CPU響應(yīng)中斷時(shí)由硬件去除 IE標(biāo)志.8. 7試用中斷方法設(shè)計(jì)秒、分脈沖發(fā)生器,即由 8051的P1.0每秒鐘產(chǎn)生一個(gè)機(jī)器周期的正脈沖,由 P1.1每分鐘產(chǎn)生一個(gè)機(jī)器周期的正脈沖.解:設(shè)系統(tǒng)時(shí)鐘為 6MHz ,由定時(shí)器完成定時(shí),最大定時(shí)時(shí)間為65536X 2us= 131096us= 131.096ms,所以設(shè)置定時(shí)器定時(shí)時(shí)間為10
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度施工合同糾紛和解免責(zé)協(xié)議
- 2025年度都市時(shí)尚酒吧連鎖經(jīng)營(yíng)合作協(xié)議
- 工作交流座談會(huì)發(fā)言稿
- 整體防雷方案設(shè)計(jì)及接地系統(tǒng)方案
- 2025年郴州貨運(yùn)從業(yè)資格考試題
- 影視劇本等信息保密合同
- 2024年學(xué)校勞動(dòng)合同
- 凡爾賽條約及其影響的歷史解讀:初中歷史課堂探討案例
- 重要會(huì)議紀(jì)要與行動(dòng)綱領(lǐng)
- 綜合英語(河北師范大學(xué))知到課后答案智慧樹章節(jié)測(cè)試答案2025年春河北師范大學(xué)
- 溫庭筠《望江南》ppt課件
- 口腔正畸學(xué)單詞
- 公共場(chǎng)所健康證體檢表
- 普通高等學(xué)校獨(dú)立學(xué)院教育工作合格評(píng)估指標(biāo)體系(第六稿)
- 內(nèi)襯修復(fù)用HTPO管材企標(biāo)
- 部編教材一年級(jí)下冊(cè)生字筆順筆畫
- 多維閱讀第13級(jí)—A Stolen Baby 小猩猩被偷走了
- 二維火收銀使用手冊(cè)
- 2018版公路工程質(zhì)量檢驗(yàn)評(píng)定標(biāo)準(zhǔn)分項(xiàng)工程質(zhì)量檢驗(yàn)評(píng)定表交通安全設(shè)施
- EN12680.3中文
- 歐科模塊化風(fēng)冷冷水熱泵機(jī)組報(bào)警代碼和維修步驟
評(píng)論
0/150
提交評(píng)論