ds n76esc rev1 00數據手冊nuvoton1t8051內核微控制器n76e616_第1頁
ds n76esc rev1 00數據手冊nuvoton1t8051內核微控制器n76e616_第2頁
ds n76esc rev1 00數據手冊nuvoton1t8051內核微控制器n76e616_第3頁
ds n76esc rev1 00數據手冊nuvoton1t8051內核微控制器n76e616_第4頁
ds n76esc rev1 00數據手冊nuvoton1t8051內核微控制器n76e616_第5頁
已閱讀5頁,還剩174頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

概 特 結構框 管腳分布 內存架 程序內 數據存儲 片上 非可變數據存 特殊功能寄存器 通用80C51系統控 I/O端口結構和操 準雙向模 推挽輸出模 輸入高阻模 開漏模 讀-修改-寫指 I/O端口的控制寄存 輸入輸出數據控 輸出模式控 輸入類型和輸出能力控 定時器/計數器0和 模式0(13位定時器 模式1(16位定時器 模式2(8位自動重裝載定時器 模式3(兩組獨立8位定時器 定時器 自動重載模 PWM模 定時器2控制寄存 定時器 看門狗定時器 超時復位定時 通用定時 自喚醒定時器 串口 模式 模式 模式 模式 波特 幀錯檢 多機通 地址自動識 2IC總 功能描 起始START及結束STOP條 7位地址和數據格 應答 仲 I2C控制寄存 工作模 主機發送模 主機接收模 從機接收模 從機發送模 廣播呼叫模 狀態 I2C中斷服務程序范 I2C超 I2C中 引腳中 10位模數轉換- 功能描 ADC工作方 ADC轉換結果比較 ADC控制寄存 LCD驅 功能描 LCD控制寄存 LCD程序流 時控保護 中斷系 中斷概 中斷使 中斷優先 中斷服 中斷延 外部中 在應用編程 IAP命 IAP用戶指 使用FLASH存儲器作為數據存 在系統編程 電源管 空閑模 掉電模 時鐘系 時鐘 內部振蕩 外部晶體振蕩器或時鐘輸 系統時鐘切 系統時鐘除 系統時鐘輸 電源管 上電復位 欠壓檢測 復 上電復 欠壓復 外部復位引腳復 看門狗定時器復 軟件復 啟動選 復位狀 輔助功 雙 96位唯一識別碼 在片上調試 功能描 OCD限制條 在電路編程 配置字(CONFIG 指令 電氣特 絕對最大額定 直流電氣特 交流電氣特 模擬電氣特 封裝信 文件版 N76E616是一個內嵌FLASH、8位高性能1T基于8051核的微控制器。指令集完全兼容標準和增強型的的716內嵌18K的FH存儲區,通常稱作AOM,用于存放用戶程序代碼。該存儲區支持IP燒寫功能,即可通過片內固件更新程序代碼,P功能同時提供用戶可自行配置加密程序區或數據存儲區,也可通過P指令或C指令讀取任一區域內數據。另外616還配置額外具有一存儲區稱作M,該區域可存放用于執行IS(otce),LROM區域從8K的OOG配置大小,最多可配置到4K字節。整個1KFLAH區域還支持P編程方式,即通過片外O由總線方式燒寫片內FLSLSH66提供豐富的外設包括5字節的和26字節的外部R,最大到6個O口,兩個6位定1帶W1U2識別,一個IC,8通道共享引腳中斷用于所有I/O,一個10位的ADC,和最大到180段的LCD驅動。外設配備712Hz到16H8kH外0k內部震蕩器,和一個159H內部精確振蕩器,它在常溫下達到%的精度。616提供額外電源監測,例如上電復位和4級欠壓檢測,有穩定的電源通斷性能用于高可靠的系統設66微控制器操作功耗非常低,有兩種經濟的電源模式用來減少電源的消耗空閑模式和掉電模式。軟件可以選擇空閑模式關閉U時鐘,但是允許外設繼續工作。掉電模式停止整個系統時鐘用于最小的功耗。帶有高性能的CPU核和豐富的外設,N76E616全靜態設計81T基于8051CMOS微控制器工作2.4V內存18KAPROM4K/3K/2K/1K/0KLDROM用于啟動ISPFLASH內存每256FLASH20,000次擦寫壽命代碼安全加密256256RAMXRAMMOVX指令訪問UID(唯一碼11.059MHz±1%,10kHz2MHz16MHz高速外部晶振32.768kHz低速外部晶振外部時鐘輸入通過軟件切換時鐘源可編程系統時鐘分頻,最大到外設45I/O???????????1622A/2B/2C/2D支持自動重載模式和PWM(WDT),時鐘源為內部10kHzUART八通道引腳中斷,與所有I/O端口共享。邊沿/一個10位ADC,最大到300ksps4COM32SEG6COM/30SEG配置的LCD電源管理電源監測(BOD4-ESDEFT開發工具(OCD)KEILTM部分型號和封裝18KLDROM4K3-1N76E616

8-bitInternalP08-bitInternalAIN0~COM0~COM5SEG0~

AnyI/O3-14-1.4-1.LQFP-484–1.復合功能描述地:P0:端口0是可位尋址的8I/O AIN0:ADC 外部計數輸入到定時器/計數器00./AIN1??????? 端口0管腳AIN1:ADC輸入通道??? 端口0管腳AIN2:ADC輸入通道 端口0管腳AIN3:ADC輸入通道 端口0管腳AIN4:ADC輸入通道 端口0管腳AIN5:ADC輸入通道 端口0管腳AIN6:ADC 端口0管腳AIN7:ADC輸入通道CLO:SEG31:LCDsegment31輸出P1:端口1是可位尋址的8I/O1 端口1管腳COM0:LCDcommon0輸出2 端口1管腳COM1:LCDcommon1輸出3 端口1管腳COM2:LCDcommon24P1.3/?????? 端口1管腳??????:1輸入COM3:LCDcommon3輸出P1.4:端口1管腳 外部計數輸入到定時器/計數器1,或是輸出SEG7:LCDsegment7輸出P1.5:Port1管腳T2AO12A輸出SEG8:LCDsegment8輸出P1.6:端口1管腳T2AO22ASEG9:LCDsegment9輸出 端口1管腳T2BO12BSEG10:LCDsegment10輸出4–1.復合功能描述P2:端口2是可位尋址的8位I/O 端口2 SEG11:LCDsegment11輸出 端口2 串行端口0SEG12:LCDsegment12輸出 端口2 串行端口0SEG13:LCDsegment13輸出 端口22 IC數據SEG14:LCDsegment14輸出 端口22 IC時鐘SEG15:LCDsegment15輸出 端口2SEG16:LCDsegment16輸出 端口2T2CO1:2C輸出SEG17:LCDsegment17輸出 端口2 SEG18:LCDsegment18輸出P3:端口3是可位尋址的7I/O端口,P3.6 端口3 SEG27:LCDsegment27 端口3 SEG28:LCDsegment28輸出 當HXTLXT沒用到,端口32 HXTLXT被使用,XIN是輸入管腳到內部反向放大器。如果ECLK模式使能,XIN是外部時鐘輸入引腳。SEG29:LCDsegment29輸出 當HXTLXT沒用到,端口3bit3 HXTLXT被使用,XOUT是輸出管腳來自內部反向放大器。如果ECLK模式使能,它發出XIN的反向信號。SEG30:LCDsegment30輸出 端口3ICPDA:ICP數據輸入或輸出OCDDA:OCD數據輸入或輸出4–1.復合功能描述 ICPOCDCK:OCD3.??????P3.6RPD(CONFIG0.2)配置為0,端口3bit6????:????一個低電平復位芯片。??????引腳有一個內部上拉電阻,通過簡單的P4:端口4是可位尋址的7I/O5 端口4 LCDsegment0輸出 LCDcommon4輸出6 端口4 LCDsegment1輸出 LCDcommon5輸出 端口4 LCDsegment2輸出7 端口4 LCDsegment3輸出8 端口4 LCDsegment4輸出9 端口4 LCDsegment5輸出 端口4 LCDsegment6輸出P5:端口4是可位尋址8I/O 端口5 外部觸發ADC信號 LCDsegment19輸出 端口5 LCDsegment20輸出 端口5 LCDsegment21輸出 端口5 LCDsegment22輸出 端口5 LCDsegment23輸出 端口5 LCDsegment24輸出 端口5 1 LCDsegment25輸出 端口5 1發送數據輸出 LCDsegment26輸出[1]I/O引腳可以配置成中斷引腳,這個特征沒有在多功能描述里面列出來。詳見章節16.“引腳中斷R2MHz1632.7684-2數據內存占用的地址空間獨立于編程內存。在76616中,有6字節內部RM。對于需要更多內部M的許65AXOX整個嵌入的H,作為編程內存的功能,被分成三塊。應用M(M)正常情況下為用戶代碼,加載M(M)G,RM和OM6字節。H控制單元支持擦除、編程、和讀模式。5–1.所示。在任何復位之后CPU從地址0000H用于服務中斷,中斷服務位置(叫做中斷向量)中斷引起U跳到中斷服務子程序(R)開始執行的地方。例如外部中斷0被分配到地址H。如果外部中斷0打算使用,它的服務子程序應該從地址03H開始。如果中斷不使用,該地址可以作為通用的編程內存。中斷服務位置間隔為八個字節:0H用于外部中斷0,0H用于定時器0,00H用于外部中斷1,01H用18J另外單獨的編程塊叫做M,它的通常功能是存儲啟動代碼用于P。它可以更新M空間和G字節。M中的代碼也可以重新編程M。對于M和M的P的細節和配置位,請看章節4“()”RM和LRMUC映射C指針到00H到DM開始的地址。因此U認為DM是單獨的編程內存且所有中斷向量獨立于。76543210出廠默認值:1111位LDROMLDROM的大小111=LDROM.APROM18K字節110=LDROM是1K字節.APROM是17K字節101=LDROM是2K字節.APROM是16K字節100=LDROM是3K字節.APROM是15K字節0xx=LDROM是4K字節.APROM是14K字節BS= BS=[1]ThelogicboundaryaddressesofAPROMandLDROMaredefinedbyCONFIG1[2:0].5–1.N76E616圖-27616以分割成三塊。分別是RM的低128字節,AM的高8字節,和R空間的128字節。內部數據內存的地址總是8位寬度的,可用于56字節的地址空間。直接尋址高于7FH的地址會訪問特殊功能寄存器(R),間接尋址高于H的地址會訪問AM的高8字節。雖然R地址空間和M高8字節共享相同的邏輯地址0H到H,事實上他們是物理獨立的實體。直接尋址區別于M的高28字節,僅可以訪問R。R空間中的16個R0內部RM的低28字節在所有的051設備上都有的。最低的2字節作為通用寄存器分成四組8個寄存器,程序0PW3)S0和R16(H到F)是(0H到)。5180H到7F。所有低2828R。對于整個6字節的內部RAM,另外一個應用是用于堆棧。這個區域通過堆棧指針()來選擇,P存儲堆棧頂的地址。當AL、JP或中斷被調用,返回的地址就存在堆棧里面。沒有限制堆棧從M的什么地方開始。默認情況下,在復位后堆棧指針為0H。用戶可以改變該地址為任何想要的值。P會指向最后使用的值。因此P

256BytesXRAM(MOVXaddressing)256BytesXRAM(MOVXaddressing)Upper128BytesInternalRAM(indirectaddressing)(directLower128BytesInternalRAM(directorindirectIndirectIndirectAccessingDirectorIndirectAccessingRegisterBankRegisterBankRegisterBankRegisterBank

Bit-GeneralPurpose5-3.內部256字節RAMN76E616提供額外的片上256字節的額外RAM叫做XRAM來擴大RAM的空間。它占用地址空間從00H到FFH。這256字節的XRAM通過MOVE外部指令MOVX@DPTR或MOVX@Ri.(看下面示例代碼)。注意堆棧指針不能位XRAM;write#5AHtoXRAMwithaddress;readfromXRAMwithaddress;write#5BHtoXRAMwithaddress;readfromXRAMwithaddress通過使用IAP,APROM或LDROM任何頁都可以用來作為非易失性數據存儲。IAP的細節,請看章節21.”在應用編程(IAP)”76用特殊功能寄存器(R)來控制或監視外設和其他模塊。R位于地址0到H地址空間,僅可以HHR況下,這是非常有用的。其他所有的R僅可以字節尋址。N76616包含標準51中出現的所有FR,然而一81R為了在地址0到xF之間提供多于28字節的R,補充了R頁。默認情況下,所有R訪問目的都是R頁0。在設備初始化過程中位于R頁1的地址可能需要去訪問。寄存器S用來切換R地址頁。注意這。SFRS–SFR頁選擇(TA保護76543210地址: 復位值:0000位0SFR0SFR1SFRSFR頁的示例代碼;switchtoSFRpage;switchtoSFRpage6–1.SFR頁0101B0101010101010101--01-01-01--010101--SFR空間中未使用地址 ‘- 標記,訪問改寫這些地址字節會有不可預知的影響,請避免這種情況6–2.SFR復位值擴展中斷優先級高位00000000擴展中斷優先級0000000LCD--0000000LCD0000000LCD0000000LCD-0000000串口10000000-0000000P00000000ADC0000000BB0000000-0000000輸入捕獲20000000輸入捕獲200000000000000管腳中斷高電平/0000000管腳中斷低電平/000000000000000ADC--00000000000000LCDsegment0000000LCDsegment0000000ADC0000000ADC0000000ADC0000000ADC00100000000000P5模式選擇寄存器0000000P50000000P5模式選擇1111111P4模式選擇-0000000P4-0000000P4模式選擇-01111110Output011111110XXXOutput11111111XXXX2D00000002D00000002C00000002C0000000-000000002B00000002B00000002A00000002A00000000000000定時器20000000T2APS[20000000定時器200000006–2.SFR 復位值00000000定時器300000000定時器300000000300000000ADC00000000ADC00000000IC00000000IC---00000000IC0000000000001110000111110000000000000000000100000000000000000-00000000-00000000P2模式選擇P2M200000000P200000000P2模式選擇P2M111111111P100000000P1模式選擇00000000P100000000P1模式選擇11111111P0模式選擇P0M200000000P000000000P0模式選擇P0M111111111Output001111110XXX0011000000000000P300000000P3-00000000P300111111欠壓檢測控制LPBOD[10000000100000UU00000111b00001UU00000000000000000000IAP00000000IAPIAPA[700000000IAP0000000000000000欠壓偵測控制-C0CCXC0XbU0UUXU1U0UU6–2.SFR 復位值-000000001U00000??????U100000UU00000Output11111111XXXX000000U0000000C0擴展中斷使能00000000-00000000串口100000000串口000000000Serialport00000000000110000-001100000000000000000000Output11111111XXXX--0000000000000000定時器100000000定時器000000000定時器100000000定時器000000000??0000000000000000-00010000000U000000000000000000000000000000000111Output11111111XXXX復位值符號描述0:0;1:1;U:不變;C:[5];X:[3],[6],復位之后所有I/O引腳為默認懸浮輸入模式。如果RPD(CONFIG0.2)保持未編程1,那么讀回P3.6引腳總是0SFR根據CONFIG29.“配置字(CONFIGBOF復位值取決于CONFIG2不同的設置和VDD當欠壓偵測使能,BOS是只讀標志,由VDD標 ‘- 的位保留將來使用。他們必須保持在初始狀態,訪問改寫這些位可能導致不可預知的后果AorACC–(可位尋址76543210地址: 復位值:0000位AACC寄存器是標準的80C51BB(可位尋址76543210地址: 復位值:0000位BB寄存器是另外一個標準80C51的累加器,它用于MULDIV指令。SP–76543210地址: 復位值:0000位H或L的默認值是H。DPL–76543210地址: 復位值:0000位這是16位數據指針的低字節,DPL結合DPH作為16位的數據指針DPTR訪問想要訪問的RAM或編程內存地址。DPS(AUXR1.0)位決定哪一個數據指針DPTR或DPH–76543210地址: 復位值:0000位這是16位數據指針的高字節,DPH結合DPL作為16位的數據指針DPTR訪問想要訪問的RAM或編程內存地址。DPS(AUXR1.0)位決定哪一個數據指針DPTR或PSW(可位尋址76543210PR地址: 復位值:0000位7進行加法或減法操作時,當前運算需要向高位進位或借位時,CY在進行MULDIV運算時,CY始終為0CY受DAA指令影響,用來表示是否初始BCD數大于100在CJNE指令中,如果第一個無符號數的值小于第二個,則CY置1,否則清06當前運算導致從半字節的低序第45用戶標志4位3這兩位用來選擇R0到R7 寄存器 RAM地 00H 08H 10H 18H2OV用于標示發生溢出。對于加法指令ADD或ADDC指令中,如果位6有進位而位“”“。V也用為“”“。O對于MUL乘法指令,當結果大于255(00FFH)時,OV置1。反之清0對于DIV除法指令,通常情況下OV為0。除非當B設定值為00H,則A和B的返回值為隨機值,同時OV置1。1用戶標志0P當累加結果為奇數時,該標志置1,偶數時清07–1.XXCLR0XXXCPLXXXXANLC,X0XANLC,X0XORLC,XDAXORLC,XRRCXMOVC,XRLCXXSETB1[1]X表示根據指令的結果變化PCON–76543210--地址: 復位值:詳見表6–2.SFR定義及復位位3通用標志通用標志可由用戶置位或清零2通用標志通用標志可由用戶置位或清零66最多支持6個可位尋址的通用O引腳,分成6組0到5。每一個端口有它的端口控制寄存器()O引腳(除6)可以被軟件獨立配置成四中O模式中的一種。這四種模式是準雙向模式(標準1端口結M1和x模8–1.管腳I/OI/O00011011所有O引腳可以通過S寄存器里對應的位選擇為L電平輸入或施密特觸發輸入。施密特觸發輸入有更好的有四個I/O引腳支持大的輸出或灌電流,包括P1.0到P1.3。默認情況下,它們和其他I/O引腳的輸出能力一樣。當配置RPD(CONFIG0.2)為0,P3.6被配置為輸入引腳。同時P3.6將永遠在輸入和施密特觸發模式,且有一個內1的O外部器件將電平拉低。當引腳被拉低時有強驅動能力,會吸收大電流。在準雙向/O適應不同的應用。其中一個上拉叫做特弱上拉,當端口鎖定在邏輯1時,打開特弱上拉,若為外部懸空狀態,特第二種上拉為“弱上拉”,當外部端口引腳自身處于邏輯1電平時打開。這種上拉提供源電流以使準雙向引腳輸出1。如果引腳為邏輯1,被外部器件拉低,“弱上拉”關閉,僅有“特弱上拉”打開。此時要將引腳拉低,外部器件要有足夠的灌電流(大于ITL)以克服“弱上拉”,并使端口的電壓低于輸入門限電壓(低于VL)。“情況發生時,強上拉打開兩個總線時鐘的時間以快速將端口引腳拉高。然后就關閉,弱上拉和特弱上拉繼續保PPPPVeryNPortPort8-1.1 Port

Port8-2輸入模式提供真實的高阻輸入路徑。雖然準雙向模式也可以作為輸入引腳,但是它需要相對強的輸入源。輸入模0DD Port8-3.開漏輸出配置關閉所有內部上拉,當端口鎖定為邏輯0時,僅打開驅動端口的下拉晶體管。當單口鎖存為邏輯1時,它就和輸入模式一樣。通常用于IC輸出線上,開漏引腳需要加一個外部上拉電阻,典型連一個電阻到D。1NPortNPort8-4從FR或內部M讀一個字節,修改它,并重新寫回去的指令,叫做讀-修改-寫指令。當目的是一個O端口或一個端口位,這些指令讀內部輸出鎖存而不是外部引腳的狀態,這種指令讀端口R的值,修改它并寫回到SFR--指 描 ANLdirectAANLdirect ORLdirectAORLdirect ORXRLdirect,AXRLdirect 為1轉跳指令并清除.(JBCbit,位取反.(CPL加一指令.(INC減一指令DEC減一不為零轉跳指令.(DJNZdirect,bit,移進位標志到位.(MOVbit,清位.(CLR置位.(SETB最后三條指令看似不是明顯的讀-修改-寫指令,實際也是讀-修改-這些寄存器是O輸入輸出數據緩存。讀獲取O輸入的數據。寫驅動數據輸出,所有這些寄存器都是可位尋址P00(可位尋址76543210地址: 復位值:1111位0是8I/O端口P11(可位尋址76543210地址: 復位值:1111位18I/O端口P22(可位尋址76543210地址: 復位值:1111位端口28I/O端口P33(可位尋址765432100RR地址: 復位值:0011位7063第6當RPD(CONFIG0.2)配置為0,P3.6是輸入引腳。當RPD未配置P3.6讀總是053第5P3.5I/O引腳,ICPCKOCDCK43第4P3.4I/O引腳,與多功能引腳ICPDA和OCDDA33第3HXTLXT沒有使用,P3.3可用。這種情況下P3.3功能是通用I/OHXTLXTP3.3XOUTP3.3無效,讀P3.323第2僅當HXTLXT,ECLK沒有使用,P3.2可用,這種情況下P3.2功能是通用I/O。如果HXT,LXTECLK使用,P3.2引腳功能作為XINP3.2無效,讀P3.2總位13第1P3.1I/O引腳,與多功能引腳T2DO2和SEG2803第0P3.0I/O引腳,與多功能引腳T2DO1和SEG27P4765432100R地址: 復位值:0111位7-47I/O端口P55(可位尋址76543210地址: 復位值:1111位58I/O端口P0M1076543210地址:B1H,頁: 復位值:1111位P0M2076543210地址:B2H,頁: 復位值:0000位0模式選擇P0M1P0M2結合用于決定P0每個引腳的I/O8–1.管腳I/O模式配置P1M11模式選擇76543210地址:B3H,頁: 復位值:1111位P1M2176543210地址:B4H,頁: 復位值:0000位P1M1P1M2結合用于決定P1每個引腳的I/O8–1.管腳I/O模式配置P2M1276543210地址:B5H,頁: 復位值:0111位P2M2276543210地址:B6H,頁: 復位值:0000位P2M1P2M2結合用于決定P2每個引腳的I/O8–1.管腳I/O模式配置P3M1376543210地址:ACH,頁: 復位值:0000位P3M2376543210地址:ADH,頁: 復位值:0000位6P3.60=P3.6上拉禁止1=P3.6僅當RPD(CONFIG0.2)被配置為0.該位有效。當選擇作為??????引腳上拉總是使3模式選擇P3M1P3M2結合用于決定P3每個引腳的I/O8–1.管腳I/O模式配置P4M1476543210--地址:DAH,頁: 復位值:1111位P4M2476543210--地址:DBH,頁: 復位值:0000位P4M1P4M2結合用于決定P4每個引腳的I/O8–1.管腳I/O模式配置P5M1576543210地址:DCH,頁: 復位值:1111位P5M2576543210地址:DDH,頁: 復位值:0000位P5M1P5M2結合用于決定P5每個引腳的I/O8–1.管腳I/O模式配置每一個I/O引腳可以獨立地配置成TTL輸入或施密特觸發輸入。P1OS[3:0]位用于P1.0到P1.3的輸出控制。這四個引腳支持大灌入電流和輸出電流。注意所有PxS和P1OS寄存器通過切換SFR頁到頁1來訪問。P0S076543210地址:B1H,頁: 復位值:0000位nP0.n0P0.nTTL1=P0.n.P1S176543210地址:B3H,頁: 復位值:0000位n0P1.nTTL1=P1.n.P2S–端口276543210地址:B5H,頁: 復位值:0000位n0=P2.n.TTL1=P2.nP3S–端口376543210--地址:ACH,頁: 復位值:0000位n0=P3.n.TTL1=P3.nP4S–端口476543210--地址:DAH,頁: 復位值:0000位n0=P4.n.TTL1=P4.nP5S–端口576543210地址:DCH,頁: 復位值:0000位n0=P5.n.TTL1=P5.nP1OS–端口176543210地址:B4H,頁: 復位值:0000位-nP1.n0=P1.n1=P1.n大電流輸出能力N76E616的定時器/計數器0和1分別為兩個16位定時器/計數器。每個都由兩個8位的寄存器組成16計數寄存器。對于定時器/計數器0為高8位寄存器TH0、低8位寄存器TL0。同樣定時器/計數器1也有兩個8位寄存器,TH1和TL1。TCON和TMOD可以配置定時器/計數器0和1的模式。定時器或計數器功能通過TMOD的?位來選擇。每一個定時器/計數器有它自己的選擇位。TMOD.2用于定時器計數器0功能選擇,TMOD.6用于定時器/計數器1TM(ON.3)02S)。TMO4)1每當檢測到外部計數輸入腳上的負電平跳變(T0針對定時器0,T1針對定時器1),計數寄存器的內容就會加一。T0或T1T0TMTT)616LXT固定的溢出速率。此外每一個定時器/計數器可以配置為四種可能的模式中的任何一種。通過TD中的0和M1定時器0和1可以配置成當定時器溢出發生的時候自動取反一個端口輸出。T0和T1既用來做定時器的計數輸入也用來做取反輸出。這個功能通過P1M1寄存器的T0OE和T1OE控制位來使能。分別應用于定時器0和定時器1。當這種模式打開,定時器第一次溢出是先輸出邏輯1。為了實現該模式的功能,?位應該清零選擇系統時鐘作為注意:TH0(TH1)TL0(TL1)是分別被訪問的,強烈建議在模式0或模式1,在讀或寫TH0(TH1)TL0(之前,用戶應該通過清零TR0(TR1)TMOD0176543210地址: 復位值:0000位710=當TR1=1時,定時器1時鐘運行不管INT11=當TR1=1和INT1為邏輯1,定時器16?定時器1計數器/定時器選擇0=定時器11=定時器1隨外部引腳T15定時器1 定時器1 28TH1自動重載功能的 314300=當TR0=1時,定時器0時鐘運行不管INT01=當TR0=1和INT0為邏輯1,定時器02?定時器0計數器/定時器選擇0=定時器01=定時器0隨外部引腳T01定時器0 0 模式013/ 模式116/ 模式28TH0自動重載功能的 模式3TL08/TH00TCON01(可位尋址76543210R(電平讀/(邊沿R(電平讀/(邊沿地址: 復位值:0000位71061啟動控制0=定時器1中止.清該位將中止定時器1和當前計數將保存在TH11=使能定時器50溢出標志040啟動控制0=定時器0中止.清該位將中止定時器0和當前計數將保存在TH01=使能定時器TL0076543210地址: 復位值:0000位0數據寄存器TL0是定時器0的16位計數數據寄存器低8位字節TH0076543210地址: 復位值:0000位0寄存器TH0是定時器0的16位計數寄存器的高字節TL1176543210地址: 復位值:0000位定時器1寄存器TL1是定時器1的16TH1176543210地址: 復位值:0000位1寄存器TH1是定時器1的16CKCON–76543210地址: 復位值:0000位410=1的時鐘源是系統時鐘的12除頻,它保留標準8051的特性。11300=0的時鐘源是系統時鐘的12除頻,它保留標準8051的特性。10的時鐘源直接是系統時鐘AUXR176543210-0-R地址: 復位值見表6–2.SFR定義及復位位51LXT01計數時鐘通過?(TMOD.6)和T1M(CKCON.4)1定時器1LXT時鐘4定時器0LXT00計數時鐘通過?(TMOD.2)和T0M(CKCON.3).10LXT時鐘P3M1376543210地址:ACH,頁: 復位值:0011位710111從T1注意:僅當操作在定時器模式,定時器1600010從T0注意:僅當操作在定時器模式,定時器0在模式0,定時器/計數器是13位的計數器。13位的計數器由TH0(TH1)和TL0(TL1)的低五位組成。TL0(TL1)0(1是?

??????

??????)是1定時器/計數器使能。Gate設置為1?

??????

??????)計算脈沖的寬度。當13位的定時器計數值變為1FFFH后,下一次計數會使其變為0000H定時器溢出標志TF0(TF1)置位,如果中斷打開,此時還會產生一個定時器中斷。

T0M(CKCON.3)(T1M0 010T0(T1)

TL0TR0

T0LXTM(AUXR1.4)(T1LXTM

00TH0

00

Timer

77INT0(INT1)

9-1.定時器/計數器0及1模式011x6T0M(CKCON.3)(T1MT0(T1)

0 0101

TL00 707TR0

T0LXTM(AUXR1.4)(T1LXTM

00TH0

7T0OE7

Timer

T0(T1) 9-2.定時器/計數器0及1模式模式2下定時器/計數器為自動重裝載模式。此模式下TLx是一個8位的計數器,THx保存重裝計數值。當TLxFFH向00H溢出后,TCON中的TFx標志置位THx中內容重裝至TLx,繼續計數過程。重裝過程中THx不變.該特征最好地適用于UART波特率發生器,不需要連續軟件介入.注:僅有定時器1可以用作UART的波特率源。當TRx位置1,GATE位及???????(???????)配置正確時,計數器開始計數。GATE位及???????(???????)引腳的功能與

T0M(CKCON.3)(T1M0 01T0(T1)

TL0

TimerTR0INT0(INT1)

T0LXTM(AUXR1.4)(T1LXTM

07TH007

T0(T1)9-3.定時器/計數器0及1模式模式3有著不同的工作方式。對定時器/計數器1來說模式3會將其停止;對定時器/計數器0來說模式3下TL0083、0?

??????和TF0。TL0可以用來對T0腳上的1到0跳變計數,由?(TMOD.2).來決定。TH0只能對內部時鐘源計數,并使用定時器/數器1的控制位(TR1和TF1)。當需要額外的8位定時器時可以使用模式3。當定時器0處于模式3時,定時器1可以通過將其放入或離開模式3的方式來打開或關閉它。定時器1依然可以工作在模式0、1、2R及??????T1M,和T1LXTM

?9-4.定時器/計數器0模式2,,C,D獨的控制。每一個定時器支持兩種操作模式:自動重載模式和WM模式。通過O0或O1寄存器的xM來選擇。用戶可以通過x20]選擇預分頻值。有兩個輸出引腳產生互補的0%占空比周期或WM波2H和AL6A和填合適值到2AH和AL之后,用戶可以設置TATO)來開始計數。在TA置位之后,R2AH和2L被加載到內部16位計數器中,并開始向下計數。當計數器溢出,TAT)由硬件置位為1,并使R2H和RA6TAI.)12TATOT2O1和T2T2O11優

16-bitDown

Timer2ATimer2AT2AO1pin077T2AO2077 10-12APWM2H和2R2M0和O用戶可以設置2AN)來開始M輸出。同時RH加載到內部8位計數器,且計數器開始向下計數。在下次計數到0之前,H重新載入且1回復邏輯1,一旦數到0,L被加載,且1取反輸出邏輯的TF2A會置12中斷。在WT2AWMPWM占空比高電平 PWM占空比低電平: PWM周期:

8-bitDown

Timer2AMatch0EventTimer2A

Repeat T2AO1T2AO20

10-22APWMR2AHR2ALR2AHR2ALR2AH在本周期內更 R2AL在本周期內更TR1A=(定時器1A運行),R2AH導入8位向下計數,T2AO1輸出

向下計數至0,導入8

T2AO1輸出10-32APWM至0,T2CON2(可位尋址76543210地址: 復位值:0000位72D中T62C中T52B中T42A中T32D0=定時器2D1=定時器2D注意在自動重載模式,重載寄存器R2DHR2DL僅當定時器2D停止(TR2D=0)才可以被寫。如果在TR2D為1時寫R2DH或R2DL,結果是不可預知的。22C0=定時器2C1=定時器2C注意在自動重載模式,重載寄存器R2CH和R2CL僅當定時器2C停止(TR2C=0)才可以被寫。如果在TR2C為1時寫R2CH或R2CL,結果是不可預知的。12B0=定時器2B1=定時器2B注意在自動重載模式,重載寄存器R2BH和R2BL僅當定時器2B停止(TR2B=0)才可以被寫。如果在TR2B為1時寫R2BH或R2BL,結果是不可預知的。02A0=定時器2A1=定時器2A注意在自動重載模式,重載寄存器R2AH和R2AL僅當定時器2A停止(TR2A=0)才可以被寫。如果在TR2A為1時寫R2AH或R2AL,結果是不可預知的。T2MOD0276543210地址: 復位值:0000位72B0=自動重載模式1=PWM模式000=001=010=011=100=101=110=111=30=自動重載模式1=PWM模式000=001=010=011=100=101=110=111=T2MOD1276543210地址: 復位值:0000位72D0=自動重載模式1=PWM模式000=001=010=011=100=101=110=111=32C0=自動重載模式1=PWM模式000=001=010=011=100=101=110=111=T2OE276543210地址: 復位值:0000位70=T2DO2輸出禁止1T2DO260=T2DO1輸出禁止1=T2DO150=T2CO2輸出禁止1=T2CO240=T2CO1輸出禁止1=T2CO130=T2BO2輸出禁止1=T2BO220=T2BO1輸出禁止1=T2BO112A0=T2AO2輸出禁止1=T2AO202A0=T2AO1輸出禁止1=T2AO1R2AL–2A76543210地址: 復位值:0000位2AR2AH2A76543210地址: 復位值:0000位2AR2BL–定時器2B76543210地址: 復位值:0000位2BR2BH2B76543210地址: 復位值:0000位2BR2CL2C76543210地址: 復位值:0000位2CR2CH2C76543210地址: 復位值:0000位2CR2DL2D76543210地址: 復位值:0000位2DR2DH2D76543210地址: 復位值:0000位2D定時器3是一個補充的16位自動重載上數定時器。用戶可以通過T3PS[2:0](T3CON[2:0])選擇預分頻,并填重載值到R3H和R3L寄存器來決定它的溢出速率。用戶可以設置TR3(T3CON.3)來開始計數。當計數跨過FFFFH,TF3(T3CON.4)置為1,且R3H和R3L寄存器的內容重載到內部16位計數器。如果ET3(EIE1.1)置為1,定時器3中斷服務程序被執行。當進入中斷服務程序,TF3會被硬件自動清零。3也是UART14.5波特率

070707

16-bitUp

Timer3Timer311-13T3CON376543210地址: 復位值:0000位433303停止13注意重載寄存器R3HR3L僅在定時器3停止(TR30)的時候才可以被寫。如果TR3位1寫,結果是不可預知的。3這些位決定定時器3000=001=010=011=100=101=110=111=R3L376543210地址: 復位值:0000位3R3H376543210地址: 復位值:0000位3擾設備進入非正常狀態或掛起,看門狗可以復位恢復系統。用于監測系統以提高系統可靠性。對于容易受到噪N30](N474工76543210出廠默認值1111位WDT該域配置MCU執行后,WDT1111WDTWDT0101=WDT使能,作為一個超時復位定時器,且在空閑或掉電模式會停止運其他=WDT使能,作為一個超時復位定時器,且在空閑或掉電模式會保持運WTKLCWTWTWDCON看門狗定時器控制(TA保護76543210地址: 復位值:見表6–2.SFR定義及復位位7WDTWDTEN[3:]ONFIG4[7:])全為WD0=WDT禁止1=WDT使能WDT位6WDT寫01=WDT計數器讀0=WDT1=WDT計數器還沒有清零5WDT該位表示WDT計數器的溢出。該標志應該通過軟件清零。4WDTWDTEN[3:]ONFIG4[7:])全為WD0=WDT1=WDT在空閑或掉電模式下保持工作3WDTWDT這些位決定了WDT時鐘的預分頻,從1/11/256。見12–1.在不同分頻下的看門狗超時間隔。默認是最大分頻值。WDTRF在上電復位之后會被清零,在WDTWDPS[2:0]1

×clockdividerscalar×64決定 FLIRC是內部震蕩10kHz的頻率。下表所示不同12–1.(FLIRC~=100006.4000125.6001051.20011102.40100204.80101409.60110819.201111.638當CONFIG位WDTEN[3:0](CONFIG4[7:4])不是FH,,WDT是初始化為一個超時復位定時器。如果WDTEN[3:0]不是5H,WDT在系統進入空閑或掉電模式后允許繼續運行。注意當WDT初始化為超時復位定時器,WDTR和WIDPD沒有功能。.

WDT WDT12-1.WDTWTW2]WON20])選擇。當選擇的超WTWTFW)WTWT(E)A位,WT中斷程序被執行。同時一個額外的12個LRC時鐘延時用于計數器的清零來避免系統被WT復位。如果在這52個時鐘內沒有寫1WRWTWRWTWTWTWTFWCONWFWON看門狗定時器復位的主要應用是系統監測,這對于實時控制很重要,適用于電磁干擾等避免發生程序跑飛等場設定WCLR,可使代碼繼續運行而無看門狗定時器復位。如果代碼運行在錯誤的狀態下,無法及時清看門狗定時看門狗定時器的另一個應用是用作簡單的定時器。當CONFIG位WDTEN[3:0](CONFIG4[7:4])是FH。WDT初始化為通用定時器。在這種模式下WDTR和WIDPD是完全可以通過軟件訪問的。PD

12-2.T通過設置R為開始運行,通過清零停止。當T選擇的時間間隔到后,F標志會置位。軟TDT)DD在一些功耗的應用中,CU常在沒有處理事件時處于空閑模式或掉電模式,需要定時喚醒察看是否需要響應,而到mμU應N6WT1kP。 ;WDTinterruptservice;clearWDTinterrupt;Start;chooseintervallengthandenableWDTrunning;enableWDT;WDT;EnterPower-down 716有一個專門的自喚醒定時器(WT),它用于低功耗模式下的周期喚醒或通用的定時器。WT保持計數在空閑或掉電模式。當WT用于喚醒定時器,WT要在進入掉電之前開啟。WT有兩個時鐘源,RC或XT,由WSW5)位決定。注意系統時鐘頻率必須大于WT時鐘兩倍以上。如果WT開始計數,WTWT1到22]CN2擇。用戶填重載值到K寄存器來決定它的溢出速率。WRWCN)置位開始計數。當計數器溢出,F)置位為1,并重載WK寄存器的值到內部8為計數器。如果WT1)置為1,WT中斷01

8-bitUp0707

WKT13-1.WKCON–76543210地址: 復位值:0000位5WKT0=1=注意當WKT在運行中的時候,該位不能切換。它需要在WKTR設置為14WKT位3WKT0=WKT停止1=WKT注意重載寄存器RWK僅在WKT停止(WKTR0).的時候可以寫入。否則結果是不WKTWKT時鐘的預分頻000=001=010=011=100=101=110=111=RWK–76543210地址: 復位值:0000位WKT用以存儲WKT的8位重載值。注意如果預分頻是1/1,RWK限制不能是FFH66有兩個具備地址自動識別和幀錯功能的全雙工串口。兩個串口的功能是一樣的,為了區分兩個串口控01,2,和3BF。對F寫入數據用于發送,接收數據也從寄存器SF中讀取。串口共有4種模式,任何一種模式都由F發起指令。注意,在使用串口功能前,串口所用管腳.1及.2XD及TX)或者6及P71及TX_)。SCON(可位尋址76543210地址: 復位值:0000位7SMOD0(PCON.6)=14–1SMOD0(PCON.6)=SM0/FE幀錯,軟件清0=無幀錯1=檢測到幀錯65此位功能依賴串口0模式此位選擇波特律是FSYS/120=FSYS/12標準8051兼容模式1模式0=1=只有接收到有效停止位,并且地址匹配時(包括廣播地址),才接收數據模式2多機通信功能0=無論第9位是0是11=只有第9位是1,且地址匹配時才接收(包括廣播地址40=串口0禁接收1=工作模式為1,2,3時,使能接收.工作模式為0時,在條件REN=1RI=0時接位3發送的第9串口0在模式2,3時,此位是發送的第9位,模式0,1不用此位2收到的第9串口0模式2,3時,此位是收到的第9位。模式1時,RB8是停止位電平。模式0不用10S2。00此位。2。SCON_1串口1控制寄存器(可位尋址76543210地址: 復位值:0000位7串口16SMOD0_1(T3CON.6)=SMOD0_1(T3CON.6)=SM0_1/FE_1幀錯,軟件清0=無幀錯1=檢測到幀錯5此位功能依賴串口0模式模式0=1=只有接收到有效停止位,并且地址匹配時(包括廣播地址),才接收數據模式2多機通信功能0=無論第9位是0是11=只有第9位是1,且地址匹配時才接收(包括廣播地址40=接收禁止1=串口1,對于模式1,2,3來說是接收使能。對于模式0REN_1=1RI_1=3發送的第9串口1模式2,3發送的第9位,模式0,1不用此位2收到的第9串口0模式2,3時,此位是收到的第9位。模式1時,RB8是停止位電平。SM2_11。002被限.PCON–76543210--地址: 復位值:見表6–2.SFR定義及復位位7串口0模式2,或模式1,311,波特律加倍。詳見表14–1..60=SCON.7SM0位1=SCON.7FE位T3CON376543210地址: 復位值:0000位7串口1在模式2時,此位置114–260=SCON_1.7SM0_1位1=SCON_1.7FE_1位14–1.串口000081011/定時器332或210311定時器1/定時器332orSM2(SCON.5)=1時SMOD(PCON.7)=1時14–2.串口10008101定時器3210311定時器3SM2_1(SCON_1.5)1時SMOD_1(T3CON.7)1時SBUF–串口076543210地址: 復位值:0000位串口0串口0接收或發送的數據都放在這個寄存器中。實際上該地址上有2個獨立的8位寄存器。一個用于接收數據,一個用于發送數據。對它進行讀操作將會接收串行.每次向SBUF寫入一字節數據,啟動一次發送SBUF_1–串口176543210地址: 復位值:0000位串口1串口1接收或發送的數據都放在這個寄存器中。實際上該地址上有2個獨立的8位寄存器。一個用于接收數據,一個用于發送數據。對它進行讀操作將會接收串行數據,對它進行寫操作則發送串行數據.模式0與外部設備進行同步通信的方式。在該模式下,串行數據由RXD腳進行收發,而TXD腳用于產生移位時FSYS/12(SM2(SCON.5)0)或FSYS/2(SM21)..0為14-1顯示串口模式0傳輸時序圖14-1.0如圖所示,數據由雙向RXD線進行收發。位移時鐘TXD/發送數據。數據最低位用于移入移出數據,波特率根據TXD向UFXD8TI(O.)置1RNS=1且=0數據。外部設備要在移位時鐘的下降沿處送出數據。這個過程持續到8位數據全部發送完畢。RI會在TD的最后一個下降沿處置1,這時接收動作結束,注N不由硬件清零,用戶應該首先清零I,清N,并再次通過軟件R模式1為全雙工異步的方式工作。串行通信的數據貞由0位數據組成,在DD腳上進行收發。0位數據組(位,))1D(CN7)(1圖42.向F寫入指令開始傳輸,傳輸發生在TD引腳上。首先是開始位,隨后是8位數據位,最后是停止位,停止TO11當波特率發生器打開且REN(SCON.4)=1時系統進行接收操作,RXD腳上接收到1-0跳變就啟動接收器接收。數RI(SCON.0)= SM2(SCON.5)=0,或者SM2=1時,收到的數據與配置的從機地址或廣播地址一致且收到停止位為1.(詳見章節14.7多機通信和章節14.8地址自動識別)從上條件若滿足,就把收到的數據存入SBUF,停止位電平寫入RB8(SCON.2),并且RI置1。若不不滿足,數據不寫入SBUF,RI保持0。接下來再次檢測RXD的下降沿跳變,準備下一次接收。,1)在前),第位數據(8)和停止位組成。第98。波特率2314-32和3寫SBUF開始發送,數據從TXD輸出。先輸出起始位,再出8位數據,接下來是TB8,然后是停止位。最后TI置1RN置:RI(SCON.0)= SM2(SCON.5)=0SM2=1時收到第九位為1并且地址匹配.(14.714.8地)若以上條件滿足,收到的數據寫入SBUF,第9RB8(SCON.2并且置1RI。若條件不滿足丟棄數據,模式3與模式2相同,只是模式3使用定時器114-在模式1或模式3,串口0的波特率時鐘源可通過BRCK(T3CON.5)選擇定時器1或定時器3。對于串口1,只有采T3CON–定時器376543210地址: 復位值:0000位5串口00=定時器1=定時器111(3314–3UART0FSYS/12orFSYS/22FSYS/64orFSYS/32 1僅供 ) 12×256- 256- 1 )16Pre-scale×65536-SM2(SCON.5)SM2_1(SCON_1.5)設為SMOD(PCON.7)SMOD_1(T3CON.7)定時器1配置為定時方式自動重裝載模式(模式T1M(CKCON.4SMOD1TH1{RH3,RL3}=256×RH3RL3.當SMOD11/1,{RH3,RL3}表14–4列舉了由定時器1產生的常用波特率。此種方式定時器1配成重裝載模式:SMOD(PCON.7)=0且T1M(CKCON.4014–5列舉了串口0用定時器3產生波特率的值.SMOD=0。對于串口1來說,相同的值,14–4.定時器1TH114–5.定時器348{R3H,R3L},FESCON.7。正常情況下此位為SM0。當使能了幀錯功能SMOD0PCON.6)=1,SM0FE通信若出現幀錯,FE將被置1,后續數據無幀錯FE位不會回零,一旦出現幀錯FE置1FE位必須軟件清0。注意,讀寫FE,SMOD0必須是置1的。66的串口模式2或3可以在一主多從的系統中發送多幀數據給一從機,且不打擾其它從機。使用這個功能2CN)=1(9)2t=1主機給某一從機發數據時,先發一個地址字節——地址字節第9位是1,數據字節第9位是0。地址字節會讓所有的從機都中斷并檢查是否與自己的從機地址一致,若一致就讓S2=0并準備接收后續字節。地址不一致的從機M2多機通信流程如下SM2主機發送時序為后續字節數據(第9位=0).9位為1=0,地址匹配的從機,接收完數據后,再讓SM2=10通信,SM2無效。模式1SM2=1能可以節省軟件識別地址而所占用的程序空間,僅當串口識別到自身地址時,接收器置位I(S1使用自動地址識別,允許一個主機選擇與一個或多個從機通信,通過“Ge”從機地址.所有從機可以通過“廣播”DN。ND.DNRv”地址。使用SADDR–從機地址76543210地址: 復位值:0000位從機地址多機通訊時用作存儲串口0SADEN–從機地址掩碼76543210地址: 復位值:0000位從機地址0將該寄存器各位與從機地址0做與運算。這個寄存器為0SADDR_1–從機地址76543210地址: 復位值:0000位從機地址多機通訊時用作存儲串口1SADEN_1–從機地址176543210地址: 復位值:0000位從機地址1與從機地址1做與運算,這個寄存器為0對應的地址位,被忽略。SADDR=11000000bSADEN=Given=從機地址=11000000b掩碼=11111110b結果=1100000Xb上面例子SADDR相同,SADEN不同,形成不同地址匹配。從機0忽略地址位1,從機1忽略地址位0。發往地址11000010的數據從機0會接收,從機1拒絕。發往地址11000001的數據從機0拒絕而從機1接收。發往地址從機e0:SADDR=11000000bSADEN=Given=SADDR=11100000bSADEN=Given=SADDR=11000000bSADEN=Given=上面例子,地址低三位區分不同匹配。從機0擁有唯一地址11100110b1擁有唯一地址11100101b機2擁有唯一地址11100011b。若把數據發給從機0,1排除從機2,就發往地址11100100b。SADDRSADEN的或運算求得,結果為0 = =Broadcast=采用”無關位”(don’tcarebit)可以使得廣播地址呼叫更靈活,在通常狀態下,全部定義為“無關位”即可,所以廣播地址一般定義為FFH.,DR和DNHvnb全部ta”s)。這樣可以確保串口響應全部地址,同時也與標準傳統81微處理器相同,不支持自動地址識I2C IC總線在MCUEEPROM,LCD模塊,溫度傳感器等等之間,提供了一種串行通信方式。IC用兩條線(據線SDASCL2IC機之間的總線仲載傳輸,同步時鐘SCL的存在,允許設備間多種不同波特率的數據傳輸。2主發,主收,從發,從收。IC總線僅支持7位地址。支持廣播呼叫,支持標準速率傳輸(100kbps)(400kbps)2對于雙向傳輸操作,SDA及SCL引腳必須配置成開漏配置,形成邏輯線與功能:IC總線上有一個節點輸出總線上就是0電平,只有所有節點全輸出1,總線上才是高電平,即通過外接上拉電阻把電平拉高。N76E616,在設置I2CEN(I2CON.6)使能I2C功能之前,必須把P2.3及P2.4的輸出鎖存在邏輯1的狀態。215-1.IC2IC空閑時,兩條線都為高。這時任一設備都可以做為主機發個起始位START開始數據傳輸,在停止位出現之前,總線被認為處于忙狀態。主機產生時鐘以及起始位和停止位。如果總線上沒有START起始信號,則所有總線設備被認為未被尋址從機,硬件自動匹配自己的從機地址或廣播呼叫地址,(廣播地址可由GCC總線上傳輸的每個字節都包含8個數據位和一個應答位,共9位。但每次傳輸的字節個數沒有明確界定(起始位TTTO)。L由A腳輸出數據,并轉為輸入模式以讀取檢測第9位應答位。在第9個時鐘脈沖后,數據接收端若沒準備好接C

215-2.ICBus

2IC總線時序定義了起始START(S)和結束STOP(P)的條件。時鐘SCL為高時,數據線SDA2到監聽總線起始位狀態,之前被呼叫從機也轉為未尋址從機。 C總線進入空閑狀態等待下一個起始START主機若發出停止位STOP,傳輸就停止了,然而,這個主機可以不發停止位,而是再次發出起始START(Sr) 15-3.起始(START)信號,重復起始信號以及停止(STOP)TT,SL+8(RW寫入或讀出數據。若第8位是0,即AR,表示下個字節開始主機向從機寫數據;若是1,即LW,就表示TT+SWR或多個字節數據,最后是停止位TP。當第一字節已定義讀寫方向,隨后的8位數據就跟隨之前的設定進行傳I2C總線還有一種特殊尋址方式,廣播呼叫尋址。在該模式下,發送的首字節數據為0這個從機就收發后續數據,和標準主從收發方式相同。注意:地址0x002從機地址。因此理論上,總共7位地址IC總線,共可以連接127個設備,地址由1至1271-1- 1-1- ADDRESS 215-4IC在數據傳輸過程中,在時鐘高電平時,DA需要保持數據內容不能更改。只有在SL為低時,DA變。應答第(C)DA(是從機)回應發送端(無論主機或從機)所用。應答位時鐘由主機產生,發送端設備在應答位時鐘高電平周期內,需放棄對DA的控制。K為一個低電平信號。在這個時鐘周期的高電平時,A保持低電平用以表示接若從機接收應答從機地址后,將自身切換到未定址從機模式,從而無法接收更多數據字節,并將OrpdRTOP。SDAOutputBySDAOutputBySCLFrom

SDA=0,AcknowledgeSDA=1,NotAcknowledge ClockPulseFor15-5.TT裁。在該狀態下,當CL為高時,A上呈現仲裁信號。在仲裁過程中,第一發起主機對A線置1(高電平)而另一個主機發送0(低電平),發送后主機會對A線上信號與自己發出的信號進行比較,由于“線與”的原因,時鐘SL為高時,發送0的主機會成功,而發送1仲裁機制讓每個主機發送數據時,都會同時比較總線上的數據是否與自己發送的一致。注:如果其它主機發送0,Master1losesarbitrationforDATA1≠SDA.ItimmediatelyswitchestoMaster1losesarbitrationforDATA1≠SDA.Itimmediatelyswitchestonotaddressedslaveandoutputshighlevel.DATA2FromMasterSDASCL2

15-615-7ICI2C共有五個控制寄存器:I2CON,I2STAT,I2DAT,I2ADDR,和I2CLK.這些寄存器用以提供協議控制,狀態顯2I2CONIC(可位尋址76543210地址: 復位值:0000位7-62IC20=IC禁止21=IC使能2IC之前,P2.3P0.6必須配置為輸出5起始標志 當STA置1,如果總線空閑,IC產生START信號,如果總線忙,IC等待停止條件2如果總線已經在總線模式且已發送一個或多個字節,此時再設定STA,IC產生重復開始信號repeated4停止標志2IC總線在主機模式下設定STO為1,將會向總線發送停止信號STOP停止條件完成,STO由硬件自動清0當總線上產生錯誤狀態(I2STAT00H)STO也會置1。這種情況下總線不會發送2如果STA和STO同時置1,且在主機模式下,IC總線在發送STARTSTOP。如果在從機模式下,應避免STA及STO同時置132IC2IC所有26種狀態中出現一種,硬件就會置1(F8H除外)SI后,I2若AA=1,接收數據時,會在第9位發出應答ACK若A=0AK),第AI0,中A01特殊情況:注意:從機發送時,狀態碼若為C8H,從機發送最后一個字節之前,讓AA=0,發送完最后一個字節,不再回應答,傳輸結束。主機若再從總線上讀數-2I2STAT–IC76543210000RRRR地址: 復位值:1111位2IC高5位為狀態碼,共有27I2STATF8H時,表示空閑,SI將保持為0。02I2DAT–IC76543210地址: 復位值:0000位2IC該寄存器存放準備發送的,或接收到的數據。只要SI=12I2ADDR–IC76543210地址: 復位值:0000位2IC主機模式從機模式存放7位從機地址。主機需要定址該從機需在START之后寫入該值。如果AA]6從機模式0=1=如果AA置1,參與廣播呼叫模式,若AA清02I2CLK–IC76543210地址: 復位值:0000位2IC時鐘設定2該寄存器設定作主機時IC4×(I2CLK+1)400kbps(24MHz)。注I2CLK值寫入00H01H從機模式該字節無效,從機自動跟隨主機時鐘,最高400kI2C主機發送多個字節到從機,主機產生時鐘,故需要在I2CLK內填入設定值。主機發送模式需要將STA(I2CON.5)置1。此時,一旦檢測到總線空閑,主機就會發出一個起始位START,若成功,SI(I2CON.3)將被置1,狀態碼I2STAT置為08H。接下來應把從機地址和寫位(SLA+W)寫入I2DAT,然后清0位SI,總線上發出SLA+W。主機發出SLA+W收到從機應答位ACK后,SI被置1,狀態碼I2STAT=18H。接下來將按照用戶定義格式發送數據。所有的數據發送完以后,位STO(I2CON.4)置1,并清0SI位以發出停止信號STOP,或者也可以發送重復起始信號repeatSTART,而不發送STOP,直接開始新一輪數據傳輸。tomaster15-8.主機接收模式,由從機接收數據。初始化設置與主機發送模式相同,主機發送起始位以后,I2DAT應寫入從機地址和“讀位”(SLA+R)。收到從機應答位ACK后SI被置1且狀態碼I2STAT=40H。SI清0后開始接收從機數據,若AA位(I2CON.2)=1,主機收到數據后回應答位;若AA=0主機收到數據后不回應答NACK。然后主機可tomaster15-9.RC置()當從機被“寫”信號L+W尋址到后,需要清0I位,以便從主機接收數據。如果在傳輸過程中0,從機將在下一字節返回無應答位K,從機也將轉為未定址從機,與主機聯系終止,不再接收數據,且I2DT保持之(STA,STO,SI,AA)(STA,STO,SI,AA)=ACKwillbe

DatabytewillbereceivedNACKwillbeACKhasbeentransmittedI2DAT=

溫馨提示

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

評論

0/150

提交評論