定時(shí)器計(jì)數(shù)器TT接口習(xí)題_第1頁
定時(shí)器計(jì)數(shù)器TT接口習(xí)題_第2頁
定時(shí)器計(jì)數(shù)器TT接口習(xí)題_第3頁
定時(shí)器計(jì)數(shù)器TT接口習(xí)題_第4頁
定時(shí)器計(jì)數(shù)器TT接口習(xí)題_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余13頁可下載查看

下載本文檔

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

文檔簡介

1、17 / 17T0低5位:1BHT0 高8位:FFHMOV TMOD,#00HMOVTL0,#1BHMOVTH0,#0FFHSETBTR0LOOPJBCTF0,L1SJMPLOOPL1MOVTL0,#1BHMOVTH0,#0FFHCPL P1.0SJMP LOOP第6章習(xí)題答案1、定時(shí)器模式2有什么特點(diǎn)?適用于什么場合? 答: (1) 模式2把TL0(或TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì) 數(shù)器。TL0計(jì)數(shù)溢出時(shí)不僅使溢出中斷標(biāo)志位 TF0置1,而且還自動(dòng)把TH0中的 內(nèi)容重新裝載到TL0中。TL0用作8位計(jì)數(shù)器,TH0用以保存初值。(2)用于定時(shí)工作方式時(shí)間(TF0溢出周期)為,

2、用于計(jì)數(shù)工作方式時(shí),計(jì)數(shù)長度(TH0初值=0)為28=256個(gè)外部脈沖。這種工作方式可省去用戶軟件重裝初值的語句,并可產(chǎn)生相當(dāng)精確定時(shí)時(shí)間, 特別適于作串行波特率發(fā)生器。100KHz等寬矩形波,假定單片機(jī)的晶振頻2、單片機(jī)內(nèi)部定時(shí)方式產(chǎn)生頻率為率為12MHz,請編程實(shí)現(xiàn)。答:;設(shè)置定時(shí)器T0工作于模式0;設(shè)置5ms定時(shí)初值;啟動(dòng)T0;查詢到定時(shí)時(shí)間到?時(shí)間到轉(zhuǎn) L1;時(shí)間未到轉(zhuǎn)LOOP,繼續(xù)查詢;重新置入定時(shí)初值;輸出取反,形成等寬矩形波;重復(fù)循環(huán) 3、89C51定時(shí)器有哪幾種工作模式?有何區(qū)別?答:有四種工作模式:模式0,模式1,模式2,模式3(1)模式0:選擇定時(shí)器的高8位和低5位組成一個(gè)

3、13位定時(shí)器/計(jì)數(shù)器TL低5位溢出時(shí)向TH進(jìn)位,TH溢出時(shí)向中斷標(biāo)志位TF進(jìn)位,并 申請中斷。定時(shí)時(shí)間t=(213-初值)X振蕩周期X 12;計(jì)數(shù)長度位213=8192個(gè)外部脈沖(2) 模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操 作。定時(shí)時(shí)間t=(216-初值)X振蕩周期X 12;計(jì)數(shù)長度位216=65536個(gè) 夕卜部脈沖(3) 模式2:把TL0和TL1配置成一個(gè)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TL用作8位計(jì)數(shù)器,TH用以保存初值。TL計(jì)數(shù)溢出時(shí)不僅使TF0 置1,而且還自動(dòng)將TH中的內(nèi)容重新裝載到TL中。定時(shí)時(shí)間t=(28-初值)X振蕩周期X 12;計(jì)數(shù)長度位28=256

4、個(gè)外部脈沖(4) 模式3:對T0和T1不大相同若設(shè)T0位模式3, TL0和TH0被分為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器。TL0為8 位計(jì)數(shù)器,功能與模式0和模式1相同,可定時(shí)可計(jì)數(shù)。TH0僅用作簡單的內(nèi)部定時(shí)功能,它占用了定時(shí)器T1的控制位TR1和中斷標(biāo)志位TF1,啟動(dòng)和關(guān)閉僅受TR1控制。定時(shí)器T1無工作模式3,但T0在工作模式3時(shí)T1仍可設(shè)置為02。4、89C51內(nèi)部設(shè)有幾個(gè)定時(shí)器/計(jì)數(shù)器?它們是由哪些特殊功能寄存器組 成?答:89C51單片機(jī)內(nèi)有兩個(gè)16位定時(shí)器/計(jì)數(shù)器,即T0和T1。T0由兩個(gè)8位特殊功能寄存器TH0和TL0組成;T1由TH1和TL1組成。5、定時(shí)器用作定時(shí)器時(shí),其定時(shí)時(shí)間與哪

5、些因素有關(guān)?作計(jì)數(shù)器時(shí),對外 界計(jì)數(shù)頻率有何限制?答:定時(shí)時(shí)間與定時(shí)器的工作模式,初值及振蕩周期有關(guān)。作計(jì)數(shù)器時(shí)對外界計(jì)數(shù)頻率要求最高為機(jī)器振蕩頻率的1/24。6、簡述定時(shí)器4種工作模式的特點(diǎn),如何選擇設(shè)定?答:(1)模式0:選擇定時(shí)器的高8位和低5位組成一個(gè)13位定時(shí)器/計(jì)數(shù)器。TL低5位溢出時(shí)向TH進(jìn)位,TH溢出時(shí)向中斷標(biāo)志位TF進(jìn)位,并申請中斷。定時(shí)時(shí)間t=(213-初值)X振蕩周期X 12;計(jì)數(shù)長度位213=8192個(gè)外部脈沖置TMOD 中的M1M0為00(2)模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操 作。定時(shí)時(shí)間t=(216-初值)X振蕩周期X 12;計(jì)數(shù)長度位

6、216=65536個(gè) 夕卜部脈沖置TMOD中的M1M0為01(3)模式2:把TL0和TL1配置成一個(gè)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。 TL用作8位計(jì)數(shù)器,TH用以保存初值。TL計(jì)數(shù)溢出時(shí)不僅使TF0 置1,而且還自動(dòng)將TH中的內(nèi)容重新裝載到TL中。定時(shí)時(shí)間t=(28-初值)X振蕩周期X 12;計(jì)數(shù)長度位28=256個(gè)外部脈沖置TMOD中的M1M0為10(4)模式3:對T0和T1不大相同若設(shè)T0位模式3, TL0和TH0被分為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器。TL0為8 位計(jì)數(shù)器,功能與模式0和模式1相同,可定時(shí)可計(jì)數(shù)。TH0僅用作簡單的內(nèi)部定時(shí)功能,它占用了定時(shí)器 T1的控制位TR1和中斷 標(biāo)志位TF

7、1,啟動(dòng)和關(guān)閉僅受TR1控制。定時(shí)器T1無工作模式3,但T0在工作模式3時(shí)T1仍可設(shè)置為02。置TMOD中的M1M0為117、當(dāng)T0用作模式3時(shí),由于TR1已被T0占用,如何控制T1的開啟和關(guān)閉? 答:用T1控制位C/T切換定時(shí)器或計(jì)數(shù)器工作方式就可以使 T1運(yùn)行。定 時(shí)器T1無工作模式3,將T1設(shè)置為工作模式3,就會(huì)使T1立即停止計(jì)數(shù), 關(guān)閉。8、以定時(shí)器/計(jì)數(shù)器1進(jìn)行外部時(shí)間計(jì)數(shù),每計(jì)數(shù)1000個(gè)脈沖后,定時(shí)器/計(jì) 數(shù)器1轉(zhuǎn)為定時(shí)工作方式,定時(shí)10ms后又轉(zhuǎn)為計(jì)數(shù)方式,如此循環(huán)不止。假 定為6WHZ,用模式1編程。解:T1為定時(shí)器時(shí)初值:SJMPLOOP1;無溢出轉(zhuǎn)LOOP1,繼續(xù)查詢L2

