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;
}
}
}







