Anda di halaman 1dari 10

PENGENDALIAN DAC DENGAN PPI 8255

 Bagaimana Diagram sistem antarmuka PPI 8255?


 Bagaimana Skema dan karakteristik DAC yang
digunakan?
 Port-port apa saja pada PPI 8255 yang digunakan?
 Bagaimana sistem inisialisasi datanya?
 Alamat berapa saja yang digunakan?
 Bagaimana Flowchart sistem transfer data nya?
 Bagaimana prosedur-prosedur yang digunakan
Diagram sistem antarmuka PPI 8255
 Diagram sistem antarmuka PPI 8255?

address bus

control bus

data bus

A0 A1 CS D0 …D7 RW WR

8255
Mode 0 Port A Port C Port B

8 I/O I/O 4 4 I/O 8 I/O


PA0…PA7 PC0…PC3 PC4…PC7 PB0…PB7
 Skema DAC Yang digunakan (AD 7521)
 DAC ini berfungsi untuk mengubah sinyal digital menjadi
sinyal analog,
Karakteristik DAC yang digunakan?
 AD7521 adalah IC yang memiliki jumlah pin 18, dan
resolusi 12 Bit. Range tegangan power supply antara
+5 sampai dengan +15
 Dengan VrefIn negatif atau positif, rangkaian ini
menghasilkan dua kuadran multiplikasi.
 Skema rangkaian tersebut, dengan memberikan VrefIn
negatif maka tegangan keluaran analog positif, jika
VrefIn positif maka tegangan keluaran analog negatif.
 Tegangan keluaran maksimumnya tergantung dari
VrefIn yang diberikan.
Tabel Kode Operasi binary Unipolar AD 7521
(AD7521 Data Sheet)

DIGITAL INPUT ANALOG OUTPUT


111111111111 -Vref (1-2-12)
100000000001 -Vref (1/2 +2-12)
100000000000 -Vref /2
011111111111 -Vref (1/2-2-12)
000000000001 -Vref (2-12)
000000000000 0
{Alur Program Pengendalian DAC1 yang memanfaatkan 8 bit port A
dan 4 bit port C LSB }
Input :
 vDAC1
 Proses :
 begin
 Inisialisasi PPI 8255 (isikan control byte)
 Reset Data PPI 8255
 Baca data input ( vDAC1)
 Hitung :
 DataDAC1:= Round((StrToFloat(vDAC1.Text)/vMax)*4095);
 DataBiner:= IntToBin(DataDAC2,11);
 LoBit := Lo(DataDAC1);
 HiBit := Hi(DataDAC1)*256;
 HiBit := HiBit And $0F;
 Kirim Data kePort:
 OutPut($300,LoBit);
 OutPut($302,DataPC);
 end;
 Output :
 Tegangan keluaran DAC1 = vDAC1
 Procedure Delay(Lama: Longint);
 Var Ref: Longint;
 Begin
 Ref:= GetTickCount;
 Repeat
 Application.ProcessMessages;
 Until (GetTickCount-Ref)>=Lama;
 End;
 Procedure OutPut(Addres:Word;
Data: Byte);
 Begin
 Asm
 mov DX,Addres
 mov AL,Data
 out DX,AL
 End;
 End;
 Function Input(Addres:Word):Word;
 Var B: Word;
 Begin
 Asm
 mov DX,Addres
 in AL,DX
 mov B,AX
 End;
 Input:=B;
 End;
 ProcedureTfSCA.SetDACPos(Vout:Real);
 begin
 Vout:= Vout;
 DataDAC1:=Round(StrToFloat(Vout/5)*4095);
 DataBiner := IntToBin(DataDAC1,11);
LoBit :=Lo(DataDAC1);
 HiBit :=Hi(DataDAC1)*256;
 HiBit:= HiBit And $0F;
 OutPut($400,LoBit);
 OutPut($402,DataPC);
 end;

Anda mungkin juga menyukai