8、:CLR TR1;關(guān)閉T1MOV TMOD,#10H;設(shè)置T1為定時(shí)方式且工作與模式1MOVTH1,#0ECH;置入定時(shí)10ms初值MOVTL1,#78HSETBTR1;啟動(dòng)T1定時(shí)LOOP2JBCTF1 ,L1;查詢10ms時(shí)間到?時(shí)間到,轉(zhuǎn) L1SJMPLOOP2;時(shí)間未到,轉(zhuǎn)LOOP2,繼續(xù)查詢9、一個(gè)定時(shí)器定時(shí)時(shí)間有限,T1為計(jì)數(shù)器時(shí)初值:所以:L1:MOV TMOD,#50H;設(shè)置T1為計(jì)數(shù)方式且工作模式為1SETB TR1MOV TH1,#0FCHMOV TL1,#18H;置入計(jì)數(shù)初值;啟動(dòng)T1計(jì)數(shù)器L00P1:JBC TF1,L2;查詢計(jì)數(shù)溢出?有溢出(計(jì)數(shù)滿1000個(gè))轉(zhuǎn)L2如

9、何實(shí)現(xiàn)兩個(gè)定時(shí)器的串行定時(shí)以滿足較長定時(shí)時(shí)間的要求?答:當(dāng)一個(gè)定時(shí)器溢出時(shí),設(shè)置另一個(gè)定時(shí)器的初值為0開始定時(shí)。10、使用一個(gè)定時(shí)器,如何通過軟硬件結(jié)合方法實(shí)現(xiàn)較長時(shí)間的定時(shí)?答:設(shè)定好定時(shí)器的定時(shí)時(shí)間,采用中斷方式用軟件設(shè)置計(jì)數(shù)次數(shù),進(jìn)行溢出 次數(shù)累計(jì),從而得到較長的時(shí)間。11、89C51定時(shí)器作定時(shí)和計(jì)數(shù)時(shí)其計(jì)數(shù)脈沖分別由誰提供?答:作定時(shí)器時(shí)計(jì)數(shù)脈沖由89C51片內(nèi)振蕩器輸出經(jīng)12分頻后的脈沖提供,作計(jì) 數(shù)時(shí)計(jì)數(shù)脈沖由外部信號通過引腳 P3.4和P3.5提供。12、89C51定時(shí)器的門控信號GATE設(shè)置為1時(shí)定時(shí)器如何啟動(dòng)?答:只有(或)引腳為高電平且由軟件使TR0 (或TR1 )置1時(shí)

10、,才能啟動(dòng)定時(shí)器 工作。13、已知89C51單片機(jī)的fosc=6MHz,請利用T0和P1.0俞出矩形波。矩形波高電 平寬50卩s,低電平寬300卩So解:T0采用模式2作為50卩s定時(shí)時(shí)的初值:所以作300卩s定時(shí)時(shí)的初值:所以MOV TMOD,#02HL2:CLR P1.0MOV TH0,#6AH;設(shè)置定時(shí)器T0工作于模式2;P1.0輸出低電平;置入定時(shí)300卩s初值MOV TL0,#6AHSETB TR0LOOP1JBCTF0,L1LOOP1SJMPL1:SETBP1.0CLRTR0MOVTH0,#0E7HMOVTL0,# 0E7H;查詢50卩s時(shí)間到?時(shí)間到,轉(zhuǎn)L2;時(shí)間未到,轉(zhuǎn)LOOP

11、2,繼續(xù)查詢;啟動(dòng)T0;查詢300卩s時(shí)間到?時(shí)間到,轉(zhuǎn) L1;時(shí)間未到,轉(zhuǎn)LOOP1,繼續(xù)查詢;P1.0輸出高電平;關(guān)閉T0;置入定時(shí)300卩s初值SETB TR0;啟動(dòng) T0LOOP2:JBCTF0 ,L2SJMP LOOP214、已知89C51單片機(jī)的fosc=12MHz,用 T1定時(shí)。試編程由P1.0和 P1.1引腳分 別輸出周期為2ms和500卩s的方波。解:采用模式0作定時(shí)初值:所以MOVR2,#04H;R2為“ 250卩s”計(jì)數(shù)器,置入初值4CLRP1.0;P1.0輸出低電平CLRP1.1;P1.1輸出低電平MOVTMOD,#00HL2:M0VTH1,#0F8H;置入定時(shí)250卩

