HCS08. Registros internos de la CPU y Formato de instrucción.
UNIVERSIDAD DE ANTIOQUIA FACULTAD DE INGENIERÍA. Electrónica Digital III Ingo. Eugenio Duue !"re# Octu$re % &el %'()
Bibliografía *i$liogra+,a
-ara la clae Manual Técnico de la familia HCS08
HCS08 Family. Reference Manual. Freescale Semiconductor . C/a-ter C/a-ter C/a-ter C/a-ter C/a-ter C/a-ter C/a-ter
( !eneral information and "loc# diagram. % Pins and connections. 0 Modes of $%eration ) $n&C'i% memory 1 Resets and (nterru%ts. 23 Central Processor Unit )CPU* 4 3 +e,elo%ment Su%%ort
Bibliografía *i$liogra+,a
-ara la clae Manual Técnico de la familia HCS08
HCS08 Family. Reference Manual. Freescale Semiconductor . C/a-ter C/a-ter C/a-ter C/a-ter C/a-ter C/a-ter C/a-ter
( !eneral information and "loc# diagram. % Pins and connections. 0 Modes of $%eration ) $n&C'i% memory 1 Resets and (nterru%ts. 23 Central Processor Unit )CPU* 4 3 +e,elo%ment Su%%ort
A continu continuación ación… …
Intro&ucción a lo 8CU
Fa$ricante &e 8CU
Fa5ilia 6CS'7 &e Freecale
Introducción a los MCUs -ntes
lementos %or %o r se%arado/ -'ora To Todo en uno / -%licacione -%licacioness / !( A9D INT E:t. !% Ca-tura E;ento !0
C!U
!) !<8 !1 SERIAL I% C
8e5oria Microcontrolador
!n
Introducción a los MCUs Circuito
(ntegrado
Se aseme1a a un en su interior com%utador2 %ero CPU o Unidad Central de Proceso con %restaciones "astante reducidas Memoria +is%ositi,os de S
(ncluye
!(
C!U
!)
!%
8CU
!1
!0
8E8ORIA
!n
A continuación…
Intro&ucción a lo 8CU
Fa$ricante &e 8CU
Fa5ilia 6C'7 &e Freecale
Fabricantes de MCUs -ctualmente
se ofrecen muc'as clases de microcontroladores. 3o solo Freecale construye MCUs2 e4isten otras marcas. Cada una tiene caracter5sticas similares Memoria de datos y %rograma. Periféricos de entrada y salida. Programación de alto y "a1o ni,el.
Fabricantes de MCUs M(CR$CH(P
!IC.
AVR. (3T6 7'1(. FRSC-6 6C=S>'72 6C((2 6C=S>(%. H(T-CH( 67. H$6T7 6T7. 3-T($3-6 SM(C$3+UCT$R CO!7. T-S (3STRUM3TS T8S04'. -TM6
Fabricantes de MCUs M(CR$CH(P
!IC.
-lto ni,el de integración Caracter5sticas de altas %restaciones
Filosof5a RISC. Modalidad !i-eline. -r9uitectura 6ar;ar& instrucciones y datos.
Relación de %recio%restaciones e4celente. -%licaciones
(nform:tica2 electrodomésticos2 control2 automati;ación2 e9ui%os de comunicaciones.
Fabricantes de MCUs -TM6
AVR
Familia de 8CU RISC. Caracter5sticas de altas %restaciones.
Filosof5a RISC. -r9uitectura 6ar;ar& instrucciones y datos. 0% registros de 7 $it.
+esarrollado inicialmente %ara ser eficiente en la e1ecución de código C. 3o tiene un Stac? limitado a ni,eles.
Fabricantes de MCUs T-S
(3STRUM3TS C!U RISC de <= "its. +ise>ado %ara alto desem%e>o y consumo de energ5a muy "a1o. Caracter5sticas. -+ de <0<@<= "its. PAM. Com%aradores. US-RT. Controlador de 6C+. $scilador interno.
Fabricantes de MCUs
FRSC-6 Microcontroladores descendientes del %rocesador =800 de Motorola. Familia de 8 Bits. 6C'1 )a no se fa"rica*. 6C'72 6CS'7 @ Fle:i . 6C(( )a no se fa"rica*. Familia de <= Bits. 6C(% )a no se fa"rica*2 6CS(%2 8CS(%. Familias de D? "its. Fle:i Col&Fire V( .
A continuación…
Intro&ucción a lo 8CU
Fa$ricante &e 8CU
Fa5ilia 6CS'7 Freecale 6C'7 &e&eFreecale
Microcontrolador HCS08 6os
MCUs HCS08 est:n com%uestos %or (ntegración
MCUs HCS08 DE FREESCALE
C!U 6CS'7. SCItrans%arente IRQ%ara el usuario2 cada 8E8ORIA Memoria RA8. %eriférico se mane1a B*I A9D . como una memoriaEEE Memoria RO89FLAS6 Internal !eri+"rico. I% C
C!U 6CS'7
*u
tienen la misma CPU C!U'7. S!I CAN 6as diferencias est:n en la memoria y los RELO TI8ER LCD %eriféricos. Todos
MCU. +iagrama de "lo9ues
Bus
+iagrama de "lo9ues ":sico de un %rocesador +iagrama
de "lo9ues ":sico de la CPU Bs9ueda de instrucciones +ecodificador de instrucciones
Cloc# Registros internos -6U
(nterfa; a memoria y S
Bus
Microcontrolador HCS08. egistros internos de la C!U Regitro Acu5ula&or
CPU
HCS0828"its G 0 Total com%ati"ilidad Regitro Ín&ice 636C'1. con 6 -%untador G <= "its con0 < de %ila 8de Stac? !ointer S! instrucciones %ara mani%ularlo. Equivalencia con A7 … < Registro
0
5ndice de (2 $it )H* Conta&or &e !rogra5a !C
0 < Registro H 8 Bits. Parte -lta de H. Regitro Có&igo &e Con&ición CCR Registro 8 Bits. Parte Ba1a de H.
G
0
Microcontrolador HCS08 (% Modos
de direccionamiento. (nstrucciones %ara mo,er datos de memoria a memoria sin usar el acu5ula&or A. (nstrucciones %ara la mani%ulación de datos *CD Binary&Coded +ecimal Modos de "a1o consumo ait y to-.
Microcontroladores Fle"is Microcontroladores
de 8 y D? Bits de alto rendimiento2 %ertenecen a la familia S08 y ColdFire.
Microcontroladores Fle"is Com%ati"ilidad
total entre MCUs de 8 y
D? Bits. Cuando se re9uiere mayor %restación2 se+0&+G Registros de +atos %uede cam"iar el ncleo S'7 → Col&Fire G 0 <=< 8G D< Registro V(. Indice H Registros de +irecciones -0&-=
Registro -cumulador -
6
0
<
8 G Stac# Pointer SP
0 D<
<=< Stac#Pointer SP )-G*.
0
<
Contador de Programa PC
0 D<
<=< Contador de Programa o PC Solo en el =8000 ?@?D Registro de stado CCR < 8G 0
0
<
0 D< Registro Códigos de Condición CCR G
0
0
Microcontroladores 6os
Microcontroladores de la familia HCS08
Protecciones.
(nstrucción no ,:lida. Memoria no im%lementada.
Microcontroladores 6os
Microcontroladores de la familia HCS08
Pin de Reet y !oerOnReet. Memoria FLAS6 Hasta =07"ytes. Pin de Reset acti,o en "a1o Hasta @#"ytes. Memoria RA8
8e5oria FLAS6 !rogra5a
Circuito de P$R %ara reiniciar el MCU al %olari;arlo
8e5oria RA8 RESET 8CU Dato
Microcontrolador HCS08 Frecuencia m:4ima de $u ?@ MH;. M:4ima frecuencia de o%eración de CPU @8MH;. s%acio de memoria de =@7"ytes. (7'' '''' K0000 & KFFFF.
Regitro P:gina Cero.E9S ''AF R-M. ''*' Flas'. RA8 )'2 *@te Configuración. ('AF ('*' Periféricos. Fla/
6ig/ !age Regiter 2 *@te
(71F (72' (1F (2'
(74% *@te (4FF
FFFF
US* Ra5 %12 *@t. Fla/ 1'77 *@te Interru-t ;ector
Microcontroladores
6os Microcontroladores de la familia HCS08 Comunicación serial S!I2 SCI e I%C. T(MRs con In-ut Ca-ture y !<8. Con,ersor -n:logo+igital de 'asta <0 Bits.
JRFNH(!H
-m%litud
' ( ( ' ( C!URelo1 Sistema ( ' o MH; Jarios #H; (
Se>al -n:loga ,entos 4ternos 0J L<aóJ L0 JRFN6$A
3otificación Periódica
( 15 ('(( '((' (5 %1'5 CAA NEGRA %C SCIH S!IH I A9D (''5 TI8ER '.1
Eui-o Código +igital E:terno
Se>al PAM Tiem%o
Microcontroladores
6os Microcontroladores de la familia HCS08 Puertos de Entra&a9Sali&a. !ullU- 'a"ilita"les en algunos %uertos. (nterfa; de tecla&o de 'asta 8 "its. A*C
DEF
G6I
(
%
0
BL
8NO
!QR
)
1!uerto 2
Entra&a
STU
V<
J
4
7
M K
8ENU9ENTER CANCEL
'
' ( ( ' ( ( ' (
C!U B*I
Microcontroladores
Consideraciones so"re el Relo1 6a frecuencia del Bus es la mitad de la Frecuencia de la CPU . F CPU O MH;2 FBUS O ?. MH;. Un ciclo de "us e9ui,ale a <F BUS. Una instrucción %uede re9uerir de ,arios ciclos de Bus. LDA $0 D Ciclos a F BUS O ?.MH;. Tiem%o O Tiem%o e1ecución LDA $0 ! D Q 0.@ µs -lgunos 8CU cuentan con !LL %ara multi%licar la frecuencia de entrada. ue %a%el 1uegan los osciladores e4terno e interno.
A continuación…
8o&elo &e !rogra5ación
Uo &e la Intruccione
For5ato &e Intrucción
Modelo de !rogra#ación. egistros de la C!U. Regitro Acu5ula&or A G
0
Regitro Ín&ice 63 6 <
8 G
0
Stac? !ointer S! 0
<
Conta&or &e !rogra5a !C 0
<
Regitro Có&igo &e Con&ición CCR V ( ( 6 I N J C G 0
Modelo de !rogra#ación Acu5ula&or
&e 7 *it )-*
Registro de %ro%ósito general de 7 $it. -lmacena o-eran&o y reulta&o en o%eraciones lógicas y aritméticas. 6ecturascritura.
*IT4 *IT2 *IT1 *IT) *IT0 *IT% *IT( *IT' RESET3
Microcontrolador HCS08 Frecuencia m:4ima de $u ?@ MH;. M:4ima frecuencia de o%eración de CPU @8MH;. s%acio de memoria de =@7"ytes. (7'' '''' K0000 & KFFFF.
Regitro P:gina Cero.E9S ''AF R-M. ''*' Flas'. RA8 )'2 *@te Configuración. ('AF ('*' Periféricos. Fla/
6ig/ !age Regiter 2 *@te
(71F (72' (1F (2'
(74% *@te (4FF
FFFF
US* Ra5 %12 *@t. Fla/ 1'77 *@te Interru-t ;ector
Modelo de !rogra#ación Regitro
,n&ice &e (2 *it )H*
(nde4ar o direccionar 2) B$@te. Modos de direccionamiento in&e:a&o. Regitro 62 Regitro Parte alta y "a1a. l registro H es lle,ado a cero cuando 'ay un reset. 6 =!ARTE ALTA DE 63> =!ARTE *AA DE 63>
6(1 6() 6(0 6(% 6(( 6(' 6 67 4 2 1 ) 0 % ( ' RESET3
'
'
'
'
'
'
'
'
Modelo de !rogra#ación
Conta&or &e !rogra5a &e (2 $it )PC* Registro de (2 $it 9ue contiene la &irección &e la -ró:i5a intrucción u o-eran&o a er le,&o. +urante la e1ecución normal del %rograma se incre5enta auto5tica5ente a la siguiente %osición consecuti,a de memoria. Controlado tam"ién %or las intruccione &e alto . *(1 *() *(0 *(% *(( *(' * *7 *4 *2 *1 *) *0 *% *( *'
RESET3
Se carga con el ;alor ue /a@a en el ;ector &e Reet FFFEPFFFF
Modelo de !rogra#ación Regitro
a-unta&or &e -ila &e (2 *it )SP*
-%unta a la siguiente %osición dis%oni"le del tac?. Se &ecre5enta des%ués de almacenarse un ,alor en el tac?. Se incre5enta antes de tomar un ,alor del tac?. ''F7
+urante el
''F ''FA reet S! es S! M2 ''F* S! M ''FC S! M ''FD S! M ''FE S! M ''FF
lle,ado a )1 0' 7' )'
K00FF.
(nterru%t Stac# Frame. Ta#en from MCS08M=0 data S'eet Manual. Pag. =8
Modelo de !rogra#ación Autar
el Stac? !ointer =S!>
n el nue,o HCS082 se recomienda iniciali;ar el SP a%untando a la m:s alta dirección R-M en el on& c'i%2 con el o"1eti,o de no usar direcciones de la %rimera %:gina )direccionamiento directo*2 %or %arte del Stac#. !eneralmente a%arecen las dos instrucciones siguientes en la rutina de iniciali;ación de un Reset. ld'4 Ram6ast V< W '4 %oints one %ast R-M t4s W SP )H &<*
Partes de un Programa. +irectrices2 +efiniciones (nclude deri,ati,e&s%ecific definitions (3C6U+ Xderi,ati,e.incX W e4%ort sym"ols. +efines Program Start %oint +F NStartu% -BS3TR NStartu% W +efinition of 6a"els for Constants C(3C$ U 6(M(T U <00 W
W Reser,es s%ace for ,aria"les in Yero Page $R! YNR-MStart Contador< +S.B < W Contador< is a ,aria"le sited in %osition K00B0 Contador? +S.B < ContadorD +S.B < 3umNStudents +S.B < W+efines start address for Program and Constant +ata $R! R$MStart NStartu% 6+H R-MndV< W initiali;e t'e stac# %ointer TS ////////////////.
W W code section
Startu% de un %rograma $R! R$MStart Startu-3 W -%agar Aatc'+$! 6+- K?0 ST- S$PT< W 6le,ar el SP a la ltima %osición de la R-M 6+H R-MndV< TS W Clear some registers and memory %ositions C6R C6R C6RH C6R Contador< C6R Contador? C6R ContadorD M$J K
Cuer%o del Programa. (nterru%t Jector !rogra5 $o&@
!rogra5 $o&@
$R! R$MStart Startu-3 W -%agar Aatc'+$! lda K?0 sta S$PT< W 6le,ar el SP a la ltima %osición de la R-M 6+H R-MndV< TS W 6im%iar Registros C6R C6R C6RH C6R Contador< C6R Contador? C6R ContadorD M$J K
W /// ///. Here BR- HR WQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ WQ (nterru%t Jectors Q WQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
$R! KFFF +C.A NStartu%
W Reset
Modelo de !rogra#ación Regitro
&e có&igo &e con&ición
)CCR*
Registro de 7 $it 9ue contiene la 5cara &e interru-ción y cinco $an&era 9ue indican caracter5sticas del resultado de la ltima instrucción
*4=V> *2=(> *1=(> *)=6> *0=I> *%=N> *(=J> *'=C> RESET3
(
(
(
$!reguntas% Jalores
,:lidos en los registros
- O K?DF H O KFFF SP O K0 PC O K8000 ZPor 9ué los registros PC2 SP y H son de <= "its Si en memoria se re9uiere almacenar una dirección de memoria2 Zcu:ntos Bytes se re9uieren
A continuación…
8o&elo &e !rogra5ación
Uo &e la Intruccione
For5ato &e Intrucción
Uso de las Instrucciones
Instrucción en ensa#blador 6a
mayor5a de las instrucciones mane1an notación INSTRUCCIN 8.D. ADC LDA LSLA ORA STA
6as
K?F K@2 K<0 KFF
-cumulador
instrucciones o%eran directamente so"re un registro %articular o so"re la memoria. M.+ Modo de direccionamiento
()eración de la Instrucción n
la notación2 cada instrucción es%ecifica la o%eración 9ue reali;a ADC Suma )-* con )M* y )C* y lo almacena en -. M locali&ación de #e#oria o un dato absoluto 'direccion. In#ediato * LDA Carga - con el contenido de M. LSLA +es%la;amiento lógico a la i;9. de -. ORA $R ntre )-* y )M*. STA !uarda el contenido de - en Memoria.
()eradores en la Instrucción Contenido del registro o %osición de memoria. ← Cargar [ -3+ entre Bits. \ $R entre Bits. ⊕ $R 4clusi,o entre Bits. × Multi%licación ÷ +i,isión Concatenación V Suma & Resta )n com%lemento a dos* ‹‹ 4tensión de Signo
)*
Códigos de Condición J H 3 Y C
& 0 <
U
O;er+lo2 $%eraciones en Com%lemento a dos. 6al+ Carr@2 -carreo intermedio2 o%eraciones BC+. Negati;e2 (ndicador de nmero negati,o. Jero2 (ndicador de Cero. Carr@9*orro2 -carreo o %réstamo. *it no modificado. *it for;ado a cero. *it for;ado a uno. *it lle,ado a uno o a cero de%endiendo del resultado. *it resultado indefinido.
(tras anotaciones 8o&o &e Direcciona5iento Cada instrucción %uede mane1ar ,arios modos de direccionamiento. O-Co&e Re%resenta el código de m:9uina de cada o%eración con su modo de direccionamiento. O-eran&o $%erandos ace%tados %or la instrucción. Ciclo 3mero de ciclos de "us 9ue la instrucción em%lea %ara e1ecutarse com%letamente.
f "us O f c%u ? ] f "us O MH; ? O ?.MH; Tiem%o de ciclo O < f "us O < ?.MH; O 0.@us Si una instrucción re9uiere @ ciclos2 Ztiem%o de e1ecución
A continuación…
8o&elo &e !rogra5ación
Uo &e la Intruccione
For5ato &e Intrucción
Código de ()eración ()Code C!U dis%one de un con1unto de instrucciones %ara reali;ar di,ersas acciones. Cada intrucción se re%resenta %or una magnitud "inaria . 6 ' 6a
7''% 7''0
7A 7( !rogra5a
Lectura 9 Deco&i+icación
(nstrucción PU6H SP )SPV K000<* W Pull)H*
S! M S! M
' !ila &el 8CU
Código de ()eración.()Code
n la C!US'72 el O-Co&e est: com%uesto %or
$%eración a reali;ar. Modo de +ireccionamiento a em%lear. Tama>o < ó ? Bytes. Modo de +ireccionamiento Stac? !ointer ? Bytes.
l Resto de Modos de +ireccionamiento < Byte.
O-Co&e3 Stac? !ointer
8.D.
O-eración (2 *it
O-Co&e3 El Reto &e 8. D.
8.D.
O-eración 7 *it
Código de ()eración ()Code For5ato
&e Intrucción
Com%uesto %or el O-Co&e V In+o. A&icional (nformación necesaria %ara el Modo de +ireccionamiento em%leado. O-Co&e
In+o. A&icional
(H %H 0 ó ) *@te3 O-Co&e =( ó % *@te> In+o. A&icional =( ó % *@te>
Código de ()eración ()Code $"ser,e Instrucción
la instrucción ADD. M.de D.(nstrucción ADD 4F)H OpCode Adición Formato
Código de Máquina
ADD $()4
D * 4 F)AB )$ )$ 1 (2$ 0 AB45 $@te $%Code -dicionalBB Directo BB50 1 Formato de (nstrucción ADDCB 0'HS! 2 !"tendido CB!00 Formato de (nstrucción ADD K)1 EE * 0' B (%$ )$0 7$ 0 $@te Inde"ado B A * )1 !B )$ )$ 1 7$ % $@te $%Code Inde"ado o%%set & 'its -dicional !B45 $%Code -dicional Inde"ado o%%set *+ 'its DB DB()4 2
ADD $,0-
-tac/ointer & 'its )!!B Formatoo%%set de (nstrucción K1' ADD
ADD $A4(B-
-tac/ointer o%%set * *+ *'its
ADD #$45 ADD $50 ADD $!00 ADD ADD $45
Inmediato
1
)!!B,0
1')!DB)$ )$ 2 7$ %)!DBA4(B $@te $%Code -dicional
$!reguntas% ZCu:l
es el modo de direccionamiento donde el $%Code es de ? "ytes Zl $%Code %uede tener el mismo tama>o del Formato de (nstrucción ZPor 9ué ZUn formato de instrucción de D "ytes re9uiere de cu:ntos accesos a memoria %ara 9ue la CPU la lea com%letamente
*+ercicio
Instrucción
Modo Direccionamiento
ADD #$45 ADD 222222
Directo 3A's. Corto
BB
<
BB50
CB Inde"ado sin o%%set
ADD $45 ADD 222222
Código de Máquina
AB
ADD $!00 ADD 222222
OpCode
Btes adiciona 1es
B
0
!B
?
Inde"ado con o%%set de *+'its
ADD $,0-
)!!B
ADD $A4(B2222
)!DB
DB()4
Bibliografía *i$liogra+,a
-ara la clae Manual de usuario de la familia HCS08
HCS08 Family. Reference Manual .Freescale Semiconductor . C'a%ter < !eneral information and "loc# diagram. C'a%ter ? Pins and connections. C'a%ter D Modes of o%eration.
C,a)ter
- (n /c,i) #e#or.
C,a)ter
1 esets and Interru)ts.
C,a)ter
2 Central )rocessor Unit 'C!U3
""Addressin# odes
!uertos de *4S Transferencia
de +atos
+atos. Paralela Uso de ,arios conductores. Serial Uso de un solo conductor.
!uerto Entra&a
' ( ( ' ( ( ' (
('(( '(('
C!U
Co5unicación Serial
!uertos de *4S Cada 8CU cuenta con ,arios %uertos de E9S. Un -uerto es un con1unto de l5neas de entra&a9ali&a tra"a1ando en -aralelo. 3mero m:4imo de l5neas %or %uerto 7 l nom"re de los %uertos ,iene dado %or !T:D !TAD2 !T*D2 !TCD2 !TDD2 !TEDH!TFDH!TGD -lgunas l5neas de cada %uerto son usados %or otros módulos B*I2 SCI2 TI8ER2 etc.
!uertos de *4S l,nea %uede ser con+igura&a in&e-en&iente5ente como Entra&a9Sali&a. Se %uede cam"iar una l,nea de Entra&a a Sali&a y ,ice,ersa durante la eecución del -rogra5a. -lgunos -uerto cuentan en sus res%ecti,as l,nea con !ullU- /a$ilita$le )sólo entra&a*. Cada
!uertos de *4S Jeamos con+igura &irección
Ecritura -uerto Con+igura !ullU-
el P(3 PT-+D del M=0 'W (W
!TADD0
!in E9S
'W (W 'W (W (W 'W
'W (W !TAD0 (W 'W (W 'W VDD
'W (W
!TA!E0 (W PT-D 'W Lectura -uerto
'W (W (W 'W
'W (W
(W 'W
(W 'W
'W (W
Antes de Co#en&ar
PTB+ O K000?2 PTB++ O K000D2 PTBP O K<8@@
8OV K002PTB+ 8OV K0F2PTB++ 8OV KF02PTBP 8OV KFD2PTB+ *CLR 02PTB+ *SET ?2PTB+ LDA PTB+ LDA PTB+ 8OV KFF2PTB+ W
A '( ( '( ( ' ( ( ' 8 C U 8 2
'
PTB+G PTB+= PTB+ PTB+@ PTB+D PTB+? PTB+< PTB+0
, 0, , , 0, ,
+ 3 ! + 3 !
A continuación… 8o&o &e Direcciona5iento Stac? !ointer 8o&o &e Direcciona5iento Relati;o Intruccione &e Control &e !rogra5a
8. D. 8e5oria a 8e5oria =)>
8o&o &e $ao conu5o
M. 5. Stac6 !ointer X!ara
u"K<0 e→e5-lea la -ilaY )SP* V K@
→ )-* KD0 Pasar argumentos aV su"rutinas/ K< → )SP* K K@8 → )* $"1eti,o de ''F7 !uardar el ,alor del los PC/ Se o"tienen desde M.+. Stac# Pointer ''F los registros tem%oral/ -lmacenar información S! M ''FA
com%ati"ilidad con 'a la 2 SePor l%re%aran los ,alores a-unta&or &e -ila (' Se e1ecuta la instrucción Por Finalmente fuera -ntes de%uede de se laelsalir su"rutina2 retorna de la de se laa ZCómo se acceder familia 2 arranca 6C'1 S! n la su"rutina se e1ecuta ,uelto a la dirección %ara ser donde usados (1H )7 @ 0' 2 la la dirección de la *SR recu%era su"rutina reser,a usando 'ec'a la su"rutina se de"e recu%erar los ,alores K<02 K<2 KD0 el ,alor K00FF. ly S! las instrucción !S66 encon la comen;ó como eraase de %asan u$rutina O)dos siguiente instrucción *SR en else Stac# instrucción usando K? RTS AIS ,alor de Hmodificar con !UL6 K@8. ,alor %uede con a la %ila es%erarseEEE PSH-2 PSH* es 7')' TS.
A 0' )7 S! ''F* ''FD ''FC ''FA ''FE ''FF
S! M ''F* S! M ''FC S! M ''FD S! M ''FE S! M ''FF
6 7' )' (' (1 8e5oria 7 *it
M. 5. Stac6 !ointer dirección "ase est: en el registro S!. Similar al modo de direccionamiento in&e:a&o. Con este registro se mane1an ? M.+. 6a
Con o++et de 8 "its. Con o++et de <= "its.
este caso2 el O-Co&e es siem%re de ? "ytes.
n
M. 5. Stac6 !ointer Stac#
Pointer con offset de 8 "its.
+irección fecti,a =S!> V $ffset de 8 "its. Formato de (nstrucción O-Co&e V $ffset 8 "its.
Stac#
Pointer con offset de <= "its.
+irección fecti,a =S!> V $ffset de <= "its. Formato de (nstrucción O-Co&e V $ffset <= "its.
M. 5. Stac6 !ointer $ffset
8 Bits Intrucción O++72S! O-Co&e
O++et 7 *it
0 *@te3 O-Co&e =% *@te> In+o. A&icional =( *@te> -m"as2 M.+. Stac# Pointer con $ffset 8 "its
$ffset
O-Co&e O++et (2 *it 2S! <= Bits Intrucción O++(2
M.+.=% Stac# Pointer ) *@te3 O-Co&e =% *@te> In+o. A&icional *@te> M. +. Stac#Pointer con $ffset <= "its y M. +. Relati,o
M. 5. Stac6 !ointer S.
P. )$ff8* ADC %'HS! H *IT 2'HS!. - o M2 tienen el)los* "its test.
- 6a continuación Unidad O %*@te de se Control . For5ato %rocede toma aIntrucción decodificar de memoria Olala instrucción. siguiente . In+o. O-Co&e 0*@te ZPregunta instrucción Tama>o O y 2' la carga ] Jerificar en el y Registro o%erando de . In+o. (nstrucción. en '(2' . A&icional O-Co&e For5ato A&icional 71'% 71'( 71''
!C 71'' UNIDAD DE CONTROL RI RIE P E1
71'' 71'( 71'% 71'0
E E1 2' D0 2' E1 E
Intrucción *IT
S! '(''
. t i * 7 a i r o 5 e 8
M. 5. Stac6 !ointer S.
P. )$ff<=* ADC %'''HS!H SU* 2'''HS!.
- 6a continuación Unidad O %*@te de se Control . For5ato %rocede toma aIntrucción decodificar de memoria Olala instrucción. siguiente . In+o. O-Co&e )*@te ZPregunta instrucción Tama>o y Ola carga ] en-lmacenar el y Registro )-* de . In+o. en (nstrucción. . A&icional '%(' O-Co&e For5ato '%0' A&icional ''' ''% ''( ''0
!C ''' UNIDAD DE CONTROL RI RIE P D4
''' ''( ''% ''0
E D4 '% (' D4 (' E '%
Intrucción STA
S! ''%'
. t i * 7 a i r o 5 e 8
A continuación… 8o&o &e Direcciona5iento Stac? !ointer 8o&o &e Direcciona5iento Relati;o Intruccione &e Control &e !rogra5a
8. D. 8e5oria a 8e5oria =)>
8o&o &e $ao conu5o
M. 5. elati7o Usado
con instrucciones de salto relati,o. Para ,ol,er ac:2 ZCu:nto se le de"e Se almacena el O-Co&e y un ;alor restar al PC ZPor 9ué de 8 "itsF- con signo )&8 a In+o. A&icional =( *@te> ZPor 9ué des%la;amiento F
M. 5. elati7o Relati,o
*GT l$H *6I l$H *LE l$H *RA l$H *EQ l$ .
- 6a continuación Unidad O (*@te de se Control . For5ato %rocede toma aIntrucción decodificar de memoria Olala instrucción. siguiente . In+o. O-Co&e %*@te ZPregunta instrucción Tama>o O y la carga ] Saltar en el y Registro a la dirección de . In+o. (nstrucción. . A&icional 2A O-Co&e For5ato 712C A&icional 71'( 71''
!C 71'' UNIDAD DE CONTROL RI RIAD
71'' 71'( 71'% 71'0
AD 2A CC 2' AD 2A
Intrucción *SR
. t i * 7 a i r o 5 e 8
A continuación… 8o&o &e Direcciona5iento Stac? !ointer 8o&o &e Direcciona5iento Relati;o Intruccione &e Control &e !rogra5a
8. D. 8e5oria a 8e5oria =)>
8o&o &e $ao conu5o
Control de !rogra#a 4isten
unas intruccione )Control de Programa* en los %rocesadores 9ue %ermiten cam"iar el +luo &e eecución en el %rograma condicionales2 incondicionales y su"rutinas.
!rogra5a E-eran&o or&en Reci$ir &ato
3o
Vali&ar Dato Si
!rocear
Control de !rogra#a Cada
Salto a otra -arte &el -rogra5a salto es%ecifica la dirección donde el flu1o del %rograma de"e continuar en una de dos formas. %'(' %''' !C 1''' Salto Relati,o. Salto -"soluto.
Dirección De-la#a5iento Salto instrucción no dice a 9ue A$oluta 1''' (' dirección de memoria 'ay 9ue saltar2 Otra Intrucción &el Enlo lo 6C'73 *cc *SR En 6C'73 8!H SR Otra Intrucción &elo 6C'7 6C'7 Salto relati,o alde sim%lemente entrega un ,alor constante Salto a"soluto PC Intrucción 6a Relati;o
8 "its 9ue2 sumado al !C2 da la dirección
(nstrucciones de de salto donde(nstrucción 'ay 9ue saltar. salto condicional incondicional.
(nstrucción de (nstrucción de salto a su"rutina salto a su"rutina 6a instrucción entrega la dirección a"soluta adonde se Salto A$oluto e incondicional. de"e saltar.
Control de !rogra#a Control
de %ro#raa
Con&icionale ,alan condición2 si es ,erdadera se salta a una instrucción dada %or la E.A.2 en caso contrario2 se continua con la sgte. (nstrucción. Se e1ecutan des%ués de C8!2 C!62 C!2 S*C9SU*. Incon&icionale 3o e,alan condición2 sim%lemente 'acen el salto %edido a la E.A. dada. Su$rutina Saltan a la E.A. dada. Su"rutina es una %orción de código 9ue reali;a una tarea es%ec5fica. Se retorna con RTS.
Control de !rogra#a Condicional Relativo *::. . *an&era &elin regitro . NZ5ero ignoCCR
Salto
` *CC y ` ` ` `
si Cgrande_. O 0 ó C O <. *6I *CS Salto Salta si ^Mas y *NE Salto si J Ogrande < )(gual*o óigual_. *EQ J O 0 )3o igual*. *6S Salto si ^Mas *6CC y *6CS Salta si 6 O 0 ó 6 O <. *LO Salto si ^Menor_. *8C y *8S Salta si I O 0 ó I O <. *LS Salto si ^Menor o igual_. *8I y *!L Salta si N O < )3egati,o* ó N O 0 )Positi,o*.
NZ5ero con igno. . Otra
*GE*IL Salto igual a_. Saltasisi^Mayor ^IRQ O 9ue <_ ó ^oIRQ O 0_. *GT Salto si ^Mayor 9ue_. *RSET y *RCLR Salta si el "it n de )8* O < ó 0. ZFormato (nstrucción *LE Salto de si ^Menor 9uedeoestas igualinstrucciones a_. *LT Salto si ^Menor 9ue_.
` *I6 y `
Control de !rogra#a &ncondicional *RA @ 8!. BR- Salto relati,o. MP Salto a"soluto.
Salto
*RA
Carga en el !C el ,alor )!C* V
&e-. 8! Carga en el !C la dirección a$oluta.
Control de !rogra#a Salto
a Su'rutina *SR )Rel* y SR )-"s*.
*SR -lmacena en la -ila el ,alor del !C )Sgte. (nst.*. Carga en el !C el ,alor )!C* V &e-la#a5iento. Se retorna con la instrucción RTS. SR -lmacena en la -ila el ,alor del !C )Sgte. (nst.*. Carga en el !C la dirección a$oluta. Se retorna con la instrucción RTS.
A continuación… 8o&o &e Direcciona5iento Stac? !ointer 8o&o &e Direcciona5iento Relati;o Intruccione &e Control &e !rogra5a
8. D. 8e5oria a 8e5oria =)>
8o&o &e $ao conu5o
M.+. Memoria Memoria M.+
es%ecial. J:lido en P:gina cero
Cómo lle,ar K< a la dirección K?0 $%ción <. 6+- K< W ? "ytes2 ? ciclos de relo1 ST- K?0 W ? "ytes2 D ciclos de relo1. Totales @ "ytes de memoria 2 ciclos de relo1 . $%ción ? Usar M$J con M.+ (nmed. a +irecto
M$J K<2 K?0 W D Bytes2 @ ciclos de relo1. $%ción ? 2 la m:s recomenda"le.
M.+. Memoria Memoria M.+
es%ecial. J:lido en P:gina cero
Cómo lle,ar l contenido de la dirección K@0 a la dirección K80 $%ción <. 6+- K@0 W ? "ytes2 D ciclos de relo1 ST- K80 W ? "ytes2 D ciclos de relo1. Totales @ "ytes de memoria 2 = ciclos de relo1. $%ción ? Usar M$J con M.+ +irecto a +irecto
M$J K@02 K80 W D Bytes2 ciclos de relo1. $%ción ? 2 la m:s recomenda"le.
M.+. Memoria a Memoria $tros
M.+ es%eciales. J:lido en P:gina
cero M.+. (nde4ado a +irecto2 con %os& incremento. M$J 2V2 K@0 W ? "ytes2 ciclos de relo1. M.+. +irecto a (nde4ado con %os&incremento M$J K02 V W ? "ytes2 ciclos de relo1.
A continu continuación… ación… 8o&o &e Direcciona5iento Stac? !ointer 8o&o &e Direcciona5iento Relati;o Intruccione &e Control &e !rogra5a
8. D. 8e5oria a 8e5oria =)> 8o&o &e $ao conu5o
Modos de ba+o consu#o donde la C!U %uede a'orrar -m%litud energ5a. J Se a%lica cuando el tiem%o entre e;ento es gran&e.
relo de la C!U es desacti,ado. Tiem%o 6os dem:s -eri+"rico o%eran normalmente y %ueden des%ertar laMCU C!U a tra,és de una CPU interru-ción -+C . Procesando/ A-(T Se utili;a la instrucción
JRFN6$Al
Modos de ba+o consu#o STO!
l relo de la C!U es desacti,ado. l relo del $u tam"ién. 6os %eriféricos 9ue de%enden del relo1 no funcionan ADC2 SCI2 S!I2 I%C2 TI8ER. Solo los %eriféricos 9ue utili;an interru-cione e:terna %ueden des%ertar la C!U IRQ y B*I. n algunos el T*8. Se utili;a la instrucción STO!.
Multi&%ur%ose cloc# gen. Tema %osterior. 4ternal $scillator
ERCLBEN
MC!RC67
IRCLBEN
Cloc# monitor
(nternal reference cloc#
IREFS
MC!(RC67
DCO3 ('%) ;ece la +recuencia &e IREFSTEN entra&a
CLBS
*DIV
[%n n O 0&D
MC!$UT
!LLS
TRI8
[%n n O 0&G
Factor &e FLL 5ulti-licación con+igura$le
6oc# detector
MC!FFC67 [%
RDIV
!LL
MC!6C67
Bouncing time <0&0ms. (t de%ends 9uality of t'e sbitc'