TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: todopic en 03 de Febrero de 2004, 16:16:00
-
Hola Amig@s, en estos dias me llega una impresora termica, tengo que controlarla con un micro...., y necesito los codigos de caracteres para su control... quiero ir adelantando algo..

por ejemplo avance del papel, renglon etc... ¿son universales?
alguno ya realizo algo de esto?
gracias
Norberto
http://www.electrocomponentes.com.ar/impresoras_termicas/mobile_pro_basic.html

-
Hola Amig@s, les comento que hoy me pase todo el dia con la impresorita termica... primero experimente en Visual Basic, para poder controlarla de manera serial...
luego, empece a jugar con los distintos comandos para cambios de tipografia....
por la tarde escribi el codig en PBP para un 16f84, y realmente salio funcionando perfecto!!! 
emplee sentencias como
serout portb.0,6,[27,121,1] " LETRAS DOBLE LARGO
serout portb.0,6,[27,119,1] " LETRAS DOBLE ancho
serout portb.0,6,[27,122,1] " LETRAS sombreadas
si alguien necesita info, ahora la dispongo
Norberto
-
Que vas a hacer con la impresora, Norberto ??
Y por supuesto, maestro, ponga la info !!
-
Hola Gente!, me pidieron que fabricara un sistemita que genere un ticket por cada ficha que ingrese, a modo de comprobante...
y no querian emplear una PC.., asi que almaceno el total de ticket generados, subtotales, cantidad emitidos,y logicamente, nombre de la empresa, celular y datos de interes...
realmente fue muy facil empleando el PBP... pero como morfa memoria!!!!, asi que tenia que recurrir a optimizar el codigo para que entre en el f84...
por ejemplo
FOR T =1 TO 24
serout portb.0,6,["*"]
NEXT T
consume menos memoria que enviar un string de 24 asteriscos...
el agrupar varios serout en uno solo, tambien es mas ECONOMICO...
y con 3 valores, se cambia el estilo de impresion
serout portb.0,6,[27,121,1,27,119,1,27,122,1]
" LETRAS DOBLE LARGO LETRAS DOBLE ancho LETRAS sombreadas
solo me quedaron 2 bytes libres je je je... 
el PBP ¿maneja strings?, es decir, para colocar los ceros a la izquierda... yo lo solucione asi
UNIDAD=UNIDAD + 1
WRITE 1,UNIDAD
IF UNIDAD <10000 THEN N=1
IF UNIDAD <1000 THEN N=2
IF UNIDAD <100 THEN N=3
IF UNIDAD <10 THEN N=4 "N ES LA CANTIDAD DE CEROS A LA IZQUIERDA
serout portb.0,6,[27,121,1," Ticket Nro. ",27,119,1] " LETRAS DOBLE LARGO
serout portb.0,6,[27,121,1] " LETRAS DOBLE LARGO
FOR T=1 TO N
serout portb.0,6,["0"] " COLOCO TANTOS CEROS PARA LLEGAR A 5 DIGITOS EN LA IZQUIERDA
NEXT T
serout portb.0,6,[# UNIDAD,13,10]
¿existe otra forma?
Un gran abrazo
Norberto
-
Asi tambien tendria que funcionar .
Valor var word
X var byte
for X=4 to 0 step -1
serout portb.0,6,[Valor DIG X + 48]
next X
interesante laparatito este .
suerte
-
Sispic, con la sentencia Dig, me ahorro 45 bytes!... esta funcionando asi
Gracias!
Norberto
xootraoox, creo que tu impresora no dispone de placa controladora... la que yo tengo es justamente serial, y solo dispone de 4 cables, + , - tx , rx, y yo estoy empleando solo 3
-
Norberto:
Te comento q tengo controlar una impresora térmica con un micro, y te agradecería la información q me puedas mandar sobre como imprimo los caracteres y todos los comandos q necesito para empezar a imprimir......
La impresora es una Epson TM-U950 y no tengo manual
Gracias......
-
Hola, al no tener la info..mmmm
pero casi todas trabajan en 9600, sin paridad
asi que simplemente le envias caracteres ASCII
el cambio de renglon es el CHR$(13) chr$(10)
arriba hay datos... pero no se si serviran para tu impresora.....
Primero, prueba a enviarle los caracteres desde algun programa, por el puerto serie, por ejemplo el HIPERTERMINAL de windows...
OJO que tienes que completar un renglon para que avance, o terminarlo con 13,10...
suerte!
Norberto