ads ads ads ads ads ads ads ads

Pengolahan Sinya Digital Berbasis Serial


  1. Penjelasan Program

Dari blog diagram diatas maka dapat dijelaskan bahwa master akan melakukan perintah menunggu instruksi dari push bottom, apabila kita melakukan penekanan push buttom, misalnya kita menekan pina.0(Pb1) maka mikro pada master akan mengirimkan data 1 pada slave1 sehingga slave1 akan melakukan penyamplingan karena penekanan pada pina.0 merupakan instruksi untuk melakukan sampling data sampai 100 sampel, setelah melakukan penyamplingan sampai 100 maka slave akan berhenti. Pada penekanan pina.1(Pb2) maka mikro pada master akan mengirimkan data 3 pada slave1 sehingga slave1 akan melakukan pengiriman data – data yang telah disampel pada slave1 karena penekanan pada pina.0 itu merupakan instruksi untuk mengambil data pada slave1 dan mengirimkan data tersebut keMaster, setelah data – datanya dikirim kemaster maka kita dapat melakukan penampilan data pada virtual terminal dengan melakukan penekanan pada pina.4(Pb5). Dan instruksi ini berlaku juga untuk pina.2(Pb3) dan pina.3(Pb4) dimana instruksi ini untuk mengakses/mengaktifkan slave2 dan yang berbeda itu adalah pemberian kodenya dimana kode pada slave2 ini adalah 2, sedangkan pada slave1 adalah 1.

Untuk memisahkan pengaksesan antara slave dengan virtual terminal maka kita gunakan dua buah selector dimana selector yang digunakan itu adalah buffer74LS244. selector ini akan bekerja jika kita berikan nilai nol sebab buffer ini merupakan aktif low. Dari gambar program buffer pertama digunakan untuk mengakses / mengaktifkan slave1 maupun slave2 sedangkan untuk buffer kedua digunakan untuk mengakses/mengaktifkan virtual terminal.


Keterangan pada tombol:

1. pina.0(Pb1) : instruksi untuk melakukan sampling pada slave1

2. pina.1(Pb1) : instruksi untuk melakukan get data pada slave1

3. pina.2(Pb1) : instruksi untuk melakukan sampling pada slave2

4. pina.3(Pb1) : instruksi untuk melakukan get data pada slave2

5. pina.4(Pb1) : instruksi untuk menampilkan hasil penyamplingan pada virtual memori.


2. Blok Diagram

3. Listing program

Program Master

$regfile = "m32def.dat"

$crystal = 4000000

$hwstack = 32

$swstack = 10

$framesize = 40

$baud = 9600

konfigurasi LCD

Config Lcdpin = 16 * 2

Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5

Declare Sub Hasil()

konfigurasi Port mikrokontroler

Config Portb.0 = Output

Config Pina.0 = Input

Config Pina.1 = Input

Config Pina.2 = Input

Config Pina.3 = Input

Config Pina.4 = Input

‘ Deklarasi Variabel

Dim A As Byte

Dim B(101) As Word

Dim C As Byte

Dim Oo(100) As Byte

‘Open COM for Virtual Terminal

Open "comd.1:9600,8,n,1" For Output As #3

Locate 1 , 5

Lcd "Tugas"

Locate 2 , 3

Lcd "MIKRO2"

‘Default c Data

C = 0

‘Mematikan Cursor LCD

Cursor Off

‘ Program utama

Do

‘Cek penekanan tombol

If Pina.0 = 1 Then

Cls

Locate 1 , 5

Lcd "Proses"

Locate 2 , 3

Lcd "Penyamplingan"

Portb.0 = 1

Waitms 10

A = 1

Print Chr(a);

Waitms 50

‘Instruksi ini merupakan proses untuk mengaktifkan slave1

Elseif Pina.1 = 1 Then

Cls

Locate 1 , 5

Lcd "Get"

Locate 2 , 3

Lcd "Data"

Portb.0 = 1

Waitms 10

A = 3

Print Chr(a);

For C = 1 To 100

Oo(c) = Waitkey()

Next C

Do

Loop Until Pina.4 = 1

Call Hasil()

‘Instruksi ini merupakan proses untuk mengambil data dari slave1 dan proses pengambilan data dari slave1 dilakukan sampai samplingan yang keseratus dan sampai menunggu instruksi untuk menampilkan data kevirtual dengan adanya penekanan pada tombol5 atau Pina.4.

Elseif Pina.2 = 1 Then

Cls

Locate 1 , 5

Lcd "Proses"

Locate 2 , 3

Lcd "Penyamplingan"

Portb.0 = 1

Waitms 10

A = 2

Print Chr(a);

Waitms 50

‘Instruksi ini merupakan proses untuk mengaktifkan slave2

Elseif Pina.3 = 1 Then

Cls

Locate 1 , 5

Lcd "Get"

Locate 2 , 3

Lcd "Data"

Portb.0 = 1

Waitms 10

A = 4

Print Chr(a);

For C = 1 To 100

Oo(c) = Waitkey()

Next C

Do

Loop Until Pina.4 = 1

Call Hasil()

‘Instruksi ini merupakan proses untuk mengambil data dari slave2 dan proses pengambilan data dari slave2 dilakukan sampai samplingan yang keseratus dan sampai menunggu instruksi untuk menampilkan data kevirtual yaitu dengan adanya penekanan pada tombol5 atau Pina.4.

Else

End If

Loop

Sub Hasil()

Portb.0 = 0

Dim L As Byte

For C = 1 To 100

L = Oo(c)

Print "data ke-" ; C ; "=" ; L ; Chr(13);

Next C

End Sub

‘instruksi untuk mengirim data kevirtual terminal

Slave1 dan Slave2

$regfile = "m32def.dat"

$crystal = 4000000

$hwstack = 32

$swstack = 10

$framesize = 40

$baud = 9600

konfigurasi LCD

Config Lcdpin = 16 * 2

Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5

‘Mengaktifkan ADC

Config Adc = Single , Prescaler = Auto , Reference = Avcc

‘Declarasi Variabel

Dim A As Word

Dim B(300) As Word

Dim C As Word

Dim D As Word

Dim F As Byte

‘Mengaktifkan ADC

Start Adc

Locate 1 , 5

Lcd "Tugas"

Locate 2 , 3

Lcd "MIKRO"

‘Default C data

C = 0

‘Mematikan cursor LCD

Cursor Off

‘Program utama

Do

Menunggu Instruksi

A = Waitkey()

If A = 1 Then

Cls

Locate 1 , 5

Lcd "proses"

Locate 2 , 3

Lcd "penyamplingan"

Waitms 100

Do

C = C + 1

D = Getadc(0)

B(c) = D / 4

Waitms 50

Cls

Locate 1 , 1

Lcd "data ke-" ; C

Locate 1 , 12

Lcd "=" ; B(c)

Waitms 100

Loop Until C = 100

‘Apabila A menerima karakter 1 maka slave1 ini akan melakukan proses penyamplingan data sampai 100.

Elseif A = 3 Then

Cls

For C = 1 To 100

F = B(c)

Print Chr(f);

Waitms 10

Next C

‘Apabila A menerima karakter 3 maka slave1 ini akan melakukan proses pengiriman data yang telah disampling sampai 100 kepada Master.

End If

Loop

End


Untuk listing program slave2 sama aja dengan slave1 yang beda itu cuman ada pada pengkodeannya saja, kalau pada slave1 kodenya 1 dan 3, sedangkan slave2 kodenya 2 dan 4.


4. Gambar pada proteus


1 comment:

Anonymous said...

Makasih..,, blog kamu sangat membantu saya dalam menyelesaikan TA...
thanks...

Post a Comment

Comment