Autor Tema: LCD NOKIA 331O COMANDOS  (Leído 1535 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dj_valle

  • PIC10
  • *
  • Mensajes: 48
LCD NOKIA 331O COMANDOS
« en: 15 de Febrero de 2006, 06:56:00 »
hola, estoy practicando con un lcd nokia 3310. He mirado el datasheet y tengo unas preguntas con un programa pequeño que hice para activar la pantalla.

¿cual es el tiempo de espera del reloj para que lo recepcion el lcd? ¿las señales de reloj se las puedes dar por un puerto del micro (uso un 16f876)?

os dejo el programa a ver que tengo mal:

LIST P=PIC16F876
INCLUDE <P16f876.INC>

#DEFINE BANK0 BCF STATUS,5
#DEFINE BANK1 BSF STATUS,5

DREG1 EQU 0X20

   ORG 0
   GOTO INICIO

INICIO
   BANK1
;***** CONFIGURACION DE LOS PUERTOS COMO SALIDAS ******
   MOVLW B"000000"   
   MOVWF TRISA
   MOVLW B"00000000"
   MOVWF TRISB
   MOVLW B"00000000"
   MOVWF TRISC
   BANK0

   BCF PORTC,3      ;SEÑAL DE RELOJ
   BSF PORTC,1      ;D/C = 0
   BSF PORTC,0      ;ACTIVAMOS EL CHIP "SCE" POR BAJO
   BSF PORTC,2
   BCF PORTC,2      ;APLICAMOS UN RESET MENOS 100MS
   CALL DELAY      ;TIEMPO APLICACION RESET
   BSF PORTC,2      ;QUITAMOS RESET
   
;********* ACTIVAMOS EL CHIP PD = 0 -- 00100001 CHIP ACTIVO, MOVIMIENTO HORIZONTAL, EXTENDED INSTRUCTION SET
   BCF PORTC,5      ;COLOCAMOS 0
   BSF PORTC,3
   BCF PORTC,3      ;"0"
   BSF PORTC,3
   BCF PORTC,3      ;"00"
   BSF PORTC,5
   BSF PORTC,3
   BCF PORTC,3      ;"001"
   BCF PORTC,5
   BSF PORTC,3
   BCF PORTC,3      ;"0010"
   BSF PORTC,3
   BCF PORTC,3      ;"00100"
   BSF PORTC,3
   BCF PORTC,3      ;"001000"
   BSF PORTC,3
   BCF PORTC,3      ;"0010000"
   BSF PORTC,5
   BSF PORTC,3
   BCF PORTC,3      ;00100001"
   BCF PORTC,5

;********* ENVIAMOS DATOS PARA PONER TODOS ENCENDIDOS *********
BUCLE
;********* SECUENCIA D/C = 0 -- 00001001
   BCF PORTC,5      ;COLOCAMOS 0 EN PUERTO
   BSF   PORTC,3      ;MANDAMOS SEÑAL DE RELOJ
   BCF PORTC,3
   BSF PORTC,3
   BCF PORTC,3      ;"00"
   BSF PORTC,3
   BCF PORTC,3      ;"000"
   BSF PORTC,3
   BCF PORTC,3      ;"0000"
   BSF PORTC,5      ;QUEREMOS MANDAR 1
   BSF PORTC,3
   BCF PORTC,3      ;"00001"
   BCF PORTC,5      ;COLOCAMOS UN 0
   BSF PORTC,3
   BCF PORTC,3      ;"000010"
   BSF PORTC,3
   BCF PORTC,3      ;"0000100"
   BSF PORTC,5      ;MANDAMOS 1
   BSF PORTC,3
   BCF PORTC,3      ;"00001001"
   BCF PORTC,5
   
;********* TODO MANDADO **********
   GOTO BUCLE

DELAY          
   MOVLW 0XFF
   MOVWF DREG1
DELAY1
   DECFSZ DREG1
   GOTO DELAY1
   NOP
   RETURN
      END

no se si se podra hacer asi las señales del reloj, espero alguien me puede guiar un poco, gracias de antemano.

Desconectado dj_valle

  • PIC10
  • *
  • Mensajes: 48
RE: LCD NOKIA 331O COMANDOS
« Respuesta #1 en: 15 de Febrero de 2006, 07:40:00 »
por cierto estoy utilizando divisores de tension a la entrada de los pines del lcd, para obtener los 3"3v, sabeis si le meto directamente la salida del puerto al lcd pasa algo (con los 5v)? es para asegurar que llegan bien los datos...

tambien añadi ahora la configuracion de las temeperaturas, el bias y nada de nada, sigue sin encender.

el lcd funciona pq con un programa anterior que use se me encendia y se me apagaban todos los pixeles.

Desconectado dj_valle

  • PIC10
  • *
  • Mensajes: 48
RE: LCD NOKIA 331O COMANDOS
« Respuesta #2 en: 15 de Febrero de 2006, 07:41:00 »
por cierto estoy utilizando divisores de tension a la entrada de los pines del lcd, para obtener los 3"3v, sabeis si le meto directamente la salida del puerto al lcd pasa algo (con los 5v)? es para asegurar que llegan bien los datos...

tambien añadi ahora la configuracion de las temeperaturas, el bias y nada de nada, sigue sin encender.

el lcd funciona pq con un programa anterior que use se me encendia y se me apagaban todos los pixeles.

las señales las tngo en el puerto C:
rc0 - sce
rc1 - d/c
rc2 - res
rc3 - sck
rc5 - sdin

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: LCD NOKIA 331O COMANDOS
« Respuesta #3 en: 16 de Febrero de 2006, 02:26:00 »
Puedes buscar la librería que hizo Nocturno para esta pantalla. Este escrita en C30 pero puedes resolver tus dudas echandole un vistazo.

Desconectado dj_valle

  • PIC10
  • *
  • Mensajes: 48
RE: LCD NOKIA 331O COMANDOS
« Respuesta #4 en: 17 de Febrero de 2006, 08:21:00 »
no me soluciona nada la libreria, sabes el tiempo que hay que emplear entre mandar un dato y el siguiente, o entre las señales de reloj?

sabes si hay que poner el chip disable cada vez que mandas una linea de programa? es que en algunos ejemplos lo vi asi, en otros no. la mayoria estan en C y no me aclaro.

un saludo. y gracias

LIST P=PIC16F876
INCLUDE <P16f876.INC>

#DEFINE BANK0 BCF STATUS,5
#DEFINE BANK1 BSF STATUS,5
#DEFINE SCK PORTB,1
#DEFINE SDIN PORTB,2
#DEFINE DC PORTB,3
#DEFINE SCE PORTB,4
#DEFINE RESET PORTB,5

;**** REGISTROS CONTADORES DE TEMPORIZACION *********
DREG1 EQU 0X20
DREG2 EQU 0X21
DREG3 EQU 0X22
DREG4 EQU 0X23
DREG5 EQU 0X24

   ORG 0
   GOTO INICIO

INICIO
   BANK1
;***** CONFIGURACION DE LOS PUERTOS COMO SALIDAS ******
   MOVLW B"000000"   
   MOVWF TRISA
   MOVLW B"00000000"
   MOVWF TRISB
   MOVLW B"00000000"
   MOVWF TRISC
   BANK0

START
   CALL PAUSE
   BSF DC
   BSF SCE
   ;********* RESETEO LCD **********
   BSF RESET
   CALL PAUSE
   BCF RESET

   ;********* MANDAMOS 00100001 CHIP ACTIVE, HORIZONTAL ADDRESSING, EXTENDED INSTRUCTION
   BCF DC   ;MODE SELECT
   BCF SCE   ;CHIP ENABLE
   ; EMPEZAMOS A MANDAR DATOS
   BCF SCK
   BCF SDIN      ;PREPARAMOS UN CERO
   CALL DELAY
   BSF SCK         ;SEÑAL DE RELOJ
   CALL DELAY
   BCF SCK         ;"0"
   BCF SDIN
   CALL DELAY
   BSF SCK
   CALL DELAY
   BCF SCK         ;"00"
   BSF SDIN      ;PREPARAMOS UN 1
   CALL DELAY
   BSF SCK
   CALL DELAY
   BCF SCK         ;"001"
   BCF SDIN
   CALL DELAY
   BSF SCK
   CALL DELAY
   BCF SCK         ;"0010"
   BCF SDIN
   CALL DELAY
   BSF SCK
   CALL DELAY
   BCF SCK         ;"00100"
   BCF SDIN
   CALL DELAY
   BSF SCK
   CALL DELAY
   BCF SCK         ;"001000"
   BCF SDIN
   CALL DELAY
   BSF SCK
   CALL DELAY
   BCF SCK         ;"0010000"
   BSF SDIN
   CALL DELAY
   BSF SCK
   CALL DELAY
   BCF SCK         ;"00100001"
   ;***** ENVIO COMPLETO **********
   BSF SCE         ;CHIP DISABLE

   ;**** MANDAMOS 11001011 VOP
   BCF SCE         ;CHIP ENABLE
   BSF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"1"
   BSF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"11"
   BCF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"110"
   BCF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"1100"
   BSF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"11001"
   BCF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"110010"
   BSF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK
   BSF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"11001011"
   ;**** ENVIO COMPLETO
   BSF SCE       ;CHIP DISABLE

   ;***** MANDAMOS 00010011"   ;bias System
   BCF SCE         ;CHIP ENABLE
   
   BCF SCK
   BCF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK
   BCF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK
   BCF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"000"
   BSF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"0001"
   BCF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK
   BCF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"0000100"
   BSF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"00001001"
   BSF SDIN      
   CALL DELAY
   BSF SCK         
   CALL DELAY
   BCF SCK         ;"000010011"
   BSF SCE

   
BUCLE
   ;***** MANDAMOS PANTALLA NEGRA -- 00001001 ****
   BCF SCE         ;CHIP ENABLE
   ;***** EMPEZAMOS A MANDAR DATOS ****
   BCF SCK
   BCF SDIN      ;PREPARAMOS UN CERO
   CALL DELAY
   BSF SCK         ;SEÑAL DE RELOJ
   CALL DELAY
   BCF SCK         ;"0"
   BCF SDIN      ;PREPARAMOS UN CERO
   CALL DELAY
   BSF SCK         ;SEÑAL DE RELOJ
   CALL DELAY
   BCF SCK         ;"00"
   BCF SDIN      ;PREPARAMOS UN CERO
   CALL DELAY
   BSF SCK         ;SEÑAL DE RELOJ
   CALL DELAY
   BCF SCK         ;"000"
   BCF SDIN      ;PREPARAMOS UN CERO
   CALL DELAY
   BSF SCK         ;SEÑAL DE RELOJ
   CALL DELAY
   BCF SCK         ;"0000"
   BSF SDIN
   CALL DELAY
   BSF SCK
   CALL DELAY
   BCF SCK         ;"00001"
   BCF SDIN      ;PREPARAMOS UN CERO
   CALL DELAY
   BSF SCK         ;SEÑAL DE RELOJ
   CALL DELAY
   BCF SCK         ;"000010"
   BCF SDIN      ;PREPARAMOS UN CERO
   CALL DELAY
   BSF SCK         ;SEÑAL DE RELOJ
   CALL DELAY
   BCF SCK         ;"0000100"
   BSF SDIN
   CALL DELAY
   BSF SCK
   CALL DELAY
   BCF SCK         ;"00001001"
   ;***** ENVIO COMPLETO ******
   BSF SCE         ;CHIP DISABLE   
   GOTO BUCLE

PAUSE
   MOVLW 0XFF
   MOVWF DREG3
D3   MOVLW 0XFF
   MOVWF DREG4
D1   MOVLW 0XFA
   MOVWF DREG5
D2   DECFSZ DREG5
   GOTO D2
   DECFSZ DREG4
   GOTO D1
   DECFSZ DREG3
   GOTO D3
   RETLW 00


DELAY          
   MOVLW 0XFF
   MOVWF DREG1
DELAY1
   MOVLW 0XFF
   MOVWF DREG2
DELAY2
   DECFSZ DREG2
   GOTO DELAY2
   DECFSZ DREG1
   GOTO DELAY1
   RETLW 00


END


 

anything