TM58P05 1 . 基本特性 ROM: 0.5K x 14 位 RAM: 33 x 8 位 堆棧: 4 級 I/O 口: 12 個 I/O 定時器/計數器: 8 位 x 1 (TMR0) 預分頻器: 8 位 2 個中斷請求: 內部中斷請求: (TMR0) 外部中斷請求: (PA 0) Watchdog 計時器: 在芯片上基於內部 RC 振盪器的 watchdog, 最短周期是 20mS; 用戶可通過使 用預分頻器使 watchdog 溢出周期達到 2.6S。 上電復位 & 掉電復位 復位計時器: 20 mS (5V) 1 個內部 RC 振盪器 4 种外部振盪模式: RC 和 (LS,NS,HS)晶掁 2 种操作模式:一般模式, 高級模式 工作電壓: 2.5V∼5.5V 指令集: 79 個 喚醒: watchdog 計時器溢出, Port A (PA 3~ PA 0) 復位向量: 1FFH 中斷請求向量: 1FEH 低電壓檢測: 電壓不足將導致復位。 tenx technology, inc. Rev:1.0 Page:1/1 TM58P05 2. 腳位定義 PA2 1 18 PA1 PA3 2 17 PA0 EXT_CLK 3 16 OSC1 RESETB/VPP 4 15 OSC2 VSS 5 14 VDD PB0 6 13 PB7 PB1 7 12 PB6 PB2 8 11 PB5 PB3 9 10 PB4 Package Types :PDIP. PA2 1 20 PA1 PA3 2 19 PA0 EXT_CLK 3 18 OSC1 RESETB/VPP 4 17 OSC2 VSS 5 16 VDD VSS 6 15 VDD PB0 7 14 PB7 PB1 8 13 PB6 PB2 9 12 PB5 PB3 10 11 PB4 Package Type : SOIC. tenx technology, inc. Rev:1.0 Page:2/2 TM58P05 腳位描述 腳位名稱 I/O EXT_CLK I TMR0 計數器的外部時鐘輸入腳 PA0 I I/O 口&外部中斷請求輸入&喚醒輸入 PA3-0 I/O I/O 口&喚醒 (輸入模式) PB7-0 I/O I/O 口 RESETB/VPP I 描述 系統復位信號& VPP (高電壓) 輸入 1 低電壓: 復位模式 2 高電壓: 編程模式 OSC1 I 振盪器輸入 OSC2 O 振盪器輸出 VDD P 電源輸入 VSS P 接地輸入 I: 輸入; O: 輸出; I/O: Bi-方向; P: 電源 3. 存儲器 Name Addr Bit 7 CONFIG (Instruction) Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 LV1 LV0 TYPE CPT WDTE FOSC1 FOSC0 SUR0 EDGE0 PSA PS2 PS1 PS0 A6 A5 A4 A3 A2 A1 A0 SELECT INDF $00 TMR0 $01 D7 D6 D5 D4 D3 D2 D1 D0 PC $02 D7 D6 D5 D4 D3 D2 D1 D0 STATUS $03 DC C $04 PD D3 Z FSR TO D4 D2 D1 D0 I/O PortA $05 PA3 PA2 PA1 PA0 I/O PortB $06 PB7 PB6 PB5 PB3 PB2 PB1 PB0 WAKE_UP $20 WDTS WUE EIS PUH3 PUH2 PUH1 PUH0 IRQM $21 INTM IRQF $22 tenx technology, inc. PB4 EXINTM TMR0M EXINTF TMR0F Rev:1.0 Page:3/3 TM58P05 4. 系統圖表 中斷控制器 指令寄存器 EPROM 512*14 程序計數器 PB7:PB0 指令解碼器 I/O Port PA3:PA 0 4級堆棧 Data Bus TMR0 Option 寄存器 Status Watchdog/TMR0 預分頻器 Watchdog 計時器 FSR Acc ALU and Control Unit 33字節RAM 振盪器&低電壓檢測器 Configuration Word Sleep EXT_CLK tenx technology, inc. OSC1 OSC2 RESETB/VPP Rev:1.0 Page:4/4 TM58P05 5. 存儲器解說 TM58P05 存儲器分為程序存儲器和數據存儲器。 5 . 1 程序存儲器 TM58P05 提供 2 种程序存儲器映像, 即一般模式和高級模式。用戶可通過設置 configure word 選擇不同模式。 在一般模式下, 可直接尋址的同一頁上只有 512 個字。 指令執行順序是由程序計數器控制 的, 程序計數器自動加 1。然而順序也能被 skip, call, goto 指令改變, 或者通過移動數據到程序 計數器改變順序。 在高級模式下, TM58P05 允許直接尋址 0.5K 存儲器任何地址, 而不受頁面大小限制。另外, lcall 和 lgoto 指令可提供靈活的尋址模式。 TM58P05有一個可訪問0.5K空間的 9位程序計數器。 如果訪問地址超過0.5K, 地址仍會映像 到0.5K存儲器, 也就是0.5K+M 將會映像到M. 在復位向量位置加一個NOP指令會導致在地址 000h處重啟動。 ROM結構如圖 5-1所示: 高級模式 一般模式 000H 000H … … Program Page 0 ... 0FDH 0FFH 1FEH 100H Page 1 IRQ vector 1FEH 1FFH 1FFH Reset vector Reset vector 圖 5-1 ROM 結構 tenx technology, inc. Rev:1.0 Page:5/5 TM58P05 TM58P05 只在高級模式提供中斷請求功能。在該模式下地址 1EEH 保存中斷向量。 用戶可 通過設置 configuration word 進入高級模式。configuration word 位於 800H, 包含振盪選擇, WDT 允許, 編碼保護; 運行類型選擇和電平如圖 5.2 所示: Bit 1~0 2 3 Symbol FOSC1~FOSC0 WDTE CPT Description Bit1 Bit0 OSC Type Resonance Frequency 0 0 0 1 LS (低速) NS (一般速度) 32~200Khz 1~10Mhz 1 0 HS (高速) 10~20Mhz 1 1 RC 31K ~ 6M Hz WDTE: Watchdog enable/disable control 1: WDT enable 0: WDT disable CPT: Code Protection bit 1: OFF 0: ON TYPE: Select operating mode 4 6~5 TYPE LV1~LV0 1: Advanced mode 0: General mode LV1 LV0 Detect voltage 1 0 1 1 Don’t use 1V 1 0 2V 0 0 4V 圖 5-2 Configuration Word tenx technology, inc. Rev:1.0 Page:6/6 TM58P05 5 . 2 數據存儲器 數據存儲器是由專用的功能寄存器和通用隨機存儲器組成的。數據存儲器的大小是不固定 的, 它是根據 configure word 的 bit4 來決定的 (一般模式或高級模式)。 在一般模式下, TM58P05提供25個通過bank選擇機制存取數據的通用寄存器。 專用功能寄存 器包含程序計數器, 計時器(TMR 0)寄存器, 狀態寄存器,選擇寄存器(BANK), I/O寄存器。此外 TM58P05有3個輔助寄存器: 間接尋址寄存器(IAR), 選擇寄存器(Select), I/O direction register (IODIR)。 一般模式的寄存器映像如圖5-3所示: RAM_General (Type=0 ) Bank0 00h IAR 01h TMR0 02h 03h PC STATUS 04h FSR 05h PORTA 06h PORTB General Purpose Register 07 – 0F 9+16=25 General Purpose Register 10 -1F 圖5-3 一般模式寄存器映像 tenx technology, inc. Rev:1.0 Page:7/7 TM58P05 A. 間接尋址寄存器不是物理寄存器, 而是以間接尋址來選擇寄存器。訪問間接尋址寄存器的 任何指令實際上是映像到所選擇寄存器所指的地址。 因為間接尋址寄存器不是物理線路, 用戶讀取間接尋址寄存器本身(BSR=00H)將總是返回數據00h。寫間接尋址寄存器本身等同 於NOP指令。 B. 選擇寄存器用來控制WDT和TMR0。 在數據存儲器中它不分配一個特定的地址, 而通過選 擇指令只設置控制位, 也就是說, 它是只寫寄存器。累加器的內容將會通過執行選擇指令 被送到選擇寄存器。如果程序未設置選擇寄存器, 默認值是3FH。 如圖5-4所示說明如何設 置選擇寄存器。 位 2~0 3 符號 描述 PS2 PS1 PS0 TMR0 rate WDT rate 0 0 0 0 0 0 1 1 0 1 0 1 1:2 1:4 1:8 1:16 1:1 1:2 1:4 1:8 1 1 1 1 0 0 1 1 0 1 0 1 1:32 1:64 1:128 1:256 1:16 1:32 1:64 1:128 PS2~PS0 PSA PSA: 預分頻器分配位 1: 分配到 WDT 的預分頻器 0: 分配到TMR0的預分頻器 EDGE0: TMR0 源信號邊沿控制位 4 5 EDGE0 SUR0 1: 外部時鐘信號從高電平到低電平時, 計時器加1。 0: 外部時鐘信號由低電平到高電平時, 計時器加1。 SUR0: TMR0 時鐘源位 1: 外部時鐘輸入 0: (內部時鐘)/4 或內部指令周期 圖5-4 選擇寄存器 C. I/O控制寄存器與選擇寄存器相似, 也是只寫寄存器。 設置一個I/O口作為輸入, 相應的方 向控制位必須是一, 同樣地零代表輸出。任何方向控制位可用I/O控制寄存器指令作為輸入 或輸出單獨地被編程。如果寄存器不被編程, 所有的I/O口將總保持輸入模式。 tenx technology, inc. Rev:1.0 Page:8/8 TM58P05 l 程序計數器是11位二進制計數器, 除了在下面的條件下, 每個指令周期, 計數器都加1。 1 call, goto, lcall 與 lgoto: 標記地址放到程序記數器 2. ret, retla 與 reti: 堆棧最上層的資料彈到程序記數器 當程序計數器到下一頁時自動加1。 為了減少程序的復雜性, 高級模式提供2個指令益於子程序調用和分步處理, 即LCALL, LGOTO。 LCALL和LGOTO可尋址ROM任何地址, 但不必設定頁選位。 CALL和GOTO的 操作數分別是8位和9位, 因此需要特殊位(即頁選位)尋址整個存儲器。 然而LCALL和 LGOTO有11位易於尋址ROM所有空間的操作數。 l TMR0 是8位二進制計數器/計時器,該寄存器通過EXT_CLK腳的外部信號邊沿變化或內部 指令周期加1。它具有如下特性: A. 可讀可寫 B. 2個內部時鐘同步 C. 可通過設置選擇寄存器使用可編程預分頻器, 其他詳細說明在下一章會有具體描 述。 l 狀態寄存器包含頁選位, 超時位, 掉電位和ALU狀態。 值得注意的是TO 和 PD 是受硬件 控制的, 而不會被程序改變。 tenx technology, inc. Rev:1.0 Page:9/9 TM58P05 位 符號 描述 進位位與借位位: 加指令 0 C 減指令 1: 無借位(Note1) 0: 從MSB借位 1: 從 MSB 進位 0: 無進位 四位元進位位與四位元借位位 1 DC 加指令 1: 從低四位元進位 0: 無低四位元進位 2 3 4 Z PD TO 減指令 1: 無低四位元借位 0: 從低四位元借位 0標誌位: 1: 邏輯操作結果是0 0: 邏輯操作結果非0 掉電標誌位: (注2) 1: 上電後或執行CLRWDT指令後, 結果為1 0: 執行SLEEP指令後, 結果為0 溢出標誌位: 1: 上電後或執行CLRWDT或SLEEP指令後, 結果為1 0: WDT 時間溢出時, 結果為0 圖 5-5 狀態寄存器 tenx technology, inc. Rev:1.0 Page:10/10 TM58P05 注1: 減指令的執行是通過與減數的二進制補碼相加來實現的, C = 1 代表結果是正數。C位與 借位之間的關係如圖5-5-1所示。 B0H-50H 50H-B0H C B7 B6 B5 B4 B3 B2 B1 B0 + = 1 C B7 B6 B5 B4 B3 B2 B1 B0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 + 0 1 1 0 0 0 0 0 = 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 圖 5-5-1 注 2: TO 和 PD 位是低有效, 且用來判別復位的不同原因。 圖 5-5-2 舉例說明了不同復位后 TO 和 PD 的值。 復位結果 TO 0 PD 0 從睡眠模式喚醒超時 0 1 從一般模式 WDT 超時 1 1 0 1 上電復位 從睡眠模式 MCLR 復位 不變 不變 從一般模式 MCLR 復位 圖 5-5-2 tenx technology, inc. Rev:1.0 Page:11/11 TM58P05 bank 選擇寄存器協同間接尋址寄存器間接地尋址數據存儲器。直接尋址必須根據 bank 選擇寄 存器存取 bank0 ~ bank1, 因為在一般模式下只有 5 位地址操作數。 Bank 選擇寄存器的 bit5 被 用來選擇指定的存儲器 bank。 地址 20H~2FH 是不可存取的, 這些地址將映像到 00H~0FH (Bank0), 地址映像如圖 5-6 所示: 直接尋址模式 FSR 間接尋址模式 FSR Operand 5 + 4 0 5 4 00 0F 10 20~2F are unimplemented, these locations will mapping to 00~0F 30 Select location Select location 1F Select bank 0 Bank0 0 3F Bank1 1 Select bank 圖 5-6 直接尋址與間接尋址映像 l Port A~C 是可編程的 I/O 口。 值得注意的是, 即使 I/O 腳是輸出模式, 讀 I/O 指令也總是 讀 I/O 腳,。 復位時所有 I/O 腳都被置成輸入模式, 直到 IO 寄存器被改變。 tenx technology, inc. Rev:1.0 Page:12/12 TM58P05 在高級模式中提供了中斷請求, 方便叫醒功能和靈活尋址模式。除擴充數據存儲器之外, 還 增加了 3 個支持中斷請求和叫醒功能的寄存器。 這一節將介紹這些增加的控制寄存器和字符 特性。高級模式的數據存儲器映像和尋址映像如圖 5-7 和圖 5-8 所示: 高級模式( T y p e = 1 ) 00~1F 20~3F 00h 01h IAR TMR0 WAKE_UP 02h PC IRQF 03h STATUS 04h FSR 05h PORTA 06h PORTB IRQM Unimplemented General Purpose Register 07-0F 17+16=33 General Purpose Register General Purpose Register 28-2F Unimplemented 10-1F 圖 5-7 高級模式數據存儲器映像 直接尋址模式 Operand 5 間接尋址模式 FSR 0 00 07 08 20 21 22 5 0 Unimplemented u 28 Location select Select location 1F 3F 圖 5-8 直接尋址和間接尋址映像 tenx technology, inc. Rev:1.0 Page:13/13 TM58P05 在高級模式, 我們增加了 8 個通用寄存器, 即圖 5-7 中的區域 28~2F。 中斷請求和喚醒控制 寄存器 (WAKE_UP, IRQM, IRQF) 分別被分配到 20, 21, 22。 在一般模式, FSR<5> 是 bank 選擇位, 用來選擇 bank (0=bank0, 1=bank1)。 bank1 的低 16 位映像到 bank0。 在高級模式, TM58P05 允 許 7 位操作數訪問隨機存儲器, 操作數<4:0>可直接尋址 00~3F, 不需要 bank 選擇位, 減少編程 的復雜性。 tenx technology, inc. Rev:1.0 Page:14/14 TM58P05 l 喚醒控制寄存器(WAKE_UP )被用作設定 watchdog 允許或禁止, 區別外部喚醒信號和中斷 請求。 復位時, 所有位清零。 喚醒寄存器的具體定義如圖 5-9 所示: 位 符號 描述 Watch Dog計時器軟件控制位: TM58P05有2個WDT控制位(WDTE, WDTS), WDTE是在 configuration word 中由硬件設置的, 而WDTS是在控制寄存器中由軟件設置的。只有當 7 WDTS WDTE被設置后, WDTS才是有效的, 也就是說, WDTE比WDTS有更高的 優先級。 1: 允許 0: 禁止 喚醒允許位: 6 WUE 0: 不支持外部喚醒 1: 允許外部喚醒功能 外部中斷選擇: 5 EIS 1: 置PA0作外部中斷請求腳 (注3) 0: 置PA0 as a bi-directional I/O pin 4 ---A口bit3 ~1上拉: 3~1 PUH3~PUH1 0: 禁止外部喚醒 1: 如果(WUE) & (PUHN) & (在PAN輸入一個下降沿信號), 那麼將從睡 眠狀態喚醒芯片。N可以是3, 2或1, 但必須保持一致。 A口bit0上拉: 0: 禁止外部喚醒和外部中斷 1: 如果(WUE) & (PUH0) & (在PA0輸入一個下降沿信號) , 那麼將從睡 0 PUH0 眠狀態喚醒芯片。 或者如果(EIS) & (PUH0) & (在PA0輸入一個下降 沿信號) , 那麼產生一個中斷請求。. 注: 如果PUH0, WUE , EIS 被置成‘1’, 那麼PA0 被定義成中斷請求輸 入腳。 Figure 5-9 The Scheme of Wake_Up Register 注 3: 中斷請求必須在一般模式下執行。 如果在睡眠狀態出現中斷請求, 那麼直到芯片被外 部喚醒信號喚醒時中斷請求才會執行。其他喚醒方式包含 (1) 上電復位 (2) 外部復位 (3) WDT 溢出 (允許時)。在上列狀態下, 中斷請求應該被忽略。 tenx technology, inc. Rev:1.0 Page:15/15 TM58P05 l 中斷屏蔽寄存器和中斷標誌寄存器被用作控制中斷請求處理。TM58P05 支持 TMR0 和外 部中斷, 但不允許中斷嵌套。 中斷屏蔽寄存器和中斷標誌寄存器的具體定義分別如 Fig 5-10 和 Fig 5-11 所示: 位 7 符號 INTM 描述 整體允許位: INTM比EXINTM和TMR0M有更高的優先級。 1: 允許 0: 禁止 RETI指令將置INTM 為‘1’。 6~3 ---- 2 EXINTM 1 ---TMR0M 外部中斷允許: 1:允許中斷 0: 禁止中斷 外部中斷允許: 1:允許中斷 0: 禁止中斷 圖 5-10 中斷屏蔽寄存器 位 符號 7~3 ---- 2 EXINTF 1 ---- 0 TMR0F 描述 外部中斷標誌: 1: 外部接口(PA0) (注 4)產生的外部中斷請求。 外部中斷標誌: 1: TMR0 計數器溢出產生一個中斷請求。 圖 5-11 中斷標誌寄存器 注 4: 中斷標誌都是由硬件設置的, 軟件只能清除標誌。 寫 1 到標誌是無用的。 tenx technology, inc. Rev:1.0 Page:16/16 TM58P05 6. 功能描述 6.1 T M R 0 和 W a t c h d o g 計時器 圖 6-1 顯示 TMR0/WDT 預分頻器的方框圖。如圖所示, 預分頻器寄存器可以是 TMR0 的預分 頻器或是 WDT 的后分頻器。 Instruction Cycle 0 SUR0 EDGE0 Ext_CLK 1 WDT Timer 2 To 1 MUX 0 1 1 0 2 To 1 MUX 2 to 1 MUX PSA PSA 8-bit prescaler Synchronize with 2 internal cycles ( T2 and T4 ) 8 bit 8 To 1 MUX PS2 ~PS 0 TMR0 Counter 1 0 2 To 1 MUX 8 bit PSA Data bus WDT time-out 圖 6-1 TMR0/WDT 預分頻器方框圖 tenx technology, inc. Rev:1.0 Page:17/17 TM58P05 TMR0 是一個 8 位計時器/計數器。TMR0 的時鐘源可以來自指令時鐘或外部時鐘。 A. 選擇指令時鐘, 選擇寄存器的 SUR0 位應該清零。當未使用預分頻器時, TMR0 將會在每 個指令周期加 1。 B. 選擇外部時鐘, 選擇寄存器的 SUR0 位應該置 1。在該模式, TMR0 根據 EDGE0 來決定在外 部時鐘的上升沿或下降沿加 1。 當 TMR0 選擇外部時鐘時, 應當注意外部時鐘將與內部時 鐘進行同步。 TM58P05 通過內部時鐘的 T2 和 T4 采樣來同步外部時鐘。 如果外部脈衝 小於 2 個內部時鐘周期, 那麼脈衝可能會被忽略。 也就是說, 外部時鐘必須至少在 2 個 內部時鐘周期保持穩定狀態。 WDT 計數器是一個 8 位二進制計數器, WDT 時鐘源是由一個獨立的不需要任何外部時鐘的 RC 振盪芯片提供的。 因此即使芯片已進入睡眠狀態 WDT 仍將繼續計數。 若 WDT 超時, 系 統將重啟動並將超時標誌位(狀態寄存器的 bit4) 清 0。 WDT 超時時間會隨溫度, 電源電壓的 變化而變化, 並且可通過設置預分頻器來改變超時時間。 通過設置 PS2~PS0 為“111”, 最大分頻 率可達 1:128。 通過 PSA 位預分頻器可分配到 TMR0 或 WDT。 WDT 或 TMR0 不能同時使用預分頻器。當預 分頻器被分配到 WDT, “CLRWDT”和“SLEEP”指令將會清除預分頻器和 WDT。 當預分頻器被 分配到 TMR0, 任何寫到 TMR0 的指令都會清除預分頻器。 tenx technology, inc. Rev:1.0 Page:18/18 TM58P05 6.2 復位 當滿足下列任意一個條件TM58P05都可能復位: (1) 上電 (2) 掉電線路保護, refer to electrical character characteristic. (3) RESETB/VPP 腳輸入一個負脈衝 (4) WDT 超時復位 (如果允許). Power On Power Power Down (Low Voltage Detector) Oscillator (RC or Crystal) Synchronize by ripple cpunter RESETB/VPP Pin Delay for Setup Time WDTE Reset WDT WDT overflow On-chip RC oscillator Figure 6-2 Scheme of the Reset Controller 如圖6-2所示, 四個復位條件被列出。 掉電會導致TM58P05復位, 電平是根據configuration word中的bit6~bit5 定義的。在電壓不足的條件下, 掉電復位可保護芯片。在電氣特性中定義了 掉電的電壓範圍。 此外, 掉電的電壓範圍也受process和溫度變化的影響。一般來說, 我們稱 前兩種復位情況為冷復位。冷復位的時間對於低速晶掁和RC振盪器來說可能太短了, 它們需 要比啟動時間長得多的時間。為了確保系統正常, 掉電復位時間應與系統時鐘同步。上面討 論了power on 比crystal快的影響, 如果power on的速率非常慢,則有可能影響configuration word的 讀取. 注: 啟動時間大約20ms, 啟動時間隨電源電壓, process, 溫度變化而變化。后兩种情況被稱為 熱復位。 不同的復位對寄存器和ram影響也是不同的。TO 和TD 位用來決定復位的類型 (參照figure 5-5-2)。Figure 6-3 列出了不同復位后寄存器和通用ram的值。 tenx technology, inc. Rev:1.0 Page:19/19 TM58P05 Address Name Cold Reset Warm Reset N/A Accumulator xxxx xxxx pppp pppp N/A IODIR 1111 1111 1111 1111 N/A Select 1111 1111 1111 1111 00h IAR ---- ---- ---- ---- 01h TMR0 xxxx xxxx pppp pppp 02h PC 111 1111 1111 111 1111 1111 03h STATUS 0001 1xxx 000? ?ppp 04h BSR -xxx xxxx -ppp pppp 05h PORTA 0000 xxxx 0000 pppp 06h PORTB xxxx xxxx pppp pppp 07h PORTC xxxx xxxx pppp pppp 20h WAKE_UP 0000 0000 0000 0000 21h IRQM 0000 0000 0000 0000 22h IRQF 0000 0000 0000 0000 Xxxx xxxx Pppp pppp General Purpose RAM 1 2 圖 6-3 存儲器初始化值摘要 X: 未知的或無所謂; P: 原來的數值; ? : 依據不同復位條件 tenx technology, inc. Rev:1.0 Page:20/20 TM58P05 7. Instruction Set Mnemonic Instruction Operands Code (Advance) ADDAM M, m (M)+(acc) → (M) 1 C, DC, Z 10 0101 1MMM MMMM ADDAM M, a (M)+(acc) → (acc) 1 C, DC, Z 10 0101 0MMM MMMM ANDAM M, m (M).(acc) → (M) 1 Z 10 0100 1MMM MMMM ANDAM M, a (M).(acc) → (acc) 1 Z 10 0100 0MMM MMMM ANDLA I Literal .(acc) → (acc) 1 Z 11 1001 iiii iiii BCM M, b0 Clear bit0 of (M) 1 None 00 1100 0MMM MMMM BCM M, b1 Clear bit1 of (M) 1 None 00 1100 1MMM MMMM BCM M, b2 Clear bit2 of (M) 1 None 00 1101 0MMM MMMM BCM M, b3 Clear bit3 of (M) 1 None 00 1101 1MMM MMMM BCM M, b4 Clear bit4 of (M) 1 None 00 1110 0MMM MMMM BCM M, b5 Clear bit5 of (M) 1 None 00 1110 1MMM MMMM BCM M, b6 Clear bit6 of (M) 1 None 00 1111 0MMM MMMM BCM M, b7 Clear bit7 of (M) 1 None 00 1111 1MMM MMMM BSM M, b0 Set bit0 of (M) 1 None 00 1000 0MMM MMMM BSM M, b1 Set bit1 of (M) 1 None 00 1000 1MMM MMMM BSM M, b2 Set bit2 of (M) 1 None 00 1001 0MMM MMMM BSM M, b3 Set bit3 of (M) 1 None 00 1001 1MMM MMMM BSM M, b4 Set bit4 of (M) 1 None 00 1010 0MMM MMMM BSM M, b5 Set bit5 of (M) 1 None 00 1010 1MMM MMMM BSM M, b6 Set bit6 of (M) 1 None 00 1011 0MMM MMMM BSM M, b7 Set bit7 of (M) 1 None 00 1011 1MMM MMMM BTMSC M, b0 If bit0 of (M) = 0, skip next instruction 1 + (skip) None 00 0100 0MMM MMMM BTMSC M, b1 If bit1 of (M) = 0, skip next instruction 1 + (skip) None 00 0100 1MMM MMMM BTMSC M, b2 If bit2 of (M) = 0, skip next instruction 1 + (skip) None 00 0101 0MMM MMMM BTMSC M, b3 If bit3 of (M) = 0, skip next instruction 1 + (skip) None 00 0101 1MMM MMMM BTMSC M, b4 If bit4 of (M) = 0, skip next instruction 1 + (skip) None 00 0110 0MMM MMMM BTMSC M, b5 If bit5 of (M) = 0, skip next instruction 1 + (skip) None 00 0110 1MMM MMMM BTMSC M, b6 If bit6 of (M) = 0, skip next instruction 1 + (skip) None 00 0111 0MMM MMMM tenx technology, inc. Cycles Status Affected OP-code Rev:1.0 Page:21/21 TM58P05 BTMSC M, b7 If bit7 of (M) = 0, skip next instruction 1 + (skip) None 00 0111 1MMM MMMM BTMSS M, b0 If bit0 of (M) = 1, skip next instruction 1 + (skip) None 00 0000 0MMM MMMM BTMSS M, b1 If bit1 of (M) = 1, skip next instruction 1 + (skip) None 00 0000 1MMM MMMM BTMSS M, b2 If bit2 of (M) = 1, skip next instruction 1 + (skip) None 00 0001 0MMM MMMM BTMSS M, b3 If bit3 of (M) = 1, skip next instruction 1 + (skip) None 00 0001 1MMM MMMM BTMSS M, b4 If bit4 of (M) = 1, skip next instruction 1 + (skip) None 00 0010 0MMM MMMM BTMSS M, b5 If bit5 of (M) = 1, skip next instruction 1 + (skip) None 00 0010 1MMM MMMM BTMSS M, b6 If bit6 of (M) = 1, skip next instruction 1 + (skip) None 00 0011 0MMM MMMM BTMSS M, b7 If bit7 of (M) = 1, skip next instruction 1 + (skip) None 00 0011 1MMM MMMM CALL I Call subroutine 2 None 11 0110 iiii iiii CLRA Clear accumulator 1 Z 10 0001 0000 0000 CLRM M Clear memory M 1 Z 10 0001 1MMM MMMM CLRWDT Clear watch-dog register 1 TO, PO 10 0000 0000 0001 COMM M, m ~(M) → (M) 1 Z 10 0010 1MMM MMMM COMM M, a ~(M) → (acc) 1 Z 10 0010 0MMM MMMM DECM M, m Decrement M to M 1 Z 10 0110 1MMM MMMM DECM M, a (M) - 1 → (acc) 1 Z 10 0110 0MMM MMMM DECMSZ M, m (M) - 1 → (M), skip if (M) = 0 1 + (skip) None 10 0111 1MMM MMMM DECMSZ M, a (M) - 1 → (acc), skip if (M) = 0 1 + (skip) None 10 0111 0MMM MMMM GOTO I Goto branch 2 None 11 101i iiii iiii INCM M, m (M) + 1 → (M) 1 Z 10 1000 1MMM MMMM INCM M, a (M) + 1 → (acc) 1 Z 10 1000 0MMM MMMM INCMSZ M, m (M) + 1 → (M), skip if (M) = 0 1 + (skip) None 10 1001 1MMM MMMM INCMSZ M, a (M) + 1 → (acc), skip if (M) = 0 1 + (skip) None 10 1001 0MMM MMMM IODIR M Set i/o direction 1 None 10 0000 0000 0MMM IORAM M, m (M) ior (acc) → (M) 1 Z 10 1111 1MMM MMMM IORAM M, a (M) ior (acc) → (acc) 1 Z 10 1111 0MMM MMMM IORLA l Literal ior (acc) → (acc) 1 Z 11 0011 iiii iiii tenx technology, inc. Rev:1.0 Page:22/22 TM58P05 LCALL I Call subroutine. However, LCALL can addressing 2K address 2 None 01 0iii iiii iiii LGOTO I Go branch to any address 2 None 01 1iii iiii iiii MOVAM m Move data form acc to memory 1 None 10 0000 1MMM MMMM MOVLA l Move literal to accumulator 1 None 11 0001 iiii iiii MOVM M, m (M) → (M) 1 Z 10 0011 1MMM MMMM MOVM M, a (M) → (acc) 1 Z 10 0011 0MMM MMMM NOP No operation 1 None 10 0000 0000 0000 RET Return 2 None 11 1111 0111 1111 RETI Return and enable INTM 2 None 11 1111 1111 1111 RETLA l Return and move literal to accumulator 2 None 11 1100 iiii iiii RLM M, m Rotate left from m to itself 1 C 10 1100 1MMM MMMM RLM M, a Rotate left from m to acc 1 C 10 1100 0MMM MMMM RRM M, m Rotate right from m to itself 1 C 10 1110 1MMM MMMM RRM M, a Rotate right from m to acc 1 C 10 1110 0MMM MMMM SELECT Set select register 1 None 10 0000 0000 0010 SLEEP Enter sleep (saving) mode 1 TO, PO 10 0000 0000 0011 SUBAM M, m (M)–(acc) → (M) 1 C, DC, Z 10 1010 1MMM MMMM SUBAM M, a (M) –(acc) → (acc) 1 C, DC, Z 10 1010 0MMM MMMM SWAPM M, m Swap data from m to itself 1 None 10 1101 1MMM MMMM SWAPM M, a Swap data from m to acc 1 None 10 1101 0MMM MMMM XORAM M, m (M) xor (acc) → (M) 1 Z 10 1011 1MMM MMMM XORAM M, a (M) xor (acc) → (acc) 1 Z 10 1011 0MMM MMMM XORLA l Literal xor (acc) → (acc) 1 Z 11 1000 iiii iiii tenx technology, inc. Rev:1.0 Page:23/23 TM58P05 8. Electrical Characteristics 8.1 Absolute Maximum Ratings Supply Voltage …. Vss-0.3V to Vss+5.5V Storge Temperature ……. –50 C to 125 C Input Voltage …… Vss-0.3V to VDD+0.3V Operating Temperature ….–40 C to 85 C O O O O 8.2 DC Characteristics Symbol Test Conditions Parameter VDD VDD Operating Voltage Min Typ Max 2.5 --- 5.5 VDVT V V Low Voltage Detector 5V Unit Conditions 4 (Idd = 3uA) Config bit6.bit5=00 Detect Voltage V Low Voltage Detector 3V 2 (Idd = 1.5uA) Config bit6.bit5=10 VIH Input High Voltage 5V VIL Input Low Voltage 5V Standby Current 5V IDD1 IIL IOH IOL Input Leakage Current I/O Port Driving Current I/O Port Sink tenx technology, inc. Current 5V 5V 5V I/O Port 2 VDD 0.8 I/O Port LVD disable, WDT disable 1 LVD disable, WDT enable 10 Vin=VDD, VSS 1 Voh=4.5V 9 Voh=4V 17 Voh=3.5V 23 Vol=0.5V 20 Vol=01V 35 Vol=1.5V 50 V V uA uA mA mA Rev:1.0 Page:24/24 TM58P05 8.3 AC Characteristics Test Conditions Symbol Parameter fsys1 System Clock fsys1 System Clock fsys3 System Clock fsys4 System Clock Twdt Trht Typ Max Unit Conditions 5V LS Crystal 32 200 3V mode 32 200 5V NS Crystal 1 10 3V mode 1 10 5V HS Crystal 10 20 Mhz 3V mode 6 Mhz 5V 3V Watchdog 5V Timer 3V Reset Hold 5V Time 3V tenx technology, inc. Min VDD RC mode Khz Khz 6 20 20 mS mS Rev:1.0 Page:25/25