Escolar Documentos
Profissional Documentos
Cultura Documentos
COMPILADOR
SOFTWARE
Slo 35 instrucciones:
18
orientadas a
bytes
4
orientadas a bits
13
Orientadas a
literales y control
SET de instrucciones
18
04
13
PNDULO
1. Cabecera
2. Equivalencias para
ensamblador
3. Directivas +
Inicializacin
4. Programa principal
5. Subrutinas
;***************************************************************************
; Programa que realiza un pndulo de leds con los 8 bits del port B
; Revisin: 0.0
1. cabecera
2. equivalencias
3. directivas
inicializacin
4.
Programa
principal
5.
Subrutinas
1. Cabecera
;***************************************************************************
; Programa que realiza un pndulo de leds con los 8 bits del port B
; Revisin: 0.0
; Frecuencia del Reloj: 4MHz Frecuencia de instruccin: 1MHz Ciclo
; de Trabajo: 1us
; Tipo de Reloj: XT
; Perro Guardin: OFF
; Proteccin de Cdigo: OFF
; Realizado por: Fulanito de Tal
; Fecha: lunes, 14 de octubre de 2014
;****************************************************************************
10
00h
goto
INICIO
;---------------------------------------------------------------------------------------------------------;
DIRECCIN
CONTENIDO (DATO)
00 h
goto INICIO
ORG 00h
01 h
Memoria
de
02 h
programa
Reservado para
interrupciones
03 h
04 h
05 h
06 h
4. Inicializacin
; ------------------------------------ Inicializacin de variables -----------------------------------INICIO
ORG
05h
bsf
STATUS, RP0
clrf
TRISB
bcf
STATUS, RP0
clrf
PORTB
clrf
CONTA1
clrf
CONTA2
;------------------------------------------------------------------------------------------------------------
1 entrada
0 salida
03h
05h
02h
11
EQU 0x05
bcf
STATUS, RP0
de bits
TRISB
de registro
Clear file
Clear W
0 f 127
0x 00 f 0x 7F
f es una
direccin de la
memoria de
datos RAM
Solamente se puede
acceder a un banco a
la vez, empleando f.
El banco
correspondiente se
escoge cambiando el
bit RP0 del registro
STATUS.
12
6. Programa Principal
; -------------------------------------- Programa Principal ----------------------------------------------ROTACION
bsf
PORTB , 0
; enciende RB0
bcf
STATUS , C
; borra el bit de Carry del STATUS
ROTA_IZQ
call
TEMPO
; llama subrutina TEMPO
rlf
PORTB , f
; rota 1 bit a izq en PORTB
; Carry RB7 ... RB0 Carry
btfss
PORTB , 7
; bit test file skip set:
; si RB7=1 salta una instruction.
goto
ROTA_IZQ
; sigue rotando a izquierda, an no
; llega a RB7
bcf
STATUS , C
; borra el Carry: C=0
ROTA_DER
call
TEMPO
; llama a subrutina TEMPO
rrf
PORTB , f
; rota 1 bit a der en PORTB
; Carry RB7 ... RB0 Carry
btfss
PORTB , 0
; bit test file skip set: si RB0=1 salta
; una instruccin.
goto
ROTA_DER
; sigue rotando a derecha, an no
; llega a RB0
goto
ROTACION
; lleg a RBO=1 reinicia proceso
;-------------------------------------------------------------------------------------------------------------------
5V/0V
instrucciones
211=2048
[A10-A0]
13
Para 3 bits
2^3=8
(1) 0
0 - 1 = 7
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
8
decrementos
8
decrementos
256
14
instrucciones
a) 1+1 = 2 ciclos
SUBRUTINA TEMPO
b) 256+(255*2)+2 = 768 c
TEMP0
CICLOS TOTALES
--------------------
2+
768*256+
256+
2*255+
2+
2+
= 197380 ciclos
(a)
clrf
clrf
CONTA1 1c
CONTA2 1c
CONTA1 = 00h
CONTA2 = 00h
BUCLE1
255X2
256
(b)
decfsz
goto
BUCLE1
CONTA1 = CONTA1-1
CONTA1,f
BUCLE1
Cada ciclo=1us.
NO
CONTA1 = 0?
SI
768
256
(c)
decfsz
goto
255X2
CONTA2 = CONTA2-1
CONTA2,f
BUCLE1
NO
CONTA2 = 0?
SI
(d)
return
2c
Retorna
15
Si CONTA3=00h
TEMP0
(256*197,380)+(255+2)+(255*2)
(a)
clrf
clrf
movlw
movwf
CONTA1
CONTA2
05h
CONTA3
1c
1c
1c
1c
= 50530,047
CONTA1 = 00h
CONTA2 = 00h
CONTA3 = 05h
CONTA3
TOTAL:
BUCLE1
C = 5+ 50530,047 + 2
= 50530,054 ciclos
(b)
decfsz
goto
CONTA1 = CONTA1-1
NO
CONTA1 = 0?
(c)
decfsz
goto
t =50.530054 s
-------------------------------Si CONTA3=n
Decrementar n veces
SI
CONTA2 = CONTA2-1
NO
CONTA2 = 0?
197380 c
C =
SI
(d)
CONTA3 = CONTA3-1
decfsz
goto
CONTA3 = 0?
SI
2c
return
NO
C =
4+
n* 197380+
n+
(n-1)*2 +
2+
2+
inicializacin
lazos internos
decrementos
saltos goto
Salto condicin
retorno
n*197,382+6 ciclos
CONTA3=0x05
T = 986,916 ciclos
T = 0.986916 seg
Retorna
0<n<255
Temporizador:
-
T0CS = 0 TEMPORIZADOR
T0CS = 1 CONTADOR
16
Acarreo
en el
OCTAVO
bit.
17
Pre-escala
18
- INTCON
- TMR0
- PORTB
- EECON1
19
fuentes de interrupcin:
2.
20
bit 6
bit 5
bit 4
bits de sealizacin
bit 3
bit2
bit1
21