MEMBUAT PROGRAM LED BERJALAN DENGAN BAHASA ASSEMBLY PADA MIKROKONTROLER MCS-51(AT89S52)

x
x
x
Sebelumnya kita mengenal terlebih dahulu mikrokontroler MCS-51 yang dimana kali ini kita menggunakan AT89S52. Berikut fitur-fitur yang dimiliki Mikrokontroler AT89S52 :



  • Sebuah CPU ( Central Processing Unit ) 8 Bit.


  • 256 byte RAM ( Random Acces Memory ) internal.



  • Empat buah port I/O, yang masing masing terdiri dari 8 bit


  • Osilator internal dan rangkaian pewaktu.


  • Dua buah timer/counter 16 bit


  • Lima buah jalur interupsi ( 2 buah interupsi eksternal dan 3 interupsi internal).



  • Sebuah port serial dengan full duplex UART (Universal Asynchronous Receiver Transmitter).



  • Mampu melaksanakan proses perkalian, pembagian, dan Boolean.




  • EPROM yang besarnya 8 KByte untuk memori program.



  • Kecepatan maksimum pelaksanaan instruksi per siklus adalah 0,5 ?s pada frekuensi clock 24 MHz. Apabila frekuensi clock mikrokontroler yang digunakan adalah 12 MHz, maka kecepatan pelaksanaan instruksi adalah 1 ?s
Mikrokontroler AT89S52 keluarga MCS-51






 Gambar Mikrokontroller AT89S52 (MCS-51)

KONFIGURASI PIN




Mikrokontroler AT89S52 mempunyai 40 pin dengan catu daya tunggal 5 Volt. Ke-40 pin
tersebut digambarkan sebagai berikut :



Fungsi dari masing-masing pin AT89S52 adalah :
1.      Pin 1 sampai 8 (Port 1) merupakan port pararel 8 bit dua arah (bidirectional)  yang    dapat digunakan untuk berbagai keperluan ( general purpose).
2.      Pin 9 merupakan pin reset, reset aktif jika mendapat catuan tinggi.
3.      Pin 10 sampai 17 (Port 3) adalah port pararel 8 bit dua a rah yang memiliki fungsi pengganti sebagai berikut :
?     P3.0 (10) : RXD (port serial penerima data)
?     P3.1 (11) : TXD (port serial pengirim data)
?     P3.2 (12) : INT0 (input interupsi eksternal 0, aktif low)
?     P3.3 (13) : INT1 (input interupsi ekstrernal 1, a ktif low)
?     P3.4 (14) : T0 (eksternal input timer / counter 0)
?     P3.5 (15) : T1 (eksternal input timer / counter 1)
?     P3.6 (16) : WR (Write, aktif low) Sinyal kontrol penulisan data dari port 0 ke memori data dan input-output eksternal.
?   P3.7 (17) : RD (Read, aktif low) Sinyal kontrol pembacaan memori data input -      output eksternal ke port 0.
4.      Pin 18 sebagai XTAL 2, keluaran osilator yang terhubung pada kristal.
5.      Pin 19 sebagai XTAL 1, masukan ke osilator berpenguatan tinggi, terhubung pada kristal.
6.      Pin 20 sebagai Vss, terhubung ke 0 atau ground pada rangkaian.
7.      Pin 21 sampai 28 (Port 2) adalah port pararel 8 bit dua arah. Port ini mengirim byte alamat bila pengaksesan dilakukan pada memori eksternal.
8.      Pin 29 sebagai PSEN (Program Store Enable) adalah sinyal yang digunakan untuk membaca, memindahkan program memori eksternal (ROM / EPROM) ke mikrokontroler (aktif low).
9.      Pin 30 sebagai ALE (Address Latch Enable) untuk menahan alamat bawah selama mengakses memori eksternal. Pin ini juga berfungsi s ebagai PROG (aktif low) yang diaktifkan saat memprogram internal flash memori pada mikrokontroler (on chip).
10.  Pin 31 sebagai EA (External Accesss) untuk memilih memori yang akan digunakan, memori program internal (EA = Vcc) atau memori program eksterna l (EA = Vss),   juga berfungsi sebagai Vpp (programming supply voltage) pada saat memprogram   internal flash memori pada mikrokontroler.
11.  Pin 32 sampai 39 (Port 0) merupakan port pararel 8 bit dua arah. Berfungsi sebagai alamat bawah yang dimultipleks den gan data untuk mengakses program dan data memori eksternal.
12.  Pin 40 sebagai Vcc, terhubung ke +5 V sebagai catuan untuk mikrokontroler.
13.  Berikut cara Menghubungkan Rangkaian Led Dengan Mikrokontroler Mcs-51 :
Rangkaian driver led dengan mikrokontroler AT89S52
Gambar Rangkaian Led dengan Mikrokontroler
Berikut program led berjalan yang akan kita buat menggunakan bahasa
assembler dengan asumsi kita menggunakan crystal 12 MHZ :
1.      Buka program notepad / text editor anda kemudian ketikkan listing program dibawah ini :



                          $MOD51 
                          ORG 0000h

