元件1-p89c51x立功單片機(jī)發(fā)展Telhttp_第1頁
元件1-p89c51x立功單片機(jī)發(fā)展Telhttp_第2頁
元件1-p89c51x立功單片機(jī)發(fā)展Telhttp_第3頁
元件1-p89c51x立功單片機(jī)發(fā)展Telhttp_第4頁
元件1-p89c51x立功單片機(jī)發(fā)展Telhttp_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

儲(chǔ)器全部支持12時(shí)鐘和6時(shí)鐘操作P89C51X2P89C52X2/54X2/58X2128字節(jié)256RAM32I/O口線316位定時(shí)/計(jì)數(shù)器64優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)1個(gè)串行I/O口可用于多機(jī)通信I/O擴(kuò)展或全雙工UART此外由于器件采用了靜態(tài)設(shè)計(jì)可提供很寬的操作頻率范圍頻率可降至0可實(shí)現(xiàn)兩個(gè)由軟件選擇的節(jié)電模空閑模式和掉電模式空閑模式凍結(jié)CPURAM定時(shí)器串口和中斷系統(tǒng)仍然工作掉電模式保存RAM的內(nèi)容但是凍結(jié)振蕩器導(dǎo)致所有其它的片內(nèi)功能停止工作由于設(shè)計(jì)是靜態(tài)的時(shí)鐘可停止而不會(huì)丟失用戶數(shù)據(jù)運(yùn)行可從時(shí)鐘停止處恢復(fù)80C51處理單4kFLASH8kFLASH16kFLASH32kFLASH128RAM256RAM12時(shí)鐘操作可選6個(gè)時(shí)鐘通過軟件或并行編程器3個(gè)加密6個(gè)中斷48I/O316位定時(shí)/計(jì)數(shù)T0T180C51T2捕獲和比低EMI(ALE以及6時(shí)鐘模式P89C51X24K字節(jié)FLASH溫度范圍(-P89C52X28K字節(jié)FLASH溫度范圍(---P89C54X216K字節(jié)FLASH溫度范圍(-P89C58X232K字節(jié)FLASH溫度范圍(-器1=1282=2564=2568=256下表所示為操作模式電源電壓以及最大外部時(shí)鐘頻率之間的關(guān)6-5V12-5V DIP封裝及管腳功 I地IP0.0-39-43-37-P0口P0口是開漏雙向口可以寫為1使其狀態(tài)為懸浮用作高阻輸入P0也可以在外部程序器時(shí)作地址的低字節(jié)在外部數(shù)據(jù)器時(shí)作數(shù)據(jù)總線此時(shí)通過內(nèi)部強(qiáng)上拉輸出1P1.0-1-2-40-P1口P1口是帶內(nèi)部上拉I/O口向P1口寫1時(shí)P1口被內(nèi)部上拉為高電平可用作輸當(dāng)作為輸入腳時(shí)被外部拉低的P1口會(huì)因?yàn)閮?nèi)部上拉而輸出電流(DC電氣特性)P1口第2功能T2(P1.0)定時(shí)/計(jì)數(shù)2的外部計(jì)數(shù)輸入/時(shí)鐘輸出(見可T2EX(P1.1)定時(shí)/計(jì)數(shù)2重裝載/捕捉/方向控1-1223P2.0-21-24-18-P2口 P2口是帶內(nèi)部上拉的雙向I/O口向P2口寫入1時(shí)P2口被內(nèi)部上拉為高電平可用作輸當(dāng)作為輸入腳時(shí)被外部拉低的P2口會(huì)因?yàn)閮?nèi)部上拉而輸出電流(見DC電氣特性)在外部程序器和外部數(shù)據(jù)時(shí)分別作為地址字節(jié)和16位地址(MOVX@DPTR)此時(shí)通過內(nèi)部強(qiáng)上拉傳送1當(dāng)使用8位尋址方式(MOV@Ri)外部數(shù)據(jù)器時(shí),P2口發(fā)送P2特殊功能寄P3.0-10-P3口P3口是帶內(nèi)部上拉的雙I/O口向P3口寫13-7-時(shí)P3口被內(nèi)部上拉為高電平可用作 輸入腳時(shí)被外部P3口會(huì)因?yàn)閮?nèi)部上拉而輸出流(DC電氣特性)P3口還具有以下特殊功5 7 8 9 94I 當(dāng)晶振在運(yùn)行中只要復(fù)位管腳出現(xiàn)2個(gè)機(jī)器期高電平即可復(fù)位內(nèi)部有擴(kuò)散電阻連接到Vss僅需要外接一個(gè)電容到Vcc即可實(shí)現(xiàn)上電復(fù)位O地址鎖存使能在外部器時(shí)輸出脈沖鎖存地址的低字節(jié)在正常情況下ALE輸出信號(hào)恒定為1/6振蕩頻率并可用作外部時(shí)鐘或定時(shí)注意每次外部數(shù)據(jù)時(shí)一個(gè)ALE脈沖將被忽略ALE可以通過置位SFR的 置位后ALE只能在執(zhí)行MOVX指令時(shí)O程序使能當(dāng)執(zhí)行外部程序器代碼時(shí)PSEN每個(gè)機(jī)器周期被激活兩次在外部數(shù)據(jù)器時(shí)PSEN無效內(nèi)部程序器時(shí)PSEN無I外部尋址使能/編程電壓在整個(gè)外部程序器時(shí)EA必須外部置低如果EA為高時(shí)將執(zhí)行內(nèi)部程序除非程序計(jì)數(shù)器包含大于片內(nèi)FLASH的地址該引腳在對(duì)FLASH編程時(shí)接5V/12V編程電壓(Vpp)如果1已編程EAIO注為了避免上電時(shí)的”latch-up”效應(yīng)任意管腳Vpp除外上的電壓任何時(shí)候都不能高于Vcc+0.5V低于Vss-0.5V1P89C51X2/52X2/54X2/58X2殊功能寄存名定地位功能和位地輔助功能寄存輔助功能寄存器0B寄存時(shí)鐘控制寄存數(shù)據(jù)指針雙字節(jié)中斷使P0P1P2P3電源控制寄存P2捕獲2捕獲串口數(shù)據(jù)緩沖堆棧指2定時(shí)器2012012 帶*號(hào)的SFR可位尋帶#SFR表示80C51SFR修改而來或新增加的1復(fù)位值由復(fù)位源確FLASHEPROMP89C51X2/52X2/54X2/58X2在10000次擦除和編程之后仍能可靠保存FLASH器的內(nèi)容單元的設(shè)計(jì)使得擦除和編程結(jié)構(gòu)最優(yōu)化此外先進(jìn)的溝道氧化工藝和低內(nèi)部電場的結(jié)合使擦除和編程操作更內(nèi)部程序器時(shí) 外部程序器最多可達(dá)XTAL1XTAL2為輸入和輸出可分別作為一個(gè)反相放大器的輸入和輸出此管腳可配置為使用內(nèi)部振蕩器要使用外部時(shí)鐘源驅(qū)動(dòng)器件時(shí)XTAL2可以不連接而由XTAL1驅(qū)動(dòng)外部時(shí)鐘信號(hào)無占空比的要求因?yàn)闀r(shí)鐘通過觸發(fā)器二分頻輸入到內(nèi)部時(shí)鐘電路但高低電平的最長和最短時(shí)間必須符合手冊(cè)的規(guī)時(shí)鐘控制寄存器CKCON該器件提供通過一個(gè)SFR位CKCON的X2位和一個(gè)Flash位塊中的FX2控制選擇6時(shí)鐘/12時(shí)鐘模X20時(shí)12時(shí)鐘模式有效位置1時(shí)系統(tǒng)切換6能是通過SFR位實(shí)現(xiàn)的因此可以隨時(shí)并修改需要注意的是將X2從0改為1將導(dǎo)致用戶代碼以兩倍的速度執(zhí)行系統(tǒng)時(shí)間間隔都變成原來的1/26時(shí)鐘模式變12時(shí)鐘模式會(huì)將運(yùn)行代碼的速度降低為1/2Flash時(shí)鐘控制位FX2可通過并行編程器編X26時(shí)鐘模式見表FX2時(shí)鐘模式位只通過并行編程器X2位CKCON.0012時(shí)鐘模式默16時(shí)鐘模X6時(shí)鐘??蓮腜1.050%占空比的時(shí)鐘信號(hào)P1.0除了作為常I/O口外還有兩個(gè)可選功能它可16MHz操作頻率時(shí)1250%占空比61Hz~4MHz時(shí)鐘信號(hào)6時(shí)鐘模式122Hz~8MHz要將定時(shí)/計(jì)數(shù)2配置為時(shí)鐘發(fā)生器C/T2(T2CON.1)必須清T2MODT20E位必須置位要啟動(dòng)定時(shí)器2還必須將TR2(T2CON.2)置位時(shí)鐘輸出頻率由振蕩器頻率和定時(shí)2 65536n166時(shí)鐘模式3212在時(shí)鐘輸出模式中2的翻轉(zhuǎn)將不會(huì)產(chǎn)生中它作為波特率發(fā)生器時(shí)相時(shí)2可同時(shí)作為波特率發(fā)生器和時(shí)鐘發(fā)生器但需要注意的是波特率和時(shí)鐘輸出頻率相同在振蕩器工作時(shí)將RST腳保持至少兩個(gè)機(jī)器周期高電平12時(shí)鐘模式為24個(gè)振蕩器周期6時(shí)鐘12振蕩器現(xiàn)復(fù)位了保證上電復(fù)位的可靠RST保持高電平的時(shí)間至少為振蕩器啟動(dòng)時(shí)間12時(shí)鐘模式運(yùn)行當(dāng)已通過并行編程器設(shè)置為6時(shí)鐘模式時(shí)除外靜態(tài)設(shè)計(jì)使時(shí)鐘頻率可以降至0MHz(停止)當(dāng)振蕩器停振時(shí)RAMSFR的值保持不變?cè)撃J皆试S逐步應(yīng)用并可將時(shí)鐘頻率降至任意值以實(shí)現(xiàn)系統(tǒng)功耗的降低如要實(shí)現(xiàn)最低功耗則建議使用掉電模式空閑模式見表3中CPU進(jìn)入睡眠狀態(tài)但片內(nèi)的電路仍然保持工作狀態(tài)正常操作模式的最后一條指令執(zhí)行進(jìn)入空閑模式空閑模式下CPU內(nèi)容片內(nèi)RAM和所有SFR保持原來的值任何被使能的中斷此時(shí)程序從中斷服務(wù)程序處恢復(fù)并繼續(xù)執(zhí)行或硬件復(fù)位與上電復(fù)位使用相同的方式啟動(dòng)處理器均可終止空閑模式為了進(jìn)一步降低功耗通過軟件可實(shí)現(xiàn)掉電模式(見表3)該模式中振蕩器停振并且在最后一條指令2.0V內(nèi)RAMSFR保持原退出掉電模式之Vcc必須升至規(guī)定的硬件復(fù)位或外部中斷均可結(jié)束掉電模件復(fù)位使所有SFR不改RAM的值外部中斷允許SFR和片內(nèi)RAM都保持原值WUPDAUXR1.3從掉電喚醒使能或通過外部中斷WUPD0WUPD=1使要正確退出掉電模式在Vcc恢復(fù)到正常操作電壓范圍之后復(fù)位或外部中斷開始執(zhí)行并且要保持足夠長的時(shí)間(通常小于10ms)以使振蕩器重新啟動(dòng)并穩(wěn)定下來使用外部中斷退出掉電模式時(shí)INT0INT1必須使能且配置為電平觸發(fā)將管腳電平拉低使振蕩器重新啟動(dòng)出掉電模式后將管腳恢復(fù)為高電平一旦中斷被響應(yīng)RETI之后所執(zhí)行的是進(jìn)入掉電模式指令3空閑模式和掉電模式時(shí)外部管腳的狀 11110000當(dāng)空閑模式被硬件復(fù)位所中止時(shí)器件在內(nèi)部復(fù)位之前從停止處恢復(fù)程序正常運(yùn)行時(shí)間為2個(gè)機(jī)器周期這段時(shí)間內(nèi)片內(nèi)硬件對(duì)內(nèi)部RAM的但對(duì)I/O口的未被當(dāng)Idle模式被復(fù)位所中止時(shí)為了消除可能產(chǎn)生的誤寫操作應(yīng)用Idle模式指令后的指令不應(yīng)執(zhí)行寫I/O口或?qū)懲獠科鞑僮鳟?dāng)器件復(fù)位PSEN為高電平時(shí)將ALE置低電RST撤除時(shí)ALE保持低電當(dāng)器件ONCE模式時(shí)P0口處于懸浮狀態(tài)其它I/O口ALEPSEN為弱上拉振蕩電路保持工作狀態(tài)器件處于該模式時(shí)可用仿真器或測試CPU驅(qū)動(dòng)電路執(zhí)行正常復(fù)位時(shí)恢復(fù)正常操作定時(shí)0定時(shí)和計(jì)數(shù)功能由特殊功能寄存TMODC/T進(jìn)行選擇/計(jì)數(shù)器4種操作模式通過TMODM1M0選擇兩個(gè)定時(shí)/計(jì)數(shù)器的模式012都相同模式3不同如下所述0時(shí)類8048定時(shí)器8位計(jì)數(shù)32分頻的預(yù)分頻器2所示為此模式下定時(shí)器寄存器配置為13位寄存器當(dāng)計(jì)數(shù)從全為1翻轉(zhuǎn)為全為0時(shí)定時(shí)器中斷TFnTRn=1GATE=0INTn=1時(shí)定時(shí)器計(jì)數(shù)置位GATE時(shí)允許由外部輸INTn控制定時(shí)器這樣可實(shí)現(xiàn)脈寬測量TRnTCON寄存器內(nèi)的控制位圖313位寄存器THn8TLn5TLn3位不定可將其忽略置位運(yùn)行標(biāo)志TRn不能清零此寄存器模式00及定時(shí)器1都是相同的GATE位TMOD.7TMOD.3分別分配給定時(shí)器0及定時(shí)器11除了使用THnTLn16位外其它與0相此模式下定時(shí)器寄存器作為可自動(dòng)重裝的8位計(jì)數(shù)器TLn如圖4所示TLnTFnTHnTLnTHn內(nèi)容由軟件預(yù)置重裝時(shí)THn內(nèi)容不變模式2的操作對(duì)于定時(shí)器0及定時(shí)器1是相同的在模3中定時(shí)1停止計(jì)數(shù)效果與將TR1設(shè)置0相此模式下定0TL0TH0作為兩個(gè)8位計(jì)數(shù)器5為模3時(shí)的定時(shí)0邏輯占用定時(shí)器0的控制位C/TGATETR0INT0及TF0TH0限定為定時(shí)器功能計(jì)數(shù)器周期占用1TR1TF1TH0控制定時(shí)器1中斷3可用于需要一個(gè)額外80工作于模3時(shí)80C513個(gè)定時(shí)器/計(jì)數(shù)定時(shí)0工作于模3時(shí)器1可通過開關(guān)進(jìn)入/3,它仍可用作串行端口的波特率發(fā)生器或者應(yīng)用于任何不要求中斷的場合 地7654321復(fù)位值0位符功器/計(jì)數(shù)器清零時(shí)置位TR1即可打開定時(shí)器/計(jì)數(shù)1用作定時(shí)器或計(jì)數(shù)器清零則用作定時(shí)器從內(nèi)入置位用作計(jì)數(shù)器從Tn腳輸000116位定時(shí)器/計(jì)數(shù)器無預(yù)分頻108位自裝載定時(shí)器當(dāng)溢出時(shí)將THn存放的值裝11定時(shí)0此時(shí)作為8位定時(shí)/計(jì)數(shù)器TL0作為8位定時(shí)器/通過標(biāo)準(zhǔn)定時(shí)0控制位控制TH0僅作為8位定時(shí)器由定1定時(shí)/0/1模式控制寄存器X2X2C/TX2X2C/TC/TTRn TimernGateINTn2定時(shí)/計(jì)數(shù)0/1的模013位定時(shí)/ 地址 復(fù)位值 位定時(shí)1溢出標(biāo)志定時(shí)/計(jì)數(shù)器溢出時(shí)由硬件置處理時(shí)由硬清除或用軟件清定時(shí)1運(yùn)行控制位由軟件置位/清零將定時(shí)/計(jì)數(shù)器打開/關(guān)定時(shí)0溢出標(biāo)志定時(shí)/計(jì)數(shù)器溢出時(shí)由硬件置處理時(shí)由硬清除或用軟件清定時(shí)0運(yùn)行控制位由軟件置位/清零將定時(shí)/計(jì)數(shù)器打開/關(guān)1邊沿觸發(fā)標(biāo)志當(dāng)檢測到1邊沿時(shí)由硬件置位中斷1觸發(fā)類型控制位由軟件置位/清零以選擇外部中斷以下降沿/0邊沿觸發(fā)標(biāo)志當(dāng)檢測到0邊沿時(shí)由硬件置位中斷0觸發(fā)類型控制位由軟件置位/清零以選擇外部中斷以下降沿/3定時(shí)器/計(jì)數(shù)器控制寄存器X2X2X2TRn TimernGateINTn4定時(shí)/計(jì)數(shù)0/1的模28位自動(dòng)重X2X2X2TR0 Timer0 GatebitNT0(8X2X2X2(85定時(shí)/計(jì)數(shù)0的模38位計(jì)數(shù)216位定時(shí)/過設(shè)置特殊功能寄存T2CONC/T2定時(shí)器或計(jì)數(shù)器見圖6定時(shí)器2有三種操作模式捕獲自動(dòng)重新裝載遞增或遞減計(jì)數(shù)和波特率發(fā)生器這三種模式由T2CON中的位進(jìn)行選擇見表3在捕獲模式中通過T2CONEXEN2設(shè)置兩個(gè)選項(xiàng)EXEN20定時(shí)2作為16位定時(shí)器或計(jì)數(shù)器由T2CON中C/T2位選擇溢出時(shí)置位TF2定時(shí)器2溢出標(biāo)志位該位可用于產(chǎn)生中斷通過使能IE寄存器中的定時(shí)器2中斷使能位如果EXEN21與以上描述相同但增加了一個(gè)特性部輸入T2EX10時(shí)將定時(shí)2TL2TH2的當(dāng)前值各自捕獲RCAP2LRCAP2H另外T2EX的負(fù)跳變T2CONEXF2置位EXF2TF2一樣能夠產(chǎn)生中向量與定時(shí)2溢出中斷地址相同定時(shí)器2中斷服務(wù)程序通過查詢TF2和EXF2來確定引起中斷的事件捕獲模式如圖2所示在該模式中TL2TH2無重新裝載值甚至當(dāng)T2EX產(chǎn)生捕獲事件時(shí)計(jì)數(shù)器仍以T2EX的負(fù)跳變或振蕩頻率的1/1212時(shí)鐘模式或1/66時(shí)鐘模式計(jì)數(shù)自動(dòng)重裝模式遞增/遞減計(jì)數(shù)16位自動(dòng)重裝模式中定時(shí)器2C/T2配置為定時(shí)器/計(jì)數(shù)器編程控制遞增/遞減計(jì)數(shù)計(jì)數(shù)的方向是由DCEN遞減計(jì)數(shù)使能位確定的DCEN位于T2MOD寄存器見圖8中當(dāng)DCEN0時(shí)定2默認(rèn)為向上計(jì)數(shù)當(dāng)DCEN1時(shí)定時(shí)器2T2EX確定遞增或遞減計(jì)數(shù)9DCEN0時(shí)定時(shí)器2自動(dòng)遞增計(jì)數(shù)在該模式中通過設(shè)置EXEN2位進(jìn)行選擇如果EXEN20定時(shí)2遞增計(jì)數(shù)0FFFFH并在溢TF2置位然后將RCAP2LRCAP2H中的16位值作為重新裝載值裝入定時(shí)器2RCAP2LRCAP2H的值是通過軟件預(yù)設(shè)的EXEN2116位重新裝載可通過溢出T2EX10的負(fù)跳變實(shí)現(xiàn)此負(fù)跳變同時(shí)置位如果定時(shí)2中斷被使能則當(dāng)TF2EXF21時(shí)產(chǎn)生中10DCEN1時(shí)定時(shí)2可遞增或遞減計(jì)數(shù)此模T2EX控制計(jì)數(shù)的方向當(dāng)置1時(shí)定時(shí)器2遞增計(jì)數(shù)計(jì)數(shù)到0FFFFH后溢出并置位TF2還將產(chǎn)生中斷如果中斷被使 定T2EX時(shí)器2遞減計(jì)數(shù)TL2TH2計(jì)數(shù)到等RCAP2LRCAP2H時(shí)定時(shí)器產(chǎn)生溢出定時(shí)器2溢出置TF20FFFFH重新裝TL2TH2當(dāng)定2遞增/遞減產(chǎn)生溢出標(biāo)志EXF2翻轉(zhuǎn)如果需要可將EXF217位在此模式中EXF2標(biāo)志不會(huì)產(chǎn)生中斷00116011161X1XX0關(guān)閉T2CON地址 可位尋 復(fù)位值 符 T2CON.7定時(shí)2溢出標(biāo)志定時(shí)器2溢出時(shí)置位必須由軟件清除TCLK1時(shí)TF2將不會(huì)置 T2CON.6定時(shí)2外部標(biāo)志當(dāng)EXEN21T2EX的負(fù)跳變產(chǎn)生捕獲或重裝時(shí)EXF2置位定時(shí)器2中斷使能時(shí)EXF21CPU從中斷向量處執(zhí)行定時(shí)器2中斷子程序EXF2位必須用軟件清零在遞增/遞減計(jì)數(shù)器模式DCEN1中EXF2不會(huì)引起中斷 T2CON.5接收時(shí)鐘標(biāo)志RCLK置位時(shí)定時(shí)器2的溢出脈沖作為串行口模1和3的接收時(shí)鐘RCLK0時(shí)將定時(shí)器1的溢出脈沖作為接收時(shí)鐘 T2CON.4發(fā)送時(shí)鐘標(biāo)志TCLK置位時(shí)定時(shí)器2的溢出脈沖作為串行口模1和3的發(fā)送時(shí)鐘TCLK0時(shí)將定時(shí)器1的溢出脈沖作為發(fā)送時(shí)鐘 T2CON.32外部使能標(biāo)置位且2未作為串行口時(shí)鐘時(shí)允許T2EX的負(fù)跳變產(chǎn)生捕獲或重裝EXEN20時(shí)T2EX的跳變對(duì)定時(shí)器2無效 T2CON.2定時(shí)2啟動(dòng)/停止控制位置1時(shí)啟動(dòng)定時(shí) T2CON.1定時(shí)器/計(jì)數(shù)器選 定時(shí)器內(nèi)部定時(shí)器OSC/12外部事件計(jì)數(shù)器下降沿觸 T2CON.0捕獲/重裝標(biāo)志置位EXEN21時(shí)T2EX的負(fù)跳變產(chǎn)生捕獲清零 1時(shí)定時(shí)器2溢出或T2EX的負(fù)跳變都可使定時(shí)器自動(dòng)重裝當(dāng)RCLK1或TCLK1時(shí)該位無效且定時(shí)器強(qiáng)制為溢出時(shí)自動(dòng)重6定時(shí)器/計(jì)數(shù)2T2CON控制寄存X2X2X2C/T2=C/T2=T2(8-(8-

