Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Bibliografa
DATASHEET. www.atmel.com
INFORMACIN ADICIONAL
Transparencias, Documentancin Electrnica,
tutoriales HTML en:
Enlaces a
http://www.dte.us.es/tec_inf/itig/microele/INDEX.HTM
La CPU ejecuta y busca las instrucciones depositadas en memoria ROM. Recibe las
seales de reloj y sincronizacin necesarias de la unidad de reloj y las peticiones de
interrupcin.
Memoria
Memoria
Perifricos
Todas las instrucciones que operan con registros, acceden al conjunto del banco, a
excepcin de lass instrucciones que usan datos inmediatos ( SBCI, SUBI, CPI,
ANDI, ORI y LDI ) que slo acceden a la segunda mitad de los registros (R16..R31).
Existen instrucciones que pueden acceder a los registros del banco especificando la
direccin absoluta que stos ocupan en el espacio de direccionamiento.
Los ltimos 6 registros del banco, r26-r31, pueden tener funciones alternativas como
apoyo a los modos de direccionamiento y, en ese caso, se agrupan por pares para
constituir los registros X,Y,Z de 16 bits cada uno.
Directo
Indirecto
Indirecto con predecremento
Indirecto con postincremento
Indirecto con desplazamiento
Inmediato
Ejemplo:
COM R4
1001010ddddd0000
Aqu ddddd=00100
10
Ejemplo:
MOV R2,R4 ; Copia el contenido de R4 en R2
001011rdddddrrrr
Aqu rrrrr=00100 y ddddd=00010.
MODO DE REGISTRO E/S DIRECTO
En este caso, la instruccin contiene la direccin de 6 bits del registro de E/S. N es el
registro que acta como fuente o destino de la informacin
11
Ejemplos:
IN R14,34
OUT 34,r14
Ejemplos:
LDS
r23,$d0
STS
$12,r1
Ejemplo:
13
Ejemplos:
14
Ejemplos:
LD r15,-X
ST -Y,r1
Ejemplos:
LD
15
Ejemplo:
.cseg
tabla:
.dw 0x00ff,0x1020
ldi
zlow,low(2*tabla)
ldi
zhigh,high(2*tabla)
LPM ;esto carga en r0 el valor 0xff de la tabla
ADIW Z,1
LPM ;esto carga en r0 el valor 0x00 de la tabla
ADIW Z,1
LPM ;esto carga en r0 el valor 0x20 de la tabla
ADIW Z,1
LPM ;esto carga en r0 el valor 0x10 de la tabla
Memoria de Programa
Direccin
0
.
tabla
tabla+1
.
Contenido
??
??
..
..
00
FF
10
20
..
..
16
Ejemplo:
RJMP
17
Un RESET inicializan los registros de E/S a sus valores por defecto, y se inicia la
ejecucin del programa a partir de la direccin $000 de memoria.
La estructura de inicializacin viene esquematizada en la siguiente figura
18
19
Existen otros vectores o posiciones de memoria de programa que son el destino del
microcontrolador cuando se genera una interrupcin.
Vector n
1
2
3
4
5
6
7
8
9
10
11
Direccin de
programa
$000
$001
$002
$003
$004
$005
$006
$007
$008
$009
$00A
Origen
Definicin de interrupcin
RESET
INT0
INT1
TIMER1, CAPT1
TIMER1, COMP1
TIMER1, OVF1
TIMER0,OVF0
UART,RX
UART,UDRE
UART,TX
ANA_COMP
Cuando se inicia una interrupcin el bit I del registro de estado SREG se pone a cero
(inhabilita otras interrupciones) y la instruccin RETI restaura el valor de I.
$000
$001
$002
$003
$004
$005
$006
$007
$008
$009
$00A
rjmp RESET
rjmp EXT_INT0
rjmp EXT_INT1
rjmp TIM_CAPT1
rjmp TIM_COMP1
rjmp TIM_OVF1
rjmp TIM_OVF0
rjmp UART_RX
rjmp UART_UDRE
rjmp UART_7X
rjmp ANA_COMP
; Reset Handler
; IRQ0 Handler
; IRQ1 Handler
; Timer1 capture Handler
; Timer1 compare Handler
; Timer1 overflow Handler
; Timer0 overflow Handler
; UART RX complete Handler
; UART data register empty Handler
; UART TX complete Handler
; Analog Comparator Handler
DIRECCIN
NOMBRE
$3F($5F)
$3E($5E)
$3D($5D)
$3C($5C)
$3B($5B)
$3A($5A)
$39($59)
$38($58)
$37($57)
$36($56)
$35($55)
$34($54)
$33($53)
$32($52)
$31($51)
$30($50)
$2F($4F)
$2E($4E)
$2D($4D)
$2C($4C)
$2B($4B)
$2A($4A)
$29($49)
$28($48)
$27($47)
$26($46)
$25($45)
$24($44)
$23($43)
$22($42)
$21($41)
$20($40)
$1F($4F)
$1E($3E)
$1D($3D)
$1C($3C)
$1B($3B)
$1A($3A)
$19($39)
$18($38)
$17($37)
$16($36)
$15($35)
$14($34)
$13($33)
$12($32)
$11($31)
$10($30)
$0F($4F)
$0E($2E)
$0D($2D)
$0C($2C)
$0B($2B)
$0A($2A)
$09($29)
$08($28)
...
$00($20)
SREG
Reservado
SPL
Reservado
GIMSK
GIFR
TIMSK
TIFR
Reservado
Reservado
MCUCR
Reservado
TCCR0
TCONT0
Reservado
Reservado
TCCR1A
TCCR1B
TCNT1H
TCNT1L
CCR1AH
CCR1AL
Reservado
Reservado
Reservado
Reservado
ICR1H
ICR1L
Reservado
Reservado
WDTCR
Reservado
Reservado
EEAR
EEDR
EECR
Reservado
Reservado
Reservado
PORTB
DDRB
PINB
Reservado
Reservado
Reservado
PORTD
DDRD
PIND
Reservado
Reservado
Reservado
UDR
USR
UCR
UBRR
ACSR
Reservado
Reservado
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
SP7
SP6
SP5
SP4
SP3
SP2
SP1
SP0
INT 1
INTF 1
TOIE 1
TOV1
INT 0
INTF 0
OCIE1A
OCF1A
TICIE 1
ICF 1
TOIE 0
TOV 0
SE
SM
ISC11
ISC10
ISC01
ISC00
CS02
CS01
CS00
COM1A1
ICNC1
COM1A0
ICES1
PWM11
CS11
PWM10
CS10
TIMER/COUNTER 0 ( 8 bit)
CTC1
CS12
TIMER/COUNTER 1 - Counter Register High byte
TIMER/COUNTER 1 - Counter Register Low byte
TIMER/COUNTER 1 - Compare Register High byte
TIMER/COUNTER 1 - Compare Register Low byte
WDTOE
WDP2
WDP1
WDP0
WDP1
WDP0
WDE
PORTB7
DDRB7
PINB7
PORTB6
DDRB6
PINB6
PORTB5
DDRB5
PINB5
PORTB4
DDRB5
PINB4
PORTB3
DDRB3
PINB3
PORTB2
DDRB2
PINB2
PORTB1
DDRB1
PINB1
PORTB0
DDRB0
PINB0
PORTD6
DDRD6
PIND6
PORTD5
DDRD5
PIND5
PORTD4
DDRD4
PIND4
PORTD3
DDRD3
PIND3
PORTD2
DDRD2
PIND2
PORTD
DDRD1
PIND1
PORTD0
DDRD0
PIND0
RXC
RXCIE
TXC
TXCIE
UDRE
UDRIE
CHR9
RXB8
TXB8
ACD
ACO
ACIC
ACIS1
ACIS0
21
22
23
Rd,Rr
Rd,k
LDS
Rd,k
LD
Rd,X
Rd,X+
Rd,-X
Rd,Y
Rd,Y+
Rd,-Y
Rd,Z
Rd,Z+
Rd,-Z
Rd,Y+q
Rd,Z+q
LDD
STS
K, Rr
ST
X,Rr
X+,Rr
-X,Rr
Y,Rr
Y+,Rr
-Y,Rr
Z,Rr
Z+,Rr
-Z,Rr
Y+q,Rr
Z+q,Rr
STD
LPM
IN
Rd,P
OUT
P,Rr
PUSH
POP
Rr
Rd
Copiar registro
Cargar dato
inmediato
Cargar dato desde la
memoria
Carga el registro con
un dato indirecto
d,r[0,31]
d[16,31]
k[0,255]
d[0,31]
k<64K
d[0,31]
d[0,31]
q[0,63]
Almacenar registro
en memoria con
indirecto con
desplazamiento
Carga memoria de
programa
Entrada del puerto
r[0,31]
Salida hacia el
puerto
Empujar en pila
Sacar de pila
r[0,31]
K[0,64k]
r[0,31]
d[0,31]
P[0,63]
r[0,31]
P[0,63]
r[0,31]
d[0,31]
RdRr
Rd k
Ninguno
Ninguno
Rd (k)
Ninguno
Rd (X)
Rd (X);XX+1
XX-1-,Rd (X)
Rd (Y)
Rd (Y);YY+1
YY-1;Rd (Y)
Rd (Z)
Rd (Z);ZZ+1
ZZ-1;Rd (Z)
Rd (Y+q)
Rd (Z+q)
Ninguno
(K) Rr
Ninguno
(X) Rr
(X) Rr;XX+1
XX-1-, (X)Rr
(Y)Rr
(Y) Rr;YY+1
YY-1; (Y) Rr
(Z) Rr
(Z)Rr;ZZ+1
ZZ-1; (Z)Rr
(Y+q)Rr
(Z+q) Rr
Ninguno
R0 (Z)
Ninguno
RdP
Ninguno
P Rr
Ninguno
STACKRr
Rd STACK
Ninguno
Ninguno
Ninguno
Ninguno
24
Rd,Rr
Rd,Rr
Rd,K
SUB
SUBI
Rd,Rr
Rd,K
SBC
SBCI
Rd,Rr
Rd,K
SBIW
Rd,K
AND
ANDI
Rd,Rr
Rd,K
OR
ORI
Rd,Rr
Rd,K
EOR
COM
NEG
INC
DEC
CLR
SER
CP
CPC
CPI
Rd,Rr
Rd
Rd
Rd
Rd
Rd
Rd
Rd,Rr
Rd,Rr
Rd,K
d,r[0,31]
d,r[0,31]
d[24,26,28,30]
K[0,63]
d,r[0,31]
d[16,31]
K[0,255]
d,r[0,31]
d[16,31]
K[0,255]
d[24,26,28,30]
K[0,63]
d,r[0,31]
d[16,31]
K[0,255]
d,r[0,31]
d[16,31]
K[0,255]
d,r[0,31]
d,r[0,31]
d,r[0,31]
d,r[0,31]
d,r[0,31]
d,r[0,31]
d,r[0,31]
d,r[0,31]
d,r[0,31]
d[16,31]
K[0,255]
Rd Rd+Rr
Rd Rd+Rr+C
Rd+1:Rd Rd+1:Rd
+K
RdRd-Rr
RdRd-K
Z,N,V,C,H
Z,N,V,C,H
Z,N,V,C
RdRd-Rr-C
RdRd-K-C
Z,N,V,C,H
Z,N,V,C,H
Z,N,V,C,H
Z,N,V,C,H
Z,N,V
Z,N,V
RdRdK
Rd$FF-Rd
Rd$00-Rd
RdRd+1
RdRd-1
Rd0
Rd$FF
Rd-Rr
Rd-Rr-C
Rd-K
Z,N,V,C
Z,N,V,C
Z,N,V,C
Z,N,V
Z,N,V
Z,N,V
Z,N,V
Z,N,V,C,H
Z,N,V,C,H
Z,N,V,C,H
25
Instrucciones de salto
RJMP
RCALL
Etiqueta
Etiqueta
RET
RETI
CPSE
Rd,Rr
SBRC
Rr,b
SBRS
Rr,b
SBIC
P,b
SBIS
P,b
BRBS
s, Etiqueta
BRBC
s, Etiqueta
BREQ
Etiqueta
Salto relativo
Llamada a subrutina
relativa
Regreso de subrutina
Regreso de interrup.
Compara, esquiva si
iguales
Esquiva si el bit est a
cero
Esquiva si el bit est a
uno
Esquiva si el bit del
puerto est a 0
Esquiva si el bit del
puerto est a1
Salta si el bit s del
status est a 1
Salta si el bit s del
status est a 0
Salta si iguales
BRNE
Etiqueta
Salta si distintos
Etiqueta [-64,63]
BRCS
Etiqueta
Salta si C est a 1
Etiqueta [-64,63]
BRCC
Etiqueta
Salta si Cest a 0
Etiqueta [-64,63]
BRSH
Etiqueta
Etiqueta [-64,63]
BRLO
Etiqueta
Salta si menor
Etiqueta [-64,63]
BRMI
Etiqueta
Salta si negativo
Etiqueta [-64,63]
BRPL
Etiqueta
Salta si positivo
Etiqueta [-64,63]
BRHS
Etiqueta
Salta si H est a 1
Etiqueta [-64,63]
BRHC
Etiqueta
Salta si H est a 0
Etiqueta [-64,63]
BRTS
Etiqueta
Salta si T est a 1
Etiqueta [-64,63]
BRTC
Etiqueta
Salta si T est a 0
Etiqueta [-64,63]
BRVS
Etiqueta
Salta si V est a 1
Etiqueta [-64,63]
BRVC
Etiqueta
Salta si V est a 0
Etiqueta [-64,63]
BRIE
Etiqueta
Salta si I est a 1
Etiqueta [-64,63]
BRID
Etiqueta
Salta si I est a 0
Etiqueta [-64,63]
BRGE
Etiqueta
BRLT
Etiqueta
d,r[0,31]
r[0,31]
b[0,7]
r[0,31]
b[0,7]
P[0,7]
b[0,7]
P[0,63]
b[0,7]
s[0,7]
Etiqueta [-64,63]
s[0,7]
Etiqueta [-64,63]
Etiqueta [-64,63]
PCPC+ Etiqueta +1
PCPC+ Etiqueta +1
Ninguno
Ninguno
PC STACK
PC STACK
Si Rd=Rr PC PC+2
( 3)
Si (Rd(b)=0)
PC PC+2 ( 3)
Si (Rd(b)=1)
PC PC+2 ( 3)
Si (I/o(P,b)=0)
PC PC+2 ( 3)
Si (I/O(P,b)=1)
PC PC+2 ( 3)
Si (SREG(s)=1)
PC PC+ Etiqueta +1
Si (SREG(s)=0)
PC PC+ Etiqueta +1
Si (Z=1)
PC PC+ Etiqueta +1
Si (Z=0)
PC PC+ Etiqueta +1
Si (C=1)
PC PC+ Etiqueta +1
Si (C=0)
PC PC+ Etiqueta +1
Si (C=1)
PC PC+ Etiqueta +1
Si (C=0)
PC PC+ Etiqueta +1
Si (N=1)
PC PC+ Etiqueta +1
Si (N=0)
PC PC+ Etiqueta +1
Si (H=1)
PC PC+ Etiqueta +1
Si (H=0)
PC PC+ Etiqueta +1
Si (T=1)
PC PC+ Etiqueta +1
Si (T=0)
PC PC+ Etiqueta +1
Si (V=1)
PC PC+ Etiqueta +1
Si (V=0)
PC PC+ Etiqueta +1
Si (I=1)
PC PC+ Etiqueta +1
Si (I=0)
PC PC+ Etiqueta +1
Si (NV=0)
PC PC+ Etiqueta +1
Si (NV=1)
PC PC+ Etiqueta +1
Ninguno
I
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
Ninguno
26
Resumen de los saltos condicionales y de cmo estos afectan a los flags del registro de
estado.
Test (CP Rd,Rr)
Rd Rr
Rd < Rr
Rd = Rr
Rd Rr
Rd Rr
Rd < Rr
Carry
Sin carry
Negativo
Positivo
Overflow
Sin overflow
Cero
No cero
Booleana
Z + (N V) = 0
(N V) = 1
Z=1
Z= 0
C=0
C=1
C=1
C=0
N=1
N=0
V=1
V=0
Z=1
Z=0
Mnemonico
BRGE
BRLT
BREQ
BRNE
BRCC/BRSH
BRCS/BRLO
BRCS
BRCC
BRMI
BRPL
BRVS
BRVC
BREQ
BRNE
Comentario
Signo
Signo
Signo/Sin signo
Signo/Sin signo
Sin signo
Sin signo
Simple
Simple
Simple
Simple
Simple
Simple
Simple
Simple
Miscelnea
LSL
Rd
LSR
Rd
ROL
Rd
ROR
Rd
ASR
Rd
SWAP
BSET
Rd
S
BCLR
SBI
P,b
CBI
P,b
NOP
SLEEP
WDR
Desplazamiento a la
izquierda
Desplazamiento a la
derecha
Rotacin a la
izquierda
Rotacin a la derecha
d[0,31]
Z,C,N,V,H
d[0,31]
s[0,7]
Rd(n+1)Rd(n),
Rd(0)0, C Rd(7)
Rd(n)Rd(n+1),
Rd(7)0, C Rd(0)
Rd(n+1)Rd(n),
Rd(0)C, C Rd(7)
Rd(n)Rd(n+1),
Rd(7)C, C Rd(0)
Rd(n)Rd(n+1),
Rd(7)Rd(7), C Rd(0)
Rd(3..0)Rd(7.4)
SREG(s)1
Desplazamiento
aritmtico a la derecha
Intercambia nibbles
Poner a 1 el bit s del
registro de estado
Poner a 0 el bit s del
registro de estado
Poner a 1 el bit b del
puerto IO
Poner a 0 el bit b del
puerto IO
Sin operacin
Dormir
Borrado del perro
guardin
d[0,31]
S[0,7]
SREG(s)0
SREG(s)
b[0,7]
P[0,31]
b[0,7] P
[0,31]
IO(P,b)1
Ninguno
IO(P,b)0
Ninguno
d[0,31]
d[0,31]
d[0,31]
Z,C,N,V
Z,C,N,V,H
Z,C,N,V,
Z,C,N,V,
Ninguno
SREG(s)
Ninguno
Ninguno
Ninguno
27
INTF1: Cuando un evento en el pin INT1 dispara una peticin de interrupcin, INTF1
se pone a 1. Si el bit I del SREG est a 1 y el bit INT1 del GIMSK est a 1, el MCR
saltar al vector de interrupcin en la direccin $002. El flag se pone a 0 cuando se
ejecute la rutina de interrupcin. Alternativamente, este flag puede ser puerto a cero
escribiendo un 1 en l.
INTF0: Cuando un evento en el pin INT0 dispara una peticin de interrupcin, INTF0
se pone a 1. Si el bit I del SREG est a 1 y el bit INT0 del GIMSK est a 1, el MCR
saltar al vector de interrupcin en la direccin $001. El flag se pone a 0 cuando se
ejecute la rutina de interrupcin. Alternativamente, este flag puede ser puerto a cero
escribiendo un 1 en l.
28
TOIE0: (Timer/Counter0 overflow interrupt enable). Cuando este bit est a 1 y el bit I
del SREG est a 1, se habilita la interrupcin de overflow del temporizador/contador 0.
La correspondiente interrupcin (en la posicin $006) se ejecuta si existe un overflow
en el temporizador. El flag de overflow se pone a 1 en el registro TIFR.
Timer/Counter Interrupt Flag Register (TIFR)
SE (Sleep Enable): Este bit debe estar a1 para hacer que el microcontrolador pase al
modo dormido cuando se ejecuta la instruccin SLEEP. Es recomendable poner este bit
a 1 justo antes de ejecutar la instruccin SLEEP.
SM (Sleep Mode): Este bit selecciona dos posibles modos de dormir. Si est a cero, se
entra en modo inactivo (Idle Mode), si est a 1 en modo Desconexin (Power Down).
En cualquier modo Sleep seleccionado, el microprocesador para la ejecucin de
instrucciones despus de la instruccin SLEEP.
29
Si una interrupcin ocurre cuando el MCU est dormido, este despierta, ejecuta la
rutina de interrupcin y sigue procesando las instrucciones del programa principal
que continuaban detrs de la instruccin SLEEP.
Los contenidos del fichero de registros, SRAM y E/S se mantienen sin cambios. Si
ocurre un RESET cuando el microprocesador est dormido, este se despierta y
ejecuta desde el vector de RESET.
Idle Mode
Power Down
ISC1X: Interrupt Sense Control 1 bit 1 y bit 0. Estos bits configuran el modo de
interrupcin mediante la seal externa INT1
El fabricante recomienda que antes de cambiar los valores de estos bits, se desactiven
las interrupciones del microcontrolador, poniendo el bit I del registro SREG a cero.
ISC0X: Interrupt Sense Control 1 bit 1 y bit 0. Estos bits configuran el modo de
interrupcin mediante la seal externa INT0
30
4.2.11.- Puerto B
El registro PINB, es de slo lectura, mientras que los otros son de R/W.
Todos los pines del puertoB tienen resistencias de pull-up que pueden activarse o no.
Alternativamente, los pines del puerto B tienen asociadas otras funciones que pueden
estar activas o no.En cada caso, los valores de los bits de los registros PORTB y
DDRB deben estar en concordancia con las funciones alternativas.
DDRB
Define si el pin n ser usado como entrada o como salida. Esto es, si DDRBn es 1, el
pinBn es salida, si DDRB es 0, pinBn es entrada.
31
PORTB
Si el pinBn est configurado como salida, entonces este pin muestra el valor lgico
asociado al PORTBn.
Si el pinBn est configurado como entrada, entonces sin PORBTn est a 1, se activan
las resistencias de pull-up, en caso contrario, estas resistencias no estn habilitadas
PINB
4.2.12.- Puerto D
Todos los pines del puertoD tienen resistencias de pull-up que pueden activarse o no.
Alternativamente, los pines del puerto D tienen asociadas otras funciones que pueden
estar activas o no. En cada caso, los valores de los bits de los registros PORTD y
DDRD deben estar en concordancia con las funciones alternativas.
DDRD
Define si el pin n ser usado como entrada o como salida. Esto es, si DDRDn es 1, el
pinBn es salida, si DDRD es 0, pinDn es entrada.
32
PORT D
Si el pinDn est configurado como salida, entonces este pin muestra el valor lgico
asociado al PORTDn.
Si el pinDn est configurado como entrada, entonces sin PORTDn est a 1, se activan
las resistencias de pull-up, en caso contrario, estas resistencias no estn habilitadas
PIND
4.2.13.- Temporizador/contador 0
33
Un registro de control TCCR0 que permite configurar la seal de reloj que llegar al
registro timer/counter0.
34
Timer/Counter0 (TCNT0)
Se activa el bit TOV0 cada vez que el contador pasa de $FF a $00 (overflow).
35
WDE: Watchdog Enable. Cuando este bit est a 1, el watchdog est habilitado, y si est
a cero, inhabilitado. WDE slo puede ponerse a 0 si el bit WDTOE est a 1. Para
inhabilitar el temporizador, debe seguirse el siguiente procedimiento.
1. Escribir en la misma operacin un 1 lgico en WDTOE y WDE.
2. Dentro de los siguientes cuatro ciclos de reloj, escribir un 0 en WDE. Esto inhabilita
el watchdog
WDTOE: Watchdog Turn-off Enable. Este bit debe estar a 1 cuando el WDE est a
cero. En cualquier otro caso, el watchdog no se inhabilitar. Si se pone a 1, el hardware
lo pone a cero automticamente cuando pasan cuatro ciclos de reloj ms tarde.
36
4.2.15 UART
Dispone de un conjunto de registros:
RXCIE (bit 7). Habilita la generacin de interrupciones cada vez que se recibe un dato
nuevo en la UART.
TXCIE (bit 6). Habilita la generacin de interrupciones cada vez que el registro de
desplazamiento del transmisor se queda vaco.
UDRIE (bit 5). Habilita la generacin de interrupciones cada vez que el registro de
transmisin se queda vaco.
RXEN (bit 4). Habilita el bloque receptor de la UART. Cuando esto ocurre, el pin PD0
se configura como entrada RXD con independencia del bit DDRD0.
TXEN (bit 3). Habilita el bloque transmisor de la UART. Cuando esto ocurre, el pin
PD1 se configura como salida TXD con independencia del bit DDRD1.
CHR9( bit 2). Habilita el envo o la recepcin de un noveno bit a continuacin de los 8
bit de datos (bit de paridad).
RXB8(bit 1). Si est habilitado el noveno bit, aqu es donde se puede leer.
TXB8(bit 0). Si est habilitado el noveno bit, aqu se escribe el bit que se aadir al
carcter depositado en UDR para su posterior transmisin.
Registro USR
37
Registro UDR
38
.ORG 0x37
variable:.BYTE 1
.CSEG
.ORG 0x10
mov
r0,r1
r2
porta,r2
39
temp,0xf0
ior,0x3f
temp,ior
Esta directiva le dice al ensamblador que empiece leyendo el contenido de un fichero especificado.
Syntax:
.INCLUDE "filename"
Example:
;
iodefs.asm:
.EQU sreg=0x3f
.EQU sphigh=0x3e
.EQU splow=0x3d
;
incdemo.asm
.INCLUDE iodefs.asm
in
; Status register
; Stack pointer high
; Stack pointer low
; Include I/O definitions
r0,sreg ; Read status register
40
41