http://codepad.org/WWJMN7nj
Minh đang tập quét 8 led qua 595 , nhưng chỉ hiện thị 2 led cuối là led6 , led7 từ 0 đến 99 nhưng nạp vào mạch mô phỏng thì chạy loạn hết 8 led lên . ai chỉ mình sai chỗ nào với ạ
Quét led PIC 16f887
void byte_595(unsigned int8 data) // 20us
{
for(i = 0; i < 8; i++)
{
if((data&0x80) == 0x80) output_high(dl);
else output_low(dl);
}
output_high(cl); delay_us(10);
output_low(cl); delay_us(10);
}
Xung clock phải trigger theo từng bit chứ không phải hết 8 bit.
ngoài ra trong hiện thị
xuat_2_byte_595(led0, 0xfe); delay_ms(1); xuat_2_byte_595(0xff, 0xff);
không cần clear data sau mỗi lần xuất
xuat_2_byte_595(0xff, 0xff); // bỏ đi
tăng delay time lên, vì có thể đáp ứng tần số của bộ này hơn 1ms.
3 Likes
xuat_2_byte_595(0xff, 0xff) hay xuat_2_byte_595(led0, 0xff) chỉ để e tắt led đấy thôi ạ . e nghĩ xóa đi sao đc ạ
Code có rất nhiều lỗi.
2 Likes
anh chỉ cho em với ạ , để e rút kinh nghiệm . e cảm ơn
Sao không không đẩy hàm quét vào timer ?
Là yêu cầu hay chưa biết cách dùng ngắt timer ?
2 Likes
dạ chưa học tới timer ạ .