HT46R47规格书.pdf

上传人:asd****56 文档编号:75729109 上传时间:2023-03-04 格式:PDF 页数:37 大小:534.64KB
返回 下载 相关 举报
HT46R47规格书.pdf_第1页
第1页 / 共37页
HT46R47规格书.pdf_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《HT46R47规格书.pdf》由会员分享,可在线阅读,更多相关《HT46R47规格书.pdf(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、HT46R47/HT46C47 A/D型型8位单片机位单片机 Rev.1.30 1 2004-05-03 特性特性 工作电压 fSYS=4MHz2.2V5.5V fSYS=8MHz3.3V5.5V 最多可有 13 个双向输入/输出口 1 个与输入/输出口共用引脚的外部中断输入 8 位可编程定时/计数器 具有溢出中断和 7 级预分频器 内置晶体和 RC 振荡电路 看门狗定时器 204814 程序存储器 ROM 648 数据存储器 RAM 具有 PFD 功能可以用来发声 HALT 和唤醒功能可降低功耗 在 VDD=5V系统频率为 8MHz 时指令周期为 0.5s 6 层硬件堆栈 4 通道 9 位解

2、析度的 A/D 转换器 一通道 8 位的 PWM(脉宽可调)输出通道与输入/输出口共用引脚 位操作指令 查表指令表格内容字长 14 位 63 条指令 指令执行时间为 1 或 2 个指令周期 低电压复位功能 18-pin DIP/SOP 封装 概述概述 HT46R47/HT46C47 是 8 位高性能精简指令集单片机专门为需要 A/D 转换的产品而设计例如传感器信号输入掩膜版本 HT46C47 与 OTP 版本 HT46R47 引脚和功能完全相同低功耗I/O 使用灵活可编程分频器计数器振荡类型选择多通道 A/D 转换脉冲测量功能暂停和唤醒功能使这款单片机可以广泛应用于带传感器的 A/D 转换马达

3、控制工业控制消费类产品等系统中 方框图方框图?!?!?#?$?#?%?!?&?$?#?!?#?!?$?#?!$?(!?)?*#+?!?#?#?,!?!$?-!?.?/?/?.?/?0?1.?2?3?*?!-?4!?!?/?0?)?/5?+?6?!$?-!?+?6?HT46R47/HT46C47 Rev.1.30 2 2004-05-03 引脚图引脚图?1?2?/?0?/?/?7?2?1?/?/?1278?Pad 图图 HT46C47?/?1278?/?1?2?7?8?/?/?/?/?2?/?0?1*IC 的衬底要连接到 PCB 板上的 VSS HT46R47/HT46C47 Rev.1.30

4、3 2004-05-03 引脚说明引脚说明 引脚名称引脚名称 输入输入/输出输出 掩膜选项掩膜选项 说明说明 PA0PA2 PA3/PFD PA4/TMR PA5/INT PA6,PA7 输入/输出 上拉电阻 唤醒功能 PA3 或 PFD 8 位双向输入/输出口 每一位可由掩膜选项设置为唤醒输入 可由软件设置为 CMOS 输出 带或不带上拉电阻 由上拉电阻选项决定 的斯密特触发输入 PFD TMRINT分别与 PA3PA4PA5 共用引脚 PB0/AN0 PB1/AN1 PB2/AN2 PB3/AN3 输入/输出 上拉电阻 4 位双向输入/输出口可由软件设置为 CMOS 输出带或不带上拉电阻由

5、上拉电阻选项决定的斯密特触发输入或 A/D 输入 一旦 PB 有一个口做为 A/D 输入由软件设置则其输入/输出功能和上拉电阻会自动失效 VSS 负电源接地 PD0/PWM 输入/输出 上拉电阻 PD0 或 PWM 双向输入/输出口可由软件设置为 CMOS 输出带或不带上拉电阻由上拉电阻选项决定的斯密特触发输入PWM 输出与 PD0 共用引脚由 PWM 选项决定 RES 输入 斯密特触发复位输入低电平有效 VDD 正电源 OSC1 OSC2 输入 输出 晶体或 RC OSC1OSC2 连接 RC 或晶体由掩膜选项确定以产生内部系统时钟在 RC 振荡方式下OSC2 是系统时钟四分频的输出口 TE

6、ST1 TEST2 TEST3 输入 测试模式下输入引脚正常使用时不必连接 极限参数极限参数 电源供应电压.VSS-0.3VVSS+6.0V 储存温度.-50125 端口输入电压.VSS-0.3VVDD+0.3V 工作温度.-4085 注这里只强调额定功率超过极限参数所规定的范围将对芯片造成损害无法预期芯片在上述标示范围外的工作状态而且若长期在标示范围外的条件下工作可能影响芯片的可靠性 直流电气特性直流电气特性 Ta=25 测试条件测试条件 符号符号 参数参数 VDD 条件条件 最小最小 典型典型 最大最大 单位单位 fSYS=4MHz 2.2 5.5 V VDD 工作电压 fSYS=8MHz

7、 3.3 5.5 V 3V 0.6 1.5 mA IDD1 工作电流(晶体振荡)5V 无负载fSYS=4MHz ADC 关闭 2 4 mA 3V 0.8 1.5 mA IDD2 工作电流(RC 振荡)5V 无负载fSYS=4MHz ADC 关闭 2.5 4 mA IDD3 工作电流 5V 无负载fSYS=8MHz ADC 关闭 3 5 mA 3V 5 A ISTB1 静态电流(看门狗打开)5V 无负载系统 HALT 10 A 3V 1 A ISTB2 静态电流(看门狗关闭)5V 无负载系统 HALT 2 A VIL1 输入/输出口TMR3V 0 0.3 VDD V HT46R47/HT46C4

8、7 Rev.1.30 4 2004-05-03 INT的低电平输入电压 5V 0 0.3VDD V 3V 0.7VDD VDD V VIH1 输入/输出口TMRINT的高电平输入电压 5V 0.7VDD VDD V 3V 0 0.4 VDD V VIL2 低电平输入电压(RES)5V 0 0.4 VDD V 3V 0.9 VDD VDD V VIH2 高电平输入电压(RES)5V 0.9 VDD VDD V VLVR 低电压复位 2.7 3.0 3.3 V 3V VOL=0.1VDD 4 8 mA IOL 输入/输出口灌电流 5V VOL=0.1VDD 10 20 mA 3V VOH=0.9V

9、DD-2-4 mA IOH 输入/输出口源电流 5V VOH=0.9VDD-5-10 mA 3V 20 60 100 k RPH 上拉电阻 5V 10 30 50 k VAD A/D 输入电压 0 VDD V EAD A/D 转换误差 0.5 1 LSB 3V 0.5 1 mA IADC 打开 ADC 增加的功耗 5V 1.5 3 mA 交流电气特性交流电气特性 Ta=25 测试条件测试条件 符号符号 参数参数 VDD 条件条件 最小最小 典型典型 最大最大 单位单位 2.2V5.5V 400 4000 kHz fSYS1 系统时钟晶体振荡 3.3V5.5V 400 8000 kHz 2.2V

10、5.5V 400 4000 kHz fSYS2 系统时钟RC 振荡 3.3V5.5V 400 8000 kHz 2.2V5.5V 0 4000 kHz fTIMER 定时器输入频率TMR 3.3V5.5V 0 8000 kHz tAD A/D 时钟周期 5V 1 s tADC A/D 转换时间 76 tAD 3V 45 90 180 s tWDTOSC 看门狗振荡器 5V 32 65 130 s 3V 1.4 2.85.6 11 s tWDT1 看门狗溢出周期RC 振荡 5V 1.1 2.34.7 9.4 s tWDT2 看门狗溢出周期 系统时钟 217 218*tSYS tRES 外部复位低

11、电平脉冲宽度 1 s tSST 系统启动延迟时间 从 HALT 状态唤醒 1024 *tSYS tINT 中断脉冲宽度 1 s 注*tSYS=1/fSYS HT46R47/HT46C47 Rev.1.30 5 2004-05-03 系统功能说明系统功能说明 指令执行时序指令执行时序 单片机的系统时钟由晶体振荡器或 RC 振荡器产生该时钟在芯片内部被分成四个互不重叠的时钟周期一个指令周期包括四个系统时钟周期 指令的读取和执行是以流水线方式进行的,这种方式在一个指令周期进行读取指令操作而在下一个指令周期进行解码与执行该指令因此流水线方式使多数指令能在一个周期内执行完成但如果渉及到的指令要改变程序计

12、数器的值就需要花两个指令周期来完成这一条指令?/?/?/?0!?$*?9?:?;!$?!?9?3?:0!?$*?9?:?;!$?!?9?:0!?$*?9?:?;!$?!?9?:?#?0 0?!?&?!4#$!?#?#?-#?#?;?!?-?!?#!?#?!?4!?!?!?#!?)?=3?-!?9?1?A?(:)?=3?-!?9?1?A?(:?!B?!?+?2?7?4!?!?!?#!?2 0 0?2?HT46R47/HT46C47 Rev.1.30 7 2004-05-03 所有的数据存储器单元都能直接执行算术 逻辑 递增递减和循环操作 除了一些特殊位外 数据存储器的每一位都可由SETm.i置位

13、或由CLRm.i复位而且都可以通过间接寻址指针 MP 进行间接寻址 间接寻址寄存器间接寻址寄存器 地址 00H 是一个间接寻址寄存器并无实际的物理区存在任何对00H的读/写操作都是访问由 MP01H所指向的 RAM 单元间接读取此地址得到的值为 00H间接写入此地址不会产生任何操作 间接寻址指针 MP01H是一个 7 位寄存器MP 的最高位未定义读取该位得到的结果是1任何对 MP的写操作只能将低 7 位数据写入 MP 中 累加器累加器 累加器ACC与算术逻辑单元ALU有密切关系它对应于 RAM 地址 05H做为运算的立即数据存储器之间的数据传送必须经过累加器 算术逻辑单元算术逻辑单元 ALU

14、算术逻辑单元ALU是执行 8 位算术逻辑运算的电路它提供有以下功能 算术运算ADDADCSUBSBCDAA 逻辑运算ANDORXORCPL 移位运算RLRRRLCRRC 递增和递减INCDEC 分支判断SZSNZSIZSDZ ALU 不仅可以储存数据运算的结果还会改变状态寄存器的值 状态寄存器状态寄存器 STATUS 8 位的状态寄存器0AH包含零标志Z进位标志C辅助进位标志AC溢出标志OV暂停标志PDF和看门狗定时器溢出标志TO它可以用来记录状态信息和控制操作流程 符号符号 位位 功能功能 C 0 如果在加法运算中结果产生了进位或在减法运算中结果不产生借位,则 C 被置位反之C 被清除它也可

15、被循环移位指令影响 AC 1 如果在加法运算中低 4 位产生了进位或减法运算中低 4 位不产生借位则 AC 被置位反之AC 被清除 Z 2 如果算术或逻辑运算的结果为零则 Z 被置位反之Z 被清除 OV 3 如果运算结果向最高位进位但最高位并不产生进位输出则 OV 被置位反之OV 被清除 PDF 4 系统上电或执行CLR WDT指令PDF 被清除执行HALT指令PDF 被置位 TO 5 系统上电执行CLR WDT或HALT指令TO 被清除WDT定时溢出TO 被置位 6 未用读出为0 7 未用读出为0 状态寄存器?!$#?-?!?6?/?1?2?7?8?0?/?1?2?7?8?0?(#?!$?(

16、?!#?!?#?!?)?)?)?)?B?!(?!?(?C?C/0?/?,!?-?!?69 1?&?!:2 0?HT46R47/HT46C47 Rev.1.30 8 2004-05-03 除了 PDF 和 TO 标志外状态寄存器的其它位都可以用指令改变任何对状态寄存器的写操作都不会改变 PDF 和 TO 的值对状态寄存器的操作可能会导致与预期不一样的结果PDF 和 TO 标志只受系统上电看门狗溢出清除看门狗指令CLR WDT暂停指令HALT的影响标志位 ZOVAC 和 C反映的是最近一次操作的状态 在进入中断程序或子程序调用时 状态寄存器不会被自动压入堆栈 如果状态寄存器的内容是重要的而且子程序

17、会影响状态寄存器的内容那么程序员必须事先将 STATUS 的值保存好 中断中断 HT46x47 提供一个外部中断 一个内部定时/计数器中断和一个 A/D 转换中断 中断控制寄存器(INTC0BH)包含了中断控制位和中断请求标志中断控制位用来设置中断允许/禁止 寄存器寄存器 位位 符号符号 功功 能能 0 EMI 总中断控制位1=允许0=禁止 1 EEI 外部中断控制位1=允许0=禁止 2 ETI 定时/计数器中断控制位1=允许0=禁止 3 EADI A/D 转换中断控制位1=允许0=禁止 4 EIF 外部中断请求标志1=有0=无 5 TF 定时/计数器中断请求标志1=有0=无 6 ADF A/

18、D 转换中断请求标志1=有0=无 INTC(0BH)7 未用读出为0 INTC 寄存器 只要有中断子程序被服务其余的中断全部都被自动禁止通过清除 EMI 位这种做法的目的在于防止中断嵌套这时如果有其它中断发生只有中断请求标志会被记录下来如果在中断服务程序中有另一个中断需要响应程序员可以置位 EMI 及 INTC 所对应的位以便进行中断嵌套如果堆栈已满则中断并不会被响应一直到堆栈指针SP发生递减后才会响应如果需要中断立即得到响应应避免堆栈饱和 所有的中断都具有唤醒能力当有中断被服务系统会将程序计数器值压入堆栈然后再跳转至中断服务程序的入口但这时只有程序计数器的内容被压入堆栈如果其它寄存器和状态寄

19、存器的内容会被中断程序改变从而会破坏主程序的控制流程的话程序员应该事先将这些数据保存起来 外部中断是由INT引脚下降沿信号触发的其中断请求标志位EIFINTC 的第 4 位会被置位如果中断允许且堆栈未满当发生外部中断时会产生地址 04H 的子程序调用而中断请求标志 EIF 和总中断控制位 EMI 会被清除以禁止其它中断响应 内部定时/计数器中断是由定时/计数器溢出触发的 其中断请求标志 TF INTC 的第 5 位 会被置位如果中断允许且堆栈未满当发生定时/计数器中断时会产生地址 08H 的子程序调用而中断请求标志 TF 和总中断控制位 EMI 会被清除以禁止其它中断响应 A/D 转换中断是由

20、 A/D 转换完成触发的其中断请求标志ADFINTC 的第 6 位会被置位如果中断允许 且堆栈未满 当发生 A/D 转换中断时 会产生地址 0CH 的子程序调用 而中断请求标志位 ADF和总中断控制位 EMI 会被清除以禁止其它中断响应 在执行中断子程序期间其它的中断请求会被屏蔽直到执行 RETI 指令或 EMI 和相关中断控制位被置位当然此时堆栈未满如果要从中断子程序返回只要执行 RET 或 RETI 指令即可其中RETI指令会自动置位 EMI以允许中断服务而 RET 则不会 如果中断在两个连续的 T2 脉冲的上升沿之间发生且中断响应允许那么在下两个 T2 脉冲之间该中断会被服务如果同时发生

21、中断请求其优先级如下表示也可以通过设定各中断相关的控制位来改变优先级 No.中断源中断源 优先级优先级 中断向量中断向量 a 外部中断 1 04H b 定时/计数器中断 2 08H c A/D 转换中断 3 0CH HT46R47/HT46C47 Rev.1.30 9 2004-05-03 中断控制寄存器INTC由定时/计数器中断请求标志TF外部中断请求标志EIFA/D 转换中断请求标志ADF定时/计数器中断允许ETI外部中断允许EEIA/D 转换中断允许EADI和总中断允许EMI组成其对应于数据存储器地址 0BHEMIEEIETI和 EADI 用来控制中断的允许/禁止状态的这些控制位可以用来

22、屏蔽正在进行中断服务程序时发生的其它中断请求一旦中断请求标志TFEIFADF被置位会一直保留在 INTC 寄存器中直到中断被响应或用软件指令清除为止 建议不要在中断服务程序中使用CALL指令来调用子程序因为中断随时都可能发生而且需要立刻给予响应如果只剩下一层堆栈而中断不能被很好地控制原先的控制序列很可能因为在中断子程序中执行CALL指令而使堆栈溢出从而发生混乱 振荡电路振荡电路 HT46x47 有两种振荡方式 外部 RC 振荡和外部晶体振荡可以通过掩膜选项设定不管选用哪一种振荡方式其信号都可以做为系统时钟HALT 模式会停止系统振荡器并忽视任何外部信号以降低功耗 如果选用外部 RC 振荡方式

23、在 OSC1 与 VSS 之间需要接一个外部电阻其阻值为 30k到 750k而 OSC2 上会输出系统频率的 4 分频信号可用于同步外部逻辑RC 振荡方式是一种低成本的方案但是RC 振荡频率会随着 VDD温度和芯片自身参数的漂移而产生误差因此在需要精确振荡频率做为计时操作的场合并不适合使用 RC 振荡方式 如果选用晶体振荡方式在 OSC1 和 OSC2 之间需要连接一个晶体用来提供晶体振荡器所需的反馈和相移除此之外不再需要其它外部元件另外在 OSC1 和 OSC2 之间也可使用谐振器来取代晶体振荡器但是在 OSC1 和 OSC2 需要多连接两个电容如果振荡频率小于 1MHz WDT 振荡器是一

24、个内部 RC 振荡器并不需要连接任何外部元件当系统进入暂停模式时系统时钟会停止但 WDT 振荡器会继续工作其振荡周期大约为 65s/5V如果要降低功耗可在掩膜选项中关闭 WDT 振荡器 看门狗定时器看门狗定时器 WDT 看门狗定时器的时钟来源有两种看门狗振荡器或指令时钟系统时钟 4 分频由掩膜选项设置看门狗定时器主要用来防止程序运行故障和程序跳入一死循环而导致不可预测的结果看门狗定时器可由掩膜选项设置为打开或关闭如果在关闭状态所有与 WDT 有关的指令操作都是没有作用的?&?!?-?$=?7 3#?!?2 3#?!?)?(!?#?!-!$?#?!3?+?+?.?+?1 看门狗定时器 如果 WD

25、T 时钟源为内部 WDT 振荡器输出(RC 振荡周期一般为 65s)它会先经过一个 3276865536的分频电路得到大约 2.3s/5V4.7s/5V 的溢出周期这个周期会随温度VDD 和芯片参数的漂移而变化WDT 时钟源除了使用内部 WDT 振荡器输出外还可以使用指令时钟系统时钟 4 分频只是在 HALT时WDT 会停止计数而失去保护功能此时只能靠外部逻辑复位来重新启动系统 如果系统运用在强干扰的环境中建议选用内部 WDT 振荡器或 32kHz 的晶体振荡器(RTC 振荡器)因为 HALT 模式会使系统时钟停止看门狗也就失去了保护的功能 在正常运行时WDT 溢出会使系统复位并置位 TO 标

26、志但在 HALT 模式下WDT 溢出只产生热复位只有程序计数器 PC 和堆栈指针 SP 被复位要清除 WDT 的值(包括 WDT 预分频器)可以有三种方法外部复位(低电平输入到RES端)清除看门狗指令或 HALT 指令清除看门狗指令有CLR WDT和CLR WDT1CLR WDT2二组指令这两组指令中只能选择其中一组由掩膜选项决定如果选择 CLR WDT那么只要执行 CLR WDT 指令就会清除 WDT 如果选择 CLR WDT1 和 CLR WDT2那么二条指令要交替使用才会清除 WDT否则WDT 会由于溢出而使系统复位?&?-?$#-?$#-?!?#?+?6?HT46R47/HT46C47

27、 Rev.1.30 10 2004-05-03 暂停模式暂停模式 HALT 暂停模式是由HALT指令来实现的暂停模式时系统状态如下 系统振荡器停振但 WDT 振荡器会继续振荡(如果选择 WDT 振荡器)RAM 和寄存器内容保持不变 WDT 被清除并重新开始计数(如果 WDT 时钟来源为 WDT 振荡器)所有输入/输出口都保持其原有状态 置位 PDF 标志清除 TO 标志 以下操作可以使系统离开暂停模式外部复位中断PA 口下降沿信号或看门狗定时器溢出其中外部复位会使系统初始化WDT 溢出则会发生热复位通过检测 TO 和 PDF 标志即可了解系统复位的原因PDF 标志可由系统上电或执行CLR WD

28、T指令清除由 HALT 指令置位TO 标志由 WDT 溢出置位同时产生唤醒但只有程序计数器 PC 和堆栈指针 SP 被复位其它都保持其原有的状态 PA 口唤醒和中断唤醒可做为正常运行的继续PA 口的每一位都可以由掩膜选项设置为唤醒功能如果是由输入/输出口唤醒程序会从下一条指令开始运行如果是由中断唤醒可能会发生两种情况如果中断禁止或中断允许但堆栈已满程序将会从下一条指令开始运行如果中断允许且堆栈未满则会产生一般的中断响应如果在进入 HALT 模式之前中断请求标志位已被置1则中断唤醒功能被禁止 当发生唤醒系统需要额外花费 1024tSYS(系统时钟周期)的时间才能重新正常运行也就是说唤醒之后会插入

29、一个等待周期如果唤醒是由中断产生的话则实际中断子程序的执行会延迟一个以上的周期如果唤醒导致下一条指令执行那么在等待周期执行完成之后会立即执行该指令 为减小功耗 在进入暂停模式之前 应小心处理所有的输入/输出口状态 复位复位 总共有三种方法会产生初始复位 正常运行时由RES引脚发生复位 在暂停模式由RES引脚发生复位 正常运行时由看门狗定时器溢出发生复位 暂停模式中的看门狗定时器溢出与其它系统复位状况不同 因为看门狗定时器溢出会执行热复位只有程序计数器 PC 和堆栈指针 SP 被复位而系统其它部分都保持原有状态 在其它复位状态下 某些寄存器不会改变在初始复位时大部分寄存器会复位成初始的状态通过检

30、测 PDF 和 TO 标志即可判断出各种不同的复位原因 TO PDF 复位原因复位原因 0 0 上电时RES发生复位 u u 正常运行时RES发生复位 0 1 暂停模式下RES发生复位 1 u 正常运行时 WDT 溢出 1 1 暂停模式下 WDT 溢出 注u表示不变 为了保证系统振荡器起振并稳定运行系统复位(包括上电复位WDT 溢出或由RES端复位)或由暂停状态唤醒时系统启动定时器(SST)提供了一个额外的延迟时间共 1024 个系统时钟周期 系统复位时SST 会被加在复位延时中由暂停模式唤醒也会加入 SST 延迟 系统复位(包括上电复位正常运行时 WDT 溢出或由RES端复位)需要额外增加一

31、个加载掩膜选项(Option)的时间 系统复位时各功能单元的状态如下所示 PC 000H 中断 禁止 WDT RTC时基 清除在主系统复位后WDT 开始计数 定时/计数器 停止 输入/输出端口 输入模式 堆栈指针 SP 指向堆栈顶部?=?=?D?0 E?D?0 E复位电路 注*连线应该尽量靠近RES引脚以减小干扰影响 HT46R47/HT46C47 Rev.1.30 11 2004-05-03?#?!3?*#?!?!?)?-(?!?&?!?!?3#?#-!?!?复位时序 复位电路结构 有关寄存器的状态如下有关寄存器的状态如下 寄存器寄存器 复位复位(上电复位上电复位)WDT 溢出溢出(正常运行

32、正常运行)RES复位复位(正常运行正常运行)RES复位复位(暂停模式暂停模式)WDT 溢出溢出(暂停模式暂停模式)*TMR xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu TMRC 00-0 1000 00-0 1000 00-0 1000 00-0 1000 uu-u uuuu PC 000H 000H 000H 000H 000H MP-xxx xxxx-uuu uuuu-uuu uuuu-uuu uuuu-uuu uuuu ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu TBL

33、P xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu TBLH-xx xxxx-uu uuuu-uu uuuu-uu uuuu-uu uuuu STATUS-00 xxxx-lu uuuu-uu uuuu-01 uuuu-11 uuuu INTC-000 0000-000 0000-000 0000-000 0000-uuu uuuu PA 1111 1111 1111 1111 1111 1111 1111 1111 uuuu uuuu PAC 1111 1111 1111 1111 1111 1111 1111 1111 uuuu uuuu

34、 PB -1111-1111-1111-1111-uuuu PBC-1111-1111-1111-1111-uuuu PD-1-1-1-1-u PDC-1-1-1-1-u PWM xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADRL x-x-x-x-u-ADRH xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADRH xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu ADCR 0100 0000 0100 0000 0100 0000

35、0100 0000 uuuu uuuu ACSR 1-00 1-00 1-00 1-00 u-uu 注*表示热复位 u表示不变 x表示未知 HT46R47/HT46C47 Rev.1.30 12 2004-05-03 定时定时/计数器计数器 HT46x47 有一个 8 位可编程向上计数的定时/计数器定时/计数器的时钟来源可以是外部信号输入或系统时钟 如果用做内部定时器方式 则只有一个时钟来源 即系统时钟 外部信号输入可以用来计数外部事件测量时间间隔测量脉冲宽度或产生一个精确的时基信号 定时/计数器可以产生 PFD 信号时钟来源可使用外部时钟或内部时钟PFD 信号频率为fINT/2256-N 有

