24 Digit Simulasi 7-Segmen + Pengkodean: 3 Langkah

24 Digit Simulasi 7-Segmen + Pengkodean: 3 Langkah

Daftar Isi:

Anonim

Simulasi 24 x 7-segmen Common Anode menggunakan proteus 8.0, PIC16F887, MicroC untuk pengkodean.

Persediaan:

Langkah 1: Kumpulkan Komponen

Saya menggunakan 3 x 8 Digit 7-Segment Common Anode untuk membentuk 24 Digit dengan PIC16F887 untuk kemudian diprogram menggunakan MicroC.

Langkah 2: Membangun Skema

Saya menghubungkan semua bagian seperti yang ditunjukkan pada gambar dengan Proteus 8.0

lihat video saya untuk lebih jelasnya

Langkah 3: Pengodean

int tab 10 = {0XC0, 0XF9, 0XA4,0XB0, 0X99, 0X92, 0X82, 0XF8, 0X80, 0X90}; // 0 SAMPAI 9 FORMAT HEX

int d1, d2, d3, d4, d5, d6, d7, d8, d10, d11, d12, d13, d14, d15, d15, d16, d17, d18, d19, d20, d21, d22, d23, d24; // untuk setiap digit

int i = 0;

long int j = 0;

delay const = 20;

membatalkan main () {

TRISA = 0X00; // semua port sebagai output

TRISB = 0X00;

TRISC = 0X00;

TRISD = 0X00;

ANSEL = 0; // konfigurasikan pin analog sebagai digital

ANSELH = 0;

C1ON_bit = 0; // nonaktifkan komparator

C2ON_bit = 0;

PORTA = 0X00; // matikan semua porta

PORTD = 0X00;

PORTC = 0X00;

PORTB = 0X00;

while (1) {/////// Counter dengan 24 digit

untuk (j = 0; j <9999999; j ++) {// j adalah angka maksimum // menghapus loop for jika j overflow

i = 0; sementara (i <25) {// i bertanggung jawab atas jumlah waktu setiap angka akan bertahan PORTA = 0X01; // nyalakan digit pertama

PORTB = tab d1;

delay_us (delay);

PORTA = 0X02;

PORTB = tab d2;

delay_us (delay);

PORTA = 0X04;

PORTB = tab d3;

delay_us (delay);

PORTA = 0X08;

PORTB = tab d4;

delay_us (delay);

PORTA = 0X10;

PORTB = tab 9;

delay_us (delay);

PORTA = 0X20;

PORTB = tab 5;

delay_us (delay);

PORTA = 0X40;

PORTB = tab 1;

delay_us (delay);

PORTA = 0X80;

PORTB = tab 0;

delay_us (delay);

PORTD = 0X01;

PORTB = tab 6;

delay_us (delay);

PORTD = 0X02;

PORTB = tab 7;

delay_us (delay);

PORTD = 0X04;

PORTB = tab 8;

delay_us (delay);

PORTD = 0X08;

PORTB = tab 4;

delay_us (delay);

PORTD = 0X10;

PORTB = tab 3;

delay_us (delay);

PORTD = 0X20;

PORTB = tab 1;

delay_us (delay);

PORTD = 0X40;

PORTB = tab 4;

delay_us (delay);

PORTD = 0X80;

PORTB = tab 6;

delay_us (delay);

PORTC = 0X01;

PORTB = tab 6;

delay_us (delay);

PORTC = 0X02;

PORTB = tab 4;

delay_us (delay);

PORTC = 0X04;

PORTB = tab 3;

delay_us (delay);

PORTC = 0X08;

PORTB = tab 0;

delay_us (delay);

PORTC = 0X10;

PORTB = tab 1;

delay_us (delay);

PORTC = 0X20;

PORTB = tab 2;

delay_us (delay);

PORTC = 0X40;

PORTB = tab 8;

delay_us (delay);

PORTC = 0X80;

PORTB = tab 9;

delay_us (delay);

i ++;

}

d1 ++;

if (d1> 9) {d1 = 0; d2 ++;}

if (d2> 9) {d2 = 0; d3 ++;}

if (d3> 9) {d3 = 0; d4 ++;}

if (d4> 9) {d4 = 0; d5 ++;}

if (d5> 9) {d5 = 0; d6 ++;}

if (d6> 9) {d6 = 0; d7 ++;}

if (d7> 9) {d7 = 0; d8 ++;}

if (d8> 9) {d8 = 0; d9 ++;}

if (d9> 9) {d9 = 0; d10 ++;}

if (d10> 9) {d10 = 0; d11 ++;}

if (d11> 9) {d11 = 0; d12 ++;}

if (d12> 9) {d12 = 0; d13 ++;}

if (d13> 9) {d13 = 0; d14 ++;}

if (d14> 9) {d14 = 0; d15 ++;}

if (d15> 9) {d15 = 0; d16 ++;}

if (d16> 9) {d16 = 0; d17 ++;}

if (d17> 9) {d17 = 0; d18 ++;}

if (d18> 9) {d18 = 0; d19 ++;}

if (d19> 9) {d19 = 0; d20 ++;}

if (d20> 9) {d20 = 0; d21 ++;}

if (d21> 9) {d21 = 0; d22 ++;}

if (d22> 9) {d22 = 0; d23 ++;}

if (d23> 9) {d23 = 0; d24 ++;}

if (d24> 9) {d24 = 0;}

} d1 = d2 = d3 = d4 = d5 = d6 = d7 = d8 = d9 = d10 = d11 = d13 = d13 = d14 = d15 = d16 = d16 = d16 = d19 = d20 = d21 = d22 = d23 = d24 = 0; }

}