Paso 6: USB basados en LCD
Añadir USB a una pantalla LCD es fácil. Matriz Orbital tiene una muestra de gama de USB base ya que también usa chips FTDI. Ellos utiliza el FT232 chip serial USB <> –. Nosotros vamos a usar el mismo circuito anterior, con un HD44780 LCD conectado y el código modificado para que puedan enviar comandos o datos para la pantalla. En este ejemplo no tiene tantas características como la gama Matrix Orbital (como no quiero un smart-hey me dieron muestras gratis después de todo!), pero va a ser utilizable en RS232 o USB. El ejemplo utiliza el chip paralelo USB FT245 <> =.circuito de < aquí >
Este código todavía no está completo. La versión final podrá elegir entre de RS232 o USB, soporte varios comandos, etc.. Este código es un ejemplo simple que muestra que la idea funciona.
' {$STAMP BS2}
' *** DECLARAR VARIABLES ***
' CONSTANTES DE
EnableLCD CON 8' pin Enable del LCD (1 = habilitado)
RW CON 9
RS CON 10' Select Register (1 = char)
readUSB CON 11 ' P11 = /RD del módulo USB
ClrLCD CON $01 ' limpiar la pantalla LCD
CrsrHm CON $02 ' desplazar cursor a la posición inicial
CrsrLf CON $10 ' mover cursor a la izquierda
CrsrRt CON $14 ' desplazar cursor a la derecha
DispLf CON $18 ' caracteres de cambio aparecido a la izquierda
DispRt CON $1 ' shift muestra caracteres derecho
DDRam CON $80 ' control de datos RAM de Display
CGRam CON $40 ' carácter Custom RAM
Line1 CON $80 ' Dirección DDRAM de línea 1
Línea 2 CON $C0 ' Dirección DDRAM de línea 2
' Variables
char VAR Byte ' carácter enviado al LCD
' *** PRINCIPAL PROGRAMA ***
ReadUSB alta
BAJO RW
ALTO RS
EnableLCD baja
Initialize_LCD:
DIRS = % 0001111111111111
LCD_Init:
PAUSE 500' dejar el LCD Coloque
char = 56' modo de varias líneas
GOSUB LCD_Command
PAUSE 5
PULSOUT EnableLCD, 1
PULSOUT EnableLCD, 1
char = 12' disp de crsr off, parpadeo off
GOSUB LCD_Command
char = 6' inc crsr, no cambio de disp
GOSUB LCD_Command
char = ClrLCD
GOSUB LCD_Command
ReadFIFO: ' escuchar al USB ahora
IN14 IF = 0 then GetUSBdata ' si /RXF es baja, los datos están disponibles
Goto ReadFIFO
GetUSBdata:
DIRS = % 0001111100000000
ReadUSB baja
char = INL
ReadUSB alta
DIRS = % 0001111111111111
GOSUB LCD_Write
GOTO ReadFIFO
LCD_Command:
'RS bajo el modo de comando
LCD_Write:
OUTL = char
PULSOUT EnableLCD, 1' estroboscópico la línea Enable
ALTA RS volver al modo de carácter (si no ya en modo de caracteres
VOLVER