36、两个与定时/计数器有关的寄存器TMR0DH和 TMRC0EHTMR 寄存器有两个物理空间写入 TMR 会将初始值装入到定时/计数器的预置寄存器中而读 TMR 则会取得定时/计数器的内容TMRC 是定时/计数器控制寄存器用来定义定时/计数器一些选项 符号符号(TMRC)位位 功能功能 PSC0PSC2 02 定义预分频器级数PSC2PSC1PSC0=000fINT=fSYS 001/fINT=fSYS/2 010fINT=fSYS/4 011fINT=fSYS/8 100fINT=fSYS/16 101fINT=fSYS/32 110fINT=fSYS/64 111fINT=fSYS/128 T

37、E 3 定义定时/计数器 TMR 的触发方式 0=上升沿作用1=下降沿作用 TON 4 打开/关闭定时/计数器1=打开0=关闭 5 未用读出为0 TM0 TM1 6 7 定义工作模式 01=事件计数模式外部时钟 10=定时模式内部时钟 11=脉冲宽度测量模式 00=未用 TMRC 寄存器 TM0TM1 用来定义定时/计数器的工作模式外部事件计数模式是用来记录外部事件的其时钟来源为外部 TMR 引脚输入定时器模式是一个常用模式其时钟来源为内部时钟脉宽测量模式可以测量TMR 引脚高/低电平的脉冲宽度其时钟来源为内部时钟?-!?#(?*?!?!?!?(!?-7 3?#?#?!?4!?!?!-?(?!

