EM78P451 CMOS 8 RISC !"#OTP$%&'()*+,-. "/01 234 56 789: ;<= >?1 @ABC EM78P451DE SPI(FGHIJK) LM4 ( RS-232JK N'(OPQRE S@TUVW57XS@ EMC YZ[\]M ^_!.Easy C!`] (ab c def"
ghiIjklkmnolom
pqiIjrsntrs
uviIjwx+yzzzz{|nkr}~ z om z{|n }~ m
|+y zz{|n }~ zz om z{|n }~ m
× }
DE L
L ]
r× O ]# }$
o K o
{ J = EF g?
|¢£]
¤g¥
o|§¨
?a? ??]#-||$=?ˉ-,°±
2 S@3′μk ? ?·3′
DE +y
!" ?1o? L
!"? ?G?{-
k o?
k ?àdá
k n??????
?èéyê
}t o r { zzzzz k }t o } r
}t o k ~ ? zzz }t o ìí
?è??]
o?°±j
zz ?1# ?-$
kzz K?1
D
-||?ˉ
o ?è??]?ò
图 引脚分配
ó? ? L?×
R-OSCI I XTAL+y°μw x?ùúRC+y°J56K¤?g?-,
1 8432MHz uv
OSCO O XTAL+y°μwx?ˉ; RC+y°μS@?·?ˉ
P90~P95I/O K9μ6 I/O K=üE YT??àáμ¤?
P80~P87I/O K8μ8 I/O K=P80aP81 (R-option
P70~P72I/O?ˉ?μLED J = E¤?g? YTa? CLK I/O P74.P76?J=P74 YTáμ¤?=P76 áμ?àdá?
ˉ
DATA I/O P75.P77?J=P75 YTáμ¤?=P77 áμ?àdá?
ˉ
P60~P67I/O K6μ8 I/O K=üE YT??àáμ¤?
P50~P57I/O K5μ8 I/O K=üE YT??àáμ¤?VDD-g?
VSS-?
/INT I°±?èéêe =°± L ?ìíêe= 7 YT?L
?= ¤?g?e50K.
SDI I/O FG???ù
SDO I/O FG???ˉ
SCK I/O FG???·
/SS I/O/ò]Tó?
1)R0
R0?Q ? Y ] ÷ ?ù L úμ?JüySt ? R0μSt S@ ?¤ 'RAMó? ]R4üS ?? G
2)R1 !" /#$
z S@3′?·êe 1
z
3)R2 %$ PC '()
z R2a T§¨μ12 = 3ü
z-,4096×13 OTP ROM?y 'c" S@ " μ512
z¥ R2üE á1
z JMP S@ Jè R2 10 = JMP S@ iIμ "
z CALL S@ PC+1ù¨= è R2 10 = " ùK?yY!
z RET M RETI M RETL S@ ¨"??èùPC
z#ADD R2=A$%& E'?y ()*PC¤=+!?PC,9M10 -.0
z#MOV R2=A$ ACC° 8 ?yèùPC 8 =PC,9M10 -.0 z? 'R2 / G J01 S@ 2R2,9M10 .0 -, 3(! *256 ?y
z TBL S@ 4c?y (PC¤=+PC,9M10 5? 5 2 Y?C" ,1#2?3?4$6256 ?y
z EM78P45178?=9 : #A10.A11$ Y;G JMP M CALL?? 1?R2 / S@? R3 PS0~PS1èù
4) R3 *+
z,7 #GP$O
z,5~6 #PS0M PS1$" ó? (ó?" <] =Y;G JMP M CALL?? 1?R2 / S@?èùR2,11M12 =C=RET M RETL M RETI S@51?N> ?@ A= BC(" D E=56PS0M PS1μ
r" <] ?y
r r,r F rrrn ííG
r , F rrntííG
r,k F rrn HííG
, F|rrníííG
z,4 #T$?ˉ =;G SLEEP?WDTC S@?¤g á1=WDT?ˉ?.0 z,3 #P$ =;G WDTC S@?¤g á1=;G SLEP S@ .0 z,2 #Z$IJK =)LM?L?NO?L P 0?a á1
z,1 #DC$QR JK
z,0 #C$ JK
5)R4 RAM,-
z,0~5 Y?Jüy3y° (ó?RAM ]#00~3F$
z,6M7 (ó? ]S
z TU? ?Jüy3y= ú8 O ]
z VW 4ü ?? <]
6)R5~R8 I/O
z4 I/O ]
z P74.P76 òDATA ??=P75.P77 òCLK ??
7)R9(./9)
z6 I/O ]= : ˉμ0
8)RA~R1F
z VW6.5 SPI+y.6.6??]1
9)R20~R3E 01
10)R3F 23*+
z1X E°±YZ=0X [E
z,0 #TCIF$TCC?ˉ°±JK TCC?ˉ?á1=YT.0
z,1 #EXIF$H °±JK /INT ¤ ?ìíá1=YT.0
z,2 #RBFIF$ \]]B°±JK
z,3 #TM1IF$
z,4~7 U? = ˉμ0
z R3F YT.0=+5 á1
z IOCFμ°±^_ ]
z=Cj R3F PμR3F.IOCF4a P
1)A(45 ) 1678$9:;<=>?@A$BCDEFG D
2)CONT(HI )
z,0 ~,2 #PSR0~PSR2$TCC/WDT`a u
k r-||a uv?{-a uv
r r r êk ê
r r ê êk
r r ê ê
r ê b ê
r r ê k ê b
r êb ê k
r ê k êb
êko b ê k
z,3 #PAB0$`a u]aò =μ0ac TCC=μ1ac WDT
z,4M5 U = ˉμ0
z,6 #/INT$°±%&JK 0X d DISI S@? T°±^_°±=1 X d ENI S@?RETI S@%&°± CONTW S@5L a
z,7 #/PHEN$I/O ¤??L JK μ1?ef¤? L=μ0??L P60~P67M P74~P75M P90~P91¤? L
z CONT ],0~3 M,7
3)IOC5~IOC9 I/O HI
z1a?'c I/O μ ?gh=0a? μ?ˉ
z P74M P765 !?a?μ?ˉ=P75M P77? N i
z IOC9j? k 6
4)IOCD(JKHI )
z/PU5M/PU6M/PU8M/PU9lm μ1=ef¤? L
z/PU6M/PU9./PHEN4a=?C μ0n?L¤?
z S7a?k P70~P72 L o 0μp R?ˉ=1μqr LED ?ˉ 5)IOCE (WDT HI )
! " !
z,0 #/WUE$P60~P67M P74~P75M P90~P91o? L s μ0?L=
μ1ef a
z,3 #ROC$ (R-option L ROCá1=t R-option P80M P81 gh ˉ=ROC.0tef a L u H=vw ?R-option L 7xy P81?/.P80 Of560K H g?#Rex$aVSS4? T RexaVDD4?/ U?=P80(P81)gh ˉμ0/1 VW 7#B$ a
z,4 #SLPC$a Yo?P??ìí Tá1= YT.0 a (s ¢£] ( ?1?¢£]ef#¢£]z¢= ù{|+y2$= ( ?1?¢£]?L# {|+y2o?$ μk}~¢£]?ˉ a= ¢£] ?L=Y;G? S@?*E)e18ms ?#OST$ 56 ó WTC μ0=OST1 o? o? =T WTCμ1t WDT?L { |+y2 .?ùêeo? 5 a
z,5 #WTE$WDT s ó ] WTCμ1?a E ?WTE μ1?L WDT,μ0ef WTCμ0?a = 6WTEμ WDT ef a
z,6 #ODE$?àdás μ0?P76~P77μOR I/O =μ1?P76~P77μ ?àdá a
z,1~2.7 U?
6)IOCF (23LM )
z,0 #TCIE$TCIF°±?L μ0ef=μ1?L
z,1 #EXIE$EXIF°±?L μ0ef=μ1?L
z,2 #SPIIE$SPI°±?L μ0ef=μ1?L
z,3 #T1IE$T1IE°±?L μ0ef=μ1?L
z,4~7 U?
z a ]
'(TCC?WDT E 8 ]ú`a u] Y! ??÷j L aòc ° 3= N CONT ] PAB a PSR0~PSR2 aa u ? Taòc TCC=t2 TCC `a u].0 Taò
c WDT=t WDT.`a u] Y;
G WDTC.SLEP S@?.0
TCC/WDT gá 6ü
R1#TCC$μ8 a?]/??
] 2 S@3′TCC 1# `
a u]$
WDT ? ?G RC
¢£] )¢£ ]' =WDT
?G= Y{|+y?n
WDT?ˉ 2¥ #T WDT?L$
Y p R ?=WDT YTàá
IOCE WTE ?L?ef Y[
E`a u78?=WDT?ˉ??eμ
18ms
I/O K PORT5~PORT9 μ h I/O K P60~P67M P74~P75M P90~P91D E ¤? L. !"o? L P76~P77 YTàáμ?àdá?ˉ P80~P81 YTàáμR-option L )
? R-option L?=
P80~P81àáμ?ˉ Y?L R-
option Lf"°=P80~P81xy
áμ?ù c ?=R-option
L°T P80(P81)JEH g?=
L ù g
" s °=I/O K s
]#IOC5~IOC9$àáμ?ù?
?ˉ I/O ].I/O s ]
1 I/O JKgá 7
ü =C=òI/O K ???=
?ù.?ˉ5!gh á 5!
图 复位控制方框图
1)N OPQ
×: 9M10M11ü μEM78P451Y SPI+y a à OP T EM78P451μ?s ]=÷Of SCK eˉ?· !?: ??-e .J? T EM78P451μò]T= SCK ca?μ?ù ?? ¢(?·e,v.P?í?£e ¤j
z Y?+y?ò+y?
z3Z?4Z!¥OP=n| 3y
z OP§ v !"
z?·P?ਠ!"
z \]]B=-,°±JK
z ?? q9) a8MHz
2)RS
?×μ SPI OP P? Lj
z P93/SDO FG???ˉ
z P92/SDI FG???ù
z P94/SCK FG?·
z P95//SSò+yó?# ó$ Yò+y? ù
z RBF \]]B??]á1= YT.0.
? 由缓冲器满检测器置 ,由软件清
? #$$%& #'' %(%)(%&当 位移动结束时置
? 将数据装入 寄存器,开始传送
? 寄存器各个字节数据由此一位一位地移进或移出。高位在前。 和
!寄存器同时装入数据。只要数据一写进, 便开始传输。
接收完毕后,接收到的数据将被送到 寄存器。 和
标志置 。
? 寄存器读缓冲寄存器。当 位接收完成后其中数据被更新。在下一接收
完成之前,数据必须被读出。读 寄存器时 寄存器清 。? !寄存器写缓冲寄存器。在 位传送完成之前,缓冲器不接受任何写操作。
传输未完成则 标志置 。传输结束后该标志清 。用户由此可
判断写操作是否完成。
? * 对时钟频率 分频率和时钟源编程。
? '+), %'%)(选择内部时钟或外部时钟为传输时钟。
? -.% %'%)(对 编程以选择合适的时钟沿。
3)TU'
12ü 4 SDI M SDO M SCK M/SS Y -??×
SDI/P92( 7)
z FG???ù
z FGJ???= Y*= Y
z Uó?cáμ ?gh
z?ò]T ˉ ?·a uv.?·ícàáμ4!
z& J?( ?? ]°¤ ?( ??
z SPI J?±2 =RBF.RBFIF1á1
z? 12M13ü
SDO/P93( 8)
z FG???ˉ
z FG?ˉ??= Y*= Y
z?ò]T ˉ ?·a uv.?·ícàáμ4!
z SPI?ˉ±2 =SE.0
z? 12M13ü
SCK/P94( 9)
z FG???·
z ?]T-,
z'SDI.SDO ??OP G!¥
z ES (ó?OP?·í
z SBR0~SBR2 (ó?OP§ v
z ES,SBR0~SBR2 '(ò+y
z? 12M13ü
/SS/P95( 10)
zò+yó?= g3E
z ?]T-,=′ò]TJ???
z Y SCK,1 3′dμ*?μ =?}?(,8 3′ D
z)/SSμ ?·?SDI M SDO¤ ??
z? 12M13ü
4)VW X%
SPI 4' ] X2=X3ü
表 模式相关控制寄存器
地址名称
/ 注:/位名 初始值
表 模式相关状态 数据寄存器
地址名称
! ! ! ! ! ! ! ! ! SPIRB:SPI \]] FG?? J?±1= òSPISR ]o?SPIRB ]=RBF.RBFIFá1
SPIWB:SPI \]] ?? ù òSPIS ]?ˉ
SPIC:SPI s ]
X4μ¤g¥ ?μ
表 寄存器初始值
名称
初始值
? 0时钟沿选择
1数据在下降沿移出,上升沿移进。数据在高电平期间保持。
1数据在上升沿一处,下降沿移进。数据在低电平期间保持。
? 0 模式使能位
1 模式使能
1 模式禁止
? 0 读溢出位
1 中的数据还未被读出又已完成新数据的接收。在这种情况下, 寄存器
中的数据将丢失。
1未溢出。
注:这仅在从模式下发生。
? 0 输出使能
1开始传输,保持为 直至当前字节传输结束。
1传输结束,下一字节准备传输。
注:该位由软件清 。
表 * 0 波特率选择位
模式波特率
主 +2)
主 +2)
主 +2)
主 +2)
主 +2)
从 使能
从 禁止
主
0 状态寄存器
? 0读缓冲器满中断标志
1接收结束, 满,产生中断(若使能)
1接收未结束, 空
? 0读缓冲器满标志
1接收结束, 满
1接收未结束, 空
? 0 漏极开路控制
1 漏极开路使能
1 漏极开路禁止
? 0 漏极开路控制
1 3漏极开路使能
1 3漏极开路禁止
? 0 中断使能控制
1 中断使能
1 中断禁止
5)SPI YZ"&
SCK?í CESó? '(?+y./SS ef ò+y= 12ü §é ? 13§éU? (/SS?L ò+y
6)SPI[\]1
范例:
;定义
4 11 ;间址寄存器
!11 ;状态寄存器
11 ; 选择寄存器
11 ;端口
11 ; 读缓冲器
! 11 ; 写缓冲器
11 ; 状态寄存器
11 ; 控制寄存器
4 11 ;中断状态寄存器
4 11 ;中断期间累加器保存
4 !11 ;中断期间状态寄存器保存
5定义控制寄存器
4 11 ;端口 控制寄存器
4 11 ;中断控制寄存器
5定义位
11 ; 6 7
5定义引脚
11 ;
5中断子程初始地址 48 0
8 4 9 ;保存
! 4
! !
8 4 !9 ;保存 !
9 ; 置 ,禁止
5如下 位必须按顺序清
9 ; 1
9 ; 1
4 9 ; 1
……;用户程序
! 4 !
8 !9 ;恢复 !
! 4 ;恢复
;中断禁止
: 9 ;模式选择
: " 8
8 9; ; 输入
!
8 9; ;主模式 初始值
8 9
" 8 0
8 9; <<<<<<<
!
8 9; ;从模式 初始值
8 9
;系统初始化
8 9;
!
8 9;
! 4 ;使能 中断
" 4 ;清所有中断标志
9 ; 置 ,禁止
;使能中断
……;用户程序
: 9 ;检测 为 否
:
9 ; 置
……;用户程序
9 ; 清 , 使能
……;用户程序
8 ! 9 ;传送值装入 !
……;用户程序
9 ;启动 功能
……;用户程序
;初始地址
:
1)N
a?]1#TMR1$ 1 8 ?·??]=a uv !" ÷ μSPI+y §
v?·e,]à? TMR1 =? ¥ 78 .0 Y? °=μkì =
TMR1EN .0 ' TMR1
2)RS
TMR1 14 ?P?. L+?
?×j
OSC/4j?ù?·
`a u]j T1CLK1,T1CLK2 aa
uv TMR1,T1CON?? ¥ ? .
PWP jà] q`á ] á ù§
v?·′? q
TMR1ja?]1 ] TMR1 1 ?aPWP4?= ?áμ0 Y SPI+y
° ó? ?ˉμ???·
??]j PWP.TMR14??1??ˉgh TMR1IF JK!?á1
3)VW X%
TMR1 4' ] X6M7ü
表 相关控制寄存器
地址名称
表 相关状态 数据寄存器
地址名称
! ! ! ! ! ! ! ! !
表 分频率
分频率
:
:
:
:
¥ ? 78 2j
z¤g¥
z WDT?ˉ#T?L$
??(¥ = ? }?¥ gh18mS#¢£]2¢??$ ¥ e,= ?E( ?gh j
z¢£]?£¢£?2¢
z PCáμ|1
züE I/O a?μ?ù+y# ?gh$
z WDT.`a u].0
z¤g?=R3,5M6 .R4 2 .0
z CONT ]è,6 #INT JK$H=|áμ1
z IOCE ],0M4M5 á1=,3M6 .0
z R3F M IOCF ],0 .0
;G SLEP S@ ù{|+y1# +y$ ù{|+y?=WDT#T?L$ .0+?£?G -WDT?ˉ#T?L$o??¥ R3 T M P JK ( a¥ ?
èk¢& {|+y1H=EM78P451éE ?{|+y2= .IOCE SLPC ù Y{|+y2= -?×78o?j
) 输入触发,如图 所示。唤醒后单片机执行下条指令。在进入休眠模式 之前,唤醒功能的触发源( * 、 * 、 * )需要进行设置(输入状态,上拉),并使能唤醒。值得注意的是,唤醒后若代码选项寄存器! 为 ,则! 使能。因此,! 的状态在唤醒后可能需要重新设置。
) ! 溢出(若使能)。唤醒时引起复位。
EM78P451E ?4?78 2°±j ( ) 溢出。( ) 外部中断信号。( ) 结束。
( ) 可重装计数器匹配。
R3F =°±JK ]=Y 4c ê?k °±YZ78 IOCF °±^_ ] ìx °±?L?ef ENI ?DISI S@±2 )°±e,?=? S@ ?y0X01 ˉ ù°±Eí" = ? ??R3F ] a°±? ?ˉ°±Eí " *=xy.°±JK ??L°± D?¥°±
5? %&°±=R3F ] 4c °±á RF P R3F .IOCF NO a VW 15=RETI S@ D°± "??L°±
)INT S@#T ?L$-,°±?=? S@ ò?y0X002 ˉ
!
W4'S@T ò
Ta=0 ~70 ,VDD=5V,VSS=0V
Ta=0 ~70 ,VDD=5V,VSS=0V
ó ?ù/?ˉ§é
¥ ??#CLK=#0$$
TCC?ù??#CLK=#0$$
p R.ó?+y§é
SPI!"
#N ? " EMC++!
! !
" "
#
# $
#
#
# $
PWP == 0XF #DEFINE P_START P9.0
# % "
" #
# $ &
#
# '(
#
# $ &
# $
#
$ # !
#
#
#
! #!
" #"
$ #
) &) # !**
#