PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 24-11-2010, 10:45 PM   #1
JumboT
Đệ tử 1 túi
 
Tham gia ngày: Feb 2009
Bài gửi: 21
:
Thumbs up Điều khiển quang báo từ xa

Chào các bác.
Hiện tại em đang phải làm về mạch điều khiển quang báo từ xa (dùng RF).
Em đang gặp phải một số vấn đề sau mong các bác chỉ giúp !

Giả sử em đã thành công trong việc thu và phát sóng RF.

Em đang gặp vấn đề là khi chương trình 1 của em đang chạy nếu ấn nút khác (tức là nhận được dữ liệu khác) thì chương trình tương ứng không thực hiện.
Thứ 2 là chương trình của em chỉ chạy được một lần là thoát khỏi vòng lặp.
Các bác xem giùm rồi chỉ giáo cho:
Chương trình của em đây:

void giai_ma()
{
i=0;
while(i<=35)
{
set_timer0(0);
while(rx);
while(!rx);
t0=get_timer0();
if(t0>89)
i=0;
if(t0>=77&&t0<=80)
i++;
}

j++;
i=0;
data[1]=0;
while(i<8)
{
data[1]=data[1]<<=1;
bit=rx;
data[1]=data[1] | bit;
if (bit==0)
{
while(!rx);
}
if(bit==1)
{
while(rx);
}
i++;
delay_us(410);
}
data[0]=data[1];
}

void kiem_tra()
{
if(data[0]==data_2[1])
{
bien=1;
}
else if(data[0]==data_2[2])
{
bien=2;
}
else if(data[0]==data_2[3])
{
bien=3;
}
else if(data[0]==data_2[4])
{
bien=4;
}
}



void chuong_trinh_1()
{
for(m=0; m<=232;m++)
{
for(l=0;l<=50;l++)
{
RC1 = 1;
RC0 = 1;
RC0 = 0;
RC1 = 0;
giai_ma();
kiem_tra();
for(k=0;k<=40;k++)
{
RC0 = 1;
RC0 = 0;
output_d(UTEHY[m+k]);
delay_us(50);
output_d(0x00);

}
}
}
}

void chuong_trinh_2()
{
for(m=0; m<=320;m++)
{
for(l=0;l<=50;l++)
{
RC1 = 1;
RC0 = 1;
RC0 = 0;
RC1 = 0;
giai_ma();
kiem_tra();
for(k=0;k<=40;k++)
{
RC0 = 1;
RC0 = 0;
output_d(QKVN[m+k]);
delay_us(50);
output_d(0x00);

}
}
}
}


void chuong_trinh_3()
{
for(m=0; m<=348;m++)
{
for(l=0;l<=50;l++)
{
RC1 = 1;
RC0 = 1;
RC0 = 0;
RC1 = 0;
giai_ma();
kiem_tra();
for(k=0;k<=40;k++)
{
RC0 = 1;
RC0 = 0;
output_d(NGVN[m+k]);
delay_us(50);
output_d(0x00);

}
}
}
}

void chuong_trinh_4()
{
for(m=0; m<=212;m++)
{
for(l=0;l<=50;l++)
{
RC1 = 1;
RC0 = 1;
RC0 = 0;
RC1 = 0;
giai_ma();
kiem_tra();
for(k=0;k<=40;k++)
{
RC0 = 1;
RC0 = 0;
output_d(HPNY[m+k]);
delay_us(50);
output_d(0x00);

}
}

}
}

//=============chuong trinh chinh=================\\


void main()
{

set_tris_a(0x00);
set_tris_b(0xff);
set_tris_c(0x00);
set_tris_d(0x00);
enable_interrupts(int_timer0);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64);
enable_interrupts(global);

data[0]=0;
j=0;
bien=0;
while(true)
{
giai_ma();
kiem_tra();
while(bien==1)
{
chuong_trinh_1();
}
while(bien==2)
{
chuong_trinh_2();
}
while(bien==3)
{
chuong_trinh_3();
}
while(bien==4)
{
chuong_trinh_4();
}
}
}
JumboT vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 03:13 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam