Autor Tema: Tutorial Manejo de GLCD con assembler, controlador KS0108B  (Leído 20698 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Enrique_86

  • PIC12
  • **
  • Mensajes: 62
Numeros y The Who
« Respuesta #15 en: 10 de Diciembre de 2008, 15:38:59 »
Bueno despues de una breve ausencia, vuelvo para postear algo que estuve haciendo en mis ratos libres, cumpliendo la tarea para mi buen amigo micro_cadaver, le dejo un post con el simbolo de the who, jeje.  :mrgreen:
En el siguiente ejemplo vamos a mostrar como visualizar numeros en el GLCD, para ello es necesario mejorar el acceso a tablas en la memoria de programa del pic, y eso lo consegui gracias al excelente post de maunix acerca de manejo de tablas (puedes revisar el post aqui), hice algunas modificaciones de las rutinas pero son minimas y creo que se pueden seguir facilmente.
Como ya habran leido el controlador KS0108B no tiene la opcion de dibujar letras o numeros como otros controladores, asi que todo grafico, letra o numero que queramos hacer hay que construirlo desde cero. Para esto me ayude del paint y de la herramienta del mikroC (GLCD bitmap editor), construi una plantilla de los numeros del uno al nueve y los coloque en tablas separadas para mostrarlas independientemente y en cualqueir lugar, tomando cuidado del tamaño que les di.
Aqui coloco el codigo:

Código: [Seleccionar]

;------------------------------------------------------
; Programa de prueba, manipulacion de LCD grafico
; utilizacion de libreria GLCD
; Autor: Enrique_86
; version: 1.0
; fecha:   25/11/08
;------------------------------------------------------
LIST P=16F877A
    INCLUDE<P16F877A.INC>
    INCLUDE<MACROPIC.INC>
   
_mensaje macro NombreMensaje
movlw LOW NombreMensaje
movwf MENSAJEADDRESS+0
movlw HIGH NombreMensaje
movwf MENSAJEADDRESS+1
movlw .48
movwf OFFSETEND
pagesel _MENSAJESTART
call _MENSAJESTART
endm
_mensaje2 macro NombreMensaje,LargoMensaje
movlw LOW NombreMensaje
movwf MENSAJEADDRESS+0
movlw HIGH NombreMensaje
movwf MENSAJEADDRESS+1
movlw LargoMensaje
movwf OFFSETEND ;Leera 3 bytes (del 0 al 2)

pagesel _MENSAJESTART
call _MENSAJESTART2

endm
;-------------------------------------------------------------------
__CONFIG _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _LVP_OFF
    errorlevel -302        ;suprime el mensaje: "not in bank 0" message
;-------------------------------------------------------------------   
CBLOCK 0x20
W_TEMP
Numero
unidades
decenas
contador
puntero
strlen
strlen2
Xpag
Yadr
LS
MENSAJEADDRESS
MENSAJEADDRESS_L
OFFSET
OFFSETEND
ENDC

ORG 0000H
goto INICIO
ORG 0004H
INICIO
clrf PORTA
clrf PORTB
clrf PORTC
clrf PORTD
clrf PORTE
banco 1
bcf TRISC,3
movlw B'00000110'
movwf ADCON1 ; PORTA y PORTE como i/o digitales
clrf TRISA
clrf TRISC
banco 0
call initGRLCD
call SETA
call ClearGLCD
call SETB
call ClearGLCD
call SETA
clrf Yadr
clrf Xpag
clrf LS
clrf Numero
mov unidades,.0
mov decenas,.1
INFINITO
call SETA
mov Xpag,.2
mov Yadr,.47
movr Numero,decenas
call Number
call SETB
mov Xpag,.2
mov Yadr,.0
movr Numero,unidades
call Number
delay_s .1
decf unidades,F
cjne unidades,.255,INFINITO
mov unidades,.9
decf decenas
cjne decenas,.255,INFINITO
mov decenas,.1
mov unidades,.0
call SETA
mov Xpag,.0
mov Yadr,.0
_mensaje2 THE_WHO_0,.255
mov Xpag,.4
mov Yadr,.0
_mensaje2 THE_WHO_1,.255
call SETB
mov Xpag,.0
mov Yadr,.0
call SetLS
_mensaje2 THE_WHO_2,.255
mov Xpag,.4
mov Yadr,.0
call SetLS
_mensaje2 THE_WHO_3,.255
delay_s .3
call ClearGLCD
call SETA
call ClearGLCD
goto INFINITO

;===================================================================
Number
cje Numero,.0,N0
cje Numero,.1,N1
cje Numero,.2,N2
cje Numero,.3,N3
cje Numero,.4,N4
cje Numero,.5,N5
cje Numero,.6,N6
cje Numero,.7,N7
cje Numero,.8,N8
cje Numero,.9,N9
return
N0: _mensaje MENSAJE0
return
N1: _mensaje MENSAJE1
return
N2: _mensaje MENSAJE2
return
N3: _mensaje MENSAJE3
return
N4: _mensaje MENSAJE4
return
N5: _mensaje MENSAJE5
return
N6: _mensaje MENSAJE6
return
N7: _mensaje MENSAJE7
return
N8: _mensaje MENSAJE8
return
N9: _mensaje MENSAJE9
return
;===================================================================
_MENSAJESTART:
clrf OFFSET
movf OFFSET,w
addwf MENSAJEADDRESS+0,f
btfsc STATUS,C
incf MENSAJEADDRESS+1,f
_MENSAJE_L01
movf Xpag,W
call SetX
movf Yadr,W
call SetY
movf LS,W
call SetLS
_MENSAJEBUCLE
pagesel MENSAJES
call MENSAJES
call EnviaCarGLCD
bcf STATUS,Z
incf MENSAJEADDRESS+0,f
btfsc STATUS,Z
incf MENSAJEADDRESS+1,f
pagesel _MENSAJEBUCLE
incf OFFSET,f
movlw .16
subwf OFFSET,W
btfsc STATUS,Z
goto IncXpag
movlw .32
subwf OFFSET,W
btfsc STATUS,Z
goto IncXpag
bcf STATUS,Z
movf OFFSET,w
subwf OFFSETEND,w
btfss STATUS,Z
goto _MENSAJEBUCLE
movlw 0x02
subwf Xpag,F
return
IncXpag
incf Xpag,F
goto _MENSAJE_L01
;===================================================================
_MENSAJESTART2:
clrf OFFSET
movf OFFSET,w
addwf MENSAJEADDRESS+0,f
btfsc STATUS,C
incf MENSAJEADDRESS+1,f
_MENSAJE_L02
movf Xpag,W
call SetX
movf Yadr,W
call SetY
;movf LS,W
;call SetLS
_MENSAJEBUCLE2
pagesel MENSAJES
call MENSAJES
call EnviaCarGLCD

bcf STATUS,Z
incf MENSAJEADDRESS+0,f
btfsc STATUS,Z
incf MENSAJEADDRESS+1,f
pagesel _MENSAJEBUCLE2
incf OFFSET,f
movlw .64
subwf OFFSET,W
btfsc STATUS,Z
goto IncXpag2
movlw .128
subwf OFFSET,W
btfsc STATUS,Z
goto IncXpag2
movlw .192
subwf OFFSET,W
btfsc STATUS,Z
goto IncXpag2
movf OFFSET,w
subwf OFFSETEND,w
btfss STATUS,Z
goto _MENSAJEBUCLE2
movlw 0x03
subwf Xpag,F
clrf OFFSET
return
IncXpag2
incf Xpag,F
goto _MENSAJE_L02
;===================================================================
INCLUDE<retardo.asm>
INCLUDE<GLCD.asm>
MENSAJES:
movf MENSAJEADDRESS+1,w
movwf PCLATH ;Guardo byte 0 del
movf MENSAJEADDRESS+0,w
movwf PCL
MENSAJE0: dt 0x00,0xF0,0xF8,0xFE,0xFF,0x1F,0x0F,0x07,0x07,0x0F,0x1F,0xFF,0xFE,0xF8,0xF0,0x00
dt 0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00
dt 0x00,0x0F,0x1F,0x7F,0xFF,0xF8,0xF0,0xE0,0xE0,0xF0,0xF8,0xFF,0x7F,0x1F,0x0F,0x00
MENSAJE1: dt 0x00,0xC0,0xE0,0xE0,0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0xF0,0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0,0xF0,0x00
MENSAJE2: dt 0x00,0xF0,0xF8,0xFC,0x1C,0x0E,0x0F,0x0F,0x0F,0x0F,0x1F,0xFE,0xFE,0xFC,0xF0,0x00
dt 0x00,0x00,0xC0,0xE0,0xF0,0xF0,0xF8,0x78,0x38,0x38,0x3C,0x3F,0x1F,0x0F,0x03,0x00
dt 0x00,0xFF,0xFF,0xFF,0xFF,0xF1,0xF0,0xF0,0xF0,0xF0,0xF0,0xFC,0xFC,0xFC,0xFC,0x00
MENSAJE3: dt 0x00,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x8F,0xFF,0xFF,0xFE,0xFC,0x00
dt 0x00,0x00,0x00,0x00,0x1E,0x1E,0x1E,0x1E,0x1E,0x3F,0x7F,0xFF,0xF3,0xE1,0xC0,0x00
dt 0x00,0xF8,0xF8,0xF8,0xF8,0xE0,0xE0,0xE0,0xF0,0xF8,0xFC,0xFF,0x7F,0x3F,0x1F,0x00
MENSAJE4: dt 0x00,0x00,0x00,0x80,0xC0,0xF0,0xFC,0x3E,0x0F,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00
dt 0x00,0xF8,0xFE,0xFF,0xCF,0xC3,0xC0,0xC0,0xC0,0xFF,0xFF,0xFF,0xFF,0xC0,0xC0,0x00
dt 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x01,0x00
MENSAJE5: dt 0x00,0xFF,0xFF,0xFF,0xFF,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00
dt 0x00,0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,0x0E,0x0E,0x0E,0x1E,0x7E,0xFE,0xFC,0xF0,0x00
dt 0x00,0x3C,0x7C,0xFC,0xFC,0xF0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF8,0xFF,0x7F,0x1F,0x00
MENSAJE6: dt 0x00,0x80,0xF0,0xFC,0xFC,0x7E,0x1F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x00,0x00
dt 0x00,0xFF,0xFF,0xFF,0xFF,0x1E,0x0E,0x0E,0x0E,0x0E,0x1E,0xFE,0xFE,0xFC,0xF0,0x00
dt 0x00,0x1F,0x3F,0x7F,0x7F,0xF0,0xE0,0xE0,0xE0,0xE0,0xF0,0x7F,0x7F,0x3F,0x1F,0x00
MENSAJE7: dt 0x00,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0xCF,0xFF,0xFF,0xFF,0x3F,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xFC,0xFF,0x3F,0x0F,0x03,0x00,0x00,0x00
dt 0x00,0x00,0xC0,0xF0,0xFC,0xFF,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00
MENSAJE8: dt 0x00,0xF0,0xFC,0xFE,0x1F,0x0F,0x07,0x07,0x07,0x07,0x0F,0x1F,0xFE,0xFC,0xF0,0x00
dt 0x00,0xC1,0xE3,0xF7,0x7F,0x3E,0x1C,0x1C,0x1C,0x1C,0x3E,0x7F,0xF7,0xE3,0xC1,0x00
dt 0x00,0x0F,0x3F,0x7F,0xF8,0xF0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF8,0x7F,0x3F,0x0F,0x00
MENSAJE9: dt 0x00,0xE0,0xF8,0xFE,0x1E,0x0F,0x07,0x07,0x07,0x0F,0x1E,0xFE,0xFC,0xF0,0xC0,0x00
dt 0x00,0x01,0x03,0x0F,0x0F,0x1E,0x1C,0x1C,0x1C,0x1E,0x0F,0xFF,0xFF,0xFF,0xFF,0x00
dt 0x00,0x00,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF8,0xFE,0x7F,0x3F,0x0F,0x03,0x00,0x00
THE_WHO_0:
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xF8,0xFE,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xDF,0xDF,0xDF
dt 0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,0x9F,0x9F,0x9F,0x8F,0x8F,0x8F,0x8F,0x8F,0x0F,0x0F
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x10,0x07,0x07,0x07
dt 0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x07,0x07,0x07,0xFF,0xFF,0xFF,0xFF,0xE0,0x70
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x00,0x00
THE_WHO_1:
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xE0,0x80,0x00,0x00,0x00,0x3E,0xFE,0xFE
dt 0xFE,0xFC,0xC0,0xE0,0xF8,0xFE,0xFE,0xFE,0xFE,0xF8,0xE0,0xC0,0xFC,0xFE,0xFE,0xFE
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF8,0xE0,0xC3,0x1F
dt 0x7F,0xFF,0xFF,0xFF,0x7F,0x1F,0x07,0x03,0x1F,0x7F,0xFF,0xFF,0xFF,0x7F,0x1F,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x1F,0x3F,0x7F
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFE,0xFE,0xFE,0xFE,0xFC,0xFC,0xFC,0xF8,0xF8,0xF0,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x03,0x07,0x0F,0x0F,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
THE_WHO_2:
dt 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x1F,0x1F,0x1F,0x3F,0x3F,0x7F,0x7F,0x3F
dt 0xBF,0xBF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0xF8,0xF8,0xF8,0xF0,0xE0,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x3C,0x1E,0xFF
dt 0xFF,0xFF,0xFF,0x1E,0x3D,0x01,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xE0,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xFF,0xFF,0x33,0x33,0x3F,0x3F,0x3E,0x1C,0xFF
dt 0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x07,0x0F,0x0F,0x0C,0x0C,0x0F,0x0F,0x07,0x03,0xFF
dt 0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
THE_WHO_3:
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0x1C,0x0E,0xFE,0xFE,0xFE,0xFC,0xF8,0x80,0xC0,0xE0,0xFF
dt 0x7F,0xFF,0xFF,0xE0,0xC0,0x00,0x00,0x00,0x80,0xF0,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x01,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xC0
dt 0x80,0xC0,0xFF,0xFF,0x7F,0x00,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF8,0xF8,0xF8,0xFC,0xFC,0xFD,0xFD
dt 0xFD,0xFD,0xFD,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0x7F,0x1F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
dt 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x1F,0x1F,0x0F,0x07,0x03
dt 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
dt 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
;===================================================================
END


Corriendo el programa obtendran una cuenta regresiva del 10 al 0 y luego de ello se visualizara a The who, algo asi:


Espero que esto les sea de utilidad, y en cuanto pueda subire mas ejemplos.. Saludos.  :-)

PD: adjunto las plantillas de los numeros por si lo quisieran modificar.
« Última modificación: 10 de Diciembre de 2008, 15:43:13 por Enrique_86 »
...enrique  :-)

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #16 en: 11 de Diciembre de 2008, 16:41:56 »
Enrique, te quedo chevere  :-/

dime cuanto ocupa cada imagen? se podria utilizar una memoria SD para jalar de ahi las imagenes y poder hacer un banco de archivos para un proyecto particular como un jueguito o algo asi.

saludos!
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #17 en: 12 de Diciembre de 2008, 12:55:22 »
buenísimo el trabajo enrique, ahora que puedo me pongo al día con esto y se los mostraré también, con este tutorial ya estoy en onda :-/ :-/
.

Desconectado Kardia

  • PIC10
  • *
  • Mensajes: 5
Codigo LCD...???
« Respuesta #18 en: 12 de Diciembre de 2008, 23:11:44 »
Estos codigos pueden tomarse en cuenta para cualquier otro PIC, como por ejmplo el 16F84  :shock: :shock:

Salu2

Desconectado Enrique_86

  • PIC12
  • **
  • Mensajes: 62
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #19 en: 14 de Diciembre de 2008, 16:53:47 »
Respondiendo a la pregunta de micro_cadaver, cada imagen en pantalla completa para el GLCD que estamos viendo pesa 1KB, pero a veces no es necesario pintar toda la pantalla por lo que la imagen puede pesar menos.
Respondiendo a Kardia, si se podrian tomar en cuenta para otro pic, pero teneindo en cuenta que tengan los suficientes pines para manejar el GLCD y que tenga la memoria suficiente para almacenar los graficos que quieras hacer, supongo que un 16f84 te quedaria corto para implementar cosas como las que estamos viendo aqui. Saludos
« Última modificación: 14 de Diciembre de 2008, 16:57:16 por Enrique_86 »
...enrique  :-)

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #20 en: 15 de Diciembre de 2008, 15:09:18 »
hola enrique gracias por responder, dime y piensas migrar el código a C, supongo que ahi será más sencillo el manejar las tablas. sobre todo por el peso de las imágenes (máximo 1kb)
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #21 en: 27 de Enero de 2009, 03:46:18 »
Saludos:

