MDTIC MDT10P7212K12

MDT10P7212
1. General Description
-8 analog inputs multiplexed into one A/D
converter
This EPROM-Based 8-bit micro-controller uses a fully
-10-bit resolution
static CMOS technology process to achieve higher
TMR0: 8-bit real time clock/counter
speed and smaller size with the low power consumption
TMR1: 16-bit real time clock/count
and high noise immunity. On chip memory includes 4K
TMR2: 8-bit clock/counter (internal)
words of ROM, and 192 bytes of static RAM.
5 types of oscillator can be selected by
programming option:
2. Features
RC-Low cost RC oscillator
LFXT-Low frequency crystal oscillator
The followings are some of the features on the
XTAL-Standard crystal oscillator
hardware and software:
HFXT-High frequency crystal oscillator
Fully CMOS static design
IRC-Internal 8MHz RC oscillator
8-bit data bus
On-chip RC oscillator based Watchdog Timer
On chip EPROM size: 4.0 K words
(WDT)
Internal RAM size: 192 bytes
18/20 I/O pins with their own independent direction
37 single word instructions
control
14-bit instructions
8-level stacks
3. Applications
Operating voltage: 2.5 V ~ 5.5 V (PRD Disable)
4.5 V ~ 5.5 V (PRD Enable)
The application areas of this MDT10P7212 range from
Operating frequency: DC ~ 20 MHz
appliance motor control and high speed auto-motive to
The most fast execution time is 200 ns under 20
low
MHz in all single cycle instructions except the
devices, and telecommunications processors, such as
branch instruction
Remote controller, small instruments, chargers, toy,
Addressing modes include direct, indirect and
automobile and PC peripheral … etc.
power
remote
transmitters/receivers,
relative addressing modes
Power-on Reset
Power edge-detector Reset
Power range-detector Reset
Sleep Mode for power saving
Capture, Compare, PWM module
7 interrupt sources:
-External INT pin
-TMR0 timer, TMR1 timer, TMR2 timer
-A/D conversion completion
-Port B<7:4> interrupt on change
-CCP1
A/D converter module:
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 1
2007/11 VER1.2
pointing
MDT10P7212
4. Pin Assignment
PE2/AIC7 1
PA0/AIC0 2
PA1/AIC1 3
PA2/AIC2 4
PA3/AIC3 5
PA5/AIC4 6
PA4/T0CKI/VPP 7
VSS 8
PB0 9
PB1 10
PB2 11
PB3 12
24
PE1/AIC6
23
22
21
20
19
18
17
16
15
14
13
PE0/AIC5
PC2/CCP1
PC1/T1OSC1
PC0/T1OSC2
PC4
PC3
VDD
PB7
PB6
PB5
PB4
PE2/AIC7 1
PA0/AIC0 2
PA1/AIC1 3
PA2/AIC2 4
PA3/AIC3 5
PA5/AIC4 6
PA4/T0CKI/VPP 7
VSS 8
PB0 9
PB1 10
PB2 11
PB3 12
MDT10P7212K11 (SKINNY)
MDT10P7212S11 (SOP)
24
PE1/AIC6
23
22
21
20
19
18
17
16
15
14
13
PE0/AIC5
PC2/CCP1
PC1/T1OSC1
PC0/T1OSC2
OSC1
OSC2
VDD
PB7
PB6
PB5
PB4
MDT10P7212K12 (SKINNY)
MDT10P7212S12 (SOP)
5. Order information
Device
ROM
RAM
I/O
A/D
Timer
(words)
(bytes)
MDT10P7212K11
4K
192
MDT10P7212S11
4K
MDT10P7212K12
MDT10P7212S12
CCP
INRC
Package
(10 bits)
(8/16)
22
8-channel
2/1
1
Yes
SKINNY
192
22
8-channel
2/1
1
Yes
SOP
4K
192
20
8-channel
2/1
1
No
SKINNY
4K
192
20
8-channel
2/1
1
No
SOP
(8Mhz)
6. Pin Function Description
Pin Name
I/O
PA0~PA3, PA5
I/O
Function Description
Port A, TTL input level
Analog input channel
PA4/T0CKI/VPP
I/O
Real Time Clock/Counter, Schmitt Trigger input levels
Open drain output, Vpp input when programming
PB0~PB7
I/O
Port B, TTL input level/PB0: External interrupt input,
PB4~PB7: Interrupt on pin change
PC0~PC2
I/O
Port C, Schmitt Trigger input levels
OSC1/PC4
I, I/O
Oscillator Input/external clock input
PC4 in IRC mode
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 2
2007/11 VER1.2
MDT10P7212
Pin Name
I/O
Function Description
OSC2/PC3
O, I/O
Oscillator Output/in RC mode, the CLKOUT pin has 1/4 frequency
of CLKIN
PC3 in IRC mode
PE0~PE2
I/O
Port E, Schmitt Trigger input levels
Analog input channel
VDD
Power supply
VSS
Ground
7. Memory Map
(A) Register Map
Address
Description
BANK0
00
Indirect Addressing Register
01
RTCC
02
PCL
03
STATUS
04
MSR
05
Port A
06
Port B
07
Port C
09
Port E
0A
PCHLAT
0B
INTS
0C
PIFB1
0E
TMR1L
0F
TMR1H
10
T1STA
11
TMR2
12
T2STA
15
CCP1L
16
CCP1H
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 3
2007/11 VER1.2
MDT10P7212
Address
Description
17
CCP1CTL
1E
ADRESH, The ADRESH register is not a writable register.
1F
ADS0
20~7F
General purpose register
BANK1
01
TMR
05
CPIO A
06
CPIO B
07
CPIO C
09
CPIO E
0C
PIEB1
0D
PIEB2
0E
PSTA
12
T2PER
1E
ADRESL, The ADRESL register is not a writable register.
1F
ADS1
A0~FF
General purpose register
(1) IAR (Indirect Address Register): R00
(2) RTCC (Real Time Counter/Counter Register): R01
(3) PC (Program Counter): R02, R0A
Write PC --- from PCHLAT
Write PC --- from PCHLAT
LJUMP, LCALL --- from instruction word
RTWI, RET --- from STACK
A11
A10~A8
A7~A0
Write PC --- from ALU
LJUMP, LCALL --- from instruction word
RTWI, RET, RTFI --- from STACK
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 4
2007/11 VER1.2
MDT10P7212
(4) STATUS (Status register): R03
Bit
Symbol
Function
0
C
Carry bit
1
HC
Half Carry bit
2
Z
Zero bit
3
/PF
Power down Flag bit
4
/TF
WDT Timer overflow Flag bit
5
RBS0
Register Bank Select bit
0: 00h~7Fh (Bank0)
1: 80h~FFh (Bank1)
7-6
--
General purpose bit
(5) MSR (Memory Bank Select Register): R04
Memory Bank Select Register:
0: 00h~7Fh (Bank0)
1: 80h~FFh (Bank1)
b7
b6
b5
b4
b3
b2
b1
b0
Indirect Addressing Mode
(6) PORT A: R05
PA5~PA0, I/O Register
(7) PORT B: R06
PB7~PB0, I/O Register
(8) PORT C: R07
PC4~PC0, I/O Register
(9) PORT E: R09
PE2~PE0, I/O Register
(10) PCHLAT: R0A
(11) INTS (Interrupt Status Register): R0B
Bit
Symbol
Function
0
RBIF
PORT B change interrupt flag, Set when PB <7:4> inputs change
1
INTF
Set when INT interrupt occurs
2
TIF
Set when TMR0 overflows
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 5
2007/11 VER1.2
MDT10P7212
Bit
Symbol
3
RBIE
Function
0: Disable PB change interrupt
1: Enable PB change interrupt
4
INTS
0: Disable INT interrupt
1: Enable INT interrupt
5
TIS
0: Disable TMR0 interrupt
1: Enable TMR0 interrupt
6
PEIE
0: Disable all peripheral interrupt
1: Enable all peripheral interrupt
7
GIS
0: Disable global interrupt
1: Enable global interrupt
(12) PIFB1 (Peripheral Interrupt Flag Bit): R0C
Bit
Symbol
0
TMR1IF
Function
TMR1 interrupt flag
0: TMR1 did not overflow
1: TMR1 overflowed
1
TMR2IF
TMR2 interrupt flag
0: No TMR2 to T2PER match occurred
1: TMR2 to T2PER match occurred
2
CCP1IF
CCP1 interrupt flag
0: No TMR1 capture/compare occurred
1: A TMR1 capture/compare occurred
5~3
--
6
ADIF
Unimplemented, read as ‘0’
A/D interrupt flag
0: A/D conversion is not complete
1: A/D conversion completed
7
--
Unimplemented, read as ‘0’
(13) TMR1L: R0E
The LSB of the 16-bit TMR1
(14) TMR1H: R0F
The MSB of the 16-bit TMR1
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 6
2007/11 VER1.2
MDT10P7212
(15) T1STA: R10
Bit
Symbol
0
TMR1ON
Function
0: Stop TMR1
1: Enable TMR1
1
TMR1CLK
0: Internal clock (Fosc/4)
1: External clock from pin PC0
2
/T1SYNC
TMR1CLK = 1
0: Synchronize external clock
1: Do not synchronize external clock
TMR1CLK = 0
This bit is ignored
3
T1OSCEN
0: TMR1 Oscillator is shut off
1: TMR1 Oscillator is enable
5~4
T1CKPS1
1 1 = 1:8 Prescale value
~
1 0 = 1:4 Prescale value
T1CKPS0
0 1 = 1:2 Prescale value
0 0 = 1:1 Prescale value
7~6
--
Unimplemented, read as ‘0’
(16) TMR2: R11
TMR2 register
(17) T2STA: R12
Bit
Symbol
1~0
T2CKPS1
0 0 = Prescaler is 1
~
0 1 = Prescaler is 4
T2CKPS0
1 x = Prescaler is 16
TMR2ON
0: TMR2 is off
2
Function
1: TMR2 is on
7~3
--
Unimplemented, read as ‘0’
(18) CCP1L: R15
Capture/Compare/PWM LSB
(19) CCP1H: R16
Capture/Compare/PWM MSB
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 7
2007/11 VER1.2
MDT10P7212
(20) CCP1CTL: R17
Bit
Symbol
3~0
CCP1M3
Function
0 0 0 0: CCP1 off
~
0 1 0 0: Capture1 mode, every falling edge
CCP1M0
0 1 0 1: Capture1 mode, every rising edge
0 1 1 0: Capture1 mode, every 4th rising edge
0 1 1 1: Capture1 mode, every 16th rising edge
1 0 0 0: Compare1 mode, set output on match
1 0 0 1: Compare1 mode, clear output on match
1 0 1 0: Compare1 mode, generate software interrupt on match
1 0 1 1: Compare1 mode, trigger special event
1 1 x x: PWM1 mode
5~4
7~6
PWM1LSB These bits are the two LSBs of the PWM1 duty cycle
--
Unimplemented, read as ‘0’
(21) ADRESH: R1E
A/D result register high byte, The ADRESH register is not a writable register.
(22) ADS0 ( A/D Status Register ): R1F
Bit
Symbol
0
ADRUN
Function
0: A/D converter module is shut off and consumes no operating current
1: A/D converter module is operating
1
2
--
Unimplemented, read as ‘0’
GO/DONEB 0: A/D conversion not in progress
1: A/D conversion in progress
5~3
CHS2~0
000: AIC0 001: AIC1 010: AIC2 011: AIC3 100: AIC4
101: AIC5 110: AIC6 111: AIC7
7~6
ASCS1~0
00: fosc/2 01: fosc/8 10: fosc/32 11: f RC (*Note)
*Note: determined by OSC mode, HF: fosc/32, XT: fosc/8, RC: fosc/2, LF: fosc/2
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 8
2007/11 VER1.2
MDT10P7212
(23) TMR (Time Mode Register): R81
Bit
Symbol
Function
Prescaler Value
2~0
PS2~0
3
PSC
4
TCE
5
TCS
6
IES
7
PBPH
RTCC rate
0 0 0
1:2
0 0 1
1:4
0 1 0
1:8
0 1 1
1 : 16
1 0 0
1 : 32
1 0 1
1 : 64
1 1 0
1 : 128
1 1 1
1 : 256
Prescaler assignment bit
0: RTCC
1: Watchdog Timer
RTCC signal edge
0: Increment on low-to-high transition on RTCC pin
1: Increment on high-to-low transition on RTCC pin
RTCC signal set
0: Internal instruction cycle clock
1: Transition on RTCC pin
Interrupt edge select
0: Interrupt on falling edge on PB0
1: Interrupt on rising edge on PB0
PORTB7~0 pull-hi
0: PORTB7~0 pull-hi are enable
1: PORTB7~0 pull-hi are disable
WDT rate
1:1
1:2
1:4
1:8
1 : 16
1 : 32
1 : 64
1 : 128
(24) CPIO A (Control Port I/O Mode Register): R85
=“0”, I/O pin in output mode
=“1”, I/O pin in input mode
(25) CPIO B (Control Port I/O Mode Register): R86
=“0”, I/O pin in output mode
=“1”, I/O pin in input mode
(26) CPIO C (Control Port I/O Mode Register): R87
=“0”, I/O pin in output mode
=“1”, I/O pin in input mode
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 9
2007/11 VER1.2
MDT10P7212
(27) PIEB1: R8C
Bit
Symbol
0
TMR1IE
Function
TMR1 interrupt enable bit
0: Disable TMR1 interrupt
1: Enable TMR1 interrupt
1
TMR2IE
TMR2 interrupt enable bit
0: Disable TMR2 interrupt
1: Enable TMR2 interrupt
2
CCP1IE
CCP1 interrupt enable bit
0: Disable CCP1 interrupt
1: Enable CCP1 interrupt
5~3
--
6
ADIE
Unimplemented, read as ‘0’
A/D interrupt enable bit
0: Disable A/D interrupt
1: Enable A/D interrupt
7
--
Unimplemented, read as ‘0’
(28) PSTA: R8E
Bit
Symbol
Function
0
PRDB
0: Power range-detector Reset occurred
1: No Power range-detector Reset Occurred
1
PORB
0: Power on Reset occurred
1: No Power on Reset occurred
7~2
--
Unimplemented, read as ‘0’
(29) T2PER: R92
Timer2 period
(30) ADRESL: R9E
A/D result register low byte, The ADRESL register is not a writable register.
(31) ADS1 ( A/D Status Register ): R9F
Bit
2~0
Symbol
PAVM2~0
Function
0 0 0: PA0~3, PA5, PE0~2 = analog input, VREF = VDD
0 0 1: PA0~2, PA5, PE0~2 = analog input, VREF = PA3
0 1 0: PA0~3, PA5 = analog input, PE0~2 = digital I/O, VREF = VDD
0 1 1: PA0~2, PA5 = analog input, PE0~2 = digital I/O, VREF = PA3
1 0 0: PA0, 1, 3 = analog input, PA2, 5, PE0~2 = digital I/O, VREF = VDD
1 0 1: PA0, 1 = analog input, PA2, 5, PE0~2 = digital I/O, VREF = PA3
1 1 x: PA0~3, 5, PE0~2 = digital I/O
6~3
--
Unimplemented, read as ‘0’
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 10
2007/11 VER1.2
MDT10P7212
Bit
Symbol
7
ADFM
Function
A/D result format select
0: Left justified, bit 5~0 of ADRESL are read as “0”
1: Right justified, bit 7~2 of ADRESH are read as “0”
(32) Configurable options for EPROM (Set by writer)
Oscillator Type
RC
Oscillator
HFXT Oscillator
XTAL Oscillator
LFXT Oscillator
Watchdog Timer control
Watchdog timer disable all the time
Watchdog timer enable all the time
Power-range control
Power-range disable
Power-range enable
Oscillator-start Timer control
0ms
75ms
Power-edge Detect
Security state
PED Disable
Security Disable
PED Enable
Security Enable
(B) Program Memory
Address
000-FFF
Description
Program memory
000
The starting address of power on, external reset or WDT time-out reset
004
Interrupt vector
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 11
2007/11 VER1.2
MDT10P7212
8. Reset Condition for all Registers
Register
Address
Power-On Reset,
Power range detector
Reset
WDT Reset
Wake-up from SLEEP
IAR
00h
N/A
N/A
N/A
RTCC
01h
xxxx xxxx
uuuu uuuu
uuuu uuuu
0Ah,02h
0000 0000 0000
0000 0000 0000
PC+1
STATUS
03h
0001 1xxx
000# #uuu
000# #uuu
MSR
04h
xxxx xxxx
uuuu uuuu
uuuu uuuu
PORT A
05h
--xx xxxx
--uu uuuu
--uu uuuu
PORT B
06h
xxxx xxxx
uuuu uuuu
uuuu uuuu
PORT C
07h
xxxx xxxx
uuuu uuuu
uuuu uuuu
PCHLAT
0Ah
---0 0000
---0 0000
---u uuuu
INTS
0Bh
0000 000x
0000 000u
uuuu uuuu
PIFB1
0Ch
-000 0000
-000 0000
-uuu uuuu
TMR1L
0Eh
xxxx xxxx
uuuu uuuu
uuuu uuuu
TMR1H
0Fh
xxxx xxxx
uuuu uuuu
uuuu uuuu
T1STA
10h
--00 0000
--uu uuuu
--uu uuuu
TMR2
11h
0000 0000
0000 0000
uuuu uuuu
T2STA
12h
---- -000
---- -uuu
---- -uuu
CCP1L
15h
xxxx xxxx
uuuu uuuu
uuuu uuuu
CCP1H
16h
xxxx xxxx
uuuu uuuu
uuuu uuuu
CCP1CTL
17h
--00 0000
--00 0000
--uu uuuu
ADRESH
1Eh
xxxx xxxx
uuuu uuuu
uuuu uuuu
ADS0
1Fh
0000 00-0
0000 00-0
uuuu uu-u
TMR
81h
1111 1111
1111 1111
uuuu uuuu
CPIOA
85h
--11 1111
--11 1111
--uu uuuu
CPIOB
86h
1111 1111
1111 1111
uuuu uuuu
CPIOC
87h
1111 1111
1111 1111
uuuu uuuu
PIEB1
8Ch
-000 0000
-000 0000
-uuu uuuu
PSTA
8Eh
---- --0u
---- --uu
---- --uu
T2PER
92h
1111 1111
1111 1111
1111 1111
ADRESL
9Eh
xxxx xxxx
uuuu uuuu
uuuu uuuu
ADS1
9Fh
0--- -000
0--- -000
u--- -uuu
PC
Note : u=unchanged, x=unknown, - =unimplemented, read as “0”
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 12
2007/11 VER1.2
MDT10P7212
#=value depends on the condition of the following table
Condition
Status: bit 4
Status: bit 3
PSTA: bit 1
PSTA: bit 0
WDT reset (not during SLEEP)
0
1
u
u
WDT reset during SLEEP
0
0
u
u
Power-on reset
1
1
0
x
Power-range reset
1
1
u
0
Note : u=unchanged, x=unknown, - =unimplemented, read as “0”
9. Instruction Set
Instruction Code
Mnemonic
Operands
Function
Operating
Status
010000 00000000
NOP
No operation
None
010000 00000001
CLRWT
Clear Watchdog timer
0→WT
TF, PF
010000 00000010
SLEEP
Sleep mode
0→WT, stop OSC
TF, PF
010000 00000011
TMODE
Load W to TMODE register
W→TMODE
None
010000 00000100
RET
Return from subroutine
Stack→PC
None
010000 00000rrr
CPIO R
Control I/O port register
W→CPIO r
None
010001 1rrrrrrr
STWR R
Store W to register
W→R
None
011000 trrrrrrr
LDR R, t
Load register
R→t
Z
111010 iiiiiiii
LDWI I
Load immediate to W
I→W
None
010111 trrrrrrr
SWAPR R, t
Swap halves register
[R(0~3) ↔R(4~7)]→t
None
011001 trrrrrrr
INCR R, t
Increment register
R + 1→t
011010 trrrrrrr
INCRSZ R, t
Increment register, skip if zero R + 1→t
011011 trrrrrrr
ADDWR R, t
Add W and register
W + R→t
011100 trrrrrrr
SUBWR R, t
Subtract W from register
R ﹣W→t or (R+/W+1 C, HC, Z
→t)
011101 trrrrrrr
DECR R, t
Decrement register
R ﹣1→t
011110 trrrrrrr
DECRSZ R, t
Decrement register, skip if zero R ﹣1→t
010010 trrrrrrr
ANDWR R, t
AND W and register
R ∩ W→t
Z
110100 iiiiiiii
ANDWI i
AND W and immediate
i ∩ W→W
Z
010011 trrrrrrr
IORWR R, t
Inclu. OR W and register
R ∪ W→t
Z
110101 iiiiiiii
IORWI i
Inclu. OR W and immediate
i ∪ W→W
Z
010100 trrrrrrr
XORWR R, t
Exclu. OR W and register
R ♁ W→t
Z
110110 iiiiiiii
XORWI i
Exclu. OR W and immediate
i ♁ W→W
Z
011111 trrrrrrr
COMR R, t
Complement register
/R→t
Z
010110 trrrrrrr
RRR
Rotate right register
R(n) →R(n-1),
C→R(7), R(0)→C
C
R, t
Z
None
C, HC, Z
Z
None
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 13
2007/11 VER1.2
MDT10P7212
Instruction Code
Mnemonic
Operands
Function
Operating
Status
Rotate left register
R(n)→r(n+1),
C→R(0), R(7)→C
C
Clear working register
0→W
Z
Clear register
0→R
Z
R, b
Bit clear
0→R(b)
None
R, b
Bit set
1→R(b)
None
BTSC R, b
Bit Test, skip if clear
Skip if R(b)=0
None
0011bb brrrrrrr
BTSS R, b
Bit Test, skip if set
Skip if R(b)=1
None
100nnn nnnnnnnn
LCALL n
Long CALL subroutine
n→PC, PC+1→Stack
None
101nnn nnnnnnnn
LJUMP n
Long JUMP to address
n→PC
None
110111 iiiiiiii
ADDWI i
Add immediate to W
W+i→W
110001 iiiiiiii
RTWI
Return, place immediate to W Stack→PC,i→W
111000 iiiiiiii
SUBWI i
Subtract W from immediate
i-W→W
010000 00001001
RTFI
Reture from interrupt
Stack→PC,1→GIS
010101 trrrrrrr
RLR
010000 1xxxxxxx
CLRW
010001 0rrrrrrr
CLRR
0000bb brrrrrrr
BCR
0010bb brrrrrrr
BSR
0001bb brrrrrrr
R, t
R
i
C,HC,Z
None
C,HC,Z
None
Note :
W
WT
TMODE
CPIO
TF
PF
PC
OSC
Inclu.
Exclu.
AND
:
:
:
:
:
:
:
:
:
:
:
Working register
Watchdog timer
TMODE mode register
Control I/O port register
Timer overflow flag
Power loss flag
Program Counter
Oscillator
Inclusive ‘∪’
Exclusive ‘♁’
Logic AND ‘∩’
b
t
:
:
0
1
R
:
C
:
HC :
Z
:
/
:
x
:
i
:
n
:
Bit position
Target
: Working register
: General register
General register address
Carry flag
Half carry
Zero flag
Complement
Don’t care
Immediate data ( 8 bits )
Immediate address
This specification are subject to be changed without notice. Any latest information
please preview http;//www.mdtic.com.tw
P. 14
2007/11 VER1.2