View Single Post
Old 16-11-2010, 10:23 PM   #6
hang1988
Đệ tử 1 túi
 
Tham gia ngày: May 2008
Bài gửi: 21
:
Bạn hãy tham khảo code này! Code nháy 8 LED đơn giản! Cần gì dùng timer cho phiền ra! để đó còn ùng cái khác!
Code:
/* 
										CHUONG TRINH NHAY LED DON - DSPIC30F4011  

+ Phan cung :             Dung LED don  noi vao RB0 - RB7 ----------------------
+ Yeu cau : Nhay tu 0 den 7 va 7 ve 0 . Sau do nhap nhay linh tinh
*/
#include <p30F4011.h> // Thu vien chuan
#include <libpic30.h> // Thu vien ham delay
  //-------------ConFig cho DsPic-------------------
		_FOSC(CSW_FSCM_OFF & FRC_PLL4);
		_FWDT(WDT_OFF);
		_FBORPOR(PBOR_OFF & MCLR_EN & PWMxL_ACT_HI & PWMxH_ACT_HI);
		_FGS(CODE_PROT_OFF);

unsigned char LED[8] = {0xfffe,0xfffd,0xfffb,0xfff7,0xffef,0xffdf,0xffbf,0xff7f}; // Ham sang cac LED tu RB0 den RB7

void INTPORT()
 { 
   TRISB = 0xff00; // Cho cac cong tu RB0 den RB7 la chan out
   PORTB=0xffff;
 }

void LED_K1()
  {
   unsigned int n,m;
   for(n=0;n<8;n++)
     {
       PORTB=LED[n];
       __delay32(500000); // Chu ki tre la 0.5s
     }
   for(m=0;m<8;m++)
     {
       PORTB=LED[7-m];
       __delay32(500000);
     }
    
 }
void LED_K2()
  {
    unsigned int a,b;
    for(b=0;b<20;b++) // cho toi 50 cho no dep
    {
     for(a=0;a<7;a++)
     {
         PORTB=LED[a];
       __delay32(500000);
      if(a=0) {PORTB=LED[4];__delay32(500000);}
      if(a=1) {PORTB=LED[7];__delay32(500000);}
      if(a=2) {PORTB=LED[5];__delay32(500000);}
      if(a=3) {PORTB=LED[6];__delay32(500000);}
      if(a=4) {PORTB=LED[1];__delay32(500000);}
      if(a=5) {PORTB=LED[3];__delay32(500000);}
      if(a=6) {PORTB=LED[2];__delay32(500000);}
      if(a=7) {PORTB=LED[4];__delay32(500000);}
     } 
  }
}
int main()
  {
   INTPORT();
   while(1)
     {    
      LED_K1();
      LED_K2();

       }
  }
hang1988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn