#include <16f73.h>
#define LED PIN_A0
#define VAR PIN_A4
#define LED_6 PIN_B0
#define LED_7 PIN_B1
#define LED_8 PIN_B2
#define LED_9 PIN_B3
#use delay (clock =4000000)
#use rs232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8)
#use standard_io(A)
#use standard_io(B)
#use standard_io(C)
#include <stdio.h>
#define PIN_LED1 PIN_B0
#define PIN_LED2 PIN_B1
#define PIN_LED3 PIN_B2
#define envio PIN_C3
#define PIN_LED4 PIN_B3
#define LED1_HIGH output_high(PIN_LED1)
#define LED1_LOW output_low(PIN_LED1)
#define LED2_HIGH output_high(PIN_LED2)
#define LED2_LOW output_low(PIN_LED2)
#define LED3_HIGH output_high(PIN_LED3)
#define LED3_LOW output_low(PIN_LED3)
#define LED4_HIGH output_high(PIN_LED4)
#define LED4_LOW output_low(PIN_LED4)
unsigned char datos [16];
int j;
unsigned char x;
void diagnostico (void)
{
datos [0]=1;
datos [1]=1;
datos [2]=0;
datos [3]=1;
datos [4]=0;
datos [5]=1;
datos [6]=1;
datos [7]=0;
datos [8]=1;
datos [9]=0;
datos [10]=1;
datos [11]=0;
datos [12]=0;
datos [13]=1;
datos [14]=1;
datos [15]=0;
for (j=0;j<15;j++ )
{
x=datos[j];
envio=x;
SSPCON,1=0
SSPCON,2=0
SSPCON,3=0
SSPCON,4=1
;}
}
void main(){
set_tris_b(0x00);
set_tris_a(0x00);
set_tris_c(0x00);
if(input(VAR)==0){
LED1_HIGH;
LED2_HIGH;
LED3_HIGH;
LED4_HIGH;
}
else(input(VAR)==1);{
LED1_LOW;
LED2_LOW;
LED3_LOW;
LED4_LOW;
}
output_high(PIN_A0);
diagnostico();
}
ESE es el codigo me sale error cada vez que invoco algun registro del micro
#include <16f73.h>
#define LED PIN_A0
#define VAR PIN_A4
#define LED_6 PIN_B0
#define LED_7 PIN_B1
#define LED_8 PIN_B2
#define LED_9 PIN_B3
#use delay (clock =4000000)
#use rs232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8)
#use standard_io(A)
#use standard_io(B)
#use standard_io(C)
#include <stdio.h>
#define PIN_LED1 PIN_B0
#define PIN_LED2 PIN_B1
#define PIN_LED3 PIN_B2
#define envio PIN_C3
#define PIN_LED4 PIN_B3
#define LED1_HIGH output_high(PIN_LED1)
#define LED1_LOW output_low(PIN_LED1)
#define LED2_HIGH output_high(PIN_LED2)
#define LED2_LOW output_low(PIN_LED2)
#define LED3_HIGH output_high(PIN_LED3)
#define LED3_LOW output_low(PIN_LED3)
#define LED4_HIGH output_high(PIN_LED4)
#define LED4_LOW output_low(PIN_LED4)
unsigned char datos [16];
int j;
unsigned char x;
void diagnostico (void)
{
datos [0]=1;
datos [1]=1;
datos [2]=0;
datos [3]=1;
datos [4]=0;
datos [5]=1;
datos [6]=1;
datos [7]=0;
datos [8]=1;
datos [9]=0;
datos [10]=1;
datos [11]=0;
datos [12]=0;
datos [13]=1;
datos [14]=1;
datos [15]=0;
for (j=0;j<15;j++ )
{
x=datos[j];
envio==x;
SSPCON,1=0;
SSPCON,3=0;
;}
}
void main(){
set_tris_b(0x00);
set_tris_a(0x00);
set_tris_c(0x00);
if(input(VAR)==0){
LED1_HIGH;
LED2_HIGH;
LED3_HIGH;
LED4_HIGH;
}
else(input(VAR)==1);{
LED1_LOW;
LED2_LOW;
LED3_LOW;
LED4_LOW;
}
output_high(PIN_A0);
diagnostico();
}
killerjc me puedes ayudar a optimizar mas el codigo
SSPCON,1=0;#include <16f73.h>
#define LED PIN_A0
#define VAR PIN_A4
#define LED_6 PIN_B0
#define LED_7 PIN_B1
#define LED_8 PIN_B2
#define LED_9 PIN_B3
#use delay (clock =4000000)
#use rs232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8)
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#include <stdio.h>
#define PIN_LED1 PIN_B0
#define PIN_LED2 PIN_B1
#define PIN_LED3 PIN_B2
#define envio PIN_C3
#define PIN_LED4 PIN_B3
#define LED1_HIGH output_high(PIN_LED1)
#define LED1_LOW output_low(PIN_LED1)
#define LED2_HIGH output_high(PIN_LED2)
#define LED2_LOW output_low(PIN_LED2)
#define LED3_HIGH output_high(PIN_LED3)
#define LED3_LOW output_low(PIN_LED3)
#define LED4_HIGH output_high(PIN_LED4)
#define LED4_LOW output_low(PIN_LED4)
unsigned char datos [16];
int j;
unsigned char x;
void diagnostico (void)
{
datos [0]=1;
datos [1]=1;
datos [2]=0;
datos [3]=1;
datos [4]=0;
datos [5]=1;
datos [6]=1;
datos [7]=0;
datos [8]=1;
datos [9]=0;
datos [10]=1;
datos [11]=0;
datos [12]=0;
datos [13]=1;
datos [14]=1;
datos [15]=0;
for (j=0;j<15;j++ )
{
x=datos[j];
output_high(PIN_C3);
;}
}
void main(){
set_tris_b(0x00);
set_tris_a(0x00);
set_tris_c(0x00);
if(input(VAR)==0){
LED1_HIGH;
LED2_HIGH;
LED3_HIGH;
LED4_HIGH;
}
else(input(VAR)==1);{
LED1_LOW;
LED2_LOW;
LED3_LOW;
LED4_LOW;
}
output_high(PIN_A0);
diagnostico();
}
este es el ultimo codigo no esta prendiendo los leds que deberia que dependen del pin a4 y tampoco me prende un led en el pin a0 y al medir el pin c3 deberia estar en alto pero no me sale ni en alto ni en bajo con el multimetro
#include <16f73.h>
#use delay (clock =4000000)
#use rs232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8)
#fuses XT,NOWDT
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#include <stdio.h>
unsigned char datos [16];
int j;
unsigned char x;
void diagnostico (void)
{
datos [0]=1;
datos [1]=1;
datos [2]=0;
datos [3]=1;
datos [4]=0;
datos [5]=1;
datos [6]=1;
datos [7]=0;
datos [8]=1;
datos [9]=0;
datos [10]=1;
datos [11]=0;
datos [12]=0;
datos [13]=1;
datos [14]=1;
datos [15]=0;
for (j=0;j<15;j++ )
{
x=datos[j];
output_high(PIN_C3);
;}
}
void main(){
set_tris_b(0x00);
set_tris_a(0x00);
set_tris_c(0x00);
while(true){
if(input(PIN_A4)){
output_high(PIN_B0);
output_high(PIN_B1);
output_high(PIN_B2);
output_high(PIN_B3);
}
else;{
output_low(PIN_B0);
output_low(PIN_B1);
output_low(PIN_B2);
output_low(PIN_B3);
}
}
output_high(PIN_A0);
diagnostico();
}
aqui como hago para enviar x por algun puerto del micro
datos
- =1;
datos [1]=1;
datos [2]=0;
datos [3]=1;
datos [4]=0;
.....
for (j=0;j<15;j++ )
{
x=datos[j];
output_high(PIN_C3);
;}
else;{
output_high(PIN_A0);ejecutandose siempre pero jamas se pone a 0, por que ponerlo a 1 infinitas veces cuando basta solo 1 ves ?
if(input(PIN_A4)){
output_high(PIN_B0);
output_high(PIN_B1);
output_high(PIN_B2);
output_high(PIN_B3);
}
else;{
output_low(PIN_B0);
output_low(PIN_B1);
output_low(PIN_B2);
output_low(PIN_B3);
}
#include <16f73.h>
#use delay (clock =4000000)
#fuses XT,NOWDT,PUT, NOPROTECT
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use rs232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8)
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
char datos[16]={'1','1','0','1','0','1','1','0','1','0','1','0','0','1','1','0'};
int j;
void main(){
setup_adc_ports(PIN_A0,PIN_A1,PIN_A2,PIN_A3,PIN_A4,PIN_A5);
set_tris_b(0x00);
set_tris_a(0x08);
set_tris_c(0x00);
output_high(PIN_A0);
while(true)
{
if(input(PIN_A4)==0)
{
output_high(PIN_B0);
output_high(PIN_B1);
output_high(PIN_B2);
output_high(PIN_B3);
}
else
{
output_low(PIN_B0);
output_low(PIN_B1);
output_low(PIN_B2);
output_low(PIN_B3);
}
for (j=0;j<15;j++ )
{
putc(datos[j]);
}
}
}
me sale el siguiente error #include <16f73.h>
#fuses XT,NOWDT,PUT, NOPROTECT
#use delay (clock =4000000)
#use rs232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8) //RVC -> entrada, XMIT-> salida
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
char datos[16]={'1','1','0','1','0','1','1','0','1','0','1','0','0','1','1','0'};
int j;
void main()
{
set_tris_b(0x00); //configura todo el puerto B como salidas.
set_tris_a(0x10); //configura el pin A4 como entrada el resto como salidas.
set_tris_c(0x80); // configura el pin C7 como entrada el resto como salidas.
setup_adc_ports(NO_ANALOGS); //configura todos los pines del puerto A como digitales.
output_high(PIN_A0);
while(true)
{
if(input(PIN_A4)==0)
{
output_high(PIN_B0);
output_high(PIN_B1);
output_high(PIN_B2);
output_high(PIN_B3);
}
else
{
output_low(PIN_B0);
output_low(PIN_B1);
output_low(PIN_B2);
output_low(PIN_B3);
}
for (j=0;j<15;j++ )
{
printf("%c",datos[j]);
}
}
}
gracias pero en a era 0X10 no por 40:D tienes razon ya lo correji :mrgreen: