Kali ini akan dibahas mengenai bagaimana cara mengakses IC 74HC164 dengan menggunakan bascom AVR, IC ini adalah IC SIPO atau serial input paralel output jadi menggunakan satu port input dan banyak port output, biasanya IC ini digunakan untuk membuat variasi led, led berjalan, moving sign dan lainnya, berikut konfigurasi IC dan keterangan cara mengaksesnya
Pada contoh ini menggunakan ATMega16 dengan Port Output / led berada di PortD.0 -- PortD.7, CP (Clock) berada pada PortD.1 dan MR berada pada PortD.2. Perlu diingat bahwa pada IC 74HC164 Pin A dan Pin B dijadikan satu atau disambung, jadi hanya menggunakan satu Pin input yaitu A dan B untuk input data atau serial input.
Program Bascom AVR
$regfile = "m16def.dat"
$crystal = 12000000
Dataout Alias Portd.0
Clock Alias Portd.1
Dim Datas As Byte
Ddrd = &B11111111
Portd.2 = 1
Do
'SHIFTOUT pin , pclock , var , option [, bits , delay ] - bascom
'Shiftout Datas , Clock , Bytesatuan , 1
'0 = MSB shifted out first when clock goes low
'1 = MSB shifted out first when clock goes high
'2 = LSB shifted out first when clock goes low
'3 = LSB shifted out first when clock goes high
Portd.1 = 0
Portd.1 = 1
Datas = &B00001111
Shiftout Dataout , Clock , Datas , 2 , 8 , 1000000
Portd.1 = 0
Waitms 1000
Portd.1 = 0
Portd.1 = 1
Datas = &B10101010
Shiftout Dataout , Clock , Datas , 1 , 8 , 1000000
Portd.1 = 0
Waitms 1000
Loop
$crystal = 12000000
Dataout Alias Portd.0
Clock Alias Portd.1
Dim Datas As Byte
Ddrd = &B11111111
Portd.2 = 1
Do
'SHIFTOUT pin , pclock , var , option [, bits , delay ] - bascom
'Shiftout Datas , Clock , Bytesatuan , 1
'0 = MSB shifted out first when clock goes low
'1 = MSB shifted out first when clock goes high
'2 = LSB shifted out first when clock goes low
'3 = LSB shifted out first when clock goes high
Portd.1 = 0
Portd.1 = 1
Datas = &B00001111
Shiftout Dataout , Clock , Datas , 2 , 8 , 1000000
Portd.1 = 0
Waitms 1000
Portd.1 = 0
Portd.1 = 1
Datas = &B10101010
Shiftout Dataout , Clock , Datas , 1 , 8 , 1000000
Portd.1 = 0
Waitms 1000
Loop
No comments:
Post a Comment