Hola a todos
tengo un problema en proteus... tengo un programa que hice para el mircro 98c52 y que haciendo el circuito en una protoboard me funciona... pero no en el proteus... alguien me puede dar una mano?
adjunto código assembler y esquemático
	
	
	
		
y con ninguno puedo visualizar algo en el LCD
				
			tengo un problema en proteus... tengo un programa que hice para el mircro 98c52 y que haciendo el circuito en una protoboard me funciona... pero no en el proteus... alguien me puede dar una mano?
adjunto código assembler y esquemático
		Código:
	
	mov p0,#00h
mov p1,#00h
acall espera
    mov p0,#38h
acall enable
acall espera
    mov p0,#0eh
acall enable
acall espera
    mov p0,#01h
acall enable
acall espera
    mov p0,#06h
acall enable
acall espera
    mov p0,#80h
acall enable
acall espera
;--------------------------
clr p1.1
setb p1.0
mov p0,#'T'
acall enable
acall espera
mov p0,#'e'
acall enable
acall espera
mov p0,#'m'
acall enable
acall espera
mov p0,#'p'
acall enable
acall espera
mov p0,#':'
acall enable
acall espera
mov p0,#' '
acall enable
acall espera
ciclo:
mov p0,p2
acall enable
acall espera
ajmp ciclo
espera:
mov r4,#0ffh
ciclo3:
mov r5,#0ffh
ciclo1:
    djnz r5,ciclo1
    djnz r4,ciclo3
ret
enable:
setb p1.2
mov r6,#0ffh
ciclo6:
    djnz r5,ciclo6
clr p1.2
ret
end
[IMG]https://www.forosdeelectronica.com/files/lcd_139.jpg[/IMG]
OJO! que el programa supuestamente muestra los datos que se estan leyendo del puerto P2 pero no tengo conectado nada aun por que estoy pegado en la parte de visualizacion del LCD
tambien he probado con este código
DB0 EQU P0.0
DB1 EQU P0.1
DB2 EQU P0.2
DB3 EQU P0.3
DB4 EQU P0.4
DB5 EQU P0.5
DB6 EQU P0.6
DB7 EQU P0.7
EN EQU P1.2
RS EQU P1.0
RW EQU P1.1
LLDATA EQU P0
SETB RW
CLR EN
LCALL INIT_LCD
LCALL CLEAR_LCD
MOV A,#'H'
LCALL WRITE_TEXT
MOV A,#'E'
LCALL WRITE_TEXT
MOV A,#'L'
LCALL WRITE_TEXT
MOV A,#'L'
LCALL WRITE_TEXT
MOV A,#'O'
LCALL WRITE_TEXT
MOV A,#' '
LCALL WRITE_TEXT
MOV A,#'W'
LCALL WRITE_TEXT
MOV A,#'O'
LCALL WRITE_TEXT
MOV A,#'R'
LCALL WRITE_TEXT
MOV A,#'L'
LCALL WRITE_TEXT
MOV A,#'D'
LCALL WRITE_TEXT
WAIT_LCD:
      CLR EN ;Start LCD command
      CLR RS ;It's a command
      SETB RW ;It's a read command
      MOV LLDATA,#0FFh ;Set all pins to FF initially
      SETB EN ;Clock out command to LCD
      MOV A,LLDATA ;Read the return value
      JB ACC.7,WAIT_LCD ;If bit 7 high, LCD still busy
      CLR EN ;Finish the command
      CLR RW ;Turn off RW for future commands
      RET
INIT_LCD:
      CLR RS
      MOV LLDATA,#38h
      SETB EN
      CLR EN
      LCALL WAIT_LCD
      CLR RS
      MOV LLDATA,#0Eh
      SETB EN
      CLR EN
      LCALL WAIT_LCD
      CLR RS
      MOV LLDATA,#06h
      SETB EN
      CLR EN
      LCALL WAIT_LCD
      RET
CLEAR_LCD:
      CLR RS
      MOV LLDATA,#01h
      SETB EN
      CLR EN
      LCALL WAIT_LCD
      RET
WRITE_TEXT:
      SETB RS
      MOV LLDATA,A
      SETB EN
      CLR EN
      LCALL WAIT_LCD
      RET
ENDy con ninguno puedo visualizar algo en el LCD
Adjuntos
			
				Última edición por un moderador: 
			
		
	
								
								
									
	
								
							
							 
   
				 
						 
			 
			 
 
		 
 
		 
 
		 
 
		