38、?#?!?7 3?#?#?!?4!?!?!-?(?4!?+-?A?!?0?7 3?!?!$?-!?7 3?+?6?+?.?9 1?:?!?#?$?#?定时/计数器 无论是定时模式还是外部事件计数模式一旦开始计数定时/计数器会从寄存器当前值向上计到0FFH一旦发生溢出定时/计数器会从预置寄存器中重新加载初值并开始计数同时置位中断请求标志TFINTC 的第 5 位 在脉宽测量模式当 TON 与 TE 是 1 时只要 TMR 引脚有一个上升沿信号如果 TE 是 0则为下HT46R47/HT46C47 Rev.1.30 13 2004-05-03 降沿信号定时/计数器就会开始计数直到 TMR 脚电平恢

39、复同时 TON 被清零测量的结果会保存在寄存器中直到有新的测量开始换句话说一次只能测量一个脉冲宽度重新置位 TON 后可以继续测量注意在该模式下定时/计数器是跳变触发而不是电平触发当计数器溢出时定时/计数器会从预置寄存器中重新加载初值 并置位中断请求标志 这与其它两种模式一样 要启动计数器 只要置位 TONTMRC 的第 4 位在脉宽测量模式下TON 在测量结束后会被自动清除但在另外两种模式中TON只能由指令来清除定时/计数器溢出可以做为唤醒信号不管是什么模式只要写 0 到 ETI 即可禁止定时/计数器中断服务 在定时/计数器停止计数时写数据到定时/计数器的预置寄存器中同时会将该数据写入到定时

