Sabtu, 06 Oktober 2012

Pemrograman Display 7 Segment dengan SPI MAX7221


Pemrograman Display 7 Segmen dengan MAX7221 via komunikasi  SPI.
Cara paling mudah memprogram display  7 segment adalah  dgn bantuan IC MAX7221.  Kita tdk perlu lagi membuat program scanning (program bergantian mengaktifkan digit ) karena semua itu dilakukan oleh ic max7221. Kita hanya mengirim sedikit perintah2 dan data ke ic tsb  via SPI dgn  format yg sudah ditentukan untuk menampilkan data  di 7 segmen. Selain itu kita bisa berhemat kaki IO  microcontroller, karena  max7221 hanya perlu 3 pin dari  microcontroller.

MAx7221 Untuk Display 7 segment dgn SPI

contoh rangkaian 7 segment dgn max7221
Kaki -kaki  SPI pada microcontroller AVR atmega

Pin isp pada Atmega AVR
Pemrograman Max7221
Untuk menampilkan data kita perlu mengirimkan format dibawah ini ke ic max7221 :

Format Data yg dikirim ke Max7221
Keterangan rincian kombinasi bit pada byte  Address gambar diatas sbb

kombinasi byte Adress untuk memilih Digit yg aktif dan perintah
Langkah-langkah mengirim data SPI ke max7221  :
1. Buat pin CS menjadi Low
2. Kirim data dengan format data diatas
3. Buat pin CS kembali High
Contoh Code Program dengan   bahasa C AVR Studio:
#include<avr/io.h>
#define MOSI 5   //(PortB.5)  data out
#define SCK 7    //(PortB.7)
#define SS 4     //(PortB.4)

void kirimbyte(unsigned char perintah, unsigned char data)
PORTB =PORTB & ~(1<<SS)  //pin  SS dibuat LOW

//kirim byte pertama (perintah)
SPDR = perintah;
while(!(SPSR & (1<<SPIF));//tunggu transfer 1 byte sampai  selesai

//kirim byte kedua(data)
SPDR = data;
while(!(SPSR & (1<<SPIF)); //tunggu transfer 1 byte sampai  selesai

PORTB =PORTB | (1<<SS);        //pin SS dibuat  High
}

int main(void)
{
//setting SPI
DDRB = (1<<MOSI) | (1<<SCK) | (1<<SS); //set bit Mosi & sck sbg output
SPCR = (1<<SPE) | (1<<MSTR) | (1<<SPR0) //AVR sebagai master SPI

kirimbyte(0x09,0xFF);// mengaktifkan  8 digit 7segmen
//jika cuma 2 digit : kirimbyte(0x9,0x3);

kirimbyte(0x0B,0x08);   //scan (looping) 8 digit
kirimbyte(0x0C,0x07);   //aktifkan Chip

//menampilkan angka

Kirimbyte(0x01,0x8);  //menampilkan angka 8 di digit 1
Kirimbyte(0x02,0x9);  //menampilkan angka 9 di digit 2
Kirimbyte(0x04,0x7);  //menampilkan angka 7 di digit 3
Kirimbyte(0x08,0x5);  //menampilkan angka 5 di digit 4
// dan seterusnya....

while(1);

return 0;

}
Adapun cara pengiriman data melaui SPI dgn Codevision :  SPI(char data)
lebih lengkapnya Anda bisa baca disini dan   disini.
Referensi:
- Datasheet max7221

0 komentar:

Posting Komentar

 
Copyright ELEKTRONICA MIKROKONTROLER All Rights Reserved
Powered by Alat Rekaman
ProSense theme created by Dosh Dosh and The Wrong Advices.
Blogerized by Bonard Alfin Forum Distorsi.