Created
November 22, 2013 22:17
-
-
Save davidae1704/7607828 to your computer and use it in GitHub Desktop.
codigo para desafio de spi con pic 16f877
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
title "PIC16F877 Envio de byte por SPI Modo Maestro" | |
list p=16F877 ; indica el modelo de PIC | |
#include <p16f877.inc> ; archivo de encabezado | |
__CONFIG _XT_OSC & _PWRTE_ON & _BODEN_OFF & _CP_OFF & _WDT_OFF | |
;VARIABLES | |
conta equ 0x10 | |
dconta equ 0x20 | |
recibe equ 0x30 | |
dato EQU 0X40 | |
org 0 | |
goto mainp | |
;PROGRAMA PRINCIPAL | |
org 100 | |
mainp: | |
;bsf OSCCON,6 ;Divisor de preescala del | |
;bsf OSCCON,5 ;reloj a 8Mhz | |
;bsf OSCCON,4 | |
;clrf conta | |
clrf dconta | |
;Configuración de las lineas fisicas | |
movlw 0x0f | |
movwf ADCON1 | |
bcf TRISC,3 ;Salida SCK | |
bcf TRISC,5 ;Salida SDO | |
bcf TRISA,5 ;Salida SS | |
bsf TRISC,4 ;Entrada SDI | |
bsf TRISD,0 ;Push de entrada | |
;Configuración del SPI | |
movlw B'01000000' ;Muestreo al medio | |
movwf SSPSTAT | |
movlw B'00110000' ;Activar el SPI, polaridad, SCK=fosc/4 | |
movwf SSPCON | |
NO btfss PORTD,0 ;Se presiono el push? | |
goto NO | |
NO1 btfsc PORTD,0 ;Se libero? | |
goto NO1 | |
movf SSPBUF,W ;Lectura tonta | |
envio bcf PIR1,SSPIF ;limpiar bandera | |
movlw 0x44 | |
movwf 0x21 | |
movf 0x21, W | |
movwf SSPBUF ;Iniciar la transmisión | |
lazo1 btfss PIR1,SSPIF ;Se completo ?? | |
goto lazo1 ;No espere | |
bcf PIR1, SSPIF ; limpiar bandera de SSP | |
;incf FSR0L,1 ;apunta a la siguiente localidad de la cadena de envío | |
;movf SSPBUF,W | |
;movwf INDF1 | |
;incf FSR1L,1 ;apunta a la siguiente localidad de la cadena de recepciòn | |
;movlw 0x03 | |
;cpfsgt FSR0L ;dejar de enviar datos una vez que se completa la cadena | |
;goto envio ;No, envie el siguiente | |
nop | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment