Beruflich Dokumente
Kultur Dokumente
;Curso PIC16f877
LIST P=16F877
INCLUDE <p16f877.INC> ;direcciones de los registros del pic
org 0
bsf STATUS,RP0 ;entro al banco 1
movlw b'11111111' ;carga el valor b'11111111' a w
movwf TRISB ;muevo el valor de w al puerto B
movlw b'00000000' ;carga el valor b'00000000' a w
movwf TRISD ;muevo el valor de w al puerto D
bcf STATUS,RP0 ;entro al banco 0
repite
movf PORTB,0 ;
movwf PORTD ;
goto repite ;
*********************************************
LIST P=16F877
INCLUDE <p16f877.INC> ;direcciones de los registros del pic
org 0000h
bsf STATUS,RP0 ;entra al banco 1
movlw b'11111111' ;coloca el valor 255 en el registro "w"
movwf TRISB ;asigna los bits del puerto B como entradas
movlw b'00000000' ;coloca el valor 0 en el registro "W"
movwf TRISD ;asigna los bits del puerto D como salidas
bcf STATUS,RP0 ;regresa al banco cero
repite
*****************************************************
list P=16f877
include<p16f877.inc>;Direcciones de registro del PIC
include<macro16f877.inc>;macro que sirve para la decodificacin del teclado
__config 0x3f32 ;velocidad de trabajo del PIC
cblock 0x20 ;habilita el llamado a libreras
endc
org 0000h
;----------------------------------------------------
;Programa principal
bsf STATUS,RP0 ;accedemos al banco 1
bcf TRISD,0;Se declara el puerto RD0 como salida
bcf STATUS,RP0 ;retornemos al banco 0
clrf PORTD ; limpiamos (ponemos a cero) el puertoD
clrf PORTB ; limpiamos (ponemos a cero) el puertoB
call Inicio_Teclado4x4 ;se llama la macro de decodificacin teclado
repite; bucle que lee el presionado de una tecla
call Teclado4x4; se llama a librera teclado4x4
movf NumeroTeclado4x4,0 ;se mueve el contenido de[NumeroTeclado4x4] hacia W
csi NumeroTeclado4x4,b'00000001',led_on ;condicional tecla presionada es #1?
csi NumeroTeclado4x4,b'00000000',led_off ;condicional tecla presionada es #0?
goto repite ;se vuelve a testear el numeo introducido en el teclado
led_on;linea para prender LED si se presiona #1
movlw b'00000001';led en on
movwf PORTD ;se mueve W(datos ingresados con el teclado) hacia el puerto D
goto repite
led_off; linea para apagar LEDsi se presiona #0
movlw b'00000000'; led en off
movwf PORTD ;se mueve W(datos ingresados con el teclado) hacia el puerto D
goto repite
;----------------------------------------
;Librerias incluidas
include<electronicpic16f877.asm>
include<teclado.asm>
end; fin del programa
*******************************************************************
list P=16f877
include<p16f877.inc>;Direcciones de registro del PIC
include<macro16f877.inc>;macro que sirve para la decodificacin del teclado
__config 0x3f32 ;velocidad de trabajo del PIC
cblock 0x20 ;habilita el llamado a libreras
endc
org 0000h
;----------------------------------------------------
;Programa principal
bsf STATUS,RP0 ;accedemos al banco 1
bcf TRISD,0;Se declara el puerto RD0 como salida
bcf STATUS,RP0 ;retornemos al banco 0
clrf PORTD ; limpiamos (ponemos a cero) el puertoD
clrf PORTB ; limpiamos (ponemos a cero) el puertoB
call Inicio_Teclado4x4 ;se llama la macro de decodificacin teclado
repite; bucle que lee el presionado de una tecla
call Teclado4x4; se llama a librera teclado4x4
movf NumeroTeclado4x4,0 ;se mueve el contenido de[NumeroTeclado4x4] hacia W
csi NumeroTeclado4x4,b'00000001',led_on ;condicional tecla presionada es #1?
csi NumeroTeclado4x4,b'00000000',led_off ;condicional tecla presionada es #0?
goto repite ;se vuelve a testear el numeo introducido en el teclado
led_on;linea para prender LED si se presiona #1
movlw b'00000001';led en on
movwf PORTD ;se mueve W(datos ingresados con el teclado) hacia el puerto D
goto repite
led_off; linea para apagar LEDsi se presiona #0
movlw b'00000000'; led en off
movwf PORTD ;se mueve W(datos ingresados con el teclado) hacia el puerto D
goto repite
;----------------------------------------
;Librerias incluidas
include<electronicpic16f877.asm>
include<teclado.asm>
end; fin del programa
***********************************************************************************
__CONFIG _WDT_OFF&_CP_OFF&_PWRTE_ON&_HS_OSC
list P=16f877
include<p16f877.inc>
include<macroTECSUP.INC>
cblock 0x20
endc
org 0000h
;programa principal
bsf STATUS,RP0
bcf TRISD,0
clrf PORTD
bcf STATUS,RP0
clrf PORTB
call Inicio_Teclado4x4
repite
call Teclado4x4
movf NumeroTeclado4x4,0
csi NumeroTeclado4x4,b'00000001',led_on
csi NumeroTeclado4x4,b'00000000',led_off
goto repite
led_on
movlw b'00000001'
movwf PORTD
goto repite
led_off
movlw b'00000000'
movwf PORT
goto repite
include<subrutinaPIC16f877.asm>
include<tecladoTECSUP.asm>
end
*****************************************************************
list p=16f877
include <p16f877.inc>
include<macro16f877.inc>
__config 0x3f32
cblock 0x20
cuenta1
cuenta2
endc
org 0000h
banco 1
clrf trisb
clrf trisd
bsf trisc,0
banco 0
;DisplayAnodoComun
clrf cuenta1
movf cuenta1,0
call DisplayCatodoComun
movwf portb
clrf cuenta2
movf cuenta2,0
call DisplayCatodoComun
movwf portd
Testea
btfss portc,0
goto Testea
goto IncrementarUnidad
IncrementarUnidad
incf cuenta2
csi cuenta2,.10,IniciaCeroUnidad
movf cuenta2,0
call DisplayCatodoComun
movwf portd
;segundo .1
t500ms equ 0x82
goto IncrementarUnidad
IniciaCeroUnidad
clrf cuenta2
movf cuenta2,0
call DisplayCatodoComun
movwf portd
incf cuenta1
csi cuenta1,.10,IniciaCeroDecena
movf cuenta1,0
call DisplayCatodoComun
movwf portb
;segundo .1
t500ms equ 0x82
goto IncrementarUnidad
IniciaCeroDecena
clrf cuenta1
movf cuenta1,0
call DisplayCatodoComun
movwf portb
;segundo .1
t500ms equ 0x82
goto IncrementarUnidad
include<electronicpic16f877.asm>
end
******************************************
list p=16f877a
include<p16f877a.inc>
include<macro16f877.inc>
__config 0x3f32 ;reset on/20Mhz
cblock 0x20
clave1
clave2
clave3
clave4
cont
endc
org 0000h
;------------------------------------
;SECTOR DE CONFIGURACIN DE REGISTROS
call Inicio_Teclado4x4
banco 1
bcf trisc,1
clrf TRISD
banco 0
;------------------------------------
;Estado inicial de los registros
Inicio
clrf PORTD ;PORTD en off
clrf clave1
clrf clave2
clrf clave3
clrf clave4
mover cont,.10
;------------------------------------
;Programa principal
;ingreso de clave
Repite
csi portc,1 ,encendidoled
call Teclado4x4
movf NumeroTeclado4x4,0
movwf clave1
call DisplayCatodoComun
movwf porta
milisegundo .250
milisegundo .250
call Teclado4x4
movf NumeroTeclado4x4,0
movwf clave2
call DisplayCatodoComun
movwf porta
milisegundo .250
milisegundo .250
call Teclado4x4
movf NumeroTeclado4x4,0
movwf clave3
call DisplayCatodoComun
movwf porta
milisegundo .250
milisegundo .250
call Teclado4x4
movf NumeroTeclado4x4,0
movwf clave4
call DisplayCatodoComun
movwf porta
milisegundo .250
milisegundo .250
encendidoled
bsf portd,0
bsf portd,1
goto Inicio
;-------------------------------------
include<electronicpic16f877.asm>
include<teclado.asm>
end