Rutina Prueba Del Serie Con Lcd Con El 8051

3
;RUTINA PRUEBA DEL SERIE CON LCD CON EL 8051 ;Por vicente Martinez ;Datos LCD al puerto 1 del 8051 ;RS del LCD a P3 patilla 5 ;Enable del LCD a P3 patilla 4 ;WR del LCD a tierra ;Se recibira los datos por el puerto serie a 2400 baudios y los ;representa en el LCD. Tambien los vuelve a enviar por el puerto serie. DPORT: EQU 90H ;PUERTO DE DATOS P1 INITD: EQU 38H ;INICIALIZA DISPLAY LIMP: EQU 01H ;BORRA PANTALLA INICIO: EQU 02H ;POSICION INICIAL VISUA: EQU 0CH ;ENCIENDE Y CURSOR ESTATICO CPORT: EQU 0B0H ;DIRECCION PUERTO P3 STROBE: EQU 0B4H ;P3.4 PAT 14-ENABLED CTRL: EQU 0B5H ;P3.5 PAT 11-RS ACC: EQU 0E0H ;ACUMULADOR IE: EQU 0A8H ;HABILITACION INTERRUPCIONES SP: EQU 81H ;STACK PSW: EQU 0D0H ;PROGRAM STATUS WORD SCON: EQU 98H ;CONTROL SERIE TMOD: EQU 89H ;MODO TIMER TH1: EQU 8DH ;PARTE ALTA TIMER1 TL1: EQU 8BH ;PARTE BAJA TIMER1 TR1: EQU 08EH ;HABILITA TIMER1 SBUF: EQU 99H ;SEND BUFFER TI: EQU 099H ;BIT DE TRANSMISION RI: EQU 098H ;BIT DE RECEPCION ORG 0H PRIN: MOV IE,#0H ; MOV SP,#64H ;STACK A MITAD DE RAM MOV PSW,#0H ; MOV DPORT,#00H ;LIMPIA PUERTO 1 ACALL RETARDO ACALL LCDINI ACALL INIPORT MOV DPORT,#2DH ;"-" en ASCII ACALL ESCRIBE ;Mostramos - en el LCD PRIN2: ACALL RECEP ;Recibimos un dato

Transcript of Rutina Prueba Del Serie Con Lcd Con El 8051

Page 1: Rutina Prueba Del Serie Con Lcd Con El 8051

;RUTINA PRUEBA DEL SERIE CON LCD CON EL 8051;Por vicente Martinez;Datos LCD al puerto 1 del 8051;RS del LCD a P3 patilla 5;Enable del LCD a P3 patilla 4;WR del LCD a tierra;Se recibira los datos por el puerto serie a 2400 baudios y los ;representa en el LCD. Tambien los vuelve a enviar por el puerto serie.

DPORT: EQU 90H ;PUERTO DE DATOS P1INITD: EQU 38H ;INICIALIZA DISPLAYLIMP: EQU 01H ;BORRA PANTALLAINICIO: EQU 02H ;POSICION INICIALVISUA: EQU 0CH ;ENCIENDE Y CURSOR ESTATICOCPORT: EQU 0B0H ;DIRECCION PUERTO P3STROBE: EQU 0B4H ;P3.4 PAT 14-ENABLEDCTRL: EQU 0B5H ;P3.5 PAT 11-RS

ACC: EQU 0E0H ;ACUMULADORIE: EQU 0A8H ;HABILITACION INTERRUPCIONESSP: EQU 81H ;STACKPSW: EQU 0D0H ;PROGRAM STATUS WORDSCON: EQU 98H ;CONTROL SERIETMOD: EQU 89H ;MODO TIMERTH1: EQU 8DH ;PARTE ALTA TIMER1TL1: EQU 8BH ;PARTE BAJA TIMER1TR1: EQU 08EH ;HABILITA TIMER1SBUF: EQU 99H ;SEND BUFFERTI: EQU 099H ;BIT DE TRANSMISIONRI: EQU 098H ;BIT DE RECEPCION

ORG 0H

PRIN: MOV IE,#0H ; MOV SP,#64H ;STACK A MITAD DE RAM MOV PSW,#0H ; MOV DPORT,#00H ;LIMPIA PUERTO 1 ACALL RETARDO ACALL LCDINI ACALL INIPORT MOV DPORT,#2DH ;"-" en ASCII ACALL ESCRIBE ;Mostramos - en el LCDPRIN2: ACALL RECEP ;Recibimos un dato MOV DPORT,A ;PONEMOS LO RECIBIDO ACALL ESCRIBE ;Mostramos lo recibido en el LCD ACALL ENVIO ;Devolvemos el dato via serie AJMP PRIN2

LCDINI: CLR STROBE ;A CERO STROBE CLR CTRL ;A CERO CTRL

Page 2: Rutina Prueba Del Serie Con Lcd Con El 8051

ACALL RETARDO ;RETRASO PARA EL LCDLCDLIM: MOV DPORT,#INITD ;ENCIENDE DISPLAY CURSOR ON ACALL CONTROL CLR CTRL MOV DPORT,#VISUA ;2 LINEAS DISPLAY ACALL CONTROL CLR CTRL MOV DPORT,#INICIO ;POSICION INICIAL ACALL CONTROL CLR CTRL MOV DPORT,#LIMP ;BORRA PANTALLA ACALL CONTROL CLR CTRL RET

CONTROL: CLR CTRL SETB STROBE ACALL RETARDO CLR STROBE CLR CTRL RET

ESCRIBE: SETB STROBE SETB CTRL ACALL RETARDO CLR STROBE CLR CTRL RET RETARDO: MOV R3,#100RETAR1: MOV R2,#255RETAR2: DJNZ R2,RETAR2 DJNZ R3,RETAR1 RET

INIPORT: MOV SCON,#50H ;UART MODO 1 (8 BITS,1 PARO) MOV TMOD,#21H ;TIMER1 MODO2,TIMER0 MODO1 MOV TH1,#243 ;2400 BAUDIOS A 11.98080MHZ MOV TL1,#243 ;RECARGAR TIMER1 SETB TR1 ;HABILITA TIMER1 RET

ENVIO: MOV SBUF,A ;LO COGEMOS DEL ACUMULADOR CLR TIEN_OK: JNB TI,EN_OK ;ESPERA A QUE EL DATO HA SIDO ENVIADO CLR TI RET

RECEP: JNB RI,RECEP ;ESPERA A QUE UN DATO ENTRE CLR RI MOV A,SBUF ;LO PONEMOS EN EL ACUMULADOR RET

EN