• Tidak ada hasil yang ditemukan

LAMPIRAN KODE PROGRAM

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAMPIRAN KODE PROGRAM"

Copied!
6
0
0

Teks penuh

(1)

LAMPIRAN KODE PROGRAM

#include "p16f877a.inc"

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON &

_HS_OSC & _WRT_OFF & _LVP_OFF &

_CPD_OFF

cblock 0x20 ;deklarikasikan variable dari alamat 20h cacah1,cacah2 ,offsetL1,offsetH1, offsetL,offsetH

tmp1,cacah,kecepatan,test1, test2 endc

cblock 0x30 ;buat array 72 mulai 30h temp:72

endc

;rutin awal program mengatur PORTD,PORTC sebagai keluaran ;membersihkan array

start org 0x00 ;start awal program bsf STATUS,RP0 ; pilih bank 1 movlw 0x00

movwf TRISD ;PortD sebagai keluaran movwf TRISC ;PortC sebagai keluaran bcf STATUS,RP0 ; kembali ke bank 0 call bersihkan ; panggil rutin bersihkan ;membersihkan pointer-pointer dan array

sapu clrf offsetL1 ;clear offsetL1 clrf offsetH1 ;clear offsetH1 clrf offsetL

clrf offsetH clrf PORTC clrf PORTD

call bersihkan ;panggil rutin bersihkan ;rutin untuk mengambil karakter dari string ASCII Ambil_String

call String_Tabel ;panggil rutin String_Table xorlw 0x00 ;cek apakah akhir tabel dari string btfsc STATUS, Z

goto sapu ;jika ya, pergi ke rutin sapu movwf tmp1 ;jika tidak, kirim W ke temp1 movlw 0x20 ;isi W dengan 20h

subwf tmp1, W ;temp1-W, untuk mendapatkan tabel asciinya call Ambil_Char ;panggil rutin Ambil_Char

incf offsetL1,1 ;naikkan offselL1, untuk alamat selanjutnya btfsc STATUS , Z ;lihat apakah terjadi hasilnya nol

incf offsetH1,1 ;jika ya, naikkan offsetH1

goto Ambil_String ;jika tidak pergi ke ruitn Ambil_String ;rutin mengambil data untuk karakter yang didapat pada

(2)

;pengambilan alamat data dengan mengurangi nilai hexadesimal ; karakter ASCII dengan 21 lalu di multiply 6

Ambil_Char

movwf offsetL ;copy isi W ke oofsetL movwf test1 ;copy isi W ke test1

clrf offsetH ;clear offsetH bcf STATUS, C ;clear STATUS C rlf offsetL, 1 ;geser offsetL btfsc STATUS,C ; apakah ada Carry incf offsetH,1 ;jika ada naikkan offselH bcf STATUS, C ;clear STATUS C rlf offsetL, 1 ;

btfsc STATUS,C incf offsetH, 1 bcf STATUS, C

movf test1, 0 ;copy isi test1 ke W

addwf offsetL, 1 ;tambahkan isi W dengan offsetL btfsc STATUS,C ;apakah ada Carry

incf offsetH, 1 ;ya, naikkan offselH bcf STATUS,C ;clear STATUS C movf test1, 0

addwf offsetL, 1 btfsc STATUS,C incf offsetH, 1 movlw 0x06

movwf cacah ; cacah=6

;rutin untuk merubah karakter ASCII menjadi font 5x7 LED matriks ;pada rutin ini juga memanggil rutin Geser untuk menggeser nilai pada ;arra,y juga memanggil rutin Tampil

next call Geser ;panggil rutin Geser

call ASCII_Table ;panggil rutin ASCII_Table movwf temp+.72 ;copy isi W ke temp72 call Tampil ;panggil rutin Tampil incf offsetL, 1 ;naikkan offsetL btfsc STATUS, Z ;apakah ada Carry incf offsetH, 1 ;ya, naikkan offsetH

decfsz cacah, 1 ;cacah-1 dan apakah cacah=0? goto next ;tidak, pergi ke next

return ; kembali pada rutin Ambil_string ;rutin untuk megirim data array temp ke PORTD untuk mendapatkan ;penampilan pada LED matriks secara berulang-ulang

Tampil bsf PORTC,1 ;reset pengendali kolom nop

bcf PORTC,1

movlw temp+.0

movwf FSR ;FSR = alamat array 1 Loop movf INDF, 0 ;copy isi INDF ke W

movwf PORTD ;kirim ke PORTD call tunda ;panggil rutin tunda incf FSR, 1 ;FSR+1

(3)

movf FSR, 0 ;copy FSR ke W

xorlw temp+.72 ;bandingkan dengan temp72 btfss STATUS,Z ;apakah alamat FSR=temp72? goto Loop ;tidak, ulangi Loop

return ;ya, kembali ke rutin Ambil_Char

;menggeser isi dari data arrya register temp Geser movlw temp+.0

movwf FSR ;FSR = temp awal Loop2 incf FSR,1 ;FSR+1

movf INDF, 0 ; copy INDF ke W decf FSR, 1 ;FSR-1

movwf INDF ;copy W ke INDF incf FSR, 1 ;FSR +1

movf FSR,W

xorlw temp+.72 ;FSR=temp terakhir?

btfss STATUS,Z ;

goto Loop2 ;tidak, pergi ke Loop2 return ;ya, kembali ke Ambil_Char

;mengambil string String_Tabel

movlw High(String) ;W= alamat tinggi string addwf offsetH1, w ;W = offsetH1 + W movwf PCLATH ;copy W ke PCLATH movlw Low(String) ; W= alamat rendah string addwf offsetL1,w ;W= offsetL1 + W btfsc STATUS,C ;apakah STATUS C =0 incf PCLATH, 1 ;ya, naikkan PCLATH movwf PCL ;PCL =W

;mengambil data tabel ASCII_Table

movlw High(Table) ;W= alamat tinggi tabel addwf offsetH, w ;W = offsetH + W movwf PCLATH ;copy W ke PCLATH movlw Low(Table) ; W= alamat rendah tabel addwf offsetL,w ;W= offsetL + W

btfsc STATUS,C ;apakah STATUS C =0 incf PCLATH, 1 ;ya, naikkan PCLATH movwf PCL ;PCL = W

;tundaan untuk nyala/mati LED

;juga sebagai penabuh untuk pengendali kolom tunda

movlw .185 movwf cacah1 delay1

decfsz cacah1,1 ; kurangi nilai cacah1, periksa apakah nol goto delay1

movlw 0x00 ;

(4)

clock bsf PORTC,0 ;bandar C pin 1 buat tinggi nop

bcf PORTC,0 ;bandar C pin 1 buat rendah. return

;membersihkan register array Bersihkan movlw temp+.0 movwf FSR bersih clrf INDF incf FSR, 1 movf FSR, 0 xorlw temp+.72 btfss STATUS,Z goto bersih return ; tabel karakter 5x7 Table dt 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ;space dt 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, ;! dt 0x18, 0x60, 0x00, 0x60, 0x18, 0x00, ;" dt 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, ;# dt 0x32, 0x49, 0x7F, 0x46, 0x26, 0x00, ;$ dt 0x32, 0x34, 0x08, 0x16, 0x26, 0x00, ;% dt 0x36, 0x49, 0x4d, 0x52, 0x25, 0x00, ;& dt 0x00, 0x08, 0x78, 0x70, 0x00, 0x00, ;' dt 0x00, 0x3E, 0x41, 0x41, 0x00, 0x00, ;( dt 0x00, 0x41, 0x41, 0x3E, 0x00, 0x00, ;) dt 0x22, 0x14, 0x7F, 0x14, 0x22, 0x00, ; * dt 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, ;+ dt 0x02, 0x06, 0x1C, 0x18, 0x00, 0x00, ;, dt 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, ;- dt 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, ;. dt 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, ; / dt 0x3E, 0x61, 0x59, 0x47, 0x3E, 0x00, ;0 dt 0x00, 0x21, 0x7F, 0x01, 0x00, 0x00, ;1 dt 0x21, 0x43, 0x45, 0x49, 0x41, 0x00, ;2 dt 0x22, 0x41, 0x49, 0x49, 0x3E, 0x00, ;3 dt 0x18, 0x68, 0x08, 0x08, 0x7F, 0x00, ;4 dt 0x7A, 0x49, 0x49, 0x49, 0x46, 0x00, ;5 dt 0x3E, 0x49, 0x49, 0x49, 0x46, 0x00, ;6 dt 0x43, 0x44, 0x48, 0x50, 0x60, 0x00, ;7 dt 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, ;8 dt 0x32, 0x49, 0x49, 0x49, 0x3E, 0x00, ;9 dt 0x00, 0x36, 0x36, 0x00, 0x00, 0x00, ;: dt 0x02, 0x36, 0x34, 0x00, 0x00, 0x00, ;; dt 0x08, 0x14, 0x22, 0x41, 0x00, 0x00, ;< dt 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, ;= dt 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, ;> dt 0x20, 0x45, 0x48, 0x48, 0x30, 0x00, ;?

(5)

dt 0x3E, 0x59, 0x65, 0x7D, 0x3A, 0x00, ;@ dt 0x3F, 0x48, 0x48, 0x48, 0x3F, 0x00, ;A dt 0x7F, 0x49, 0x49, 0x49, 0x3e, 0x00, ;B dt 0x3E, 0x41, 0x41, 0x41, 0x32, 0x00, ;C dt 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, ;D dt 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, ;E dt 0x7F, 0x48, 0x48, 0x48, 0x40, 0x00, ;F dt 0x3E, 0x41, 0x49, 0x49, 0x2F, 0x00, ;G dt 0x7F, 0x48, 0x48, 0x48, 0x7F, 0x00, ;H dt 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, ;I dt 0x02, 0x01, 0x41, 0x7E, 0x40, 0x00, ;J dt 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, ;K dt 0x7F, 0x01, 0x01, 0x01, 0x01, 0x00, ;L dt 0x7F, 0x20, 0x10, 0x20, 0x7F, 0x00, ;M dt 0x7F, 0x30, 0x08, 0x06, 0x7F, 0x00, ;N dt 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, ;O dt 0x7F, 0x48, 0x48, 0x48, 0x30, 0x00, ;P dt 0x3C, 0x4A, 0x46, 0x42, 0x3D, 0x00, ;Q dt 0x7F, 0x48, 0x4C, 0x4A, 0x31, 0x00, ;R dt 0x32, 0x49, 0x49, 0x49, 0x36, 0x00, ;S dt 0x40, 0x40, 0x7F, 0x40, 0x40, 0x00, ;T dt 0x7E, 0x01, 0x01, 0x01, 0x7E, 0x00, ;U dt 0x7C, 0x02, 0x01, 0x02, 0x7C, 0x00, ;V dt 0x7E, 0x01, 0x0E, 0x01, 0x7E, 0x00, ;W dt 0x41, 0x38, 0x08, 0x36, 0x41, 0x00, ;X dt 0x40, 0x20, 0x1F, 0x20, 0x40, 0x00, ;Y dt 0x43, 0x45, 0x49, 0x51, 0x61, 0x00, ;Z dt 0x00, 0x7F, 0x41, 0x41, 0x00, 0x00, ;[ dt 0x21, 0x10, 0x08, 0x04, 0x02, 0x00, ;\ dt 0x00, 0x41, 0x41, 0x7F, 0x00, 0x00, ;] dt 0x10, 0x20, 0x40, 0x20, 0x10, 0x00, ;^ dt 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, ;_ dt 0x00, 0x40, 0x70, 0x30, 0x00, 0x00 , ;` dt 0x26, 0x49, 0x49, 0x49, 0x3E, 0x00, ;a dt 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, ;b dt 0x1E, 0x21, 0x21, 0x21, 0x12, 0x00, ;c dt 0x06, 0x09, 0x09, 0x09, 0x7F, 0x00, ;d dt 0x1E, 0x29, 0x29, 0x29, 0x1A, 0x00, ;e dt 0x10, 0x3F, 0x50, 0x50, 0x40, 0x00, ;f dt 0x1A, 0x25, 0x25, 0x25, 0x1E, 0x00, ;g dt 0x7F, 0x08, 0x10, 0x10, 0x0F, 0x00, ;h dt 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, ;i dt 0x00, 0x02, 0x11, 0x5E, 0x00, 0x00, ;j dt 0x7F, 0x0C, 0x12, 0x21, 0x00, 0x00, ;k dt 0x00, 0x7F, 0x01, 0x02, 0x00, 0x00, ;l dt 0x1F, 0x20, 0x1C, 0x20, 0x1F, 0x00, ;m dt 0x1F, 0x20, 0x20, 0x20, 0x1F, 0x00, ;n dt 0x1C, 0x22, 0x22, 0x22, 0x1C, 0x00, ;o dt 0x1F, 0x24, 0x24, 0x24, 0x18, 0x00, ;p dt 0x30, 0x48, 0x48, 0x48, 0x7F, 0x00, ;q dt 0x7F, 0x20, 0x40, 0x40, 0x20, 0x00, ;r dt 0x1A, 0x25, 0x25, 0x25, 0x12, 0x00, ;s dt 0x10, 0x7E, 0x11, 0x01, 0x02, 0x00, ;t

(6)

dt 0x3E, 0x01, 0x01, 0x01, 0x3E, 0x00, ;u dt 0x3C, 0x02, 0x01, 0x02, 0x3C, 0x00, ;v dt 0x3C, 0x02, 0x0E, 0x02, 0x3C, 0x00, ;w dt 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, ;x dt 0x00, 0x32, 0x09, 0x09, 0x3E, 0x00, ;y dt 0x22, 0x26, 0x2A, 0x32, 0x22, 0x00, ;z dt 0x08, 0x36, 0x41, 0x41, 0x00, 0x00, ;{ dt 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, ;| dt 0x00, 0x41, 0x41, 0x36, 0x08, 0x00, ;} dt 0x08, 0x10, 0x08, 0x04, 0x08, 0x00, ; dt 0x10, 0x38, 0x54, 0x10, 0x10, 0x00, ; String

dt "SELAMAT DATANG DIDEPARTEMEN TEKNIK ELEKTRO dt " UNIVERSITAS SUMATERA UTARA

dt " running text by ARIS KANDAR 040402064 dt " perangkat ini masih dalam tahap pengembangan

dt " masih banyak kekurangan yang terdapat dalam perangkat ini dt " terutama sarana komunikasi dengan komputer belum tersedia dt " untuk merubah teks yang ditampilkan perangkat perlu dt " diprogram ulang.

dt " !@#$%^&*()_-++~`<>,.?/1233456789 dt 0x00

Referensi

Dokumen terkait

Walaupun penelitian ini telah dapat menunjukkan bahwa media yang dikembangkan layak digunakan sebagai perangkat pembelajaran fisika bagi siswa SMP, namun

Hal ini berarti bahwa tidak ada peningkatan skor yang signifikan pada aspek penghargaan profesional karyawan Hotel X Semarang setelah mengikuti pelatihan kualitas

Berdasarkan pada tabel tersebut diketahui bahwa dari 74 wanita pasangan usia subur di Kelurahan Ngupasan pada tahun 2017 yang menjadi subyek penelitian, terdapat paling

Anggota-anggota Mazhab Frankfurt berpegang pada tiga tesis tentang Ideologiekritik, yakni: (1) Bahwa kritik radikal atas masyarakat dan kritik atas ideologi yang dominan merupakan

vektor nyamuk Atzopheles sp dan iika kebetulan vektor texsebut mengigit manusia, maka plasmodium masuk ke dalam tubuh manusi&amp; sehingga timbulah penyakit yang

Dina Lestari, Analisis Koneksi Matematika Siswa Kelas VII dalam Menyelesaikan Soal Cerita pada Materi Himpunan , (Surakarta: Universitas Muhammadiyah Surakarta, 2017),

Menurut ibu Susi bagaimana pelaksaan/ penyelenggaraan kebijakan yang dilalcukan oleh pemerintah kota Pangkal Pinang dalam hal kepariwisataan apakah dapat

Tujuan dari penelitian ini adalah untuk mengetahui dan mendapatkan kajian tentang pengaruh service recovery, perceived value dan brand image terhadap