hosiminh
Üye
- Katılım
- 16 Ara 2009
- Mesajlar
- 18
- Puanları
- 1
- Yaş
- 39
Elimde böyle bir devre var. Daha doğrusu tasarladık hex kodlarını da yazdık fakat PİC16f628 kullanıyorum ve dahili osilatörden kullanıyorum. Öyle bir tepki veriyor ki pic gülmekten ölürsünüz masa sallansa içindeki başka bir eyleme geçiyor. Normalde pic16f628 5v veya 4,5v arası ayaklardan gerilim verdiğimde çalışması gerekirken 2.4 volt gerilim geldiğinde o ayağa o zaman da aynı işlemi yapıyor anlayacağınız inanılmaz kötü ve kararsız bir durumda devrem. Bunun nedenleri neler olabilir bana yardımcı olabilecek arkadaşlara çok minnettar olurum ccs c kodlarını da paylaşayım en azında başkaları da benzer projeyi yapmak isteyebilir. Yardımlarınızı bekliyorum çok teşekkürler şimdiden...
#include <16f628.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOPUT,NOCPD
#use delay (clock=4000000)
#use fast_io(b)
#use fast_io(a)
#fuses INTRC_IO
////////
void main ()
{
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_CCP1(CCP_OFF);
set_tris_a(0xFF);
set_tris_b(0x00);
for(;
{
if((!input(pin_a0))&&(!input(pin_a1))&&(!input(pin_a2))&&(!input(pin_a3)))
{
output_high(pin_b0);
}
while ((input(pin_a0)))
{
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
delay_ms(1000);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
while((input(pin_a1))||(input(pin_a2))||(input(pin_a3)))
{
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
}
}
while ((input(pin_a1)))
{
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
delay_ms(1000);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
while((input(pin_a0))||(input(pin_a2))||(input(pin_a3)))
{
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
}
}
while ((input(pin_a2)))
{
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
delay_ms(1000);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
while((input(pin_a1))||(input(pin_a0))||(input(pin_a3)))
{
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
}
}
while ((input(pin_a3)))
{
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
delay_ms(1000);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
while((input(pin_a1))||(input(pin_a2))||(input(pin_a0)))
{
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
}
}
}
}
//////
#include <16f628.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOPUT,NOCPD
#use delay (clock=4000000)
#use fast_io(b)
#use fast_io(a)
#fuses INTRC_IO
////////
void main ()
{
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_CCP1(CCP_OFF);
set_tris_a(0xFF);
set_tris_b(0x00);
for(;
{
if((!input(pin_a0))&&(!input(pin_a1))&&(!input(pin_a2))&&(!input(pin_a3)))
{
output_high(pin_b0);
}
while ((input(pin_a0)))
{
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
delay_ms(1000);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
while((input(pin_a1))||(input(pin_a2))||(input(pin_a3)))
{
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
}
}
while ((input(pin_a1)))
{
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
delay_ms(1000);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
while((input(pin_a0))||(input(pin_a2))||(input(pin_a3)))
{
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
}
}
while ((input(pin_a2)))
{
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
delay_ms(1000);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
while((input(pin_a1))||(input(pin_a0))||(input(pin_a3)))
{
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
}
}
while ((input(pin_a3)))
{
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
delay_ms(1000);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
while((input(pin_a1))||(input(pin_a2))||(input(pin_a0)))
{
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
while((!input(pin_a4)))
{
output_high(pin_b2);
output_low(pin_b0);
}
if((input(pin_a4)))
{
output_low(pin_b2);
}
}
}
}
}
//////