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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

ONLYMODESETFEBITFOSPTBITIS0(FRAMNGERROR)SM0TOUARTMODECONTRLOSM0/SM0/

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

..........

...

Are

LongCallto

Interrupt

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

溫馨提示

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

評論

0/150

提交評論