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
Última edición por un moderador: