遥控型单片机使用手册_第1页
遥控型单片机使用手册_第2页
遥控型单片机使用手册_第3页
遥控型单片机使用手册_第4页
遥控型单片机使用手册_第5页
已阅读5页,还剩172页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HT48RA0-2,HT48RA0-1HT48RA1,HT48RA3,HT48RA5Copyright2005byHOLTEKSEMICONDUCTOR何形式、或传输。第一部份单片机概 第一章硬件结 简 特 技术特 内核特 周边特 选择 系统框线 引脚分 引脚说 极限参 直流电气特 交流电气特 系统结 时序和流水线结构 程序计数 堆 算术及逻辑单元– 程序 结 特殊向 多bank管 查 数据 结 通用数 数 i特殊功能寄存 间接寻址寄存器–IAR,IAR0, 间接寻址指针–MP,MP0, 区指针– 累加器– 程序计数器低字节寄存器– 表格寄存器–TBLP, 看门狗定时寄存器– 状态寄存器– 中断控制寄存器– 定时/计数寄存 输入/输出端口和控制寄存 输入/输出端 上拉电 PA/PB口的唤 输入/输出端口控制寄存 引脚共享功 编程注意事 定时/计数 配置定时/计数器输入时定时/计数寄存器–TMR0, 定时/计数控制寄存器– 定时器模 事件计数器模 脉冲宽度测量模 可编程分频器– 预分频器 输入/输出接 编程注意事 载波发生 中 中断寄存 中断优先 外部中 定时/计数器中 编程注意事 复位和初始 复 振荡 系统时钟配 系统晶体/陶瓷振荡 系统电阻电容振荡 看门狗定时振荡 暂停模式下的暂停和唤 看门狗定时 掩膜选 应用电 第二部份程序语 第二章指令集介 指令 指令周 数据的传 算术运 逻辑和移位运 分支和控制的转 位运 查表运 其它运 指令设定一览 惯 第三章指令定 第四章汇编语言和编译 常用符 语句语 名 操作 操作数 注 编译伪指 条件编译伪指 文件控制伪指 程序伪指 数据定义伪指 宏指 汇编语言指 名 助记 操作数、运算子和表达 其 前置局部标 汇编语言保留 编译器选 编译列表文件格 源程序列 编译总 其 第三部份开发工 第五章单片机开发工 HT-IDE集成开发环 盛群单片机仿真器—HT- HT-ICE接口 OTP烧写 OTP适配 系统配 HT-ICE接口卡设 安 系统需 硬件安 软件安 第六章快速开 步骤一:建立一个新项 步骤二:将源程序文件加到项目 步骤三:编译项 步骤四:烧写OTP单片 步骤五:传送程序与掩膜选项单至 附 附录A特性曲线 附录B封装信 附录C应用注意事 系统振荡 晶体/陶瓷振荡 单引脚下拉电阻型RC振荡 复位电 外部RES电路描 简易型RC复位电 高型RC复位电 外接三级管低电压复位电 外接电压检测IC复位电 内部POR电路和内部低电压复位电 内部看门狗RC振荡 功能概 工艺、工作电压和温度差 PAGE\*romanvPAGE\*romanv言言前高性能且低价位的单片机。此系列中的HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1专为控制应用所设计,并集成了载波发生器。HT48RA1/HT48CA1HT48RA3/HT48CA3和HT48RA5/HT48CA5也同样专为控制应用设计,但是他们容量更大,特别适合用于多功能的应用。PAGEPAGE1 第一部份单片机概论第一部PAGEPAGE61第一1本章主要为型单片机的规格信息,并且包含了所有参数和相关的硬件信份,也保证使用者可以充分利用型单片机。简HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1HT48RA1/HT48CA1HT48RA3/HT48CA3HT48RA5/HT48CA58位高性能、高效益的RISC性,主要的不同在于I/O引脚数目,RAM和ROM的容量,定时器数目和大小可编程(One-TimeProgrammable,OTP)单片机,当配合使用盛群半导体的程序开对于那些已经设计成应用,掩膜版的HT48CA0-2、HT48CA0-1、HT48CA1、HT48CA3和HT48CA5则可满足大量生产和低成本的需求。由于特技术特2.0V到3.6V(HT48RA0-2/HT48CA0-2,HT48RA0-1/HT48CA0-2.0V(HT48RA1/HT48CA1,(HT48RA0-2/HT48CA0-2,HT48RA0-1/HT48CA0-1(HT48RA1/HT48CA1,工作温度40C85C(工业级规格温度50C内核特程序1K×14OTP/MaskROM(HT48RA0-2/HT48CA0-2,HT48RA0-1/HT48CA0-数据224×8(HT48RA1/HT48CA1,表格功1-level(HT48RA0-2/HT48CA0- HT48RA0-1/HT48CA0-8-level(HT48RA1/HT48CA1,周边特输上拉电,,看门狗定时器,(除HT48RA0-2/HT48CA0-2,HT48RA0-1/HT48CA0-具有低电压复位(LVR)特选择

程序器和数据器的容量、I/O数目和定时器功能。为了帮助使用者在型程器数器输入/出定时载发生中堆HT48CA-1041——√—1HT48CA-1061——√—1√—38√—38√—38注意型号部份包含“CMask版本,而“R”则是OTP77系统框###!!" %# '%/*('( '(%(")'')注意:1.本系统框线图为OTP单片机,Mask型单片机没有DeviceProgrammingCircuitryHT48RA0-2/HT48CA0-2,HT48RA0-1/HT48CA0-1没有可编程定时/仅HT48RA0-2/HT48CA0-2,HT48RA0-1/HT48CA0-1HT48RA0-2/HT48CA0-2,HT48RA0-1/HT48CA0-1没有WDT振荡器引脚分00244402 11<38 09 :22724 2424 444444<;:20210048092 :20 <30< ;

22 2

01.0 0 0450 0 2

0 2

+0 0 023002.:6+80250021;730025002<4引脚说HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-说— 位双向输入/输出口带上拉电阻。软件指令决定引脚是NMOS输出或者特输入Wake-2位双向输入/输出口带上拉电阻。每个引脚可以掩膜选定为唤醒输入。软件指令决定引脚是NMOS输出或者特IWake-6 位特触发器输带上拉电阻。每个引脚可以掩项决定为唤醒输入。OCarrier电平或者载波输出口PC0可以掩膜选项决定为CMOS输出,CrystalorOSC1OSC2连接外部RC电路或晶体振荡器(由掩膜选项定)作为内部系统时钟。对于外RC系统时钟的操作,OSC2I触发复位输入。低电平有效正电源供应负电源供应,接地注意1.PB8HT48RA1/HT48CA1,HT48RA3/HT48CA3说Wake-8位双向输入/输出口每个位可由掩膜选项设置成唤醒输入。软件指令决定引脚是CMOS输出或特输入。掩膜选项决8位双向输入/输出口件指令决定引CMOS输出或斯是否有上拉电阻。引脚不能单个被设成上拉电阻。PB0和PFD引脚共用,由掩膜选项决定PC1~PC4Pull-PC0和PC5分别与外部计数引脚TMR0和TMR1共用PF0/Pull-PF0和外部中断INT引脚共用CrystalorOSC1OSC2连接外部RC电路或晶体振荡器(由掩膜选项决定)作为内部系统时钟。对RC系统时钟的操的输出端信号是系统时钟四分频I触发复位输入。低电平有效正电源供应负电源供应,接地注意:PA上的每个引脚可通过掩膜选项设定成拥有唤醒功极限参

供应电压(HT48RA0-2/HT48CA0-2,HT48RA0-1/HT48CA0-1) VSS0.3Vto供应电压(HT48RA1/HT48CA1, VSS0.3Vto输入电 VSS–0.3Vto温 工作温 直流电HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0- 符参最典最单条OperatingVOperatingNoload,StandbyNoload,1InputLowVoltageforI/O0VInputHighVoltageforI/OVInputLowVoltage(RES0VInputHighVoltage(RESVLowVoltageResetVI/OPortSink48PC0/REMPortSourcePull-HT48RA1/HT48CA1,HT48RA3/HT48CA3和 符参最典最单条OperatingVOperatingNoload,24OperatingCurrentNoload,48Standby(WDTEnabled,WDTRCOSCNoload,54Noload,12InputLowVoltageforI/O0VInputHighVoltageforI/OVInputLowVoltage(RES0VInputHighVoltage(RESVLowVoltageResetVVI/OPortSink48I/OPortSourcePull-交流电HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0- 符参最典最单条SystemExternalResetLowPulse1LowVoltageWidthto1HT48RA1/HT48CA1,HT48RA3/HT48CA3和 符参最典最单条SystemClock(Crystal2.0V~3.3V~SystemClock(RC2.0V~3.3V~TimerI/PFrequency00(WDTOSC)8ExternalResetLowPulse1Power-upresetLowVoltageWidthto1InterruptPulse1DataROMAccess1*tSYS=1/fSYS1or系统结内部系统结构是盛群半导体公司型单片机具有良好运行性能的主要因RISC结构,此系列单片机具有高运算速度和高性能的特性。通的数据路径则以通过累加器或ALU的方式加以简化。有些寄存器在数据保了在提供最大可靠度和灵活性的输入/输出控制系统时,仅需要少数的外部1K至K和2至24据。时序和流水线结构系统时晶体/陶瓷振荡器,或是由RC振荡器产生,细分为T1~T4四个内部产生的非时序。程序计数器在T1时自动加一并抓取一条新的指令。剩下的T2~T4时钟完成和执行功能,因此一个T1~T4时钟组成一个指令周钟有fSYS/4的频率,拥有1:3高/低的占空比 #####0#4#7#6>> -$0(->0-.().3).))))%系统时序和

>4 ( AB04C(

3 "

3 ? )3 B04C

) 7 )3 ( 3"5?程序计数程序执行期间,程序计数器用来指向下一条要执行的指令地址。除了JMP或CALL这些要求跳转到一个非连续的程序器地址之外,它会在每条指令执程序计数器宽度会因程序器容量的不同而不同。然而必须要注意只有低8注意:程序计数器较低字节在程序控制下是完全可用的。PCL的使用可能导致程序分支,所以 的信息可在特殊功能寄存器部份中找到HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-模程序计数复0000000000条件跳ProgramCounter+写入PCL寄存跳转或调用子程由子程序返模程序计数复0000000000000外部中0000000000100定时/00000000001000定时/10000000001100条件跳ProgramCounter+写入PCL寄存跳转或调用子程由子程序返模程序计数复000000000000000外部中000000000000100定时/计数器0000000000001000定时/计数器1000000000001100条件跳PC14~PC13,(PC12~PC0+2):(位于当前写入PCL寄存跳转或调用子程由子程序返模程序计数复0000000000000000外部中0000000000000100定时/计数器00000000000001000定时/计数器10000000000001100条件跳PC15~PC13,(PC12~PC0+2):(位于当前写入PCL寄存跳转或调用子程由子程序返注意:1.PC15~PC8S15~S0:堆栈寄存PC13,PC14和PC15指向的8K以外的程序器,只能通过区指针来堆内容被压入到堆栈中。当子程序或中断服务程序结束时,返回指令(RET或RETI)使程序计数器从堆栈中重新得到它以前的值。当一个复位之后,SP将指向堆栈的顶部。///047/9""" 响应将被。当堆栈指针减少(///047/9""" 2注意:1.HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1而言1层堆栈可用算术及逻辑单ALU连接到单片机的数据总线,在接收相关的指令码后执行需要的算术与逻辑操作,并将结果在指定的寄存器,当ALU计算或操作时,可能导致进改变,ALU所提供的功能如下:算术运算:ADD、ADDM、ADC、ADCM、SUB、SUBM、SBC、SBCM逻辑运算:AND、OR、XOR、ANDM、ORM、XORM、CPL、移位:RRA、RR、RRCA、RRC、RLA、RL、RLCA、增加和减少:INCA、INC、DECA、分支判断:JMP、SZ、SZA、SNZ、SIZ、SDZ、SIZA、SDZA、CALL、RET程序程序器用来存放用户代码即程序。对于型的单片机而言,有两种程序器可供使用。第一种是一次可编程器(OTP),使用者可编写他们的应用码到中,具有OTP器的单片机在名称上有“R”做标示。中小型量产,OTP亦为极佳的选择。另一种器为掩膜器,单片机名称上有“C”做标示,这些对于大量生产提供最佳的成本效益。结14位的程序器的容量是1K,16位的程序器的容量则是40K,这取决于中断。表格数据可以设定在程序器的任何地址,由1个或者2个表格指针来寻HT48RA3/HT48CA3和HT48RA5/HT48CA5分别有24K和40K 1C6C39C.C1C6C39C.C.C.C.16+3=9+1C+01 6C3o91oC0o 1 1 11 111 1 10 7: :. .

#7:.

#0. 0.0;.

0 #7

#<.

0;

#<:.

# #.

0;

#特殊向除HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1这个向量用除HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1此内部中断HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1此内部中断Bank管HT48RA3/HT48CA3和HT48RA5/HT48CA5有多个程序Bank,一些特殊当执行”CALL”bank的子程序,或者执行”JMP”指令来跳转到不同bank的地址时,必须先正确设置区指针,来确定目标bank。伪指令ROMBANK最佳用法如下所列。当执行”CALL”和”JMP”指令,BP特殊的值。因此在不同bank之间的转移过程中,BP必须管理。以下的范例就是HT48RA3/HT48CA3的程序,说明了如何在不同的bank之间使用”CALL”和”JMP”指令Include::rombank0 ;definerombank1codesec1 rombank2codesec2 ;definerombank2::codesec0.sectionat000h‘code’;locates;program;intoBank ;re-initializingthe;afterjmp:::::: a,BANK ;routine“routb2”islocated;Bank bp, ;loadbanknumberfor;into ;callsubroutinelocated;Bank ;programwillreturnto;afterRETinBank ;butBPwillretainBank2 ;soclearthe a,BANKlab1 ;lab1islocatedinBank1 bp,a ;asbankpointerhasbeen;programwilljumpto::;intoBank:::: a,BANKlab3 ;lab3islocatedinBank3 bp,a ;asbankpointerhasbeen;programwilljumptolab3;intoBank::roubt2:: ;returnprogramtoBank0but;will;Bank2roubt2::codesec3.sectionat000h‘code’;locatesfollowing;intoBank:: a,BANKlab0 ;lab0islocatedinBank0 bp,a ;programwilljumpto的中断子程序。然而要注意的是,虽然无论什么情况下程序都会跳转到bank0,但是区指针仍然保持原先的值,而不是指向bank0。因为这个原在bank0中执行调用子程序或者跳转指令。在”RETI”指令执行以前,区Include::rombank0 ;definerombank1 ;definerombank2 ;define::;intoBankclr ;clearthebankpointer ;power-on:org ;jumpherefromanybank;occursBPretainsmovaccbuf0, ;backupmova, ;backupbankclr ;clearBPtoindicateBank;originalBPvaluewillremain;risetofalsejmpandcalljmp ;jumptoexternal::org ;jumpherefromanybankwhen;0;occurs–BPretainsoriginalmovaccbuf1, ;backupmova, ;backupbankclr ;clearBPtoindicateBank;originalBPvaluewillremain;risetofalsejmpandcalljmp ;jumptotimer0::org ;jumpherefromanybankwhen;1;occurs–BPretainsoriginal:: ;externalinterruptmovbp_exti, ;bankupbankmova,status ;bankupstatusregistermovstatusbuf0,a ;bankupstatusregister::mova,statusbuf0 ;restorestatusregistermovstatus,amova,bp_exti ;restorebankpointermovbp,amova, ;restore ;returntomainprogram;calling:: ;timer0interrupt

a,status::

;bankupbank;bankupstatus;bankupstatusmova,statusbuf1 ;restorestatusregistermovstatus,amova,bp_tmr0 ;restorebankpointermovbp,amova, ;restore ;returntomainprogram;calling::查表格时,必须先设定表格指针来确定程序器的地址。然而部分只有表格低字节指针,另一部分有表格低字节和高字节指针。要注意的是,不同查表方式会略有不同。殊寄存器,而高字节中未使用的位将被为0。下图是HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1的查表寻址/:22

%2" G &%2"以下范例说明了HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1如何定表格指针、如何查表。这个例子使用的表格数据用ORG伪指令在器的最后一页,在此ORG伪指令中的值为300H,即1K程序器HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1单片机中最后一页器的开始地址,而表格指针的初始值则为06H,这可保证从数据表格的第一笔数据位于程序器地址306H即最后一页开始地址后六个地址。值得注意的是假如”TABRDC[m]”指令被使用,则表格指针指向当前页。表格数据低tempreg1db ;temporaryregister#1tempreg2 ;temporaryregister:: ;thisaddressismov ;tothelastpageorpresent::tabrdl ;transfersvalueintable;by;pointerto;dataatprog.memoryaddress;transferredtotempreg1anddectblp ;reducevalueoftablepointerbyonetabrdl ;transfersvalueintable;by;pointerto;dataatprog.memoryaddress;transferredtotempreg2and;inthisexamplethedata˝1A˝;transferredtotempreg1and;˝0F˝toregister;thehighbyteregister::org300h ;setsinitialaddressoflastpagedc00Ah,00Bh,00Ch,00Dh,00Eh,00Fh,01Ah,01Bh::对于HT48RA1/HT48CA1、HT48RA3/HT48CA3和而言,它们有两个表格指针寄存器TBLPTBHP,可以从中获取表格地址低字任何地址任何页的表格数据。这类中,当设定了低字节表格指针和高字节表格指针后,就可以使用指令”TABRDC[m]”获取任何程序器地址的表格数据,或者使用指令”TABRDL[m]”获取最后页的表格数据。无论使用何中。程序器中高字节表格数据会被送往TBLH特殊寄存器。高字节中未使用的位将被为0。下图HT48RA1/HT48CA1、HT48RA3/HT48CA3HT48RA5/HT48CA522表寻址/数据22

%2" G & %2"使用的表格数据用ORG伪指令在器中。在此ORG伪指令中的值为000HBank2起始地址而言,绝对地址是”4000H”。这里高字节表格指针的值是40H,低字节表格指针的初始值则为05H。这可保证从数据表格读取的第一笔数据位于程序器地址4005H,即ORG伪指令定义地址后五个器,而表格数据高字节”55H”将会自动的被传送到TBLH寄存器。Include::data.section ::rombank0codesec0;Bank0definitionrombank1codesec1;Bank1definitionrombank2codesec0;Bank2definition::codesec0.sectionat0jmp:org::mova,040h ;setuptablehighbyteaddressmovtbhp,a::mova,005h;setuptablelowbytmovtblp,a;tablepointeraddressisnow4005Htabrdctemp;readtabledatafromPCaddress4005H ;and“55H”willbeplacedin;::org ;thisdefinestheoffsetfromthe;addressofBank2whichis4000Hdc000aah,011bbh,022cch,033ddh,044eeh,055ffh::因为TBLH寄存器是只读寄存器,不能重新,若主程序和中断服务程序都使用表格指令,应该注意它的保护。使用表格指令,中断服务程序可TBLH的值,若随后在主程序中再次使用这个值,则会发生错误。因此建议避免同时使用表格指令。然而在某些情况下,如果同时使用表格读取指令是不可避免的,则在执行任何主程序的表格指令前,中断应该先禁HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-指11指11111指1011111指10011111注意: PC15~PC8:当前程序计数器对HT48RA5/HT48CA516b15~b0b9~b0数据数据器是内容可更改的8位RAM内部器,用来临时数据,且分正确操作密切相关。大多特殊功能寄存器都可在程序控制下直接和写入,可在程序控制下进行和写入。结数据器的两个部份,即和通用数据器,位于连续的地址。全部RAM为8位宽度,但器长度因所选择的单片机而不同。所有的数据存储器的开始地址都是00HHT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1的结束地址是3FH,HT48RA1/HT48CA1、HT48RA3/HT48CA3HT48RA5/HT48CA5FFHACC % 注意:除了少数的位,大部份数据器的位都可以直接使用“SET[m].i”和“CLR[m].i”加以操作。数据器也可通过间接寻址指针MP,MP0和MP1进行存取。通用数据该RAM区域就是通用数据器。这个数据区可让使用者进行和写入的操作。使用“SET[m].i”和“CLRm].i”指令可对个别的位做置位或复位 CCCC4 4CCCC7.数据取指令对器中未使用的地址进行将得到“00H”的值。以下是型单片机中,数据器的详细结构图:CCCCC2CCCCCC2C2CC C22522..2222522..2CC1 CCC1C1 C1C C1CC1CC1CC1CC1CC0CC0C0C0C0C0C0C0CC0CC0CC0CC0CC0CC0C03

0 00 0 @

H110.特殊功为了确保单片机能成功的操作,数据器中设置了一些内部寄存器。这存器确保内部功能(如定时器、中断和看门狗等)和外部功能(如输入/输出数据控制据以00H地特殊功能寄存器空间和通用数据器的起始地址之间,有一些未定义的数回00H间接寻址寄存IARIAR0,针所指定的器地址产生对应的读/写操作。对于HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1系列,提供一个间接寻址寄存器(IAR)和一个间接寻址指针(MP)HT48RA1/HT48CA1HT48RA3/HT48CA3和HT48RA5/IAR寄存器将返回00H的结果,而间接写入此寄存器则不做任何操作。间接寻址指MP,MP0,HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1提供一个间寻址指针,即MP。而对于HT48RA1/HT48CA1、HT48RA3/HT48CA3和注意:对HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1而言,间接寻址指7位没有作用。可是,必须注意当间接寻址指针被时,其值为1。成地址adres1到adres4。data.section´data´ db? db db db? code.sectionat0´code´org00hmova,04h ;setupsizeofblockmovblock,amov clr ;clearthedataataddressdefinedinc ;incrementmemorysdz ;checkiflastmemorylocation;been区指区指针只存在HT48RA3/HT48CA3和HT48RA5/HT48CA5系列单片HT48RA3/HT48CA3和HT48RA5/HT48CA5分别有24K和40K的程序空间,这些超出8K的程序空间就需要设定区指针。程序器被分成若干个bank空间,每个bank占8K×16位空间。8K以外的程序此指定正确的程序器bank。任何复位都会把区指针清零为”00H”,除了WDT唤醒HALT造成的复位,这种情况下区指针不变。& & & & 累加所有ALU得到的运算结果都会暂时在ACC累加器里。若没有累加器,ALU必须在每次进行如加法、减法和移位的运算时,将结果写入到数据时功能,例如在一使用者定义的寄存器和另一个寄存器之间传送数据程序计数器低字节寄存器–址。直接给PCL寄存器赋值将导致程序直接跳转到程序器的某一地址,表格寄存器–TBLP,TBHP,这三个特殊功能寄存器对在程序器中的表格进行操作。TBLP和TBHP分别是为表格低字节和高字节指针,指向表格的地址。需要注意,HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1没有TBHP寄存器。它们的值必须在表格指令执行前加以设定。由于它的值可以被如INC或DEC看门狗定时寄存仅HT48RA1/HT48CA1、HT48RA3/HT48CA3和HT48RA5/HT48CA5系列WDTSWDTS寄存器赋值,可以设定适当的预分频值的看门狗定时器时。要注意的是,在WDTS中只有较低的3位被使用来设定从1到128之间的分频比例,其他5位可以被程序设计者用来做。状态寄存不同的指令后,与状态寄存器有关的运算可能会得到不同的结果。TO标志位PDF标志位只会受执行“HALT”或“CLRWDT”指令或系统上响。置位,否则C被清零,同时C也会被带进位/借位的移位指令所影响。生借位时,AC被置位,否则AC被清零。系统上电或执行“CLRWDTPDF,而执行“HALT”指令则会置位PDF。系统上电或执行“CLRWDT”或“HALT”指令会TO,而WDT溢出则会置位TO。则需谨慎的去做正确的。J& &J

& . ,''%'+ %G)G'$'5%A中断控制寄存仅HT48RA1/HT48CA1、HT48RA3/HT48CA3和HT48RA5/HT48CA5系列其它中断,EMI位将被清零,而执行“RETIEMI注意在程序中用手动的方式将EMI置为“1”。定时/计数寄存HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1系列单片机没有内部定/计数器,HT48RA1/HT48CA1、HT48RA3/HT48CA3HT48RA5/系列单片机中包含二个定时/计数器,一个是8位的,另一个是16位的定时/对应的控制寄存器是TMR1C。输入/输出端口和控制寄存在特殊功能寄存器中,输入/输出寄存器和它们相对应的控制寄存器很重要。所有的输入/输出端口都有相对应的寄存器,且被标示为A、、PC等。如数据器结构图中所示,这些输入/输出寄存器映射到数据器的特定地址,用以传送端口上的输入/输出数据。除了T48R0/T48C02和T48R0T48C01为CPBC和C这一对应的位必须设为低。程序初始化期间,在从输入/输出端口中或TiCLR].i/输出端口控制寄存器中某一位而直接改变该端口输入/输出口状态的能力是此系列单片机非常有用的特性。输入/输出端入/输出口,标示为PA、PB、PC等。这些输入/输出端口在数据器的对应作时,输入/输出引脚是不锁存的,也就是输入数据必须在指令“MOVA,[m]”T2上升沿准备好,m表示端口地址。对于输出操作,所有数据是锁存上拉电很多产品应用在端口处于输入状态时需要外加一个上拉电阻来实现上拉的功能。为了免去这个外加的电阻,48R02/48C02和48R1/48C01的输入引脚内部始终连接到一个上拉电阻,而对于其他,当MS晶体管来实现。PA/PBPA/PB输入/输出端口控制寄存在特殊功能寄存器中,输特殊寄存器、输入/输出特殊寄存器和它们相对示为PA、PB、PC等。如数据器结构图中所示,这些输入/输出寄存器映射到数据器的特定地址,用以传送端口上的输入/输出数据。除了HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1系列单片机没有CMOS输和PCC等,也同样映射到数据器的特定地址。这些控制寄存器设定引脚设为低。程序初始化期间,在从输入/输出端口中或写入数据之前,必须HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1系列单片注意的是HT48RA0-2/HT48CA0-2的PB.6和PB.7位并不存在,对此位得0”。引脚共享功 PFDHT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1系列单片机没有PFD功能其他系列PFD输出引脚和输入/输出引脚PB0共用。掩膜选项设定该口是PFD输出,并且设定后就不可更改。值得注意的是,端口控制寄存器中的位PBC.0,PFDPBC端口控制寄存器设置 外部中断输HT48RA0-2HT48CA0-2HT48RA0-1/HT48CA0-1系列单片机没有外部HT48RA5/HT48CA5系列单片机的外部中断引脚INT与输入/输出口PF0共用 外部定时器816位定时器。816位定时器都有一个外部输入引脚,TMR0TMR1TMR0TMR1或分别与引脚PC0PC5共用。如果要把这个引脚做为定时器输入,则必须正确地设置定时TMRC寄存器中的定时器模式位必须选为定时器模式(内部时),以避免输入/输出引脚与定时器操作的。 REMHT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1分别有一个载波功能,+# 1 21 2E 21 PA,PB0,PB1输入/输出HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-+# #

24 2 2KE2KE!'% 3PC0/REM输出口-HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-++2%K2K2 !!.%)% 1 2 20 2 . ' .

编程注意事在使用者的程序中,最先要考虑的是端口的初始化。复位之后,所有的输入/输出数据及端口控制寄存器都将被设为逻辑高。意思是说所有输入/输出引脚默认为输入状态,而其电平则取决于其它相连接电路以及是否选择了上拉选项。HT48RA1/HT48CA1、HT48RA3/HT48CA3HT48RA5/HT48CA5HT48RA1/HT48CA1、HT48RA3/HT48CA3HT48RA5/HT48CA5系列当的端口控制寄存器,或者使用指令“SETm].i”及“CLRm].i”来设定端口后重新把这些数据写入到输出端口。对于HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1系列单片机的NMOS引脚,当这种情况发生时必须注意一些特殊的情况。例如单片机的某个NMOS引脚被设成高电平,相当于内些位控制指令时,要特别。004#646 定时HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1系列单片机没有内部定现和时间有关功能的方法。虽然HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1系列单片机没有内部定时/计数器,但HT48RA1/HT48CA1、HT48RA3/HT48CA3和HT48RA5/HT48CA5系列单片机包含两个定时/计数器,即一个8的向上计数器和一个16位的向上计数器。每个定时/计数器有三种88级预分频器(Prescaler)也加大了定时器的赋值给此寄存器可以设定初始值,此寄存器可获得定时/计数器的内容。控制定时/计数器的使用。8位定时/计数器的时可来自内部系统时或在外部定时器引脚TMR016位定时/计数器的时可来自内部系统时4Fsys/4或在外部定时器引脚TMR1。HT48RA1/HT48CA1、HT48RA3/HT48CA3和8位定时/1定时/计数器寄存器名定时/计数器控制寄存16位定时/计数器1定时/计数器寄存器名定时/计数器控制寄存注意HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1系列单片机没有内部定时/计数器功定时/计数器在事件计数器模式下使用外部时,而时从外部计数器的脚与输入/输出引脚PC0PC5共用。每当外部定时/计数器输入引脚由高电平到配置定时/计数器输入时内部定时/计数器的时可以来自系统时钟或外部时。当定时/计数器在定时器模式或者在脉冲宽度测量模式时,使用系统时钟作为时。对于8位TMR0CT0PSC0、T0PSC1T0PSC2三位决定。定时/计数器在事件计数器模式时使用外部时,而时是由外部定时/计299 4 ' 3 1

3 HT48RA5/HT48CA5定时/计数 '1C)"2 0;$ 3/0'?3/0

0;

%30HT48RA5/HT48CA5定时/计数定时/计数寄存器–TMR0,定时/计数器寄存器是位于数据器内的特殊功能寄存器,实际的8位定时/TMR016位定时计数器,需要用两个8位寄存器来16位定时/计数器的值,这些成对的寄TMR1L/TMR1H。当用作内部定时器模式时收到一个内部计时脉冲位定时/FFH16位定时/FFFFH,此时定时器发生8位定时/FH16位定时/FH的最大计算范围。此时要注意的是,上电后预置寄存器中的数值处于未知状态。定时/FF这数据将被立即写入实际的定时器。然而如果定时/计数器已经被打开且正在计数,在这个周期内写入到预置寄存器的任何新数据将被保留在预置寄存器中,等到下一个溢出发生时才会被写入实际的定时器。当定时/计数寄存器被对于16位定时/计数器,它有低字节与高字节两个定时/计数寄存器,这些存器,即TMR1L时,数据只被载入到低字节缓冲器而不是直接送到低字节寄存器。当数据写入相应高字节寄存器,即TMR1H时,低字节缓冲器中的数据入相应低字节寄存器。所以当载入数据到16位定时/计数寄存器时,低字节数据应该先写入。另外要注意的是低字节寄存器的内容时,必须先高字在此动作执行之后,低字节寄存器中的内容可使用一般的方式。请注意,定时/计数器低字节寄存器实际是先前锁存在低字节缓冲器中的内容,定时/计数控制寄存器定时/计数器能工作在三种不同的模式,至于选择工作在哪一种模式则是由各48R/48C1T48R343和T48R5T48C58计数控制寄存器为TMR0,16TMR1/器控制计时// . 50& & 50 %114 1110@1100@1010@1000@;0110@40100@60010@40000@<3/0'1)01'30&1&5%A%1111/&10/010 G) .& & " 3 0 1)01 30 1 % 0 T0M0/T1M0T0M1/T1M1必须设定4位,是定时器控制的开关,设定逻辑高时定时器开始计数,而清零时则定时8位定时/计数器而言,定时/0~2决定输入定时预分频器(Prescaler)中的分频比例。如果使用外部计时源,预分频器(Prescaler)将不作用。如果定时器工作在事件计数或脉冲宽度测量模式,T0E/T1ETMR0C/TMR1C3位将可用来选择上升或定时器模就会提供一个内部中断信号。要工作在这个模式,TMRC寄存器中位T0M1/T1M1(bit7)T0M0/T1M0(bit6)必须分别设10。在这个模式,内部时钟源被用来当定时器的计时源。8位定时/计数器而言,定时/计数器的输入计的输入计时频率是fSYS/4,16位的定时器没有预分频器(Prescaler)功能。定时数。定时器溢出是中断的一种,也是唤醒暂停模式的法。##%>0 >0 定时器模式事件计数器模/计数器来记录。为使定时/计数器工作于事件计数器模式,TMRC寄存器中位T0M1/T1M1T0M0/T1M0必须分别设为01。定时器打开位T0ON/T1ON/T0E/T1E为逻T0M1/T1M1T0M0/T1M0位需设定在事件计数器模式,还需通过输入/输出醒暂停模式的法。3>>>>事件计数器模式时脉冲宽度测量模量模式中,定时/计数器时由内部时钟提供,而位T0M1/T1M1和T0M0/T1M0则必须都设为逻辑高。如果T0E/T1E位是逻辑低,当外部定时/位将自动地清除为零且定时/计数器会停止计数,而在其他两种模式下,清零时,任何在外部定时计数器引脚的进一步转换将被忽略,而直到T0ON/T1ON位再次被程序设定为逻辑高,定时/计数器才又开始脉冲宽度测I/O共用引脚,为确保脉冲宽度测量模式正常工作,要注意两点。第一点是要T0M0/T1M0T0M1/T1M1位设定在脉冲宽度测量模式,第二点是确定此中断的一种,也是唤醒暂停模式的法。3% , 3L1, )

#L> > > > 脉冲宽度测量模式时可编程分频-HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1系列单片机没有PFD能,此节描述的内容不适用于这些。对于HT48RA1/HT48CA1、HT48RA3/HT48CA3HT48RA5/HT48CA5系列们都包含一个PFD功能,PFD8TMR0TMR0的溢出频率,就可以在PFD引脚上得到需要的控制信号。注意,HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1系列单片机有一个载波产生器,以及相关的REM引FD和输入/B0DI/O口。FD用8器0溢出信作为其时。定时器的时钟频率。系统时钟被预分频器)分频后的时,进入定时器计时,定时器从预置寄存器的值开始往上计算,直到计数值满并产生溢出信号,并改变FDFDFD输出频率是定//'GPB0口设置为“1”才可以驱动PFD。这位输出数据相当于PFD输出的开/关控制。注意PB00PFD输出低电平。要保PFD正常工作,PBC.0当于一个普通的输入/输出口,即使掩膜选项中设置该引脚为/'G1.2.预分频器8位定时/计数器而言,TMR0C的位0~2可以用来定义定时/计数器中内部时的预先分频级数。定时/PFD输入/输出接计数器引脚以确保正确的动作。外部定时/PC输入/输出引脚共用的。可以选择上拉电阻来连接定时器输入引脚。8位定时器也可设定驱动引脚共用的PFD。当通过掩膜选项选择PFD引脚时,定时器可以根据定时/计数寄存器的内容,以不同的频率来驱动PFD。编程注意事当定时/计数器运行在定时器模式时,定时器的时是使用内部系统时钟,载波发HT48RA0-2HT48CA0-2HT48RA0-1/HT48CA0-1包含一个内部载波个载波发生器,将信息按一定频率传送到接受设备去。对于HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1系列单片机,提供了一个内部载波发生器来实现这个目的,载波频率可以通过掩膜选项设置。对于HT48RA1/HT48CA1、HT48RA3HT48CA3HT48RA5HT48CA5系列单片机,提供了 红外/电平输出-HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-载波信号从和PC0共用的REM引脚输出。根据需要可以由掩膜选项来确定,是载波输出还是CMOS输出。如果掩膜选项选择载波输出,当PC0HT48RA0-2HT48RA0-1REM/PC0引脚如何设置,在上电被设置为REM输出的话,依然保持低电平;如果此引脚被设置PC0输出口,电脚被设置成PC0输出,此引脚外接PNP三级管驱动发光二极管LED,那么LED会在复位延时阶段被点亮。对于通用的应用,建议外接PNP三级管驱动LED,并选择REM。载波频率 mm=23,n=0~3m=2,那么载波输出的1/2m=31/2或1/3(n=0例外。载波输出的占空比的详细的选择如下所示:mx2占空31/2或mx232中HT48RA0-2/HT48CA0-2HT48RA0-1/HT48CA0-1没有中断功能,因此,中断寄存片机包含外部中断和内部定时/INT零EMI位方式可以预防任何进一步的中断相互嵌套。其它的中断请求可能发生在这个期EMIP01015& &1 01015 3 3 3 3 H1 & '3.3. 33 .1M3% 13 0中断示意中断优先T2脉冲上升沿之间时,如果相应的中断请求被允许,中断将在后一个T2脉冲响应。下面的表格在同时提出请求的情况下所提供的优先权,这个可以通过重新设定EMI位来加以。中断优先外部中1定时/02定时/13外部中1EEI。外部中断是通过INT端口上由高到低的电平转换来触发,之后相应中断请求标志位(EIF;INTC4位)被置位。当中断允许,堆栈没有满且外部中断产生时,会调用地址04H的子程序,中断请求标志位EIF将被清零,且EMI位将被清零来其它中断。定时/计数器中当相关内部中断允许标志位被置位时,定时/计数器内部中断会发生。对于8位定时/IC2ET0。对于16//NC3位ET1///计数8/C506位定时C61。当主中断位被打开、堆栈未满且相关内部中断允许位打开,定时/计数器溢出时8H的子程序。对于16/0CHT0F或T1F且MI来编程注意事定时/T0FT1FEIF、定时/计复位和须复位。例如,当单片机上电执行程序RES引脚被强制拉下至低电平。这个LVR的类型存在,在电源供应电压低于某一临界值的情况下,一种和RES引脚复位类似的完全复位将会被执行。复上电复RC复位功能,由于接通电源不稳定,还是推荐使用和RES引脚连接的外部RC电路,RC电路所造成的时间延迟使得RES引脚在电正常工作的。在经过延迟时间tRSTD,而RES引脚达到一电压值后,单片机才++1( 3$电源打开复 RES引脚复当单片机正常工作时,而RES引脚通过外部硬件(如外部开关)11( 31( $RES引脚复位时序低电压复位0.9V~VLVRLVR将会LVR0.9V~VLVR的低电压,必须存在超过1ms果低电压存在不超过1ms,则LVR将会忽略它且不会执行复位功能。掩膜选项中可以选择是否开启低电压复位功能。HT48RA0-2/HT48CA0-2和HT48RA0-1/HT48CA0-1系列单片机的LVR值是2.0V,HT48RA1/HT48CA1HT48RA3/HT48CA3HT48RA5/HT48CA5系列单片机"$$低电压复位 正常工作时看门狗溢出TO1$$$$正常工作时看门狗溢出复暂停时看门狗溢出针将被清除为0TO标志位被设为1外,绝大部份的条件保持tSST的细节请参考A.C特性。$$$暂停时看门狗溢出复位时不同的复位方法以不同的方式影响复位标志位。这些标志位即PDFTO,被放00上电时的RESuu一般运行时的RES复位或LVR低压复1u一般运行时WDT溢出复11HALT暂停时WDT溢出复“u”表示不变复位后情程序计数清除为中所有中断被关看门狗定时WDT清零并重定时/所有定时/计数器停预分频定时/计数器之预分频器内容清输入/I/O设为输入模堆栈指堆栈指针指向堆栈顶区指清除为HT48RA0-2/HT48CA0-寄存RES(上电时RES或复WDT(一般运行时WDT(HALT暂停时xxxxxxxuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuu0000000000000000000000000000000xxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxuuuuuuuuuuuuuuuuu00xxxxuuuuu1uuuuu11uuuu11111111111111111111111uuuuuuuu00111111001111100111111uuuuuuuu111uHT48RA0-1/HT48CA0-寄存RES(上电时RESLVRWDT(一般运行时WDT(HALT暂停时xxxxxxuuuuuuuuuuuuuuuuuuuuxxxxxxxuuuuuuuuuuuuuuuuuuuuuu00000000000000000000000000000xxxxxxxuuuuuuuuuuuuuuuuuuuuuuxxxxxuuuuuuuuuuuuuuuu00xxxuuuuuu1uuu11uuuu1111111111111111111111uuuuuuuu1111111111111111111111uuuuuuuu11u寄存RES(上电时RESLVR(一般运行时WDT(一般运行时WDT(HALT暂停时xxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuu0000000000000000000000000000000xxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuu00xxxxuuuuuu1uuuuu11uuuu000000000000000000000uuuuuu000001110000011100000111uuuuuuuxxxxxxxxxxxxxxxxxxxxxxxxuuuuuuu000100000010000001000uuuuuuxxxxxxxxxxxxxxxxxxxxxxxxuuuuuuuxxxxxxxxxxxxxxxxxxxxxxxxuuuuuuu000100010001uuu111111111111111111111111uuuuuuu111111111111111111111111uuuuuuu111111111111111111111111uuuuuuu111111111111111111111111uuuuuuu111111111111111111uuuuuu111111111111111111uuuuuu111u111u寄存RES(上电时RESLVR(一般运行时WDT(一般运行时WDT(HALT暂停时xxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuu0000000000000000000000000000000000000000000000000000000uuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxxxxxxxxxuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuu00xxxxuuuuuu1uuuuu11uuuu000000000000000000000uuuuuu000001110000011100000111uuuuuuuxxxxxxxxxxxxxxxxxxxxxxxxuuuuuuu000100000010000001000uuuuuuxxxxxxxxxxxxxxxxxxxxxxxxuuuuuuuxxxxxxxxxxxxxxxxxxxxxxxxuuuuuuu000100010001uuu111111111111111111111111uuuuuuu111111111111111111111111uuuuuuu111111111111111111111111uuuuuuu111111111111111111111111uuuuuuu111111111111111111uuuuuu111111111111111111uuuuuu111u111u寄存RES(上电时RESLVR(一般运行时WDT(一般运行时WDT(HALT暂停时xxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuu0000000000000000000000000000000000000000000000000000000uuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxuuuuuuuuuuuuuuuuuuuuuuu00xxxxuuuuuu1uuuuu11uuuu000000000000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论