Em xin chào các anh, em có vấn đề khi quét led 7 đoạn qua 74hc595.
Sơ đồ thì chỉ là nối 8 chân a, b, c... vào 8 chân Q0-> Q7, các chân SHCP, STCP, DS nối vào chip. 4 thứ tự 1, 2, 3, 4 của led thì nối trực tiếp vào chip.
Code của em như sau:
Dùng để hiển thị kí tự 13 độ C nhưng kết quả ko như ý: Led - YouTube
Như ở digit led đầu tiên, yêu cầu nó hiển thị số 1, nhưng sau khi hiển thị số 1 thì nó lại nháy sáng tất cả các thanh còn lại của LED, các digit khác cũng bị tương tự.
Hi vọng các anh giúp đỡ, em xin cám ơn
Sơ đồ thì chỉ là nối 8 chân a, b, c... vào 8 chân Q0-> Q7, các chân SHCP, STCP, DS nối vào chip. 4 thứ tự 1, 2, 3, 4 của led thì nối trực tiếp vào chip.
Code của em như sau:
Code:
void input595(unsigned char data)
{
unsigned char i;
unsigned char k;
k = 128;
SHCP= 1;
STCP= 0;
for(i = 0; i<8; i++)
{
if((data & k) == 0)
DS = 0;
else
DS = 1;
SHCP = 0;
SHCP = 1;
k >>= 1;
}
STCP = 0;
STCP = 1;
}
//Test hien thi thoi gian cai dam
void display(void)
{
input595(do);
led3 = bat;
delay_ms(5);
led3 = tat;
input595(C);
led4 = bat;
delay_ms(5);
led4 = tat;
chuc2 = phut / 10;
dv2 = phut %10;
input595(m[chuc1]);
led1 = bat;
delay_ms(5);
led1 = tat;
input595(m[dv1]);
led2 = bat;
delay_ms(5);
led2 = tat;
}
Như ở digit led đầu tiên, yêu cầu nó hiển thị số 1, nhưng sau khi hiển thị số 1 thì nó lại nháy sáng tất cả các thanh còn lại của LED, các digit khác cũng bị tương tự.
Hi vọng các anh giúp đỡ, em xin cám ơn
cần gì phải làm header 10 riêng rồi lại còn sử dụng cả 7805, header nguồn...làm tăng giá thành của mạch.
Comment