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;