programacion de servo con 16f877

hola soy nuevo en este foro ..estoy haciendo un trabajito ..necesito controlar el giro de un servo con el pic 16f877a...estoy haciendo el programa en microcode studio pero al hacer la simulacion ...nose que pasa...nose si estoy ial ren la programacion...hay se las dejo para ver si me ayudan...gracias....

Código:
DEFINE OSC 4
 DEFINE LCD_DREG PORTB 'configura el puerto B para datos del LCD
 DEFINE LCD_DBIT 0'bit de comienzo de datos(0 o 4)
 DEFINE LCD_RSREG PORTD 'CONFIGURA EL RS DEL LCD EN EL PUERTO D
 DEFINE LCD_RSBIT 7    'CONFIGURA EL RD7 PARA ACTIVAR EL RS DEL LCD
 DEFINE LCD_EREG PORTD  'CONFIGURA EL ENABLE REGISTER EL EN PUERTO D
 DEFINE LCD_EBIT 6 ' CONFUGURA PORTD6 PARA ACTIVAR EL LCD Enable
 DEFINE LCD_BITS 8  ' CONFIGURA EL NUMERO DE DATOS DEL BUS DEL LCD(4 or 8 bits
 DEFINE LCD_LINES 2 'NumErO DE lineAs DEL LCD
 DEFINE LCD_COMMANDUS 2000  'TIEMPO DE ESPERA PARA COMANDO
 DEFINE LCD_DATAUS 50 'TIEMPO DE ESPERA DE DATOS
 
 TRISA = 1
 TRISC =%00011111
 TRISD = 0  
 PORTA = 0 'INICIALIZA TODOS LOS PINES DEL PUERTO A EN CERO
 PORTC = 0
 PORTD = 0
 T1 VAR WORD
 T2 VAR WORD
 T3 VAR WORD
 T1 =  650
 T2 = 1550
 T3 = 2500
  lcdout $fe,1  
  LCDOUT $FE,1,"...Caja de..."
  LCDOUT $FE,$C0,"...Pruebas..."
  PAUSE 1000  
  
  INICIO:
  lcdout $FE,1  
  LCDOUT $FE,2, "..Seleccione su.."
  lcdout $FE,$C0,"..Opcion..."
  PAUSE 500
  
    IF (PORTA.0 =1) AND (PORTC.0 =1)THEN 
    HIGH PORTD.0
    PAUSEUS T1 
    LOW PORTD.0
    PAUSE 20 
    endif
    IF (PORTA.0 =1) and (PORTC.1 =1)THEN 
    HIGH PORTD.0
    PAUSEUS T2 
    LOW PORTD.0
    PAUSE 20 
    endif
    IF (PORTA.0 =1) AND (PORTC.2 =1)THEN 
    HIGH PORTD.0
    PAUSEUS T3 
    LOW PORTD.0
    PAUSE 20  
    endif
   

GOTO INICIO
 

Adjuntos

  • pic.png
    pic.png
    222.9 KB · Visitas: 29
Última edición por un moderador:
Atrás
Arriba