infrarrojos.net

infrarrojos.net
Proyectos con infrarrojos radio frecuencia y microcontroladores

domingo, 21 de febrero de 2016

MICRO VIDEO NTSC GENERADOR DE CARACTERES

CON ESTE MICRO GENERADOR DE CARACTERES DE VIDEO PUEDES PONER TEXTO A TUS PROYECTOS DE VIDEO
USOS
TITULADOR DE VIDEO CASERO
TITULADOR DE CAMARAS DE SEGURIDAD
PERMITE MOSTAR INFORMACION EN CUALQUIER TV O MINITOR CON ENTRADA DE VIDEO COMPUESTO
ROBOTS CON CAMARA QUE TRANSMITEN VIDEO
CON UN MINIMO DE COMPONENTES Y UN MICROCONTROLADOR PIC12F675 PUEDES ARMAR ESTE DISPOSITIVO


CARACTERÍSTICAS

SÚPER BAJO COSTO
RELOJ INTEGRADO
TERMÓMETRO INTEGRADO
PROGRAMABLE POR EL PUERTO COMM
MEMORIA EEPROM DE 128 CARACTERES

ESPECIFICACIONES

MICROCONTROLADOR PIC12F675
SET DE CARACTERES 54
TAMAÑO DEL CARÁCTER 4 X 5 PIXELES
ENTRADA RS-232 1200 8 N 1
VIDEO IMPEDANCIA 75 OMHS
RESOLUCIÓN 16 COLUMNAS X 8 RENGLONES = 128 CARACTERES
VOLTAJE DE OPERACIÓN 3 - 5 VOLTS
NORMA NTSC
Este el el código en ensamblador para generar una linea blanca en el centro de la pantalla con solo 145 bytes



LIST p = 12F675
include "P12f675.inc"
ERRORLEVEL 0, -302 ; bank error mensajes
ERRORLEVEL 0, -305
__config 0x3FC2

#define video GPIO,0 ; salida de video
#define Sync GPIO,1 ; salida de sincronia

CBLOCK 0x20
Delay
Contador
campo
ENDC
org 0x00
movlw 0x07
movwf CMCON
goto init
org 0x05 ;Salva el vector de interr

init
BSF STATUS,RP0
MOVLW B'00111100' ; gpo y gp1 salidas
MOVWF TRISIO
MOVLW B'10000000' ; deshabilito pullup
MOVWF OPTION_REG
BCF STATUS,RP0
BCF campo,0
goto cuadro

Delay23 NOP
Delay22 NOP
Delay21 NOP
Delay20 GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
Delay12 NOP
Delay11 GOTO $+1
NOP
GOTO $+1
Delay4 GOTO $+1
return

blk20mhz
call Delay20
BSF Sync
MOVWF Contador
GOTO $+1
Loop5
MOVLW D'96'
MOVWF Delay
LoopD2
DECFSZ Delay
GOTO LoopD2
NOP
BCF Sync
call Delay12
call Delay11
BSF Sync
DECFSZ Contador
GOTO Loop5
MOVLW D'96'
MOVWF Delay
L1 DECFSZ Delay
GOTO L1
RETURN
;****************************************************************** terminan subrutinas
cuadro ; Empieza con 6 de ecualizacion
BCF Sync
call Delay11
BSF Sync
MOVLW .5
GOTO $+1
MOVWF Contador
Loopi
MOVLW .47
MOVWF Delay
L2 DECFSZ Delay
GOTO L2
BCF Sync
call Delay11
BSF Sync
NOP
DECFSZ Contador
GOTO Loopi
NOP
MOVLW .47
MOVWF Delay
L3 DECFSZ Delay
GOTO L3
BCF Sync
NOP
MOVLW .5
MOVWF Contador
Loop1 MOVLW .47
MOVWF Delay
L4 DECFSZ Delay
GOTO L4
BSF Sync ; 31.777 us
call Delay12
BCF Sync
DECFSZ Contador
GOTO Loop1
MOVLW .47
MOVWF Delay
L5 DECFSZ Delay
GOTO L5
GOTO $+1
BSF Sync
call Delay11
BCF Sync ; Ahora 5 pulsos cortos de eculizacion , 4
call Delay11
BSF Sync
MOVLW .5
BTFSc campo,0 ;
MOVLW .4
MOVWF Contador
Loop2 MOVLW .47
MOVWF Delay
L6 DECFSZ Delay
GOTO L6
BCF Sync
call Delay11
BSF Sync
nop
DECFSZ Contador
GOTO Loop2
NOP
MOVLW .46
MOVWF Delay
L7 DECFSZ Delay
GOTO L7
incf campo
GOTO $+1
; Termina sync vertical************************** AQUI EMPIEZAN LAS LINEAS DE

BCF Sync ; lineas negras de la parte de arriba
MOVLW D'125'
CALL blk20mhz ;tarda 47 lineas + 9.5 = 47.5 margen de arriba 61.5 lineas

;************************************************************** ; linea blanca
BCF Sync ; Empieza sync horizontal
call Delay21
BSF Sync
MOVLW D'45' ; Empieza margen derecho
MOVWF Delay
L8 DECFSZ Delay
GOTO L8

bsf video ; dibujamos una linea
call Delay21
bcf video

MOVLW D'45' ; Empieza margen izquierdo
MOVWF Delay
L9 DECFSZ Delay
GOTO L9
;************************************************************

BCF Sync ; lineas negras de la parte de abajo
MOVLW D'125'
CALL blk20mhz ;tarda 47 lineas + 9.5 = 47.5 margen de arriba 61.5 lineas

BCF Sync ; 36 HASTA AQUI VAN 262 LINEAS
call Delay21
BSF Sync
MOVLW .43
MOVWF Delay
L10 DECFSZ Delay
GOTO L10
NOP
BTFSc campo,0
goto cuadro ;es non TERMINO CON MEDIA LINEA 171 pulsos
call Delay4
MOVLW .51 ;.51 es el optimo pongo 52 para ajustar
MOVWF Delay
L11 DECFSZ Delay
GOTO L11
GOTO cuadro ; es par TERMINO CON LA LINEA COMPLETA 227 pulsos

END

No hay comentarios.:

Publicar un comentario

Nota: sólo los miembros de este blog pueden publicar comentarios.