Foros de Electrónica

Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.




pic16f628a + 74hc165


       



#1  pic16f628a + 74hc165
remramon2007

Registrado: 28 Oct 2007
Mensajes: 50
Ubicación: argentina
citar
hola gente alguien me puede decir por que no me funciona este codigo?
me estube quemando la cabeza todo el dia y no logre hacerlo funcionar, les agradeceria si alguien me puede tirar una mano.
dejo como archivo adjunto el esquematico y el codigo del pic.

'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 01/02/2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
include "bs2defs.bas"

'define OSC 4

@ DEVICE pic16f627a, INTRC_OSC_NOCLKOUT 'xt_osc'Reloj interno solo
@ DEVICE pic16f627a, WDT_OFF ' Watchdog Timer desconectado
@ DEVICE pic16f627a, PWRT_OFF ' Power-On Timer conectado
@ DEVICE pic16f627a, BOD_ON ' Brown-Out Detect conectado
@ DEVICE pic16f627a, MCLR_OFF ' Master Clear Externo desconectado
@ DEVICE pic16f627a, LVP_OFF ' Low-Voltage Programming desconectado
@ DEVICE pic16f627a, CPD_OFF ' Data Memory Code Protect desconectado
'@ DEVICE pic16f628, _OFF '

'****************************** VARIABLES **************************************
D_in var portb.0 ' desplazam. datos (74x165.7)
Clock var portb.3 ' reloj (74x165.2)
Load var portb.4 ' carga de entrada (74x165.1)
switches VAR Byte ' interruptores de entrada

'******************************* LCD *******************************************
'los datos de los cables que detallo son de izquierda a derecha empezando
'por negativo positivo
' 1 - masa
' 2 - positivo 5VCC
' 3 - preset
' 4 - porta.0
' 5 - porta.2
' 6 - porta.1
' 7, 8 y 9 en el aire
' 10 - portb.0
' 11 - portb.1
' 12 - portb.2
' 13 - portb.3

' Define LCD registers and bits
Define LCD_DREG PORTA 'PORTB 'LCD data port
Define LCD_DBIT 0
Define LCD_RSREG PORTA 'LCD register select port
Define LCD_RSBIT 7
Define LCD_EREG PORTA 'LCD enabled port
Define LCD_EBIT 6
Define LCD_BITS 4 ' Aquí indicamos que trabajamos con 4 bits en vez de 8
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50

CMCON = 7

Pause 100 ' Wait for LCD to start up

inicio:
Lcdout $FE, 1 ' Clear LCD screen
PAUSE 10
LCDOUT $FE,1,"Placa escuela"
lcdout $FE,$C0,"Iniciada"
pause 100

' -------------------------------------------------------------------------
Inicializar:
HIGH Load ' hace salida en estado alto
' -------------------------------------------------------------------------
Principal:
goto leer_pulsadores ' lee 8-pos. del dip switch
'gosub escribir
PAUSE 100
GOTO Principal ' repite
END
' -------------------------------------------------------------------------
leer_pulsadores:
PULSOUT Load,3 ' toma valores interruptores
SHIFTIN D_in,Clock,MSBPre,[B0] ' desplaza valores

escribir:
Lcdout $FE, 1 ' Clear LCD screen
PAUSE 10
LCDOUT $FE,1,"Placa escuela"
lcdout $FE,$C0,#B0
pause 10
goto leer_pulsadores

un abrazo y gracias!



Este mensaje contiene archivos adjuntos, para verlos debes estar registrado.

#2  
eserock

Registrado: 27 Abr 2005
Mensajes: 118
Ubicación: Cd. de Mexico
citar
hola antes que nada explicame que pretendes hacer con ese circuito, conque finalidad es el 74hc165, si te quedan suficientes terminales del pic para controlar esa cantidad de push y creo que la biblioteca que incluyes no corresponde con el diseño, verifica si lo siguiente te ayuda

@ device pic16F628A, INTRC_OSC, wdt_off, pwrt_on, mclr_off, bod_on, lvp_off, protect_on

'Configurando
RBPU VAR OPTION_REG.7
CMCON = 7 'puerto A digital
RBPU = 1 'Sin Resistencias en el puerto B a positivo

Include "Modedefs.bas"



' ** Declare LCDOUT Defines **

DEFINE LCD_DREG PortB ' Set Data to PortB
DEFINE LCD_DBIT 4 ' Set starting Data to Bit4
DEFINE LCD_RSREG PortA ' Set Register Select to PortA
DEFINE LCD_RSBIT 1 ' Set RS line to PORTA.1
DEFINE LCD_EREG PortA ' Set Enable to PortA
DEFINE LCD_EBIT 0 ' Set Enable line to PortA.0
DEFINE LCD_BITS 4 ' Set for 4 bit Bus
DEFINE LCD_LINES 2 ' Set number of lines to 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50

DEFINE OSC 4
con esto a mi me ha funcionado para difrentes proyectos y para no revolver mientras hago un programa nuevo hice un display lcd controlado en forma serial por solo un pin, esto me ahorra tiempo y confusiones mientras estoy haciendo el nuevo proyecto si quieres construir uno te paso toda la informacion diseño de pcb, firmware y esquematico

 Responder



Google
 


 Temas de interés 
El tema está cerrado y no puedes editar mensajes o responder Destacado: Data cable siemens RS-232
No hay mensajes nuevos Data Cable Nokia RS-232: Forum
No hay mensajes nuevos Diagrama de construcción data cable Nokia DKU-5 (USB)
No hay mensajes nuevos Data cable para siemens c65
No hay mensajes nuevos Construcción del data cable Nokia 3595

Foros de Electronica
|| Cuestiones Elementales de Electrónica || Fuentes de alimentacion || Circuitos de radio || Diseño de circuitos en general ||
|| Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión ||
|| Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos ||