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