ad with lcd型单片机使用手册简体中文版_第1页
ad with lcd型单片机使用手册简体中文版_第2页
ad with lcd型单片机使用手册简体中文版_第3页
ad with lcd型单片机使用手册简体中文版_第4页
ad with lcd型单片机使用手册简体中文版_第5页
已阅读5页,还剩271页未读 继续免费阅读

下载本文档

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

文档简介

HT46R62,HT46R63,HT46R64,HT46R65,HT46RU66A/DwithLCD型单片机Copyright2006byHOLTEKSEMICONDUCTOR 第一部份单片机概 第一章硬件结 简 特 选择 堆 结 多Bank管 结 间接寻址寄存器–IAR0, 间接寻址指针–MP0, 区指针– 累加器– 程序计数器低字节寄存器– 表格寄存器–TBLP, 实时时钟控制寄存器– 状态寄存器– 中断控制寄存器–INTC0, 脉宽调制寄存器 2, A/D转换寄存器ADR,ADRL,ADRH,ADCR, UART寄存器 比较 LCD LCD时 定时/计数寄存器–TMR,TMRL/TMRH,TMR0L/TMR0H, 定时/计数控制寄存器–TMRC,TMR0C, 可编程分频器– 模 模 A/D转换器数据寄存器–ADR, A/D转换器控制寄存器– A/D转换器时钟源寄存器– A/D输入引 A/D转换步 A/D转换功 中 A/D中 复 UART 暂停模式下的UART功 振荡 低电压检测器– 蜂鸣 第二部份程序语 第二章指令集介 指令 位运 惯 第三章指令定 第四章汇编语言和编译 名 操作 注 宏指 名 助记 其 其 第三部份开发工 第五章单片机开发工 OTP烧写 OTP适配 安 第六章快速开 步骤四:烧写OTP单片 步骤五:传送程序与掩膜选项单至 第七章LCD仿真 简 选择HT- v 使用PanelEditor定义图 LCD仿 附 附录A特性曲线 附录B封装信 (如外部传感器的接口)并用液晶显示器显示结果。此类应用都会需要A/D转换A/DwithLCDA/D转换功能外,还包含了LCD驱动功能,可以直接连接到用户的液晶显示接口,提供给用户完全集成希望客户通过这本A/DwithLCD型单片机使用手册,能以一种简单、有效、 第一部份单片机概论第一部单片机概12第一11A/DwithLCD型单片机的规格信息,并且包含了所有参数和相关的相关部份,也保证使用者可以充分利用A/DwithLCD型单片机。HT4665和T4U66HT4U66是8SC机,用于直接处理模拟信号以及需要在液晶显示器上显示量测数据的产品应D的输入/有的单片机都具有相同的特性,主要的不同在于输入输出引脚数目、AM和OM、器和小AD、输和D输出等方面。另外HT46U6HT4666程(One-TimeProgrammable,OTP)单片机,当配合使用盛群半导体的程序开发于那些已经设计成应用,Mask版的HT46C62、HT46C63、HT46C64、HT46C65和HT46CU66OTP版的功能完全兼容,Mask版对于已经设计完成而想要降低成本的产品,提供了一3不使用看门狗定时器时,3V下静态(standby)电流小于1A温度50C2K×14OTP/MaskROM4K×15OTP/MaskROM(HT46R63/HT46C63,8K×16OTP/MaskROM16K×16OTP/MaskROM88×8RAM192×8RAM208×8RAM384×8RAM576×8RAMLCD20×319×4Segments4的LCDPFD输出(HT46R63/HT46C63除外5

这系列的A/DwithLCD型单片机具有广泛的功能特性,其中有些是普通的,LCD输出、输出和UART功能。为了帮助使用者在应用时能选择适当的型程器数器输入输定时中断蜂鸣堆栈封种5—616-6———816-610-—816-610-—16-612-.6""""!!+-" $ !%%(&-)*& /1 ,-&*&$..7:34;7:34;777766666699999999578998887:72737898:<: 34;77776666669 9 9 9 9 9 99578998887:72737898<..7<*877++89:..87*87 7++89:11 711 7+ + 7+ + 7+ + 7+ + 7+ 7 + 7+ 7 + 7 7 8 7 8 7 8 7 8...88898757*...88898757***3:66...7779875***:66:34;7777:34;777766666699999999578998887:72737898:<:234;<..77.9*758759:..777*. . +78 :7587+ 787+ 8 8 + 8 3+ 8 4

9 787++1987++19 89 89 8+ 8 +

36 9

8+ 8 +746 9 8+ 8+ 8 8 8 9 9...999...9999875***73:66

+8;6+9<6 7 7 7 7 ...99998757***32:667:7...99998757***32:66

98 89 89 88 88 88 98:.575.::.575.:575 8 8 7 736746767<68 8 8283848;78+=2 2

57+=2378+=2 2 9:12

:12 2 2 25 :<

2 2 2 25 ; :< +5<6:; .+75<<6:; 7+7756:4 +8776:3 +9786:2 +:796:::

4 73 72 7: 7

+7756:4 7+8776:3 7+9786:2 7+:796::: 7+276:9 7 :8

9 78

+276:9 7 72:8 7 7357 + 7475 7 + 7;98< 7 +:76<95; 7 +2865974 7 38793 7

7 5 < ; 4 3

7357 7 7475 7 7;98< 7:76<95; 82865974 8 87953 8 8 8*78

92 79: 799 7

2 : 9

8 8*78

92 89: 899 8*88 98 7 7839 8849 ; 8

<

*88 98 878 9 988 9 ; 8 57+=2378+=2 2

57+=2378+=2 2 9:12 9:12 2 2 25 7 :< 7

2 2 2 25 7; :< 7+5<6:; 7+7756:4 7

3 :; 747 :4 7+8776:3 8+9786:2 8+:796::: 8

+5776:3 8+7786:2 8+8796:: 8+276:9 8 72:8 8

+976:9 8 7 :8 8 7357 8 7475 8 7;98< 8:76<95; 82865974 8 87953 9

7357 8 7475 8 7;98< 8:76<95; 82865974 8 87953 9 8 8*78*88

92 99: 999 998 9

8 8*78*88

92 99: 999 998 97839 :578 9 :88;

9 8

88;

9 8 9

注意:单片机封装的引脚兼容特性,使单片机在硬件应用时以最小的改变去提供器件直接升级到引脚名掩膜选说8位双向输入/输出口,每个位可由掩膜选项配置成唤醒输入软件指令决定引脚为CMOS输出或特触发器输入呼。膜选项决定端口上哪个位带上拉电阻。引脚PA0、PA1分别与BZBZ和PFD引脚共享,该功能由掩膜选项选择Pull-6位双向输入/输出口。软件指令决定引脚为CMOS输出或斯PBA/D输入引脚共享。A/D输入是通过软件指令选择,一旦被选择A/D输入,则输入/输出和上拉电阻功能将自动PD0/6位双向输入/输出口。软件指令决定引脚为CMOS输出或PD1/PD4/INT0PD5/Pull-密特触发器输入。掩膜选项决定端口上哪个位带上拉电阻PD0~PD2 2输入引脚共享,该功能由掩膜项选择PD4PD5分别与INT0和INT1引脚共享。掩OSC1、OSC2RC电路或晶体振荡器(由掩膜选项Crystalor定)作为内部系统时钟。在RC模式下,OSC2的输出端信号是系统时钟四分频。如果使用OSC3OSC4引脚上RTC振荡器作为系统时钟,则OSC1OSC2引脚应该悬空IORTCSystemOSC3OSC4连接一个32768Hz的晶体振荡器形成一个用的实时时钟,或是形成一个系统时钟LCD电源引脚名掩膜选说IC最大电压,连接到VDD、VLCDV1V1,V2,C1,ILCD电压泵OLCD面板中segment的LCD驱动输出。由掩膜选项决定引脚作为segment驱动或是作为CMOS输出使用O引脚作为segment驱动或是作为CMOS输出使用。OLCD面板中segmentLCD驱动输出2O驱动还是common的输出驱动 2是LCDcommon输出I特触发器复位输入。低电平有效正电源供应负电源供应,接地.引脚名掩膜选说8位双向输入输出口,每个位可由掩膜选项配置成唤醒输入。软件指令决定引脚是CMOS输出或特触发器输入。掩膜A0~A3和A4~A7是否带上拉电阻,引脚不能单独的选择带上拉电阻Pull-8位双向输入/输出口。软件指令决定引脚为CMOS输出或斯密特触发器输入。掩膜选项决定引脚PB0~PB3和PB4~PB7输入引脚共享。A/D输入通过软件指令选择,一旦被选择作为A/D输入,I/O功能和上拉电阻功能将自动无效。Pull-密特触发器输入。掩膜选项决定引脚PC0~PC3是否带上拉电阻,引脚不能单独的选择带上拉电阻 PD4/PD5/8位双向输入/输出口。软件指令决定引脚为CMOS输出或斯密特触发器输入。掩膜选项决定引脚PD0~PD3和PD4~PD7 3输入引脚共享,该功能通过掩膜选项选择,引脚PD4和PD5分别与外部中断INT0和INT1引脚共享,掩膜选项决定中断使能/除能和中断低/高电平触发形式,引脚PD6与外部定时器输入引脚TMR共享。CrystalorOSC1、OSC2RC电路或外部晶体振荡器(由掩膜选项连接32768Hz的晶体振荡器产生实时时钟引脚名掩膜选说I比较器反向输入I比较器正向输入O比较器输出O比较器以32768Hz载波输出A/D转换器参考电压输入,由外部连接至VDDLCD电源供应OLCD面板中segmentLCD驱动输出OCMOSLCD面板中segment的LCD驱动输出,由掩膜选项决定引脚作为segment驱动或是作为CMOS输出使用OCMOSLCD面板segmentLCD驱动输出,由掩膜选项决定所有引脚作为segment驱动或是作为CMOS输出使用。如果作为CMOS输出使用,则这些引脚比SEG7~SEG10CMOS更高的灌电流能力OCMOSLCDsegmentLCD驱动输出,由掩膜选项可以选择所有的引脚被使用为部分的驱动或CMOS输出。如果使用为CMOSSEG7~SEG10CMOS输出有更高的灌电流能力2O1/3or1/4 2是LCD的一般输出。I触发复位输入。低电平动正电源供应负电源供应,接地注意:1.PA上的每个引脚可通过掩膜选项被设定成具有唤醒引脚名掩膜选说PA1/BZ8位双向输入输出口,每个位可由掩膜选项配置成唤醒输入。软件指令决定引脚为CMOS输出或特触发器输入。掩膜选项决定端口上哪个位带上拉电阻。引脚A0、A1和A3、Z和DPull-8位双向输入/输出口。软件指令决定引脚为CMOS输出或斯旦被选择作为A/D输入,I/O功能和上拉电阻功能将自动无 PD4/INT0PD5/8位双向输入输出口。软件指令决定引脚为COS输出或发入膜决口所脚否拉阻。D0~PD3与 0~ 3输入引脚共享,该功能由膜选项选择,引脚D4和D5分别与I0和N1引脚享,掩膜选项决定中断使能/除能和中断低/高电平触发形式引脚D6和D7与外部定时器输入引脚TR0和TR1共享。CrystalorOSC1、OSC2连接外部RC电路或晶体振荡器(由掩膜选项决定)作为内部系统时钟。对于RC系统时钟的操作,OSC2脚上RTC振荡器作为系统时钟,则OSC1OSC2引脚该被悬空RTCorLCD电源IC最大电压,连接至VDD、VLCDV1引脚名掩膜选说V1,V2,C1,ILCD电压泵OCMOSLCD面板中segment的LCD驱动输出,由掩膜选项决定所有引脚作为segment驱动或是作为CMOS输出使用。OCMOSLCD面板中segment的LCD驱动输出,由掩膜选项决定各个引脚作为segment驱动或是作为CMOS输出使用。OLCD面板中segmentLCD驱动输出2O驱动还是common的输出驱动 2是LCDcommon输出I触发复位输入。低电平有正电源供应负电源供应,接地.V2、C1、C2SEG852-pinQFP PD7/TMR1100-pinQFP56-pinSSOP52-pin引脚名掩膜选说PA1/BZ8位双向输入输出口,每个位可由掩膜选项配置成唤醒输入。软件指令决定引脚为CMOS输出或特触发器输入。掩膜选项决定端口上哪个位带上拉电阻。引脚A0、A1和A3、Z和DPull-8位双向输入/输出口。软件指令决定引脚为CMOS输出或斯PBA/D输入引脚共享。A/D输入通过软件指令选择,一旦被选择作A/D输入,I/O功能和上拉电阻功能将自动无效。 PD4/INT0PD5/8位双向输入输出口。软件指令决定引脚为COS输出或密特触发器输入。掩膜选项决定端口上所有引脚是否带上拉阻。D0~D3与 0~ 3输入引脚共享,该功能通掩膜选项选择,引脚D4和D5分别与I0和I1引脚享,掩膜选项决定中断使能/除能和中断低/高电平触发形式引脚D6和D7与外部定时器输入引脚TR0和TR1共享。CrystalorOSC1、OSC2连接外部RC电路或晶体振荡器(由掩膜选项决定)作为内部系统时钟。对于RC系统时钟的操作,OSC2脚上RTC振荡器作为系统时钟,则OSC1OSC2引脚该被悬空RTCorLCD电源IC最大电压,连接到VDD、VLCDV1引脚名掩膜选说ILCD电压泵OCMOSLCD面板中segment的LCD驱动输出,由掩膜选项决定所有引脚作为segment驱动或是作为CMOS输出使用。OCMOSLCD面板中segment的LCD驱动输出,由掩膜选项决定所有引脚作为segment驱动或是CMOS输出使用。OCMOS引脚作为segment驱动或是CMOS输出使用。OLCD面板中segmentLCD驱动输出2O驱动还是comon的输出驱动 2是LCDcommon输出I触发复位输入。低电平有正电源供应负电源供应,接地注意:1.PA上的每个引脚可通过掩膜选项被设定成具有唤醒V2、C1、C2SEG1652-pinQFP 引脚名掩膜选说PA1/BZ8位双向输入输出口,每个位可由掩膜选项配置成唤醒输入。软件指令决定引脚为CMOS输出或特触发器输入。掩膜选项决定端口上哪个位带上拉电阻。引脚A0、A1和A3、Z和D引脚共享,该功能通过掩膜选项选择。Pull-8位双向输入/输出口。软件指令决定引脚为CMOS输出或斯PBA/D输入引脚共享。A/D输入通过软件指令选择,一旦被选择作A/D输入,I/O功能和上拉电阻功能将自动无效。Pull-8位双向输入输出口。软件指令决定引脚为COS脚C0、C6、C7分别与TR2、TX、RX引脚复用。 PD4/INT0PD5/8位双向输入输出口。软件指令决定引脚为CMOS输出或斯密特触发器输入。掩膜选项决定端口上所有引脚是否带上拉阻。D0~D3与 0~ 3输入引脚共享,该功能通掩膜选项选择,引脚D4和D5分别与N0和N1引脚共享,掩膜选项决定中断使能/除能和中断低/高电平触发形式,引脚D6和D7与外部定时器输入引脚TR0和TR1共享。CrystalorOSC1、OSC2连接外部RC电路或晶体振荡器(由掩膜选项决定)作为内部系统时钟。对于RC系统时钟的操作,OSC2脚上RTC振荡器作为系统时钟,则OSC1OSC2引脚应该被悬空RTCorLCD电源IC最大电压,连接到VDD、VLCDV1ILCD电压泵OCMOSLCD面板中segment的LCD驱动输出,由掩膜选项决定引脚作为segment驱动或是作为CMOS输出使用OCMOS引脚作为segment驱动或是CMOS输出使用。引脚名掩膜选说OCMOSLCD面板中segment的LCD驱动输出,由掩膜选项决定各个引脚作为segment驱动或是CMOS输出使用。OLCD面板中segmentLCD驱动输出2O1/3or1/4Duty驱动还是comon的输出驱动 2是LCDcommon输出I参考电压输入I触发复位输入。低电平有正电源供应负电源供应,接地I模拟电压正电源供应I模拟电压负电源供应,接注意:1.PA上的每个引脚可通过掩膜选项被设定成具有唤醒V2、C1、C2SEG3452-pinQFP 56-pinSSOP52-pinQFP封装,AVSSVSS连接在一起

VSS0.3Vto VSS0.3Vto温 对于 符参测试条最典最单条VVLCDHighest0VOperatingCurrentADCoff1235OperatingCurrentADCoff48Standby(fs=WDTLCDOff5(fs=fSYS/4)LCDOff12StandbyCurrent(fs=RTCLCDOff5StandbyCurrent(fs=RTCNoload,SystemHALT,LCDOnatHALT,RType(LowbiascurrentStandbyCurrent(fs=RTCNoload,SystemHALT,LCDOnatHALT,RType(Middlebiascurrent符参测试条最典最单条NoHALT,LCDOnStandby(fs=WDT(HighbiasInputLowVoltageforI/O0VVInputLowVoltage(RES0VInputHighVoltage(RESVI/OPortSink6I/OPortSourceLogicalSink8LogicalSourceLogicalSinkI/OPortTotalSinkI/OPortTotalSourcePull-ComparatorInputVoltageVA/DInput0VNonlinearityErrorAdditionalPowerConsumptionifA/DConverterisused13 符参测试条最典最单条VVOperatingCurrentADCOff1235OperatingCurrentADCOff48OperatingNoload,ADC1NoLCDOff12(fS=RTCOSC)Noload,LCDOn,C5(fS=WDTNoload,LCDOn,C256NoStandby(fS=RTCLCDOn,R1/2bias,(LowbiasNoStandby(fS=RTCLCDOn,R1/3bias,(LowbiasNoStandby(fS=WDTLCDOn,R1/2bias,(Lowbias符参测试条最典最单条No(fS=WDTsystemHALT,LCDOn,Rtype,1/3bias,(LowbiasInputLowVoltageforI/OPorts,TMR,TMR0,TMR1,INT0,0VInputHighVoltageforI/OPorts,TMR,TMR0,TMR1,INT0,INT1VInputLowVoltage(RES0VInputHighVoltage(RESVOutputSinkCurrent6OutputSourceSegmentCurrentSegmentCurrent----Pull-LowVoltageResetVLowVoltageDetectorVA/DInput0VNonlinearityErrorAdditionalPowerConsumptionifA/DConverteris13对于 符参测试条最典最单条VVVREF=VOperating(CrystalOSC,RCADCOff,UART1235Operating(CrytalOSC,RCADCOff,UARTOn2448OperatingCurrentNoload,fSYS=8MHzADCOff,UARTOff48OperatingCurrentNoload,fSYS=8MHzADCOff,UARTOn6(fSYSNoload,ADCOff,UART1Noload,systemLCDOff,CtypeUARTOff12(fS=RTCOSC)LCDOn,CtypeUART5(fS=WDTLCDOn,CtypeUART256(fS=RTCOSC)systemHALT,LCDOn,Rtype1/2bias,VLCD=VDD(fS=RTCOSC)systemHALT,LCDOn,Rtype,1/3bias,VLCD=VDD(fS=WDTNoload,UARTOffRtype,1/2bias,VLCD=VDD符参测试条最典最单条(fS=WDTsystemHALT,LCDOn,Rtype,1/3bias,VLCD=VDDInputLowVoltageforI/O TMR1,INT0,0VInputHighVoltageforI/OPorts,TMR,TMR0,TMR1,INT0,INT1VInputLowVoltage(RES0VInputHighVoltage(RESVOutputSource6OutputSourceSegmentCurrentSegmentCurrent----Pull-LowVoltageResetV VoltageDetectorVA/DInput0V0VVoltageRangeAVDD=VAVDD=VNonlinearityErrorAdditionalPowerConsumptionifA/DConverterisusedNoload,tAD13tADADCIntegralNon-tAD“*”VoltagelevelofAVDDandVDDmustbethe对于 符参测试条最典最单条RTCFrequencyTimerInput00WatchdogTime-outWatchdogTime-outPeriod(32768Hz)1SystemStart-upTimerPower-upInterruptPulse1A/DClock1A/DConversionA/DSamplingResponseTimeof3 符参测试条最典最单条SystemSystemClockTimerI/P00(WDTOSC)WatchdogTime-outWatchdogTime-outPeriod(32768Hz)12s1SystemStart-upTimerLowVoltageWidthto12InterruptPulse1A/DClock1A/DConversionA/DSampling对于 符参测试条最典最单条System(CrystalOSC,RCSystemClock00(WDTOSC)WatchdogTime-outWatchdogTime-outPeriod(32768Hz)12s1SystemStart-upTimerLowVoltageWidthto12InterruptPulse1A/DClock1A/DConversionA/DSampling

A/DwithLCD型单片机具有良好运行性能的主要因素。由于采用RISC结构,此系列单片机具有高运算速度和高性能的特用和查表指令外,其它指令都能在一个指令周期内完成。8ALU参与指ALU的方式加以简化。有些寄存器可以提供2K至16K字的程序器和88至576字节数据。系统时钟由晶体/RCT1~T4四个内T1时自动加一并抓取一条新的指令。剩下的T2~T4时钟完成和执行功能,因此一个T1~T4时钟形成一个指令周钟有fSYS/4的频率,具有1:3高/低的占空比。"""""7"8"9":@@'/0#'0@70.'(1.'(1.(1(((($

7893*7893*D ACD78>.78>A1 .(. 1 9

1((.11((.1( JMP或行完后自动增加一。对于A/DwithLCD系列的单片机,根据所选择的单片机对于程序器分为两个bank的HT46RU66/HT46CU66,由BP的第5位选择Bank。Bank选择位与程序计数器关系如图所示:797; 2 周期需要预先取得。有关PCL寄存 模程序计数复0000000000000外部中0000000000100外部中000000000100000000000011000000000010000时基中0000000010000时基中(HT46R63/HT46C63除外0000000010100A/D转换器中0000000010100实时时钟中0000000011000条件跳ProgramCounter+PCL跳转或调用子程由子程序返模程序计数复00000000000000外部中00000000000100外部中000000000010000000000000110000000000010000UART中00000000010100多功能中00000000011000条件跳ProgramCounter+2(Bank内PCL跳转或调用子程由子程序返注意: @7~@0:PCL的列b12是无效的。定时/计数器1溢出行,只有HT46R64/HT46C64HT46R65/HT46C65或RETI)使程序计数器从堆栈中重新得到它之前的值。当复位之后,SP响应将被。当堆栈指针减少(执行RET或RETI),中断将被响应。这个特性提供程序设计者简单的方法来预防堆栈溢出。然而即使堆栈已满,CALL指$$F"789+6 """& .算术及逻辑单位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、程序格可以设定在程序器的任何地址,由表格指针来寻址。对于HT46RU66/HT46CU66程序器分为两个Bank,每个Bank的容量为8K,BP5Bank0Bank1。由于数据器也由BP来控制,所以使用时必须注意。6*6**6*6***5*,*,*,*: ..? 5.? .? ; ..? 7.? .? > 5+ :+ - + ;*$*$*$1515511*$5?7$5$75$!+$ 1 5 5 5 5 5 " 5 4;1777:6

72$

72

73

7 此向量用做INT0外部中断,假如单片机外部中断引脚出现下降沿,而此向量用做INT1外部中断,假如单片机外部中断引脚出现下降沿,而时器的HT46R64/HT46C64、HT46R65/HT46C65和具有三组定时器的于其它单片机而言,则称为TMR。对于HT46R63/HT46C63,此内部中断向量被时基中断所。当产生时基开始执行。对于HT46R64/HT46C64、HT46R65/HT46C65和开始执行。请注意,HT46R62/HT46C62只有一组定时器,所以不使用这对于HT46R63/HT46C63A/DA/D转换A/D中断使能且堆栈没有满,程序将跳到这个地址并开始情况开始执行。对于HT46RU66/HT46CU66UART使用。当发送或接收结束BankROMBANKBank中。当执行”CALL”指令来调BankBankROMBANK最佳用法如Bank的主程序调用,当执这个子程序的”RET”指令时,程序会自动返回到原先主程序所在的Bank,然而,BP的值不会改变,它仍保持着子程序所在Bank的值。因此在不同的Bank之间的转移过程中,BP必须处理。以下的范例就是HT46RU66/HT46CU66的程序,说明了如何在不同的Bank之间使用”CALL”和”JMP”指令。: ;define ;define: at ‘code’;locatesthefollowingprogram;intoclr thejmp::::mova,BANK ;routine”routb1”islocateinBankmov ;loadbanknumberforroutb1intocall ;callsubroutinelocatedinBankclr ;programwillreturntothis;afterRETinBank;butBPwillretainBank1;soclearthe at ‘code’;locatesfollowingprogram;intoBank::routb1:: ;returnprogramtoBank0butBP;retainBank1routb1:断发生,包括外部中断和内部中断,程序都会立刻跳转至相应的位于Bank0的作就是,保存Bank指针以及清Bank指针让它指向Bank0,尤其是在Bank0中执::rombank0 ;definerombankrombank1 ;definerombank::codesec0.sectionat000h ;locatesthefollowingprogram;intoBankclr ;clearbankpointerafterpower-on::org ;jumpherefromanybankwhenext0;occurs-BPretainsoriginalmov ;backupmov ;backupbankclr ;clearbptoindicateBank0;originalBPvaluewillremainand;risetofalsejmporcalljmp ;jumptoexternal0interrupt::org ;jumpherefromanybankwhen;occurs-BPretainsoriginalmov ;backupmov ;backupbankclr ;clearbptoindicateBank0;originalBPvaluewillremainand;risetofalsejmporcalljmp ;jumptotimer0interrupt::

org ;jumpherefromanybankwhentimer;occurs-BPretainsoriginal: ;externalinterruptmov ;backupbankmov ;backupstatusmov ;backupstatus::mova,statusbuf0 ;restorestatusregistermovstatus,amova,bp_exti ;restorebankpointermovbp,amov ;restore ;returntomainprogramand;calling:: ;ext1_intinterruptmov ;backupbankmova,status ;backupstatusregistermovstatusbuf1,a::mova,statusbuf1 ;restorestatusregistermovstatus,amova,bp_tmr0 ;restorebankpointermovbp,amov ;restore ;returntomainprogramand;calling::程序器中的任何地址都可以定义成一个表格,以便固定的数据。使用表格时,必须设定表格指针来确定程序器的地址。然而部分只有表格低字节指针,另一部分有表格低字节和高字节指针。要注意的HT46RU66/HT46CU66TBLP,可以从8位地[m]”指令从目前程序所在的器页或器最后一页中来查表。当这些指令执行时,程序器中表格数据低字节,将被传送到使用者所指定的数据器,程序器中表格数据的高字节,则被传送到TBLH特殊寄存器,而高字节中未使用的位将被为“0”。% %

+ +$ % $ HT46R63/HT46C63如何定义表格指针、如何查表。这个例子使用的表格数据用ORG伪指令在器的最后一页。在此ORG伪指令中的值为“F00H4K程序HT46R63/HT46C63单片机中最后一取的第一笔数据位于程序器地址“F06H”,即最后一页开始地址后六个被传送到TBLH寄存器,在这个例子中,表格数据的高字节等于零。 tempreg2db ::mov ;initializetablepointer-notethatthisaddress;mov ;tothelastpageorpresent:tabrdl ;transfersvalueintablereferencedbytable;to;dataatprog.memoryaddressF06Htransferred;tempreg1anddec ;reducevalueoftablepointerbytabrdl ;transfersvalueintablereferencedbytable;to;dataatprog.memoryaddressF05Htransferred;tempreg2and;inthisexamplethedata1AHistransferred;;anddata0FHtoregister;thevalue00Hwillbetransferredtothehigh;register:orgF00h ;setsinitialaddressoflastpagedc00Ah,00Bh,00Ch,00Dh,00Eh,00Fh,01Ah,01Bh:用表格地址低字节TBLP的 ,增加的TBHP寄存器允许在任何地址定义表 了低字节表格指针和高字节表格指针后,就可以使用指令“TABRDC[m]”获 器中高字节表格数据会被送往TBLH特

$ ++ $ ++HT46RU66/HT46CU66如何定义表格指针、如何查表。这个例子使用的表格数据用ORG伪指令在器中。在此ORG伪指令中的值为000HBank1起始地址而言,绝对地址是“2000H”。这里高字节20H05H。这可以保证从数据表格读取的第一笔数据位于程序器地址“2005H”,即ORG伪指令定义地址后五寄存器,而表格数据高字节“55H”将会被传送到TBLH寄存器。::data.section tempdb?::rombank0 ;Bank0rombank1 ;Bank1::codesec0.sectionat0 jmpstart:::mova,020h ;setuptablehighbyteaddressmovtbhp,a::mov ;setuptablelowbytemov ;tablepointeraddressisnowtabrdc ;readtabledatafromPCaddress ;FFHwillbeplacedinthe;registerand55Hwillbeplaced;theTBLHregistercodesec1.sectionat000h ;Bank1codelocatedhereorg ;thisdefinestheoffsetfrom;startaddressofBank1which;dc000AAh,011BBh,022CCh,033DDh,044EEh,::因为TBLH寄存器是只读寄存器,不能重新,若主程序和中断服务程序都使用表格指令,应该注意它的保护。使用表格指令,中断服务程序可能会改变TBLH的值,若随后在主程序中再次使用这个值,则会发生错误。因此建议避免同时使用表格指令。然而在某些情况下,如果同时使用表格读取指令是不可避免的,则在执行任何主程序的表格前,中断应该先,指表格地11111指表格地111111注意: PC12~PC8:当前程序计数器HT46R62/HT46C6211b10~b0数据数据器是内容可更改的8位RAM内部器,用来临时数据,且分都可在过程控制下进行和写入。对于HT46R65/HT46C65而言,通用数据器分为两个独立的区域,即区0和区2,对于区2和区3。第三部分为LCD器。数据器的这个特殊区域直接映像到LCD显示器,写入这部分器的数据将直接影响显示的数据。LCD器区和通用数据器区的地址重迭,可以通过设定正确的区有和通用数据器位于连续的地址。全部RAM为8位宽度,但器长见的寄存器,如ACC和PCL等,全都有相同的数据器地址。LCD数据存储器对应到数据器的区1,然而只有低四位可使用。如果通过程序读由于LCD数据器位于区1,所以为了进入这个区域,区指针必须先设定为01H。要注意的是,在上电后,数据器的内容,包括LCD数据器,是未知的,因此程序设计者必须对数据器进行适当的初始化。有55 55$$o84 81 918; 95 :5 $o

91:5

7 57$41$-$

1 %

11 "+ "+$55$$

o91:5 $o"+11 "+7

5 8 $ 以操作。也可以通过间接寻址指针寄存器MP0和MP1对数据器进行存取。该RAM区域就是通用数据器。这个数据区可让使用者进行和写入的操作。使用“SET[m].i”和“CLR[m].i”指令可对个别的位做置位或复位的操作,方便用户在数据器内进行位操作。对于HT46R62/HT46C62、HT46R63/HT46C63和HT46R64/HT46C64,通用数据器位于区0,对于HT46R65/HT46C65,通用数据器位于区0和区2,而对于HT46RU66/HT46CU66而言,通用数据器位于区0、区2和区3,在对通用数据器进行存取操作之前,必须先正确的设定区指针的值。当区指针设定为01H时,将对LCD器进行存取。区1、区2或区3必须使用间接寻址指针MP1和间接寻址寄存IAR1MP0和间接寻址缓存器IAR0进行的间接寻址,只会在区0存取数据。>>>>>>>>>>: :4 ;

: :5>>>13 >>>1; ;5

:535;51 "1

"15

151 ; 85 7<

9;+

24

""8+注意:HT46RU66/HT46CU66中,通用数据器的576个字节在三个独立的区,区0、区2和区3。HT46R65/HT46C65中,通用数据器的384个字节在两个独立的器区,即区0和区2。在或写入数据到通用数据器之前,> > >+> > >+>>>+>+>>>6>>>>>+>+>>>>>>6>>>5 55 755 5>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>> >>>5 55 55 55 >55 5 !5 55

555>>> 5>>> > >+>>>+>+>>>>6>>>>>>>>+>+>>>>>>>>>6>>>>>>>>>>>75>7>57>5555>55!55

55> > > >+>>>+>+>>>6>>>>>>>>>+>+>>>>>>>>>6>>>>>>>>>>>7555555>55!55

5 > > > >>> >>>>>>>>>>> >>>>>>>>> +>>>>>>>>>>>> >>>>>> 5 55555 5 5! 55 > > 5 5>>5>>>7 7>7 77 77 7>7 7>>7 7>7 77 7 57 77 8>7>7 77>7>>>8 8>>>8 8>8 88 >8 8 88>8>

>5557777777757789778888888

55577777777757789778888>8888

5> 55 55 7>5 7 7 7 777777775 77 8 9 77 788888>8 8888>8>>8>>8> 8 899 9 999>91B H55>91LCDLCD上显示的数据也是在一块可充分存取的数据器中。通过写入此RAM区域,LCD的输出显示可以直接由应用过程控制。LCD器位于区1,与通用数据器的地址形成映像,因此在存取LCD器之前,必必须使用间接寻址指针MP1和间接寻址寄存器IAR1进行间接存取。:529

:535

:53;

:53. IAR0,针(MP)所指定的器地址产生对应的读/写操作。对于所有的A/DwithLCD系列单片机,均提供两个间接寻址寄存器(IAR0IAR1),两个间接寻址指针取IAR寄存器将返回00H的结果,而间接写入此寄存器则不做任何操作。–MP0,地址adres1到adres4data.section´data´ db? db db db dbcode.sectionat0´code´org00hmova,04h ;setupsizeofblockmovblock,amova,offsetadres1;AccumulatorloadedwithfirstRAMaddressmovmp0,a ;setupmemorypointerwithfirstRAMaddressclrIAR0 ;clearthedataataddressdefinedbyMP0incmp0 ;incrementmemorypointersdz ;checkiflastmemorylocationhas;jmploop区指针请注意,在数据器中,通用数据器和LCD器具有相同的数据存储器地址。因此在使用指令存取LCD器或通用数据器时,必须先确其它单片机的通用数据器位于区0,而HT46R65/HT46C65的通用数据器分为两个区块(区0和区2),HT46RU66/HT46CU66的通用数据器分为三个区块(区0、区2和区3。LCD器均位于区1。可以使用区指针BP来选择正确的数据器区。如果要对区1或区2进行数据存取,区指针BP的值必须先设置是在区0、区1、区2或区3,都能对特殊功能寄存器进行即Bank0和Bank1。区指针的第5位用来选择Bank。尽管区指针寄存器某些位被用来指示区号,但该寄存器的8个位都可以使用。没有用到的那些位复位为“0”。% %2+ 52+ 55+"557+"775+"8/:>3: :!3>77+"9/:!3 3 5+"5/:!3 :76+"C7/:%!3 :累加器所有ALU得到的运算结果都会暂时在ACC累加器里。若没有累加器,程序计数器低字节寄存器–PCL寄存器赋值将导致程序直接跳转到程序器的某一地址,8位的长度,因此只允许在本页的程序器范围内进行TBLP,TBHP这三个特殊功能寄存器对在程序器中的表格进行操作。TBLP为表格加以设定,由于它的值可以被如INC或DEC的指令所改变,这就提供了一种 。对于HT46RU66/HT46CU66,还有一个表格指针高字节TBHP。表格 实时时钟控制寄存器RTCC寄存器控制数个内部功能,实时时钟(RTC)中断就是其中一个,它的寄存器也可控制RTC振荡器的快速启动功能。此振荡器具有固定的频率DC特性所标示的VLVD5% %8*8*I*

& 5)* $ 8 7 5 7 5 7 5

" 8% % & 8 $875555&557&575857787558757877577786C"G6$C–TOPDF标志位外,状态寄存器中的位像其它大部份寄存器一样可以TO或PDF标志位。另外,执行不同的指令后,与状态寄存器有关的运算可能会得到不同的结果。TO标志位只会受系统上电、看门狗溢出、或执行“CLRWDT”或“HALT”指令影位,否则C被清零,同时C也会被带进位/借位的移位指令所影响。借位时,AC被置位,否则AC被清零。置位PDF。出则会置位TO。%%%%=*1 & & INTC0其它中断,EMI位将被清除,而执行“RETI”指令则会置位EMI位。在程序中用手动的方式将EMI位置为“1”。TMR8位定时数值存放的位置。对应的控制寄存器TMRC,含有此定时/计数器的设定信息。对于具有一个16位定时器的HT46R63/HT46C63而言,寄存器TMRL/TMRH是16位定时数值存放的位置对应的控制寄存器TMRC,含有此定时/计数器的设定信息。HT46R64/HT46C64具有一个8位定时/计数器,对应的寄存器为TMR0,和一个16位定时/计数器,对应的寄存器对为 TMR1H,均为定时数值存放的位置。对应的控制寄存器TMR0C和TMR1C含有这两个定时/计数器的设定信息。HT46R65/HT46C65具有两个16位定时/计数器,对应的寄存器对为TMR0L/TMR0H和TMR1L/TMR1H,均为16位定时数值存放的位置两个对应的控制寄存器TMR0C和TMR1C含有这两个定时/计数器的设定信息。跟HT46R65/HT46C65一样,HT46RU66/HT46CU66同样含有两个16位的定时器但HT46RU66/HT46CU66还包含了一个8位的定时器,对应的寄存器为TMR2,控制寄存器为TMR2C。数据器结构图中所示,这些输入/输出寄存器映像到数据器的特定地制寄存器,分别为PAC、PBC和PCC等,也同样映像到数据器的特定地/输出端口中或写入数据之前,必须先设定控制寄存器的位以确定引脚为输入或输出。使用“SET[m].i”和“CLR[m].i”指令可以直接设定这些寄存脉宽调制寄存器 2,每款A/DwithLCD34个集成的脉宽调制器。每个3个制寄存器为0~24个的单片机,它的控制寄存器A/DADRADRLADRHADCR每款A/DwithLCD4、68A/D转换器,位数812位。A/D12个数据寄存器,一个控器ADR。对于9位、10位或12位AD转换的,当一个模数转换周期结束ADRH和低字节数据寄存器ADRLA/DADCR控制,A/D时钟频率由时钟源寄存器ADSR定义。UARTTXR/RXRBRG来实现入/输出口,标示为PA、PB、PC等,这些输入/输出端口在数据器的对应上升沿准备好,m表示端口地址。对于输出操作,所有数据是锁存的,而且持很多产品应用在端口处于输入状态时需要外加一个上拉电阻来实现上拉的功OSPA口其中的一只引脚从高电平转为低电平。当使用暂停指令“HALT”每一个输入/输出端口都具有自己的控制寄存器(PAC、PBC、PCC等)去控制输入/输出状态。利用此控制寄存器,每一个CMOS输出或者特触发器令的是输出端口寄存器的内容。请注意当输入/输出端口被设置为输出状除了HT46R63/HT46C63ADwithLCD系列单BZ及BZ与输入/PA0PA1PFDHT46R63/HT46C63没有包含PFDADwithLCD系列单PFD输出功能,PFDPA3共享。该引脚的输出功能通过掩膜选项进行选择并在烧录后保持不变。必须在端口控制寄存器PAC中将相应的引脚设为输出,以使能PFDPAC中将引脚设为输入,则就算是选择了PFD功能,这些引脚仍将作为带上拉电阻的一般输入引脚使用。外部中断引脚INT0和INT1与输入/PD4PD5共享。如果不需要外每款A/DwithLCD系列的单片机都包含一个、两个或三个定时器,定时器的个数取决于选用的型号。HT46R62/HT46C62HT46R63/HT46C63都具有一个定时器,它们有一个与输入/输出引脚PD6共享的外部输入引脚TMR。HT46R64/HT46C64HT46R65/HT46C65都具有两个定时器,根据选用的/输出PD6共享100-pinQFP封装TMR056-pinSSOP52-pin的QFP封装,虽然具有三个定时器,但只有一个TMR0、TMR1TMR2,分别与输入/输出引脚部定时器引脚可以当作一般输入/输出引脚使用。对于此种应用,TMRC寄存输所有单片机均包含三个或四个与PD0~PD2或PD0~PD3引脚共享的输出。的输出个数取决选用的单片机。所有这些引脚的功能可以通过掩膜A/D每款A/DwithLCD68个A/D转换器输入。所有的选项选择是否要接上拉电阻。然而如果作为A/D输入使用,则这些引脚上的UART外部相连,这两个外部引脚TX和RX分别与引脚PC6和PC7共享。 SEGCOMLCDsegmentcommon引脚。每款单片号,这些引脚称为COM3/SEG19COM3/SEG32COM3/SEG40和COM3/SEG46commonsegment用1/2或1/3占空比掩膜选项,则选择作为SEG功能使用。以配置作为输出使用的segment引脚取决于选用的单片机型号。*$*$#+( I +I$"$ !$$$*> > I 5 5 I!$! & & $*> > I +I

$ + + 5 + +=

!1+ += /o05&37/o05&37&48&565&:67&$2$

&具有引脚共享功能的输入/输出口HT46R63/HT46C63除*$>+*$>+(" I+II!8 5-+ 65 + 6/ : 3 : 3+ 65 + 68 PB的输入/输出*# 3+II! . .PC6/TX输入/输出口—##+($ o+I!!). 4.6!PC7/RX的输入//输出引脚默认为输入状态,而其电平则取决于其它相连接电路以及是否选择了上拉选PC[[789:7"789:7

温馨提示

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

最新文档

评论

0/150

提交评论