T2MOD地址復(fù)位值=XXXXT2MOD地址復(fù)位值=XXXX76543210不可用保留將來之用向下計(jì)數(shù)使能位定時(shí)器2可配置成向上/向下計(jì)數(shù) 保留位時(shí)或非有效狀的值應(yīng)0圖 定時(shí)器2模式T2MOD控制寄存X2X2C/T2C/T2圖 定時(shí)器2自動(dòng)重裝模式X2X2C/T2=C/T2=1=UP0= 圖 定時(shí)器2自動(dòng)重裝模式

Timer1NOTE:NOTE:OSC.Freq.isdividedby2,not12or C/T2=(8-(8- C/T2=T2

Noteavailabilityofadditionalexternal圖 定時(shí)器2波特率發(fā)生器模T2CONTCLK和或RCLK見表3允許從定時(shí)器12獲得串行口發(fā)送和接收的波特TCLK=0時(shí)定時(shí)器1作為串行口發(fā)送波特率發(fā)生器當(dāng)TCLK=1時(shí)定時(shí)器2作為串行口發(fā)送波特率發(fā)生器RCLK對(duì)串行口接收波特率有同樣的作用通過這兩位串行口能得到不同的接收和發(fā)送波特率一個(gè)通過定時(shí)器1產(chǎn)生另一個(gè)通過定時(shí)器2產(chǎn)生11所示為定時(shí)2工作在波特率發(fā)生器模式與自動(dòng)重裝模式相似當(dāng)TH2溢出時(shí)波特率發(fā)生器模式使定時(shí)器2寄存器重新裝載來自寄存器RCAP2HRCAP2L16位的值寄存器RCAP2H和RCAP2LR的值由軟件預(yù)置時(shí)波特定時(shí)器可配置成定時(shí)或計(jì)數(shù)方式在許多應(yīng)用上定時(shí)器被設(shè)置在定時(shí)方式當(dāng)定2作為定時(shí)器時(shí)它的操作不同于波特率通常定時(shí)器2作為定時(shí)器它會(huì)在每個(gè)機(jī)器周期遞增1/6或1/12振蕩頻率當(dāng)定時(shí)器2作為波特率發(fā)生器時(shí)它會(huì)在每個(gè)狀態(tài)周期遞增例如1/2振蕩頻率 這樣波特率公式如下

[n[65536n166時(shí)鐘模式3212RCAP2H,RCAP2L)=RCAP2HRCAP2L的內(nèi)容為16位無符號(hào)整如圖11所示2作為波特率發(fā)生器僅當(dāng)寄存器T2CON中的RCLK和或TCLK=1時(shí)定2作為波特率發(fā)生器才有TH2溢出并不置TF2也不產(chǎn)生中斷這樣當(dāng)定時(shí)器2作為波特率發(fā)生器時(shí)定時(shí)器2中斷不必被如果EXEN2T2外部使能標(biāo)志被置位在T2EX中由1到0的轉(zhuǎn)換會(huì)置位EXF2T2外部標(biāo)志位但并不導(dǎo)致TH2TL2重裝載RCAP2HRCAP2L因此當(dāng)定時(shí)器2用作波特率發(fā)生器時(shí)如果需要T2EX可用作附加的外部中斷當(dāng)計(jì)時(shí)器工作在波特率發(fā)生器模式下,則不要對(duì)TH2和TL2進(jìn)行讀寫每隔一個(gè)狀態(tài)時(shí)間0sc/2或由T2進(jìn)入的異步信號(hào)定時(shí)器2將加1在此情況下對(duì)TH2和TH1進(jìn)行讀寫是確的可對(duì)RCAP2寄存器進(jìn)行讀但不要進(jìn)行寫否則將導(dǎo)致自動(dòng)重裝錯(cuò)誤當(dāng)對(duì)定時(shí)器2或寄存器RCAP進(jìn)行時(shí)應(yīng)關(guān)閉定時(shí)器清零TR25定時(shí)器2生的常用波特式外入波

[n[65536n166時(shí)鐘模式3212fOSC蕩器頻RCAP2H,RCAP2L=65536-[fosc/(n波特率除了波特率發(fā)生器模式T2CON不包TR2位的設(shè)置TR2位需單獨(dú)設(shè)置來啟動(dòng)定時(shí)器表66T2定時(shí)內(nèi)部控制注1外部控制注27T2為計(jì)內(nèi)部控制注1外部控制注216 串口為全雙工結(jié)構(gòu)收緩沖在第一個(gè)字節(jié)從寄存器讀出之前可以開始接收第二個(gè)字節(jié)串口的發(fā)送和接收寄存器都是通過SFRSBUF進(jìn)行的寫入SBUF的數(shù)據(jù)裝入發(fā)送寄存器對(duì)SBUF的讀串行數(shù)據(jù)通RxD進(jìn)出TxD輸出時(shí)鐘次發(fā)送或接收以LSB最低位作首位每次8位波特率固定為MCU時(shí)鐘頻率的1/120TxD腳發(fā)送RxD腳接收每次數(shù)據(jù)為10位一個(gè)起始 8個(gè)數(shù)據(jù)位LSB及一個(gè)0止位1當(dāng)接收數(shù)據(jù)時(shí)停止位存于SCON的RB8內(nèi)波特率可變由定時(shí)器1溢出速率決TxD腳發(fā)送RxD腳接收每次數(shù)據(jù)為11位一個(gè)起始位08個(gè)數(shù)據(jù)位LSB 程第9位數(shù)據(jù)及一個(gè)停止位1發(fā)送9個(gè)數(shù)據(jù)位SCONTB8位可置為01例如將奇偶位PSW內(nèi)P位移至TB8接收時(shí)第9位數(shù)據(jù)存入SCON的RB8位停止位忽略波特率可編MCU時(shí)鐘頻率的1/32或1/64由PCON內(nèi)SMOD1位決定TxD腳發(fā)送RxD腳接收每次數(shù)據(jù)為11位一個(gè)起始位08個(gè)數(shù)據(jù)位LSB為首位一可編程9位數(shù)據(jù)及一個(gè)停止位13除了波特率外均與模式2相同其波特率可變并在上4種模式送過程是以任意一條以SBUF作為目標(biāo)寄存器的指令開始的式0時(shí)接通過R1=0REN=1初始化其它模式下REN=1則通過起始位UART23有一個(gè)專門的應(yīng)用領(lǐng)域即多機(jī)通信些模式9位數(shù)據(jù)第9位RB8接下來為停止位UART可編接收到停止位時(shí)僅當(dāng)RB8=1時(shí)串口中斷才有效可通過SCONSM2位來選擇這一特性下述為多機(jī)系統(tǒng)利用這一特性的法當(dāng)主機(jī)需要發(fā)送一數(shù)據(jù)塊給數(shù)臺(tái)從機(jī)之一時(shí)首先發(fā)送出一個(gè)地址字節(jié)對(duì)目標(biāo)從機(jī)進(jìn)行識(shí)別地址與9位數(shù)據(jù)區(qū)別的第910SM2=1時(shí)數(shù)據(jù)字節(jié)不會(huì)使各從機(jī)產(chǎn)生中斷從機(jī)可以檢查接收到的數(shù)據(jù)判斷是否被尋址被尋址的從機(jī)即SM2位以準(zhǔn)備接收隨后數(shù)據(jù)內(nèi)被尋址的從機(jī)SM21則不理睬隨后數(shù)0時(shí)SM2無效式1時(shí)SM2用于檢驗(yàn)停止位是否有效1時(shí)如果SM2=1那么只有串行端口控制寄存器SCON串行端口控制及狀態(tài)寄存器SCON12所示其中包括模式選擇位以及發(fā)送和接收的位數(shù)據(jù)TB8及RB8以及串行端口中斷位TI及 地址 幀錯(cuò)誤位當(dāng)檢測到一個(gè)無效停止位時(shí)通過UART設(shè)置該位但它必須軟件清零要使該位有效PCON寄存器中SMOD0位必須SM1定義串口操作模式要使該位有效PCON寄存器中的SMOD0必須置SM0定義串行口操作模式見下SM0 00同步移位寄存 fosc/12或fosc/6取決于時(shí)鐘模018位 129位 fosc/64或fosc139位 在模23模式23中若SM2=1且接收到的9位數(shù)據(jù)RB80RI接收中斷標(biāo)志不會(huì)被激活在模式1中若且沒有接收到有效的停止位則RI不會(huì)被激活在模式0中SM2允許接收位由軟件置位或清除REN=1時(shí)允許接收REN=0時(shí)接239要由23中已接收的9位數(shù)據(jù)在模式1中或sm2=0RB8位在模式0中RB8未發(fā)送中斷標(biāo)志模式0中在發(fā)送完第8位數(shù)據(jù)時(shí)由硬件置位其它模式中在發(fā)送停止位之初硬件置任何模式必須由軟件來清接收中斷標(biāo)志模式0中接收第8位結(jié)束時(shí)由硬件置位其它模式中在接收0置位(SM2所述情況除外)必須由軟件12串行控制寄存器操作模0的波特率是固定的fosc/122的波特率MCU時(shí)鐘/64MCU時(shí)鐘/32取決于PCON寄存器中的SMOD1位的值若SMOD1=0復(fù)位值波特率為MCU時(shí)鐘/64若SMOD1=1波特率為MCU時(shí)鐘/3280C51中模式1和模3的波特1的溢出速率決當(dāng)定1用作波特率發(fā)生器131的溢出速率SMOD1的值決1不能用作1可以工作在定時(shí)或計(jì)數(shù)3種工作模式中任何一個(gè)在最典型應(yīng)用中它用作定時(shí)器方式工作自動(dòng)重裝載模式TMOD的高半字節(jié)為0010B它的波特率值由可以定時(shí)器1的中斷實(shí)現(xiàn)非常低的波特率將定時(shí)器配置為16位定時(shí)器TMOD的高半字節(jié)0001B并使用中斷進(jìn)行16位軟件重裝圖13列出了幾個(gè)常用的波特率以及如何從定時(shí)器1獲OS定時(shí)器模12-clock模6-clock模模模式016733420XXXX模式2201XXX模式132010211921105910296110590024896110590024811059002121105900211986002600212001

131產(chǎn)生的通用波特串行數(shù)據(jù)由RxD端出入TxD輸出同步移位時(shí)鐘發(fā)送或接收的是8位數(shù)據(jù)低位在先其波特率固定MCU時(shí)鐘1/1214是串行口模式0的功能方框簡圖及相關(guān)的時(shí)序圖執(zhí)行任何一條SBUF作為目的寄存器的指令時(shí)就開始發(fā)送S6P2時(shí)刻的寫SBUF信號(hào)1裝入發(fā)送移位寄存器的第9位并通知發(fā)送控制部分開始發(fā)送寫SBUF信號(hào)有效后一個(gè)完整的機(jī)器周期后SEND端有效SEND使能RxDP3.0端送出數(shù)據(jù)TxDP3.1輸出移位時(shí)鐘每個(gè)機(jī)器周期的S3S4S5狀態(tài)內(nèi)移位時(shí)鐘為低電S6S1S2狀態(tài)內(nèi)為高在SEND有效時(shí)每一機(jī)器周期的S6P2時(shí)刻發(fā)送數(shù)據(jù)位向右移時(shí)左邊添加零當(dāng)數(shù)據(jù)字節(jié)最MSB移到移位寄存器的輸出端時(shí)其左邊是裝入1的第9位再左的內(nèi)容均為0,此時(shí)通知Tx控制模塊進(jìn)行最后一位移位處理后SEND并置位T1,所有這些步驟均在入SBUF10個(gè)機(jī)器周期S1P1時(shí)進(jìn)行的REN=1及R1=0下一機(jī)器周期的S6P2RX控制單元向接收移位寄存器寫11111110并在下一個(gè)時(shí)鐘使RECEIVERECEIVE使能移位時(shí)鐘轉(zhuǎn)換P3.1功能移位時(shí)鐘在每個(gè)機(jī)器周期的S3P1及S6P1跳變?cè)赗ECEIVE數(shù)據(jù)從右邊移入時(shí)左邊移出為1當(dāng)初始時(shí)置入最右端的0移至最左端時(shí)通知RX控制時(shí)鐘作最后一次移位后裝SBUFSCONR110個(gè)機(jī)器周期RECEIVE端被清除且置位串行口工作于模式1時(shí)傳輸?shù)氖?0位1位起始位08位數(shù)據(jù)低位在先及一位停止位RxD接收TxD發(fā)送接收時(shí)停止位存入SCONRB880C51波特率取決于定時(shí)1的溢出速率圖15所示為串行口模式1的功能簡圖及相應(yīng)的發(fā)送/接收時(shí)序發(fā)送過程是由執(zhí)行一條SBUF為目的寄存器的指令啟動(dòng)的寫SBUF1TB8裝入發(fā)送移位寄存器的9際上16分頻計(jì)數(shù)器下次翻轉(zhuǎn)后的那個(gè)機(jī)器周期的S1P1時(shí)刻每位的發(fā)送時(shí)序與16分頻計(jì)數(shù)器同步而并不與寫SBUF信號(hào)同步發(fā)送以激活SEND端開始向TxD發(fā)送一起始位一位時(shí)間以后DATA端有效使輸出移位寄存器中數(shù)據(jù)得以送至TxD再過一位產(chǎn)生第一個(gè)移位脈沖數(shù)據(jù)向右移出左邊不斷填以0當(dāng)數(shù)據(jù)字節(jié)的最移到移位寄存器的輸出位置時(shí)其左邊是裝1的第9位再左的內(nèi)容均為0此時(shí)通知TX控制器作最后一次移位然后SEND端并置位這都發(fā)生于寫SBUF16分頻計(jì)時(shí)器10次翻轉(zhuǎn)RxDMCURxD不斷采速率為波特率16倍當(dāng)檢測到負(fù)跳變時(shí)16分頻計(jì)數(shù)器立即復(fù)位同時(shí)將1FFH寫入輸入移位寄存器復(fù)位16分頻計(jì)時(shí)器確保計(jì)時(shí)器16個(gè)狀態(tài)將每個(gè)位時(shí)間分為16份在第789狀態(tài)時(shí)位檢測器對(duì)RxD端的值采樣取值為三個(gè)采樣值中取多數(shù)至少2讀入可以抑制噪所接收的第一0說明它摒棄復(fù)位始位如果起始位有效則被移入輸入移位寄存器并開始接收這一幀中的其它位當(dāng)數(shù)據(jù)位逐一由右邊移入時(shí)1從左邊被移出當(dāng)起始位0移到最左邊時(shí)模式1為9位寄存通知接收控制器進(jìn)行最后一次移位將移位寄存器內(nèi)容9位分別裝入SBUF及RB8并置RI=1僅當(dāng)最后一位移位脈沖產(chǎn)生時(shí)同時(shí)滿足下述2個(gè)條件 SM2=0或接收到的停止位=1才會(huì)裝載SBUF和RB8并且置位RI上述兩個(gè)條件任一不滿足,所接收到的數(shù)據(jù)幀就會(huì)丟失不再恢復(fù)兩者都滿足時(shí)停止位就進(jìn)入RB88位數(shù)據(jù)進(jìn)SBUFRI=1這時(shí)無論上述條件滿足與否接收控制單元都會(huì)重新等待RxD的負(fù)跳變0模式2和3中發(fā)送通過TxD和接收通過RxD都是11位包括1位起始 8位數(shù)01位LSB在 1位可編程數(shù)據(jù)位第9位及一位停止 發(fā)送時(shí)第9位數(shù)據(jù)位TB8可置101接收時(shí)第9位存SCONRB82MCU時(shí)鐘頻率1/163時(shí)可由定時(shí)11617所示為模23時(shí)串行口的功能簡收部分與模1相同發(fā)送部分僅發(fā)送移位發(fā)送過程是由執(zhí)行一條SBUF為目的寄存器的指令啟動(dòng)的寫SBUF同時(shí)TB8裝入發(fā)送移位寄存器的9控制由于16分頻計(jì)數(shù)器下一次翻轉(zhuǎn)后機(jī)器周期的S1P1時(shí)刻開始發(fā)送過程由使SEND有效開始將一個(gè)起始位送到TxD端一位時(shí)間后DATA有效數(shù)據(jù)由移位寄存器TxD端再過一位后產(chǎn)生第一個(gè)移位脈沖第一個(gè)移位時(shí)鐘將10第9位此后每次移位只把0送入第9位所以當(dāng)數(shù)據(jù)位向右移出 從左邊移入當(dāng)TB8移至輸0位置上時(shí)邊就是停止位余位均為零將通知發(fā)送控制器作最后一次SEND無效并置TI這些均發(fā)生在寫SBUF11次計(jì)數(shù)器翻轉(zhuǎn)時(shí)MCU16倍波特率RxD腳進(jìn)行采樣一旦檢測到負(fù)跳變16分頻計(jì)數(shù)器立即復(fù)位同1FFH寫入輸出移位寄存在每一789狀態(tài)時(shí)位檢測器對(duì)RxD端值進(jìn)行采樣對(duì)三個(gè)采樣值取多數(shù)至少2確定值以抑制噪聲如若所接收的第一位不為0接收電路復(fù)位單元等待下一個(gè)負(fù)跳變的出現(xiàn)如果起始位有效則被移入輸入移位寄存器并開始接收這一幀中的其它位數(shù)據(jù)位從右邊移入1從左邊移出當(dāng)起始位移至寄存器模式2~3時(shí)為9位寄存器的最左端時(shí)通知接收控制器進(jìn)行最后一次移裝SBUFRB8RI僅當(dāng)產(chǎn)生最后一位移位脈沖時(shí)同時(shí)滿足下列2個(gè)條件RI=0,SM2=0或接收到的第9位數(shù)據(jù)為1時(shí),才裝載SBUF和RB8并置位上述兩個(gè)條件任一不滿足,所接收到的數(shù)據(jù)幀就會(huì)丟失不再恢復(fù)RI仍為0當(dāng)兩者都滿足時(shí)第9位數(shù)據(jù)位就裝RB88位數(shù)據(jù)則SBUF一個(gè)位時(shí)間等待RxD端的負(fù)跳變DSDSQZero1111111S4

S1....S6S1....S6S1....S6S1....S6S1....S6S1....S6S1....S6S1....S6S1....S6S1....S6

80C51InternalSMOD

SMOD

DSQ

Zero

RXClock

Bit

InputShiftRegister(9Bits)

WritetoWriteto

80C51Internal

StartBitDetector

16StopStop

1580C51InternalDSPhase2Clock(1/2f)ZeroStopBitSMODSMOD=0(SMODisBitInputShiftRegister(9Bits)ReadRead WritetoWriteto

80C51Internal

StartStopStopStopStopBitBitDetector

16

16

80C51InternalSMOD

SMOD

DSQ

Zero

RXClockR1

Bit

InputShiftRegister(9Bits)

ReadRead StartStartWritetoStopStop16 16 Bit StopBit

除了標(biāo)準(zhǔn)操作模式外UART可實(shí)現(xiàn)自動(dòng)地址識(shí)別和通過查詢丟失的停止位進(jìn)行幀錯(cuò)誤檢測當(dāng)使用幀錯(cuò)誤檢測失的位將會(huì)置SCONFE位FE與SM0SCON.7PCON.6SMOD0選擇如果SMOD0置位SCON.7FESMOD00時(shí)SCON.7作為SM0FESCON.7只能由軟件清零見圖自動(dòng)地址識(shí)別是這樣一種特性它使UART可以通過硬件比較從串行數(shù)據(jù)流中識(shí)別出特定的地址這樣就不必花費(fèi)大量軟件資源去檢查每一個(gè)從串口輸入的串行地SCONSM2置位可使能該特性9UART模式模式23下如果接收的字節(jié)中包含給定地址或廣播地址接收中斷標(biāo)志RI將自動(dòng)置位在9位模式下要求第9個(gè)信息位1以表明該信息內(nèi)容是地址而非數(shù)據(jù)使用自動(dòng)地址識(shí)別特性時(shí)主機(jī)通過調(diào)用特定從機(jī)地址選擇與一個(gè)或多個(gè)從機(jī)通信使用廣播地址時(shí)所有從機(jī)都被聯(lián)系在此使用了兩個(gè)特殊功能寄存器SADDR表示從機(jī)地址SADEN表示地址SADENSADDR內(nèi)哪幾位需使用而哪幾位不予考慮SADEN可以SADDR邏輯與得出給定的地址用于對(duì)每一從機(jī)進(jìn)行尋址示例如下從機(jī) 特定地址=1100從機(jī) 特定地址=1100上例SADDR相同而SADEN不同以區(qū)分兩個(gè)從機(jī)從機(jī)000而忽1位從機(jī)1則100位由于從機(jī)11位必0011000010以區(qū)別由于從0011只能取獨(dú)11000001以區(qū)別取地址11000000時(shí)兩從機(jī)都可12而不選從從機(jī) 特定地址=1100從機(jī) 特定地址=1100從機(jī) 上述三個(gè)從地址只有3位不同從機(jī)0要求0=0它可11100110單獨(dú)尋址從機(jī)11=0可通11100101單獨(dú)尋址2要求2011100011單獨(dú)尋址必須使地址的第2位為1以從機(jī)2因此使用地址11100100可選通從機(jī)0和1同時(shí)從機(jī)2將SADDR和SADEN每個(gè)從機(jī)的為零的位視為無況下1這樣廣播地址為FFH復(fù)位時(shí)SADDRSADEN00H此時(shí)產(chǎn)生了一個(gè)所有位都是無關(guān)位的給定地址也即廣播地址這樣有效地了自動(dòng)尋址模式并允許微控制器使用不帶有上述特性的標(biāo)準(zhǔn)UART驅(qū)動(dòng)器

ONLYMODESETFEBITFOSPTBITIS0(FRAMNGERROR)SM0TOUARTMODECONTRLOSM0/SM0/

––:SCON.7=:SCON.7=18UART幀錯(cuò)誤檢 111011XNUARTMODE2ORMODE3ANDSM2=INTERRUPTIFREN=1,RB8=1AND“RECEIVEDADDRESS”=“PROGRAMMED19UART多機(jī)通信,自動(dòng)地址識(shí)001010120本手冊(cè)所講述的器件6個(gè)中斷源圖20所示部中斷INT0INT1可根據(jù)寄存TCON中的IT0IT1位狀態(tài)分別設(shè)置為電平或者邊沿觸發(fā)實(shí)際產(chǎn)生的中斷標(biāo)志是TCONIE0IE1當(dāng)觸發(fā)硬件觸發(fā)由外01TF0TF1分別由各自的定時(shí)/0工作在模式時(shí)除外產(chǎn)生當(dāng)產(chǎn)生定時(shí)器中斷時(shí)進(jìn)入中斷服務(wù)程序后由串口中斷RITI的邏輯或產(chǎn)生入中斷服務(wù)程標(biāo)志均不能被硬件清除際上服務(wù)程序通常需要確定是由RI還是TI產(chǎn)生的中斷然后由軟件清除中斷標(biāo)志相同言之可由軟件產(chǎn)生推遲或取消每個(gè)中斷源可通過置位或清零寄存器IE圖21中的相應(yīng)位分別使能或 IE中還包含一個(gè)全局位EA可以立即所有的中斷每個(gè)中斷源都可通過編程中斷優(yōu)先級(jí)寄存器IP22IPH23單獨(dú)設(shè)置優(yōu)先級(jí)一個(gè)中斷服務(wù)程序可響應(yīng)更高級(jí)的中斷但不能響應(yīng)同優(yōu)先級(jí)或低級(jí)中斷中斷服務(wù)程序不響應(yīng)其它任何中斷如果兩個(gè)不同中斷優(yōu)先級(jí)的中斷源同時(shí)申請(qǐng)中斷時(shí)響應(yīng)較高優(yōu)先級(jí)的中斷申請(qǐng)2個(gè)同優(yōu)先級(jí)的中斷源同時(shí)申請(qǐng)中斷內(nèi)部查詢順序?qū)⒋_定首先響應(yīng)哪一個(gè)中斷請(qǐng)求查詢順序 IE0外部中斷 最TF0定時(shí)IE1TF1定時(shí)RI+TITF2,EXF2定時(shí)器 最注同級(jí)優(yōu)先級(jí)只用來處理相同優(yōu)先級(jí)別中斷源同時(shí)申請(qǐng)中斷的情IPIPH寄存器中包含了一些無效位由于這些位可能用于其它80C51系列產(chǎn)品中用戶軟件不應(yīng)將這些位寫入1中斷標(biāo)志在每個(gè)機(jī)器周期的S5P2時(shí)采樣下一個(gè)機(jī)器周期查詢?cè)摬晒鸖5P2周期時(shí)有一個(gè)2確保正在處理的指令在進(jìn)入任何中斷服務(wù)程序前可以執(zhí)行完3確保了如果正在處理的指令是RETI或任何IE或IP寄存器的指令那么在進(jìn)入任何中斷服務(wù)程序之前至少再執(zhí)行一條指令查詢周期在每個(gè)機(jī)器周期都會(huì)重復(fù)所查詢的值是一個(gè)機(jī)器周期的S5P2出現(xiàn)的值需要注意的是如果一個(gè)中斷標(biāo)志位有效但仍然沒有被響應(yīng)是因?yàn)槌霈F(xiàn)上面所述的情況如果當(dāng)阻礙的條件撤除時(shí)中斷標(biāo)志不再有效將不再響應(yīng)句話說實(shí)際上如果中斷標(biāo)志有效時(shí)沒有響應(yīng)中斷之后將不再被位地址765432復(fù)位值 位如果EA=0;EA=1定時(shí)器2中斷使能位 地址 65432復(fù)位值 地址 65432復(fù)位值 優(yōu)先級(jí)位=1分配高優(yōu)先 優(yōu)先級(jí)位=0分配低優(yōu) 符 功 無效位保留將來之 無效位保留將來之級(jí) 22中斷優(yōu)先地復(fù)位值 3210優(yōu)先級(jí)位=1分配高優(yōu)先 優(yōu)先級(jí)位=0分配低優(yōu)先 無效位保留將來之 無效位保留將來之23中斷優(yōu)先級(jí)高IPH寄存

..........

...

Are

LongCallto

Interrupt

..ThisisthefastestpossibleresponsewhenC2isthefinalcycleofaninstructionotherthanRETIoranaccess.toIEor24中斷響應(yīng)時(shí)序有效如圖24然后根據(jù)上面的規(guī)則它會(huì)在C5,C6響應(yīng)中斷不執(zhí)行任何低優(yōu)先級(jí)中斷的指處理器通過執(zhí)行硬件產(chǎn)生LCALL志位另一些情況不清零它不會(huì)清零串口中斷標(biāo)志這需要用戶軟件來完成如果外部中斷是邊沿觸發(fā)中斷標(biāo)志IE0IE1會(huì)被硬件清零硬件產(chǎn)生的LCALL將程序指針的內(nèi)容壓入堆棧但不會(huì)保PSW并根據(jù)響應(yīng)的中斷源重新將一個(gè)地址裝入PC7所示當(dāng)中斷服務(wù)程序執(zhí)行RETI指令時(shí)完畢裝入PC繼續(xù)執(zhí)行被中斷的程序注意RET外部中斷源可配置為電平觸發(fā)或邊沿觸發(fā)通過將寄存器TCON中的IT1IT0置位或清零實(shí)現(xiàn)ITx=0外部中xINTx腳的低電平觸發(fā)如果ITx=1x為邊沿觸發(fā)該模式下對(duì)INTx腳連續(xù)采樣如果在一個(gè)周期為高電平而下一個(gè)周期為低電平中斷請(qǐng)求標(biāo)志IEx將置位然后通過IEx請(qǐng)求中斷由于外部中斷腳每個(gè)機(jī)器周期采樣一次輸入高或低應(yīng)當(dāng)保持至少12個(gè)振蕩周期以確保能夠采樣到如果外部中斷為邊沿觸部中斷源應(yīng)當(dāng)將中斷腳至少保1個(gè)機(jī)器周期高電平然后至少保1個(gè)機(jī)器周期低電平這樣就確保了邊沿能夠被檢測到以使IEx置位當(dāng)調(diào)用中斷服務(wù)程序后CPUIEx清零觸發(fā)求有結(jié)束之前撤除請(qǐng)求否則將產(chǎn)生另一次中斷INT0INT1電平在每個(gè)機(jī)S5P2取反并鎖存IE0IE1在下個(gè)周期之前該值不會(huì)被電路查詢?nèi)绻?qǐng)求有效且應(yīng)答的條件正確下個(gè)執(zhí)行的指令就是硬件子程序調(diào)用請(qǐng)求中斷CALL指令本身占用兩個(gè)周期因此從中斷請(qǐng)求有效到開始執(zhí)行中斷服務(wù)程序的第一條指令需要至少3個(gè)完整的機(jī)器周期圖24所示為中斷響應(yīng)時(shí)序如果中斷被前面所述的3個(gè)條件之一所阻滯中斷就需要更長的響應(yīng)時(shí)間如果同級(jí)或高優(yōu)先級(jí)的中斷已經(jīng)在處理額外的等待時(shí)間就取決于其它中斷服務(wù)程序所耗的時(shí)間如果正在執(zhí)行的指令不是它的最后一個(gè)周期超過3個(gè)周期因?yàn)樽铋L的指令MULDIV4個(gè)周期如果正在處理的是RETI或者任何IE或IP的指令額外的等待時(shí)間不會(huì)超過5個(gè)周期完成正在處理的指令需要一個(gè)周期再加最多4個(gè)周期完成下一條指令如果指令為MULDIV因此在一個(gè)單中斷系統(tǒng)中響應(yīng)時(shí)間總3個(gè)周期小9個(gè)周如前面所述該手冊(cè)所描述的器件都具4個(gè)中斷優(yōu)先級(jí)結(jié)構(gòu)對(duì)應(yīng)的寄存器IE

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論