Your Knowledge Your Future
Tiếng Việt English
Hotline: 0902561426

Bài 4: PIC 16led Sáng dần từ trái sang phải sử dụng IC mở rộng

Bài 4: PIC 16led Sáng dần từ trái sang phải sử dụng IC mở rộng

Bài 4: PIC 16led Sáng dần từ trái sang phải sử dụng IC mở rộng

Bài 4: PIC 16led Sáng dần từ trái sang phải sử dụng IC mở rộng

Bài 4: PIC 16led Sáng dần từ trái sang phải sử dụng IC mở rộng
Bài 4: PIC 16led Sáng dần từ trái sang phải sử dụng IC mở rộng

Tài liệu

Bài 4: PIC 16led Sáng dần từ trái sang phải sử dụng IC mở rộng

Yêu cầu : 16 led sáng dần từ trái sang phải 

Thiết bị sử dụng

  • Arduino Uno
  • 16 led
  • 16 điện trở 220
  • 2 IC 74HC595

Mạch đi dây

Chương trình điều khiển:

#define DATA  PIN_C1  //DS
#define LATCH PIN_C3  //ST_CP
#define CLOCK PIN_C0  //SH_CP
unsigned int8 bdn,i;
unsigned int16 y;
#int_timer1
void interrupt_timer1()
{
   bdn++;
   set_timer1(3060);
}
void IC_74hc595(int dulieu) 
{
   int i;
   output_low(CLOCK);
   for(i=0;i<=7;i++)
   {
      if((dulieu & 0x80)==0)
         output_low(DATA);
      else
         output_high(DATA);
      dulieu=dulieu<<1;
      output_high(CLOCK);
      output_low(CLOCK);
   }
}
void main()
{
   set_tris_c(0x00);
   setup_timer_1 (t1_internal|t1_div_by_8);
   set_timer1(3036);
   enable_interrupts(global);
   enable_interrupts(int_timer1);
   bdn=0;
   y=32768; //1000 0000 0000 0000
   i=0;
   while(TRUE)
   {
      if (bdn<5) //thoi gian chuyen la 500ms
      {
         if (i<16)
         {
            if (i<8) 
            {
            IC_74hc595(0);
            y = 32768 >> (i+8);
            IC_74hc595(y);
            }
            else  
            {y = 32768 >> i;
            IC_74hc595(y);
            IC_74hc595(0);
            }
         }
      }
      else 
      {
         output_low(LATCH);
         output_high(LATCH);
         i++;
         if (i>=16) i =0;
         bdn= bdn-5;
      }
   }
}

Tin khác

Thông báo mới

Fanpage facebook

Liên kết website