Académique Documents
Professionnel Documents
Culture Documents
LIST P = 18F4550
INCLUDE <P18F4550.INC>
;************************************************************
CONFIG PWRT = ON
CONFIG MCLRE = ON
; CODE ******************************************************
#define P1 PORTB, 4
Lp EQU 0x70
M EQU 0x71
On EQU 0x72
INICIO
bra INICIO
EDUARDO DANIEL COLUMNA MUÑIZ GRUPO 6CM13 BOLETA: 2014300334
movwf Lp
retardo
TRES
movlw d'80' ; se puede cambiar por 200 para que en Lp cada 2 sea una decima de segundo
movwf M
DOS
movlw d'250'
movwf On
UNO
nop ;0.2u
nop ;0.2u
goto DOS
decfsz Lp,1
goto TRES
return
N1 equ 0x10
M equ 0x20
Nx equ 0x30
Mx equ 0x40
P2 equ 0x41
ORG 0X1000
Main:
LCD2
CALL LCD_IN
CALL I1
CALL NEXT
CALL I22
RETURN
I1
MOVLW 'E'
MOVWF PORTB
CALL MANDAR
MOVLW 'D'
MOVWF PORTB
CALL MANDAR
MOVLW 'U'
MOVWF PORTB
CALL MANDAR
MOVLW 'A'
MOVWF PORTB
CALL MANDAR
MOVLW 'R'
EDUARDO DANIEL COLUMNA MUÑIZ GRUPO 6CM13 BOLETA: 2014300334
MOVWF PORTB
CALL MANDAR
MOVLW 'D'
MOVWF PORTB
CALL MANDAR
MOVLW 'O'
MOVWF PORTB
CALL MANDAR
MOVWF PORTB
CALL MANDAR
MOVLW 'D'
MOVWF PORTB
CALL MANDAR
MOVLW 'A'
MOVWF PORTB
CALL MANDAR
MOVLW 'N'
MOVWF PORTB
CALL MANDAR
MOVLW 'I'
MOVWF PORTB
CALL MANDAR
MOVLW 'E'
MOVWF PORTB
CALL MANDAR
MOVLW 'L'
MOVWF PORTB
CALL MANDAR
RETURN
EDUARDO DANIEL COLUMNA MUÑIZ GRUPO 6CM13 BOLETA: 2014300334
I22
MOVLW 'C'
MOVWF PORTB
CALL MANDAR
MOVLW 'O'
MOVWF PORTB
CALL MANDAR
MOVLW 'L'
MOVWF PORTB
CALL MANDAR
MOVLW 'U'
MOVWF PORTB
CALL MANDAR
MOVLW 'M'
MOVWF PORTB
CALL MANDAR
MOVLW 'N'
MOVWF PORTB
CALL MANDAR
MOVLW 'A'
MOVWF PORTB
CALL MANDAR
CALL PAUSA
RETURN
LCD_IN
BCF PORTA, 1; RS = 0
MOVLW 0X01
EDUARDO DANIEL COLUMNA MUÑIZ GRUPO 6CM13 BOLETA: 2014300334
MOVWF PORTB
CALL EJECUTA
MOVLW 0X0C
MOVWF PORTB
CALL EJECUTA
MOVLW 0X3C
MOVWF PORTB
CALL EJECUTA
BSF PORTA, 0; RS = 1
RETURN
EJECUTA
BSF PORTA, 2
CALL DELAY
CALL DELAY
BCF PORTA, 2 ;E
CALL DELAY
RETURN
MANDAR
BSF PORTA, 1
CALL EJECUTA
RETURN
NEXT
BCF PORTA, 1
MOVLW 0XC0
MOVWF PORTB
CALL EJECUTA
RETURN
EDUARDO DANIEL COLUMNA MUÑIZ GRUPO 6CM13 BOLETA: 2014300334
DELAY
MOVLW D'48'
MOVWF M
DOS
MOVLW D'255'
MOVWF N1
UNO
DECFSZ N1, 1
GOTO UNO
DECFSZ M, 1
GOTO DOS
RETURN
PAUSA
MOVLW D'5'
MOVWF P2
TRESx
MOVLW D'8'
MOVWF Mx
DOSx
MOVLW D'250'
MOVWF Nx
UNOx
NOP
NOP
DECFSZ Nx, 1
GOTO UNOx
DECFSZ M, 1
GOTO DOSx
DECFSZ P2, 1
GOTO TRESx
RETURN
EDUARDO DANIEL COLUMNA MUÑIZ GRUPO 6CM13 BOLETA: 2014300334
list p=18f4550
#include p18f4550.inc
ORG 0X0100
MAIN
BSF STATUS,5 ; Banco 1, donde estan los registros de control
; de la EEPROM.
CLRF DIR ; Inicializar variables.
MOVLW 'a'
MOVWF DATO
LIST P=18F4550
#include <P18F4550.INC>
RESET_VECTOR ORG 0
goto Main
ORG 0x1000
Main
MOVLW 0X0F
MOVWF ADCON1
CLRF TRISD
MOVWF LATD
CALL Ret05
MOVLW 0X0A
MOVWF LATD
CALL Ret05
goto ciclo
MOVWF inicial
EDUARDO DANIEL COLUMNA MUÑIZ GRUPO 6CM13 BOLETA: 2014300334
decfsz inicial
goto ciclo05
return
MOVWF Var1
decfsz Var1
goto ciclo10
return
MOVWF Var2
ciclo100 nop
nop
decfsz Var2
goto ciclo100
return
END
EDUARDO DANIEL COLUMNA MUÑIZ GRUPO 6CM13 BOLETA: 2014300334
PORT
org0x050
inicio // etiqueta
CALL PORT
activar // etiqueta
btfssporta,0 // btfss porta,0 ; el bit “0” del puerto A es 1? si cumple, salta 1 instrucción
giro // etiqueta
izq_z //etiqueta
fin //etiqueta
EDUARDO DANIEL COLUMNA MUÑIZ GRUPO 6CM13 BOLETA: 2014300334
izq //etiqueta
RETURN
call // ERROR; Invoca una función, falta el registro que será invocado
der //etiqueta
RETARDO_20MS
BCF T1CON,TMR1ON // “0” las banderas del registro de Timer para apagarlo
BSF T1CON,TMR1ON // “1” las banderas del registro de Timer para encenderlo
ETQ
BTFSS PIR1,TMR1IF // el bit TMR1IF del puerto PIR es 1? si cumple, salta 1 instrucción
return // Regresa