Mình dùng ic dịch 74hc595 để cấp data cho led 7 đoạn. Mình chưa sài khả năng SPI của atmega8 ở đây để đẩy data ra đoạn code này mình chỉ đơn thuần đưa từng byte ra led 7 đoạn rồi quét led mà không hiểu sai chỗ nào mà tất cả các led đều sáng số 8 mặc dù mình đã thay đổi chỉ số mảng .
Code đưa dữ liệu và xuất ra led :
// code ở void main (void) :
Mình nghĩ chắc sai đâu đó ở hàm đẩy dữ liệu ra 74hc595 vì khi thay các chỉ số mang khác cũng hiện toàn số 8. Các bạn chỉ giúp mình
Code đưa dữ liệu và xuất ra led :
Code:
flash unsigned char maled_7doan_[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; napic595(unsigned char number ) // dua du lieu ra 74hc 595 { unsigned char nap = 0, temp; temp = number; while(nap < 8) { temp = temp&&0x80; if(temp == 0x80) { data = 1; clock = 1; clock = 0; } else { data = 0; clock = 1; clock = 0; } number = (number >> 1); temp = number; nap++; } latch = 1; latch = 0; nap = 0; }
Code:
napic595(maled_7doan_[5]); // truy xuat mang lay du lieu va goi ham dua du lieu ra ic74hc595 for( dem = 6500;dem >0; dem--) { l1 = 0; // quet led 1 dua cuc B cua transistor pnp xuong muc 0 delay_ms(3); l1 = 1; l2 = 0; // quet led 1 delay_ms(3); l2 = 1; l3 = 0; // quet led 3 delay_ms(3); l3 = 1; l4 = 0; // quet led 4 delay_ms(3); l4 = 1; l5 = 0; // quet led 5 delay_ms(3); l5 = 1; }
Comment