ETC MK7A11P

MK7A11P
8Bit Microcontroller
概述
MK7A11P 是 RISC 高性能的 8 位微控制器。它内部包含一个 1K×14bits 的一次性可编程只读存储器、32
字节数据存储器、定时器/计数器、中断、LVR(低电压复位)和 I/O 口。
1. 基本特性
● ROM:1K×14 bits
● RAM:32×8 bits
● 椎栈:2 级
● 一个指令周期由四个系统时钟组成
● 复位模式:
- 上电复位
- 低电压复位
- RESETB/PB3(如果设置为复位脚位)输入一个负脉冲
- 看门狗定时器计数溢出复位
● 5 种振荡模式可供选择
- 外部 RC,LS(低速)晶振,NS(标准速度)晶振和 HS(高速)晶振
- 内部 4MHz RC 振荡器
● 定时器/计数器
- TMR0:8 位倒计时定时器/计数器带自动重复加载功能
● 看门狗定时器:芯片内 WTD 是基于一个内部 RC 振荡器(仅 WDT 使用)。有 8 个周期可供选择。使用
者可通过使用预分频器来延长 WDT 溢出周期。
● 中断结果:
- TM0内部定时器/结果计数器中断
- 外部INT脚位
● I/O 口:12 脚位
- PA0~3:4 个标准 I/O 脚位
- PB0~7:8 个上拉 I/O 脚位带脚位唤醒功能
● 唤醒模式:B 口(PB0~7)脚位变化唤醒
● 不同封装类型:
MK7A11PD14C:14 脚 DIP
MK7A11PS14C:14 脚 SOP
1
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
2. 图表
3. 脚位分配
PA0
PB7
PB6
VDD
PB5/OSCI
PB4/OSCO
PB3/RESETB
1
2
3
4
5
6
7
14
13
12
11
10
9
8
2
PA1
PA2
PA3
VSS
PB0/INT
PB1
PB2/RTCC
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
4. 脚位描述
名 称
PA0~3
描
I/O
I/O
述
1. 一般 I/O 口
2. 带下拉电阻器
PB0/INT
I/O
1. 一般 I/O 口
2. 通过选择实现上拉/下拉/漏级开路功能
3. 脚位改变使芯片从睡眠模式中唤醒
4. 通过上升沿触发中断产生(选择)
PB1
I/O
1. 一般 I/O 口
2. 通过选择实现上拉/下拉/漏级开路功能
3. 脚位改变使芯片从睡眠模式中唤醒
PB2/RTCC
I/O
1. 一般 I/O 口
2. 通过选择实现上拉/下拉/漏级开路功能
3. 脚位改变使芯片从睡眠模式中唤醒
4. 定时器输入(选择)
PB3/RESETB
I
1. 输入脚位
2. 系统复位信号(低电平有效)带上拉电阻器
3. 脚位改变使芯片从睡眠模式中唤醒
PB4/OSCO
I/O
1. 一般 I/O 口
2. 通过选择实现上拉/漏级开路功能
3. 脚位改变使芯片从睡眠模式中唤醒
4. 振荡器输出脚位(晶振模式不能设置为上拉)
PB5/OSCI
I/O
1. 一般 I/O 口
2. 通过选择实现上拉/漏级开路功能
3. 脚位改变使芯片从睡眠模式中唤醒
4. 振荡器输入脚位(晶振模式不能设置为上拉)
PB7~6
I/O
1. 一般 I/O 口
2. 通过选择实现上拉/漏级开路功能
3. 脚位改变使芯片从睡眠模式中唤醒
VDD
P
系统电源输入
VSS
P
系统接地输入
3
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
5. 存储器映象
MK7A11P 芯片带有两种存储器,分别是程序存储器(ROM)和数据存储器(RAM)。程序存储器用于存储程
序、数据表及中断向量,它是连续的 1024×14bits,不需要转换到 bank。数据存储器是 48(16+32)×8bits,它
包括特殊功能寄存器和一般的数据存储器。
5.1 程序存储器(ROM)
指令和数据表存储在程序存储器内。程序存储器只能有一个中断向量存在,那意味着所有发生的中断都将跳
到相同的向量。烧录器会通过中断标记来判断是哪一种中断发生。程序计数器(PC)有 10 bit,它能直接寻
找所有 1024×16bits 位置地址。查询数据表可以置于程序存储器的任何地方。
RESET 向量位于 3FFH,中断向量位于 3FEH。映象图如下所示:
000H
PC (10bit)
STACK Level 1
STACK Level 2
INTERRUPT VECTOR
RESET VECTOR
3FEH
3FFH
< 注 > LCALL 和 LGOTO 允许直接在 1K 字节的地址内选址。
5.2 数据存储器(RAM)
全部的数据存储器集都是 48×8bits,它们包含两种寄存器组。一种是 32×8bits 的一般数据存储器,另一种
是 16×8bits 的特殊寄存器。特殊寄存器的每一字节都用来存储控制数据和操作数据。
数据存储器映象如下所示:
4
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
000
User Program
3FD
3FE
3FF
IRQ Vector
RESET Vector
< 注 > LCALL 和 LGOTO 允许直接在 1K 字节的地址内选址
5.2.1
特殊寄存器
Name
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
CONFIG
ADJ0
RESETE
LV
WDTE
CPT
INRC
FOSC1
FOSC0
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
--
--
ADJ6
ADJ5
ADJ4
ADJ3
ADJ2
ADJ1
< 注 > CONFIG 是 16 位特殊寄存器
Name
Addr
SELECT
Bit7
Bit6
TMR0_EN WRT_CNT
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
SUR0
EDGE0
PSA
PS2
PS1
PS0
IAR
$00
A7
A6
A5
A4
A3
A2
A1
A0
TMR0
$01
D7
D6
D5
D4
D3
D2
D1
D0
PCL
$02
A7
A6
A5
A4
A3
A2
A1
A0
STATUS
$03
--
--
--
TO
PD
Z
DC
C
BSR
$04
D7
D6
D5
D4
D3
D2
D1
D0
PA
$05
--
--
--
--
PA3
PA2
PA1
PA0
PB
$06
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
IRQM
$09
INTM
--
--
--
--
--
PB0M
TM0M
IRQF
$0A
--
--
--
--
--
--
PB0F
TM0F
PA_PDM
$0B
--
--
--
--
DA3
DA2
DA1
DA0
PB_PUP
$0C
UB7
UB6
UB5
UB4
--
UB2
UB1
UB0
PB_PDM
$0D
RTCCE
INTE
--
--
--
DB2
DB1
DB0
PB_POD
$0E
OB7
OB6
OB5
OB4
--
OB2
OB1
OB0
WAKEUP
$0F
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
< 注 > “—”:表示未使用
5
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
5.2.2 结构寄存器
Name
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
CONFIG
ADJ0
RESETE
LV
WDTE
CPT
INRC
FOSC1
FOSC0
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
--
--
ADJ6
ADJ5
ADJ4
ADJ3
ADJ2
ADJ1
● Bit13~7(ADJ6~0)
:用于校准内部RC振荡器
● Bit6(RST_DEF):RESETB 脚位定义
0:RESETB是普通输入脚位
1:RESETB是系统复位脚位
● Bit5(LV):设置低电压复位(LVR)的复位电压级别
0:低电压复位 开
1:低电压复位 关
● Bit4(WDTE)
:看门狗定时器使能/禁止
0:WDT 禁止
1:WDT 使能
● Bit3(CPT):ROM 密码保护位
0:开
1:关
● Bit2~0(INRC,FOSC1~0):OSC类型及系统时钟选择
Bit2
Bit1
Bit0
INRC
FOSC1
FOSC0
0
0
0
LS (low speed)
System clock=32~200KHz
0
0
1
NS (Normal speed)
System clock=200K~10MHz
0
1
0
HS (high speed)
System clock=10~20MHz
0
1
1
External RC
System clock=32K ~ 10MHz
1
0
0
Reserved
Reserved
1
0
1
Reserved
Reserved
1
1
0
Reserved
Reserved
1
1
1
Internal RC
System clock=4MHz
OSC 类型
6
共 振 频 率
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
5.2.3 SELECT 寄存器
Name
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
SELECT
TMR0_EN
WRT_CNT
SUR0
EDGE0
PSA
PS2
PS1
PS0
选择寄存器用于控制WDT和TM0,它没有特殊数据存储器,是只能通过SELECT指令设置的只读寄存器。通过
执行SELECT指令,累加器的内容将会被发送到SELECT寄存器。如果SELECT寄存器未经过编程设置,它的默
认值是40H。以下数据表将会对选择寄存器的每一脚位进行说明。
Bit
2~0
符号
PS2~PS0
描
述
PS2
PS1
PS0
TMR0 rate
WDT rate
0
0
0
1:2
1:1
0
0
1
1:4
1:2
0
1
0
1:8
1:4
0
1
1
1:16
1:8
1
0
0
1:32
1:16
1
0
1
1:64
1:32
1
1
0
1:128
1:64
1
1
1
1:256
1:128
PSA:预分频器分配脚位
3
PSA
1:预分频器分配到 WDT
0:预分频器分配到TMR0
EDGE0:TMR0源信号边沿控制脚位
4
EDGE0
1:外部时钟信号从高电平到低电平时,定时器加1
0:外部时钟信号从低电平到高电平时,定时器加1
SUR0:TMR0时钟源脚位
5
SUR0
1:外部时钟输入
0:(内部时钟)/ 4
WRT_CNT:自动预加载TMR0数据
6
WRT_CNT
1:使能
0:禁止
TMR0_EN:TMR0使能/禁止
7
TMR0_EN
0:禁止
1:使能
7
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
6. 功能描述
此芯片提供许多功能,包括 I/O 口,定时器,WDT,中断,数据表位置,复位,程序计数器及 STATUS 寄存器。
我们将会在下面详细描述。
6.1
I/O口
该芯片有两个 I/O 口(A & B)用于数据输入及输出,每一个 I/O 口有不同的功能。A 口是一般 I/O 口带下拉电
阻器。B 口带多功能,它除了可以用做一般 I/O 口带上拉电阻器外,还具备脚位唤醒功能。它们还可以通过选
择实现其他的功能。
6.1.1 Port A
A. PA($05H):
Register
Bit 7
PA
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
--
--
--
PA3
PA2
PA1
PA0
● Bit3~0(IOA3~0)
:I/O口A的数据
B. PA_PDM($0BH):
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PA_PDM
--
--
--
--
DA3
DA2
DA1
DA0
● Bit3~0(DA3~0)
:下拉电阻器使能/禁止
0:下拉电阻器禁止
1:下拉电阻器使能
6.1.2 Port B
A. PB($06H):
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PB
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
● Bit7~0(PB7~0):I/O口B的数据
B. PB_PUP($0CH):
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PB_PUP
UB7
UB6
UB5
UB4
--
UB2
UB1
UB0
● Bit7~0(UB7~0)
:上拉电阻器使能/禁止
0:上拉电阻器禁止
1:上拉电阻器使能
< 注 > 1. PB3与RESETB共亨则只能做为输入脚位使用。如果只做为PB3使用则无上拉电阻器,如果只做为
RESETB使用则为上拉电阻器。
2. UB4及UB5只能在RC振荡模式下使用。如果使用者使用晶振模式,则这两个脚位是无用的,不能设置
为上拉,否则将会引起故障。
8
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
C. PB_PDM($0DH):
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PB_PDM
RTCCE
INTE
--
--
--
DB2
DB1
DB0
● Bit7:此脚位有两个功能,一个是选择PB2/RTCC功能,另一个是使能TMR0外部时钟源。
0:PB2脚位是PB2
1:PB2脚位是RTCC输入,从RTCC中TMR0外部时钟源使能。
< 注 > 计算RTCC的方法如下:
1. 使用SELECT指令将SUR0设置为1
2. 设置RTCCE脚位为1以使PB2脚位做为RTCC时钟使能
● Bit6:选择PB0/INT功能
0:PB0脚位是PB0
1:PB0脚位是INT
● Bit2~0(PB2~0):下拉电阻器使能/禁止
0:下拉电阻器使能
1:下拉电阻器禁止
D. PB_POD($0EH):
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
PB_POD
OB7
OB6
OB5
OB4
--
OB2
OB1
OB0
● Bit7~0(OD7~0):漏级开路使能/禁止
0:漏极开路禁止
1:漏极开路使能
< 注 > PA_PDM($0B),PB_PUP($0C),PB_PDM($0D),PB_POD($0E)是只写寄存器,它们只能用以下指
令写数据:
MOVLA
REG_Value
MOVAM
PB_PDM
E. WAKEUP($0FH):
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
WAKEUP
EN7
EN6
EN5
EN4
--
EN2
EN1
EN0
● Bit7~0(EN7~0)
:B口唤醒功能使能/禁止
0:B口唤醒功能禁止
1:B口唤醒功能使能
9
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
6.2 定时器/计数器(TMR0)
MK7A11P提供1个倒计时定时器/计数器和1个看门狗定时器。通过设置每一个定时器控制寄存器,计数器的时钟
源可以是系统时钟,也可以是外部时钟。寄存器详细设置及图表如下所示:
TMR0 ($01)
Write
TMR0_LA
WR_CNT
Auto-reload
Function
Clock
Source
Select
System Clock/4
RTCC
TMR0_CNT
IRQ
Read
SUR0
(Bit 5 of SELECT register)
* Read/Write is the same register $01
A.TMR0($01H):
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TMR0
D7
D6
D5
D4
D3
D2
D1
D0
● Bit7~0(TMR0):定时器0(TMR0)数据
6.3
间接寻址
寄存器IAR($00)及BSR($04)用于间接寻址。BSR(Bank选择寄存器)允许5-bit宽的操作数直接访问整个
数据存储器。方法如下图:
10
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
Indirect Addressing Mode
Direct Addressing Mode
(BSR)
6
(BSR)
(opcode )
5
4
3
2
1
6
0
5
4
3
2
1
0
00
7F
Data Memory
6.4
WDT(看门狗定时器)
WDT是防止软体故障及跳过含有不可预知结果的未知页面的定时器。WDT时钟源是一个独立的内部RC振荡器。
此定时器会受温度、电压及不同产品批号的影响。定时最短时间大约20ms,程式中可以使用SELECT指令设置
预分频器然后获得不同的持续时间。
6.5
复位
以下列出了4种会引起复位的情况。掉电将会引起MK7A11P复位,这样能在供电不足的环境下保护芯片,最后两
种情况我们称之为热复位。不同的复位都会影响寄存器和数据存储器。 TO 和 PD 位用来决定复位的类型。
(1) 上电复位
(2) 低电压复位(LVR)
(3) RESETB脚位复位(输入一个负脉冲)
(4) WDT定时器溢出复位
11
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
System Clock
Power on reset
Synchronize with ripple counter
Low voltage reset
RESETB pin
RESET
Delay for setup time
Watchdog Timer
Internal specific RC
OSC
WDT
overflow
系统复位图表
< 注 > 看门狗设置时间为大约20ms,由于电源电压,进程及温度差异,在时间设置上会有一些偏差。
Address
Name
Cold Reset
Warm Reset
N/A
Accumulator
xxxx xxxx
pppp pppp
N/A
IODIR
PB
1111 1111
1111 1111
PA
1111
1111
N/A
SELECT
0100 0000
0100 0000
00h
IAR
---- ----
---- ----
01h
TMR0
xxxx xxxx
pppp pppp
02h
PCL
11 1111 1111
11 1111 1111
03h
STATUS
0001 1xxx
#00# #ppp
04h
BSR
1xxx xxxx
1ppp pppp
09h
IRQM
0000 0000
0000 0000
0Ah
IRQF
0000 0000
0000 0000
0Bh
PA_PDM
xxxx 0000
xxxx 0000
0Ch
PB_PUP
0000 x000
0000 x000
0Dh
PB_PDM
00xx x000
00xx x000
0Eh
PB_POD
0000 x000
0000 x000
0Fh
WAKEUP
0000 x000
0000 x000
xxxx xxxx
pppp pppp
20h~3Fh
General Purpose
RAM
12
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
< 注 > x:未知的; p:保存为原来的数值; #:依据不同复位条件的数值
-:不执行,清“0”
6.5.1 STATUS 寄存器的复位条件
状态寄存器
复 位 条 件
TO
PD
1. 上电复位
1
1
2. 正常操作时 RESETB 复位
U
U
3. 睡眠时 RESETB 复位
1
0
4. 睡眠时 WDT 复位
0
0
5. 正常操作时 WDT 复位
0
1
6. 脚位改变唤醒
1
0
< 注 > 1. 如果执行 CLRWDT 指令,则 4.5 项的内容将与以上提到的不同。
2. U:未改变
3. 只有当复位及 PSA 脚位(SELECT 寄存器)被设置为“1”时, TO 和 PD 数据与数据表相同。如
果 PSA 未设置为“1”,则复位后的数据与数据表不同。
6.6
中断
MK7A11P提供两种中断,分别是TMR0和内部INT。IRQM和IRQF寄存器用来控制或判断所有中断的请求状态。
IRQM用来使能/禁止中断,IRQF用来指出是哪一种中断发生。如果特殊IRQM不能使能则硬体中断将不会发生。
但不管IRQM使能或禁止,IRQF都会有状态反应。例如,使用者使能TMR0来开始计数,如果IRQM的bit 0使
能,当定时器溢出,硬体中断将会发生,IRQF的bit 1将被设置,与此同时,程序将跳到中断向量。使用者应
清除中断服务程序中的IRQF,否则中断将完全不工作。另一种情况是如果IRQM的bit 0禁止,当定时器溢出时,
中断将不会产生,但IRQF的bit 1仍被设置,程序将会跳到中断向量。
A. IRQM ($09H)
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
IRQM
INTM
--
--
--
--
--
Bit 1
PB0M
Bit 0
TM0M
● Bit7(INTM):球形使能脚位
0:禁止,所有中断屏蔽
1:使能,所有中断不屏蔽
当中断正在进行时,INTM将会被设置为“0”以防止其他中断的发生。当中断完成后,IRETI指令将
会设置INTM为“1”。
● Bit1(PB0M):外部 INT 脚位中断使能/禁止
13
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
0:禁止中断
1:使能中断
● Bit0(TM0M)
:TMR0 中断使能/禁止
0:禁止中断
1:使能中断
B. IRQF ($0AH)
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
IRQF
--
--
--
--
--
--
PB0F
TM0F
● Bit1(PB0F)
:外部 INT 管脚中断标记
0:中断信号不发生
1:中断信号发生
● Bit0(TM0F)
:TMR0 中断标记
0:定时器溢出不发生
1:定时器溢出发生
6.7
STATUS寄存器
STATUS寄存器是一个包含零标记(Z)
,进位标记(C),四位进位标记(DC),掉电标记( PD ),看门狗定
时器溢出标记( TO )的8位寄存器,它用于记录状态信息。
A. STATUS($03H)
Register
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
STATUS
--
--
--
TO
PD
Z
DC
C
● Bit4( TO )
:定时器溢出标记位
● Bit3( PD )
:掉电标记位
描 述
TO
PD
0
0
在睡眠模式中 WDT 定时器溢出
0
1
在普通模式中 WDT 定时器溢出
1
0
在睡眠模式中给 RESETB 输入一个“低电平”
1
1
上电复位
Unchanged
Unchanged 在普通模式中给 RESETB 输入一个“低电平”
● Bit2(Z)
:零标记位
0:逻辑操作结果不是0
1:逻辑操作结果是0
● Bit1(DC)
:四位进位与四位借位标记位
14
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
加指令:
0:无低四位进位
1:从低四位进位
减指令:
0:从低四位借位
1:无低四位借位
● Bit0(C)
:进位与借位标记位
加指令:
0:无进位
1:从 MSB 进位
减指令:
0:从MSB借位
1:无借位
6.8
唤醒功能
此芯片提供脚位信号触发唤醒功能,当输入口有信号触发,芯片将会从睡眠模式中返回。为了从睡眠模式中安全
唤醒,我们建议在进入睡眠模式前将输入脚位读为储备数据。编程举例如下所示:
MOVLA
FFh
IODIR
PORTB ;//设置B口的0~7脚位为输入,只有输入脚位会被唤醒
……….
……….
MOVM
PORTB,a ;//睡眠前存储输入脚位数据
SLEEP
;//如果不能执行读取指令,则不能进入SLEEP模式
NOP
;//当芯片唤醒时增加NOP指令来延迟一会儿
15
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
7. 指令集
< 注 > 指令循环是系统时钟/4
Mnemonic
Instruction
Operands
Code (Advance)
ADD M, m
(M)+(acc) → (M)
1
C, DC, Z 01 0101 1MMM MMMM
ADD M, a
(M)+(acc) → (acc)
1
C, DC, Z 01 0101 0MMM MMMM
AND M, m
(M).(acc) → (M)
1
Z
01 0100 1MMM MMMM
AND M, a
(M).(acc) → (acc)
1
Z
01 0100 0MMM MMMM
ANDLA I
Literal .(acc) → (acc)
1
Z
11 1001 iiii iiii
BC M, b0
Clear bit0 of (M)
1
None
00 1100 0MMM MMMM
BC M, b1
Clear bit1 of (M)
1
None
00 1100 1MMM MMMM
BC M, b2
Clear bit2 of (M)
1
None
00 1101 0MMM MMMM
BC M, b3
Clear bit3 of (M)
1
None
00 1101 1MMM MMMM
BC M, b4
Clear bit4 of (M)
1
None
00 1110 0MMM MMMM
BC M, b5
Clear bit5 of (M)
1
None
00 1110 1MMM MMMM
BC M, b6
Clear bit6 of (M)
1
None
00 1111 0MMM MMMM
BC M, b7
Clear bit7 of (M)
1
None
00 1111 1MMM MMMM
BS M, b0
Set bit0 of (M)
1
None
00 1000 0MMM MMMM
BS M, b1
Set bit1 of (M)
1
None
00 1000 1MMM MMMM
BS M, b2
Set bit2 of (M)
1
None
00 1001 0MMM MMMM
BS M, b3
Set bit3 of (M)
1
None
00 1001 1MMM MMMM
BS M, b4
Set bit4 of (M)
1
None
00 1010 0MMM MMMM
BS M, b5
Set bit5 of (M)
1
None
00 1010 1MMM MMMM
BS M, b6
Set bit6 of (M)
1
None
00 1011 0MMM MMMM
BS M, b7
Set bit7 of (M)
1
None
00 1011 1MMM MMMM
Cycles
Status
Affected
OP-code
BTSC M, b0
If bit0 of (M) = 0, skip next instruction 1 + (skip)
None
00 0100 0MMM MMMM
BTSC M, b1
If bit1 of (M) = 0, skip next instruction 1 + (skip)
None
00 0100 1MMM MMMM
BTSC M, b2
If bit2 of (M) = 0, skip next instruction 1 + (skip)
None
00 0101 0MMM MMMM
BTSC M, b3
If bit3 of (M) = 0, skip next instruction 1 + (skip)
None
00 0101 1MMM MMMM
16
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
BTSC M, b4
If bit4 of (M) = 0, skip next instruction 1 + (skip)
None
00 0110 0MMM MMMM
BTSC M, b5
If bit5 of (M) = 0, skip next instruction 1 + (skip)
None
00 0110 1MMM MMMM
BTSC M, b6
If bit6 of (M) = 0, skip next instruction 1 + (skip)
None
00 0111 0MMM MMMM
BTSC M, b7
If bit7 of (M) = 0, skip next instruction 1 + (skip)
None
00 0111 1MMM MMMM
BTSS M, b0
If bit0 of (M) = 1, skip next instruction 1 + (skip)
None
00 0000 0MMM MMMM
BTSS M, b1
If bit1 of (M) = 1, skip next instruction 1 + (skip)
None
00 0000 1MMM MMMM
BTSS M, b2
If bit2 of (M) = 1, skip next instruction 1 + (skip)
None
00 0001 0MMM MMMM
BTSS M, b3
If bit3 of (M) = 1, skip next instruction 1 + (skip)
None
00 0001 1MMM MMMM
BTSS M, b4
If bit4 of (M) = 1, skip next instruction 1 + (skip)
None
00 0010 0MMM MMMM
BTSS M, b5
If bit5 of (M) = 1, skip next instruction 1 + (skip)
None
00 0010 1MMM MMMM
BTSS M, b6
If bit6 of (M) = 1, skip next instruction 1 + (skip)
None
00 0011 0MMM MMMM
BTSS M, b7
If bit7 of (M) = 1, skip next instruction 1 + (skip)
None
00 0011 1MMM MMMM
CLRA
Clear accumulator
1
Z
01 0001 0000 0000
CLR M
Clear memory M
1
Z
01 0001 1MMM MMMM
CLRWDT
Clear watch-dog register
1
TO, PO
01 0000 0000 0001
COM M, m
~(M) → (M)
1
Z
01 0010 1MMM MMMM
COM M, a
~(M) → (acc)
1
Z
01 0010 0MMM MMMM
DEC M, m
Decrement M to M
1
Z
01 0110 1MMM MMMM
DEC M, a
(M) - 1 → (acc)
1
Z
01 0110 0MMM MMMM
DECSZ M, m
(M) - 1 → (M), skip if (M) = 0
1 + (skip)
None
01 0111 1MMM MMMM
DECSZ M, a
(M) - 1 → (acc), skip if (M) = 0
1 + (skip)
None
01 0111 0MMM MMMM
INC M, m
(M) + 1 → (M)
1
Z
01 1000 1MMM MMMM
INC M, a
(M) + 1 → (acc)
1
Z
01 1000 0MMM MMMM
INCSZ M, m
(M) + 1 → (M), skip if (M) = 0
1 + (skip)
None
01 1001 1MMM MMMM
INCSZ M, a
(M) + 1 → (acc), skip if (M) = 0
1 + (skip)
None
01 1001 0MMM MMMM
IODIR M
Set i/o direction
1
None
01 0000 0000 0MMM
IOR M, m
(M) ior (acc) → (M)
1
Z
01 1111 1MMM MMMM
IOR M, a
(M) ior (acc) → (acc)
1
Z
01 1111 0MMM MMMM
17
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
IORLA l
LCALL I
Literal ior (acc) → (acc)
Call subroutine. However, LCALL can
addressing 1K address
1
Z
2
None
11 0011 iiii iiii
10 0iii iiii iiii
LGOTO I
Go branch to any address
2
None
10 1iii iiii iiii
MOVAM m
Move data form acc to memory
1
None
01 0000 1MMM MMMM
MOVLA l
Move literal to accumulator
1
None
11 0001 iiii iiii
MOV M, m
(M) → (M)
1
Z
01 0011 1MMM MMMM
MOV M, a
(M) → (acc)
1
Z
01 0011 0MMM MMMM
NOP
No operation
1
None
01 0000 0000 0000
RET
Return
2
None
11 1111 0111 1111
RETI
Return and enable INTM
2
None
11 1111 1111 1111
RETLA l
Return and move literal to accumulator
2
None
11 1100 iiii iiii
RL M, m
Rotate left from m to itself
1
C
01 1100 1MMM MMMM
RL M, a
Rotate left from m to acc
1
C
01 1100 0MMM MMMM
RR M, m
Rotate right from m to itself
1
C
01 1110 1MMM MMMM
RR M, a
Rotate right from m to acc
1
C
01 1110 0MMM MMMM
SELECT
Set select register
1
None
01 0000 0000 0010
SLEEP
Enter sleep (saving) mode
1
TO, PO
01 0000 0000 0011
SUB M, m
(M)–(acc) → (M)
1
C, DC, Z 01 1010 1MMM MMMM
SUB M, a
(M) –(acc) → (acc)
1
C, DC, Z 01 1010 0MMM MMMM
SWAP M, m
Swap data from m to itself
1
None
01 1101 1MMM MMMM
SWAP M, a
Swap data from m to acc
1
None
01 1101 0MMM MMMM
XOR M, m
(M) xor (acc) → (M)
1
Z
01 1011 1MMM MMMM
XOR M, a
(M) xor (acc) → (acc)
1
Z
01 1011 0MMM MMMM
XORLA l
Literal xor (acc) → (acc)
1
Z
11 1000 iiii iiii
< 注 > 进入睡眠指令后,请增加一个 NOP 指令来进行延时。
18
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
8. 电气特性
8.1
绝对最大额定值
电源电压 …… Vss-0.3V to Vss+5.5V
输入电压 …… Vss-0.3V to VDD+0.3V
8.2
存储温度 …… –50℃ to 125℃
工作温度 …… 0℃ to 70℃
直流电特性
Test Conditions
Symbol
Parameter
VDD
Min.
Typ.
Max.
Unit
2.2
5.5
V
2
Vdd
V
V
Conditions
VDD
Operating Voltage
---
VIH
Input HighVoltage
5V
I/O Port
VIL
Input Low Voltage
5V
I/O Port
0.8
WDT disable
1
WDT enable
9
WDT disable
1
WDT enable
2
5V
IDD1
Standby Current
3V
IIL
IOH
IOL
Input Leakage
Current
I/O Port Driving
Current
I/O Port Sink
Current
5V
5.5V
5.5V
Vin=VDD, VSS
1
Voh=5V
9.9
Voh=4.5V
17.6
Voh=4V
24.8
Vol=0.5V
24.5
Vol=0.75V
35.3
Vol=1V
43.8
19
μA
μA
mA
mA
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
8.3
交流电特性
Symbol
Test Conditions
Parameter
Conditions
fsys1
System Clock
fsys2
System Clock
fsys3
System Clock
fsys4
System Clock
Twdt
Watchdog Timer
Trht
Reset Hold Time
Min
Typ
Max
Unit
VDD
LP Crystal mode
NT Crystal mode
HS Crystal mode
RC mode
5V
32
200
3V
32
200
5V
0.2
10
3V
0.2
10
5V
10
20
3V
10
20
5V
4MHZ
4.5
3V
4MHZ
4.5
5V
Khz
Mhz
Mhz
Mhz
20
mS
20
mS
3V
5V
3V
8.4 EXT_RC 振荡器频率
VCC
Rext
OSCI
Cext
MK7A11P
20
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
下表为典型的外部 RC 振荡频率数据表
当 Cext = 0.01uf (103)
Rext
5V
3V
300K
500 KHZ
470 KHZ
120K
1.1 MHZ
1.1 MHZ
65K
2.1 MHZ
2 MHZ
32K
4.3 MHZ
4.1 MHZ
17K
8.3 MHZ
8 MHZ
14K
10.3 MHZ
10 MHZ
9. 封装尺寸
(a) 14 Pin DIP
D
E1
E
C
TOP E-PIN INDENT ø 0.079
BOTTOM E-PIN INDENT ø 0.118
L
A1
A
A2
eB
B
B1
e
D1
DIMENSIONS IN MILLIMETERS
DIMENSIONS IN INCHES
SYMBOLS
MIN
NOM
MAX
MIN
─
NOM
MAX
A
─
─
4.57
A1
0.38
─
─
0.015
─
─
A2
3.25
3.30
3.45
0.128
0.130
0.136
─
0.180
B
0.36
0.46
0.56
0.014
0.018
0.022
B1
1.27
1.52
1.78
0.050
0.060
0.070
C
0.20
0.25
0.33
0.008
0.010
0.013
D
18.90
19.15
19.30
0.744
0.754
0.760
D1
1.07
1.19
1.32
0.042
0.047
0.052
E
7.62
─
8.26
0.300
─
0.325
E1
0.262
6.35
6.50
6.65
0.250
0.256
e
─
2.54
─
─
0.100
─
L
3.18
─
─
0.125
─
─
eB
8.64
─
9.65
0.340
─
0.380
21
2007/4/11 Rev.11
MK7A11P
8Bit Microcontroller
E
H
(b) 14 Pin SOP
C
L
D
DIMENSIONS IN MILLIMETERS
DIMENSIONS IN INCHES
SYMBOLS
B
e
y
A1
A
A2
7°(4X )
MIN
NOM
MAX
MIN
NOM
MAX
A
1.35
1.60
1.75
0.053
0.063
0.069
A1
0.10
─
0.25
0.004
─
0.010
A2
─
1.45
─
─
0.057
─
B
0.33
─
0.51
0.013
─
0.020
C
0.19
─
0.25
0.007
─
0.010
D
8.55
─
8.75
0.337
─
0.344
E
4.00
0.150
─
0.157
─
0.244
3.80
─
e
─
1.27
─
─
0.050
H
5.80
─
6.20
0.228
─
L
0.40
─
1.27
0.016
─
0.050
Y
─
─
0.10
─
─
0.004
θ
0°
─
8°
0°
─
8°
22
2007/4/11 Rev.11