HT48R062/HT48C062 经济型输入/输出八位单片机 盛群知识产权政策 专利权 盛群半导体公司在全球各地区已核准和申请中之专利权至少有 160 件以上,享有绝对之合法权益。与 盛群公司 MCU 或其它产品有关的专利权并未被同意授权使用,任何经由不当手段侵害盛群公司专利 权之公司、组织或个人,盛群将采取一切可能的法律行动,遏止侵权者不当的侵权行为,并追讨盛群 公司因侵权行为所受之损失、或侵权者所得之不法利益。 商标权 商标权 盛群之名称和标识、Holtek 标识、HT-IDE、HT-ICE、Marvel Speech、 Music Micro、 Adlib Micro、 Magic Voice、 Green Dialer、 PagerPro、 Q-Voice、 Turbo Voice、 EasyVoice 和 HandyWriter 都是 盛群半导体公司在台湾地区和其它国家的注册商标。 著作权 Copyright 2006 by HOLTEK SEMICONDUCTOR INC. 规格书中所出现的信息在出版当时相信是正确的,然而盛群对于规格内容的使用不负责任。文中提到 的应用其目的仅仅是用来做说明,盛群不保证或不表示这些应用没有更深入的修改就能适用,也不推 荐它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救 生、维生器件或系统中做为关键器件。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请 参考我们的网址 http://www.holtek.com.tw; http://www.holtek.com.cn Rev.1.20 1 2008-4-18 HT48R062/HT48C062 技术相关信息 · · · 工具信息 FAQs 应用范例 -HA0003S HT48 & HT46 MCU 与 HT93LC46 的通信 -HA0013S HT48 & HT46 MCU LCM 接口设计 -HA0016S HT48 MCU 读写 HT24 系列 EEPROM 的应用范例 -HA0075S MCU 重置电路及振荡电路应用 -HA0126S HT48R062 在镍氢、镍镉电池充电器中的应用 特性 · · · · · · · 工作电压: fSYS = 4MHz :2.2V – 5.5V fSYS = 8MHz :3.3V – 5.5V 11 个双向输入/输出口 内置晶体和 RC 振荡电路 看门狗定时器 1K×14 程序存储器 ROM 32×8 数据存储器 RAM HALT 和唤醒功能可降低功耗 · · · · · · · · 63 条强大的指令 在 VDD=5V,系统时钟为 8MHz 时, 指令周期为 0.5 µs 所有指令在 1 或 2 个指令周期内完成 查表指令,表格内容字长 14 位 1 层硬件堆栈 位操作指令 低电压复位功能 16-pin DIP/NSSOP 封装 概述 HT48R062/HT48C062 是一款八位高性能精简指令集单片机,专为经济型多输入输出控制的产品设 计。掩膜版芯片 HT48C062 在引脚和功能方面都与 OTP 版芯片 HT48R062 完全相同。 拥有低功耗、I/O 口稳定性高、振荡选择、省电和唤醒功能、看门狗定时器、以及低价位等优势, 使此款多功能芯片可以广泛地适用于各种应用,例如工业控制、消费类产品、子系统控制器等。 Rev.1.20 2 2008-4-18 HT48R062/HT48C062 方框图 S ta c k P ro g ra m C o u n te r P ro g ra m In s tr u c tio n R e g is te r M M P U D a ta M e m o ry X O S C 2 O S R E V D V S P A C S T A T U S A L U P A S h ifte r P B C C 1 S S P B D S y s te m X ¸ 2 C lo c k /4 W D T O S C (2 4 k H z ) L V R M U X T im in g G e n e ra to r U E N /D IS H A L T In s tr u c tio n D e c o d e r M W D T P o rt A P o rt B P A 0 ~ P A 7 P B 0 ~ P B 2 A C C 引脚图 P A 3 1 1 6 P A 4 P A 1 3 1 4 P A 6 P A 2 4 5 O S C 2 1 2 V S S P B 2 P A 7 1 3 P B 0 P B 1 P A 5 1 5 P A 0 2 6 O S C 1 1 1 7 1 0 8 9 V D D R E S H T 4 8 R 0 6 2 /H T 4 8 C 0 6 2 1 6 D IP -A /N S O P -A 引脚说明 引脚名称 输入输出 PA0~PA7 输入/输出 PB0~PB2 输入/输出 掩膜选项 上拉电阻 唤醒功能 VDD VSS — — 上拉电阻 输入/输出 — — OSC1 OSC2 输入 输出 晶体振荡 或 RC 振荡 RES 输入 — 说明 双向 8 位输入/输出口。每一位能被掩膜选项设置为唤醒输 入。软件指令确定 CMOS 输出,或带上拉电阻的斯密特触发 输入(由上拉电阻选项确定)。 双向 3 位输入/输出口。软件指令确定 CMOS 输出,或带上 拉电阻的斯密特触发输入(由上拉电阻选项确定)。 正电源。 负电源,接地。 OSC1 和 OSC2 采用 RC 振荡或晶体振荡(由掩膜选项确 定)提供系统时钟。在 RC 方式下 OSC2 是一个系统时钟四 分频的输出口。 斯密特触发复位输入端,低电平有效。 注:所有 PA 口唤醒设置均由掩模选项控制。个别引脚不能被设置为唤醒功能。 极限参数 电源供应电压 ….. VSS -0.3V 至 Vss +6.0V 端口输入电压 .…. Vss -0.3V 至 VDD +0.3V IOL 总电流…………. ………. ……….150mA 总消耗电流………. ………. …….….500mW 储存温度 ……… -50℃至 125℃ 工作温度 ……… -40℃至 85℃ IOH 总电流…………. ……. -100mA 注意:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无法预期芯片在上述标示范围外的工作状 态,而且若长期在标示范围外的条件下工作,可能影响芯片的可靠性。 Rev.1.20 3 2008-4-18 HT48R062/HT48C062 D.C.特性 特性 Ta=25℃ 符号 VDD IDD1 IDD2 IDD3 ISTB1 ISTB2 VIL1 VIH1 VIL2 VIH2 VLVR 参数 工作电压 工作电流 (晶体振荡) 工作电流 (RC 振荡) 工作电流 (晶体振荡,RC 振荡) 静态电流 (看门狗打开) 静态电流 (看门狗关闭) 输入/输出口低电平输 入电压, 输入/输出口高电平输 入电压, 低 电 平 输 入 电 压 ( RES ) 高 电 平 输 入 电 压 ( RES ) 低电压复位 IOL 输入/输出口灌电流 IOH 输入/输出口源电流 RPH 上拉电阻 VDD — — 3V 5V 3V 5V 5V 3V 5V 3V 5V 测试条件 条件 fSYS =4MHZ fSYS =8MHZ 无负载 fSYS =4MHZ 无负载 fSYS =4MHZ 无负载 fSYS =8MHZ 无负载 暂停模式 无负载 暂停模式 最小 典型 最大 单位 2.2 3.3 — — — — — — 0.6 2 0.8 2.5 5.5 5.5 1.5 4 1.5 4 V V mA — 4 8 mA — — — — — — — — 5 10 1 2 μA — 0 — 0.3VDD V — — 0.7VDD — VDD V — — 0 — 0.4VDD V — — 0.9VDD — VDD V — 3V 5V 3V 5V 3V 5V LVR 打开 2.7 4 10 -2 -5 20 10 3 8 20 -4 -10 60 30 3.3 — — — — 100 50 V VOL=0.1VDD VOH=0.9VDD — 参数 系统时钟(晶体振 荡) 系 统 时 钟 ( RC 振 荡) 测试条件 VDD 条件 2.2V~5.5V 3.3V~5.5V 2.2V~5.5V 3.3V~5.5V tWDTOSC 看门狗振荡器周期 tRES 外部复位低电平脉宽 tSST 系统启动延时周期 - fSYS2 tLVR 低电压复位周期 备注: tSYS=1/fSYS Rev.1.20 mA mA kΩ Ta=25℃ — — — — 3V 5V - fSYS1 μA — A.C.特性 特性 符号 mA - — - 上电或从 HALT 模式唤 醒 - 4 最小 典型 最大 单位 400 400 400 400 22 16 1 — — — — 45 32 - 4000 8000 4000 8000 90 64 - - 1024 - tSYS 0.25 1 2 ms kHZ kHZ μs μs 2008-4-18 HT48R062/HT48C062 系统功能说明 指令系统 系统时钟由晶体/陶瓷振荡器或 RC 振荡器产生。系统内部对此频率进行四分频,产生四个不重叠的 时钟周期。一个指令周期包括四个系统时钟周期。 S y s te m C lo c k T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4 In s tr u c tio n C y c le P C P C P C + 1 F e tc h IN S T (P C ) E x e c u te IN S T (P C -1 ) F e tc h IN S T (P C + 1 ) E x e c u te IN S T (P C ) P C + 2 F e tc h IN S T (P C + 2 ) E x e c u te IN S T (P C + 1 ) 操作流程 指令读取与执行是以流水线方式来进行的。这种方式允许在一个指令周期进行读取指令操作,而在 下一个指令周期里进行解码与执行该指令。这种流水线方式能在一个指令周期里有效地执行一个指令。 但是,如果指令是要改变程序计数器,就需要花两个指令周期来完成这一条指令。 程序计数器( ) 程序计数器(PC) 10bit 的程序计数器控制存放在程序存储器中的要被执行的指令序列。程序计数器可寻址程序存储 器最大 1024 个地址。 通过访问一个程序存储单元来取出指令代码后,PC 的值便会加 1。然后程序计数器便会指向下一 条指令代码所在的程序存储单元。 当执行一条跳转指令,条件跳转指令,装载 PCL 寄存器,子程序调用,初始复位或从一个子程序 返回,PC 会通过装载相应的地址来执行程序转移。 通过指令实现条件跳转,一旦条件满足,那么在当前指令执行期间取出的下一条指令会被放弃,而 替代它的是一条空指令周期(dummy cycle)来获取正确的指令,接着就执行这条指令。否则就执行下一条 指令。程序计数器的低位字节(PCL;06H)是可读写的寄存器。将数据赋值到 PCL 会执行一个短跳 转。这种跳转只能在 256 个地址范围内。当一个控制转移发生时,系统也会插入一个空指令周期。 模 式 初始化复位 条件跳转 装载 PCL 跳转,子程序调用 从子程序返回 *9 0 *8 0 *9 #9 S9 *8 #8 S8 程序计数器 *6 *5 *4 *3 0 0 0 0 Program Counter+2 @7 @6 @5 @4 @3 #7 #6 #5 #4 #3 S7 S6 S5 S4 S3 *7 0 *2 0 *1 0 *0 0 @2 #2 S2 @1 #1 S1 @0 #0 S0 程序计数器 注意:*9 ~ *0 :程序计数器位 #9 ~ #0 :指令代码位 Rev.1.20 S9 ~ S0 :堆栈寄存器位 @7 ~ @0:PCL 位 5 2008-4-18 HT48R062/HT48C062 程序存储器( ) 程序存储器(ROM) 程序存储器被用来存放要执行的指令代码还包括数据。一共为 1024×14 位。可以由程序计数器或 表格指针来寻址。 在程序存储器中某几个地址被保留作为特殊用途: · 地址 000H 此地址保留给程序初始化之用。当系统复位时,程序会从 000H 地址开始执行。 · 表格区 程序存储器内的任何地址都可被用来作为查表使用。查表指令为 TABRDC [m] 与 TABRDL [m]。 TABRDC [m]是查表当前页的数据 [ 1 页=256 个字 ( word )]。TABRDL [m]是查表最后一页的数据。[m] 为数据被存放的地址。 [m] 为数据存放的地址。在执行 TABRDC [m]指令后,将会传送当前页的一个 字的低位字节到[m],而这个字的高位字节传送到 TBLH(08H)。只有表格中的低位字节被送到目标地 址中,而表格中的高位字节的其它位被传送到 TBLH 的低部位,剩余的二位作为 0 读出。TBLH 为只读 寄存器。而表格指针( TBLP ;07H)是可以读写的寄存器,用来指明表格地址。在访问表格以前,通 过对 TBLP 寄存器赋值来指明表格地址。TBLH 只能读出而不能存储。查表指令要花两个指令周期来 完成这一条指令的操作。按照用户的需要,这些区域可以作为正常的程序存储器来使用。 0 0 0 H D e v ic e in itia liz a tio n p r o g r a m n 0 0 H L o o k - u p ta b le ( 2 5 6 w o r d s ) n F F H P ro g ra m L o o k - u p ta b le ( 2 5 6 w o r d s ) 3 F F H 1 4 b its N o te : n ra n g e s fro m 0 to 3 程序存储器 指令 TABRDC [m] TABRDL [m] *9 P9 1 *8 P8 1 *7 @7 @7 *6 @6 @6 表格地址 *5 *4 @5 @4 @5 @4 *3 @3 @3 *2 @2 @2 *1 @1 @1 *0 @0 @0 表格区 注意: Rev.1.20 @7 ~ @0 :表格指针位 *9 ~ *0:表格地址位 P9~P8 :当前程序计数器位 6 2008-4-18 HT48R062/HT48C062 堆栈寄存器( ) 堆栈寄存器(STACK) 堆栈寄存器(STACK)是一个用来保存 PC 值的特殊存储空间。堆栈有一级组成,堆栈寄存器既不 是数据存储器的一部分,也不是程序存储器的一部分,而且它既不能读出,也不能写入。任何一级堆栈 的使用是由堆栈指针(SP)来确定。堆栈指针也不能读出与写入。一旦发生子程序调用时,程序计数器 (PC)的值会被压入堆栈。在子程序调用结束时, 通过执行一条返回指令(RET),堆栈将原先压入堆 栈的内容弹出,重新装入程序计数器中。在系统复位后,堆栈指针会指向堆栈顶部。 如果堆栈满了接着又执行一个子程序调用(CALL),那么堆栈会产生溢出,而使首先进入堆栈的 内容将会丢失(只有最后的返回地址会被保留着)。 数据存储器( ) 数据存储器(RAM) 数据存储器由 44×8 位组成。它可分成两个功能组:特殊功能寄存器和通用数据存储区 32×8。这 两个功能组的大部分单元可以读写,而某些单元只能读出,不能写 0 0 H In d ir e c t A d d r e s s in g R e g is te r 0 1 H 入。 M P 特殊功能寄存器包括间接寻址寄存器(00H),间接寻址指针 0 2 H 0 3 H 寄存器(MP;01H),累加器(ACC;05H),PC 低位字节寄存 0 4 H 器(PCL;06H),表格指针寄存器(TBLP ;07H),表格高位字 0 5 H A C C 节寄存器(TBLH;08H),看门狗寄存器(WDTS;09H),状态 0 6 H P C L T B L P 寄存器(STATUS;0AH),输入/输出 寄存器(PA;12H,PB; 0 7 H 0 8 H T B L H 14H )和输入 / 输出控制寄存器( PAC ; 13H , PBC ; 15H )。 20H 0 9 H W D T S 以前的剩余单元都被保留为将来进一步扩展使用。读取这些被保留 0 A H S p e c ia l P u r p o S T A T U S D a ta M e m o ry 单元的值,都将返回 00H。通用数据存储器地址 20H-3FH 作为程序 0 B H 0 C H 数据和控制信息使用。 0 D H 所有的 RAM 区单元都能直接执行算术,逻辑,递增,递减和 0 E H 移位等运算。除了某些特殊的位以外,RAM 中的每一位都可以由 0 F H SET[m].i 和 CLR[m].i 指令来置位和复位。它们都可通过存储 1 0 H 1 1 H 器指针寄存器(MP;01H) 间接寻址来存取。 1 2 H 地址 00H 是作为间接寻址寄存器。它没有实际的物理空间。任 何对 [00H] 的读 / 写操作,都会访问由 MP(01H) 所指向的 RAM 单 元。间接地读取[00H],将会返回 00H,而间接地写入 00H 单元, 则不会产生任何结果。 间接寻址指针 MP 的宽度是 7 位,MP 的第 7 位是没有定义 的。若读它,将返回“1”。而任何对 MP 写的操作只能将低 7 位数 据 传送到 MP。 P A 1 3 H P A C 1 5 H 1 6 H P B C 1 4 H 间接寻址寄存器 1 F H 2 0 H 3 F H P B : U n u s e d , re a d a s "0 0 " G e n e ra l P u rp o s e D a ta M e m o ry (3 2 B y te s ) 数据存储器 累加器 (ACC) ) 累加器(ACC)与算术逻辑单元(ALU)紧密联系。它对应于 RAM 的地址 05H,并能与立即数进 行操作,在存储器间的数据传送都必须经过累加器。 Rev.1.20 7 s e 2008-4-18 HT48R062/HT48C062 算术逻辑单元 (ALU) ) 算术逻辑单元是执行 8 位算术逻辑运算的电路。它提供如下的功能: · 算术运算 ( ADD,ADC,SUB,SBC,DAA ) · 逻辑运算 ( AND,OR,XOR,CPL ) · 移位运算 ( RL,RR,RLC,RRC ) · 递增和递减运算 ( INC,DEC ) · 分支跳转 ( SZ,SNZ,SIZ,SDZ 等) 算术逻辑单元 ALU 不仅会保存运算的结果而且会改变状态寄存器。 状态寄存器 (STATUS) ) 8位的状态寄存器( 0AH),由零标志位(Z),进位标志位(C),辅助进位标志位(AC),溢出标志位 (OV),暂停标志位(PDF),看门狗定时器溢出标志位(TO)组成。该寄存器不仅记录状态信息,而且还控 制运算顺序。 除了 TO 和 PDF 以外,状态寄存器中的位都可用指令来改变,这种情况与其它寄存器一样。任何 写到状态寄存器的数据不会改变 TO 或 PDF 标志位。但是与状态寄存器有关的运算会导致状态寄存器 的改变。系统上电,看门狗定时器溢出或执行“CLR WDT”或“HALT”指令,能改变看门狗定时器 溢出标志位(TO)。系统上电,或执行“CLR WDT”或“HALT”指令,能改变暂停标志位(PDF)。 Z,OV,AC 和 C 标志位都反映了当前的运算状态。 位 符号 0 C 1 AC 2 Z 3 OV 4 PDF 5 TO 6~7 — 功 能 在加法运算中结果产生了进位或在减法运算中结果不产生借位,那么 C 被置位;反之,C 被清零。它也可被一个循环移位指令而影响。 在加法运算中低四位产生了进位或减法运算中在低四位不产生借位, AC 被置位;反之,AC 被清零。 算术运算或逻辑运算的结果为零则 Z 被置位;反之,Z 被清零。 如果运算结果向最高位进位,但最高位并不产生进位输出,那么 OV 被置位;反之,OV 被清零。 系统上电或执行了 CLR WDT 指令,PDF 被清零。执行 HALT 指令 PDF 被置位。 系统上电或执行了 CLR WDT 指令或 HALT 指令,TO 被清零。WDT 溢出,TO 被置位。 未定义,读出为零 状态寄存器( ) 状态寄存器(0AH) 另外,在执行子程序调用时,状态寄存器的内容不会自动压入堆栈。如果状态寄存器的内容是重要 的,而且子程序会改变状态寄存器的内容,那么程序员必须事先将其保存好,以免被破坏。 Rev.1.20 8 2008-4-18 HT48R062/HT48C062 振荡器 通过掩膜选项,可以选择外部晶体振荡或外部 RC 振荡。两者都可作为系统时钟。不管用哪种振荡 器,其信号都支持系统时钟。HALT 模式会停止系统振荡器并 V D D 忽略任何外部信号,由此来节省功耗。 4 7 0 p F C 1 如果采用 RC 振荡方式,那么在 VDD 与 OSC1 之间要接一 O S C 1 O S C 1 个外部电阻。其阻值范围为 24KΩ~1MΩ。在 OSC2 端可获得 R O S C C 2 系统时钟四分频信号,它可以用于同步系统外部逻辑。 RC 振 O S C 2 O S C 2 fS Y S /4 R 1 荡器是一种低成本的方案,但是振荡频率由于 VDD,温度及芯 N M O S o p e n d r a in R C O s c C r y s ta l O s c illa to r 片自身参量的漂移而产生误差。因此,对计时敏感的场合,要 求精确度高的振荡器频率,RC 振荡器是不适用的。 如果选用晶体振荡方式,在 OSC1 与 OSC2 之间连接一个晶体,用来提供晶体振荡器所要的反馈 (Feedback)和相位位移(Phase Shift)。除此以外,不再需要其他外部元件。另外,在 OSC1 与 OSC2 之间接一个谐振器(Resonator) 来取代晶体振荡器用来得到参考频率。 Rev.1.20 9 2008-4-18 illa to r HT48R062/HT48C062 看门狗定时器 (WDT) ) WDT 的时钟源是由一个专用的 RC 振荡器(WDT 振荡器)或是由指令周期(系统时钟 4 分频)来 实现的,由掩膜选项来决定的。WDT 是用来防止程序不正常运行或是跳到未知或不希望去的地址,而 导致不可预见的结果。WDT 可以被掩膜选项禁止。如果 WDT 定时器被禁止,所有与 WDT 有关的操作 都是空操作。 如果设置了内部 WDT 振荡器(以 32us/5V 为周期的 RC 振荡器)的话,WDT 的值会先除以 512 (9 级)来产生大约 17ms/5V 的溢出时间,这个溢出时间会因为温度,VDD 以及芯片参数的变化而变 化。如果启动 WDT 的预分频器,则可实现更长的溢出时间。写数据到 WS2,WS1,WS0 (WDTS 的 2、 1、0 位)会产生不同的溢出时间,举例来说,如果 WS2,WS1,WS0 的值都为 1,其分频级数最大,为 1:128,溢出时间最长约 2.1s/5V。如果 WDT 被禁止,那么 WDT 的时钟来源可来自指令时钟,其运作 与 WDT 振荡器一样。但当在 HALT 状态时,来源于指令时钟的 WDT 会在暂停模式时停止计数并失去 保护功能。在这种情况下,只能由外部逻辑来重新启动系统。WDTS 的高四位及其第 3 位保留给用户定 义标志来使用,程序员可以利用这些标志来指示某些特殊的状态。 S y s te m C lo c k /4 W D T O S C (2 4 k H z ) ¸ 2 8 - b it C o u n te r O p tio n S e le c t W D T P r e s c a le r 7 - b it C o u n te r 8 -to -1 M U X W S 0 ~ W S 2 W D T T im e - o u t 看门狗定时器 如果单片机工作在干扰很大的环境中,那么强烈建议使用片内 RC 振荡器(WDT OSC),因为 HALT 模式会使系统时钟终止运作。 在正常运作下,WDT 溢出会使系统复位并设置 TO 状态位。但在 HALT 模式下,溢出只产生一个 “热复位”,只能使 PC 程序计数器和堆栈指针 SP 复位到零。要清除 WDT 的值(包括 WDT 预分频 器)可以有三种方法:外部复位(低电平输入到 RES 端),用软件指令和 HALT 指令三种。软件指令 由 CLR WDT 和另一组指令 CLR WDT1 及 CLR WDT2 组成。这两组指令中,只能选取其中一种。选择 的方式由掩膜选项的 CLR WDT 次数选项决定。如果“CLR WDT”被选择(即 CLR WDT 次数为 1),那 么只要执行 CLR WDT 指令就会清除 WDT。在 CLR WDT1 和 CLR WDT2 被选择的情况下(即 CLR WDT 次数为 2),那么要执行二条指令才会清除 WDT。否则,WDT 会由于溢出而使系统复位。 WS2 0 0 0 0 1 1 1 1 WS1 0 0 1 1 0 0 1 1 WS0 0 1 0 1 0 1 0 1 分频率 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128 看门狗定时器预置寄存器(09H) 看门狗定时器预置寄存器 Rev.1.20 10 2008-4-18 HT48R062/HT48C062 暂停模式( ) 暂停模式(HALT) 暂停模式是由 HALT 指令来实现的,产生如下结果: · 关闭系统振荡器,但 WDT 振荡器继续工作(如果 WDT 时钟来源是 WDT 振荡器)。 · RAM 及寄存器的内容保持不变。 · WDT 被被清除并再次重新计数(如果 WDT 时钟来源是 WDT 振荡器)。 · 所有的输入/输出口都保持其原先状态。 · PDF 标志位被置位,TO 标志位被清零。 由于外部复位、外部输入一个下降沿的信号到 PA 口或 WDT 溢出,可使系统脱离暂停状态。外部 复位能使系统初始化而 WDT 溢出使系统“热复位”。测试 TO 和 PDF 状态后,系统复位的原因就可以 被确定。 PDF 标志位是由系统上电复位和执行 CLR WDT 指令被清除,而它的置位是由于执行了 HALT 指令。如果 WDT 产生溢出,会使 TO 标志位置位,还能产生唤醒使得程序计数的 PC 和堆栈指 针 SP 复位。其他都保持原状态。 PA 口的唤醒被看作为正常运行。PA 口可以通过掩膜选项来设定为对系统的唤醒。个别 PA 口无法 被设置为唤醒脚。从 I/O 唤醒,程序会重新继续执行下一条命令。 一旦唤醒事件发生,要花 1024tsys(系统时钟周期),系统重新正常运行。换句话说,在唤醒后被 插入了一个等待时间。 为了省电,在进入 HALT 模式之前必须要小心处理输入/输出口状态。 Rev.1.20 11 2008-4-18 HT48R062/HT48C062 复位( ) 复位(RESET) V 有三种方法可以产生复位: · 在正常运行时期由 RES 脚产生复位。 · 在 HALT 期间 RES 脚产生复位。 · 正常运行时,WDT 溢出复位。 D D R E S 复位电路 在 HALT 期间 WDT 溢出是不同于其它的复位操作条件,因为它可执行 “热 复位”,结果只能使程序计数器 PC 和堆栈指针 SP 复位,而别的寄存器均保持原来的状态。在其他复位 条件下,某些寄存器保持不变。当复位条件被满足时,极大多数的寄存器被复位到“初始状态”,通过测 试 PDF 标志位和 TO 标志位,程序能分辨不同的系统复位。 TO 0 u 0 1 1 复 位 条 件 电源上电复位 正常运作时由 RES 复位 RES 时唤醒暂停模式 正常运作时发生看门狗定时器超时 由看门狗定时器唤醒暂停模式 PDF 0 u 1 u 1 注释:“u”表示未变化。 为保证系统振荡器起振并稳定运行,那么 SST(系统启动定时器)当系统复位(上电,WDT 定时 溢出或 RES )或从 HALT 状态被唤醒时,提供额外延迟 1024 个系统时钟脉冲。 H A L T W D T W D T T im e - o u t R e s e t R e s e t R E S V D D R E S tS O S C 1 S T S S T T im e - o u t C h ip S S T 1 0 -s ta g e R ip p le C o u n te r P o w e r - o n D e te c tio n R e s e t 复位时序 复位电路结构 当系统复位时,SST 延迟被加到复位周期中。任何来自 HALT 的唤醒都将允许 SST 延迟。 系统复位时各功能单元的状态如下所示: 程序计数器(PC) 看门狗定时器 输入/输出口 堆栈指针 SP Rev.1.20 000H 清除,复位后看门狗定时器开始计数 输入模式 指向堆栈顶端 12 2008-4-18 HT48R062/HT48C062 有关寄存器的状态如下: 有关寄存器的状态如下: 寄存器 Program Counter MP ACC TBLP TBLH WDTS STATUS PA PAC PB PBC 上电复位 000H -xxx xxxx xxxx --xx xxxx xxxx xxxx xxxx 0000 --00 1111 1111 ------- 0111 xxxx 1111 1111 -111 -111 正常运行期间 暂停模式 WDT 溢出 RES 端复位 RES 端复位 WDT 溢出* 溢出 000H 000H 000H 000H -uuu uuuu uuuu --uu 0000 --lu 1111 1111 ------- uuuu uuuu uuuu uuuu 0111 uuuu 1111 1111 -111 -111 -uuu uuuu uuuu --uu 0000 --uu 1111 1111 ------- uuuu uuuu uuuu uuuu 0111 uuuu 1111 1111 -111 -111 -uuu uuuu uuuu --uu 0000 --01 1111 1111 ------- uuuu uuuu uuuu uuuu 0111 uuuu 1111 1111 -111 -111 -uuu uuuu uuuu --uu uuuu --11 uuuu uuuu ------- uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu -uuu -uuu 注意:“*”表示“热复位。 “U”表示不变化。 “×”表示不确定。 输入/输出口 输入 输出口 单片机具有 11 个双向输入输出口,标号为 PA 和 PB,其分别对应的 RAM 的[12H] 和[14H]。所有 的输入/输出口都能被作为输入或输出使用。就 V D D 输入而言这些口不具有锁存功能,即,输入数 C o n tr o l B it P u ll- h ig h 据必须在“MOV A,[m]”(m=12H 或 14H) 指 D a ta B u s Q D 令的 T2 上升沿被准备好。对输出而言,所有 Q C K 的数据被锁存并保持不变,直到输出锁存器重 W r i t e C o n t r o l R e g i s t e r S 新被改写。 C h ip R e s e t P A 0 每个输入输出口都有其自己的控制寄存器 R e a d C o n t r o l R e g i s t e r P B 0 D a ta B it (PAC,PBC ),用来控制输入/输出模式。使 Q D 用控制寄存器,可对 CMOS 输出或斯密特触发 W r ite D a ta R e g is te r Q C K 输入在软件下动态地进行改变。作为输入时, S 相应的控制寄存器必须写“ 1 ”。信号源的输 M U 入也取决于控制寄存器。如果控制寄存器的某 X R e a d D a ta R e g is te r 位值为“ 1 ”那么输入信号是读取自这个引脚 S y s te m W a k e -u p W a k e - u p O p tio n ( PAD )的状态,但是如果控制寄存器的某位 ( P A o n ly ) 值为“ 0 ”,那么锁存器的内容将会被送到内 部总 线。后者,可以在“读改写”指令中发 输入/ 输入/输出口 生。 对于输出功能,只能设置为 CMOS 输出。这些控制寄存器是对应于内存的 13H,15H 地址。 芯片复位后,这些输入/输出口都会是高电平或浮空状态(取决于上拉电阻的选项)。每一个输入/ 输出锁存位都能被 SET [m].i 或 CLR [m].i 指令置位或清零,(m=12H 或 14H) 某些指令会首先输入数据然后进行输出操作。例如,SET [m].i ,CLR [m].i,CPL [m]和 CPLA [m] 指令,读取输入口的状态到 CPU,执行这个操作(位操作),然后将数据写回锁存器或累加器。 PA 的每一个口都具有唤醒系统的能力。PB 口的高 5 位在物理上是不存在的;读这些位将返回 “0”,而写入则是一个空操作。请看应用注释。 所有的输入/输出口都可以有上拉电阻的选择。一旦选择上拉电阻,所有的输入/输出口都具有上拉 电阻。必须要注意的是:没有上拉电阻的输入/输出口工作在输入模式会产生浮空状态。 为了避免在浮空状态下功耗太大,建议将未用的或没有连结到外部的输入/输出口由软件指令设置 成输出引脚。 Rev.1.20 13 2008-4-18 ~ P A 7 ~ P B 2 HT48R062/HT48C062 低电压复位 — LVR 为了监控器件的工作电压,单片机提供低电压复位功能。如果工作电压在 0.9V~VLVR 之间,例如电池电压的变化,那么 LVR 会自动使器件产生内部 复位。 LVR 功能说明如下: · 低电压(0.9V~VLVR)的状态必须持续 1ms 以上。如果低电压的状态没有 持续 1ms 以上,那么 LVR 会忽视它而不去执行复位功能。 · LVR 通过与外部 RES信号的“或”的功能来执行系统复位。 V D D 5 .5 V V O P R 5 .5 V V 3 .0 V L V R 2 .2 V 0 .9 V VDD 与 VLVR 之间的关系如下所示: V 注:V D D OPR 时一般芯片正常工作电压的 范围。 5 .5 V V 为系统时钟 4MHz L V R L V R D e te c t V o lta g e 0 .9 V 0 V R e s e t S ig n a l N o r m a l O p e r a tio n R e s e t *1 R e s e t *2 低电压复位 注: *1:要保证系统振荡器起振并稳定运行,在系统进入正常运行以前,SST 提供额外的 1024 个系统时钟周期的延迟。 *2:因为低电压状态必须保持 1ms 以上,因此进入复位模式就要有 1ms 的延迟。 掩膜选项 以下的表格,列出了这种单片机的各种类型的掩膜选项。所有的掩膜选项必须正确定义。 编号 1 2 3 4 5 6 7 Rev.1.20 选 项 WDT 时钟源:WDT 振荡或 fSYS/4 WDT 打开/关闭 LVR 打开/关闭 清除看门狗指令条数:1 或 2 条清除 WDT 系统振荡选择:外部 RC 振荡/外部晶体振荡 上拉电阻(PA~PB):无上拉电阻或有上拉电阻 PA0~PA7 唤醒功能:有/没有 14 2008-4-18 HT48R062/HT48C062 应用电路 V D D 0 .0 1 m F * 1 0 0 k W 0 .1 m F 1 0 k W 0 .1 m F * V D D P A 0 ~ P A 7 R E S P B 0 ~ P B 2 V D D R 4 7 0 p F V S S O S C 1 O S C fS Y S /4 O S C 2 N M O S o p e n d r a in C 1 O S C C ir c u it S e e R ig h t S id e O S C 1 O S C 1 C 2 O S C 2 R 1 O S C 2 O S C H T 4 8 R 0 6 2 /H T 4 8 C 0 6 2 R C S y s te m O s c illa to r 2 4 k W < R O S C < 1 M W C ry s ta l S y s te m F o r th e v a lu e s , s e e ta b le b e lo w O s c illa to r C ir c u it 注: 电阻和电容值选取的原则是使 VDD 保持稳定并在 RES 置为高以前把工作电压保持在允许的范围内。 “*”为了避免噪声干扰,连接 RES 引脚的线请尽可能地短 下表所示为根据不同的晶振值选择 R1、C1、C2 晶体振荡或谐振器 C1, ,C2 R1 25pF 4MHz 晶振 10kΩ 10pF 4MHz 谐振器 12kΩ 25pF 3.58MHz 晶振 10kΩ 25pF 3.58MHz 谐振器 10kΩ 30pF 2MHz 晶振 12kΩ 25pF 2MHz 谐振器 12 kΩ 100pF 1MHz 晶振 10kΩ 300pF 480KHz 谐振器 9.1kΩ 300pF 455KHz 谐振器 10kΩ 300pF 429KHz 谐振器 10kΩ 300pF 400KHz 谐振器 10kΩ 电阻 R1 保证了在低电压状态下,晶振被关闭。这里的低电压,是指低于 MCU 正常工作电压范围。请注意,当启动了 LVR 功能,R1 可以不接。 Rev.1.20 15 2008-4-18 HT48R062/HT48C062 指令集摘要 助记符 算术运算 ADD A,[m] ADDM A,[m] ADD A,x ADC A,[m] ADCM A,[m] SUB A,x SUB A,[m] SUBM A,[m] SBC A,[m] SBCM A,[m] DAA [m] 逻辑运算 AND A,[m] OR A,[m] XOR A,[m] ANDM A,[m] ORM A,[m] XORM A,[m] AND A,x OR A,x XOR A,x CPL [m] CPLA [m] 递增和递减 INCA [m] INC [m] DECA [m] DEC [m] 移位 RRA [m] RR [m] RRCA [m] RRC [m] RLA [m] RL [m] RLCA [m] RLC [m] 数据传送 MOV A,[m] MOV [m],A MOV A,x 位运算 CLR [m].i SET [m].i Rev.1.20 说明 指令周期 影响标志位 ACC 与数据存储器相加,结果放入 ACC ACC 与数据存储器相加,结果放入数据存储器 ACC 与立即数相加,结果放入 ACC ACC 与数据存储器、进位标志相加,结果放入 ACC ACC 与数据存储器、进位标志相加,结果放入数据存储器 ACC 与立即数相减,结果放入 ACC ACC 与数据存储器相减,结果放入 ACC ACC 与数据存储器相减,结果放入数据存储器 ACC 与数据存储器、进位标志相减,结果放入 ACC ACC 与数据存储器、进位标志相减,结果放入数据存储器 将加法运算中放入 ACC 的值调整为十进制数,并将结果放 入数据存储器 1 1(1) 1 1 1(1) 1 1 1(1) 1 1(1) Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV 1(1) C ACC 与数据存储器做“与”运算,结果放入 ACC ACC 与数据存储器做“或”运算,结果放入 ACC ACC 与数据存储器做“异或”运算,结果放入 ACC ACC 与数据存储器做“与”运算,结果放入数据存储器 ACC 与数据存储器做“或”运算,结果放入数据存储器 ACC 与数据存储器做“异或”运算,结果放入数据存储器 ACC 与立即数做“与”运算,结果放入 ACC ACC 与立即数做“或”运算,结果放入 ACC ACC 与立即数做“异或”运算,结果放入 ACC 对数据存储器取反,结果放入数据存储器 对数据存储器取反,结果放入 ACC 1 1 1 1(1) 1(1) 1(1) 1 1 1 1(1) 1 Z Z Z Z Z Z Z Z Z Z Z 递增数据存储器,结果放入 ACC 递增数据存储器,结果放入数据存储器 递减数据存储器,结果放入 ACC 递减数据存储器,结果放入数据存储器 1 1(1) 1 1(1) Z Z Z Z 数据存储器右移一位,结果放入 ACC 数据存储器右移一位,结果放入数据存储器 带进位将数据存储器右移一位,结果放入 ACC 带进位将数据存储器右移一位,结果放入数据存储器 数据存储器左移一位,结果放入 ACC 数据存储器左移一位,结果放入数据存储器 带进位将数据存储器左移一位,结果放入 ACC 带进位将数据存储器左移一位,结果放入数据存储器 1 1(1) 1 1(1) 1 1(1) 1 1(1) 无 无 C C 无 无 C C 将数据存储器送至 ACC 将 ACC 送至数据存储器 将立即数送至 ACC 1 1(1) 1 无 无 无 清除数据存储器的位 置位数据存储器的位 1(1) 1(1) 无 无 16 2008-4-18 HT48R062/HT48C062 助记符 转移 JMP addr SZ [m] SZA [m] SZ [m].i SNZ [m].i SIZ [m] SDZ [m] SIZA [m] SDZA [m] CALL addr RET RET A,x RETI 查表 TABRDC [m] TABRDL [m] 其它指令 NOP CLR [m] SET [m] CLR WDT CLR WDT1 CLR WDT2 SWAP [m] SWAPA [m] HALT 说明 指令周期 影响标志位 无条件跳转 如果数据存储器为零,则跳过下一条指令 数据存储器送至 ACC,如果内容为零,则跳过下一条指令 如果数据存储器的第 i 位为零,则跳过下一条指令 如果数据存储器的第 i 位不为零,则跳过下一条指令 递增数据存储器,如果结果为零,则跳过下一条指令 递减数据存储器,如果结果为零,则跳过下一条指令 递增数据存储器,将结果放入 ACC,如果结果为零,则跳 过下一条指令 递减数据存储器,将结果放入 ACC,如果结果为零,则跳 过下一条指令 子程序调用 从子程序返回 从子程序返回,并将立即数放入 ACC 从中断返回 2 1(2) 1(2) 1(2) 1(2) 1(3) 1(3) 无 无 无 无 无 无 无 1(2) 无 1(2) 无 2 2 2 2 无 无 无 无 读取当前页的 ROM 内容,并送至数据存储器和 TBLH 读取最后页的 ROM 内容,并送至数据存储器和 TBLH 2(1) 2(1) 无 无 空指令 清除数据存储器 置位数据存储器 清除看门狗定时器 预清除看门狗定时器 预清除看门狗定时器 交换数据存储器的高低字节,结果放入数据存储器 交换数据存储器的高低字节,结果放入 ACC 进入暂停模式 1 1(1) 1(1) 1 1 1 1(1) 1 1 无 无 无 TO,PDF TO(4),PDF(4) TO(4),PDF(4) 无 无 TO,PDF 注: x:立即数 m:数据存储器地址 A:累加器 i:第 0~7 位 addr:程序存储器地址 √:影响标志位 —:不影响标志位 (1) :如果数据是加载到 PCL 寄存器,则指令执行周期会被延长一个指令周期(四个系统时钟)。 (2) :如果满足跳跃条件,则指令执行周期会被延长一个指令周期(四个系统时钟);否则指令执行周期不会被延 长。 (3) (1) (2) : 和 (4) :如果执行 CLR WDT1 或 CLR WDT2 指令后,看门狗定时器被清除,则会影响 TO 和 PDF 标志位;否则不 会影响 TO 和 PDF 标志位。 Rev.1.20 17 2008-4-18 HT48R062/HT48C062 指令定义 ADC A, [m] 说明: 运算过程: 影响标志位 累加器与数据存储器、进位标志相加,结果放入累加器 本指令把累加器、数据存储器值以及进位标志相加,结果存放到累加器。 ACCACC+[m]+C TO — ADCM A, [m] 说明: 运算过程: 影响标志位 PDF — OV √ Z √ AC √ C √ PDF — OV √ Z √ AC √ C √ PDF — OV √ Z √ AC √ C √ PDF — OV √ Z √ AC √ C √ 累加器与数据存储器做“与”运算,结果放入累加器 本指令把累加器值、数据存储器值做逻辑与,结果存放到累加器。 ACCACC “AND” [m] TO — Rev.1.20 C √ 累加器与数据存储器相加,结果放入数据存储器 本指令把累加器、数据存储器值相加,结果存放到数据存储器。 [m]ACC+[m] TO — AND A, [m] 说明: 运算过程: 影响标志位 AC √ 累加器与立即数相加,结果放入累加器 本指令把累加器值和立即数相加,结果存放到累加器。 ACCACC+x TO — ADDM A, [m] 说明: 运算过程: 影响标志位 Z √ 累加器与数据存储器相加,结果放入累加器 本指令把累加器、数据存储器值相加,结果存放到累加器。 ACCACC+[m] TO — ADD A, x 说明: 运算过程: 影响标志位 OV √ 累加器与数据存储器、进位标志相加,结果放入数据存储器 本指令把累加器、数据存储器值以及进位标志相加,结果存放到存储器。 [m]ACC+[m]+C TO — ADD A, [m] 说明: 运算过程: 影响标志位 PDF — PDF — OV — Z √ 18 AC — C — 2008-4-18 HT48R062/HT48C062 累加器与立即数做“与”运算,结果放入累加器 本指令把累加器值、立即数做逻辑与,结果存放到累加器。 ACCACC “AND” x AND A, x 说明: 运算过程: 影响标志位 TO — ANDM A, [m] 说明: 运算过程: 影响标志位 addr 运算过程: OV — Z √ AC — C — 累加器与数据存储器做“与”运算,结果放入数据存储器 本指令把累加器值、数据存储器值做逻辑与,结果存放到数据存储器。 [m]ACC “AND” [m] TO — CALL 说明: PDF — PDF — OV — Z √ AC — C — 子程序调用 本指令直接调用地址所在处的子程序,此时程序计数器加一,将此程序计数器值存到堆栈 寄存器中,再将子程序所在处的地址存放到程序计数器中。 StackPC+1 PC addr 影响标志位 TO — CLR [m] 说明: 运算过程: 影响标志位 运算过程: Z — AC — C — PDF — OV — Z — AC — C — AC — C — 将数据存储器的第 i 位清“0” 本指令将数据存储器内第 i 位值清零。 [m].i 0 TO — CLRWDT 说明: OV — 清除数据存储器 本指令将数据存储器内的数值清零。 [m] 00H TO — CLR [m] . i 说明: 运算过程: 影响标志位 PDF — PDF — OV — Z — 清除看门狗定时器 本指令清除 WDT 计数器(从 0 开始重新计数),暂停标志位(PDF)和看门狗溢出标志位(TO) 也被清零。 WDT 00H PDF&TO 0 影响标志位 TO 0 Rev.1.20 PDF 0 OV — Z — 19 AC — C — 2008-4-18 HT48R062/HT48C062 CLRWDT1 说明: 运算过程: 预清除看门狗定时器 必须搭配 CLR WDT2 一起使用,才可清除 WDT 计时器(从 0 开始重新计数)。当程序只执 行过该指令,没有执行 CLR WDT2 时,系统只会不会将暂停标志位(PDF)和计数溢出位 (TO)清零,PDF 与 TO 保留原状态不变。 WDT 00H* PDF&TO 0* 影响标志位 TO 0* CLRWDT2 说明: 运算过程: PDF 0* OV — Z — AC — C — 预清除看门狗定时器 必须搭配 CLR WDT1 一起使用,才可清除 WDT 计时器(从 0 开始重新计数)。当程序只执 行过该指令,没有执行 CLR WDT1 时,系统只会不会将暂停标志位(PDF)和计数溢出位 (TO)清零,PDF 与 TO 保留原状态不变。 WDT 00H* PDF&TO 0* 影响标志位 TO 0* CPL [m] 说明: 运算过程: 影响标志位 Z — AC — C — PDF — OV — Z √ AC — C — 对数据存储器取反,结果放入累加器 本指令是将数据存储器内保存的值取反后,结果存放在累加器中。 ACC [ m ] TO — Rev.1.20 OV — 对数据存储器取反,结果放入数据存储器 本指令是将数据存储器内保存的数值取反。 [m] [ m ] TO — CPLA [m] 说明: 运算过程: 影响标志位 PDF 0* PDF — OV — Z √ 20 AC — C — 2008-4-18 HT48R062/HT48C062 DAA 说明 [m] 操作 将加法运算后放入累加器的值调整为十进制数,并将结果放入数据存储器 本指令将累加器高低四位分别调整为 BCD 码。如果低四位的值大于“9”或 AC=1,那么 BCD 调整就执行对原值加“6”,并且内部进位标志 AC1= AC ,即 AC 求反;否则原值保 持不变。如果高四位的值大于“9”或 C=1,那么 BCD 调整就执行对原值加“6”再加 AC1,并把 C 置位;否则 BCD 调整就执行对原值加 AC1,C 的值保持不变。结果存放到 数据存储器中,只有进位标志位(C)受影响。 如果 ACC.3~ACC.0 > 9 或 AC=1 那么 [m].3~[m].0 (ACC.3~ACC.0 )+6,AC1= AC 否则 [m].3~[m].0 (ACC.3~ACC.0 ),AC1=0 并且 如果 ACC.7~ACC.4+AC1 > 9 或 C=1 那么 [m].7~[m].4 (ACC.7~ACC.4 )+6+ AC1,C=1 否则 [m].7~[m].4 (ACC.7~ACC.4 )+ AC1,C=C 影响标志位 TO — DEC [m] 说明: 运算过程: 影响标志位 运算过程: Z — AC — C √ PDF — OV — Z √ AC — C — 数据存储器的内容减 1,结果放入累加器 本指令将存储器内的数值减一,再放到累加器。 ACC [m]-1 TO — HALT 说明: OV — 数据存储器的内容减 1,结果放入数据存储器 本指令将数据存储器内的数值减一再放回数据存储器。 [m] [m]-1 TO — DECA [m] 说明: 运算过程: 影响标志位 PDF — PDF — OV — Z √ AC — C — 进入暂停模式 本指令终止程序执行并关掉系统时钟,RAM 和寄存器内的数值保持原状态,WDT 计数器 清“0”,暂停标志位(PDF)被设为 1, WDT 计数溢出位(TO)被清为 0。 PC PC+1 PDF 1 TO 0 影响标志位 TO 0 Rev.1.20 PDF 1 OV — Z — 21 AC — C — 2008-4-18 HT48R062/HT48C062 INC [m] 说明: 运算过程: 影响标志位 数据存储器的内容加 1,结果放入数据存储器 本指令将数据存储器内的数值加一,结果放回数据存储器。 [m] [m]+1 TO — INCA [m] 说明: 运算过程: 影响标志位 PDF — OV — Z √ AC — C — PDF — OV — Z — AC — C — PDF — OV — Z — AC — C — PDF — OV — Z — AC — C — AC — C — 将累加器送至数据存储器 本指令是将累加器值送到数据存储器内。 [m] ACC TO — Rev.1.20 C — 将立即数送至累加器 本指令是将立即数送到累加器内。 ACC x TO — MOV [m], A 说明: 运算过程: 影响标志位 AC — 将数据存储器送至累加器 本指令是将数据存储器内的数值送到累加器内。 ACC [m] TO — MOV A, x 说明: 运算过程: 影响标志位 Z √ 无条件跳转 本指令是将要跳到的目的地直接放到程序计数器内。 PC addr TO — MOV A, [m] 说明: 运算过程: 影响标志位 OV — 数据存储器的内容加 1,结果放入数据存储器 本指令是将存储器内的数值加一,结果放到累加器。 ACC [m]+1 TO — JMP addr 说明: 运算过程: 影响标志位 PDF — PDF — OV — Z — 22 2008-4-18 HT48R062/HT48C062 NOP 说明: 运算过程: 影响标志位 空指令 本指令不作任何运算,而只将程序计数器加一。 PC PC+1 TO — OR A, [m] 说明: 运算过程: 影响标志位 C — PDF — OV — Z √ AC — C — PDF — OV — Z √ AC — C — PDF — OV — Z √ AC — C — 从子程序返回 本指令是将堆栈寄存器中的程序计数器值送回程序计数器。 PC Stack TO — RET A, x 说明: 运算过程: AC — 累加器与数据存储器做“或”运算,结果放入数据存储器 本指令是把累加器值、存储器值做逻辑或,结果放到数据存储器。 [m]ACC “OR” [m] TO — RET 说明: 运算过程: 影响标志位 Z — 累加器与立即数做“或”运算,结果放入累加器 本指令是把累加器值、立即数做逻辑或,结果放到累加器。 ACCACC “OR” x TO — ORM A, [m] 说明: 运算过程: 影响标志位 OV — 累加器与数据存储器做“或”运算,结果放入累加器 本指令是把累加器、数据存储器值做逻辑或,结果放到累加器。 ACCACC “OR” [m] TO — OR A, x 说明: 运算过程: 影响标志位 PDF — PDF — OV — Z — AC — C — 从子程序返回,并将立即数放入累加器 本指令是将堆栈寄存器中的程序计数器值送回程序计数器,并将立即数送回累加器。 PC Stack ACC x 影响标志位 TO — Rev.1.20 PDF — OV — Z — 23 AC — C — 2008-4-18 HT48R062/HT48C062 RETI 说明: 运算过程: 从中断返回 本指令是将堆栈寄存器中的程序计数器值送回程序计数器,与 RET 不同的是它使用在中 断程序结束返回时,它还会将中断控制寄存器 INTC 的 0 位(EMI)中断允许位置 1,允许中 断服务。 PC Stack EMI 1 影响标志位 TO — RL [m] 说明: 运算过程: 影响标志位 运算过程: 影响标志位 运算过程: Z — AC — C — PDF — OV — Z — AC — C — 数据存储器左移一位,结果放入累加器 本指令是将存储器内的数值左移一位,第 7 位移到第 0 位,结果送到累加器,而数据存储 器内的数值不变。 ACC.0 [m].7, ACC.(i+1) [m].i; (i=0~6) TO — RLC[m] 说明: OV — 数据存储器左移一位,结果放入数据存储器 本指令是将数据存储器内的数值左移一位,第 7 位移到第 0 位,结果送回数据存储器。 [m].0 [m].7, [m].(i+1) [m].i; (i=0~6) TO — RLA[m] 说明: PDF — PDF — OV — Z — AC — C — 带进位将数据存储器左移一位,结果放入数据存储器 本指令是将存储器内的数值与进位标志左移一位,第 7 位取代进位标志,进位标志移到第 0 位,结果送回数据存储器。 [m].(i+1) [m].i; (i=0~6) [m].0 C C [m].7 影响标志位 TO — RLCA 说明: [m] 运算过程: PDF — OV — Z — AC — C √ 带进位将数据存储器左移一位,结果放入累加器 本指令是将存储器内的数值与进位标志左移一位,第七位取代进位标志,进位标志移到第 0 位,结果送回累加器。 ACC.(i+1) [m].i;(i=0~6) ACC.0 C C [m].7 影响标志位 TO — Rev.1.20 PDF — OV — Z — 24 AC — C √ 2008-4-18 HT48R062/HT48C062 RR [m] 说明: 运算过程: 影响标志位 数据存储器右移一位,结果放入数据存储器 本指令是将存储器内的数值循环右移,第 0 位移到第 7 位,结果送回数据存储器。 [m].7 [m].0, [m].i [m].(i+1); (i=0~6) TO — RRA 说明: [m] 运算过程: 影响标志位 [m] 运算过程: OV — Z — AC — C — 数据存储器右移一位,结果放入累加器 本指令是将数据存储器内的数值循环右移,第 0 位移到第 7 位,结果送回累加器,而数据 存储器内的数值不变。 ACC.7 [m].0, ACC.i [m].(i+1); (i=0~6) TO — RRC 说明: PDF — PDF — OV — Z — AC — C — 带进位将数据存储器右移一位,结果放入数据存储器 本指令是将存储器内的数值加进位标志循环右移,第 0 位取代进位标志,进位标志移到第 7 位,结果送回存储器。 [m].i [m].(i+1); (i=0~6) [m]. 7 C C [m].0 影响标志位 TO — RRCA 说明: [m] 运算过程: PDF — OV — Z — AC — C √ 带进位将数据存储器右移一位,结果放入累加器 本指令是将数据存储器内的数值加进位标志循环右移,第 0 位取代进位标志,进位标志移 到第 7 位,结果送回累加器,数据存储器内的数值不变。 ACC.i [m].(i+1); (i=0~6) ACC.7 C C [m].0 影响标志位 TO — SBC A,[m] 说明: 运算过程: 影响标志位 OV — Z — AC — C √ 累加器与数据存储器、进位标志相减,结果放入累加器 本指令是把累加器值减去数据存储器值以及进位标志的取反,结果放到累加器。 ACCACC+[ m ]+ C TO — Rev.1.20 PDF — PDF — OV √ Z √ 25 AC √ C √ 2008-4-18 HT48R062/HT48C062 SBCM A,[m] 说明: 运算过程: 影响标志位 累加器与数据存储器、进位标志相减,结果放入数据存储器 本指令是把累加器值减去数据存储器值以及进位标志取反,结果放到数据存储器。 [m]ACC+[ m ]+C TO — SDZ 说明: [m] 运算过程: 影响标志位 [m] 运算过程: OV √ Z √ AC √ C √ 数据存储器减 1,如果结果为“0”,则跳过下一条指令 本指令是把数据存储器内的数值减 1,判断是否为 0,若为 0 则跳过下一条指令,即如果 结果为零,放弃在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正 确的指令(二个指令周期)。否则执行下一条指令(一个指令周期)。 如果[m]-1=0,跳过下一条指令执行再下一条。 TO — SDZA 说明: PDF — PDF — OV — Z — AC — C — 数据存储器减 1,将结果放入累加器,如果结果为“0”,则跳过下一条指令 本指令是把数据存储器内的数值减 1,判断是否为 0,为 0 则跳过下一行指令并将减完后 数据存储器内的数值送到累加器,而数据存储器内的值不变,即若结果为 0,放弃在目前指 令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二个指令周 期)。否则执行下一条指令(一个指令周期)。 如果[m]-1=0,跳过下一条指令执行再下一条。 ACC ([m]-1) 影响标志位 TO — SET [m] 说明: 运算过程: 影响标志位 Z — AC — C — PDF — OV — Z — AC — C — AC — C — 将数据存储器的第 i 位置“1” 本指令是把存储器内的数值的第 i 位置为 1。 [m].i 1 TO — Rev.1.20 OV — 置位数据存储器 本指令是把存储器内的数值每个位置为 1。 [m] FFH TO — SET [m]. i 说明: 运算过程: 影响标志位 PDF — PDF — OV — Z — 26 2008-4-18 HT48R062/HT48C062 SIZ 说明: [m] 运算过程: 影响标志位 数据存储器加 1,如果结果为“0”,则跳过下一条指令 本指令是把数据存储器内的数值加 1,判断是否为 0。若为 0,跳过下一条指令,即放弃在 目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二个指令 周期)。否则执行下一条指令(一个指令周期)。 如果 ([m]+1=0),跳过下一行指令;[m] [m]+1 TO — SIZA 说明: 运算过程: 影响标志位 [m]. i 运算过程: 影响标志位 C — PDF — OV — Z — AC — C — PDF — OV — Z — AC — C — PDF — OV √ Z √ AC √ C √ 累加器与立即数相减,结果放入累加器 本指令是把累加器值、立即数相减,结果放到累加器。 ACCACC+ x +1 TO — Rev.1.20 AC — 累加器与数据存储器相减,结果放入累加器 本指令是把累加器值、数据存储器值相减,结果放到累加器。 ACCACC+[ m ]+1 TO — SUB A, x 说明: 运算过程: 影响标志位 Z — 如果数据存储器的第 i 位不为“0”,则跳过下一条指令 本指令是判断数据存储器内的数值的第 i 位,若不为 0,则程序计数器再加 1,跳过下一行 指令,放弃在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的 指令(二个指令周期)。否则执行下一条指令(一个指令周期)。 如果 [m].i≠0,跳过下一行指令。 TO — SUB A, [m] 说明: 运算过程: 影响标志位 OV — 数据存储器加 1,将结果放入累加器,如果结果为“0”,则跳过下一条指令 本指令是把数据存储器内的数值加 1,判断是否为 0,若为 0 跳过下一条指令,即放弃在 目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二个指 令周期),并将加完后存储器内的数值送到累加器,而数据存储器的值保持不变。否则执 行下一条指令(一个指令周期)。 如果[m]+1=0,跳过下一行指令;ACC ([m]+1) TO — SNZ 说明: PDF — PDF — OV √ Z √ 27 AC √ C √ 2008-4-18 HT48R062/HT48C062 SUBM A, [m] 说明: 运算过程: 影响标志位 累加器与数据存储器相减,结果放入数据存储器 本指令是把累加器值、存储器值相减,结果放到存储器。 [m]ACC+[ m ]+1 TO — SWAP [m] 说明: 运算过程: 影响标志位 OV √ Z √ AC √ C √ 交换数据存储器的高低字节,结果放入数据存储器 本指令是将数据存储器的低四位和高四位互换,再将结果送回数据存储器。 [m].7~[m].4 ↔[m].3~[m].0 TO — SWAPA [m] 说明: 运算过程: PDF — PDF — OV — Z — AC — C — 交换数据存储器的高低字节,结果放入累加器 本指令是将数据存储器的低四位和高四位互换,再将结果送回累加器。 ACC.3~ACC.0 [m].7~[m].4 ACC.7~ACC.4 [m].3~[m].0 影响标志位 TO — SZ 说明: [m] 运算过程: 影响标志位 [m] 运算过程: 影响标志位 Z — AC — C — PDF — OV — Z — AC — C — 数据存储器送至累加器,如果内容为“0”,则跳过下一条指令 本指令是判断存储器内的数值是否为 0,若为 0 则跳过下一行指令,即放弃在目前指令执 行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期)。并把 存储器内值送到累加器,而存储器的值保持不变。否则执行下一条指令(一个指令周期)。 如果[m] = 0,跳过下一行指令,并 ACC [m]。 TO — Rev.1.20 OV — 如果数据存储器为“0”,则跳过下一条指令 本指令是判断数据存储器内的数值是否为 0,为 0 则跳过下一行指令,即放弃在目前指令 执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期)。否 则执行下一条指令(一个指令周期)。 如果 [m] = 0, 跳过下一行指令。 TO — SZA 说明: PDF — PDF — OV — Z — 28 AC — C — 2008-4-18 HT48R062/HT48C062 SZ 说明: [m]. i 运算过程: 影响标志位 如果数据存储器的第 i 位为“0”,则跳过下一条指令 本指令是判断存储器内第 i 位值是否为 0,若为 0 则跳过下一行指令,即放弃在目前指令 执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期)。否 则执行下一条指令(一个指令周期)。 如果 [m].i = 0,跳过下一行指令。 TO — TABRDC [m] 说明: 运算过程: PDF — OV — Z — AC — C — 读取 ROM 当前页的内容,并送至数据存储器和 TBLH 本指令是将表格指针指向程序寄存器当前页,将低位送到存储器,高位直接送到 TBLH 寄 存器内。 [m] 程序存储器低四位 TBLH程序存储器高四位 影响标志位 TO — TABRDL [m] 说明: 运算过程: PDF — OV — Z — AC — C — 读取 ROM 最后一页的内容,并送至数据存储器和 TBLH 本指令是将 TABLE 指针指向程序寄存器最后页,将低位送到存储器,高位直接送到 TBLH 寄存器内。 [m] 程序存储器低四位 TBLH程序存储器高四位 影响标志位 TO — XOR A, [m] 说明: 运算过程: 影响标志位 AC — C — PDF — OV — Z √ AC — C — PDF — OV — Z √ AC — C — 累加器与数据存储器做“异或”运算,结果放入累加器 本指令是把累加器值与立即数做逻辑异或,结果放到累加器。 ACCACC “XOR” x TO — Rev.1.20 Z — 累加器与数据存储器做“异或”运算,结果放入数据存储器 本指令是把累加器值、数据存储器值做逻辑异或,结果放到数据存储器。 [m]ACC “XOR” [m] TO — XOR A, x 说明: 运算过程: 影响标志位 OV — 累加器与立即数做“异或”运算,结果放入累加器 本指令是把累加器值、 数据存储器值做逻辑异或,结果放到累加器。 ACCACC “XOR” [m] TO — XORM A, [m] 说明: 运算过程: 影响标志位 PDF — PDF — OV — Z √ 29 AC — C — 2008-4-18 HT48R062/HT48C062 封装信息: 封装信息: 16-pin DIP (300mil)外形尺寸 外形尺寸 A B 1 6 9 8 1 H C D E a G 标号 A B C D E F G H I ɑ Rev.1.20 I F 尺寸( ) 尺寸(mil) Min Nom Max 745 240 125 125 16 50 -295 335 0° ------100 ---- 775 260 135 145 20 70 -315 375 15° 30 2008-4-18 HT48R062/HT48C062 16-pin NSOP (150mil)外形尺寸 外形尺寸 A 1 6 9 B 8 1 C C ' G D a F E 标号 A B C C’ D E F G H ɑ Rev.1.20 H 尺寸( ) 尺寸(mil) Min Nom Max 228 149 14 386 53 -4 22 4 0° -----50 ----- 224 157 20 394 69 -10 28 12 10° 31 2008-4-18 HT48R062/HT48C062 包装带和卷轴规格: 包装带和卷轴规格: 卷轴尺寸: D T 2 A C B T 1 SOP 16N(150mil) 标号 A B C 描述 卷轴外圈直径 卷轴内圈直径 轴心直径 D T1 缝宽 轮缘宽 T2 卷轴宽 Rev.1.20 尺寸(mm) 尺寸 330±1.0 62±1.5 13.0+0.5 -0.2 2±0.5 16.8+0.3 -0.2 22.2±0.2 32 2008-4-18 HT48R062/HT48C062 运输带尺寸: 运输带尺寸: P 0 D P 1 t E F W D 1 C P B 0 K 0 A 0 SOP 16N(150mil) 标号 W P E F D D1 P0 P1 A0 B0 K0 t C Rev.1.20 描述 运输带宽 空穴间距 穿孔位置 空穴至穿孔距离(宽度) 穿孔直径 空穴中之小孔直径 穿孔间距 空穴至穿孔距离(长度) 空穴长 空穴宽 空穴深 传输带厚度 覆盖带宽度 尺寸(mm) 尺寸 16.0±0.3 8.0±0.1 1.75±0.1 7.5±0.1 1.55±0.1 1.5+0.25 4±0.1 2±0.1 6.5±0.1 10.3±0.1 2.1±0.1 0.3±0.05 13.3 33 2008-4-18 HT48R062/HT48C062 盛群半导体股份有限公司( 盛群半导体股份有限公司 (总公司) 总公司) 新竹市科学工业园区研新二路 3 号 电话: 886-3-563-1999 传真: 886-3-563-1189 网站: www.holtek.com.tw 盛群半导体股份有限公司( 盛群半导体股份有限公司( 台北业务处) 台北业务处 ) 台北市南港区园区街 3 之 2 号 4 楼之 2 电话: 886-2-2655-7070 传真: 886-2-2655-7373 传真: 886-2-2655-7383 (International sales hotline) 盛扬半导体有限公司( 盛扬半导体有限公司( 上海业务处 上海 业务处) 业务处 ) 上海宜山路 889 号 2 号楼 7 楼 200233 电话: 021-6485-5560 传真: 021-6485-0313 网站: www.holtek.com.cn 盛扬半导体有限公司( 盛扬半导体有限公司( 深圳业务处 深圳 业务处) 业务处 ) 深圳市南山区科技园科技中三路与高新中二道交汇处生产力大楼 A 单元五楼 518057 电话: 0755-8616-9908,8616-9308 传真: 0755-8616-9533 ISDN: 0755-8615-6181 盛扬半导体有限公司( 盛扬半导体有限公司( 北京业务处 北京 业务处) 业务处 ) 北京市西城区宣武门西大街甲 129 号金隅大厦 1721 室 100031 电话: 010-6641-0030, 6641-7751, 6641-7752 传真: 010-6641-0125 盛扬半导体有限公司( 盛扬半导体有限公司( 成都业务处 成都 业务处) 业务处 ) 成都市东大街 97 号香槟广场 C 座 709 室 610016 电话: 028-6653-6590 传真: 028-6653-6591 Holmate Semiconductor, Inc.( ( 北美业务处 北美业 务处) 务处) 46712 Fremont Blvd., Fremont, CA 94538 电话: 510-252-9880 传真: 510-252-9885 网站: www.holmate.com Copyright 2006 by HOLTEK SEMICONDUCTOR INC. 使用指南中所出现的信息在出版当时相信是正确的,然而盛群对于说明书的使用不负任何责任。文中 提到的应用目的仅仅是用来做说明,盛群不保证或表示这些没有进一步修改的应用将是适当的,也不 推荐它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救 生、维生器件或系统中做为关键器件。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请 参考我们的网址 http://www.holtek.com.tw Rev.1.20 34 2008-4-18