Em viết chương trình cho 8 led sáng đuổi liên tục từ trái sang phải và khi có tác động RB4->RB7 thì chạy ngược lại từ phải sang trái, tác động RB4->RB7 lần nữa thì chạy từ trái sang , code của em đây chỉ làm được khi tác động RB4->RB7 lần đầu thì chạy ngược lại từ phải sang, còn lần tác động thứ 2 để đổi chiều em không viết được , mong mọi người giúp em với
code của em đây
code của em đây
Code:
#include <16F877A.h>
#include <DEF_877A.h>
#include <math.h>
#fuses NOWDT,HS,NOPROTECT,PUT,XT
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
int i,j;
unsigned int xuat[]={1,2,4,8,16,32,64,128};
unsigned int xuat1[]={128,64,32,16,8,4,2,1};
#int_rb NOCLEAR
void ngatrb()
{
delay_ms(100);
PORTD=xuat[i];
PORTD=0X00;
delay_ms(100);
for(j=0;j<=7;j++)
{
portd=xuat1[j];
delay_ms(100);
}
}
main()
{
set_tris_b(0xf0);
set_tris_d(0x00);
enable_interrupts(global);
enable_interrupts(int_rb);
ext_int_edge(H_TO_L);
PORTD=0X00;
while(1)
{
for(i=0;i<=7;i++)
{
PORTD=xuat[i];
delay_ms(100);
}
}
}

Comment