合泰单片机ht46x65v220使用手册
合泰单片机智能充电器主程序HT46R47_main

#include "HT46R47-H.h"//---------------def-----------------------//pa#define _pac0 _13_0#define _pac1 _13_1#define _pac2 _13_2#define _pac3 _13_3#define _pac4 _13_4#define _pac5 _13_5#define _pac6 _13_6#define _pac7 _13_7//pb#define _pbc0 _15_0#define _pbc1 _15_1#define _pbc2 _15_2#define _pbc3 _15_3//pd#define _pdc0 _19_0#define CN_DOWN _pa1#define JM _pa4#define LED_GREEN _pa5#define LED_RED _pa6#define FAN _pa7#define PWM_IO _pd0#define C_SAMP 0x00#define BT_SAMP 0x01#define V_SAMP 0x02#define TIM_PRE 7200 //pre 2H-7200#define TIM_NOML 43920 //CC/CV 12.2H=13H#define OVER_VOLTAGE 0x0c5 //43.57V#define LOW_VOLTAGE 0x068 //24V 0x06b//#define OVER_CURRENT 0x0062 //3.9A 10.5A #define PRE_CHARGER 0x088 //30V#define FULL_DOWN_V 0x0b5 //40V#define FULL_CURRENT 0x05f //0.2A#define N20C_NTC 0x0ec //-20度#define _0C_NTC 0x0d7 //0度#define _45C_NTC 0x089 //45度0x07e//---------------var-----------------------unsigned int adcvalue;unsigned int I_by;unsigned char chargermode;unsigned char T_Mode; //T mode unsigned int ChargingTimeValue; //bit StartTimeFlg;bit ChargingT_OverFlg;unsigned char Tcount;unsigned char SecondCnt;bit UnLoad;bit Start_5S;bit Flg_5S;unsigned char Cnt5s; //5 seconds//---------------ex fuction----------------extern unsigned int ADCStart(unsigned char chanl);//delay 1ms Fsys=4Mhz 实测1msvoid Delay1ms(void){unsigned int va;for(va=0;va<60;va++){;}}//delay N msvoid DelayNms(unsigned int ms){unsigned int vb;for(vb=0;vb<ms;vb++){Delay1ms();}}//----------------------------------------------// 上电自校准电压IV// 自校电压是否在空载范围内void s1_VI(void)while(1){adcvalue = ADCStart(V_SAMP); //voltageif(((adcvalue<0x01ff)||(adcvalue==0x01ff))&&((adcvalue>0x0000)||(adcvalue==0x0000))) {break;}}}//------------------------------------------------// 校正OP电流否正常,条件打开0.05A校正电流// 实测I-V OP放大电压,0x0074 4.2A=0X0141 【0X0141-0X0074=D205,// 4200/205=20.5mA/位ADvoid s1_VI1(void){while(1){adcvalue = ADCStart(C_SAMP); //currentif(((adcvalue<0x01ff)||(adcvalue==0x01ff))&&((adcvalue>0x0000)||(adcvalue==0x0000))) {I_by = adcvalue;break;}}}//system initialvoid SYS_Inital(void){//IOport --------------CN_DOWN = 0;JM = 0;FAN = 0;PWM_IO = 0;LED_GREEN = 0;LED_RED = 1;_pb3 = 0;_pac1 = 0;_pac4 = 0;_pac7 = 0;_pdc0 = 0;_pac5 = 0;_pac6 = 0;_pbc0 = 1;_pbc1 = 1;_pbc2 = 1;_pbc3 = 0;//var ----------------------chargermode = 0x01;Tcount = 0;SecondCnt = 0;//Timer -------------------_tmrc = 0x87; //timer mode Ftimer=Fsys/128 Fsys=4M Ttimer=32us _tmr = (256-250); //32*250=8ms//PWM ---------------------_pwm = 0xfc; //set pwm duty cycle//voltage current just self-----s1_VI();DelayNms(1000);s1_VI1();}//---------------------相关保护void ToPretect(void){//---------------短路保护//---------------低压保护/*adcvalue = ADCStart(V_SAMP); //voltageif(adcvalue<=LOW_VOLTAGE) //Low voltage{adcvalue = ADCStart(C_SAMP); //currentif(adcvalue>20){PWM_IO = 0;JM = 0;chargermode = 0x05; //errorreturn;}}*///---------------过压保护if(adcvalue>=OVER_VOLTAGE) //over voltage {PWM_IO = 0;JM = 0;chargermode = 0x05; //errorreturn;}//---------------过流保护/*adcvalue = ADCStart(C_SAMP); //currentif(adcvalue>=OVER_CURRENT) //over current {PWM_IO = 0;JM = 0;chargermode = 0x05; //errorreturn;}*/}//------------------main-----------void main(){SYS_Inital();_intc=0x05; // EMI ETI enable _ton = 1; //start timerwhile(1){switch(chargermode){case 0x01://startT_Mode = chargermode;ChargingTimeValue = 0;StartTimeFlg = 0;ChargingT_OverFlg = 0;FAN = 0;LED_GREEN = 0;LED_RED = 1;DelayNms(1000);adcvalue = ADCStart(V_SAMP); //voltageif((adcvalue>=OVER_VOLTAGE)) //&&(adcvalue>=LOW_VOLTAGE)//over or low voltage{JM = 0;chargermode = 0x05; //errorbreak;}else{//adcvalue = ADCStart(BT_SAMP); //B temp//if(adcvalue<=N20C_NTC)//if(adcvalue>=LOW_VOLTAGE)//{PWM_IO = 0;JM = 1;DelayNms(1000);adcvalue = ADCStart(C_SAMP); //Currentif(adcvalue>=0x50){//UnLoad = 0;//Start_5S = 0;//Cnt5s = 0;//Flg_5S = 0;//adcvalue = ADCStart(V_SAMP); //voltage//if(adcvalue<=PRE_CHARGER) //24<V<30V-pre//{PWM_IO = 0;chargermode = 0x02; //prebreak;//}//else //V>30V-nor//{// PWM_IO = 1;// chargermode = 0x03; //normal// break;//}}//}}break;case 0x02://PRE_CHARGERPWM_IO = 0;JM = 1;FAN = 0;LED_GREEN = 1;LED_RED = 1;//----------------------------------------- //over timeif(T_Mode!=chargermode){T_Mode = chargermode;ChargingTimeValue = TIM_PRE;StartTimeFlg = 1;ChargingT_OverFlg = 0;}if(ChargingT_OverFlg==1){PWM_IO = 0;JM = 0;chargermode = 0x05; //errorbreak;}//----------低压,过压,过流,短路ToPretect();//----------BMS over tempadcvalue = ADCStart(BT_SAMP); //B tempif(((adcvalue>0xd7)||(adcvalue==0xd7))||((adcvalue<0x7f)||(adcvalue==0x7f))) {PWM_IO = 0;JM = 0;chargermode = 0x05; //errorbreak;}//----------pre to Normaladcvalue = ADCStart(V_SAMP); //voltageif(adcvalue>PRE_CHARGER) //>30V{PWM_IO = 1;chargermode = 0x03; //normal}//------------------------------battery removeadcvalue = ADCStart(BT_SAMP); //battery NTCif(adcvalue>=N20C_NTC) //no ntc{PWM_IO = 0;JM = 0;chargermode = 0x05; //standbybreak;}//---------------adcvalue = ADCStart(V_SAMP); //voltageif(adcvalue<=0x16) //5V{adcvalue = ADCStart(C_SAMP); //currentif(adcvalue>20){JM = 0;PWM_IO = 0;chargermode = 0x05; //errorbreak;}}break;case 0x03://CC+CVPWM_IO = 1;JM = 1;FAN = 1;LED_GREEN = 1;LED_RED = 1;//---------------------timerif(T_Mode!=chargermode){T_Mode = chargermode;ChargingTimeValue = TIM_NOML;StartTimeFlg = 1;ChargingT_OverFlg = 0;}if(ChargingT_OverFlg==1){PWM_IO = 0;chargermode = 0x05; //errorbreak;}//----------低压,过压,过流,短路ToPretect();//-----------------------------normal to FULLadcvalue = ADCStart(V_SAMP); //voltageif(adcvalue>=FULL_DOWN_V) //>40V{adcvalue = ADCStart(C_SAMP); //currentif(adcvalue<=(FULL_CURRENT)) //get FULL{chargermode = 0x04; //fullbreak;}}//----------BMS over tempadcvalue = ADCStart(BT_SAMP); //B temp//0度-0xc2 45度-0x6bif(((adcvalue>0xdb)||(adcvalue==0xdb))||((adcvalue<0x82)||(adcvalue==0x82))) {PWM_IO = 0;JM = 0;chargermode = 0x05; //errorbreak;}//------------------normal to preadcvalue = ADCStart(V_SAMP); //voltageif(adcvalue<(PRE_CHARGER-10)) //PRE{chargermode = 0x02; //prebreak;}//------------------------------battery removeadcvalue = ADCStart(BT_SAMP); //battery NTCif(adcvalue>=N20C_NTC) //no ntc{PWM_IO = 0;JM = 0;chargermode = 0x05; //standby}//---------------adcvalue = ADCStart(V_SAMP); //voltageif(adcvalue<=0x16) //5V{adcvalue = ADCStart(C_SAMP); //currentif(adcvalue>20){JM = 0;PWM_IO = 0;chargermode = 0x05; //errorbreak;}}break;case 0x04://FULL_DOWNT_Mode = chargermode;ChargingTimeValue = 0; //StartTimeFlg = 0;ChargingT_OverFlg = 0;PWM_IO = 0;JM = 0;FAN = 0;LED_GREEN = 1;LED_RED = 0;DelayNms(1000);adcvalue = ADCStart(V_SAMP); //voltageif(adcvalue>OVER_VOLTAGE) //{PWM_IO = 0;JM = 0;chargermode = 0x05; //errorbreak;}else{if(adcvalue<(LOW_VOLTAGE-20)){PWM_IO = 0;JM = 0;chargermode = 0x01; //standbybreak;}}break;case 0x05://errorT_Mode = chargermode;ChargingTimeValue = 0; //StartTimeFlg = 0;ChargingT_OverFlg = 0;PWM_IO = 0;JM = 0;FAN = 0;LED_GREEN = 0;LED_RED = 1;DelayNms(1000);LED_GREEN = 0;LED_RED = 0;DelayNms(1000);break;default:break;}}}。
HT46实时定时使用

HT47R20A-1定时/计数器(Timer/Event counter)使用介绍文件编码:HA0031s本文主要介绍HT47R20A-1定时/计数器(Timer/Event counter)的使用及注意事项。
介绍HT47R20A-1有一个16位向上计数的定时/计数器,由TMRAH、TMRAL和TMRBH、TMRBL 组成。
其中TMRAH、TMRAL用来计数;TMRBH、TMRBL是加载寄存器,用来存放定时/计数器的初值。
定时/计数器赋初值时要先写入低字节,再写入高字节,即先写入TMRAL、TMRBL,再写入TMRAH、TMRBH;定时/计数器的时钟来源可以是系统时钟、指令时钟(系统时钟/4)、RTC超TMRC为定时/计数器的控制寄存器,用来定义定时/计数器的运行模式、计数允许/禁止以及触发方式,如下表所示:名称位功能—0~2 未定义,读取时为“0”TE 3定义定时/计数器TMR作用沿(0=上升沿作用,1=下降沿作用)TON 4允许/禁止定时器计数(0=禁止,1=允许)TM0 TM1 TM2 567定义操作方式(TM2,TM1,TM0)000=定时器模式(系统时钟)001=定时器模式(系统时钟/4)010=定时器模式(RTC输出)011=A/D计数模式(由ADCR寄存器决定RC振荡)100=计数器模式(外部时钟)101=脉冲宽度测量模式(系统时钟/4)110=未定义111=未定义TMRC寄存器TM0、TM1和TM2用来定义计数模式。
其中定时器模式用来计数内部时钟,其时钟来源为内部时钟;计数器模式用来计数外部事件,其时钟来源为外部TMR引脚的输入;A/D计数模式是用来计数外部A/D输入(关于A/D转换的使用在此不做详细介绍);脉冲宽度测量模式能够对外部引脚TMR的高电平或低电平的持续时间进行计数,计数的时钟来源为指令时钟。
在定时器模式、A/D计数模式或计数器模式下,一旦定时/计数器开始计数即从定时/计数器的现有值(TMRAH和TMRAL)开始计数至FFFFH。
合泰C语言用户手册

函数 ....................................................................................................27
数组 ....................................................................................................28
位数据类型 ........................................................................................25
内嵌式汇编语言 ................................................................................26
指针与数组 ................................................................................................17
指针 ....................................................................................................17
数组 ....................................................................................................17
结构体与共用体(Structures and Unions) ..................................................18
HOLTEK HT46R53A HT46R54A A D型八位 OTP单片机 说明书

HT46R53A/HT46R54A A/D 型八位OTP 单片机盛群知识产权政策专利权盛群半导体公司在全球各地区已核准和申请中之专利权至少有160件以上,享有绝对之合法权益。
与盛群公司MCU 或其它产品有关的专利权并未被同意授权使用,任何经由不当手段侵害盛群公司专利权之公司、组织或个人,盛群将采取一切可能的法律行动,遏止侵权者不当的侵权行为,并追讨盛群公司因侵权行为所受之损失、或侵权者所得之不法利益。
商标商标权权盛群之名称和标识、Holtek 标识、HT-IDE 、HT-ICE 、Marvel Speech 、 Music Micro 、 Adlib Micro 、 Magic V oice 、 Green Dialer 、 PagerPro 、 Q-V oice 、 Turbo V oice 、 EasyV oice 和 HandyWriter 都是盛群半导体公司在台湾地区和其它国家的注册商标。
著作权Copyright © 2006 by HOLTEK SEMICONDUCTOR INC.规格书中所出现的信息在出版当时相信是正确的,然而盛群对于规格内容的使用不负责任。
文中提到的应用其目的仅仅是用来做说明,盛群不保证或不表示这些应用没有更深入的修改就能适用,也不推荐它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。
盛群产品不授权使用于救生、维生器件或系统中做为关键器件。
盛群拥有不事先通知而修改产品的权利,对于最新的信息,请参考我们的网址; HT46R53A/HT46R54A技术相关信息· 工具信息· FAQs· 应用范例− HA0003S HT48 & HT46 MCU 与HT93LC46 EEPROM 的通信− HA0004S HT48 & HT46 MCU UART 的软件实现方法− HA0084S HT46R52 之应用-镍氢电池充电器展示板特性• 低功耗的全静态CMOS设计• 工作电压:• f SYS =4MHz:2.2V~5.5V• f SYS =8MHz:3.3V~5.5V• 程序存储器:2K×15 OTP(HT46R53A)4K×15 OTP(HT46R54A)• 数据存储器:192×8 RAM(HT46R53A)280×8 RAM(HT46R54A)• A/D转换器:12bits×8通道具有外部的A/D转换器的参考电压输入引脚• 有22个双向输入/输出口• 1个与输入/输出口共用引脚的外部中断输入• 8位可编程定时/计数器,具有溢出中断和7级预分频器• 内置晶体和RC振荡电路• 6层硬件堆栈• 看门狗定时器• 低电压复位功能• HALT和唤醒功能可降低功耗• 在VDD=5V,系统频率为8MHz时,指令周期为0.5µs• 1通道8位的PWM输出,与输入/输出口共用引脚• PFD功能• 位操作指令• 查表指令• 63条指令• 指令执行时间为1或2个指令周期• 28-pinSKDIP/SOP封装概述HT46R53A/ HT46R54A是8位高性能精简指令集单片机,专门为需要A/D转换的产品而设计,例如传感器信号输入。
合泰单片机基础

