Bienvenidos

Hola mi nombre es Humberto Ing. en electronica y telecominucaciondes hago esta pagina dedicada al los que somos de lento aprendisaje y los que somos nuevos en elsto de los PIC's, en esta pagina tratare de ayudar a los compañeros que lo necesiten con rutinas para pics, asesorias, hardwere, softwere, LCD y en lo que pueda ayudar asi que no duden en preguntarme mis datos estan en el apartado de informacion y recuerden que

" EL UNICO LIMITE DE LA ELECTRONICA ES TU IMAGINACION "

jueves, 17 de julio de 2008

PROGRAMANDO UN LCD

real mente me costo mucho trabajo aprender a programar en el lcd y mas en 2 lineas aun q no lo crean es cierto eso de que una vez sabiendo es demaciado facil aqui les pongo la trillada rutina de "HOLA MUNDO" pero a 2 lineas CUALQUIER DUDA PREGUNTEN

#include "p16f877A.inc"
#include "LCD.inc"
__CONFIG _WDT_OFF & _HS_OSC & _CP_OFF & _LVP_OFF
list p = 16f877A
cblock 0x20
len,
counter
endc

VECTORS
CODE org 0x00
goto inicio
org 0x04
goto vecint
INICIO CODE
;INICIO DEL PROGRAMA================================================
inicio
bsf STATUS, RP0
bcf STATUS, RP1
clrf PIE1
bsf PIE1, TMR2IE
movlw 0xC3
movwf PR2
movlw 0x06
movwf ADCON1
movlw 0xF8
movwf TRISA
clrf TRISB
bcf STATUS, RP0

;INICIALIZACION DE LCD==========================================

clrf PORTB
call LCD_CLEAR ;LIMPIO LCD
call LCD_HOME ;MANDO EL CURSOR A INICIO
movlw INCREMENT SHIFTCURSOR ;VALORES DEL CURSOR
call LCD_ENTRY_MODE ;MODALIDAD DE ENTRADA
movlw _8BITS _2LINES _5X7 ;VALORES DE CONFIGURACION
call LCD_FUNCTION_SET ;TIPO DE LCD
movlw DISPON ;CHACAR LCD
call LCD_ONOFF ;ENCENDER LCD

;RUTINAS DE MENSAJES=======================================

CALL LINEA_1 ;LLAMA RUTINA DE LINEA 1
CALL LINEA_2 ;LLAMA RUTINA DE LINEA 2

;TERMINA EL PROGRAMA CICLO INFINITO===============================

loop
goto loop

;MENSAJE LINEA 1==========================================
LINEA_1
;===================================================================
MOVLW 0X80 ; ;
MOVWF PORTB ;RUTINA PARA DIRECCIONAR LA POSICION 1a LINEA ;
CALL LCD_ADDRESS_SET ; DESDE 0X80 HASTA 0X8F ;
CLRF PORTB ; ;
;===================================================================
call WRITE_MESSAGE1
clrf PCLATH
movlw 0x73
movwf T2CON ;PS:16 PST:16 TMR=OFF
clrf TMR2
movlw 0xC0
movwf INTCON
movlw d'10'
movwf counter
bsf T2CON, TMR2ON
RETURN

;MENSAGE LINEA 2==============================================
LINEA_2
;==========================================================
MOVLW 0XC0 ; ;
MOVWF PORTB ;RUTINA PARA DIRECCIONAR LA POSICION 2a LINEA;
CALL LCD_ADDRESS_SET ; DESDE 0XC0 HASTA 0XCF ;
CLRF PORTB ; ;
;========================================================
call WRITE_MESSAGE2
clrf PCLATH
movlw 0x73
movwf T2CON ;PS:16 PST:16 TMR=OFF
clrf TMR2
movlw 0xC0
movwf INTCON
movlw d'10'
movwf counter
bsf T2CON, TMR2ON
RETURN

;MENSAJE 1================================

WRITE_MESSAGE1
clrf len
NEXT_CHAR
movlw 0x08
movwf PCLATH
movf len, w
call HELLO1
iorlw 0x00
btfsc STATUS, Z
return
clrf PCLATH ; pagina 0
call LCD_DATA_WRITE
incf len, f
goto NEXT_CHAR

;MENSAGE 2======================================

WRITE_MESSAGE2
clrf len
NEXT_CHAR1
movlw 0x08
movwf PCLATH
movf len, w
call HELLO2
iorlw 0x00
btfsc STATUS, Z
return
clrf PCLATH ; pagina 0
call LCD_DATA_WRITE
incf len, f
goto NEXT_CHAR1

;VECTOR DE INTERRUPCION=========================

vecint
bcf PIR1, TMR2IF
decfsz counter, f
retfie
movlw d'10'
movwf counter
movlw MOVEDISP RIGHTSHIFT
call LCD_SHIFT
retfie

;MENSAGES DE LCD========================================

PROGDATA CODE
org 0x800
HELLO1
addwf PCL,f
retlw ' '
retlw ' '
retlw ' '
retlw 'H'
retlw 'E'
retlw 'L'
retlw 'L'
retlw 'O'
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw 0x00
HELLO2
addwf PCL,f
retlw ' '
retlw ' '
retlw ' '
retlw 'W'
retlw 'O'
retlw 'R'
retlw 'L'
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw ' '
retlw 0x00