12、s初值MOVTL1,#06HSETBTR1;啟動(dòng)T1LOOP:JBCTF1,L1;查詢250卩s時(shí)間到?時(shí)間到,轉(zhuǎn) L1SJMPLOOP;時(shí)間未到,轉(zhuǎn)LOOP,繼續(xù)查詢L1:CPLP1.1;P1.1輸出取反,形成周期為500卩sCLRTR1;關(guān)閉T1DJNZR2,L2;“250卩s”計(jì)數(shù)器減1,到1ms嗎?未到轉(zhuǎn)L2CPL 1P1.0;P1.0輸出取反,形成周期為2ms方波MOVR2,#04H;重置“ 250卩s”計(jì)數(shù)器初值4LJMPL2;重復(fù)循環(huán)15、單片機(jī)8031的時(shí)鐘頻率為6MHz,若要求定時(shí)值分別為0.1ms,1ms,10mj定時(shí)器0工作在模式0、模式1和模式2時(shí),其定時(shí)器初值各應(yīng)是多

13、少?解:(1)0.1ms模式0:T0 低 5位 01110B=0EHT0 高 8位:11111110B=FEH模式1:模式2:(2) 1ms模式0:T0 低 5位 01100B=0CHT0 高 8位:11110000B=F0H模式1:模式2:在此情況下最長定時(shí)為512卩s,無法一次實(shí)現(xiàn)定時(shí)1ms,可用0.1ms循環(huán)10次(3)10ms模式0:T0 低 5位 11000B=18HT0 高8位:01100011B=63H模式1:模式2:在此情況下最長定時(shí)為512卩s,無法一次實(shí)現(xiàn)定時(shí)10ms,可用0.1ms 循環(huán)100次16、89C51單片機(jī)的定時(shí)器在何種設(shè)置下可提供三個(gè) 8位計(jì)數(shù)器定時(shí)器?這時(shí),

14、 定時(shí)器1可作為串行口波特率發(fā)生器。若波特率按9600b/s,4800b/s,2400b/s,1200b/s,600b/s,100bs考慮,則此時(shí)可選用的波特率是 多少(允許存在一定誤差)?設(shè) fosc=12MHz。解:當(dāng)T0為模式3, T1為模式2時(shí),可提供3個(gè)8位定時(shí)器。解:可選100b/sMOVTMOD,#05H;T0為計(jì)數(shù)方式且工作于模式1JNBP1.2,$;等待P1.2引腳電平上跳MOVTH0,#00H;P1.2電平上跳,置入計(jì)數(shù)初值MOVTL0,#00HSETBTR0;啟動(dòng)T0JBP1.2,$;等待P1.2引腳電平下跳CLRTR0;電平下跳,關(guān)閉T0MOVR7,TH0;計(jì)數(shù)初值寫入

15、R7,R6MOVR6,TL0仃、試編制一段程序,功能為:當(dāng) P1.2引腳的電平上跳時(shí),對P1.1的輸入脈沖 進(jìn)行計(jì)數(shù);當(dāng)P1.2引腳的電平下跳時(shí),停止計(jì)數(shù),并將計(jì)數(shù)值寫入R6,R7。18、設(shè)fosc=12MHz。試編制一段程序,功能為:對定時(shí)器 T0初始化,使之工 作在模式2,產(chǎn)生200卩s定時(shí),并用查詢T0溢出標(biāo)志的方法,控制P1.0輸出周 期為2ms的方波。解:T0作定時(shí)器時(shí)初值:所以程序1:CLR P1.0;P1.0輸出低電平MOV R2,#05H;R2為“ 200卩s”計(jì)數(shù)器,置入初值5,計(jì)1msMOV TMOD,#02H;設(shè)定時(shí)器T0工作于模式2L2:MOV TH0,#38H;置入定

16、時(shí)初值MOV TL0,#38HSETB TR0;啟動(dòng)T0LOOP:JBC TF0,L1;查詢200卩s時(shí)間到?時(shí)間到,轉(zhuǎn) L1SJMP LOOP;時(shí)間未到,轉(zhuǎn)LOOP,繼續(xù)查詢L1:CLR TR0;關(guān)閉T0DJNZ R2,L2;“ 200卩s”計(jì)數(shù)器減1,到1ms嗎?未到,轉(zhuǎn)L2CPL P1.0;到1ms,P1.0取反,形成周期為2ms的方波MOV R2,#05H;重置“ 200卩s”計(jì)數(shù)器初值LJMP L2;重復(fù)循環(huán)程序2:MAIN:MOV TMOD,#02H;設(shè)定時(shí)器T0工作于模式2CLR P1.0;P1.0輸出低電平LOOP1:MOV R2,#05H;R2為“ 200卩s”計(jì)數(shù)器,置入初

17、值5,計(jì)1msLOOP:MOV TH0,#38H;置入定時(shí)初值MOV TL0,#38HSETB TR0;啟動(dòng)T0JNB TF0,$;查詢200卩s時(shí)間到?時(shí)間到,繼續(xù)查詢CLR TR0;關(guān)閉T0DJNZ R2,LOOP;“ 200卩s”計(jì)數(shù)器減1,到1ms嗎?未到,轉(zhuǎn)LOOPCPL P1.0;到1ms,P1.0取反,形成周期為2ms的方波SJMP LOOP1;重復(fù)循環(huán)佃、以中斷方法設(shè)計(jì)單片機(jī)秒、分脈沖發(fā)生器。假定P1.0每秒產(chǎn)生1個(gè)機(jī)器周期的正脈沖,P1.1每分產(chǎn)生1個(gè)周期的正脈沖。參考書上例題6-6第七章第7章習(xí)題1、什么是串行異步通信,它有哪些作用?答:在異步串行通信中,數(shù)據(jù)是一幀一幀(包

18、括一個(gè)字符代碼或一字節(jié)數(shù)據(jù)) 傳送的,每一幀的數(shù)據(jù)格式參考書。通信采用幀格式,無需同步字符。存在空 閑位也是異步通信的特征之一。2、89C51單片機(jī)的串行口由哪些功能部件組成?各有什么作用?答:89C51單片機(jī)的串行接口由發(fā)送緩沖期 SBUF,接收緩沖期SBUF、輸入移 位寄存器、串行接口控制器SCON、定時(shí)器T1構(gòu)成的波特率發(fā)生器等部件組成。 由發(fā)送緩沖期SBUF發(fā)送數(shù)據(jù),接收緩沖期SBUF接收數(shù)據(jù)。串行接口通信的 工作方式選擇、接收和發(fā)送控制及狀態(tài)等均由串行接口控制寄存器SCON控制和指示。定時(shí)器T1產(chǎn)生串行通信所需的波特率。3、簡述串行口接收和發(fā)送數(shù)據(jù)的過程。答:串行接口的接收和發(fā)送是對

19、同一地址(99H )兩個(gè)物理空間的特殊功能寄存 器SBUF進(jìn)行讀和寫的。當(dāng)向SBUF發(fā)“寫”命令時(shí)(執(zhí)行“ MOV SBUF,A ”), 即向緩沖期SBUF裝載并開始TXD引腳向外發(fā)送一幀數(shù)據(jù),發(fā)送完便使發(fā)送中 斷標(biāo)志位Tl=1。在滿足串行接口接收中斷標(biāo)志位 Rl(SCON.0)=0的條件下,置允許接收位REN (SCON.4)=1,就會(huì)接收一幀數(shù)據(jù)進(jìn)入移位寄存器,并裝載到接收SBUF中,同時(shí)使RI=1。當(dāng)發(fā)讀SBUF命令時(shí)(執(zhí)行“ MOV A, SBUF ”),便由接收緩沖期 SBUF取出信息通過89C51內(nèi)部總線送CPU。4、89C51串行口有幾種工作方式?有幾種幀格式?各工作方式的波特率

20、如何確定?答:89C51串行口有4種工作方式:方式0( 8位同步移位寄存器),方式1( 10位異步收發(fā)),方式2( 11位異步收發(fā)), 方式3( 11位異步收發(fā))。有2種幀格式:10位,11位方式0:方式0的波特率也fosc/12(波特率固定為振蕩頻率1/12)方式2:方式2波特率也2SM°D/64X fosc方式1和方式3:方式1和方式3波特率也2SMOD/32X (T1溢出速率)如果T1采用模式2則:5、若異步通信接口按方式3傳送,已知其每分鐘傳送3600個(gè)字符,其波特率是多少?答:已知每分鐘傳送3600個(gè)字符,方式3每個(gè)字符11位,貝波特率=(11b/字符)X( 3600字符/

21、60s) =660b/s6、89C51 中 SCON 的 SM2,TB8, RB8有何作用?答:89C51SCON的SM2是多機(jī)通信控制位,主要用于方式2和方式3若置SM2=1, 則允許多機(jī)通信。TB8是發(fā)送數(shù)據(jù)的第9位,在方式2或方式3中,根據(jù)發(fā)送數(shù)據(jù)的需要由軟件置位 或復(fù)位。它在許多通信協(xié)議中可用作奇偶校驗(yàn)位;在多機(jī)通信中作為發(fā)送地址 幀或數(shù)據(jù)幀的標(biāo)志位。RB8是接收數(shù)據(jù)的第9位,它或是約定的奇偶校驗(yàn)位,或是約定的地址 /數(shù)據(jù)標(biāo)示位。7、設(shè) fosc= 11.059MHz,試編寫一段程序,其功能為對串行口初始化,使之工在方式2或方式3中接收到的第9位數(shù)據(jù)放在RB8位。作與方式1,波特率為1

22、200b/s;并用查詢串行口狀態(tài)的方法,讀出接收緩沖器的 數(shù)據(jù)并回送到發(fā)送緩沖器。START:MOV SCON,#40H解:MOV TMOD,#20H;定時(shí)器T1工作于模式MOV TH1,#0E8H;賦定時(shí)器計(jì)數(shù)初值MOV TL1,#0E8HSETB TR1;啟動(dòng)定時(shí)器T1MOV A,SBUF;讀出接收緩沖器數(shù)據(jù)MOV SBUF,A;啟動(dòng)發(fā)送過程JNB TI,$;等待發(fā)送完CLR TI;清TI標(biāo)志SJMP $;結(jié)束;串行接口工作于方式18、若晶振為11.0592MHz,串行口工作與方式1,波特率為4800b/s寫出用T1 作為波特率發(fā)生器的方式字和計(jì)數(shù)初值。解:MOV TMOD,#20H;定時(shí)

23、器T1工作于模式2MOV TH1,#0FAH;賦定時(shí)器計(jì)數(shù)初值MOV TL1,#0FAH9、為什么定時(shí)器T1用作串行口波特率發(fā)生器時(shí),常選用工作模式 2?若已知系 統(tǒng)時(shí)鐘頻率和通信用的波特率,如何計(jì)算其初值?答:因?yàn)楣ぷ髂J?是自動(dòng)重裝初值定時(shí)器,編程時(shí)無需重裝時(shí)間參數(shù)(計(jì)數(shù)初 值),比較使用。若選用工作模式0或工作模式1,當(dāng)定時(shí)器T1溢出時(shí),需在中斷 服務(wù)程序中重裝初值。已知系統(tǒng)時(shí)鐘頻率fosc和通信用的波特率fbaud,可得出定時(shí)器T1模式2的初值10、若定時(shí)器T1設(shè)置成模式2作波特率發(fā)生器,已知fosE 6MHz。求可能產(chǎn)生 的最高和最低的波特率。解:最高波特率為T1定時(shí)最小值時(shí),此時(shí)初

24、值為255,并且SMOD=1,有:最高波特率為T1定時(shí)最大值時(shí),此時(shí)初值為0,并且SMOD=0,有:11、串行通信的總線標(biāo)準(zhǔn)是什么?有哪些內(nèi)容?答:美國電子工業(yè)協(xié)會(huì)(EIA )正式公布的串行總線接口標(biāo)準(zhǔn)有RS-232C,RS-422,RS-423和 RS-485等。在異步串行通信中應(yīng)用最廣的標(biāo)準(zhǔn)總線是 RD-232C。它包括了按位串行傳輸?shù)?電氣和機(jī)械方面的規(guī)定,如適用范圍、信號特性、接口信號及引腳說明等,適 用于短距離(15m)或帶調(diào)制解調(diào)的通信場合。采用 RS-422, RS-485標(biāo)準(zhǔn)時(shí), 通信距離可達(dá)1000m。12、簡述單片幾多機(jī)通信的原理。答:當(dāng)一片89C51 (主機(jī))與多片89C