�
图1-6 数据存储器
1FH 20H
特殊功能寄 存器
通用数据 存储器 不同芯片 容量不 同 7FH/FFH
RAM的特点: 掉电数据丟失.
16
2011-6-23
通用数据存储器
�
图1-7通用数据存储器的结构
-1 HT48R10A HT48R10A-1 HT48C10 HT48C1020H 40H 60H 7FH 7FH 通用数据存储 器 20H -1 HT48R30A HT48R30A-1 HT48C30 HT48C3020H -1 HT48R50A HT48R50A-1 HT48C50 HT48C5020H -1 HT48R70A HT48R70A-1 HT48C70 HT48C70-
H T48R 30 A -1 AH T48C 30 -1 30IAR MP
H T48R 50 A -1 AH T48C 50 -1 50IAR 0 MP0 IAR 1 MP1 AC C PC L TBLP TBLH W D TS STA TU S IN TC TMR 0 TMR 0C TMR 1H TMR 1L TMR 1C PA PAC PB PBC PC PC C PD PD C
I/O 端口
设备编程 电路
9
2011-6-23
时序和流水线结构
�
图1-2系统时序和流水线
振荡时钟 (系统时钟 ) 时钟相位 T1 时钟相位 T2 时钟相位 T3 时钟相位 T4 程序计数器 PC PC+1 PC+2
运行流程
取指令 (PC) 执行指令 (PC -1) 取指令 (PC+1) 执行指令 (PC) 取指令 执行指令 (PC+2) (PC+1)
合泰(HT)入门攻略

合泰(HT)入门攻略同V100版本相比,多出了如下红色内容目录一、网址链接 (2)1. 芯片选型 (2)2. 工具主页 (2)3. 工具的使用视频 (3)二、HT基本常识 (4)1. Flash/OTP (4)2. 编译器 (4)3. 软件仿真 (4)4. 资料更新 (4)三、HT价格 (5)1. 芯片价格 (5)2. 仿真器价格 (5)3. 烧录器价格 (6)四、HT培训 (7)1. 可以建议购买如下书籍 (7)2. 仿真器购买M1001D+D1003C (7)3. HT官方网站上有应用范例 (7)4. 如果想有人手把手教 (7)五、使用手册 (8)一、网址链接官网1.芯片选型⏹选型系统/ecatalog_mvc_trunk/parametricSearchController.do?compNo=H&groupNo=01⏹简易选型PDF文档/pdf/guide.pdf2.工具主页⏹上位机软体下载/China/tech/tool/MainPage1.htm⏹仿真器/烧录器硬件/China/tech/tool/MainPage1.htm⏹工具搭配组合查询/China/tech/tool/MainPage2.aspx?L=CN○1○2○3⏹IC烧录引脚需知如果不使用HT的专用e-Socket转接座,可考虑使用如下ICP方式:/english/literature/Holtek_MCU_In-Circuit_Programming_Guidelines.pdf3.工具的使用视频/HoltekC500二、HT基本常识1.Flash/OTPFlash:可重复擦写,一般名称带有F字母HT46FXX\HT66FXX系列带AD,HT48FXX\HT68FXX系列不带ADHT46FXX\HT48FXX为较早期Flash,仿真器使用HT-ICEHT66FXX\HT68FXX为近期开发的Flash功能更强,仿真器使用e-ICE/e-Link烧录档后缀为.MTP(Multi Time Program,重复烧录)OTP:不可擦写,一般名称带有R字母即:芯片ROM中的0可以写为1,但1不能再写为0HT46R06X系列带AD,HT48R06X系列不带AD烧录档后缀为.OTP(One Time Program,只烧录1次)2.编译器HT可同时支持“C语言和汇编”编程。
HT46R22单片机在电磁炉功率控制中的应用

HT46R22单片机在电磁炉功率控制中的应用摘要:介绍了电磁炉的基本工作原理,并提出了一种采用HT46R22单片机实现电磁炉功率稳定输出的功率控制方法,最后简单介绍了该方法的软硬件设计过程。
关键词:电磁炉;HT46R22;功率控制引言近年来,随着环保和节能意识的逐步提高,一种新兴的"绿色的厨具"--电磁炉正在家庭中普及。
它改变了传统的明火烹调方式,利用电磁感应原理,使电流通过内置的线圈时产生磁场,磁场内的磁力线感应到铁制器皿,产生无数高速运动的小涡流,涡流产生的巨大循环能量转换为有效热能,使锅具自行高速加热,最终直接加热食物。
电磁炉的热效率达到90%以上,同时它无烟无灰,无污染,不升高室温,不产生一氧化碳等有害物质,安全环保。
电磁炉还采用了微电脑控制,能够随意控制温度。
正是由于上述种种优点,电磁炉在发达国家的家庭普及率已经达到80%以上。
为了提高电热转换率,家用电磁炉一般采用的是高频电磁炉,须将工频电整流成直流电后再逆变成20kHz以上的高频振荡电流,在高频下,稳定功率输出和实时检测就成了设计的难点和关键所在。
采用Holtek公司产的A/D型单片机HT46R22可以方便地实现定温控制、实时检测、报警检测和功率控制,本文着重介绍功率控制的实现。
1 功率控制设计原理1.1 电磁炉的工作原理电磁炉的工作原理如图1所示,由主电路和控制电路构成。
主电路中220V交流电经整流滤波后加在由电容C1及C2和电感L1与IGBT管S组成的电压谐振变换器上。
变换器主要起两个作用,一是将工频转换为20~40kHz的高频交流电,二是将电能转换为磁能。
高频交流电加在励磁线圈上,通过电磁感应,直接作用于锅具底部,产生涡流,使锅具迅速加热。
控制电路采用单片机HT46R22作为主控制芯片,它能实现许多必要的检测和保护,同时由它产生控制所需的PWM信号,控制电磁炉的输出功率。
1.2 电磁炉的功率控制原理功率控制,就是当工频交流电稳定的情况下,电磁炉能按设定的功率稳定地输出,以使电磁炉能稳定地工作。
合泰单片机基础教程

合泰单⽚机基础教程第⼀章⼀、概念与分类单⽚机⼜称微控制器(M icro C ontroller U nit),包含:中央处理单元、程序存储器、数据存储器、输⼊/输出端⼝1、按算术逻辑单元的位长度:4位机、8位机、 16位机、 32位机、64位机2、按内部结构(1)精简指令集RISC:提供较少的基本指令,执⾏效率较⾼(2)复杂指令集CISC :提供较多的指令,包括功能强⼤的指令(如乘除法),执⾏效率较低3、按编址⽅式(1)普林斯顿结构:指令与数据共⽤同⼀块存储器,共⽤地址/数据总线,同⼀时间只能对指令或数据操作(2)哈佛结构:指令与数据是分开的,各⾃独⽴的地址/数据总线,可同时对指令与数据操作⼆、单⽚机结构概述1、中央处理单元(CPU):(1)指令解码单元(IU)通过解码硬件电路去解析⼀连串⼆进制码以作为控制器的决策核⼼(2)执⾏控制单元(EU)接受IU所发出的指⽰,将各单元中的数据进⾏互换、传送、运算、判断,再依汇编指令所指定的动作或运算进⾏输⼊、输出、存储等⼯作(3)算术逻辑单元(ALU)可从指令集中实现算术和逻辑操作,ALU在接收相关的指令码后执⾏需要的算术与逻辑操作,并将结果存储在指定的存储位置2、程序存储器(ROM)内容⼀般不可更改的,⽤于存放⽤户代码的存储器,不同型号不同容量3、数据存储器(RAM)内容可更改的,⽤于存放单⽚机状态或⽤户变量的存储器,不同型号不同容量4、总线(BUS)⽤于内部各单元间信息互通,⼀般有3种总线:数据总线、控制总线、地址总线(1)数据总线:传送各单元间数据的硬件(2)控制总线: 控制单⽚机数据的读或写,使、除能某单元以接收或传送数据(3)地址总线: 主要⽤来寻址,指⽰数据存取的位置,即⽤地址总线寻址三、 HT合泰单⽚机结构分析(以HT48系列为例)1、时序和流⽔线结构(1)系统时钟由晶体/陶瓷震荡器或RC震荡器提供(2)指令周期由T1~T4 4个内部时钟组成,流⽔线结构保证指令在⼀个指令周期内被有效执⾏T1:程序计数器⾃动加1并抓取新指令T2~T4:完成解码、算术逻辑并执⾏功能(3)当程序计数器的内容改变时,如call调⽤或jmp跳转时,指令需要多⼀个指令周期取出当前指令地址的下⼀条指令,并清除流程,再⽤另⼀个周期去执⾏下⼀动作2、程序计数器(PC)(1)程序指令码的读取是由于内部有⼀程序计数器来寻址,在指令码被读取后程序执⾏期间,程序计数器指向下⼀条要执⾏的指令地址(2)复位起始地址是0000h,在每条指令执⾏后⾃动加1(jmp、call等除外) 3、堆栈(Strack)是存储器特殊的部分,在⼦程序调⽤或中断响应时,程序指针压⼊堆栈,返回指令(RET或RETI)使程序指针返回到上次⼦程序调⽤位置四、程序存储器(ROM)存放⽤户代码,内容为⼆进制机器码1、分类:掩模 \ OTP \ EEPROM \ FLASH2、⼀般为14Bit~16Bit,除了存放程序外也包含中断⼊⼝和数据表3、特殊向量地址(以HT48R50A-1为例):(1)复位向量地址: 000H(2)外部中断向量地址: 004H(3)定时/计数器0中断向量地址: 008H(4)定时/计数器1中断向量地址: 00CH五、数据存储器(RAM)1、可更改的8位内部存储器,⽤来存放临时数据,分为“专⽤寄存器”和“通⽤数据存储器”2、通⽤数据存储器(⽩⾊部分)3、专⽤寄存器六、专⽤寄存器1、间接寻址寄存器IAR0/IAR1在间接寻址寄存器上的任何动作,将对间接寻址指针(MP0/MP1)所指定的数据存储地址产⽣的读/写操作2、间接寻址指针MP0/MP1与IAR0/IAR1组成间接寻址操作功能3、累加器ACC所有ALU得到的运算结果都会暂时存储在累加器,数据传送也需要累加器4、程序计数器低字节寄存器PCL直接给PCL赋值将导致直接跳转到本页范围的某⼀地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无法预期芯片在上述标示范围外的工作状态,而 且若长期在标示范围外的条件下工作,可能影响芯片的可靠性。 Rev. 2.20 4 2014-06-06
HT46R65/HT46C65 直流电气特性
符号 VDD IDD1 IDD2 IDD3 ISTB1 ISTB2 参数 工作电压 工作电流 (晶体振荡、RC 振荡) 工作电流 (晶体振荡,RC 振荡) 工作电流 (fSYS=32768Hz) 静态电流 (*fS=T1) 静态电流 (*fS=RTC 振荡) 静态电流 (*fS=WDT 振荡) VDD — — 3V 5V 5V 3V 5V 3V 5V 3V 5V 3V 5V 3V 5V 3V 5V 3V 5V 3V 5V — 测试条件 条件 fSYS=4MHz fSYS=8MHz 无负载,ADC 关闭 fSYS=4MHz 无负载,ADC 关闭 fSYS=8MHz 无负载,ADC 关闭 无负载,系统 HALT, HALT 时 LCD 关闭 无负载,系统 HALT, HALT 时 LCD 打开, 电容型偏压 无负载,系统 HALT, HALT 时 LCD 打开, 电容型偏压 无负载,系统 HALT, HALT 时 LCD 打开, 电阻型偏压,1/2bias, VLCD=VDD (选择低电流偏压) 无负载,系统 HALT, HALT 时 LCD 打开, 电阻型偏压,1/3bias, VLCD=VDD (选择低电流偏压) 无负载,系统 HALT, HALT 时 LCD 打开, 电阻型偏压,1/2bias, VLCD=VDD (选择低电流偏压) 无负载,系统 HALT, HALT 时 LCD 打开, 电阻型偏压,1/3bias, VLCD=VDD (选择低电流偏压) — 最小 2.2 3.3 — — — — — — — — — — — — — — — — — — — 0 典型 — — 1 3 4 0.3 0.6 — — 2.5 10 2 6 17 34 13 28 14 26 10 19 —
概述
HT46R65/HT46C65 是 8 位高性能精简指令集单片机, 专门为需要 A/D 转换和 LCD 显示的产品而设计。 掩膜版本 HT46C65 与 OTP 版本 HT46R65 引脚和功能完全相同。 低功耗、I/O 使用灵活、计数器、振荡类型选择、多通道 A/D 转换、脉冲测量功能、暂停和唤醒功能, 以及 LCD 显示功能,使这款单片机可以广泛应用于需要 A/D 转换和 LCD 显示的产品中,例如电子测量仪 器、环境监控、手持式测量工具、马达控制等工业和家庭系统中。
注:有关“fS”的具体说明请参阅 WDT 的时钟选择。
交流电气特性
符号 fSYS1 fSYS2 fRTCOSC fTIMER tWDTOSC tRES tSST tLVR tINT tAD tADC tADCS 参数 系统时钟 系统时钟 (32768Hz 晶体振荡) RTC 频率 定时器输入频率 (TMR0/TMR1) 看门狗振荡器周期 外部复位低电平脉宽 系统启动延迟时间 低压复位宽度 中断脉冲宽度 A/D 时钟周期 A/D 转换时间 A/D 采样时间 VDD — — — — — — 3V 5V — — — — — — — 2.2V~5.5V 3.3V~5.5V — — — 上电或从 HALT 状态唤醒 — — — — — 测试条件 条件 2.2V~5.5V 3.3V~5.5V 2.2V~5.5V — 最小 400 400 — — 0 0 45 32 1 — 1 1 1 — — 典型 — — 32768 32768 — — 90 65 — 1024 — — — 76 32
HT46R65/HT46C65 A/D+LCD 型八位单片机
特性
•
• • • • • • • • • •
工作电压: fSYS=4MHz:2.2V~5.5V fSYS=8MHz:3.3V~5.5V 24 个双向输入/输出口 2 个外部中断输入 2 个 16 位定时/计数器,具有 PFD(可编程分频 器)功能 41×3 或 40×4 段的 LCD 驱动(SEG0~SEG23 可 由掩膜选项设置为逻辑输出) 8K×16 程序存储器 384×8 数据存储器 具有 PFD 功能,可用于发声 一个实时时钟(RTC) 一个 8 位的实时时钟预分频器 看门狗定时器
System Clock OSC2 (RC only) PC PC PC+1 PC+2 T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4
Fetch INST (PC) Execute INST (PC-1)
Fetch INST (PC+1) Execute INST (PC)
静态电流 (*fS=RTC 振荡)
ISTB5
静态电流 (*fS=RTC 振荡)
IST流 (*fS=WDT 振荡) 输入/输出口、TMR0、 TMR1 、 INT 0 、 INT 1 的低电平输入电压 输入/输出口、TMR0、 TMR1 、 INT 0 、 INT 1 的低电平输入电压 低电平输入电压( RES ) 高电平输入电压( RES ) 低电压复位 低电压检测
• • • • • • • • • • • • •
蜂鸣器输出 内置晶体、RC 和 32768Hz 晶体振荡电路 HALT 和唤醒功能可降低功耗 16 层硬件堆栈 8 通道 10 位解析度的 A/D 转换器 4 通道 8 位 PWM 输出,与 4 个输入/输出口共 用引脚 位操作指令 查表指令,表格内容字长 16 位 系统频率为 8MHz 时,指令周期为 0.5μs 63 条指令 指令执行时间为 1 或 2 个指令周期 低电压复位/检测功能 64/100-pin LQFP 封装
VIL1
VIH1 VIL2 VIH2 VLVR VLVD
Rev. 2.20
— — — — —
5
— — — — —
0.7VDD 0 0.9 VDD 2.7 3.0
— — — 3.0 3.3
VDD 0.4 VDD VDD 3.3 3.6
V V V V V
2014-06-06
HT46R65/HT46C65
Ta=25℃
最大 5.5 5.5 2 5 8 0.6 1 1 2 5 20 5 10 30 60 25 50 25 50 20 40 0.3 VDD 单位 V V mA mA mA mA mA μA μA μA μA μA μA μA μA μA μA μA μA μA μA V
ISTB3
ISTB4
输入/输出
输入/输出
上拉电阻
输入/输出
上拉电阻 PWM
输入/输出 — 输入 输入 输入 输出 输出
上拉电阻
— — — — 1/3 或 1/4 Duty 逻辑输出
OSC1 OSC2
输入 输出
晶体或 RC
OSC3 OSC4 VDD
RES
输入 输出 — 输入
RTC 或系统时钟 — —
极限参数
电源供应电压………….VSS-0.3V~VSS+6.0V 端口输入电压………….VSS-0.3V~VDD+0.3V 储存温度………….-50℃~125℃ 工作温度………..….-40℃~85℃
IOL1 IOH1 IOL2 IOH2 RPH VAD EAD IADC 输入 / 输出口逻辑输出 灌电流 输入 / 输出口逻辑输出 源电流 LCD Com 和 Segment 电流 LCD Com 和 Segment 电流 输入 /输出口、 INT0 和 INT1 上拉电阻 A/D 输入电压 A/D 转换误差 A/D 转换电路打开时增 加的系统功耗 3V 5V 3V 5V 3V 5V 3V 5V 3V 5V — — 3V 5V VOL=0.1VDD VOH=0.9VDD VOL=0.1VDD VOH=0.9VDD — — — — — 6 10 -2 -5 210 350 -80 -180 20 10 0 — — — 12 25 -4 -8 420 700 -160 -360 60 30 — ±0.5 0.5 1.5 — — — — — — — — 100 50 VDD ±1 1 3 mA mA mA mA µA µA µA µA kΩ kΩ V LSB mA mA
指令执行时序 单片机的系统时钟由晶体振荡器或 RC 振荡器和 32768Hz 的晶体振荡器产生。该时钟在芯片内部被分 成四个互不重叠的时钟周期。一个指令周期包括四个系统时钟周期。 指令的读取和执行是以流水线方式进行的, 这种方式在一个指令周期进行读取指令操作,而在下一个 指令周期进行解码与执行该指令。因此,流水线方式使多数指令能在一个周期内执行完成。但如果渉及到 的指令要改变程序计数器的值,就需要花两个指令周期来完成这一条指令。
Ta=25℃
最大 4000 8000 — — 4000 8000 180 130 — — — — — — — kHz μs μs *tSYS ms μs μs tAD tAD 单位 kHz Hz
注:*tSYS =1/fSYS
Rev. 2.20
6
2014-06-06
HT46R65/HT46C65
系统功能说明
Rev. 2.20
1
2014-06-06
HT46R65/HT46C65
方框图
Rev. 2.20
2
2014-06-06
HT46R65/HT46C65
引脚图
Rev. 2.20
3
2014-06-06
HT46R65/HT46C65 引脚说明
引脚名称 PA0/BZ PA1/ BZ PA2 PA3/PFD PA4~PA7 PB0/AN0 PB1/AN1 PB2/AN2 PB3/AN3 PB4/AN4 PB5/AN5 PB6/AN6 PB7/AN7 PD0/PWM0 PD1/PWM1 PD2/PWM2 PD3/PWM3 PD4/ INT0 PD5/ INT1 PD6/TMR0 PD7TMR1 VSS VLCD VMAX V1,V2,C1,C2 COM0~COM2 COM3 / SEG40 SEG0~SEG39 输入/输出 掩膜选项 唤醒功能 上拉电阻 蜂鸣器 PFD 说明 8 位双向输入/输出口。每一位可由掩膜选项设置 为唤醒输入。可由软件设置为 CMOS 输出、带或 不带上拉电阻(由上拉电阻选项决定: 位选择)的斯 密特触发输入。BZ、BZ 和 PFD 分别与 PA0、PA1 和 PA3 共用引脚。 8 位双向输入/输出口。可由软件设置为 CMOS 输 出、带或不带上拉电阻(由上拉电阻选项决定:位 选择)的斯密特触发输入、或 A/D 输入。 一旦 PB 口做为 A/D 输入(由软件设置), 则其输入 /输出功能和上拉电阻会自动失效。 4 位双向输入/输出口。可由软件设置为 CMOS 输 出、带或不带上拉电阻(由上拉电阻选项决定:位 选择 ) 的斯密特触发输入。PWM0/PWM1/PWM2/ PWM3 输出与 PD0/PD1/PD2/PD3 共用引脚 ( 由 PWM 选项决定)。 4 位双向输入/输出口。可由软件设置为 CMOS 输 出、带或不带上拉电阻(由上拉电阻选项决定:位 选 择 ) 的 斯 密 特 触 发 输 入。 INT0 / INT1 /TMR0/ TMR1 与 PD4/PD5/PD6/PD7 共用引脚。 负电源,接地。 LCD 电源。 IC 最高电压,接至 VDD、VLCD 或 V1。 电压泵。 SEG40 可由掩膜选项设置为 LCD 显示的 Segment 或 Common 输出端。COM0~COM2 是 LCD 驱动 的 Common 输出。 LCD 驱动的 Segment 输出。SEG0~SEG23 可掩 膜选择为逻辑输出口。 OSC1、OSC2 连接 RC 或晶体(由掩膜选项确定) 以产生内部系统时钟。在 RC 振荡方式下,OSC2 是系统时钟四分频的输出口。系统时钟也可以选 择为 RTC 振荡;如果选择 RTC 振荡作为系统时 钟,则这两个引脚可以空接。 实时时钟振荡器。OSC3、OSC4 连接 32768Hz 的 晶体振荡器,用于提供定时或系统时钟(由掩膜选 项确定)。没有内建电容。 正电源。 斯密特触发复位输入。