HIỂN THỊ LED 7 ĐOẠN AVR
TÌM HIỂU LED 7 ĐOẠN XEM Ở ĐÂY.
Trong hướng dẫn này, chúng tôi sẽ giao tiếp một đoạn bảy với ATmega32 và hiển thị bộ đếm hex một chữ số (0-F). Sau đó, điều tương tự sẽ được mở rộng cho các màn hình ghép 4 bảy đoạn để tạo ra bộ đếm 4 chữ số.
LED 7 ĐOẠN DƯƠNG CHUNG ( ANODE). |
Code
#include <avr/io.h> #include <util/delay.h> #define SegOne 0x01 #define SegTwo 0x02 #define SegThree 0x04 #define SegFour 0x08 int main() { char seg_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; int cnt, num, temp,i; /* Configure the ports as output */ DDRB = 0xff; // Data lines DDRD = 0xff; // Control signal PORTD0-PORTD3 while (1) { for (cnt = 0x00; cnt <= 9999; cnt++) // loop to display 0-9999 { for (i = 0; i < 100; i++) { num = cnt; temp = num / 1000; num = num % 1000; PORTD = SegOne; PORTB = seg_code[temp]; _delay_ms(1); temp = num / 100; num = num % 100; PORTD = SegTwo; PORTB = seg_code[temp]; _delay_ms(1); temp = num / 10; PORTD = SegThree; PORTB = seg_code[temp]; _delay_ms(1); temp = num % 10; PORTD = SegFour; PORTB = seg_code[temp]; _delay_ms(1); } } } }