HT48E30 内置 EEPROM 输入/输出型八位 MTP 单片机 盛群知识产权政策
专利权 盛群半导体公司在全球各地区已核准和申请中之专利权至少有 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.40
1
2006-10-4
HT48E30 技术相关信息
工具信息 FAQs 应用范例 -HA0086S HT48E MCU 系列 1K 位 EEPROM Data Memory 的读写 -HA0087S HT48E MCU 系列 1K 位 EEPROM Data Memory 的读写 -HA0088S HT48E MCU 系列 2K 位 EEPROM Data Memory 的读写 -HA0089S HT48E MCU 系列 2K 位 EEPROM Data Memory 的读写
-
使用汇编语言 使用 C 语言 使用汇编语言 使用 C 语言
特性
工作电压: fsys = 4MHz :2.2V – 5.5V fsys = 8MHz :3.3V – 5.5V 低电压复位功能 最多可有 23 个双向输入/输出口 1 个与输入/输出共用引脚的外部中断输入 8 位可编程定时/计数器,具有溢出中断和 8 级预分频器 内置晶体和 RC 振荡电路 看门狗定时器 1,000 次可擦/写 MTP 程序存储器 2048×14 程序存储器 ROM(MTP) 128×8 数据存储器 EEPROM 96×8 数据存储器 RAM 蜂鸣器驱动并支持 PFD HALT 和唤醒功能可降低功耗 4 层硬件堆栈 在 VDD=5V,系统时钟为 8MHz 时,指令周 期为 0.5 s 位操作指令 查表指令,表格内容字长 14 位 63 条指令 106 次可擦/写 EEPROM 数据存储器 EEPROM 数据有效期>10 年 所有指令在 1 或 2 个指令周期内完成 在线烧写功能(ISP) 24/28-pin SKDIP/SOP 封装
概述
HT48E30 是一款八位高性能精简指令集单片机,专为经济型多输入/输出控制的产品设计. 拥有低功耗,I/O 口稳定性高,定时器功能,振荡选择,省电和唤醒功能,看门狗定时器,蜂鸣器驱 动,以及低价位等优势,使此款多功能芯片可以广泛地适用于各种应用,例如工业控制,消费类产品, 子系统控制器等.
Rev.1.40
2
2006-10-4
HT48E30 方框图
IN T /P G 0
In te rru p t C ir c u it S T A C K 4 L e v e ls T M R 0 IN T C T M R 0 C P G 0 In s tr u c tio n R e g is te r M U X W D T S D A T A M e m o ry W D T P r e s c a le r W D T M U X M U X P r e s c a le r T M R /P C 0 M
U X
fS
Y S
P ro g ra m M e m o ry
P ro g ra m C o u n te r
E N /D IS
fS
Y S
/4
M P
W D T O S C P A C In s tr u c tio n D e c o d e r A L U T im in g G e n e ra to r S h ifte r M U X P A B Z /B Z P B C P G 1 P G 2 P B P C C O S C 2 O S R E V D V S C 1 S D S A C C P C P O R T C P O R T B P B 0 ~ P B 7 P O R T A
P A 0 ~ P A 7
S T A T U S
P C 0 ~ P C 5
D a ta M e m o ry E E P R O M
E E C R
P G C P G
P O R T G
P G 0
引脚图
P B 5 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 P B 4 P B 5 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 P B 4 P A 3 P A 2 P A 1 P A 0 P B 3 P B 2 P B 1 /B Z P B 0 /B Z V S S P G 0 /IN T 2 4 2 3 2 2 2 1 2 0 1 9 1 8 1 7 1 6 1 5 1 4 1 3 P B 6 P B 7 P A 4 P A 5 P A 6 P A 7 O S C 2 O S C 1 V D D R E S P C 2 P C 0 /T M R P A 3 P A 2 P A 1 P A 0 P B 3 P B 2 P B 1 /B Z P B 0 /B Z V S S P G 0 /IN T P C 0 /T M R P C 1 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 9 1 8 1 7 1 6 1 5 P B 6 P B 7 P A 4 P A 5 P A 6 P A 7 O S C 2 O S C 1 V D D R E S P C 5 P C 4 P C 3 P C 2
H T 4 8 E 3 0 2 4 S K D IP -A /S O P -A
H T 4 8 E 3 0 2 8 S K D IP -A /S O P -A
Rev.1.40
3
2006-10-4
HT48E30 引脚说明
引脚名称 PA0~PA7 输入输出 输入/输出 掩膜选项 上拉电阻* 唤醒功能 斯密特触发输入 上拉电阻* PB0 或 BZ PB1 或 BZ — 上拉电阻* 说明 双向 8 位输入/输出口.每一位能被掩膜选项设置为唤 醒输入.软件指令确定 CMOS 输出,或带上拉电阻的 斯密特触发输入(由上拉电阻位选项确定). 双向 8 位输入/输出口.软件指令确定 CMOS 输出,或 带 上 拉 电 阻 的斯密特触发输入(由上拉电阻选项确 定).PB0 和 PB1 与 BZ 和 BZ 共用一个引脚.一旦 PB0 和 PB1 被选为蜂鸣器输出,输出信号来自内部 PFD 发生器(与定时/计数器共用). 负电源,接地. 双向输入/输出口.软件指令确定 CMOS 输出,或带上 拉电阻的斯密特触发输入(由上拉电阻位选项确定). 外部中断和 PG0 共用一个引脚.外部中断输入信号下 降沿有效. 双向输入/输出口.软件指令确定 CMOS 输出,或带上 拉电阻的斯密特触发输入(由上拉电阻位选项确定). 定时器输入与 PC0 共用一个引脚. 斯密特触发复位输入端,低电平有效. 正电源. OSC1 和 OSC2 采用 RC 振荡或晶体振荡(由掩膜选项 确定)提供系统时钟.在 RC 方式下 OSC2 是一个系统 时钟四分频的输出口.
PB0/BZ PB1/ BZ PB2~PB7 VSS PG0/ INT
输入/输出
— 输入/输出
PC0/TMR PC1~PC5
RES VDD
输入/输出 输入 — 输入 输出
上拉电阻* — — 晶体振荡或 RC 振荡
OSC1 OSC2
注意:
"*"所有输入/输出(PA,PB,PC,PG)的上拉电阻由一个选择位控制. PA 端口的 CMOS 或斯密特触发选择也是以整个端口(8 位)为单位的.
极限参数
电源供应电压 …… VSS - 0.3V 至 Vss + 6.0V 端口输入电压 …… Vss - 0.3V 至 VDD + 0.3V 端口总灌电流 ………………………. 150mA 总功耗 ……………………………. 500mW 储存温度 ………-50℃至 125℃ 工作温度 ……… -40℃至 85℃ 端口总源电流 ………. -100mA
注意:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无法预期芯片在上述标示范围外的工作状 态,而且若长期在标示范围外的条件下工作,可能影响芯片的可靠性.
Rev.1.40
4
2006-10-4
HT48E30 D.C.特性
符号 VDD IDD1 IDD2 IDD3 ISTB1 ISTB2 VIL1 VIH1 VIL2 VIH2 VLVR IOL IOH RPH 参数 工作电压 工作电流 (晶体振荡) 工作电流 (RC 振荡) 工作电流 (晶体振荡,RC 振荡) 静态电流 (看门狗打开) 静态电流 (看门狗关闭) 输入/输出口的低电平 输入电压, 输入/输出口的高电平 输入电压, 低 电 平 输 入 电 压 ( RES ) 高 电 平 输 入 电 压 ( RES ) 低电压复位 输入/输出口灌电流 输入/输出口源电流 上拉电阻 VDD — — 3V 5V 3V 5V 5V 3V 5V 3V 5V — — — — — 3V 5V 3V 5V 3V 5V 测试条件 条件 fsys=4MHZ fsys=8MHZ 无负载 Fsys=4MHZ 无负载 fsys=4MHZ 无负载 fsys=8MHZ 无负载* 暂停模式 无负载* 暂停模式 — — — — LVR 打开 VOL=0.1VDD VOL=0.1VDD VOH=0.9VDD VOH=0.9VDD — — 最小 2.2 3.3 — — — — — — — — — 0 0.7VDD 0 0.9VDD 2.7 4 10 -2 -5 20 10 典型 — — 0.6 2 0.8 2.5 4 — — — — — — — — 3.0 8 20 -4 -10 60 30 最大 5.5 5.5 1.5 4 1.5 4 8 10 15 3 5 0.3VDD VDD 0.4VDD VDD 3.3 — — — — 100 50 Ta=25℃ 单位 V V mA mA mA mA mA
A A A A
V V V V V mA mA mA mA K K
注意:"*"所有的测试都参照 I/O 口被设置为输出并输出低电平的情况进行.
Rev.1.40
5
2006-10-4
HT48E30 A.C.特性
符号 fSYS1 fSYS2 fTIMER tWDTOSC tWDT1 tWDT2 tRES tSST tINT 参数 系统时钟(晶体振荡) 系统时钟(RC 振荡) 定时器输入频率(TMR) 看门狗振荡器周期 看门狗溢出周期(WDT OSC) 看门狗溢出周期(系统时钟) 外部复位低电平脉宽 系统启动延时周期 中断脉冲宽度
VDD — — — — — — 3V 5V 3V 5V - - - -
Ta=25℃ 测试条件 条件 2.2V~5.5V 3.3V~5.5V 2.2V~5.5V 3.3V~5.5V 2.2V~5.5V 3.3V~5.5V — — WDT 无预分频 WDT 无预分频 - HALT 模式唤醒 - 最小 400 400 400 400 0 0 45 32 11 8 - 1 - 1 典型 — — — — — — 90 65 23 17 1024 - 1024 - 最大 4000 8000 4000 8000 4000 8000 180 130 46 33 - - - - 单 位 kHZ kHZ kHZ kHZ kHZ kHZ s s ms ms tSYS s tSYS s
系统功能说明
指令系统 HT48E30 系统时钟由晶体振荡器或 RC 振荡器产生.系统内部对此频率进行四分频,产生四个不重 叠的时钟周期.一个指令周期包括四个系统时钟周期.
S y s te m O S C 2 (R C C lo c k o n ly ) P C P C P C + 1 P C + 2 T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4
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 )
F e tc h IN S T (P C + 2 ) E x e c u te IN S T (P C + 1 )
指令执行时序 指令读取与执行是以流水线方式来进行的.这种方式允许在一个指令周期进行读取指令操作,而在 下一个指令周期里进行解码与执行该指令.这种流水线方式能在一个指令周期里有效地执行一个指令. 但是,如果指令是要改变程序计数器,就需要花两个指令周期来完成这一条指令.
Rev.1.40
6
2006-10-4
HT48E30
程序计数器(Program Counter — PC) 程序计数器控制存放在程序存储器中的要被执行的指令序列.程序计数器可寻址程序存储器的所有 地址. 通过访问一个程序存储单元来取出指令代码后,PC 的值便会加 1.然后程序计数器便会指向下一条 指令代码所在的程序存储单元. 当执行一条跳转指令,条件跳转指令,装载 PCL 寄存器,子程序调用,初始复位,内部中断,外部 中断,或从一个子程序返回,PC 会通过装载相应的地址来执行程序转移. 通过指令实现条件跳转,一旦条件满足,那么在当前指令执行期间取出的下一条指令会被放弃,而 替代它的是一条空指令周期(dummy cycle)来获取正确的指令,接着就执行这条指令.否则就执行下一条指 令.程序计数器的低位字节(PCL;06H)是可读写的寄存器.将数据赋值到 PCL 会执行一个短跳转.这 种跳转只能在程序存储器的当前页范围内. 当一个控制转移发生时,系统也会插入一个空指令周期. 模 式 程序计数器 *7 *6 *5 *4 0 0 0 0 0 0 0 0 0 0 0 0 Program Counter+2 @7 @6 @5 @4 #7 #6 #5 #4 S7 S6 S5 S4 程序计数器
注意:*10 ~ *0 :程序计数器位 #10 ~ #0 :指令代码位 S10 ~ S0 :堆栈寄存器位 @7 ~ @0 :PCL 位
初始化复位 外部中断 定时/计数器 条件跳转 装载 PCL 跳转,子程序调用 从子程序返回
*10 0 0 0 *10 #10 S10
*9 0 0 0 *9 #9 S9
*8 0 0 0 *8 #8 S8
*3 0 0 1 @3 #3 S3
*2 0 1 0 @2 #2 S2
*1 0 0 0 @1 #1 S1
*0 0 0 0 @0 #0 S0
在线烧写(In System Programing) 在线烧写允许对实际应用电路板上 HT48EXX 单片机进行烧写和重复烧写操作,这样有利于使用者 在应用开发实验过程中节省时间和成本.ISP(在线烧写)使用 3 线接口与 HT48EXX 单片机进行连接, 对芯片内部的程序存储器和 EEPROM 数据存储器进行重复烧写操作. 引脚名称 PA0 PA4 RES VDD VSS 功能 SDATA SCLK RESET VDD VSS 说明 串行数据输入/输出 串行时钟输入 复位 电源 地 ISP 引脚定义
Rev.1.40
7
2006-10-4
HT48E30
程序存储器(Program Memory — ROM) 程序存储器被用来存放要执行的指令代码.还包括数据,中断向量.一共为 2048×14 位,可以由程 序计数器或表格指针来寻址. 在程序存储器中某几个地址被保留作为特殊用途. 地址 000H 此地址保留给程序初始化之用.当系统复位时,程序会从 000H 地址开始执行. 地址 004H 该地址保留给外部中断服务使用.当中断是开放的,且堆栈又未满,则一旦 INT 端被下降沿触发触 发,就能产生中断,程序会从 004H 地址开始执行外部中断服务程序. 地址 008H 该地址保留给定时/计数器中断服务使用.当中断是开放的,且堆栈又未满,则一旦定时/计数器发生 溢出时,就能产生中断,程序会从 008H 地址开始执行中断服务程序. 表格区 程序存储器内的任何地址都可被用来作为查表使用.查表指令为 TABRDC [m] 与 TABRDL [m]. TABRDC [m]是查表当前页的数据 [ 1 页=256 个字 ( word )].TABRDL [m]是查表最后一页的数据.[m] 为数据存放的地址.在执行 TABRDC [m]指令后,将会传送当前页的一个字的低位字节到[m],而这个字 的高位字节传送到 TBLH(08H).只有表格中的低位字节被送到目标地址中,而表格中的高位字节的其 它位被传送到 TBLH 的低位部分,未用到的位为不定值.TBLH 为只读寄存器.而表格指针(TBLP; 07H)是可以读写的寄存器,用来指明表格地址.在访问表格以前,通过对 TBLP 寄存器赋值来指明表 格地址.TBLH 只能读出而不能存储.如果主程序和 ISR(中断服务程序)二者都使用查表指令,那么在 主程序中的 TBLH 的内容可能会被 ISR 中的查表指令改变而产生错误.换句话说,应该避免在主程序和 ISR(中断服务程序)中同时使用查表指令.但是,如果主程序和 ISR(中断服务程序)二者都必需使用 查表指令,那么中断应该在查表指令前被禁止,直到 TBLH 被备份好.查表指令要花两个指令周期来完 成这一条指令的操作.按照用户的需要,这些区域可以作为正常的程序存储器来使用.
0 0 0 H 0 0 4 H 0 0 8 H D e v ic e In itia liz a tio n P r o g r a m E x te r n a l In te r r u p t S u b r o u tin e T im e r /E v e n t C o u n te r In te r r u p t S u b r o u tin e
n 0 0 H n F F H
P ro g ra m M e m o ry L o o k - u p T a b le ( 2 5 6 w o r d s )
7 0 0 H 7 F F H
L o o k - u p T a b le ( 2 5 6 w o r d s ) 1 4 b its N o te : n ra n g e s fro m 0 to 7
程序存储器
指令 TABRDC [m] TABRDL [m]
*10 P10 1
*9 P9 1
*8 P8 1
*7 @7 @7
表格地址 *6 *5 *4 @6 @5 @4 @6 @5 @4
*3 @3 @3
*2 @2 @2
*1 @1 @1
*0 @0 @0
表格区
注意:*10 ~ *0 :表格地址 @7 ~ @0 :表格指针 P10~P8 :当前程序计数器
Rev.1.40
8
2006-10-4
HT48E30
堆栈寄存器(Stack Register — STACK) 堆栈寄存器(STACK)是一个用来保存 PC 值的特殊存储空间.堆栈有 4 级组成,堆栈寄存器既不 是数据存储器的一部分,也不是程序存储器的一部分,而且它既不能读出,也不能写入.任何一级堆栈 的使用是由堆栈指针(SP)来确定.堆栈指针也不能读出与写入.一旦发生子程序调用或中断响应时, 程序计数器(PC)的值会被压入堆栈.在子程序调用结束或从中断返回时, 通过执行一条返回指令(RET 或 RETI),堆栈将原先压入堆栈的内容弹出,重新装入程序计数器中.在系统复位后,堆栈指针会指向 堆栈顶部. 如果堆栈满了,并且发生了不可屏蔽的中断,那么中断请求标志将会被记录下来,但是,该中断 的响应还是会被禁止,直到堆栈指针(由 RET 或 RETI)发生递减时,中断才会被响应.这个功能能防止 堆栈溢出,使得程序员易于使用这种结构.同样地,堆栈已满,接着又执行一个子程序调用(CALL), 那么堆栈会产生溢出,而使首先进入堆栈的内容将会 In d ir e c t A d d r e s s in g R e g is te r 0 0 0 H 丢失.只有最后的 4 个返回地址会被保留着. 数据存储器(Data Memory — RAM) 数据存储器由 115×8 位组成.它可分成两个功能 组:特殊功能寄存器和通用数据存储区 96×8 位.这两 个功能组的大部分单元可以读写,而某些单元只能读 出,不能写入. 20H 以前以前的未用到的单元都被保留为将来进 一步扩展使用.读取这些被保留单元的值,都将返回 00H.通用数据存储器地址 20H-7FH 作为程序数据和 控制信息使用. 所有的 RAM 区单元都能直接执行算术,逻辑, 递增,递减和移位等运算.除了某些特殊的位以外, RAM 中的每一位都可以由 SET[m].i 和 CLR[m].i 指令来置位和复位.它们都可通过存储器指针寄存器 (MP;01H) 间接寻址来存取.EEPROM 数据存储 器的控制寄存器在 BANK1 的[40H]单元. 间接寻址寄存器(Indirect Addressing Register) 地址00H和02H是作为间接寻址寄存器.它们没有 实际的物理空间.任何对[00H] 和[02H]的读/写操作, 都会访问由MP0(01H)和MP1(03H)所指向的RAM单 元.间接地读取[00H]或[02H],将会返回00H,而间接 地写入[00H]或[02H],则不会产生任何结果.间接寻址 寄存器之间不支持数据传送功能.间接寻址指针MP0 和MP1的宽度都是7位,它们与间接寻址寄存器相结合 用来间接访问RAM.MP0只能应用于数据存储区的 BANK0,而MP1能应用于数据存储区的BANK0和 BANK1.
0 1 H 0 2 H 0 3 H 0 4 H 0 5 H 0 6 H 0 7 H 0 8 H 0 9 H 0 A H 0 B H 0 C H 0 D H 0 E H 0 F H 1 0 H 1 1 H 1 2 H 1 3 H 1 4 H 1 5 H 1 6 H 1 7 H 1 8 H 1 9 H 1 A H 1 B H 1 C H 1 D H 1 E H 1 F H 2 0 H P G P G C G e n e ra l P u rp o s e D a ta M e m o ry (9 6 B y te s ) B a n k 0 4 0 H : U n u s e d R e a d a s "0 0 " E E C R P A P A C P B P B C P C P C C T M R T M R C S p e c ia l P u r p o s e D a ta M e m o ry M P 0 In d ir e c t A d d r e s s in g R e g is te r 1 M P 1 B P A C C P C L T B L P T B L H W D T S S T A T U S IN T C
7 F H
B a n k 1
数据存储器
Rev.1.40
9
2006-10-4
HT48E30
累加器(Accumulator) 累加器(ACC)与算术逻辑单元(ALU)紧密联系.它对应于 RAM 的地址 05H,并能与立即数进行 操作,在存储器间的数据传送都必须经过累加器. 算术逻辑单元(Arithmetic and logic unit — ALU) 算术逻辑单元是执行 8 位算术逻辑运算的电路.它提供如下的功能: 算术运算 ( ADD,ADC,SUB,SBC,DAA ) 逻辑运算 ( AND,OR,XOR,CPL ) 移位运算 ( RL,RR,RLC,RRC ) 递增和递减运算 ( INC,DEC ) 分支跳转 ( SZ,SNZ,SIZ,SDZ 等) 算术逻辑单元 ALU 不仅会保存运算的结果而且会改变状态寄存器. 状态寄存器(Status Register — 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 1 2 3 4 5 6 7 符号 C AC Z OV PDF TO — — 功 能 在加法运算中结果产生了进位或在减法运算中结果不产生借位,那么 C 被置位;反之,C 被清零.它也可被一个循环移位指令而影响. 在加法运算中低四位产生了进位或减法运算中在低四位不产生借位, AC 被置位;反之,AC 被清零. 算术运算或逻辑运算的结果为零则 Z 被置位;反之,Z 被清零. 如果运算结果向最高位进位,但最高位并不产生进位输出,那么 OV 被置位;反之,OV 被清零. 系统上电或执行了 CLR WDT 指令,PDF 被清零.执行 HALT 指令 PDF 被置位. 系统上电或执行了 CLR WDT 指令或 HALT 指令,TO 被清零.WDT 溢出,TO 被置位. 未定义,读出为零 未定义,读出为零 状态寄存器 Status(0AH)
另外,在进入中断子程序或执行子程序调用时,状态寄存器的内容不会自动压入堆栈.如果状态寄 存器的内容是重要的,而且子程序会改变状态寄存器的内容,那么程序员必须事先将其保存好,以免被 破坏.
Rev.1.40
10
2006-10-4
HT48E30
中 断(Interrupt) 单片机提供一个外部中断和内部定时器/计数器中断.中断控制寄存器(INTC;0BH)包含了中断控 制位,用来设置中断允许/禁止及中断请求标志. 一旦有中断子程序被服务,所有其它的中断将被禁止(通过清零 EMI 位).这种机制能防止中断嵌 套.这时如有其它中断请求发生,这个中断请求的标志会被记录下来.如果在一个中断服务程序中有另 一个中断需要服务的话,程序员可以设置 EMI 位及 INTC 所对应的位来允许中断嵌套服务.如果堆栈已 满,该中断请求将不会被响应.即使相关的中断被允许,也要到堆栈指针发生递减时才会响应.如果需 要立即得到中断服务,则必须避免让堆栈饱和. 位 0 1 2 3 4 5 6 7 符号 EMI EEI ETI — EIF TF — — 功 能 主中断控制位(1=允许,0=禁止) 外部中断控制位(1=允许,0=禁止) 定时/计数器中断控制位(1=允许,0=禁止) 未使用位,读出为零 外部中断请求标志位(1=有, 0=无) 定时/计数器中断请求位(1=有, 0=无) 未使用位,读出为零 未使用位,读出为零 中断控制寄存器 INTC(0BH) 所有的中断都具有唤醒功能.当一个中断被服务时,会产生一个控制传送:通过将程序计数器 (PC)压入堆栈,然后转移到中断服务程序的入口.只有程序计数器(PC)的内容能压入堆栈.如果寄 存器和状态寄存器的内容会被中断服务程序改变,从而破坏主程序的预定控制,那么程序员必须事先将 这些数据保存起来. 外部中断是由 INT 脚上的电平由高到低的变化触发的,相关的中断请求位(EIF,INTC 的第 4 位) 被置位.当中断允许,堆栈也没有满,一个外部中断触发时,将会产生地址 04H 的子程序调用.中断请 求标志(EIF)位和 EMI 位将也会被清零来禁止中断的嵌套. 内部定时/计数器中断发生时,会设置定时/计数器中断请求标志位(TF,INTC 的第五位),中断的 请求是由定时器溢出产生的.当中断允许,堆栈又未满,并且 TF 已被置位,就会产生地址 08H 的子程序 调用.该中断请求标志位(TF)被复位并且 EMI 位将被清零,以便禁止中断的嵌套. 单片机在执行中断子程序期间,其他的中断响应会被暂停,直到 RETI 指令被执行或是 EMI 位和相 关的中断控制位都被置为 1(堆栈未满时).若要从中断子程序返回时,只要执行 RET 或 RETI 指令即 可.RETI 指令将会自动置位 EMI 位来允许中断服务,而 RET 则不能自动置位 EMI. 如果中断在二个连续的 T2 脉冲的上升沿间发生,如果中断响应被允许的话,那么在二个 T2 脉冲 后,该中断会被服务.如果同时发生中断服务请求,那么下列表中列出了中断服务优先等级.这种优先 级也可以通过 EMI 位的复位来屏蔽. NO a b 中 断 源 外部中断 定时/计数器溢出 优 先 级 1 2 中断 04H 08H
一旦中断请求标志位(EEI,ETI)被置位,它们将在 INTC 中被保留下来,直到相关的中断被服务 或由软件指令来清零.建议不要在中断子程序中使用"CALL"指令来调用子程序,因为它可能会破坏原来 的控制序列,而中断经常随机发生或某一个确定的应用程序可能要求立即服务.基于上述情况,如果只 剩下一个堆栈,若此时中断不能很好地被控制,而且在这个中断服务程序中又执行了 CALL 子程序调 用,则会造成堆栈溢出而破坏原先的控制序列.
Rev.1.40
11
2006-10-4
HT48E30
振荡器(Oscillator Configuration)
V
D D
HT48E30 有 2 种振荡电路.这 2 种振荡器都是针对系统时钟而 O S C 1 O S C 1 设计的,它们是外部 RC 振荡器和外部晶体振荡器,可由掩膜选项 4 7 0 p F 设置.不管所选的是哪一种振荡器,其信号都可以支持系统的时 钟.进入暂停模式会使系统时钟工作停止.进入暂停模式还可以忽 fS Y S /4 O S C 2 O S C 2 N M O S O p e n D r a in 视外部信号的,以降低功耗. C r y s ta l O s c illa to r R C O s c illa to r 如果使用 RC 型振荡器,在 OSC1 和 VDD 之间需要一个外部 系统振荡器 电阻,其阻值范围为 24k 至 1M.在 OSC2 端可获得系统时钟四 分频信号,它可用于同步外部逻辑电路.RC 型振荡方式是一种低 成本的方式,可是,振荡频率会随着 VDD,温度和制造漂移而不同.因此,在用于需要非常精确振荡频 率的计时操作场合,我们并不建议使用 RC 型振荡器. 如果选用的是晶体振荡器,那么在 OSC1 和 OSC2 之间需要连接一个晶体,用来提供晶体振荡器所需 要的反馈和相移.另外,在 OSC1 和 OSC2 之间还可以用谐振器代替晶体振荡器,来产生系统时钟,但是 在 OSC1 和 OSC2 需要多连接两个电容器至地. WDT 振荡器是 IC 内部自由振荡的 RC 型振荡器,不需要任何外部元件.即使在系统进入暂停模式, 系统时钟被停止,但这个 RC 振荡器仍会运作.(其振荡周期大约为 65s/5V).如欲节省电源,可在掩 膜选项中关闭 WDT 振荡器.
Rev.1.40
12
2006-10-4
HT48E30
看门狗定时器(Watchdog Timer — WDT) WDT 的时钟源是由一个专用的 RC 振荡器(WDT 振荡器)或是由指令周期(系统时钟 4 分频)来实 现的,由掩膜选项来决定的.WDT 是用来防止程序不正常运行或是跳到未知或不希望去的地址,而导致 不可预见的结果.WDT 可以被掩膜选项禁止.如果 WDT 定时器被禁止,所有与 WDT 有关的操作都是 空操作. 如果设置了内部 WDT 振荡器(以 65s/5V 为周期的 RC 振荡器)的话,WDT 的值会先除以 256(8 级)来产生大约 18.6ms/5V 的溢出时间,这个溢出时间会因为温度,VDD,以及芯片参数的变化而变化. 如果启动 WDT 的预分频器,则可实现更长的溢出时间.写数据到 WS2,WS1,WS0 (WDTS 的 2,1,0 位) 会产生不同的溢出时间,举例来说,如果 WS2,WS1,WS0 的值都为 1,其分频级数最大,为 1:128, 溢出时间最长约 2.4s/5V.如果 WDT 被禁止,那么 WDT 的时钟来源可来自指令时钟,其运作与 WDT 振 荡器一样.但当在 HALT 状态时,来源于指令时钟的 WDT 会在暂停模式时停止计数并失去保护功能. 在这种情况下,只能由外部逻辑来重新启动系统.WDTS 的高四位及其第 3 位保留给用户定义标志来使 用,程序员可以利用这些标志来指示某些特殊的状态.
S y s te m C lo c k /4
O p tio n S e le c t W D T O S C 8 - b it C o u n te r
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 D T T im e - o u t
W S 0 ~ W S 2
看门狗定时器
如果单片机工作在干扰很大的环境中,那么强烈建议使用片内 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
WSO 0 1 0 1 0 1 0 1
分频率 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128
看门狗定时器预置寄存器 WDTS(09H)
Rev.1.40
13
2006-10-4
HT48E30
暂停模式(Power Down Operation — 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 口的每一位都可以通过掩膜选项来单独设定为对系 统的唤醒.如果唤醒是来自于输入/输出口的信号变化,程序会重新继续执行下一条命令.如果唤醒是来 自于中断,那么有两种情况可能发生:如果相关的中断被禁止或中断是允许的,但堆栈已满,那么程序 将继续执行下条指令,如果中断允许并且堆栈未满,那么这个中断响应就发生了.如果在进入 HALT 模 式以前,中断请求标志位被置"1",那么相关的中断唤醒功能被禁止.一旦唤醒事件发生,要花 1024tsys (系统时钟周期),系统重新正常运行.换句话说,在唤醒后被插入了一个等待时间.如果唤醒是来自 于中断响应,那么实际的中断程序执行就被延迟了一个或一个以上的周期.但是如果唤醒导致下一条指 令执行,那么在一个等待周期结束后指令就立即被执行. 为了省电,在进入 HALT 模式之前必须要小心处理输入/输出口状态.
Rev.1.40
14
2006-10-4
HT48E30
复位(Reset) 有三种方法可以产生复位: 在正常运行时期由 RES 脚产生复位. 在 HALT 期间 RES 脚产生复位. 正常运行时,WDT 溢出复位. 在 HALT 期间 WDT 溢出是不同于其它的复位操作条件,因为它可执行 "热 复位",结果只能使程序计数器 PC 和堆栈指针 SP 复位,而别的寄存器均保持原 来的状态.在其他复位条件下,某些寄存器保持不变.当复位条件被满足时,极 大多数的寄存器被复位到"初始状态",通过测试 PDF 标志位和 TO 标志位,程序 能分辨不同的系统复位. TO 0 u 0 1 1 PDF 0 u 1 u 1 复 位 条 件 电源上电复位 正常运作时由 RES 复位 RES 时唤醒暂停模式 正常运作时发生看门狗定时器超时 由看门狗定时器唤醒暂停模式
V
D D
0 .0 1 m F * 1 0 0 k W R E S 1 0 k W 0 .1 m F *
复位电路
注意:"*"为了避免 噪声干扰,连接 RES引 脚的线应尽量短
注释:"u"表示未变化.
为保证系统振荡器起振并稳定运行,那么 SST(系统启动定时器)当系统复位(上电,WDT 定时溢 出或 RES )或从 HALT 状态被唤醒时,提供额外延迟 1024 个系统时钟脉冲.
H A L T W D T
R E S W a rm R e s e t
V D D R E S S S T T im e - o u t C h ip R e s e t tS
S T
O S C 1
S S T 1 0 - b it R ip p le C o u n te r S y s te m R e s e t
C o ld R e s e t
复位时序
复位电路结构
当系统复位时,SST 延迟被加到复位周期中.任何来自 HALT 的唤醒都将允许 SST 延迟. 系统复位时各功能单元的状态如下所示: 程序计数器(PC) 中断 预分频器 看门狗定时器 定时/计数器 0/1 输入/输出口 堆栈指针 SP 000H 禁止 清除 清除,复位后看门狗定时器开始计数 关闭 输入模式 指向堆栈顶端
Rev.1.40
15
2006-10-4
HT48E30
有关寄存器的状态如下: 寄存器 MP0 MP1 BP ACC Prgram Counter TBLP TBLH WDTS STATUS INTC TMR TMRC PA PAC PB PBC PC PCC PG PGC EECR 上电复位
-xxx xxxx -xxx xxxx 0000 0000 xxxx xxxx
正常运行期间 WDT 溢出 RES 端复位 -uuu uuuu -uuu uuuu -uuu uuuu -uuu uuuu 0000 0000 0000 0000 uuuu uuuu uuuu uuuu 000H uuuu uuuu xxuu uuuu 0000 0111 --lu uuuu --00 0000 xxxx xxxx 00-0 1000 1111 1111 1111 1111 1111 1111 1111 1111 --11 1111 --11 1111 ---- ---1 ---- ---1 1000 ---000H uuuu uuuu xxuu uuuu 0000 0111 --uu uuuu --00 0000 xxxx xxxx 00-0 1000 1111 1111 1111 1111 1111 1111 1111 1111 --11 1111 --11 1111 ---- ---1 ---- ---1 1000 ----
暂停模式 WDT 溢出* RES 端复位 -uuu uuuu -uuu uuuu -uuu uuuu -uuu uuuu 0000 0000 uuuu uuuu uuuu uuuu uuuu uuuu 000H uuuu uuuu xxuu uuuu 0000 0111 --01 uuuu --00 0000 xxxx xxxx 00-0 1000 1111 1111 1111 1111 1111 1111 1111 1111 --11 1111 --11 1111 ---- ---1 ---- ---1 1000 ---000H uuuu uuuu xxuu uuuu uuuu uuuu --11 uuuu --uu uuuu uuuu uuuu uu-u uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu --uu uuuu --uu uuuu ---- ---u ---- ---u uuuu ----
000H
xxxx xxxx xxxx xxxx 0000 0111 --00 xxxx --00 0000 xxxx xxxx 00-0 1000 1111 1111 1111 1111 1111 1111 1111 1111 --11 1111 --11 1111 ---- ---1 ---- ---1 1000 ----
注意:"*"表示"热复位. "U"表示不变化. "×"表示不确定.
Rev.1.40
16
2006-10-4
HT48E30
定时/计数器(Timer/Event Counter) 这个单片机提供一个定时/计数器.定时/计数器包含一个 8 位可编程的向上计数的计数器,时钟可以来自 外部的时钟源或是系统时钟. 如果采用内部系统时钟,时钟源来自系统时钟或由掩膜选项设定.在采用外部时钟输入的情况下, 允许用户计量外部事件,测量时间间隔或脉冲宽度,或产生一个精确的时基信号. 该定时/计数器使用外部时钟或内部时钟可以产生PFD信号,PFD信号频率可由等式fINT / [2×(256-N)] 计算.
(1 /2 ~ 1 /2 5 6 ) fS
Y S
8 - s ta g e P r e s c a le r 8 -1 M U X P S C 2 ~ P S C 0 T M R T E T M 1 T M 0 T O N P u ls e W id th M e a s u re m e n t M o d e C o n tro l T im e r /E v e n t C o u n te r 1 /2 O v e r flo w to In te rru p t B Z B Z f IN
T
D a ta B u s T M 1 T M 0 T im e r /E v e n t C o u n te r P r e lo a d R e g is te r R e lo a d
定时/计数器
有两个寄存器与定时/计数器相关联,即 TMR([0DH])和 TMRC([0EH]).有两个物理寄存器对 应 TMR 的位置.写入 TMR 会将初始值装入到定时/计数器的预置寄存器中,而读 TMR 则会获得定时/计 数器的内容.TMRC 是定时/计数器控制寄存器. TM0 和 TM1 位定义操作模式.外部事件计数模式用来记录外部事件,这意味着时钟来自外部 TMR 引脚.定时器模式是作为一个普通的定时器功能,时钟源来自 fINT 时钟.脉冲宽度测量模式能用来计算 外部引脚 TMR 上的高电平或低电平的宽度.计数是基于 fINT 时钟. 在外部事件计数或定时器模式中,一旦定时/计数器开始计数,它将会从当前定时/计数器中的数值开 始计数到 FFH.一旦产生溢出,计数器会从定时/计数器预置寄存器重新装载并且同时产生相应的中断请 求状态位(TF ;INTC 的第 5 位). 在脉冲宽度测量中,将 TON 和 TE 置为"1",如果 TMR 接收到从低到高的电平跳变(或从高到低的 变化,如果 TE 位被清零),就开始计数直到 TMR 返回到原来的电平并且复位 TON 位.测量的结果被 保留在定时/计数器中,甚至电平跳变再一次发生也不会改变.换句话说,一次只能测量一个周期.直到 TON 再次被置位,只要再接到跳变信号,那么测量过程会再次执行.要注意在这个操作模式中,定时/计 数器的启动计数不是根据逻辑电平,而是依据信号的边沿跳变触发.一旦发生计数器溢出,计数器会从 定时/计数器的预置寄存器重新装入,并引发出中断请求,这种情况与其另外两个模式一样.要使得计数 运行,只要将定时器启动位(TON;TMRC 的第 4 位)置 1.在脉宽测量模式中,TON 在测量周期结束 后自动被清零.但在另外两个模式中,TON 只能由指令来复位.定时/计数器的溢出是唤醒的信号之一. 不管任何模式,若写 0 到 ETI 位即可禁止相应的中断服务. 在定时/计数器为关闭的状态下,写数据到定时/计数器的预置寄存器之中,同时也会将数据装入定时/ 计数器中.但若是定时/计数器已经开启,写到定时/计数器的数据只会被保留在定时/计数器的预置寄存器 中,直到定时/计数器发生计数溢出为止,再由预置寄存器加载新的值.当定时/计数器的数据被读取时, 会禁止时钟输入以防出错.因为禁止时钟输入可能导致计数错误,所以程序员必须仔细加以考虑. TMRC 的 0~2 位被用于定义定时/计数器的内部时钟源的预分频级数.定义如表所示.定时/计数器的 溢出信号被用于产生驱动蜂鸣器的 PFD 信号.
Rev.1.40
17
2006-10-4
HT48E30
位 符号 功能 定义预分频器级数,PSC2,PSC1,PSC0= 000:fINT= fsys/2 001:fINT= fsys/4 010:fINT= fsys/8 011:fINT= fsys/16 100:fINT= fsys/32 101:fINT= fsys/64 110:fINT= fsys/128 111:fINT= fsys/256 定义定时/计数器 TMR 的触发方式. 在外部事件计数模式(TM1,TM0)=(0,1): 1:下降沿计数; 0:上升沿计数 在脉冲宽度测量模式(TM1,TM0)=(1,1): 1:上升沿开始计数,下降沿停止计数; 0:下降沿开始计数,上升沿停止计数 打开/关闭定时/计数器( 1=打开,0=关闭) 未用,读出为 0 定义操作模式 01=外部事件计数模式(外部时钟) 10=定时模式(内部时钟) 11=脉冲宽度测量模式 00 =未用 TMRC(0EH)寄存器
0-2
PSC0~PSC2
3
TE
4 5 6 7
TON — TM0 TM1
Rev.1.40
18
2006-10-4
HT48E30
输入/输出口(Input/Output Ports) 单片机具有 23 个双向输入输出口,标号从 PA 到 PC 以及 PG,其分别对应的 RAM 的[12H], [14H],[16H]和[1EH].所有的输入/输出口都能被作为输入或输出使用.就输入而言这些口不具有锁存功 能,即,输入数据必须在"MOV A,[m]"(m=12H,14H,16H 或 1EH) 指令的 T2 上升沿被准备好.对输 出而言,所有的数据被锁存并保持不变,直到输出锁存器重新被改写. 每个 I/0 口都有其自己的控制寄存器(PAC,PBC,PCC,PGC),用来控制输入/输出的设置.使用 控制寄存器,可对 CMOS 输出或带或不带上拉电阻的斯密特触发输入在软件下动态地进行改变.要设置 为输入功能,相应的控制寄存器必须写"1".信号源的输入也取决于控制寄存器.如果控制寄存器的某位 值为"1"那么输入信号是读取自这个引脚(PAD)的状态,但是如果控制寄存器的某位值为"0",那么锁存 器的内容将会被送到内部总线.后者,会在"读改写"指令中发生. 对于输出功能,只能设置为 CMOS 输出.这些控制寄存器是对应于内存的 13H,15H,17H 和 1FH 地址. 芯片复位后,这些输入/输出口都会是高电平或浮空状态(取决于上拉电阻的选项).每一个输入/输 出锁存位都能被 SET [m].i 或 CLR [m].i 指令置位或清零,(m=12H,14H,16H 或 1EH.) 某些指令会首先输入数据然后进行输出操作.例如,SET [m].i ,CLR [m].i,CPL [m]和 CPLA [m]指 令,读取输入口的状态到 CPU,执行这个操作(位操作),然后将数据写回锁存器或累加器. PA 的每一个口都具有唤醒系统的能力.PG 口的高 5 位在物理上是不存在的;读这些位将返回"0", 而写这些位结果为无操作.请看应用注释. 所有的输入/输出口都可以有上拉电阻的选择.一旦选择上拉电阻,所有的输入/输出口都具有上拉电 阻.必须要注意的是:没有上拉电阻的输入/输出口,在输入模式时会产生浮空状态. PB0 和 PB1 分别与 BZ 和 BZ 管脚复用.如果选择为 BZ/ BZ 输出,PB0/PB1 在输出模式时的输出信号 将是由定时/计数器的溢出信号产生的 PFD 信号.在输入模式始终保持它的原来的功能.一旦 BZ/ BZ 的选 项被选择,蜂鸣器的输出信号只受 PB0 数据寄存器控制. PB0/PB1 的输入/输出功能如下所示: PB0 输入/输出 PB1 输入/输出 PB0 模式 PB1 模式 PB0 数据 PB1 数据 PB0 Pad 状态 PB1 Pad 状态
注意:
I I × × × × I I
I O × C × D I D
O I C × D × D I
O I B × 0 × 0 I
O I B × 1 × B I
O O C C D0 D1 D0 D1
O O B C 0 D 0 D
O O B C 1 D B D
O O B B 0 × 0 0
O O B B 1 × B B
I:输入; O:输出; D,D0,D1:数据; B:蜂鸣器的选项,BZ 或 BZ ; ×:任意值; C:CMOS 输出;
Rev.1.40
19
2006-10-4
HT48E30
PG0 与 INT 共用引脚.
C o n tr o l B it Q D C K S Q P A 0 ~ P A 7 P B 0 ~ P B 7 P C 0 ~ P C 5 P G 0 P u ll- h ig h O p tio n V
D D
D a ta B u s W r ite C o n tr o l R e g is te r C h ip R e s e t R e a d C o n tr o l R e g is te r
D a ta B it Q D C K S Q M U X
W r ite D a ta R e g is te r
( P B 0 , P B 1 O n ly )
P B 0 B Z /B Z M U X
B Z E N ( P B 0 , P B 1 O n ly )
R e a d D a ta R e g is te r S y s te m W a k e -u p ( P A o n ly ) IN T fo r P G 0 O n ly
O P 0 ~ O P 7
输入/输出口 为了避免在浮空状态下功耗太大,建议将未用的或没有连结到外部的输入/输出口由软件指令设置成 输出引脚.
Rev.1.40
20
2006-10-4
HT48E30
低电压复位(Low Voltage Reset — LVR) 为了监控器件的工作电压,HT48E30 有低电压复位功能.如果工作电压 在 0.9V~VLVR 之间,例如电池电压的变化,那么 LVR 会自动使器件产生内 部复位. LVR 功能说明如下: 低电压(0.9V~VLVR)的状态必须持续 1ms 以上.如果低电压的状态没有 持续 1ms 以上,那么 LVR 会忽视它而不去执行复位功能. LVR 通过与外部 RES信号的"或"的功能来执行系统复位. VDD 与 VLVR 之间的关系如下所示:
V
D D
V D D 5 .5 V
V
O P R
5 .5 V
V 3 .3 V 2 .4 V
L V R
0 .9 V
注:V
5 .5 V
OPR
为系统时钟 4MHz
时一般芯片正常工作电压 的范围.
L V R D e te c t V o lta g e
V
L V R
0 .9 V 0 V R e s e t S ig n a l
R e s e t *1
N o r m a l O p e r a tio n *2
R e s e t
低电压复位
注: *1: 要保证系统振荡器起振并稳定运行,在系统进入正常运行以前,SST 提供额外的 1024 个系统时钟周期的延迟. *2:因为低电压状态必须保持 1ms 以上,因此进入复位模式就要有 1ms 的延迟.
Rev.1.40
21
2006-10-4
HT48E30
EEPROM 数据存储器(EEPROM Data Memory) EEPROM 数据存储器包含 128×8 位,在正常工作中可读可写.它要通过控制寄存器 EECR([40H]在 Bank 1)间接访问.寄存器 EECR 只能使用 MP1 间接读写. 位 0-3 4 5 6 7 标识 —— CS SK DI DO 功能 未定义,读出为"0" EEPROM 数据存储器片选 EEPROM 数据存储器串口时钟输入 EEPROM 数据存储器串口数据输入 EEPROM 数据存储器串口数据输出 EECR(40H)寄存器
C S S K C S
E E C R
S K D I D O V
D D
C o n tro l L o g ic a n d C lo c k G e n e ra to r
A d d r e s s R e g is te r
A d d re s s D e c o d e r M e m o r y C e ll A r r a y 1 K : (1 2 8 8 ) O u tp u t B u ffe r
D I
D a ta R e g is te r
D O S a m e a s H T 9 3 L C 4 6
EEPROM 数据存储器方框图 访问 EEPROM 数据存储器需要三根串行通讯线,通过 EECR 界面写入.EEPROM 数据存储器有 128 个字,每个字包含 8 个位.EEPROM 数据存储器有 7 个指令:READ,ERASE,WRITE,EWEN, EWDS,ERAL 和 WRAL.这些指令包含 10 个位:1 个起始位,2 个 op-code 位和 7 个地址位. 在存取 EEPROM 之前,应该执行一个初始化程序.以下将详细介绍此程序. 执行 EWEN 命令. 执行 WRITE 命令(应用程序需要为初始化程序分配一个空间,其内容将在初始化程序执行后被更 改). 执行 EWDS 命令(此步骤不是必要的.若不是立即写数据至 EEPROM,则可将其禁止,以防误操 作). 以下是汇编语言的范例程序,使用者可放入 POR 程序.(注意:关于 EWEN , EWDS 和 WRITE 详 细程序请参考应用范例). mov A, 01h mov BP, A ; 设置 bank 指针 mov A,40h mov MP1,A ; 使 MP1 指向 EECR 地址 call EWEN ; 调用 EWEN 命令 mov A, 7Fh mov EEADDR, A mov A, 55h mov EEDATA, A call WRITE ; 调用 WRITE 命令(向地址 7Fh 中写入数据 55h.) call EWDS ; 调用 EWDS 命令(此步骤不是必要的)
Rev.1.40
22
2006-10-4
HT48E30
通过写 CS,SK 和 DI,这些指令可以被输入到 EEPROM 中.这些在 DI 线上的串行指令数据会在 SK 上升沿写入 EEPROM 数据存储器.在读取周期中,DO 作为数据输出线,在 WRITE 或者 ERASE 周期, DO 处于忙/准备状态.当 DO 作为输入数据线或者处于忙/准备状态,CS 管脚必须置高;反之 DO 会处于 一个高状态.指令发送成功之后,CS 必须马上置为低电平.上电后,系统默认处于 EWDS 状态.执行 ERASE 或者 WRITER 指令之前,需要先执行 EWEN 指令.
C S tC
S S
tC tS
K H
D S
tS
K L
S K
tC
S H
tD
IS
D I
t D IH V a lid D a ta tP 1
D 0
V a lid D a ta tP
D 1
D O
Rev.1.40
23
2006-10-4
HT48E30
EECR A.C.特性 符号 fSK tSKH tSKL tCSS tCSH tCDS tDIS tDIH tPD1 tPD0 tSV tHZ tPR1 tPR2 参数 时钟频率 SK 高电平时间 SK 低电平时间 CS 建立时间 CS 保持时间 CS 屏蔽时间 DI 建立时间 DI 保持时间 DO 等待"1"时间 DO 等待"0"时间 状态有效时间 DO 释放时间 每个 WORD 写周期 每两个 WORD 写周期 Vcc=5V±10% 最小 最大 0 2 250 — 250 — 50 — 0 - 250 - 100 — 100 — 250 - 250 - 250 - 100 - 2 - 10 - Vcc=2.2V±10% 最小 最大 0 1 500 — 500 — 100 — 0 — 250 — 200 — 200 — 500 - 500 - 250 - 200 - 5 - 10 - Ta=25℃ 单位 MHZ ns ns ns ns ns ns ns ns ns ns ns ms ms
接下来详细描述所有 7 条指令的功能. READ 读取指令会将指定地址的数据送出到 DO 线上.在 SK 上升沿时,DO 线上的数据会跳变.8 位数据 之前有一个逻辑"0"信号.无论 EWEN 或者 EWDS 指令执行与否,读取指令都可以有效执行.一个 数据字被读取之后,EEPROM 内地址会自动加一,允许下一个连续的数据被读取,而不需要输入任 何地址数据.地址数据会循环累加直到 CS 从高电平变为低电平.
EWEN/EWDS EWEN/EWDS 指令可以使能或者禁止擦写动作有效执行.无论是处于上电或者掉电状态,芯片都会 自动进入禁止擦写模式.执行 WRITE,ERASE,WRAL 或者 ERAL 指令之前,必须先执行 EWEN 指令 使能擦写动作有效执行,反之,执行 ERASE/WRITE 指令就是无效的.EWEN 指令运行后,擦写动 作使能状态就被启动,直到断电或者 EWDS 指令被运行.当处于禁止擦写状态时,就无法向 EEPROM 数据存储器进行擦写.这样做的话,内部数据就相当于被保护了.
ERASE 在擦写使能状态下,ERASE 指令可以擦除指定地址的数据内容.ERASE 指令码和指定地址送出后, 数据在 CS 下降沿会被清除.由于芯片内部有自动时序发生器,提供所有时序信号给内部擦除动作, 所以 SK 时钟不需要外部提供.内部擦除动作期间,当 CS 保持高电平我们可以检测到系统状态是忙 还是空闲.忙状态时 DO 线保持低电平,直到擦除动作结束,DO 会恢复到高电平,此时其它指令可 以被执行.
Rev.1.40
24
2006-10-4
HT48E30
WRITE 擦写使能模式下,WRITE 指令可以将数据写入指定地址的 EEPROM 数据存储器.WRITE 指令码和 指定地址送出后,数据在 CS 下降沿会被写入.由于芯片内部有自动时序发生器,提供所有时序信号 给内部写入动作,所以 SK 时钟不需要外部提供.整个自动写入周期包括,擦除然后再写入.因此不 需要在写入指令前擦除数据.内部写入动作期间,当 CS 保持高电平我们可以检测到系统状态是忙还 是空闲.忙状态时 DO 线保持低电平,直到擦除动作结束,DO 会恢复到高电平,此时其它指令可以 被执行.
ERAL 在擦写使能状态下,ERAL 指令可以擦除所有 128×8 存储器位单元为逻辑"1".擦除所有内容指令送 出后,数据在 CS 下降沿会被清除.由于芯片内部有自动时序发生器,提供所有时序信号给擦除所有 内容动作,所以 SK 时钟不需要外部提供.内部擦除所有内容动作期间,当 CS 保持高电平我们可以 检测到系统状态是忙还是空闲.忙状态时 DO 线保持低电平,直到擦除动作结束,DO 会恢复到高电 平,此时其它指令可以被执行.
WRAL 在擦写使能状态下,WRAL 指令可以写入所有 128×8 存储器.写入所有内容指令送出后,数据在 CS 下降沿会被写入.由于芯片内部有自动时序发生器,提供所有时序信号给写入所有内容动作,所以 SK 时钟不需要外部提供.内部写入所有内容动作期间,当 CS 保持高电平我们可以检测到系统状态 是忙还是空闲.忙状态时 DO 线保持低电平,直到擦除动作结束,DO 会恢复到高电平,此时其它指 令可以被执行.
EECR 控制时序图
READ
tC C S
D S
S K D I (1 ) 1 S ta r t b it 1 0 0 A N A 0
D O
D X
D 0
D X M o d e A N D X
1 (X 8 ) A 6 D 7
* * A d d r e s s p o in te r a u to m a tic a lly c y c le s to th e n e x t w o r d
EWEN/EWDS
C S S ta n d b y
S K 0 (1 ) S ta r t b it 0 1 1 = E W E N 0 0 = E W D S
D I
Rev.1.40
25
2006-10-4
HT48E30
WRITE
C S tC
D S
V e r ify
S ta n d b y
S K 0 (1 ) S ta r t b it 1 tP
R 1
D I D O
1
A N
A N -1
A N -2
A 1
A 0
D X
D 0 tS
V
B u s y
R e a d y
ERASE
C S tC
D S
V e r ify
S ta n d b y
S K 1 (1 ) S ta r t b it 1 tP
R 1
D I D O
1
A N
A N -1
A N -2
A 1
A 0 tS
V
B u s y
R e a d y
ERAL
C S tC
D S
V e r ify
S ta n d b y
S K 0 (1 ) S ta r t b it 1 tP
R 2
D I D O
0
1 0
tS
V
B u s y
R e a d y
WRAL
C S tC
D S
V e r ify
S ta n d b y
S K 0 (1 ) S ta r t b it 1 tP
R 2
D I D O
0
0 1
D X
D 0 tS
V
B u s y
R e a d y
Rev.1.40
26
2006-10-4
HT48E30
EEPROM 数据存储器指令设置概要 指令 READ ERASE WRITE EWEN EWDS ERAL WRAL 描述 Read Data Erase Data Write Data Erase/Write Enable Erase/Write Disable Erase All Write All 起始位 1 1 1 1 1 1 1 指令码 10 11 01 00 00 00 00 地址 A6~A0 A6~A0 A6~A0 11XXXXX 00XXXXX 10XXXXX 01XXXXX 数据 D7~D0 —— D7~D0 —— —— —— D7~D0
注意:"X"表示不确定
掩膜选项(Options) 以下的表格,列出了这种单片机的各种类型的掩膜选项.所有的掩膜选项必须正确定义. 编号 1 2 3 4 5 6 7 8 9 选 项 WDT 时钟源:WDT 振荡或 fsys/4 或关闭 清除看门狗指令条数:1 或 2 条清除 WDT 定时器时钟源:fsys PA 位唤醒 打开/关闭 PA 口 CMOS/施密特触发 输入 PA,PB,PC,PG 口上拉电阻 有/无 BZ/ BZ :打开/关闭 LVR:打开/关闭 系统振荡选择:外部 RC 振荡/外部晶体振荡
Rev.1.40
27
2006-10-4
HT48E30 应用电路
V
D D
0 .0 1 m F * 1 0 0 k W 0 .1 m F
V D D R E S
P A 0 ~ P A 7 P B 2 ~ P B 7 P C 1 ~ P C 5 V
D D
1 0 k W
0 .1 m F * V S S P B 0 /B Z P B 1 /B Z 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 2 P C 0 /T M R
R
O S C
4 7 0 p F C 1
O S C 1
R C S y s te m O s c illa to r 2 4 k W < R O S C 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] 说明: 运算过程: 影响标志位 PDF — OV — Z — AC — C √
操作
影响标志位
数据存储器的内容减 1,结果放入数据存储器 本指令将数据存储器内的数值减一再放回数据存储器. [m] [m]-1 TO — PDF — OV — Z √ AC — C —
DECA [m] 说明: 运算过程: 影响标志位
数据存储器的内容减 1,结果放入累加器 本指令将存储器内的数值减一,再放到累加器. ACC [m]-1 TO — PDF — OV — Z √ AC — C —
HALT 说明: 运算过程:
进入暂停模式 本指令终止程序执行并关掉系统时钟,RAM 和寄存器内的数值保持原状态,WDT 计数 器清"0",暂停标志位(PDF)被设为 1, WDT 计数溢出位(TO)被清为 0. PC PC+1 PDF 1 TO 0 TO 0 PDF 1 OV — Z — AC — C —
影响标志位
Rev.1.40
34
2006-10-4
HT48E30
INC [m] 说明: 运算过程: 影响标志位 数据存储器的内容加 1,结果放入数据存储器 本指令将数据存储器内的数值加一,结果放回数据存储器. [m] [m]+1 TO — INCA [m] 说明: 运算过程: 影响标志位 PDF — OV — Z √ AC — C —
数据存储器的内容加 1,结果放入数据存储器 本指令是将存储器内的数值加一,结果放到累加器. ACC [m]+1 TO — PDF — OV — Z √ AC — C —
JMP addr 说明: 运算过程: 影响标志位
无条件跳转 本指令是将要跳到的目的地直接放到程序计数器内. PC addr TO — PDF — OV — Z — AC — C —
MOV A, [m] 说明: 运算过程: 影响标志位
将数据存储器送至累加器 本指令是将数据存储器内的数值送到累加器内. ACC [m] TO — PDF — OV — Z — AC — C —
MOV A, x 说明: 运算过程: 影响标志位
将立即数送至累加器 本指令是将立即数送到累加器内. ACC x TO — PDF — OV — Z — AC — C —
MOV [m], A 说明: 运算过程: 影响标志位
将累加器送至数据存储器 本指令是将累加器值送到数据存储器内. [m] ACC TO — PDF — OV — Z — AC — C —
Rev.1.40
35
2006-10-4
HT48E30
NOP 说明: 运算过程: 影响标志位 空指令 本指令不作任何运算,而只将程序计数器加一. PC PC+1 TO — OR A, [m] 说明: 运算过程: 影响标志位 PDF — OV — Z — AC — C —
累加器与数据存储器做"或"运算,结果放入累加器 本指令是把累加器,数据存储器值做逻辑或,结果放到累加器. ACC ACC "OR" [m] TO — PDF — OV — Z √ AC — C —
OR A, x 说明: 运算过程: 影响标志位
累加器与立即数做"或"运算,结果放入累加器 本指令是把累加器值,立即数做逻辑或,结果放到累加器. ACC ACC "OR" x TO — PDF — OV — Z √ AC — C —
ORM A, [m] 说明: 运算过程: 影响标志位
累加器与数据存储器做"或"运算,结果放入数据存储器 本指令是把累加器值,存储器值做逻辑或,结果放到数据存储器. [m] ACC "OR" [m] TO — PDF — OV — Z √ AC — C —
RET 说明: 运算过程: 影响标志位
从子程序返回 本指令是将堆栈寄存器中的程序计数器值送回程序计数器. PC Stack TO — PDF — OV — Z — AC — C —
RET A, x 说明: 运算过程: 影响标志位
从子程序返回,并将立即数放入累加器 本指令是将堆栈寄存器中的程序计数器值送回程序计数器,并将立即数送回累加器. PC Stack ACC x TO — PDF — OV — Z — AC — C —
Rev.1.40
36
2006-10-4
HT48E30
RETI 说明: 从中断返回 本指令是将堆栈寄存器中的程序计数器值送回程序计数器,与 RET 不同的是它使用在 中断程序结束返回时,它还会将中断控制寄存器 INTC 的 0 位(EMI)中断允许位置 1,允 许中断服务. PC Stack EMI 1 TO — RL [m] 说明: 运算过程: 影响标志位 PDF — OV — Z — AC — C —
运算过程: 影响标志位
数据存储器左移一位,结果放入数据存储器 本指令是将数据存储器内的数值左移一位,第 7 位移到第 0 位,结果送回数据存储器. [m].0 [m].7, [m].(i+1) [m].i; (i=0~6) TO — PDF — OV — Z — AC — C —
RLA [m] 说明: 运算过程: 影响标志位
数据存储器左移一位,结果放入累加器 本指令是将存储器内的数值左移一位,第 7 位移到第 0 位,结果送到累加器,而数据存 储器内的数值不变. ACC.0 [m].7, ACC.(i+1) [m].i; (i=0~6) TO — PDF — OV — Z — AC — C —
RLC [m] 说明: 运算过程:
带进位将数据存储器左移一位,结果放入数据存储器 本指令是将存储器内的数值与进位标志左移一位,第 7 位取代进位标志,进位标志移到 第 0 位,结果送回数据存储器. [m].(i+1) [m].i; (i=0~6) [m].0 C C [m].7 TO — PDF — OV — Z — AC — C √
影响标志位
RLCA [m] 说明: 运算过程:
带进位将数据存储器左移一位,结果放入累加器 本指令是将存储器内的数值与进位标志左移一位,第七位取代进位标志,进位标志移到 第 0 位,结果送回累加器. ACC.(i+1) [m].i; (i=0~6) ACC.0 C C [m].7 TO — PDF — OV — Z — AC — C √
影响标志位
Rev.1.40
37
2006-10-4
HT48E30
RR [m] 说明: 运算过程: 影响标志位 数据存储器右移一位,结果放入数据存储器 本指令是将存储器内的数值循环右移,第 0 位移到第 7 位,结果送回数据存储器. [m].7 [m].0, [m].i [m].(i+1); (i=0~6) TO — RRA 说明: [m] PDF — OV — Z — AC — C —
运算过程: 影响标志位
数据存储器右移一位,结果放入累加器 本指令是将数据存储器内的数值循环右移,第 0 位移到第 7 位,结果送回累加器,而数 据存储器内的数值不变. ACC.7 [m].0, ACC.i [m].(i+1); (i=0~6) TO — PDF — OV — Z — AC — C —
RRC 说明:
[m]
运算过程:
带进位将数据存储器右移一位,结果放入数据存储器 本指令是将存储器内的数值加进位标志循环右移,第 0 位取代进位标志,进位标志移到 第 7 位,结果送回存储器. [m].i [m].(i+1); (i=0~6) [m]. 7 C C [m].0 TO — PDF — OV — Z — AC — C √
影响标志位
RRCA 说明:
[m]
运算过程:
带进位将数据存储器右移一位,结果放入累加器 本指令是将数据存储器内的数值加进位标志循环右移,第 0 位取代进位标志,进位标志 移到第 7 位,结果送回累加器,数据存储器内的数值不变. ACC.i [m].(i+1); (i=0~6) ACC.7 C C [m].0 TO — PDF — OV — Z — AC — C √
影响标志位
SBC A,[m] 说明: 运算过程: 影响标志位
累加器与数据存储器,进位标志相减,结果放入累加器 本指令是把累加器值减去数据存储器值以及进位标志的取反,结果放到累加器. ACC ACC+[ m ]+ C TO — PDF — OV √ Z √ AC √ C √
Rev.1.40
38
2006-10-4
HT48E30
SBCM A,[m] 说明: 运算过程: 影响标志位 累加器与数据存储器,进位标志相减,结果放入数据存储器 本指令是把累加器值减去数据存储器值以及进位标志取反,结果放到数据存储器. [m] ACC+[ m ]+C TO — SDZ 说明: [m] PDF — OV √ Z √ AC √ C √
运算过程: 影响标志位
数据存储器减 1,如果结果为"0",则跳过下一条指令 本指令是把数据存储器内的数值减 1,判断是否为 0,若为 0 则跳过下一条指令,即如 果结果为零,放弃在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取 得正确的指令(二个指令周期).否则执行下一条指令(一个指令周期). 如果[m]-1=0,跳过下一条指令执行再下一条. TO — PDF — OV — Z — AC — C —
SDZA 说明:
[m]
运算过程: 影响标志位
数据存储器减 1,将结果放入累加器,如果结果为"0",则跳过下一条指令 本指令是把数据存储器内的数值减 1,判断是否为 0,为 0 则跳过下一行指令并将减完 后数据存储器内的数值送到累加器,而数据存储器内的值不变,即若结果为 0,放弃在目 前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二个指 令周期).否则执行下一条指令(一个指令周期). 如果[m]-1=0,跳过下一条指令执行再下一条. ACC ([m]-1) TO — PDF — OV — Z — AC — C —
SET [m] 说明: 运算过程: 影响标志位
置位数据存储器 本指令是把存储器内的数值每个位置为 1. [m] FFH TO — PDF — OV — Z — AC — C —
SET [m]. i 说明: 运算过程: 影响标志位
将数据存储器的第 i 位置"1" 本指令是把存储器内的数值的第 i 位置为 1. [m].i 1 TO — PDF — OV — Z — AC — C —
Rev.1.40
39
2006-10-4
HT48E30
SIZ 说明: [m] 数据存储器加 1,如果结果为"0",则跳过下一条指令 本指令是把数据存储器内的数值加 1,判断是否为 0.若为 0,跳过下一条指令,即放 弃在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令 (二个指令周期).否则执行下一条指令(一个指令周期). 如果 ([m]+1=0),跳过下一行指令;[m] [m]+1 TO — SIZA 说明: PDF — OV — Z — AC — C —
运算过程: 影响标志位
运算过程: 影响标志位
数据存储器加 1,将结果放入累加器,如果结果为"0",则跳过下一条指令 本指令是把数据存储器内的数值加 1,判断是否为 0,若为 0 跳过下一条指令,即放弃 在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二 个指令周期),并将加完后存储器内的数值送到累加器,而数据存储器的值保持不变. 否则执行下一条指令(一个指令周期). 如果[m]+1=0,跳过下一行指令;ACC ([m]+1) TO — PDF — OV — Z — AC — C —
SNZ 说明:
[m]. i
运算过程: 影响标志位
如果数据存储器的第 i 位不为"0",则跳过下一条指令 本指令是判断数据存储器内的数值的第 i 位,若不为 0,则程序计数器再加 1,跳过下 一行指令,放弃在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得 正确的指令(二个指令周期).否则执行下一条指令(一个指令周期). 如果 [m].i≠0,跳过下一行指令. TO — PDF — OV — Z — AC — C —
SUB A, [m] 说明: 运算过程: 影响标志位
累加器与数据存储器相减,结果放入累加器 本指令是把累加器值,数据存储器值相减,结果放到累加器. ACC ACC+[ m ]+1 TO — PDF — OV √ Z √ AC √ C √
SUB A, x 说明: 运算过程: 影响标志位
累加器与立即数相减,结果放入累加器 本指令是把累加器值,立即数相减,结果放到累加器. ACC ACC+ x +1 TO — PDF — OV √ Z √ AC √ C √
Rev.1.40
40
2006-10-4
HT48E30
SUBM A, [m] 说明: 运算过程: 影响标志位 累加器与数据存储器相减,结果放入数据存储器 本指令是把累加器值,存储器值相减,结果放到存储器. [m] ACC+[ m ]+1 TO — SWAP [m] 说明: 运算过程: 影响标志位 PDF — OV √ Z √ AC √ C √
交换数据存储器的高低字节,结果放入数据存储器 本指令是将数据存储器的低四位和高四位互换,再将结果送回数据存储器. [m].7~[m].4 [m].3~[m].0 TO — PDF — OV — Z — AC — C —
SWAPA [m] 说明: 运算过程: 影响标志位
交换数据存储器的高低字节,结果放入累加器 本指令是将数据存储器的低四位和高四位互换,再将结果送回累加器. ACC.3~ACC.0 [m].7~[m].4 ACC.7~ACC.4 [m].3~[m].0 TO — PDF — OV — Z — AC — C —
SZ 说明:
[m]
运算过程: 影响标志位
如果数据存储器为"0",则跳过下一条指令 本指令是判断数据存储器内的数值是否为 0,为 0 则跳过下一行指令,即放弃在目前指 令执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周 期).否则执行下一条指令(一个指令周期). 如果 [m] = 0, 跳过下一行指令. TO — PDF — OV — Z — AC — C —
SZA 说明:
[m]
运算过程: 影响标志位
数据存储器送至累加器,如果内容为"0",则跳过下一条指令 本指令是判断存储器内的数值是否为 0,若为 0 则跳过下一行指令,即放弃在目前指令 执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期). 并把存储器内值送到累加器,而存储器的值保持不变.否则执行下一条指令(一个指令 周期). 如果[m] = 0,跳过下一行指令,并 ACC [m]. TO — PDF — OV — Z — AC — C —
Rev.1.40
41
2006-10-4
HT48E30
SZ 说明: [m]. i 如果数据存储器的第 i 位为"0",则跳过下一条指令 本指令是判断存储器内第 i 位值是否为 0,若为 0 则跳过下一行指令,即放弃在目前指 令执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周 期).否则执行下一条指令(一个指令周期). 如果 [m].i = 0,跳过下一行指令. TO — TABRDC [m] 说明: 运算过程: 影响标志位 TO — TABRDL [m] 说明: 运算过程: 影响标志位 TO — XOR A, [m] 说明: 运算过程: 影响标志位 PDF — OV — Z — AC — C — PDF — OV — Z — AC — C — PDF — OV — Z — AC — C —
运算过程: 影响标志位
读取 ROM 当前页的内容,并送至数据存储器和 TBLH 本指令是将表格指针指向程序寄存器当前页,将低位送到存储器,高位直接送到 TBLH 寄存器内. [m] 程序存储器低四位 TBLH 程序存储器高四位
读取 ROM 最后一页的内容,并送至数据存储器和 TBLH 本指令是将 TABLE 指针指向程序寄存器最后页,将低位送到存储器,高位直接送到 TBLH 寄存器内. [m] 程序存储器低四位 TBLH 程序存储器高四位
累加器与立即数做"异或"运算,结果放入累加器 本指令是把累加器值,数据存储器值做逻辑异或,结果放到累加器. ACC ACC "XOR" [m] TO — PDF — OV — Z √ AC — C —
XORM A, [m] 说明: 运算过程: 影响标志位
累加器与数据存储器做"异或"运算,结果放入数据存储器 本指令是把累加器值,数据存储器值做逻辑异或,结果放到数据存储器. [m] ACC "XOR" [m] TO — PDF — OV — Z √ AC — C —
XOR A, x 说明: 运算过程: 影响标志位
累加器与数据存储器做"异或"运算,结果放入累加器 本指令是把累加器值与立即数做逻辑异或,结果放到累加器. ACC ACC "XOR" x TO — PDF — OV — Z √ AC — C —
Rev.1.40
42
2006-10-4
HT48E30 封装信息:
24-pin SKDIP (300mil)外形尺寸
A 2 4 B 1 1 3 1 2
H C D E F G
a
I
标号 A B C D E F G H I
Min 1235 255 125 125 16 50 -295 345 0°
尺寸(mil) Nom ------100 ----
Max 1265 265 135 145 20 70 -315 360 15°
Rev.1.40
43
2006-10-4
HT48E30
28-pin SKDIP (300mil)外形尺寸
A 2 8 B 1 1 5 1 4
H C D E F G
a
I
标号 A B C D E F G H I
Min 1375 278 125 125 16 50 -295 330 0°
尺寸(mil) Nom ------100 ----
Max 1395 298 135 145 20 70 -315 375 15°
Rev.1.40
44
2006-10-4
HT48E30
24-pin SOP (300mil)外形尺寸
2 4 A
1 3 B
1
1 2
C C ' G H D E F
a
标号 A B C C' D E F G H
Min 394 290 14 590 92 -4 32 4 0°
尺寸(mil) Nom -----50 -----
Max 419 300 20 614 104 --38 12 10°
Rev.1.40
45
2006-10-4
HT48E30
28-pin SOP (300mil)外形尺寸
2 8 A
1 5 B
1
1 4
C C ' G H D E F
a
标号 A B C C' D E F G H
Min 394 290 14 697 92 -4 32 4 0°
尺寸(mil) Nom -----50 -----
Max 419 300 20 713 104 --38 12 10°
Rev.1.40
46
2006-10-4
HT48E30 包装带和卷轴规格:
卷轴尺寸:
T 2 D
A
B
C
T 1
SOP 24W 标号 A B C D T1 T2 描述 卷轴外圈直径 卷轴内圈直径 轴心直径 缝宽 轮缘宽 卷轴宽 尺寸(mm) 330±1.0 62±1.5 13.0+0.5 -0.2 2.0±0.5 24.8+0.3 -0.2 30.2±0.2
SOP 28W(300mil) 标号 A B C D T1 T2
描述 卷轴外圈直径 卷轴内圈直径 轴心直径 缝宽 轮缘宽 卷轴宽
尺寸(mm) 330±1.0 62±1.5 13.0+0.5 -0.2 2.0±0.5 24.8+0.3 -0.2 30.2±0.2
Rev.1.40
47
2006-10-4
HT48E30
运输带尺寸:
D
E F W C
P 0
P 1
t
B 0
D 1
P
K 0 A 0
SOP 24W 标号 W P E F D D1 P0 P1 A0 B0 K0 t C
描述 运输带宽 空穴间距 穿孔位置 空穴至穿孔距离(宽度) 穿孔直径 空穴中之小孔直径 穿孔间距 空穴至穿孔距离(长度) 空穴长 空穴宽 空穴深 传输带厚度 覆盖带宽度
尺寸(mm) 24.0±0.3 12.0±0.1 1.75±0.1 11.5±0.1 1.55+0.1 1.5+0.25 4.0±0.1 2.0±0.1 10.9±0.1 15.9±0.1 3.1±0.1 0.35±0.05 21.3
SOP 28W(300mil) 标号 W P E F D D1 P0 P1 A0 B0 K0 t C
描述 运输带宽 空穴间距 穿孔位置 空穴至穿孔距离(宽度) 穿孔直径 空穴中之小孔直径 穿孔间距 空穴至穿孔距离(长度) 空穴长 空穴宽 空穴深 传输带厚度 覆盖带宽度
尺寸(mm) 24.0±0.3 12.0±0.1 1.75±0.1 11.5±0.1 1.5+0.1 1.5+0.25 4.0±0.1 2.0±0.1 10.85±0.1 18.34±0.1 2.97±0.1 0.35±0.01 21.3
Rev.1.40
48
2006-10-4
HT48E30
盛群半导体股份有限公司(总公司) 新竹市科学工业园区研新二路 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.40
49
2006-10-4
- 09H位所在的单元地址 > 输入/输出型八位
-
输入/输出型八位
下载该文档 文档格式:PDF 更新时间:2009-09-02 下载次数:0 点击次数:2文档基本属性 文档语言: 文档格式: pdf 文档作者: Marine Services Corp 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: Marine Services Corp 分类: 创建时间: 上次保存者: Marine Services Corp 修订次数: 8 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 8 段落数: 39 字节数: 43051 备注: 0 演示格式: On-screen Show 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- PDF格式下载
- 更多文档...
-
上一篇:第三章指令系统
下一篇:《微机接口技术》模拟试题
点击查看更多关于09H位所在的单元地址的相关文档
- 您可能感兴趣的
- 某数所在单元格的行号 某个单元格所在页数 您所在的位 所在部门职位 星之所在 徐翔所在信托公司 所在 郎平所在的中国女排 手机所在地理位置查询
- 大家在找
-
- · 网上自考教育学
- · 简明法语教程电子书
- · 2012学前教育学试题
- · 酒店员工手册范本
- · 北京福田时代金刚汽车
- · 大英县象山镇
- · 电子设计竞赛陕西赛区
- · 黑龙江宝玉石鉴定机构
- · 网页图片下载能手
- · 大型三座标测量方法
- · 金属矿山杂志
- · 安徽开发商
- · 人字加一笔组成那些字
- · 温州二外校园网
- · 11sasa播放器下载
- · 藏爱翻译成汉语
- · 小学英语论文
- · 大荔中学贴吧
- · 起点网斗破苍穹
- · 上海外贸服装加工
- · 外企面试英文问题
- · 百度英语词典在线翻译
- · cad家具素材
- · 十大禁书黄小说现代十大禁书黄小说
- · 人教版八年级英语视频
- · 河南易宝移动pos机
- · loveyounomore
- · 上海电信网
- · 上楂树之恋张艺谋
- · 食品营养学精品课程
- · cf越光宝盒杀敌图标
- · 相关百度blg365强
- · 分手擂台师生恋
- · 高三数学模拟试卷.doc
- · 因特网浏览器打不开
- · 智能照明控制系统价格
- · 安徽省安庆市国税局
- · 互感器伏安特性测试仪
- · 北京史家小学如何
- · 林清安proe5.0教程
- 赞助商链接