El lcd lo compraste en Perú? se puede saber a cuanto? Alguien sabe donde comprar uno a un precio comodo?

Javicho.

Desconectado Enrique_86

  • PIC12
  • **
  • Mensajes: 62
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #22 en: 27 de Enero de 2009, 11:14:20 »
hola enrique gracias por responder, dime y piensas migrar el código a C, supongo que ahi será más sencillo el manejar las tablas. sobre todo por el peso de las imágenes (máximo 1kb)

Hola Micro_cadaver
Si en un futuro se piensa migrar a C, por ahora he dejado un poco abandonado este hilo por cuestiones de tiempo :? pero espero retomarlo pronto. Saludos  :mrgreen:
...enrique  :-)

Desconectado Enrique_86

  • PIC12
  • **
  • Mensajes: 62
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #23 en: 27 de Enero de 2009, 11:23:31 »
Saludos:

El lcd lo compraste en Perú? se puede saber a cuanto? Alguien sabe donde comprar uno a un precio comodo?

Javicho.


Hola Javicho, bueno el LCD con el que trabaje digamos que lo encontre, pero estoy seguro que en paruro lo venden, solo es cuestion de buscar bien y deben estar algo de 20 dolares. Saludos. :-)
...enrique  :-)

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #24 en: 29 de Enero de 2009, 18:41:11 »
Hola Enrique_86:

Hay varios que venden en paruro pero son de segunda mano, necesito nuevos pero a un precio razonable, solo encontré en una tienda nuevos y en stock pero a $26 aprox. y es mucho, por eso sigo buscando alguna tienda que tenga en stock y a un mejor precio.

Javicho.

Desconectado carlosarguello

  • PIC10
  • *
  • Mensajes: 1
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #25 en: 23 de Marzo de 2009, 14:43:55 »
excelente tutorial te mereces un diez todo muy bien detallado gracias¡¡ :-/ :mrgreen:

Desconectado diego_z

  • PIC16
  • ***
  • Mensajes: 225
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #26 en: 25 de Marzo de 2009, 00:52:39 »
hola si alguien tiene la libreria y la quiere subir  MACROPIC.INC le agradecere ya que en este post no estan mas
,,,,option,,,,,,,,,,,explicit,,,,,,,

DR800 big a la venta ,solo argentina por privado

Desconectado liet

  • PIC10
  • *
  • Mensajes: 3
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #27 en: 08 de Abril de 2009, 22:09:57 »
   Ante todo muy buenos días a todos, desde hace un tiempo atras a estado tratando de encender aunquesea un puntito en la pantalla de una GLCD y no e podido hacer nada, e estalo leyendo y hay cosas que no tentiendo, bueno si alguien pudiera tomarse la molestia de explicarme cual el la secuencia para pintar un puntico tan siquiera en esa pantalla, me explico mejor, que tengo que hacer primero a quien habilito que comando envio luego que mas hago cuales son esos pasas para que se dibuje un solo punto.......

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #28 en: 10 de Abril de 2009, 10:53:57 »
1ro- conexionado correcto, revisar control de contraste, backlight (si es que tiene) y asegurar el reset.
2do- desde el micro enviar a los módulos el comando DISPLAY ON, es decir habilitando el CS1 y el CS2, RS en 0, RW en 0, le envias por el bus la data 0X3F.
3ro- dar un pulso al ENABLE del glcd

luego de esto ya puedes seguir con las secuencias de escritura.

saludos  :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado PALIO_TD98

  • PIC10
  • *
  • Mensajes: 5
Re: Tutorial Manejo de GLCD con assembler, controlador KS0108B
« Respuesta #29 en: 27 de Noviembre de 2010, 16:46:27 »
Hola chicos, pasó Mucho tiempo de este post, pero bueno, uno buscando encuentra de todo, y me interesó mucho el tema de los lcd gráficos, manejo los lcd de caracteres, pero estos jamás....
Ahora bien, estos GLCD, no tienen alguna función para meter caracteres entre el gráfico, o hay que "dibujarlos" ???? Y por otro lado, agradezco al tutorial que brindaron, dado que NUNCA ENCONTRE NADA DE COMO MANEJAR UN GLCD, no se si "se guardan la información", o que, pero no he visto nada, y menos en Assembler, que es lo que manejo por ahora, ya que C, todavía me falta muchisimo.....

Muchas Gracias...