Para los alumnos de microcontroladores implementar el Laboratorio :"Panel 8x8 con PIC16F628A"
Hacer las siguientes modificaciones:
A.- Modificar el tipo de letra que se muestra, pasar a letra corrida, si la memoria del micro no alcanza pasarlo al PIC16F877A o similar
B. Implementar Panel de mensajes 8x48 con PIC16F877A.
A continuación les mostrare que si se puede implementar un pequeño panel 8x8 de solo mensajes con el PIC 16F628A simulado en el ISIS PROTEUS., Cuando lo implementen y los led no tienen mucho brillo agregar
8 transistores para las FIlas y el ULN2803 para las columnas
'******************************************************************************
define OSC 8
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_BAUD 4800
RCIF VAR PIR1.5 ' Alias RCIF (USART Receive Interrupt Flag)
OERR VAR RCSTA.1 ' Alias OERR (USART Overrun Error Flag)
CREN VAR RCSTA.4 ' Alias CREN (USART Continuous Receive Enable)
INTCON = %11000000 ' Enable interrupts
ON INTERRUPT GoTo MSG ' Declare interrupt handler routine
PIE1.5 = 1 ' Enable interrupt on USART
'******************************************************************************
'VARAIABLES PARA MENSAJE O VISUALIZACION EN PANEL
B1 var Byte:B var Byte : X VAR Byte:I VAR Word : V VAR Byte : B2 VAR BYTE
C VAR Word : W VAR WORD:Velocidad VAR Byte
Col_texto VAR Word:y var byte:dato var byte:d var byte:direccion var word
Cuadro_temp VAR Byte [8]:Dat VAR Byte [9]
mensaje VAR Byte [40]:Longitud var Word:Letra var byte
Dirf2 VAR Word :CAR VAR BYTE:
'*******************************************************************************
'PINES DE USADOS PARA MEMORIA SERIAL
SDA VAR PORTA.3
SCK VAR PORTA.4
cont Con %10100000
'********************************************************************************
TRISA=0 :PORTA=0
CAR=1
'*******************************************************************************
I2cREAD SDA,SCK,CONT,510,[COL_TEXTO]
pause 100
'*******************************************************************************
'///////////////////////////////////////////////////////////////////////////////
INICIO:
CAR=1
w=0
For I = 1 To Col_texto
W = I
For B = 1 To 8'Columnas
I2CREAD SDA,SCK,CONT,W,[B1]
'B1.0=B2.7:B1.1=B2.6:B1.2=B2.5: B1.3=B2.4
'B1.4=B2.3:B1.5=B2.2:B1.6=B2.1: B1.7=B2.0
Cuadro_temp[b] = ~B1
W = W + 1
Next B
Gosub Desplegar
Next I
GOTO INICIO
'*******************************************************************************
Desplegar:
FOR V = 0 To 10'velocidad 'Velocidad
PORTA.1=1 ' DATOS REGISTRO
For X = 1 To 8'Columnas
Toggle PortA.0 ' CLOCK DEL REGISTRO
PORTA.1=0
Toggle PortA.0
Toggle PortA.2 ' LATCH DEL REGISTRO
Shiftout Portb.3 , Portb.0 ,4,[Cuadro_temp(x)]
Toggle Portb.4
Toggle Portb.4
Toggle PortA.2
PAUSEUS 800' TIEMPO
'portb = 255
Next X
Next V
Return
'*******************************************************************************
disable
'///////////////////////////////////////////////////////////////////////////////
'****/////RUTINA GRABA MENSAJE EN MEMORIA FLASH EEPROM 24C32 ///////***********
'***** SI SE RECIBE BYTE "*" SE PROCEDE HA LEER MENSAJE Y GRABAR EN EEPROM*****
MSG:
HSERIN [WAIT ("*"),STR MENSAJE \60\"."]
I=0
WHILE CAR <> 0
LETRA= MENSAJE(I)
I=I+1
IF LETRA="," THEN
CAR=0
ENDIF
WEND
LONGITUD=I
'*******************************************************************************
Direccion = 7
'SI MENSAJE ES MEOR A 3 CARACTERES NO SE MUESTRA SOLO SE GUARDA EFECTO
IF LONGITUD < 3 THEN
RESUME
ENDIF
'################################################################################
'Lee letra por letra y graba en memoria serial 24C32
For I = 0 To Longitud
LETRA=MENSAJE(I)
Select Case Letra
'***************************LETRAS MAYUSCULAS***********************************
Case "A","a"
Dat(1) = 63
Dat(2) = 127
Dat(3) = 200
Dat(4) = 72
Dat(5) = 63
Dat(6) = 0
Y = 6
Gosub Grabar
Case "B","b"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 145
Dat(4) = 145
Dat(5) = 110
Dat(6) = 0
Y = 6
Gosub Grabar
Case "C","c"
Dat(1) = 126
Dat(2) = 255
Dat(3) = 129
Dat(4) = 129
Dat(5) = 66
Dat(6) = 0
Y = 6
Gosub Grabar
Case "D","d"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 129
Dat(4) = 129
Dat(5) = 126
Dat(6) = 0
Y = 6
Gosub Grabar
Case "E","e"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 145
Dat(4) = 145
Dat(5) = 129
Dat(6) = 0
Y = 6
Gosub Grabar
Case "F","f"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 136
Dat(4) = 136
Dat(5) = 128
Dat(6) = 0
Y = 6
Gosub Grabar
Case "G","g"
Dat(1) = 126
Dat(2) = 255
Dat(3) = 139
Dat(4) = 139
Dat(5) = 78
Dat(6) = 0
Y = 6
Gosub Grabar
Case "H","h"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 16
Dat(4) = 16
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "I","i"
Dat(1) = 129
Dat(2) = 129
Dat(3) = 255
Dat(4) = 129
Dat(5) = 129
Dat(6) = 0
Y = 6
Gosub Grabar
Case "J","j"
Dat(1) = 135
Dat(2) = 129
Dat(3) = 129
Dat(4) = 255
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "K","k"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 40
Dat(4) = 68
Dat(5) = 131
Dat(6) = 0
Y = 6
Gosub Grabar
Case "L","l"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 1
Dat(4) = 1
Dat(5) = 1
Dat(6) = 0
Y = 6
Gosub Grabar
Case "M","m"
Dat(1) = 255
Dat(2) = 64
Dat(3) = 32
Dat(4) = 64
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "N","n"
Dat(1) = 255
Dat(2) = 64
Dat(3) = 32
Dat(4) = 16
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "+"
Dat(1) = 63
Dat(2) = 160
Dat(3) = 144
Dat(4) = 136
Dat(5) = 63
Dat(6) = 0
Y = 6
Gosub Grabar
Case "O","o"
Dat(1) = 126
Dat(2) = 129
Dat(3) = 129
Dat(4) = 129
Dat(5) = 126
Dat(6) = 0
Y = 6
Gosub Grabar
Case "P","p"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 136
Dat(4) = 136
Dat(5) = 112
Dat(6) = 0
Y = 6
Gosub Grabar
Case "Q","q"
Dat(1) = 126
Dat(2) = 129
Dat(3) = 141
Dat(4) = 130
Dat(5) = 125
Dat(6) = 0
Y = 6
Gosub Grabar
Case "R","r"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 152
Dat(4) = 148
Dat(5) = 146
Dat(6) = 97
Dat(7) = 0
Y = 7
Gosub Grabar
Case "S","s"
Dat(1) = 98
Dat(2) = 145
Dat(3) = 145
Dat(4) = 145
Dat(5) = 78
Dat(6) = 0
Y = 6
Gosub Grabar
Case "T","t"
Dat(1) = 128
Dat(2) = 128
Dat(3) = 255
Dat(4) = 128
Dat(5) = 128
Dat(6) = 0
Y = 6
Gosub Grabar
Case "U","u"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 1
Dat(4) = 1
Dat(5) = 254
Dat(6) = 0
Y = 6
Gosub Grabar
Case "V","v"
Dat(1) = 252
Dat(2) = 2
Dat(3) = 1
Dat(4) = 2
Dat(5) = 252
Dat(6) = 0
Y = 6
Gosub Grabar
Case "W","w"
Dat(1) = 255
Dat(2) = 2
Dat(3) = 4
Dat(4) = 2
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "X","x"
Dat(1) = 129
Dat(2) = 66
Dat(3) = 36
Dat(4) = 24
Dat(5) = 36
Dat(6) = 66
Dat(7) = 129
Dat(8) = 0
Y = 8
Gosub Grabar
Case "Y","y"
Dat(1) = 128
Dat(2) = 64
Dat(3) = 63
Dat(4) = 64
Dat(5) = 128
Dat(6) = 0
Y = 6
Gosub Grabar
Case "Z","z"
Dat(1) = 135
Dat(2) = 137
Dat(3) = 145
Dat(4) = 161
Dat(5) = 193
Dat(6) = 0
Y = 6
Gosub Grabar
'************************************NUMEROS************************************
Case "1"
Dat(1) = 16
Dat(2) = 32
Dat(3) = 64
Dat(4) = 255
Dat(5) = 0
Y = 5
Gosub Grabar
Case "2"
Dat(1) = 67
Dat(2) = 133
Dat(3) = 137
Dat(4) = 145
Dat(5) = 97
Dat(6) = 0
Y = 6
Gosub Grabar
Case "3"
Dat(1) = 66
Dat(2) = 129
Dat(3) = 137
Dat(4) = 137
Dat(5) = 118
Dat(6) = 0
Y = 6
Gosub Grabar
Case "4"
Dat(1) = 8
Dat(2) = 24
Dat(3) = 40
Dat(4) = 72
Dat(5) = 255
Dat(6) = 8
Dat(7) = 0
Y = 7
Gosub Grabar
Case "5"
Dat(1) = 241
Dat(2) = 145
Dat(3) = 145
Dat(4) = 145
Dat(5) = 142
Dat(6) = 0
Y = 6
Gosub Grabar
Case "6"
Dat(1) = 126
Dat(2) = 137
Dat(3) = 137
Dat(4) = 137
Dat(5) = 70
Dat(6) = 0
Y = 6
Gosub Grabar
Case "7"
Dat(1) = 128
Dat(2) = 128
Dat(3) = 135
Dat(4) = 136
Dat(5) = 240
Dat(6) = 0
Y = 6
Gosub Grabar
Case "8"
Dat(1) = 118
Dat(2) = 137
Dat(3) = 137
Dat(4) = 137
Dat(5) = 118
Dat(6) = 0
Y = 6
Gosub Grabar
Case "9"
Dat(1) = 112
Dat(2) = 136
Dat(3) = 136
Dat(4) = 136
Dat(5) = 127
Dat(6) = 0
Y = 6
Gosub Grabar
Case "0"
Dat(1) = 126
Dat(2) = 225
Dat(3) = 145
Dat(4) = 137
Dat(5) = 135
Dat(6) = 126
Dat(7) = 0
Y = 7
Gosub Grabar
'***********************************SIGNOS**************************************
Case " " 'espacio
Dat(1) = 0
Dat(2) = 0
Dat(3) = 0
Y = 3
Gosub Grabar
Case "%" ' cara feliz
Dat(1) = 60
Dat(2) = 66
Dat(3) = 169
Dat(4) = 133
Dat(5) = 133
Dat(6) = 169
Dat(7) = 66
Dat(8) = 60
Dat(9) = 0
Y = 9
Gosub Grabar
Case ")" ' cara TRISTE
Dat(1) = 60
Dat(2) = 66
Dat(3) = 165
Dat(4) = 137
Dat(5) = 137
Dat(6) = 165
Dat(7) = 66
Dat(8) = 60
Dat(9) = 0
Y = 9
Gosub Grabar
Case "$" 'corazon
Dat(1) = 112
Dat(2) = 248
Dat(3) = 124
Dat(4) = 62
Dat(5) = 63
Dat(6) = 124
Dat(7) = 248
Dat(8) = 112
Dat(9) = 0
Y = 9
Gosub Grabar
Case "&" 'corazon ROTO
Dat(1) = 112
Dat(2) = 248
Dat(3) = 120
Dat(4) = 54
Dat(5) = 39
Dat(6) = 92
Dat(7) = 152
Dat(8) = 112
Dat(9) = 0
Y = 9
Gosub Grabar
Case "?" 'interrogacion
Dat(1) = 64
Dat(2) = 128
Dat(3) = 128
Dat(4) = 141
Dat(5) = 144
Dat(6) = 96
Dat(7) = 0
Y = 7
Gosub Grabar
Case "(" ' telefono
Dat(1) = 14
Dat(2) = 7
Dat(3) = 7
Dat(4) = 14
Dat(5) = 220
Dat(6) = 248
Dat(7) = 112
Dat(8) = 0
Y = 8
Gosub Grabar
'*******************************letras minusculas******************************
Case Else
Dat(1) = 0
Y = 1
Gosub Grabar
End Select
Next I
COL_TEXTO = Direccion ' total de bytes incluido los 48 bytes iniciales
Dirf2 = COL_TEXTO + 8 ' sele agrega 48 ceros al final
Dato = 0
For I = COL_TEXTO To Dirf2
I2cWRITE SDA,SCK,CONT,i,[dato] ' graba 48 ceros al final de mensaje
pause 10
Next I
'GRABA EL VALOR DE LA CANTIDAD DE BYTES DEL MENSAJE EN LA POSICION 510
I2cWRITE SDA,SCK,CONT,510,[COL_TEXTO]
pause 10
Dato = 0
For I = 0 To 7
I2cWRITE SDA,SCK,CONT,i,[dato]
pause 10
Next I
RESUME
'################################################################################
'*******************************************************************************
grabar: ' grabar en memoria los bytes de las letras del mensaje
For D = 1 To Y
Direccion = Direccion + 1
Dato = Dat(d)
I2cWRITE SDA,SCK,CONT,DIRECCION,[dato]
pause 10
Next d
return
'******************************************************************************
Hacer las siguientes modificaciones:
A.- Modificar el tipo de letra que se muestra, pasar a letra corrida, si la memoria del micro no alcanza pasarlo al PIC16F877A o similar
B. Implementar Panel de mensajes 8x48 con PIC16F877A.
A continuación les mostrare que si se puede implementar un pequeño panel 8x8 de solo mensajes con el PIC 16F628A simulado en el ISIS PROTEUS., Cuando lo implementen y los led no tienen mucho brillo agregar
8 transistores para las FIlas y el ULN2803 para las columnas
'******************************************************************************
define OSC 8
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_BAUD 4800
RCIF VAR PIR1.5 ' Alias RCIF (USART Receive Interrupt Flag)
OERR VAR RCSTA.1 ' Alias OERR (USART Overrun Error Flag)
CREN VAR RCSTA.4 ' Alias CREN (USART Continuous Receive Enable)
INTCON = %11000000 ' Enable interrupts
ON INTERRUPT GoTo MSG ' Declare interrupt handler routine
PIE1.5 = 1 ' Enable interrupt on USART
'******************************************************************************
'VARAIABLES PARA MENSAJE O VISUALIZACION EN PANEL
B1 var Byte:B var Byte : X VAR Byte:I VAR Word : V VAR Byte : B2 VAR BYTE
C VAR Word : W VAR WORD:Velocidad VAR Byte
Col_texto VAR Word:y var byte:dato var byte:d var byte:direccion var word
Cuadro_temp VAR Byte [8]:Dat VAR Byte [9]
mensaje VAR Byte [40]:Longitud var Word:Letra var byte
Dirf2 VAR Word :CAR VAR BYTE:
'*******************************************************************************
'PINES DE USADOS PARA MEMORIA SERIAL
SDA VAR PORTA.3
SCK VAR PORTA.4
cont Con %10100000
'********************************************************************************
TRISA=0 :PORTA=0
CAR=1
'*******************************************************************************
I2cREAD SDA,SCK,CONT,510,[COL_TEXTO]
pause 100
'*******************************************************************************
'///////////////////////////////////////////////////////////////////////////////
INICIO:
CAR=1
w=0
For I = 1 To Col_texto
W = I
For B = 1 To 8'Columnas
I2CREAD SDA,SCK,CONT,W,[B1]
'B1.0=B2.7:B1.1=B2.6:B1.2=B2.5: B1.3=B2.4
'B1.4=B2.3:B1.5=B2.2:B1.6=B2.1: B1.7=B2.0
Cuadro_temp[b] = ~B1
W = W + 1
Next B
Gosub Desplegar
Next I
GOTO INICIO
'*******************************************************************************
Desplegar:
FOR V = 0 To 10'velocidad 'Velocidad
PORTA.1=1 ' DATOS REGISTRO
For X = 1 To 8'Columnas
Toggle PortA.0 ' CLOCK DEL REGISTRO
PORTA.1=0
Toggle PortA.0
Toggle PortA.2 ' LATCH DEL REGISTRO
Shiftout Portb.3 , Portb.0 ,4,[Cuadro_temp(x)]
Toggle Portb.4
Toggle Portb.4
Toggle PortA.2
PAUSEUS 800' TIEMPO
'portb = 255
Next X
Next V
Return
'*******************************************************************************
disable
'///////////////////////////////////////////////////////////////////////////////
'****/////RUTINA GRABA MENSAJE EN MEMORIA FLASH EEPROM 24C32 ///////***********
'***** SI SE RECIBE BYTE "*" SE PROCEDE HA LEER MENSAJE Y GRABAR EN EEPROM*****
MSG:
HSERIN [WAIT ("*"),STR MENSAJE \60\"."]
I=0
WHILE CAR <> 0
LETRA= MENSAJE(I)
I=I+1
IF LETRA="," THEN
CAR=0
ENDIF
WEND
LONGITUD=I
'*******************************************************************************
Direccion = 7
'SI MENSAJE ES MEOR A 3 CARACTERES NO SE MUESTRA SOLO SE GUARDA EFECTO
IF LONGITUD < 3 THEN
RESUME
ENDIF
'################################################################################
'Lee letra por letra y graba en memoria serial 24C32
For I = 0 To Longitud
LETRA=MENSAJE(I)
Select Case Letra
'***************************LETRAS MAYUSCULAS***********************************
Case "A","a"
Dat(1) = 63
Dat(2) = 127
Dat(3) = 200
Dat(4) = 72
Dat(5) = 63
Dat(6) = 0
Y = 6
Gosub Grabar
Case "B","b"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 145
Dat(4) = 145
Dat(5) = 110
Dat(6) = 0
Y = 6
Gosub Grabar
Case "C","c"
Dat(1) = 126
Dat(2) = 255
Dat(3) = 129
Dat(4) = 129
Dat(5) = 66
Dat(6) = 0
Y = 6
Gosub Grabar
Case "D","d"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 129
Dat(4) = 129
Dat(5) = 126
Dat(6) = 0
Y = 6
Gosub Grabar
Case "E","e"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 145
Dat(4) = 145
Dat(5) = 129
Dat(6) = 0
Y = 6
Gosub Grabar
Case "F","f"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 136
Dat(4) = 136
Dat(5) = 128
Dat(6) = 0
Y = 6
Gosub Grabar
Case "G","g"
Dat(1) = 126
Dat(2) = 255
Dat(3) = 139
Dat(4) = 139
Dat(5) = 78
Dat(6) = 0
Y = 6
Gosub Grabar
Case "H","h"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 16
Dat(4) = 16
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "I","i"
Dat(1) = 129
Dat(2) = 129
Dat(3) = 255
Dat(4) = 129
Dat(5) = 129
Dat(6) = 0
Y = 6
Gosub Grabar
Case "J","j"
Dat(1) = 135
Dat(2) = 129
Dat(3) = 129
Dat(4) = 255
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "K","k"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 40
Dat(4) = 68
Dat(5) = 131
Dat(6) = 0
Y = 6
Gosub Grabar
Case "L","l"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 1
Dat(4) = 1
Dat(5) = 1
Dat(6) = 0
Y = 6
Gosub Grabar
Case "M","m"
Dat(1) = 255
Dat(2) = 64
Dat(3) = 32
Dat(4) = 64
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "N","n"
Dat(1) = 255
Dat(2) = 64
Dat(3) = 32
Dat(4) = 16
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "+"
Dat(1) = 63
Dat(2) = 160
Dat(3) = 144
Dat(4) = 136
Dat(5) = 63
Dat(6) = 0
Y = 6
Gosub Grabar
Case "O","o"
Dat(1) = 126
Dat(2) = 129
Dat(3) = 129
Dat(4) = 129
Dat(5) = 126
Dat(6) = 0
Y = 6
Gosub Grabar
Case "P","p"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 136
Dat(4) = 136
Dat(5) = 112
Dat(6) = 0
Y = 6
Gosub Grabar
Case "Q","q"
Dat(1) = 126
Dat(2) = 129
Dat(3) = 141
Dat(4) = 130
Dat(5) = 125
Dat(6) = 0
Y = 6
Gosub Grabar
Case "R","r"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 152
Dat(4) = 148
Dat(5) = 146
Dat(6) = 97
Dat(7) = 0
Y = 7
Gosub Grabar
Case "S","s"
Dat(1) = 98
Dat(2) = 145
Dat(3) = 145
Dat(4) = 145
Dat(5) = 78
Dat(6) = 0
Y = 6
Gosub Grabar
Case "T","t"
Dat(1) = 128
Dat(2) = 128
Dat(3) = 255
Dat(4) = 128
Dat(5) = 128
Dat(6) = 0
Y = 6
Gosub Grabar
Case "U","u"
Dat(1) = 255
Dat(2) = 255
Dat(3) = 1
Dat(4) = 1
Dat(5) = 254
Dat(6) = 0
Y = 6
Gosub Grabar
Case "V","v"
Dat(1) = 252
Dat(2) = 2
Dat(3) = 1
Dat(4) = 2
Dat(5) = 252
Dat(6) = 0
Y = 6
Gosub Grabar
Case "W","w"
Dat(1) = 255
Dat(2) = 2
Dat(3) = 4
Dat(4) = 2
Dat(5) = 255
Dat(6) = 0
Y = 6
Gosub Grabar
Case "X","x"
Dat(1) = 129
Dat(2) = 66
Dat(3) = 36
Dat(4) = 24
Dat(5) = 36
Dat(6) = 66
Dat(7) = 129
Dat(8) = 0
Y = 8
Gosub Grabar
Case "Y","y"
Dat(1) = 128
Dat(2) = 64
Dat(3) = 63
Dat(4) = 64
Dat(5) = 128
Dat(6) = 0
Y = 6
Gosub Grabar
Case "Z","z"
Dat(1) = 135
Dat(2) = 137
Dat(3) = 145
Dat(4) = 161
Dat(5) = 193
Dat(6) = 0
Y = 6
Gosub Grabar
'************************************NUMEROS************************************
Case "1"
Dat(1) = 16
Dat(2) = 32
Dat(3) = 64
Dat(4) = 255
Dat(5) = 0
Y = 5
Gosub Grabar
Case "2"
Dat(1) = 67
Dat(2) = 133
Dat(3) = 137
Dat(4) = 145
Dat(5) = 97
Dat(6) = 0
Y = 6
Gosub Grabar
Case "3"
Dat(1) = 66
Dat(2) = 129
Dat(3) = 137
Dat(4) = 137
Dat(5) = 118
Dat(6) = 0
Y = 6
Gosub Grabar
Case "4"
Dat(1) = 8
Dat(2) = 24
Dat(3) = 40
Dat(4) = 72
Dat(5) = 255
Dat(6) = 8
Dat(7) = 0
Y = 7
Gosub Grabar
Case "5"
Dat(1) = 241
Dat(2) = 145
Dat(3) = 145
Dat(4) = 145
Dat(5) = 142
Dat(6) = 0
Y = 6
Gosub Grabar
Case "6"
Dat(1) = 126
Dat(2) = 137
Dat(3) = 137
Dat(4) = 137
Dat(5) = 70
Dat(6) = 0
Y = 6
Gosub Grabar
Case "7"
Dat(1) = 128
Dat(2) = 128
Dat(3) = 135
Dat(4) = 136
Dat(5) = 240
Dat(6) = 0
Y = 6
Gosub Grabar
Case "8"
Dat(1) = 118
Dat(2) = 137
Dat(3) = 137
Dat(4) = 137
Dat(5) = 118
Dat(6) = 0
Y = 6
Gosub Grabar
Case "9"
Dat(1) = 112
Dat(2) = 136
Dat(3) = 136
Dat(4) = 136
Dat(5) = 127
Dat(6) = 0
Y = 6
Gosub Grabar
Case "0"
Dat(1) = 126
Dat(2) = 225
Dat(3) = 145
Dat(4) = 137
Dat(5) = 135
Dat(6) = 126
Dat(7) = 0
Y = 7
Gosub Grabar
'***********************************SIGNOS**************************************
Case " " 'espacio
Dat(1) = 0
Dat(2) = 0
Dat(3) = 0
Y = 3
Gosub Grabar
Case "%" ' cara feliz
Dat(1) = 60
Dat(2) = 66
Dat(3) = 169
Dat(4) = 133
Dat(5) = 133
Dat(6) = 169
Dat(7) = 66
Dat(8) = 60
Dat(9) = 0
Y = 9
Gosub Grabar
Case ")" ' cara TRISTE
Dat(1) = 60
Dat(2) = 66
Dat(3) = 165
Dat(4) = 137
Dat(5) = 137
Dat(6) = 165
Dat(7) = 66
Dat(8) = 60
Dat(9) = 0
Y = 9
Gosub Grabar
Case "$" 'corazon
Dat(1) = 112
Dat(2) = 248
Dat(3) = 124
Dat(4) = 62
Dat(5) = 63
Dat(6) = 124
Dat(7) = 248
Dat(8) = 112
Dat(9) = 0
Y = 9
Gosub Grabar
Case "&" 'corazon ROTO
Dat(1) = 112
Dat(2) = 248
Dat(3) = 120
Dat(4) = 54
Dat(5) = 39
Dat(6) = 92
Dat(7) = 152
Dat(8) = 112
Dat(9) = 0
Y = 9
Gosub Grabar
Case "?" 'interrogacion
Dat(1) = 64
Dat(2) = 128
Dat(3) = 128
Dat(4) = 141
Dat(5) = 144
Dat(6) = 96
Dat(7) = 0
Y = 7
Gosub Grabar
Case "(" ' telefono
Dat(1) = 14
Dat(2) = 7
Dat(3) = 7
Dat(4) = 14
Dat(5) = 220
Dat(6) = 248
Dat(7) = 112
Dat(8) = 0
Y = 8
Gosub Grabar
'*******************************letras minusculas******************************
Case Else
Dat(1) = 0
Y = 1
Gosub Grabar
End Select
Next I
COL_TEXTO = Direccion ' total de bytes incluido los 48 bytes iniciales
Dirf2 = COL_TEXTO + 8 ' sele agrega 48 ceros al final
Dato = 0
For I = COL_TEXTO To Dirf2
I2cWRITE SDA,SCK,CONT,i,[dato] ' graba 48 ceros al final de mensaje
pause 10
Next I
'GRABA EL VALOR DE LA CANTIDAD DE BYTES DEL MENSAJE EN LA POSICION 510
I2cWRITE SDA,SCK,CONT,510,[COL_TEXTO]
pause 10
Dato = 0
For I = 0 To 7
I2cWRITE SDA,SCK,CONT,i,[dato]
pause 10
Next I
RESUME
'################################################################################
'*******************************************************************************
grabar: ' grabar en memoria los bytes de las letras del mensaje
For D = 1 To Y
Direccion = Direccion + 1
Dato = Dat(d)
I2cWRITE SDA,SCK,CONT,DIRECCION,[dato]
pause 10
Next d
return
'******************************************************************************
No hay comentarios:
Publicar un comentario