25、51 (從機(jī))通信時(shí),所有從機(jī)的 SM2位都 置1主機(jī)首先發(fā)送的一幀數(shù)據(jù)為地址,即某從機(jī)機(jī)號,其中第 9位為1,所有的從 機(jī)接收到數(shù)據(jù)后,將其中第9位裝入RB8中。各從機(jī)根據(jù)收到的第9位數(shù)據(jù)(RB8中)的值來決定從機(jī)可否再接收主機(jī)的信息。若(RB8) =0,說明是數(shù)據(jù)幀,則 使接收中斷標(biāo)志位RI=0,信息丟失;若(RB8)=1說明是地址幀,數(shù)據(jù)裝入SBUF 并置RI=1,中斷所有從機(jī),只有被尋址的目標(biāo)從機(jī)清除 SM2(SM2=0),以接 收主機(jī)發(fā)來的一幀數(shù)據(jù)(點(diǎn)對點(diǎn)通信)。其他從機(jī)仍然保持SM2=1.13、當(dāng)89C51串行口按工作方式1進(jìn)行串行數(shù)據(jù)通信時(shí)。假定波特率為1200b/s,解:設(shè)系統(tǒng)

26、時(shí)鐘頻率fosc=6.0MHz。查教材表9-2可知,可取SMOD=0,T1的計(jì)數(shù)以中斷方式傳送數(shù)據(jù)。請編寫全雙工通信程序。初值為F3H。程序如下:ORG0000HAJMP MAIN;上電,轉(zhuǎn)向主程序ORG0023H;串行口的中斷入口地址AJMP SERVE ;轉(zhuǎn)向中斷服務(wù)程序ORG0040H;主程序MAIN:MOVSP,#60H;設(shè)置堆棧指針MOVSCON ,#50HMOVPCON ,#00HMOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HSETBTR1MOVR0 ,#20H;置發(fā)送數(shù)據(jù)區(qū)首地址MOVR1 ,#40H;置接收數(shù)據(jù)區(qū)首地址MOVR7 ,#10H;置發(fā)送字節(jié)

27、長度MOVR6 ,#10H;置接收字節(jié)長度SETB ES;允許串仃口中斷SETB EA;CPU允許中斷MOVA ,R0;取第一個(gè)數(shù)據(jù)發(fā)送MOVSBUF ,A;發(fā)送第一個(gè)數(shù)據(jù)SJMP $;等待中斷SERVE: JNB RI ,SEND;TI=1,為發(fā)送中斷CLR RIMOV A ,SBUF;讀出接收緩沖區(qū)內(nèi)容MOV R1 ,A;讀入接收緩沖區(qū)DJNZ R6 ,L1;判斷數(shù)據(jù)塊發(fā)送完否SJMP L2;數(shù)據(jù)塊接收完,轉(zhuǎn)L2L1:INC R1;修改數(shù)據(jù)區(qū)指針L2:RETI;中斷返回L3:L4:14、SEND:CLR TIDJNZ R7 ,L3SJMP L4;清除發(fā)送中斷標(biāo)志;判斷數(shù)據(jù)塊發(fā)送完否;數(shù)據(jù)塊接收完,轉(zhuǎn)L4MOV A ,R0MOV SBUF ,AINC R0RETIEND;取數(shù)據(jù)發(fā)送;發(fā)送數(shù)據(jù);修改數(shù)據(jù)地址;中斷返回以89C51串行口按工作方式3進(jìn)行串行數(shù)據(jù)通信。假定波特率為1200b/s,第9數(shù)據(jù)位作奇偶校驗(yàn)位,以中斷方式傳送數(shù)據(jù)。請編寫通信程序。解:ORG 0000HAJMP MAIN;上電,轉(zhuǎn)向主程序ORG 0023H;串行口的中斷入口地址AJMP STOP;轉(zhuǎn)向中斷服務(wù)程序ORG 0040H注程序MAIN: MOV SP,#60HMOVTMOD,#20HMOVTH

溫馨提示

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

評論

0/150

提交評論