MULAI :             MOV P1, #01h    ; mengisi P1 dengan 1

                          CALL TUNDA     ; memanggil subfungsi TUNDA

                          MOV P1, #02h     ; mengisi P1 dengan 2

                          CALL TUNDA    

                          MOV P1, #04h    ; mengisi P1 dengan 4

                          CALL TUNDA

                          MOV P1, #08h    ; mengisi P1 dengan 8

                          CALL TUNDA

                          MOV P1, #10h    ; mengisi P1 dengan 16

                          CALL TUNDA

                          MOV P1, #20h     ; mengisi P1 dengan 32

                          CALL TUNDA

                          MOV P1, #40h    ; mengisi P1 dengan 64

                          CALL TUNDA

                          MOV P1, #80h    ; mengisi P1 dengan 128

                          CALL TUNDA

                          AJMP MULAI
TUNDA :

                          MOV R1, #2         ; 1 siklus mesin

T1:                     MOV R2, #244    ; 1 siklus mesin

T2:                     MOV R3, #255     ; 1 siklus mesin

T3:                     DJNZ R3, T3         ; 2 siklus mesin * 255

                          DJNZ R2, T2         ; 2 siklus mesin * 244

                          DJNZ R1, T1         ; 2 siklus mesin * 2

                          ; = 1+((1+((1+(2*256))*(2*244))*(2*2)))

                          ; = 1001381 mikrosecond

                          RET
                          End



2.      Simpan proyek anda dengan eksistensi .asm contoh led.asm, di dalam satu folder dengan program ASM51.
3.      Buka Command Prompt dan masukkan direktori folder tempat menyimpan ASM51, contoh : D:\assembler\asm51
4.      Langkah selanjutnya ketik nama file program assembler anda tadi contoh : led.asm. kemudian enter dan perhatikan jika tidak ada kesalahan akan muncul ASSEMBLY COMPLETE, 0 ERROR FOUND.
5.      SELAMAT MENCOBA..!!!



MEMBUAT APLIKASI KONVERSI BILANGAN DENGAN PROGRAM VB


Konversi bilangan adalah perubahan bilangan yang biasanya kita kenal seperti bilangan biner, hexadesimal, desimal dan oktal. Dimana sistem bilangan ini wajib kita pahami untuk seorang mahasiswa Teknik Elektro apalagi ingin menjadi seorang Programmer.
1.    Desimal
Bilangan desimal adalah bilangan yang mempunyai sepuluh simbol angka yaitu 0,1,2,3,4,5,6,7,8,9.
2.    Heksadesimal
Bilangan heksadesimal adalah bilangan yang mempunyai enam belas simbol angka yaitu 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
3.    Biner
Bilangan Biner adalah bilangan yang mempunyai dua simbol 0 dan 1
4.    Oktal
Bilangan heksadesimal adalah bilangan yang mempunyai delapan simbol angka yaitu 0,1,2,3,4,5,6,7
Berikut tabel konversi bilangan :


















Desimal
Biner
Oktal
Hexadesimal
0
0
0
0
1
1
1
1
2
10
2
2
3
11
3
3
4
100
4
4
5
101
5
5
6
110
6
6
7
111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F
Baiklah kita akan membuat program Aplikasi Konversi Bilangan dengan VB dimana aplikasi ini akan membantu anda mengkonversikan bilangan secara cepat dan tepat :
1.    Seperti biasa buatlah New Project pada software VB anda kemudian tambahkan 11 label, 2 textbox, 2 frame, 8 optionbutton, dan 3 commandbutton.
2.    Desainlah menjadi seperti gambar dibawah ini :
Aplikasi konversi bilangan dengan VB
Gambar Form Aplikasi Konversi Bilangan dengan program VB
3.    Kemudian ketikkan kode/script/listing program dibawah ini :
Option Explicit

Private Sub command2_Click()
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub command3_Click()
End
End Sub
Private Sub command1_Click()
  If Option2.Value And Option5.Value Then Text2.Text = BinToDes(Text1.Text)
  If Option2.Value And Option6.Value Then Text2.Text = Text1.Text
  If Option2.Value And Option7.Value Then Text2.Text = BinToOk(Text1.Text)
  If Option2.Value And Option8.Value Then Text2.Text = BinToHex(Text1.Text)
  If Option1.Value And Option6.Value Then Text2.Text = DesToBin(Text1.Text)
  If Option1.Value And Option5.Value Then Text2.Text = Text1.Text
  If Option1.Value And Option7.Value Then Text2.Text = DesToOk(Text1.Text)
  If Option1.Value And Option8.Value Then Text2.Text = DesToHex(Text1.Text)
  If Option3.Value And Option6.Value Then Text2.Text = OkToBin(Text1.Text)
  If Option3.Value And Option8.Value Then Text2.Text = OkToHex(Text1.Text)
  If Option3.Value And Option5.Value Then Text2.Text = OkToDes(Text1.Text)
  If Option3.Value And Option7.Value Then Text2.Text = Text1.Text
  If Option4.Value And Option6.Value Then Text2.Text = HexToBin(Text1.Text)
  If Option4.Value And Option5.Value Then Text2.Text = HexToDes(Text1.Text)
  If Option4.Value And Option7.Value Then Text2.Text = HexToOk(Text1.Text)
  If Option4.Value And Option8.Value Then Text2.Text = Text1.Text

  With Text1
    .SelStart = 0
    .SelLength = Len(Text1.Text)
  End With
End Sub

Public Function BinToDes(ByVal NBiner As String) As Long
  Dim A         As Integer
  Dim B         As Long
  Dim Nilai    As Long
  On Error GoTo ErrorHandler
  B = 1
  For A = Len(NBiner) To 1 Step -1
    If Mid(NBiner, A, 1) = "1" Then Nilai = Nilai + B
    B = B * 2
  Next
  BinToDes = Nilai
  Exit Function
ErrorHandler:
  BinToDes = 0
End Function


Public Function DesToBin(ByVal NDesimal As Long) As String
  Dim C        As Byte
  Dim D        As Long
  Dim Nilai    As String
  On Error GoTo ErrorHandler
  D = (2 ^ 31) - 1
  While D > 0
    If NDesimal - D >= 0 Then
      NDesimal = NDesimal - D
      Nilai = Nilai & "1"
    Else
      If Val(Nilai) > 0 Then Nilai = Nilai & "0"
    End If
    D = D / 2
  Wend
  DesToBin = Nilai
  Exit Function
ErrorHandler:
  DesToBin = 0
End Function

Public Function DesToHex(ByVal NDesimal As Long) As String
  DesToHex = Hex(NDesimal)
End Function

Public Function HexToDes(ByVal NHexa As String) As Long
  Dim E         As Integer
  Dim Nilai     As Long
  Dim F         As Long
  Dim CharNilai As Byte
  On Error GoTo ErrorHandler
  For E = Len(NHexa) To 1 Step -1
    Select Case Mid(NHexa, E, 1)
      Case "0" To "9": CharNilai = CInt(Mid(NHexa, E, 1))
      Case Else: CharNilai = Asc(Mid(NHexa, E, 1)) - 55
    End Select
    Nilai = Nilai + ((16 ^ F) * CharNilai)
    F = F + 1
  Next E
  HexToDes = Nilai
  Exit Function
ErrorHandler:
  HexToDes = 0
End Function
Public Function DesToOk(ByVal NDesimal As Long) As String
  DesToOk = Oct(NDesimal)
End Function

Public Function OkToDes(ByVal NOktal As String) As Long
  Dim G          As Integer
  Dim H          As Long
  Dim Nilai      As Long
  On Error GoTo ErrorHandler
  For G = Len(NOktal) To 1 Step -1
    Nilai = Nilai + (8 ^ H) * CInt(Mid(NOktal, G, 1))
    H = H + 1
  Next G
  OkToDes = Nilai
  Exit Function
ErrorHandler:
  OkToDes = 0
End Function

Public Function BinToOk(ByVal bin As Long) As String
 BinToOk = DesToOk(BinToDes(bin))
End Function

Public Function BinToHex(ByVal NBiner As Long) As String
 BinToHex = DesToHex(BinToDes(NBiner))
End Function

Public Function OkToBin(ByVal NOktal As Double) As String
    OkToBin = DesToBin(OkToDes(NOktal))
End Function
Public Function OkToHex(ByVal NOktal As Double) As String
    OkToHex = DesToHex(OkToDes(NOktal))
End Function

Public Function HexToBin(ByVal NHexa As String) As String
    HexToBin = DesToBin(HexToDes(NHexa))
End Function
'
Public Function HexToOk(ByVal NHexa As String) As Double
    HexToOk = DesToOk(HexToDes(NHexa))
End Function

Private Sub Form_Load()
Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
  Text1.Text = ""
  Text2.Text = ""
End Sub
4.    Simpan dan Jalankan Program anda dengan menekan tombol F5, kemudian coba masukkan nilai 15 (terserah anda), kemudian pilih Desimal untuk masukan dan Biner untuk keluaran
5.    Hasilnya seperti berikut:
program konversi bilangan menggunakan Visual basic
Gambar Hasil Aplikasi Konversi Bilangan dengan program VB

6.    Terbukti bukan,,,Selamat mencoba teman!!!
Buka Artikel yang terkait :

Membuat Bunga dengan photoshop

membuat bunga dengan adobe photoshop
Pada tutorial kali ini, Jaka ingin membuat sebuah bunga pada photoshop dengan menggunakan sedikit effek blending mode layer dan beberapa modifikasi antara Pentool dengan Brush tool.

Hasil editan Photoshop kali ini, setidaknya seperti gambar diatas, tapi dengan Kreatifitas anda, saya rasa hasil yang anda buat jauh lebih sempurna dari pada yang telah saya buat.
Dari pada banyak mukaddimah, yuk langsung kita praktekkin?

  1. Buat lembar kerja baru ( Ctrl + N ) dengan ukuran seperti gambar berikut, Lalu OKlembar kerja baru
  2. Fill lembar kerja anda dengan warna hijau gelap #040803 dengan Paint Bucket Tool
  3. Buat Layer baru ( Ctrl + Shift + Alt + N )
  4. Pada layer baru tersebut, pilih Pentool dan edit kanvas kerja anda seperti berikut ;Editan dengan pentool
  5. Masih dengan Pentool, klik kanan di tengah tengah editan tersebut, dan pilih Make Selection, isi Feather Radius dengan 0 lalu OK
  6. Tampak path pentool menjadi sebuah seleksi berupa gambar diatas. dengan Paint Bucked tool, isikan warna Putih #FFFFFF pada seleksi tersebut.Fill dengan paint bucked tool
  7. Pilih Rectangular Marquee Tool, lalu pada bagian tengah seleksi klik kanan >> Feathers? >> isi kotak dialog Feather selection dengan 55 Pixels;Feather SelectionTekan delete pada keyboard, sehingga gambar akan terhapus secara halus dengan sendirinya.
  8. Duplicate layer dengan Ctrl + J, geser gambar dengan Move tool (v) atur gambar dengan transform (Ctrl+T) atur gambar sehingga hasilnya seperti berikut ;Bunga pada photoshop
  9. Dengan menekan Ctrl + J, mungkin anda akan melihat banyak layer yang akan terbuat, untuk menyatukan semua layer tersebut, pilih satu persatu perlayer tersebut sambil menekan tombol Shift, dan pilih Layer >> Marge Layer ;marge layer
  10. Buat layer baru diatas layer 1 copy 3, dengan pilih brush tool pada toolbox dan atur brush tool seperti gambar berikut ;brush tool
  11. Atur foreground color dan coret corat corit dengan brush tool dilayer baru tadi, butuh illustrasi lagi? ini dia ;fill dengan brush tool
  12. Pada Layer 1, ubah blending mode layer menjadi Overlay, untuk hasilnya dapat anda lihat seperti gambar berikut ;Bunga pada photoshop
Semoga bermanfaat.

Tertarik dengan tutorial ini? Bagikan keteman anda dengan fasilitas tombol tweet diatas postingan, jangan lupa juga follow twitter dan facebook saya.
About Me

MENGUBAH STATE SPACE MENJADI FUNGSI ALIH DENGAN MATLAB | STATE SPACE TO TRANSFER FUNCTION


Pada postingan sebelumnya saya sudah membahas tf2ss (transfer function to state space).
Tapi kali ini kebalikannya yaitu ss2tf (state space to transfer function) dengan program matlab. Dimana sekali lagi dengan matlab kita diberi kemudahan hanya mengetikkan beberapa kode program pada matlab maka persamaan sesulit apapun yang membutuhkan waktu lama untuk menyelesaikannya dengan cara manual, tapi dengan matlab semua masalah itu hanya se per sekian detik ia selesaikan. Jadi saya acungkan jempol buat the mathwork.inc perusahaan pembuat software matlab. Baik langsung saja pada tutorial untuk mengubah state space menjadi fungsi alih :
Contoh :
state space
Dari state space diatas kita akan mencari fungsi alih/transfer functionnya :
1.    Jalankan program matlab anda
2.    kemudian ketikkan kode/script/listing program dibawah ini pada command window :
>> A=[-6 -11 -6 ; 1 0 0 ; 0 1 0];
>> B=[1;0;0];
>> C=[1 5 4];
>> D=[0];
>> [num,den]=ss2tf(A,B,C,D)
3.    Kemudian enter dan hasilnya akan seperti ini :
num =

         0    1.0000    5.0000    4.0000
den =

    1.0000    6.0000   11.0000    6.0000
4.    Sehingga fungsi alih/transfer functionnya akan terbentuk :
fungsi alih/transfer function
5.    Mudahkan,,selamat mencoba..!!!
Kami akan memperlihatkan kepada mereka tanda-tanda (kekuasaan) kami di segenap ufuk dan pada diri mereka sendiri, sehingga jelaslah bagi mereka bahwa Al-Qur?an itu adalah benar. Dan apakah Tuhanmu tidak cukup (bagi kamu) bahwa sesungguhnya Dia menyaksikan Segala Sesuatu ? (QS Fushshilat:53)

Lihat Juga postingan MENGUBAH FUNGSI ALIH MENJADI STATE SPACE DENGAN MATLAB| TRANSFER FUNCTION TO STATE SPACE

MENGUBAH FUNGSI ALIH MENJADI STATE SPACE DENGAN MATLAB


Mendengar kata state space mungkin, ini tidak asing lagi ditelinga anda apa lagi untuk mahasiswa Elektro. Baik kita akan mengubah fungsi alih/transfer function menjadi state space , dimana jika kita mencarinya manual maka ini akan membutuhkan waktu , tetapi dengan program matlab untuk memecahkan masalah seperti ini membutuhkan waktu hanya se per sekian detik. Adapun kode programnya adalah tf2ss, ini adalah singkatan dari (transfer function to state space).
Contoh :
fungsi alih atau transfer function
Dari fungsi alih/transfer function diatas kita akan mencari state spacenya :
1.    Jalankan software matlab anda
2.    kemudian ketikkan kode/script/listing program dibawah ini pada command window :
>> num=[1 5 4];
>> den=[1 6 11 6];
>> [A,B,C,D]=tf2ss(num,den)
3.    Kemudian enter dan hasilnya akan seperti ini :
A =
    -6   -11    -6
     1     0     0
     0     1     0
B =
     1
     0
     0
C =
     1     5     4
D =
4.    Sehingga Matriks ruang keadannya akan berbentuk :
 contoh state space

5.    Mudahkan,,selamat mencoba..!!!
? Sesunggunya Aku ini adalah Allah, tidak ada Tuhan selain Aku, maka sembahlah Aku dan dirikanlah Shalat untuk mengingat Aku.? (QS Thaaha:14)