它无法跟随原稿的更新,敬请参考英文规格书以获得更准确的信息。
NYQUESTTECHNOLOGYCO.reservestherighttochangethisdocumentwithoutpriornotice.InformationprovidedbyNYQUESTisbelievedtobeurateandreliable.However,NYQUESTmakesnowarrantyforanyerrorswhichmayappearinthisdocument.ContactNYQUESTtoobtainthelatestversionofdevicespecificationsbeforeplacingyourorders.NoresponsibilityisassumedbyNYQUESTforanyinfringementofpatentorotherrightsofthirdpartieswhichmayresultfromitsuse.Inaddition,NYQUESTproductsarenotauthorizedforuseasponentsinlifesupportdevices/systemsoraviationdevices/systems,whereamalfunctionorfailureoftheproductmayreasonablybeexpectedtoresultinsignificantinjurytotheuser,withouttheexpresswrittenapprovalofNYQUEST. 版本 1.0 1.1 改版记录 日期 2016/08/24 新发布。
内容描述 2016/11/15
1.新增引脚叙述。
2.修改表16配置字节。
1.2 2017/05/23修改配置字节表中的输入电压窗口水平。
1.3 2017/11/15修改表14/TO和/PD值和相关事件概述。
1.修改PB3的引脚叙述。
1.4 2018/04/172.修改T1CR1的Bit7、Bit6读写属性。
(仅简中版修改)
3.修改直流电气特性表格。
1.修改图2程序存储器对映地址。
1.5 2018/07/20
2.更新RLR指令说明。
NY8A053D 修正页 9646447922651060
2 Ver.1.5 2018/07/20 NY8A053D 目录
1.概述.............................................................................................................................................6
1.1功能.................................................................................................................................................6
1.2系统框图..........................................................................................................................................8
1.3引脚图..............................................................................................................................................8
1.4引脚说明
..........................................................................................................................................9
2.
2.1程序存储器.....................................................................................................................................10
2.2
数据存储器.....................................................................................................................................
113.功能概述....................................................................................................................................14 3.1
R-page特殊功能寄存器..................................................................................................................14 3.1.1
3.1.2 INDF(间接寻址寄存器)
....................................................................................................................
14TMR0(定时器0寄存器)..................................................................................................................
14 3.1.33.1.43.1.5 PCL(程序计数器低字节)..................................................................................................................
14STATUS(状态寄存器)......................................................................................................................
15FSR(数据指针寄存器).....................................................................................................................
15 3.1.63.1.73.1.8 PortA(PortA数据寄存器).................................................................................................................
16PortB(PortB数据寄存器).................................................................................................................
16PCON(Power寄存器)......................................................................................................................
16 3.1.9BWUCON(PortB唤醒控制寄存器)...................................................................................................
173.1.10PCHBUF(程序计数器高字节)..........................................................................................................
173.1.11ABPLCON(PortA/PortB下拉电阻控制寄存器).................................................................................
17 3.1.12BPHCON(PortB上拉电阻控制寄存器)............................................................................................
183.1.13INTE(中断使能寄存器)....................................................................................................................
183.1.14INTF(中断标志寄存器)....................................................................................................................
19 3.2T0MD定时器0控制寄存器.............................................................................................................19 3.3F-page特殊功能寄存器...................................................................................................................20 3.3.1
IOSTA(PortAI/O控制寄存器)
..........................................................................................................
20 3.3.23.3.33.3.4 IOSTB(PortBI/O控制寄存器)..........................................................................................................
21PS0CV(预分频器0寄存器).............................................................................................................
21BODCON(PortB开漏控制寄存器)...................................................................................................
21 3.3.5PCON1(Power控制寄存器1)..........................................................................................................
213 Ver.1.5 2018/07/20 NY8A053D 3.4S-page特殊功能寄存器..................................................................................................................22
3.4.1TMR1(定时器1寄存器)
..................................................................................................................
223.4.2T1CR1(定时器1控制寄存器1)......................................................................................................
223.4.3T1CR2(定时器1控制寄存器2)......................................................................................................
233.4.4PWM1DUTY(PWM1占空比寄存器)...............................................................................................
243.4.5PS1CV(预分频器1寄存器).............................................................................................................
243.4.6BZ1CR(蜂鸣器1控制寄存器).........................................................................................................
243.4.7IRCR(IR控制寄存器).......................................................................................................................
253.4.8TBHP(表格指针高字节寄存器)........................................................................................................
263.4.9TBHD(表格数据高字节寄存器).......................................................................................................
263.4.10OSCCR(振荡器控制寄存器)...........................................................................................................
27 3.5I/OPort..........................................................................................................................................273.5.1IO引脚结构框图
...................................................................................................................................
29 3.6定时器0.........................................................................................................................................363.7定时器1/PWM1/Buzzer1..............................................................................................................37
3.8红外线载波(IR)..........................................................................................................................39
3.9看门狗定时器(WDT)..................................................................................................................40
3.10中断...............................................................................................................................................40 3.10.1
Timer0上溢中断
..................................................................................................................................
413.10.2Timer1下溢中断..................................................................................................................................
413.10.3看门狗超时中断...................................................................................................................................
413.10.4PB输入状态改变中断...........................................................................................................................
413.10.5外部中断输入.......................................................................................................................................
413.11振荡器配置.....................................................................................................................................413.12工作模式........................................................................................................................................43
3.12.1正常模式
..............................................................................................................................................
443.12.2慢速模式..............................................................................................................................................
453.12.3待机模式..............................................................................................................................................
453.12.4睡眠模式..............................................................................................................................................
453.12.5唤醒稳定时间.......................................................................................................................................
463.12.6工作模式概述.......................................................................................................................................
463.13复位...............................................................................................................................................46
4.
5.
配置字节表.................................................................................................................................64
4
Ver.
6.电气特性....................................................................................................................................65
6.1最大绝对值.....................................................................................................................................65
6.2直流电气特性.................................................................................................................................65
6.3特性图............................................................................................................................................67 6.3.1
高速RC振荡频率与电源电压曲线图
.....................................................................................................
676.3.2高速RC振荡频率与温度曲线图............................................................................................................
676.3.3低速RC振荡频率与电源电压曲线图.....................................................................................................
686.3.4低速RC振荡频率与温度曲线图............................................................................................................
686.4建议工作电压.................................................................................................................................686.5
LVR电压与温度曲线图....................................................................................................................69
7.
8.封装尺寸....................................................................................................................................70 8.1
8引脚SOP(150毫寸)................................................................................................................70
8.214引脚SOP(150毫寸)..............................................................................................................70
8.314引脚DIP(300
毫寸)................................................................................................................71
9.
....................................................................................................................................71
5
Ver.
1.概述 NY8A053D是以EPROM作为存储器的8位单片机,专为多组I/O口产品的应用而设计。
例如遥控器、风扇/灯光控制或是游乐器周边等等。
采用CMOS制程并同时提供客户低成本、高性能、及高性价比等。
NY8A053D核心建立在RISC精简指令集架构可以很容易地做编程和控制,共有55条指令。
除了少数指令需要两个指令时钟,大多数指令都是一个指令时钟能完成,可以让用户轻松地以程序控制完成不同的应用。
因此非常适合各种中低记忆容量但又复杂的应用。
在I/O的资源方面,NY8A053D有12根弹性的双向I/O脚,每个I/O脚都有单独的寄存器控制为输入或输出脚。
而且每一个I/O脚位都能通过控制相关的寄存器达成如上拉或下拉电阻或开漏(Open-Drain)输出。
此外针对红外线摇控的产品方面,NY8A053D内置了可选择频率的红外载波发射口。
NY8A053D有两组定时器,可用系统时钟当作一般的计时应用或者从外部讯号触发来计数。
另外NY8A053D提供1组8位的PWM输出或蜂鸣器输出,可用来驱动马达、LED、或蜂鸣器等等。
NY8A053D采用双时钟机制,高速振荡时钟或者低速振荡时钟都由内部RC振荡或外部晶振输入。
在双时钟机制下,NY8A053D可选择多种工作模式如正常模式(Normal)、慢速模式(Slowmode)、待机模式(Standbymode)与睡眠模式(Haltmode),可节省电力消耗,延长电池寿命。
并且单片机在使用内部RC高速振荡时,低速振荡可以同时使用外部精准的晶振计时。
可以维持高速处理同时又能精准计算真实时间。
在省电的模式下,如待机模式(Standbymode)与睡眠模式(Haltmode)中,有多个中断源可以触发来唤醒NY8A053D进入正常操作模式(Normalmode)或慢速模式(Slowmode)来处理突发事件。
1.1功能 宽广的工作电压:(指令时钟為4個CPU时钟,亦即4T模式)2.0V~5.5V@系統时钟≦8MHz。
2.2V~5.5V@系統时钟>8MHz。
宽广的工作温度:-40°C~85°
C。
1Kx14位的程序存储器空间。
64字节的通用数据存储器空间。
12根可分别单独控制输入输出方向的I/O脚(GPIO)、PA[3:0]、PB[7:0]。
PA[3:0]及PB[3:0]可选择输入时使用内部下拉电阻。
PB[7:4]及PB[2:0]可选择输入时使用内部上拉电阻。
PB[5:0]可选择内部上拉电阻或开漏输出(Open-Drain)。
PB[3]可选择当作输入或开漏输出(Open-Drain)。
8级深度硬件堆栈(Stack)。
访问数据有直接或间接寻址模式。
一组8位上数定时器(Timer0)包含可编程的预分频器。
一组8位下数定时器(Timer1)可选自动重载或连续下数计时。
一个8位的脉冲宽度调变输出(PWM1)。
6 Ver.1.5 2018/07/20 NY8A053D 一个蜂鸣器输出(BZ1)。
38/57KHz红外线载波(IR)频率可供选择,同时载波之极性也可以通过寄存器选择。
红外载波发射口。
内置上电复位电路(POR)。
内置低压复位功能(LVR)。
内置看门狗计时(WDT),可由配置字节(ConfigurationWord)控制开关。
双时钟机制,系统时钟可以随时切换高速振荡或者低速振荡。
高速振荡时钟:E_HXT(超过6MHz外部高速晶振)E_XT(455K~6MHz外部晶振)I_HRC(1~20MHz內部高速RC振荡) 低速振荡时钟:E_LXT(32KHz外部低速晶振)I_LRC(內部32KHz低速RC振荡) 四种工作模式可随系统需求调整电流消耗:正常模式(Normalmode)、慢速模式(Slowmode)、待机模式(Standbymode)与睡眠模式(Haltmode)。
五种硬件中断:Timer0上溢中断。
Timer1下溢中断。
WDT中断。
PB输入状态改变中断。
外部中断输入。
NY8A053D在待机模式(Standbymode)下的五种唤醒中断:Timer0上溢中断。
Timer1下溢中断。
WDT中断。
PB输入状态改变中断。
外部中断输入。
NY8A053D在睡眠模式(Haltmode)下的三种唤醒中断:WDT中断。
PB输入状态改变中断。
外部中断输入。
7 Ver.1.5 2018/07/20 1.2系统框图 NY8A053D Reset Xin Xout Oscillator/TimingControl InternalOscillator SystemFunctionRegisters 8-LevelStack EPROM Oper.ModeControl WatchDogTimer Interrupt INT Control SRAM ALU Timer0,
1 umulatorControl&DataBus ProgramCounter LVR/PORDetector InstructionRegister InstructionDecoder I/OControl IRGenerator PWMGenerator BuzzerGenerator PA[3:0]PB[7:0] 1.3引脚图 NY8A053D提供三种封装类型:SOP14,DIP14及SOP8。
图1封装引脚图
8 Ver.1.5 2018/07/20 1.4引脚说明 引脚名PA0~PA3PB0/INT/SDI PB1/IR/SDO PB2/EX_CKI/PWM1/BZ1/SCK PB3/RSTb/Vpp PB4/XoutPB5/XinPB6/PWM1PB7/BZ1 VDDVSS NY8A053D I/O 描述 I/O双向I/O引脚。
PB0是一个双向I/O引脚。
I/OPB0是外部中断输入引脚当EIS=1&INTIE=
1。
PB0也是编程数据输入SDI。
PB1是一个双向I/O引脚。
I/O如果启用红外模式,该引脚为红外载波输出。
PB1也是编程数据输出SDO PB2是一个双向I/O引脚。
PB2可当作定时器0/1外部时钟来源EX_CKI。
I/OPB2也是编程时钟输入SCK。
PB2依配置字节设定可输出PWM1。
PB2依配置字节设定可输出BZ1。
PWM1比BZ1有更高的优先权。
PB3可选择当作输入脚或开漏输出脚。
I/OPB3可当作复位引脚RSTb。
当RSTb引脚为低电压水平,将会重置NY8A053D。
当VPP超过7.75V,将会让NY8A053D进入EPROM烧写模式。
PB4是一个双向I/O引脚,当用于I_HRC与I_LRC。
I/OPB4可当作晶振输出引脚Xout,当用于E_HXT,E_XT或E_LXT。
PB4也可以当成指令时钟输出。
I/OPB5是一个双向I/O引脚,当用于I_HRC与I_LRC。
PB5可当作晶振输入引脚Xin,当用于E_HXT,E_XT或E_LXT。
I/OPB6是一个双向I/O引脚。
PB6依配置字节设定可输出PWM1。
I/OPB7是一个双向I/O引脚。
PB7依配置字节设定可输出BZ1。
-电源正端。
-电源负端。
9 Ver.1.5 2018/07/20
2.内存结构 NY8A053D存储器分为两类:分别是程序存储器和数据存储器。
NY8A053D 2.1程序存储器 NY8A053D程序存储器空间是1Kx14位。
因此,10位宽的程序计数器(PC)可以访问程序存储器的任何地址。
复位地址位于0x000,软件中断地址位于0x001,内部和外部硬件中断地址位于0x008。
NY8A053D提供CALL、GOTOA和CALLA等指令去访问程序空间的256个地址。
还提供GOTO指令去访问程序空间512个地址,LCALL和LGOTO指令访问程序空间的任何地址。
当发生子程序调用或中断情况时,下一个ROM地址写入堆栈的顶部。
而当执行RET、RETIA或RETIE指令,堆栈顶部的数据会被读取并加载到程序计数器。
NY8A053D程序存储器地址0x3FE~0x3FF是保留地址。
如果用户在这些地址写入程序可能会发生无法预期的程序执行错误。
NY8A053D程序存储器地址0x00E~0x00F是PresetRollingCode地址。
如果用户在不设置滚码时可当作程序区使用。
图2程序存储器对映地址 10 Ver.1.5 2018/07/20 NY8A053D 2.2数据存储器 根据用于访问数据存储器的指令,数据存储器可分为三类:R-page特殊功能寄存器(SFR)和通用寄存器(GPR)、F-page特殊功能寄存器、S-page特殊功能寄存器。
GPR是由SRAM组成,用户可以使用它们来存储变量或计算结果。
R-page特殊功能寄存器和数据存储器分为四组Bank,可透过数据指针寄存器(FSR)来切换Bank。
寄存器BK[1:0]为FSR[7:6],可从四个Bank中选择其中一个。
R-page特殊功能寄存器和数据存储器可用直接寻址方式和间接寻址方式来进行访问。
数据存储器使用间接寻址方式如下图所描述,这种间接寻址方式包含使用INDF寄存器。
Bank选择是由FSR[7:6]
决定,地址选择则是由FSR[5:0]而定。
0x3FBank0Bank1Bank2Bank3 FSR[7:6]toselectBank# : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : FSR[5:0]
toselectlocation 0x00 图3间接寻址方式访问数据存储器 下面描述了数据存储器使用的直接寻址方式。
Bank选择是由寄存器FSR[7:6]决定,而地址选择则是由指令码OP-Code[5:0]直接决定。
0x3FBank0Bank1Bank2Bank3 FSR[7:6]toselectBank# : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Opcode[5:0]
toselectlocation 0x00 图4直接寻址方式访问数据存储器 11 Ver.1.5 2018/07/20 NY8A053D R-page特殊功能寄存器可以通过一般的指令访问,如算术指令和数据搬移指令。
R-page特殊功能寄存器占用了从Bank0的0x0到0xF。
然而,Bank1、Bank2和Bank3的相同地址会映像到Bank0。
换句话说,R-page特殊功能寄存器只存在于Bank0。
GPR占用了Bank0数据存储器的0x10到0x3F地址与Bank1地址0x10到0x1F,如表1所示。
NY8A053D寄存器名称和R-page特殊功能寄存器的映像地址说明如下表。
地址 FSR[7:6] 0x00x10x20x30x40x50x60x70x80x90xA0xB0xC0xD0xE0xF 00(Bank0) INDFTMR0PCLSTATUSFSRPORTAPORTB PCONBWUCONPCHBUFABPLCONBPHCON INTEINTF 01(Bank1) 10(Bank2) 11(Bank3) 映射至Bank0 0x10~0x1F 通用寄存器 通用寄存器 映射至bank0 映射至Bank1 0x20~0x3F 通用寄存器 映射至bank0 映射至bank0 映射至bank0 表1R-page特殊功能寄存器地址映像表 12 Ver.1.5 2018/07/20 NY8A053D F-page特殊功能寄存器只能被指令IOST和IOSTR访问,S-page特殊功能寄存器只能被指令SFUN和SFUNR访问。
当F-page和S-page寄存器被访问时,STATUS[7:6]选择位会被忽略。
寄存器名称和F-page、S-page的地址说明如下表。
地址 特殊功能寄存器种类 F-pageSFR S-pageSFR 0x0 - TMR1 0x1 - T1CR1 0x2 - T1CR2 0x3 - PWM1DUTY 0x4 - PS1CV 0x5 IOSTA BZ1CR 0x6 IOSTB IRCR 0x7 - TBHP 0x8 - TBHD 0x9 - - 0xA PS0CV - 0xB - - 0xC BODCON - 0xD - - 0xE - - 0xF PCON1 OSCCR 表
2F-page特殊功能寄存器和S-page特殊功能寄存器地址表 13 Ver.1.5 2018/07/20
3.功能概述 本章节将详细描述NY8A053D的操作方式。
NY8A053D 3.1R-page特殊功能寄存器 3.1.1 INDF(间接寻址寄存器) 名称INDF SFR类型
R 地址0x0 读写属性 初始值 Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0INDF[7:0]读/写xxxxxxxx 间接寻址寄存器并不是真的存在,而是以间接寻址模式来使用。
任何指令访问间接寻址寄存器时,实际上是访问数据指针寄存器FSR所选择的寄存器。
3.1.2 TMR0(定时器0寄存器) 名称TMR0 SFR类型
R 地址0x1 读写属性 初始值 Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TMR0[7:0]读/写Xxxxxxxx 当读取TMR0寄存器时,会得到定时器0目前计数数值。
当写入TMR0寄存器时,会更新定时器0目前计数数值。
通过设置T0MD与配置字节(ConfigurationWord),定时器0时钟源可以从指令时钟FINST、外部时钟EX_CKI或低频震荡器I_LRC/E_LXT中择
一。
3.1.3PCL(程序计数器低字节) 名称PCL SFR类型
R 读写属性初始值 地址0x2 Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PCL[7:0]读/写0x00 程序计数器(PC)是一个10位寄存器,分高2位和低8位。
当程序执行了一个指令,同时PC数值会增加,除了某些指令会直接更改PC数值。
PCL寄存器可访问PC低字节(PC[7:0]),PC高字节(PC[9:8])并不能直接访问,必须通过PCHBUF寄存器完成访问。
以GOTO指令来说,PC[8:0]是从指令码(OP-Code)取得,而PC[9]是从PCHBUF[1]加载。
CALL指令的PC[7:0]
是从指令码取得,而PC[9:8]是从PCHBUF[1:0]加载。
下一个PC地址(PC+1),将会存到堆栈的顶部。
LGOTO指令的PC[9:0]是从指令码取得。
LCALL指令的PC[9:0]是从指令码取得,下一个PC地址(PC+1),将被存到堆栈的顶部。
14 Ver.1.5 2018/07/20 NY8A053D 3.1.4STATUS(状态寄存器) 名称SFR类型 STATUS
R 读写属性 初始值 地址0x3 Bit7GP7读/写
0 Bit6GP6读/写
0 Bit5GP5读/写
0 Bit4/TO读/写(*2)
1 Bit3/PD读/写(*1)
1 状态寄存器包含算术/逻辑指令的结果和是否发生看门狗超时复位。
C:进位/借位标志位。
C=1时,加法运算有进位或减法运算无借位。
C=0时,加法运算无进位或减法运算有借位。
DC:半进位/半借位标志位。
DC=1时,加法运算低四位有进位或减法运算时没有向高四位借位。
DC=0时,加法运算低四位无进位或减法运算时有向高四位借位。
Z:零位。
Z=1时,算术或逻辑运算的结果是零。
Z=0时,算术或逻辑运算的结果不为零。
/PD:睡眠模式标志位。
/PD=1时,上电或执行CLRWDT指令后。
/PD=0时,执行SLEEP指令后。
/TO:看门狗超时标志位。
/TO=1时,上电或执行CLRWDT或SLEEP指令后。
/TO=0时,发生WDT上溢。
GP7,GP6,GP5:通用寄存器数据位。
(*1)可以被SLEEP指令清除。
(*2)可以由CLRWDT指令设定。
Bit2Z 读/写
X Bit1DC读/写
X Bit0C 读/写
X 3.1.5FSR(数据指针寄存器) 名称SFR类型地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 FSR
R 0x4 BK[1:0] FSR[5:0] 读写属性 读/写 初始值
0 0
X X
X X
X X FSR[5:0]:从指定Bank数据存储器的
64个寄存器中选择一个。
BK[1:0]:Bank选择位,BK[1:0]=00b选择Bank0,BK[1:0]=01b选择Bank1,BK[1:0]=10b选择Bank2。
BK[1:0]=11b,选择Bank3。
15 Ver.1.5 2018/07/20 NY8A053D 3.1.6 PortA(PortA数据寄存器) 名称SFR类型地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 PortA
R 0x5GP7GP6GP5GP4PA3PA2PA1PA0 读写属性 读/写 初始值 数据锁存器值是xxxx,读取值则是xxxx端口值(PA3~PA0) 读取PortA时,若特定脚位被配置为输入脚,将得到该脚位输入状态。
然而,若该脚位被配置为输出脚,依据
配置字节,得到该脚位的状态或相对应的输出数据锁存值。
当写入PortA时,数据是被写入PortA的输出数据锁存器中。
GP7~4:通用寄存器数据位。
3.1.7 PortB(PortB数据寄存器) 名称SFR类型地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 PortB
R 0x6PB7PB6PB5PB4PB3PB2PB1PB0 读写属性 读/写 初始值 数据锁存器值是xxxxxxxx,读取值则是xxxxxxxx端口值(PB7~PB0) 读取PortB时,若特定脚位被配置为输入脚,将得到该脚位输入状态。
然而,若该脚位被配置为输出脚,依据
配置字节,得到该脚位的状态或相对应的输出数据锁存值。
当写入PortB时,数据是被写入PortB的输出数据锁存器中。
3.1.8PCON(Power寄存器) 名称PCON SFR类型
R 地址0x8 Bit7Bit6WDTENEIS Bit5GP5 Bit4GP4 Bit3LVREN Bit2GP2 读写属性 读/写 初始值
1 0
0 0
1 0 GP5,GP4,GP2~GP0:通用寄存器数据位。
LVREN:开启/关闭LVR。
LVREN=1时,开启LVR。
LVREN=0时,关闭LVR。
EIS:外部中断引脚选择位。
EIS=1时,PB0选择为外部中断引脚。
EIS=0时,PB0选择为GPIO。
WDTEN:开启/关闭WDT。
WDTEN=1时,开启WDT。
WDTEN=0时,关闭WDT。
Bit1GP1 Bit0GP0
0 0 16 Ver.1.5 2018/07/20 NY8A053D 3.1.9BWUCON(PortB唤醒控制寄存器) 名称 SFR类型 BWUCON
R 读写属性 初始值 地址.Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 0x9WUPB7WUPB6WUPB5WUPB4WUPB3WUPB2WUPB1WUPB0 读/写读/写读/写读/写读/写读/写读/写读/写
1 1
1 1
1 1
1 1 WUPBx:开启/关闭PBx唤醒功能,0≤x≤
7。
WUPBx=1时,开启PBx唤醒功能。
WUPBx=0时,关闭PBx唤醒功能。
3.1.10PCHBUF(程序计数器高字节) 名称 SFR类型地址 Bit7 PCHBUF
R 0xA - 读写属性 - 初始值
X Bit6 Bit5 XSPD_STP 写
0 Bit4Bit3X Bit2GP5 Bit1Bit0PCHBUF[2:0]读/写000 PCHBUF[1:0]:程序计数器PC的第九个位到第八个位。
XSPD_STP:写1停止外部晶振32.768KHz起振强化功能。
GP5:通用寄存器数据位。
3.1.11ABPLCON(PortA/PortB下拉电阻控制寄存器) 名称SFR类地址Bit7Bit6Bit5型 ABPLCONR0xB/PLPB3/PLPB2/PLPB1 读写属性 初始值
1 1
1 /PLPAx:关闭/开启PAx下拉电阻,0≤x≤
3。
/PLPAx=
1,关闭PAx下拉电阻。
/PLPAx=
0,开启PAx下拉电阻。
/PLPBx:关闭/开启PBx下拉电阻,0≤x≤
3。
/PLPBx=
1,关闭PBx下拉电阻。
/PLPBx=
0,开启PBx下拉电阻。
Bit4 Bit3 /PLPB0/PLPA3 读/写
1 1 Bit2/PLPA2
1 Bit1/PLPA1
1 Bit0/PLPA0
1 17 Ver.1.5 2018/07/20 NY8A053D 3.1.12BPHCON(PortB上拉电阻控制寄存器) 名称SFR类型地址 BPHCON
R 0xC 读写属性 初始值 Bit7 /PHPB7读/写
1 Bit6Bit5Bit4 /PHPB6/PHPB5/PHPB4 (*1) (*1) 读/写读/写读/写
1 1
1 Bit3 GP3读/写
1 Bit2Bit1Bit0 /PHPB2/PHPB1/PHPB0 读/写
1 读/写
1 读/写
1 /PHPBx:关闭/开启PBx上拉电阻,0≤x≤
7。
/PHPBx=1时,关闭PBx上拉电阻。
/PHPBx=0时,开启PBx上拉电阻。
GP3:通用寄存器数据位。
注意:PB4与PB5作为晶振引脚时应关闭内置上拉电阻。
3.1.13INTE(中断使能寄存器) 名称SFR类型地址Bit7 Bit6 Bit5Bit4Bit3 Bit2 Bit1 Bit0 INTE
R 0xE - WDTIE - 读写属性 - 读/写 - 初始值
X 0
X - T1IEINTIEPBIET0IE - 读/写读/写读/写读/写
X 0
0 0
0 T0IE:定时器0上溢(overflow)中断使能位。
T0IE=1时,开启定时器0上溢中断。
T0IE=0时,关闭定时器0上溢中断。
PBIE:PortB输入状态变化中断使能位。
PBIE=1时,开启PortB输入状态变化中断。
PBIE=0时,关闭PortB输入状态变化中断。
INTIE:外部中断使能位。
INTIE=1时,开启外部中断。
INTIE=0时,关闭外部中断。
T1IE:定时器1下溢(underflow)中断使能位。
T1IE=1时,开启定时器1下溢中断。
T1IE=0时,关闭定时器1下溢中断。
WDTIE:WDT上溢中断使能位。
WDTIE=1时,开启WDT上溢中断。
WDTIE=0时,关闭WDT上溢中断。
18 Ver.1.5 2018/07/20 3.1.14INTF(中断标志寄存器) 名称SFR类型地址Bit7Bit6Bit5Bit4 INTF
R 0xF - WDTIF - - 读写属性 - 读/写 - - 初始值(Note)
X 0
X X T0IF:定时器0上溢中断标志位。
T0IF=1时,发生定时器0上溢中断。
T0IF必须由程序清零。
PBIF:PortB输入状态变化中断标志位。
PBIF=1时,发生PortB输入状态变化中断。
PBIF必须由程序清零。
INTIF:外部中断标志位。
INTIF=1时,发生外部中断。
INTIF必须由程序清零。
T1IF:定时器1下溢中断标志位。
T1IF=1时,发生定时器1下溢中断。
T1IF必须由程序清零。
WDTIF:WDT超时上溢标志位。
WDTIF=1时,发生WDT上溢中断。
WDTIF必须由程序清零。
注意:当对应的INTE寄存器控制位未使能,读取中断标志是
0。
NY8A053D Bit3 T1IF读/写
0 Bit2 INTIF读/写
0 Bit1 PBIF读/写
0 Bit0 T0IF读/写
0 3.2T0MD定时器0控制寄存器 T0MD是可读写寄存器,但只能由指令T0MD/T0MDR访问。
名称SFR类型地址 T0MD - - 读写属性 初始值(Note) Bit7LCKTM0
0 Bit6INTEDG
0 Bit5T0CS
1 Bit4 T0CE读/写
1 Bit3PS0WDT Bit2Bit1Bit0PS0SEL[2:0]
1 111 PS0SEL[2:0]:选择预分频器0的预分频比(DividingRate)。
预分频器0根据PS0WDT控制位决定分配给定时器 0或WDT。
当预分频器0被分配给WDT,预分频比取决于选择哪种计数机制(WDT复位或WDT 中断)。
PS0SEL[2:0] 000001 PS0WDT=0(定时器0) 1:21:
4 预分频比选项 PS0WDT=1(WDT复位) 1:11:
2 PS0WDT=1(WDT中断) 1:21:
4 19 Ver.1.5 2018/07/20 NY8A053D PS0SEL[2:0] 010011100101110111 PS0WDT=0(定时器0) 1:81:161:321:641:1281:256 预分频比选项PS0WDT=1(WDT复位) 1:41:81:161:321:641:128 PS0WDT=1(WDT中断) 1:81:161:321:641:1281:256 表3预分频器0的预分频比选项 PS0WDT:预分频器0分配选择。
PS0WDT=1时,预分频器0被分配到WDT。
PS0WDT=0时,预分频器0被分配到定时器
0。
注意:在使能看门狗或定时器中断前,要先设定PS0WDT和PS0SEL[2:0],否则复位或中断可能导致错误触发。
T0CE:定时器0外部时钟源触发沿选择。
T0CE=1时,下降沿时定时器0加
一。
T0CE=0时,上升沿时定时器0加
一。
注意:T0CE应用在外部EX_CKI脚作为定时器0时钟源。
T0CS:定时器0时钟源选择。
T0CS=1时,选择EX_CKI脚或低频震荡I_LRC/E_LXT。
T0CS=0时,选择指令时钟FINST。
INTEDG:INT沿触发选择位。
INTEDG=1时,引脚PB0输入上升沿将触发INTIF。
INTEDG=0时,引脚PB0输入下降沿将触发INTIF。
LCKTM0:T0CS=0时,指令时钟FINST被选作定时器0时钟源。
T0CS=1时,LCKTM0=0时,外部EX_CKI脚被选择当作定时器0时钟源。
T0CS=1时,LCKTM0=1时,低频震荡I_LRC/E_LXT为定时器0时钟源。
注意:有关定时器0时钟源选择的详细说明,请参考定时器0章节。
3.3F-page特殊功能寄存器 3.3.1IOSTA(PortAI/O控制寄存器) 名称SFR类型地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 IOSTA
F 0x5 - - - - IOPA3IOPA2IOPA1IOPA0 读写属性 - - - - 读/写读/写读/写读/写 初始值
X X
X X
1 1
1 1 20 Ver.1.5 2018/07/20 IOPAx:PAxI/O模式选择,0≤x≤
3。
IOPAx=1时,PAx设为输入口。
IOPAx=0时,PAx设为输出口。
NY8A053D 3.3.2 IOSTB(PortBI/O控制寄存器) 名称SFR类型地址Bit7 IOSTB
F 0x6IOPB7 读写属性 读/写 初始值
X Bit6IOPB6读/写
X Bit5IOPB5读/写
X Bit4IOPB4读/写
X Bit3IOPB3读/写
1 Bit2IOPB2读/写
1 Bit1IOPB1读/写
1 Bit0IOPB0读/写
1 IOPBx:PBxI/O模式选择,0≤x≤
7。
IOPBx=1时,PBx设为输入口。
IOPBx=0时,PBx设为输出口。
3.3.3PS0CV(预分频器0寄存器) 名称SFR类型地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 PS0CV
F 0xA PS0CV[7:0] 读写属性 读 初始值
1 1
1 1
1 1
1 1 读取PS0CV时,会得到预分频器0器的目前计数值。
3.3.4 BODCON(PortB开漏控制寄存器) 名称BODCON SFR类型
F 地址Bit7Bit6Bit5Bit40xCODPB7ODPB6ODPB5ODPB4 读写属性 读/写读/写读/写读/写 初始值
0 0
0 0 Bit3GP3读/写
0 ODPBx:开启/关闭PBx的开漏,0≤x≤
7。
ODPBx=1时,开启PBx的开漏。
ODPBx=0时,关闭PBx的开漏。
GP3:通用寄存器数据位。
Bit2ODPB2 读/写
0 Bit1ODPB1 读/写
0 Bit0ODPB0 读/写
0 3.3.5PCON1(Power控制寄存器1) 名称SFR类型地址Bit7 Bit6 PCON1
F 0xFGIE - 读写属性 读/写(1*)- 初始值
0 0 Bit5GP5读/写
0 Bit4GP4读/写
0 Bit3GP3读/写
0 Bit2GP2读/写
0 Bit1GP1读/写
0 Bit0T0EN读/写
1 21 Ver.1.5 2018/07/20 T0EN:开启/关闭定时器
0。
T0EN=1时,开启定时器
0。
T0EN=0时,关闭定时器
0。
GIE:开启/关闭总中断使能位。
GIE=1时,开启总中断。
GIE=0时,关闭总中断。
GP5~GP1:通用寄存器数据位。
(1*):由指令ENI设置
1、指令DISI清除、指令IOSTR所读取。
NY8A053D 3.4S-page特殊功能寄存器 3.4.1TMR1(定时器1寄存器) 名称SFR类型地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 TMR1
S 0x0 TMR1[7:0] 读写属性 读/写 初始值 XXXXXXXX 当读取TMR1寄存器时,会得到定时器1目前计数数值。
当写入TMR1寄存器时,会更新定时器1目前计数数值。
3.4.2T1CR1(定时器1控制寄存器1) 名称SFR类型地址 Bit7 Bit6 Bit5Bit4Bit3Bit2Bit1Bit0 T1CR1
S 0x1PWM1OENPWM1OAL- - -T1OST1RLT1EN 读写属性 只写 只写 - - -读/写读/写读/写 初始值
0 0
X X
X 0
0 0 此寄存器用于配置定时器1功能。
T1EN:开启/关闭定时器
1。
T1EN=1时,开启定时器
1。
T1EN=0时,关闭定时器
1。
T1RL:当连续模式被选择(T1OS=0),选择定时器1下数方式。
T1RL=1时,当下溢发生,定时器1初始值从TMR1寄存器被重新加载并继续下数。
T1RL=0时,当下溢发生,定时器1继续从0xFF下数。
T1OS:当下溢发生,设置定时器1操作模式。
T1OS=1时,单次计数模式(One-Shotmode)。
定时器1会从初始值到0x00计数一次。
T1OS=0时,连续计数模式(mode)。
下溢后,定时器1会持续下数。
22 Ver.1.5 2018/07/20 NY8A053D T1OST1RL
0 0
0 1
1 x 定时器1计数选项定时器1从0xFF倒数到0x00。
当下溢发生,0xFF被重载至定时器1并继续下数。
定时器1从重载的数值倒数到0x00。
当下溢发生,定时器1从TMR1重新载入数值并继续下数。
定时器1从初始值下数到0x00。
当下溢发生,定时器1停止下数。
表4定时器1功能 PWM1OAL:定义PWM1输出有效状态。
PWM1OAL=1时,PWM1为低电平有效位输出。
PWM1OAL=0时,PWM1为电平高有效位输出。
PWM1OEN:开启/关闭PWM1输出。
PWM1OEN=
1,PB6/PB2输出PWM1。
PWM1OEN=
0,PB6/PB2为GPIO。
3.4.3 T1CR2(定时器1控制寄存器2) 名称SFR类型地址Bit7 T1CR2
S 0x2 - 读写属性 - 初始值
X Bit6Bit5Bit4 Bit3 Bit2Bit1Bit0 - T1CST1CE/PS1EN PS1SEL[2:0] - 读/写读/写读/写读/写读/写读/写
X 1
1 1
1 1
1 该寄存器用于配置定时器1功能。
PS1SEL[2:0]:预分频器1预分频比选项。
PS1SEL[2:0] 预分频比选项 000 1:
2 001 1:
4 010 1:
8 011 1:16 100 1:32 101 1:64 110 1:128 111 1:256 表
5预分频器1预分频比选项 注意:在PS1EN=1前须先设定PS1SEL[2:0],否则可能会误发生中断。
/PS1EN:关闭/开启预除器
1。
/PS1EN=1时,关闭预分频器
1。
/PS1EN=0时,开启预分频器
1。
23 Ver.1.5 2018/07/20 T1CE:定时器1外部时钟触发沿选项。
T1CE=1时,EX_CKI脚下降沿时定时器1减
一。
T1CE=0时,EX_CKI脚上升沿时定时器1减
一。
T1CS:定时器1时钟源选项。
T1CS=1时,选择EX_CKI脚作为外部时钟输入。
T1CS=0时,选择指令时钟FINST。
NY8A053D 3.4.4 PWM1DUTY(PWM1占空比寄存器) 名称PWM1DUTY SFR类型
S 地址0x3 读写属性 初始值 Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PWM1DUTY[7:0]写XXXXXXXX 此寄存器仅能写入。
当定时器1被使能并开始倒数计时后,PWM1输出会保持在非有效位状态。
当定时器1数值等于PWM1DUTY,PWM1输出有效位状态直到发生下溢。
定时器1重新加载的数值储存在TMR1寄存器,以用来定义PWM1帧率,PWM1DUTY寄存器用于定义PWM1的占空比。
3.4.5PS1CV(预分频器1寄存器) 名称SFR类型地址Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 PS1CV
S 0x4 PS1CV[7:0] 读写属性 读 初始值
1 1
1 1
1 1
1 1 读取PS1CV时,将会得到预分频器1的目前数值。
3.4.6BZ1CR(蜂鸣器1控制寄存器) 名称BZ1CR SFR类型
S 地址0x5 Bit7BZ1EN Bit6Bit5Bit4Bit3Bit2Bit1Bit0 - - - BZ1FSEL[3:0] 读写属性 写 - - - 写 初始值
0 X
X X
1 1
1 1 24 Ver.1.5 2018/07/20 BZ1FSEL[3:0]:BZ1输出频率选项。
BZ1FSEL[3:0] 0000000100100011010001010110011110001001101010111100110111101111 BZ1频率选项 时钟源 预分频比 预分频器1输出定时器1输出 1:21:41:81:161:321:641:1281:256定时器1bit0定时器1bit1定时器1bit2定时器1bit3定时器1bit4定时器1bit5定时器1bit6定时器1bit7 表6蜂鸣器BZ1(PB2/PB7)输出频率选项 BZ1EN:开启/关闭蜂鸣器1输出。
BZ1EN=1时,开启蜂鸣器
1。
BZ1EN=0时,关闭蜂鸣器
1。
NY8A053D 3.4.7 IRCR(IR控制寄存器) 名称SFR类型地址 IRCR
S 0x6 读写属性 初始值 Bit7IROSC358M 写
0 Bit6Bit5Bit4Bit3Bit2 Bit1 - - - -IRCSELIRF57K - - - - 写 写
X X
X X
0 0 Bit0IREN 写
0 IREN:开启/关闭IR载波输出。
IREN=1时,开启IR载波输出。
IREN=0时,关闭IR载波输出。
IRF57K:IR载波频率选择。
IRF57K=1时,IR载波频率是57KHz。
IRF57K=0时,IR载波频率是38KHz。
25 Ver.1.5 2018/07/20 NY8A053D IRCSEL:IR载波极性选择。
IRCSEL=0且I/O脚数据是1时,IR载波会被产生。
IRCSEL=1且I/O脚数据是0时,IR载波会被产生。
IROSC358M:选择使用的外部晶振频率类型。
若选择I_HRC此位将被忽略。
IROSC358M=
1,外部晶振频率请用3.58MHz。
IROSC358M=
0,外部晶振频率请用455KHz。
注意:
1.仅有高速震荡时钟FHOSC(详见章节3.11)可以当作IR时钟源。
2.不同振荡类型的分频比。
OSC.TypeHighIRCXtal3.58MHzXtal455KHz 57KHz64648 38KHz969612 条件 HIRC模式(不论系统时钟频率是多少,IR模块的输入时钟都设定为4MHz)E_XT模式&IROSC358M=1E_XT模式&IROSC358M=
0 表7不同振荡类型的分频比 3.4.8TBHP(表格指针高字节寄存器) 名称SFR类型地址Bit7Bit6Bit5Bit4Bit3Bit2 Bit1 Bit0 TBHP
S 0x7 - - - - - TBHP2TBHP1TBHP0 读写属性 - - - - - 读/写 读/写 读/写 初始值
X X
X X
X X
X X 当指令CALLA、GOTOA或TABLEA被执行时,程序计数寄存器会指向欲寻址的
10位ROM地址,此目标地址是由TBHP[1:0]与ACC组成。
ACC是PC[9:0]的低字节,TBHP[1:0]是PC[9:0]的高字节。
3.4.9TBHD(表格数据高字节寄存器) 名称TBHD SFR类型
S 读写属性 地址0x8 Bit7Bit6Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 - -TBHD5TBHD4TBHD3TBHD2TBHD1TBHD0 - - 读 读 读 读 读 读 初始值 XX
X X
X X
X X 当指令TABLEA被执行后,会得到ROM表格的14位数据内容,其中ROM表格的数据高字节内容被加载到TBHD[5:0]寄存器,ROM表格的数据低字节内容则被加载到ACC。
26 Ver.1.5 2018/07/20 NY8A053D 3.4.10OSCCR(振荡器控制寄存器) 名称SFR类型地址Bit7 OSCCR
S 0xF - 读写属性 - 初始值
X Bit6Bit5Bit4Bit3Bit2 Bit1 Bit0 - - -OPMD[1:0]STPHOSCSELHOSC - - - 读/写 读/写 读/写
X X
X 00
0 1 SELHOSC:系统振荡器选择(FOSC)。
SELHOSC=1时,FOSC是高频率振荡器(FHOSC)。
SELHOSC=0时,FOSC是低频率振荡器(FLOSC)。
STPHOSC:关闭/开启高频率震荡器(FHOSC)。
STPHOSC=1时,FHOSC会停止振荡并被关闭。
STPHOSC=0时,FHOSC保持振荡。
OPMD[1:0]:选择操作模式。
OPMD[1:0]00011011 操作模式正常模式睡眠模式待机模式 保留 表8选择OPMD[1:0]的操作模式 注意:STPHOSC不能与SELHOSC或OPMD同时更改。
在SELHOSC=1时,STPHOSC不能与OPMD同时更改。
3.5I/OPort NY8A053D提供12个I/O口(PA[3:0]和PB[7:0]),用户可以由寄存器PORTA和PORTB读写这些脚位。
每个I/O脚 位都有一个对应的寄存器控制位以定义该脚位是输入或输出口,寄存器IOSTA[3:0]定义PA[3:0]为输入口或输出口, 寄存器IOSTB[7:0]定义PB[7:0]为输入口或输出口。
当一个I/O脚位被配置为输入口,它可以由寄存器开启或关闭内部上拉/下拉电阻。
寄存器BPHCON[7:0]用于开启
或关闭PB[7:0]的内部上拉电阻。
寄存器ABPLCON[7:4]则是用于开启或关闭PB[3:0]的内部下拉电阻。
ABPLCON[3:0]则是用于开启或关闭PA[3:0]的内部下拉电阻。
当一个I/O脚位配置为输出口,可由寄存器开启或关闭开漏。
寄存器BODCON[7:0]决定PB[7:0]是否为开漏输出脚。
I/O口功能摘要如下表: 功能 上拉电阻
输入 下拉电阻 输出 开漏 PA[3:0]XVX PB[2:0]VVV PB[3]XV 总是 PB[7:4]VXV 表9I/O端口功能摘要27 Ver.1.5 2018/07/20 NY8A053D 在PA和PB的每个I/O脚都有输入状态改变产生中断功能。
寄存BWUCON[7:0]会使能或禁止任一PB脚位的唤醒功能。
只要BWUCON对应到的任一PB脚位被置为1时,且在此输入脚位有状态改变时,寄存器PBIF(INTF[1])就会被设为
1。
如果寄存器PBIE(INTE[1])与GIE(PCON1[7])同时设定为
1,将发生中断要求并执行中断服务程序。
NY8A053D仅提供一个外部中断,当寄存器EIS(PCON[6])设定为
1,PB0则被当作外部中断的输入脚。
注意:当PB0同时设定成输入状态改变触发脚与外部中断脚,外部中断有较高的优先权,而PB0输入状态改变触 发脚则会被关闭,但PB7~PB1输入状态改变触发脚不会被影响。
NY8A053D提供红外线IR载波生成器。
IR载波生成器是由寄存器IREN(IRCR[0])开启,PB1会输出红外线载波。
由配置字节决定PB3可否当作外部复位输入RSTb。
当PB3为低电平时将导致NY8A053D发生复位。
当配置字节设置外置晶振(E_HXT,E_XTorE_LXT)用于高速振荡时钟或低速振荡时钟时,PB5晶振输入引脚(Xin),PB4晶振输出引脚(Xout)。
当配置字节设置I_HRC或I_LRC用于高速振荡时钟或低速振荡时钟时,用户可以在PB4输出指令时钟FINST。
如果寄存器T0CS(T0MD[5])为1和LCK_TM0(T0MD[7])为
0,EX_CKI可以当作定时器0外部时钟源。
如果寄存器T1CS(T1CR2[5])为
1,EX_CKI可以当作定时器1外部时钟源。
如果寄存器PWM1OEN(T1CR1[7])为
1,PB2/PB6也可以当作脉冲宽度调制PWM1输出。
若寄存器BZ1EN(BZ1CR[7])为
1,PB2/PB7也可以当作蜂鸣器1输出。
PB2复用引脚输出优先级为PWM1输出>蜂鸣器1输出。
28 Ver.1.5 2018/07/20 3.5.1 IO引脚结构框图 IO_SEL:设定引脚为输入或输出口。
WRITE_EN:将数据写入引脚。
READ_EN:读取引脚状态。
PULLDOWN_EN:开启内部下拉电阻。
RD_TYPE:选择读取脚位或数据锁存器。
NY8A053D 图5PA[3:0]引脚结构框图 29 Ver.1.5 2018/07/20 IO_SEL:设定引脚为输入或输出口。
WRITE_EN:将数据写入引脚。
READ_EN:读取引脚状态。
OD_EN:开启开漏。
PULLUP_ENB:开启内部上拉电阻。
PULLDOWN_EN:开启内部下拉电阻。
RD_TYPE:选择读取脚位或数据锁存器。
EIS:使能外部中断功能。
INTEDG:选择外部中断触发沿。
WUB:使能PB0唤醒功能。
SET_PBIF:PB0唤醒标志。
NY8A053D 图6PB0引脚结构框图 30 Ver.1.5 2018/07/20 IO_SEL:设定引脚为输入或输出口。
WRITE_EN:将数据写入引脚。
READ_EN:读取引脚状态。
OD_EN:开启开漏。
PULLUP_ENB:开启内部上拉电阻。
PULLDOWN_EN:开启内部下拉电阻。
RD_TYPE:选择读取脚位或数据锁存器。
WUB:使能PB1唤醒功能。
SET_PBIF:PB1唤醒标志。
NY8A053D 图7PB1引脚结构框图 31 Ver.1.5 2018/07/20 IO_SEL:设定引脚为输入或输出口。
WRITE_EN:将数据写入引脚。
READ_EN:读取引脚状态。
OD_EN:开启开漏。
PULLUP_ENB:开启内部上拉电阻。
PULLDOWN_EN:开启内部下拉电阻。
RD_TYPE:选择读取脚位或数据锁存器。
WUB:使能PB2唤醒功能。
SET_PBIF:PB2唤醒标志。
EX_CKI:Timer0,1外部时钟输入。
NY8A053D 图8PB2引脚结构框图 32 Ver.1.5 2018/07/20 IO_SEL:设定引脚为输入或输出口。
WRITE_EN:将数据写入引脚。
READ_EN:读取引脚状态。
PULLDOWN_EN:开启内部下拉电阻。
RD_TYPE:选择读取脚位或数据锁存器。
WUB:使能PB3唤醒功能。
SET_PBIF:PB3唤醒标志。
RSTPAD_EN:开启外部复位引脚。
RSTB_IN:复位引脚输入。
NY8A053D 图9PB3引脚结构框图 33 Ver.1.5 2018/07/20 IO_SEL:设定引脚为输入或输出口。
WRITE_EN:将数据写入引脚。
READ_EN:读取引脚状态。
OD_EN:开启开漏。
PULLUP_ENB:开启内部上拉电阻。
RD_TYPE:选择读取脚位或数据锁存器。
WUB:使能PB唤醒功能。
SET_PBIF:PB唤醒标志。
XTL_EN:开启外置晶振。
NY8A053D 图10PB4,PB5引脚结构框图 34 Ver.1.5 2018/07/20 IO_SEL:设定引脚为输入或输出口。
WRITE_EN:将数据写入引脚。
READ_EN:读取引脚状态。
OD_EN:开启开漏。
PULLUP_ENB:开启内部上拉电阻。
RD_TYPE:选择读取脚位或数据锁存器。
WUB:使能PB6/PB7唤醒功能。
SET_PBIF:PB6/PB7唤醒标志。
NY8A053D 图11PB6,PB7引脚结构框图 35 Ver.1.5 2018/07/20 NY8A053D 3.6定时器
0 定时器0是8位上数定时器,由寄存器T0EN(PCON1[0])开启/关闭。
写入定时器0将会设定其初始值,读取定时器0时则会显示目前的计数数值。
定时器0的时钟源可由寄存器T0CS(T0MD[5])与LCK_TM0(T0MD[7])所决定,可以从指令时钟FINST、外部时钟输入脚EX_CKI或低频震荡I_LRC/E_LXT中择
一。
当T0CS为
0,指令时钟会被选择当作定时器0时钟源。
当T0CS为1且LCK_TM0为
0,EX_CKI会被当作定时器0时钟源。
当T0CS是1且LCK_TM0为
1,会选择低频震荡I_LRC/E_LXT当作定时器0时钟源。
汇总成表格如下。
(也请参考表12) 定时器0时钟源T0CSLCKTM0定时器0来源 低频震荡 Instructionclock
0 X
X X
0 X EX_CKI
1 X
X 0 E_LXT
1 1
1 1 I_LRC
1 1
1 0 表10定时器0时钟源摘要 寄存器T0CE(T0MD[4])可决定EX_CKI或I_LRC/E_LXT的时钟触发沿选择。
当T0CE是
1,EX_CKI或I_LRC/E_LXT的下降沿将让定时器0计数加
一。
当T0CE是
0,EX_CKI或I_LRC/E_LXT的上升沿将让定时器0计数加
一。
如果寄存器PS0WDT(T0MD[3])为
0,定时器0时钟源可以由预分频器0所分频,预分频器0会被指定到定时器
0,且会在PS0WDT设为0时清除Timer0與寄存器PS0CV。
寄存器PS0SEL[2:0](T0MD[2:0])决定预分频器0的预分频比,其数值从1:2到1:256。
定时器0时钟源默认为指令时钟。
如果外部时钟脚EX_CKI或低频震荡I_LRC/E_LXT被用来当作定时器0时钟源,用户必须注意分频后的频率不能超过指令时钟,否则会导致错误计数。
当I_LRC/E_LXT同时被当作定时器0时钟源与指令时钟,用户必须指定预分频器0到定时器
0,且须注意预分频器0的预分频比不得小于
4。
当配置字节设定为异步(Async.),定时器0时外部钟源EX_CKI频率就可高于指令时钟。
当定时器0上溢,寄存器T0IF(INTF[0])将会设定为
1,以标明定时器0发生上溢中断。
如果寄存器T0IE(INTE[0])与GIE都设定为
1,会发生中断的请求并执行中断服务程序。
直到程序写入0到T0IF,T0IF才会被清除。
定时器0与WDT的结构框图如下图: 36 Ver.1.5 2018/07/20 NY8A053D 图12定时器0与WDT结构框图 3.7定时器1/PWM1/Buzzer1 定时器1是具有预分频器1的8位下数定时器,其预分频比是可编程的。
定时器1的输出可以被用于产生PWM1输出与蜂鸣器1输出。
写入TMR1时也会写入定时器1重载寄存器(T1rld)与定时器T1计数器。
读取寄存器TMR1会显示定时器1目前计数数值的内容。
定时器1的结构框图如下图所示: 图13定时器1结构框图 定时器1的操作可以由寄存器T1EN(T1CR1[0])开启或关闭。
开启定时器1后,寄存器T1CS(T1CR2[5])可决定时钟源是指令时钟FINST或外部时钟EX_CKI。
当T1CS为
0,指令时钟会被选择当做时钟源。
当T1CS为
1,则是EX_CKI当做时钟源。
当EX_CKI被选取,寄存器控制位T1CE(T1CR2[4])可决定EX_CKI的时钟触发沿。
当T1CE是
1,EX_CKI的下降沿将让定时器1计数减
一。
当T1CE是
0,EX_CKI的上升沿将让定时器1计数减
一。
定时器1时钟源可以由预分频器1所分频。
寄存器/PS1EN(T1CR2[3])为
0,可开启预分频器
1。
寄存器PS1SEL[2:0](T1CR2[2:0])可以决定其预分频比从1:2到1:256。
预分频器1的目前数值可以由读取寄存器PS1CV取得。
37 Ver.1.5 2018/07/20 NY8A053D 定时器1提供两种计数模式:单次计数与连续计数。
当寄存器T1OS(T1CR1[2])为
1,即为单次计数模式。
定时器1从储存在寄存器TMR1的初始值下数到0x00,当下溢发生时,定时器1停止计数。
当寄存器T1OS(T1CR1[2])为
0,即为连续计数模式。
当下溢发生,寄存器T1RL(T1CR1[1])会决定计数的初始值。
当T1RL为
1,定时器1从寄存器TMR1重新载入数值作为初始值并继续下数。
当T1RL为
0,定时器1以0xFF作为初始值并继续下数。
当定时器1下溢,寄存器T1IF(INTF[3])会被设定为
1,标明定时器1发生下溢中断。
如果寄存器T1IE(INTE[3])与GIE同时设定为
1,会发生中断请求且执行中断服务程序。
直到程序写入0到T1IF,T1IF才会被清除。
定时器1时序图如下图所示: Timer1ValueT1EN T1OS=
1,T1RL=xT1OS=
0,T1RL=0T1OS=
0,T1RL=
1 T1IF 0x66 0x660x660x66 0x650x650x65 0x640x640x64 …………………...….…………………...….…………………...…. 0x020x020x02 0x010x010x01 0x000x000x00 0xFF 0xFF0x66 0xFE0x65 0xFD0x64 图14定时器1时序图 Clearbyfirmware 当寄存器PWM1OEN(T1CR1[7])设定为1且使能配置字节,PB2/PB6为PWM1输出。
当PWM1OEN为
1,PB2/PB6会自动成为输出脚。
PWM1输出的有效状态是由寄存器PWM1OAL(T1CR1[6])决定。
当PWM1OAL为
1,PWM1為低电平有效输出;PWM1OAL为
0,PWM1為高电平有效输出。
PWM1的占空比与帧率皆可编程的。
占空比是由寄存器PWM1DUTY决定。
当PWM1DUTY为
0,PWM1无法输出占空比。
当PWM1DUTY为0xFF,PWM1将输出255/256的占空比(当PWM1OAL为0)。
帧率是由TMR1初始值所决定。
因此,PWM1DUTY数值必须小于或等于TMR1。
PWM1的结构框图如下: PWM1的结构框图如下: 图15PWM1结构框图38 Ver.1.5 2018/07/20 NY8A053D 当寄存器BZ1EN(BZ1CR1[7])设定成1且使能配置字节,PB2/PB7为蜂鸣器1输出。
当BZ1EN设定为
1,PB2/PB7会自动成为输出脚。
BZ1的频率是由寄存器BZ1FSEL[3:0](BZ1CR[3:0])决定,可以选择从定时器1输出或预分频器1输出。
当BZ1FSEL[3]为
0,预分频器1输出被选择来产生BZ1输出。
当BZ1FSEL[3]为
1,定时器1输出被选来产生BZ1输出。
预分频比的范围是1:2到1:256。
蜂鸣器1结构框图如下所示: 图16蜂鸣器1结构框图注意:PB2复用引脚输出优先级为PWM1输出>蜂鸣器1输出。
3.8红外线载波(IR) 寄存器IREN(IRCR[0])被设定为1后,PB1为红外线载波输出,而PB1会自动成为输出脚。
当IREN清零,PB1将会成为一般I/O脚。
红外线载波频率是由寄存器IRF57K(IRCR[1])所选择。
当IRF57K为
1,红外线载波频率是57KHz。
当IRF57K为
0,频率是38KHz。
红外线载波输出是以高速振荡时钟除频得来。
如果使用外置晶振3.58MHz当作高速振荡时钟来源,寄存器IROSC358M(IRCR[7])请设为
1。
如果使用外置晶振455KHz当作高速振荡时钟来源,寄存器IROSC358M(IRCR[7])请设为
0。
若选择I_HRC当作高速振荡时钟来源,此時IR模块时钟永远是4MHz,IROSC358M(IRCR[7])将被忽略。
红外线载波的极性会根据PB1输出数据所决定。
当寄存器IRCSEL(IRCR[2])为1且PB1输出数据为
0,红外线载波将由PB1輸出。
当寄存器IRCSEL(IRCR[2])为0且PB1输出数据为
1,红外线载波将由PB1輸出。
红外线载波的极性如下图所示: 图17红外线载波的极性vs.PB1数据 39 Ver.1.5 2018/07/20 NY8A053D 3.9看门狗定时器(WDT) NY8A053D中有独立振荡器被WDT所使用。
由于该振荡器与其它振荡电路无关,故在待机模式和睡眠模式中WDT仍能继续工作。
WDT能被配置字节开启或关闭。
当WDT被配置字节开启时,仍然可以通过寄存器WDTEN(PCON[7])位来开启/关闭。
此外,WDT上溢后可由配置字节决定的复位NY8A053D或发出的中断请求。
同时,在WDT上溢后,寄存器/TO(STATUS[4])位将被清除为
0。
WDT上溢的时基由配置字节决定,可以是3.5毫秒、15毫秒、60毫秒或250毫秒。
如果将预分频器0分配给WDT,则可以延长上溢周期。
通过将1写入寄存器PS0WDT位,预分频器0将分配给WDT。
预分频器0对WDT的分频比由寄存器PS0SEL[2:0]位决定。
如果WDT上溢将复位NY8A053D,分频速率从1:1到1:128。
如果选为WDT中断时,则分频速率从1:2到1:256。
当预分频器0分配给WDT时,执行CLRWDT指令将清除WDT、预分频器
0。
并设置/TO标志位为
1。
如果用户选择WDT中断机制,在WDT上溢后,寄存器WDTIF(INTF[6])位将设置为
1。
如果寄存器WDTIE(INTE[6])位和GIE位都设置为
1,则可能产生中断请求。
直到程序将0写入WDTIF,WDTIF才会被清除为
0。
3.10中断 NY8A053D提供二种中断:一种是软件中断,另一种是硬件中断。
软件中断由执行指令INT来产生。
硬件中断则有以下九种:Timer0上溢中断。
Timer1下溢中断。
WDT中断。
PB输入状态改变中断。
外部中断输入。
GIE是总中断使能位,必须为1才能使能硬件中断功能。
GIE可以通过ENI指令设置
1,通过DISI指令清除为
0。
执行完指令INT后,无论GIE是置1还是清除为零,下一条指令都将从地址0x001读取。
同时,GIE将由NY8A053D自动清除为零,这将防止嵌套中断的发生。
软件中断的中断服务程序最后一条指令必须是RETIE。
执行此指令将设置GIE为1并返回中断前程序执行序列。
当发生硬件中断时,相应的中断标志位将被设置为
1。
该位在程序将0写入该位之前不会清除为零。
因此,用户可以通过轮呼相应的中断标志位得知哪个硬件引发中断。
需注意只有当相应的中断使能位设置为1时,才能正确地读取相应的中断标志。
如果相应的中断使能位设置为
1,GIE也为
1,将发生硬件中断,下一条指令将从0x008执行。
同时,NY8A053D将自动清除寄存器GIE位为零。
如果用户想要实现嵌套中断,可以使用ENI指令作为中断服务程序的第一条指令,将GIE设置为
1,并允许其他中断事件再次中断NY8A053D。
指令RETIE必须是中断服务程序的最后一条指令,它将GIE设置为1并返回中斷前程序执行序列。
用户应注意ENI指令不能放在RETIE指令之前,因为中断服务程序中的ENI指令将开启嵌套中断,但RETIE指令可能会误清除中断标志。
40 Ver.1.5 2018/07/20 NY8A053D 3.10.1Timer0上溢中断 Timer0上溢(从0x00到0xFF),如果T0IE和GIE设置为
1,寄存器T0IF位将被硬件设为1并处理此中断请求。
3.10.2Timer1下溢中断 Timer1下溢(从0xFF到0x00),如果T1IE和GIE设置为
1,寄存器T1IF位将被硬件设为1并处理此中断请求。
3.10.3看门狗超时中断 当WDT上溢且配置字节选择WDT超时中断时,如果WDTIE和GIE设置为
1,寄存器WDTIF位将被硬件设为1并将处理此中断请求。
3.10.4PB输入状态改变中断 当PBx(0≤x≤7)设置为输入口且相应的寄存器WUPBx位设置为
1,且如果PBIE和GIE设置为
1,当这些选定输入口上的状态变化时,寄存器PBIF位将被硬件设为1并处理此中断请求。
需注意当PB0同时设置为状态变化中断和外部中断时,设置EIS=1将禁止PB0状态变化中断。
3.10.5外部中断输入 根据EIS=1和寄存器INTEDG的配置,如果INTIE和GIE设置为
1,PB0引脚上的有效边沿触发会让寄存器INTIF位将被硬件设为1并处理此中断请求。
3.11振荡器配置 因为NY8A053D是双时钟IC,有高振荡时钟(FHOSC)和低振动时钟(FLOSC)可选择作为系统振荡时钟(FOSC)。
可用作FHOSC的振荡器有内部高速RC振荡器(I_HRC)、外部高速晶体振荡器(E_HXT)与外部晶体振荡器(E_XT)。
可用作FLOSC的振荡器是内部低速RC振荡器(I_LRC)与外部低速晶体振荡器(E_LXT)。
41 Ver.1.5 2018/07/20 NY8A053D 图18NY8A053D振荡配置结构图 系统时钟频率可由配置字节设置为I_HRC,可以选择的频率为1M、2M、4M、8M、16M或20MHz。
此时PA7引脚也可以输出指令时钟。
外部晶体振荡器连接引脚为PB5(Xin)与PB4(Xout)。
如果外部晶体振荡器是8MHz到20MHz,配置字节请选择E_HXT。
如果外部晶体振荡器是455KHz到6MHz,配置字节请选择E_XT。
当选择E_HXT或E_XT时,PB4/PB5不能当作一般I/O口。
它们必须当作晶振的输出(PB4)引脚与输入(PB5)引脚。
当配置字节选择I_LRC时,其频率约为32768Hz。
如果需要使用低速晶体振荡器,只能是32768Hz晶体振荡器,配置字节请选择E_LXT。
当选择E_LXT,PB4/PB5不能当作一般I/O口。
它们必须当作晶振的输出(PB4)引脚与输入(PB5)引脚。
No. FHOSC FLOSC
1 I_HRC 2E_HXT或E_XT
3 I_HRC I_LRCI_LRCE_LXT 表11双时钟组合 当使用外部晶体振荡器时,建议在Xin与Xout引脚各自接一颗电容器C1和C2到VSS,C1和C2数值请参考下表。
42 Ver.1.5 2018/07/20 NY8A053D 振荡模式E_HXT E_XTE_LXT 振荡频率(Hz)16M10M8M4M1M455K32768 C1,C2(pF)5~105~305~205~305~30 10~1005~30 表12不同外部晶体振荡器频率所推荐的C1和C2电容器数值 为得到精准且稳定的32768Hz频率,选择正确的C1和C2电容器数值是相当重要的。
每家晶振厂商数据手册中都有记载低速晶体振荡器的负载电容值(CL),外接C1和C2电容器数值的计算如下公式:C1=C2=2*CL-Cbt 其中Cbt是NY8A053D内部电容值,大约为5pF。
假设低速晶体振荡器的负载电容值CL=12.5pF,依公式算出的C1=C2=20pF。
I_HRC在25°C条件下的准确度为±1%。
图19外部晶体振荡器的硬件连接图 根据寄存器SELHOSC(OSCCR[0])位的值,可以选择FHOSC或FLOSC作为系统振荡时钟FOSC。
当SELHOSC为1时,选择FHOSC作为FOSC。
当SELHOSC为0时,选择FLOSC作为FOSC。
一旦确定FOSC,根据配置字节設置,指令时钟可以选择为FOSC/2或FOSC/4。
3.12工作模式 NY8A053D提供了四种操作方式来定制各种应用和节省电力消耗,分别是正常模式、慢速模式、待机模式和睡眠模式。
正常模式被指定为高速运行模式,慢速模式被指定为低速模式,以节省功耗。
在待机模式下,NY8A053D将停止几乎所有的运作,可由定时器、看门狗与外部事件等来唤醒。
在睡眠模式下,NY8A053D将睡眠直到外部事件或看门狗定时器来唤醒。
四种工作模式如下图所示。
43 Ver.1.5 2018/07/20 NY8A053D 图20四种工作模式 3.12.1正常模式 发生任何复位事件并且复位过程完成后,NY8A053D将在正常模式或慢速模式下开始执行程序。
重置过程后选择的模式由启动时钟配置字节决定。
如果启动时钟为FHOSC,NY8A053D将进入正常模式,如果启动时钟为FLOSC,NY8A053D将进入慢速模式。
在正常模式下,为提供最高性能而以FHOSC作为系统振荡时钟,其功耗在四种操作模式中将是最大的。
在上电或任何重置触发器被释放后,待复位程序完成NY8A053D将进入正常模式。
指令的执行是基于FHOSC且所有硬件功能可以根据相应的硬件使能位来开启/关闭。
FLOSC仍运行。
44 Ver.1.5 2018/07/20 NY8A053D IC可由写0至寄存器SELHOSC(OSCCR[0])位切换为慢速模式。
IC可通过寄存器OPMD[1:0](OSCCR[3:2])位切换为待机或睡眠模式。
关于实时时钟的应用,NY8A053D在运行正常模式时可同时将低频振荡时钟设为Timer0的时钟源,这是 通过设置LCKTM0为1和配置字节中Timer0时钟源来实现。
3.12.2慢速模式 通过写0至寄存器SELHOSC位,NY8A053D将进入慢速模式。
在低速模式下,为节省功耗,FLOSC被选为系统振荡时钟。
然而,FHOSC将不会自动被NY8A053D关闭。
因此在慢速模式下,用户可写0至寄存器STPHOSC(OSCCR[1])位来停止FHOSC进一步降低功耗。
但需注意的是,禁止进入慢速模式同时停止FHOSC,必须先进入慢速模式,然后关闭FHOSC。
指令执行是基于FLOSC且所有硬件功能可以根据相应的硬件使能位来开启/关闭。
通过写1至寄存器STPHOSC位,FHOSC可以被停止。
IC可通过寄存器OPMD[1:0]位切换为待机模式或睡眠模式。
IC可通过写1至寄存器SELHOSC切换到正常模式。
3.12.3待机模式 通过写入10b至寄存器OPMD[1:0],NY8A053D将进入待机模式。
然而,在待机模式下,FHOSC不会自动被NY8A053D关闭,用户必须进入先低速模式後写入1至寄存器STPHOSC位,以停止FHOSC。
部分NY8A053D的硬件功能会被关闭,如T0EN/T1EN位被设置为1则定时器仍可运作。
因此Timer0/Timer1溢出后NY8A053D会被唤醒。
停止执行指令且一些硬件功能可以根据相应的硬件使能位来开启/关闭。
由写入1至寄存器STPHOSC位FHOSC可以被关闭。
FLOSC仍保持运作。
如遇以下任一状况IC便能从待机模式唤醒: (a)Timer0上溢中断/Timer1下溢中断(b)看门狗超时中断(c)PB输入状态改变中断(d)外部中断。
在从待机模式唤醒后,如SELHOSC=
1,IC将回到正常模式,如SELHOSC=0则IC将回到慢速模式。
不建议在同一时间进入待机模式並改变振荡模式(正常到慢速/慢速到正常)。
3.12.4睡眠模式 通过执行SLEEP指令或写入01b至寄存器OPMD[1:0]位,NY8A053D将进入睡眠模式。
在进入睡眠模式后,寄存器/PD(STATUS[3])位将清除为
0,寄存器/TO(STATUS[4])位将设置为1且清除WDT并保持运作。
在睡眠模式下,所有硬件功能是被关闭的,停止指令执行且NY8A053D只能通过一些特殊事件唤醒。
因此,睡眠模式是NY8A053D最省电的模式。
指令执行停止,所有硬件功能关闭。
45 Ver.1.5 2018/07/20 NY8A053D FHOSC和FLOSC两者都自动关闭。
如遇以下任一状况IC便能从睡眠模式中唤醒: (a)看门狗超时中断(b)PB输入状态改变中断(c)INT外部中断。
从睡眠模式唤醒后,如SELHOSC=
1,IC将回到正常模式,如SELHOSC=0则IC将回到慢速模式。
注意:您可以在同一指令中更改STPHOSC并进入睡眠模式。
不建议改变振荡模式(正常到慢速/慢速到正常),并在同一时间进入待机模式。
3.12.5唤醒稳定时间 若外部晶体振荡器为系统振荡时钟来源,其睡眠模式的唤醒等待时间为512*Fosc,若内部RC振荡器为系统振荡时钟来源,其睡眠模式的唤醒等待时间为16*Fosc,由于待机模式下FHOSC或FLOSC仍在运行,因此无需为待机模式唤醒稳定时间。
在NY8A053D进入待机模式或睡眠模式之前,用户可以执行指令ENI。
在唤醒後,NY8A053D将跳转到地址0x008,以便执行中断服务程序。
如果在进入待机模式或睡眠模式之前执行DISI指令,则在唤醒后执行下一条指令。
3.12.6工作模式概述 四种工作模式概述如下: 模式FHOSCFLOSC指令执行计时器0/1WDT其它硬件 正常模式使能使能执行TxEN 配置和WDTEN硬件使能位 唤醒源 - 慢速模式 待机模式 STPHOSC STPHOSC 使能 使能 执行 停止 TxEN配置和WDTEN TxEN配置和WDTEN 硬件使能位 硬件使能位 -Timer0上溢 -Timer1下溢 - -WDT超时 -PB输入狀態改变 -外部中断 表13工作模式概述 睡眠模式关闭关闭停止关闭 配置和WDTEN全部关闭 -WDT超时-PB输入狀態改变-外部中断 3.13复位 当以下任一复位事件发生时,NY8A053D将会进入复位状态并开始复位动作:当VDD检测到上升沿时为上电复位。
当VDD电压低于预设的LVR电压时,为LVR复位。
RSTb引脚为低电平。
WDT超时复位。
46 Ver.1.5 2018/07/20 NY8A053D 此外,所有寄存器如果初始值未知时,寄存器将会被初始化为初始值或保持不变。
状态位/TO和/PD可以根据复位 事件来初始化。
/TO和/PD的值及其相关的事件概述如下。
事件
POR,LVR非睡眠模式时发生RSTb复位睡眠模式时发生RSTb复位非睡眠模式时发生WDT复位睡眠模式时发生WDT复位执行SLEEP指令执行CLRWDT指令 /TO /PD
1 1 不变 不变
1 1
0 1
0 0
1 0
1 1 表14/TO和/PD值和相关事件概述 复位事件发生后,NY8A053D将会开始复位进程。
无论采用什么样的振荡器,它将等待一定的周期使振荡稳定。
这个周期被称为上电复位时间,它由三位配置字节决定,这个时间可能是140us,4.5ms,18ms,72ms或288ms。
振荡器稳定后,NY8A053D将等待Fosc的16个时钟周期(OST,振荡器启动时间)后完成复位。
若上电复位时间设为140us时,将等待Fosc的1个时钟周期后完成复位。
图21芯片复位电路框图 如果VDD缓慢上升,建议使用RSTb复位功能,如下图。
建议R阻值不大于40KΩ。
R1值=100Ω~1KΩ时,将阻止過大电流,ESD或电气过载信号进入复位引脚。
二极管D使电容C能在VDD下电时快速放电。
NY8A053D 图22外部上电复位硬件连接图47 Ver.1.5 2018/07/20 NY8A053D
4.指令设置 NY8A053D为各种应用程序提供了55个强大的指令。
指令 助记符12 说明 影響周期数 标志 算术指令 ANDARRddest=ACC&
R 1Z IORARRddest=ACC|
R 1Z XORARRddest=ACC⊕
R 1Z ANDIAi ACC=ACC&i 1Z IORIA i ACC=ACC|i 1Z XORIAi ACC=ACC⊕i 1Z RRR RdRotaterightR 1C RLR RdRotateleftR 1C BSR RbitSetbitinR
1 - BCR RbitClearbitinR
1 - INCR RdIncreaseR 1Z DECRRdDecreaseR 1Z COMRRddest=~
R 1Z 条件指令 BTRSCRbitTestbitinR,skipifclear1or2- BTRSSRbitTestbitinR,skipifset1or2- INCRSZRdIncreaseR,skipif01or2- DECRSZRdDecreaseR,skipif01or2- 数据传送指令 MOVARR MoveACCtoR
1 - MOVRRdMoveR 1Z MOVIAi MoveimmediatetoACC1 - SWAPRRdSwaphalvesR
1 - IOST
F LoadACCtoF-pageSFR1 - IOSTRF MoveF-pageSFRtoACC1 - SFUN
S LoadACCtoS-pageSFR1 - SFUNRS MoveS-pageSFRtoACC1 - T0MD LoadACCtoT0MD
1 - T0MDR MoveT0MDtoACC
1 - TABLEA ReadROM
2 - 指令 助记符12 说明 周期数影響标志 算术指令 ADDARRddest=R+ACC 1Z,DC, SUBARRddest=R+(~ACC) 1Z,DC, ADCARRddest=R+ACC+
C 1Z,DC, SBCARRddest=R+(~ACC)+
C 1Z,DC, ADDIAi ACC=I+ACC 1Z,DC, SUBIA i ACC=i+(~ACC) 1Z,DC, ADCIAi ACC=i+ACC+
C 1Z,DC, SBCIA i ACC=i+(~ACC)+
C 1Z,DC, DAA DecimaladjustforACC
1 C CMPARR CompareRwithACC 1Z,
C CLRA ClearACC
1 Z CLRR ClearR
1 Z 其它指令 NOP Nooperation
1 - SLEEP GointoHaltmode 1/TO,/PD CLRWDT ClearWatch-DogTimer 1/TO,/PD ENI Enableinterrupt
1 - DISI Disableinterrupt
1 - INT SoftwareInterrupt
3 - RET Returnfromsubroutine
2 - RETIE Returnfrominterruptand
2 - enableinterrupt Return,placeimmediate RETIA i
2 - in CALLA CallsubroutinebyACC
2 - GOTOA unconditionalbranchby
2 - CALL adrCallsubroutine
2 - GOTO adrunconditionalbranch
2 - LCALL adrCallsubroutine
2 - LGOTO adrunconditionalbranch
2 - 表15指令设置 48 Ver.1.5 2018/07/20 ACC:累加器。
adr:地址。
bit:R-page中8位寄存器的位地址。
C:进位/借位。
C=
1,加法指令有进位,减法指令无借位。
C=
0,加法指令无进位,减法指令有借位。
d:目标。
若d=“0”,结果存入ACC。
若d=“1”,结果存入R寄存器。
DC:半字节进位/借位标记。
dest:目标。
F:F页面特殊功能寄存器,F值为0x5~0xF。
i:8位立即数。
PC:程序计数器。
PCHBUF:程序计数器的高字节。
/PD:睡眠标志位。
/PD=
1,上电或CLRWDT指令执行后。
/PD=
0,SLEEP指令执行后。
Prescaler:预分频器。
R:R页面特殊功能寄存器,R值为0x00~0x3F。
S:S页面特殊功能寄存器,S值为0x0~0xF。
T0MD:T0MD寄存器。
TBHP:表格指针高字节寄存器。
TBHD:表格数据高字节寄存器。
/TO:看门狗超时标志位。
/TO=
1,上電或执行CLRWDT或SLEEP指令后。
/TO=
0,看门狗超时。
WDT:看门狗计时器。
Z:清零标志。
NY8A053D 49 Ver.1.5 2018/07/20 ADCAR语法操作数 操作状态影响说明 周期举例 AddACCandRwithCarry ADCARR,d 0≤R≤63 d=0,
1 R+ACC+C→dest
Z,DC,
C ACC和R带进位加法:若d=”0”,结果存入ACC;若d=”1”,结果存入“R”。
1ADCARR,d执行指令前: ACC=0x12,R=0x34,C=1,d=
1。
执行指令后 R=0x47,ACC=0x12,C=
0。
ADDAR语法操作数 操作状态影响说明 周期举例 NY8A053D AddACCandR ADDARR,d 0≤R≤63 d=0,
1 ACC+R→dest
Z,DC,
C ACC和R加法:若d=”0”,结果存入ACC;若d=”1”,结果存入“R”。
1ADDARR,d执行指令前: ACC=0x12,R=0x34,C=1,d=1执行指令后: R=0x46,ACC=0x12,C=
0。
ADCIA 语法操作数操作状态影响说明 周期举例 AddACCandImmediatewithCarryADCIAi 0≤i<255 ACC+i+C→ACC
Z,DC,
C ACC和8位立即数带进位加法,结果存入ACC。
1ADCIAi执行指令前: ACC=0x12,i=0x34,C=
1。
执行指令后: ACC=0x47,C=
0。
ADDIA 语法操作数操作状态影响说明 周期举例 AddACCandImmediate ADDIAi 0≤i<255ACC+i→ACC
Z,DC,
C ACC和8位立即数加法,结果存入ACC。
1ADDIAi执行指令前: ACC=0x12,i=0x34,C=
1。
执行指令后: ACC=0x46,C=
0。
50 Ver.1.5 2018/07/20 ANDAR语法操作数 操作状态影响说明 周期举例 ANDACCandR ANDARR,d 0≤R≤63 d=0,
1 ACC&R→dest
Z ACC和R做“AND”运算;若d=“0”,结果存入ACC;若d=“1”,结果存入“R”。
1ANDARR,d执行指令前: ACC=0x5A,R=0xAF,d=
1。
执行指令后: R=0x0A,ACC=0x5A,Z=
0。
BCR语法操作数 操作状态影响说明周期举例 NY8A053D ClearBitinRBCRR,bit 0≤R≤630≤bit≤70→R[bit] -- 将R寄存器的bit位(0~7)清
0。
1BCRR,B2执行指令前: R=0x5A,B2=0x3。
执行指令后: R=0x52。
ANDIA语法操作数操作状态影响说明 周期举例 ANDImmediatewithACCANDIAi 0≤i<255ACC&i→ACC
Z ACC和8位立即数做“AND”运算。
1ANDIAi执行指令前: ACC=0x5A,i=0xAF。
执行指令后: ACC=0x0A,Z=
0。
BSR语法操作数 操作状态影响说明周期举例 SetBitinR BSRR,bit 0≤R≤630≤bit≤7 1→R[bit] -- 设置R寄存器的bit位為
1。
1BSRR,B2执行指令前: R=0x5A,B2=0x2。
执行指令后: R=0x5E。
51 Ver.1.5 2018/07/20 BTRSC语法操作数 操作状态影响说明 周期举例 TestBitinRandSkipifClear BTRSCR,bit 0≤R≤630≤bit≤
7 Skipnextinstruction,ifR[bit]=
0 -- 位判断指令,为“0”则跳过下一条指令。
1or2(跳过)BTRSCR,B2 指令1指令2执行指令前:R=0x5A,B2=0x2。
执行指令后:由于R[B2]=
0,则指令1不执行,程序直接从指令2开始执行。
CALL语法操作数操作 状态影响说明 周期举例 NY8A053D CallSubroutine CALLadr 0≤adr<255 PC+1→TopofStack{PCHBUF,adr}→PC -- 子程序调用,首先将返回地址PC+1压入栈顶。
然后将8位立即地址载入PC[7:0],将PCHBUF[1:0]载入PC[9:8]。
2CALLSUB执行指令前: PC=A0,Stackpointer=
1。
执行指令后: PC=addressofSUB,Stack[1]=A0+
1,Stackpointer=
2。
BTRSS语法操作数 操作状态影响说明 周期举例 TestBitinRandSkipifSet BTRSSR,bit 0≤R≤630≤bit≤
7 Skipnextinstruction,ifR[bit]=
1 -- 位判断指令,为“1”则跳过下一条指令。
1or2(跳过)BTRSSR,B2 指令2指令3执行指令前:R=0x5A,B2=0x3。
执行指令后:由于R[B2]=
1,则指令2不执行,直接从指令3开始执行。
CALLA语法操作数操作 状态影响说明 周期举例 CallSubroutine CALLA -- PC+1→TopofStack{TBHP,ACC}→PC -- 子程序调用。
首先将返回地址PC+1压入