40、/计数器但如果在定时/计数器运行时这么做数据只能写入到预置寄存器中直到发生溢出时才会将数据从预置寄存器加载到定时/计数器寄存器读取定时/计数器时计数会被停止以避免发生错误计数停止会导致计数错误程序员必须注意到这一点 TMRC 的第 02 位用来定义内部时钟预分频级数定义如上表所示定时/计数器的溢出信号可做为PFD 输出 输入输入/输出口输出口 HT46x47 有 13 个双向输入/输出口 记为 PA PB 和 PD 其分别对应 RAM 地址12H 14H和18H所有端口都可以进行输入/输出操作输入时端口没有锁存功能输入信号必须在 MOV Amm=12H14H 或 18H指令的 T2 上升沿到来

41、前准备好输出时端口有锁存功能端口上的数据会保持不变直到执行下一个写入操作?0?9?/:?.?2?+?-&?+?-&?&?!?=!3?9?-&:?!?(?!?#?!?/?0?9?:?F?%F?F?%F?-?#?#?!?-?!?#?!?*#?!?!?(?-?!?#?!?#?!?!?#?!?#?.?/?0?1 5?2?.?/?/?输入/输出口 每个输入/输出口都有一个控制寄存器PACPBCPDC用来控制输入/输出状态利用控制寄存器可对 CMOS 输出或斯密特触发输入通过软件动态地进行改变做为输入时对应的控制寄存器应设置为1输入信号来源也取决于控制寄存器如果控制寄存器的值为1那么读取的是引脚状态如控制

42、寄存器的值为0则读取的是内部锁存器的值后者可能会在读-修改-写指令中发生 做为输出时只能采用 CMOS 输出控制寄存器对应 RAM 地址 13H15H19H 系统复位之后这些输入/输出口会是高电平或浮空状态由上拉电阻选项决定每一个输入/输出锁存位都能用SET m.i或CLR m.i指令置位或清除m=12H14H 或 18H 有些指令会先输入数据然后进行输出操作例如SET m.iCLR m.iCPL mCPLAm”这些指令会先将整个端口状态读入 CPU 中接着执行所定义的运算(位操作)然后再将结果写入锁存器或累加器中 PA 的每一个口都具有唤醒系统的能力PB 的高 4 位和 PD 的高 7 位没

43、有实际的物理结构读取这 3位会返回0而写入则是一个空操作 所有的输入/输出口都有上拉电阻选项一旦选择了上拉电阻选项输入/输出口就加了上拉电阻如HT46R47/HT46C47 Rev.1.30 14 2004-05-03 果不选择上拉电阻必须注意在输入模式下若输入/输出口会产生浮空状态 PA3 与 PFD 共用引脚如果选择 PFD 功能则 PA3 在输出模式时的输出信号将是由定时/计数器的溢出信号产生的 PFD 信号而在输入模式始终保持其原来的功能一旦选择 PFD 功能PFD 的输出信号只受 PA3 数据寄存器控制向 PA3 数据寄存器写入1则输出 PFD 信号向 PA3 数据寄存器写入0则 P

44、A3 输出为0 PA3 的输入/输出功能如下所示 I/O 模式模式 I/P 正常正常 O/P 正常正常 I/P PFD O/P PFD PA3 逻辑输入 逻辑输出 逻辑输入 PFD 定时/计数器开启 注PFD 的输出频率是定时/计数器溢出频率的 1/2 PA5PA4 口分别与INTTMR 共用引脚 PB 口可以用做 A/D 转换输入A/D 转换功能将在下面说明PD0 与 PWM 共用引脚如果选择 PWM功能则 PD0 口会有 PWM 信号输出PD0 为输出模式向 PD0 数据寄存器写入1则输出 PWM 信号向数据 PD0 寄存器写入0则 PD0 输出为0PD0 的 I/O 输入/输出如下所示

45、I/O 模式模式 I/P 正常正常 O/P 正常正常 I/P PWM O/P PWM PD0 逻辑输入 逻辑输出 逻辑输入 PWM 建议用软件将未使用和没有外接的输入/输出口设置为输出模式 以防止这些端口在输入浮空时增加系统的功耗 PWM HT46x47 有 1 个通道6+2位的 PWM 输出与 PD0 共用引脚PWM 通道由一个数据寄存器 PWM1AH 来控制输出 PWM 计数器的时钟来源为系统时钟 fSYSPWM 寄存器是一个 8 位的寄存器 PWM的输出波形如图所示一旦 PD0 选择为 PWM 输出并且 PD0 为输出模式PDC.0=0则向 PD0 寄存器写1能够产生 PWM 输出向 P

46、D0 寄存器写0会使 PD0 输出保持为0 +?6?G?H?I?G?H?I?G?H?I?G?H?I?/?$&$-!?B?1?+?6?(?-?#?!?#?(?B?1?+?6?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?PWM 一个 PWM 周期被分为四个调制周期 调制周期 0调制周期 3每个调制周期有 64 个 PWM 输入时钟在6+2位的 PWM 功能中PWM 寄存器被分为 2 个部分第一部分是 DC由 PWM.7PWM.2控制第二部分是 AC由 PWM.1PWM.0 控制 在 PWM 周期中每个调制周期的占空比见下表 参

47、数参数 AC03 占空比占空比 i!?+?6?5?+?6?7 5?+?6?/?!B?A/D 转换时序 A/D 转换控制寄存器用来控制 A/D 转换ADCR 的第 20 位用来选择模拟输入通道总共有 4 个通道可以选择ADCR 的第 53 位用来设置 PB 的工作模式PB 可以做为模拟输入通道或是数字输入输HT46R47/HT46C47 Rev.1.30 16 2004-05-03 注 VOPR是在系统时钟为 4MHz时 使得芯片正常运行的电压值?D?/D?D?D 8?)?D?出口由这 3 位来决定如果 PB 选择为模拟输入则其输入/输出功能和上拉电阻将失效而 A/D 转换电路会被使能EOC位A

48、DCR 的第 6 位是 A/D 转换结束标志位通过检测这个标志位可以知道 A/D 转换是否结束 ADCR 的 START 位用来开启 A/D 转换 给 START 位一个上升沿信号和一个下降沿信号可以开始 A/D 转换为了确保 A/D 转换顺利完成START 位应保持为0直到EOC位变为0A/D 转换完成信号 符号符号(ACSR)位位 功能功能 ADCS0 ADCS1 0 1 ADCS1ADCS0选择 A/D 转换时钟源 00fSYS/2 01fSYS/8 10fSYS/32 11未定义不可用 26 未定义读取值为0 TEST 7 只做为内部测试用 ACSR 的第 7 位是内部测试用的用户不能

49、使用ACSR 的第 1 位和第 0 位用来选择 A/D 转换的时钟来源 当 A/D 转换完成时A/D 中断标志被置位当 START 标志由0置为1时EOC也会置1 寄存器寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 ADRL D0 ADRH D8 D7 D6 D5 D4 D3 D2 D1*D0D8 为 A/D 转换结果数据的 LSBMSB 低电压复位低电压复位LVR 为了监控器件的工作电压HT46x47 提供低电压复位功能如果器件的工作电压在 0.9VVLVR之间例如电池电压的变化那么 LVR 会自动使器件产生内部复位 LVR 功能说明如下 低电压0.

50、9VVLVR的状态必须持续 1ms 以上如果低电压的状态没有持续 1ms 以上那么 LVR 会忽视它而不去执行复位功能 LVR 通过与外部RES信号的或的功能来执行系统复位 VDD与 VLVR之间的关系如下所示?D?)?D 8?!?#?-?!?E?E?-?!?#?!?)?!?!$?-?!低电压复位 注*1 要保证系统振荡器起振并稳定运行 在系统进入正常运行以前 SST 提供额外的 1024 个系统时钟周期的延迟 *2因为低电压状态必须保持 1ms 以上因此进入复位模式就要有 1ms 的延迟 HT46R47/HT46C47 Rev.1.30 17 2004-05-03 掩膜选项掩膜选项 下表列出

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 标准材料 > 机械标准

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com