Servo para belén
Da la vuelta cuando se cierra el relé y vuelve a su posición inicial al abrirse el relé. Se usan dos barreras de luz con abertura intermedia./************************************************
* Centralita para Belen, mueve un motor que soporta al niño Jesus
. Usamos los siguientes puertos:
* GP0 deterctor lado derecho
* GP1 detector lado izquierda
* Gp2 Señal On Off
*GP3 reset
* Gp4 motor on off
*************************************************************************/
#include
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO//Osc interno, sin CLKOUT
#FUSES NOPROTECT //Code not protected from reading
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPUT //NoPower Up Timer
#FUSES NOBROWNOUT //no brownout reset
#use delay (clock=4000000)
/* no hace falta porque lo toma el automaticamente
#ORG 0x3fe,0x3ff
void calibrado(void)
{#asm
retlw 0x20
#endasm
}
*/
#rom 0x3ff={0x3440} //colocar el dato de Calibración; 3440 obtenido de leer el dispositivo antes de programarlo
#byte OSCAL=0x90 //calibración deloscilador
#byte PORTA=0x05 //Puerto A
#byte TRISA=0x85
#byte CMCON=0x19 //Registro de comparación
#byte ANSEL=0x9f //Registro de conversor Analogico
#bit derecha=PORTA.0
#bitizquierda=PORTA.1
#bit onoff=PORTA.2
#bit motor=PORTA.4
#bit aux=PORTA.5
void main()
{
int belen=0; //variable auxiliar
int tecla;
TRISA= 0x00f; //GP0,1,2 y 3 entradas, GP4 salidaCMCON=0b00000111; //GP2:0 como I/0 digitales
ANSEL=0; //Pines como I/o digitales
// El compilador ya genera el código para configurar el reloj interno, por eso se pone la instrucciónde rom
//comprobamos que motor está en posicion inicial, sino le llevo a posicion inicial
// que es cuando derecha=0, esto lo hago por si se va la luz que se ponga el solo en su posicion
//...
Regístrate para leer el documento completo.