LCD_CLEAR

bcf PORTA, RS
bcf PORTA, RW
movlw 0x01
movwf PORTB
call LCD_E
call LCD_BUSY
return

LCD_HOME

bcf PORTA, RS
bcf PORTA, RW
movlw 0x02
movwf PORTB
call LCD_E
call LCD_BUSY
return

LCD_FUNCTION_SET

bcf PORTA, RS
bcf PORTA, RW
clrf PORTB
bsf PORTB, 5
andlw 0x1F
iorwf PORTB, F
call LCD_E
call LCD_BUSY
return

LCD_SHIFT

bcf PORTA, RS
bcf PORTA, RW
clrf PORTB
bsf PORTB, 4
andlw 0x0C
iorwf PORTB, F
call LCD_E
call LCD_BUSY
return

LCD_ONOFF

bcf PORTA, RS
bcf PORTA, RW
clrf PORTB
bsf PORTB, 3
andlw 0x07
iorwf PORTB, F
call LCD_E
call LCD_BUSY
return

LCD_ENTRY_MODE

bcf PORTA, RS
bcf PORTA, RW
clrf PORTB
bsf PORTB, 2
andlw 0x03
iorwf PORTB, F
call LCD_E call
LCD_BUSY
return

LCD_BUSY

bcf PORTA, RS
bsf PORTA, RW
bsf STATUS, RP0
bcf STATUS, RP1
clrf TRISB
comf TRISB, F
bcf STATUS, RP0
bsf PORTA, E
nop

WAIT_BUSY

btfsc PORTB, 7
goto WAIT_BUSY
bcf PORTA, E
bsf STATUS, RP0
bcf STATUS, RP1
clrf TRISB
bcf STATUS, RP0
return

LCD_ADDRESS_SET

bcf PORTA, RS
bcf PORTA, RW
clrf PORTB
bsf PORTB, 7
andlw 0x7F
iorwf PORTB, F
call LCD_E
call LCD_BUSY
return

LCD_ADDRESS_READ

bcf PORTA, RS
bsf PORTA, RW
bsf STATUS, RP0
bcf STATUS, RP1
movlw 0xFF
movwf TRISB
bcf STATUS, RP0
bsf PORTA, E
nop
movf PORTB, w
andlw 0x7F
bcf PORTA, E
call LCD_BUSY
return

LCD_DATA_WRITE

bsf PORTA, RS
bcf PORTA, RW
movwf PORTB
call LCD_E
call LCD_BUSY
return

LCD_DATA_READ

bsf PORTA, RS
bsf PORTA, RW
bsf STATUS, RP0
bcf STATUS, RP1
movlw 0xFF
movwf TRISB
bcf STATUS, RP0
bsf PORTA, E
nop
movf PORTB, w
bcf PORTA, E
call LCD_BUSY
return







end

miércoles, 16 de julio de 2008

TESIS

HOLA COMO ESTAN EN ESTA OCASION LES PRESENTO UN AVANCE DE MI TESIS CONTROL Y AUTOMATIZACION DE UNA PUERTA VIA DTMF ( DUAL TONE MULTI FRECUENCY)

este sistema de apertura de puerta es por medio de los tonos del celular facilitando y automatizando casi cualquier cosa
El video muestra como con un motor a pasos se pueden hacer maravillas



En este otro video se muestra la circuiteria y como se deve de entrar con una clave de acceso


PRECIOS DE LOS PIC'S

Hola a todos los que quieran comprar Microcontroladores PIC's estos son los modelos que tengo y sus precios estos precios pueden ser checados en la pagina de AG http://www.agelectronica.com/cgi-bin/ag.exe/socios?socio=ag&Linea=MIC-ELEC&enpesos=no nos estoy dando ni mas caro ni mas barato lo hago para que todos tengan la facilidad te tener un microcontrolador para poder aprender,



( pregunta por los precios de programadores y pregunta por el regalo que se te da en la compra de un programador USB VOLONIA checa sus especificaciones en : http://www.volnia.com/productos/USP%203.0%20Hoja%20técnica.pdf )


PRECIOS DE PICS
---------------------------------
PIC16LF84
1 - 2 $ 63.47
3 - 9 $ 58.55
---------------------------------
PIC16F627A
1 - 4 $ 47.82
5 - 24 $ 43.04
---------------------------------
PIC16F628A
1 - 4 $ 34.78
5 - 24 $ 31.30
---------------------------------
PIC16F873A
1 - 2 $ 80.87
3 - 9 $ 73.38
10 - 24 $ 65.88
--------------------------------
PIC16F874A
1 - 2 $ 77.39
3 - 9 $ 69.65
10 - 24 $ 57.18
--------------------------------
PIC16F877A
1 - 4 $ 64.38
5 - 24 $ 57.91
--------------------------------
PIC18F2550A
1 - 2 $ 125.21
3 - 9 $ 112.69
10 - 24 $ 94.28

NOTA: SI ME TRAES UNA FACTURA O NOTA DE EL PIC QUE QUIERES Y ES MAS BARATO DE LO QUE YO LO DOY, TE DOY EL PIC AL PRECIO Q ME TRAJISTE MENO UN 20% EN EL PRECIO