Mengenal Dasar Pemrograman LCD (Liquid Crystal Display)

Naskah berikut ini adalah hasil terjemahan kasar dan belum sempet dirapihkan. Mudah-mudahan besok dah kelar, lagi kekurangan bandwidth hari ini, tolong-tolong!
Sekilas Tentang LCD
Umumnya, sebuah program microcontroller harus berinteraksi dengan dunia luar menggunakan perangkat input dan output yang menjadi antarmuka antara peralatan dengan manusia secara langsung. Salah satu perangkat yang paling umum yang melekat (terangkai) bersama rangkaian microcontroller adalah sebuah layar LCD. Beberapa LCD yang paling umum dihubungkan ke rangkaian microcontroller adalah display (layar LCD) 16x2 dan 20x2. Nilai-nilai ini masing-masing mempunyai arti sebagai berikut:
  • 16x2 adalah 16 karakter per baris dengan 2 baris dan,
  • 20x2 adalah 20 karakter per baris dengan 2 baris.
Kebetulan, dalam pemrograman LCD sudah ada standarisasi yang sangat populer digunakan dan memungkinkan kita untuk berkomunikasi dengan sebagian besar LCD terlepas dari datasheet pabrikan LCD. Standar tersebut mengacu kepada standar pemrograman HD44780U, chip controller yang menerima data dari sumber eksternal (dalam kasus ini adalah microcontroller) dan berkomunikasi langsung dengan LCD. Hampir semua pabrikan LCD mengacu pada standar ini.
Sekilas Tentang “44780”
Standar 44780 membutuhkan 3 baris/pin/kaki kontrol dan 4 atau 8 garis/pin I/O garis untuk data (bus). Pengguna dapat memilih menggunakan LCD dengan operasi 4-bit data bus atau 8-bit data bus. Jika LCD dengan 4-bit data bus yang digunakan maka dibutuhkan 7 baris kabel (3 baris kontrol ditambah 4 baris untuk data bus). Jika yang digunakan adalah LCD dengan 8-bit data bus maka diperlukan total 11 baris kabel (3 baris untuk kontrol ditambah 8 baris untuk data bus) untuk dapat mengirimkan data ke dalam LCD.
Tiga garis kontrol tersebut dikenal dengan istilah EN, RS, dan RW.
Garis EN disebut "Enable." Garis kontrol ini digunakan untuk memberitahu LCD bahwa Anda sedang mengirimkan data kepadanya. Untuk mengirim data ke LCD, pastikan pada program Anda, pada garis ini harus dalam kondisi low (0) dan kemudian set dua baris kontrol lainya dan atau kirimkan data pada bus data (8-bit atau 4-bit). Ketika data telah selesai dikirimkan, buat garis EN menjadi high (1) kembali dan tunggu dalam jangka waktu minimum yang diperlukan oleh LCD, lihat datasheet (karena nilai ini bervariasi dari LCD satu ke LCD lainya), dan akhiri program dengan membawa baris EN menjadi low (0) lagi.
---------------break line-----------------
The RS line is the "Register Select" line. Garis RS adalah "Daftar Pilih" baris. When RS is low (0), the data is to be treated as a command or special instruction (such as clear screen, position cursor, etc.). Ketika RS rendah (0), data harus diperlakukan sebagai perintah atau instruksi khusus (seperti yang jelas layar, posisi kursor, dll). When RS is high (1), the data being sent is text data which sould be displayed on the screen. Ketika RS tinggi (1), data yang dikirim adalah data teks yang dapat ditampilkan pada layar. For example, to display the letter "T" on the screen you would set RS high. Sebagai contoh, untuk menampilkan huruf "T" pada layar Anda akan menetapkan RS tinggi.
The RW line is the "Read/Write" control line. Garis RW adalah "Baca / Tulis" garis kontrol. When RW is low (0), the information on the data bus is being written to the LCD. Ketika RW rendah (0), informasi pada bus data sedang ditulis ke LCD. When RW is high (1), the program is effectively querying (or reading) the LCD. Ketika RW tinggi (1), program ini secara efektif query (atau membaca) LCD. Only one instruction ("Get LCD status") is a read command. Hanya satu instruksi ( "Get LCD status") adalah perintah membaca. All others are write commands--so RW will almost always be low. Semua yang lain akan menulis perintah - jadi RW akan hampir selalu rendah.
Finally, the data bus consists of 4 or 8 lines (depending on the mode of operation selected by the user). Akhirnya, bus data terdiri dari 4 atau 8 jalur (tergantung pada mode operasi yang dipilih oleh pengguna). In the case of an 8-bit data bus, the lines are referred to as DB0, DB1, DB2, DB3, DB4, DB5, DB6, and DB7. Dalam kasus 8-bit data bus, garis disebut sebagai DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7.
AN EXAMPLE HARDWARE CONFIGURATION CONTOH HARDWARE CONFIGURATION
As we've mentioned, the LCD requires either 8 or 11 I/O lines to communicate with. Seperti yang telah kami sebutkan, LCD membutuhkan baik 8 atau 11 I / O baris untuk berkomunikasi dengan. For the sake of this tutorial, we are going to use an 8-bit data bus--so we'll be using 11 of the 8051's I/O pins to interface with the LCD. Demi tutorial ini, kita akan menggunakan 8-bit data bus - jadi kita akan menggunakan 11 dari 8.051's I / O pin untuk interface dengan LCD.
Let's draw a sample psuedo-schematic of how the LCD will be connected to the 8051. Mari kita menggambar sampel psuedo-skema tentang bagaimana LCD akan terhubung ke 8.051.

As you can see, we've established a 1-to-1 relation between a pin on the 8051 and a line on the 44780 LCD. Seperti yang Anda lihat, kami telah mendirikan sebuah 1-ke-1 hubungan antara pin di 8.051 dan garis di LCD 44.780. Thus as we write our assembly program to access the LCD, we are going to equate constants to the 8051 ports so that we can refer to the lines by their 44780 name as opposed to P0.1, P0.2, etc. Let's go ahead and write our initial equates: Jadi ketika kita menulis program assembly kami untuk mengakses LCD, kita akan menyamakan konstanta ke port 8.051 sehingga kita dapat merujuk pada garis-garis dengan nama 44.780 mereka sebagai lawan dari P0.1, P0.2, dll Ayo maju dan menulis awal kami menyamakan:
    DB0 EQU P1.0 DB0 EQU P1.0 DB1 EQU P1.1 DB1 EQU P1.1 DB2 EQU P1.2 DB2 EQU P1.2 DB3 EQU P1.3 DB3 EQU P1.3 DB4 EQU P1.4 DB4 EQU P1.4 DB5 EQU P1.5 DB5 EQU P1.5 DB6 EQU P1.6 DB6 EQU P1.6 DB7 EQU P1.7 DB7 EQU P1.7 EN EQU P3.7 EN EQU P3.7 RS EQU P3.6 RS EQU P3.6 RW EQU P3.5 RW EQU P3.5 DATA EQU P1 DATA EQU P1
Having established the above equates, we may now refer to our I/O lines by their 44780 name. Setelah menyamakan didirikan di atas, kita mungkin sekarang merujuk ke I / O garis oleh nama 44.780. For example, to set the RW line high (1), we can execute the following insutrction: Misalnya, untuk mengatur garis RW tinggi (1), kita dapat mengeksekusi insutrction berikut:
    SETB RW SETB RW
HANDLING THE EN CONTROL LINE PENANGANAN THE EN CONTROL LINE
As we mentioned above, the EN line is used to tell the LCD that you are ready for it to execute an instruction that you've prepared on the data bus and on the other control lines. Note that the EN line must be raised/lowered before/after each instruction sent to the LCD regardless of whether that instruction is read or write, text or instruction. Seperti yang telah disebutkan di atas, baris EN digunakan untuk memberitahu LCD bahwa Anda sudah siap untuk itu untuk mengeksekusi sebuah instruksi bahwa Anda telah menyiapkan data bus dan pada garis kontrol lainnya. Perhatikan bahwa garis EN harus dinaikkan / diturunkan sebelum / setelah setiap instruksi yang dikirim ke LCD terlepas dari apakah itu perintah membaca atau menulis, teks atau instruksi. In short, you must always manipulate EN when communicating with the LCD. Singkatnya, Anda harus selalu memanipulasi EN ketika berkomunikasi dengan LCD. EN is the LCD's way of knowing that you are talking to it. EN adalah LCD cara untuk mengetahui bahwa Anda berbicara kepadanya. If you don't raise/lower EN, the LCD doesn't know you're talking to it on the other lines. Jika anda tidak menaikkan / menurunkan EN, LCD tidak tahu kau bicara pada baris yang lain.
Thus, before we interact in any way with the LCD we will always bring the EN line low with the following instruction: Jadi, sebelum kita berinteraksi dengan cara apapun dengan LCD kita akan selalu membawa garis EN rendah dengan instruksi berikut:
    CLR EN CLR EN
And once we've finished setting up our instruction with the other control lines and data bus lines, we'll always bring this line high: Dan begitu kami sudah selesai menyiapkan instruksi kami dengan garis kontrol lainnya dan data bus, kita akan selalu membawa baris ini tinggi:
    SETB EN SETB EN
The line must be left high for the amount of time required by the LCD as specified in its datasheet. Garis harus dibiarkan tinggi untuk jumlah waktu yang dibutuhkan oleh LCD sebagaimana ditentukan dalam datasheet. This is normally on the order of about 250 nanoseconds, but check the datasheet. In the case of a typical 8051 running at 12 MHz, an instruction requires 1.08 microseconds to execute so the EN line can be brought low the very next instruction. Hal ini biasanya atas perintah dari sekitar 250 nanodetik, tetapi periksa datasheet. Dalam kasus yang khas 8.051 berjalan pada 12 MHz, memerlukan sebuah instruksi untuk mengeksekusi 1,08 mikrodetik sehingga garis EN dapat dibawa sangat rendah instruksi berikutnya. However, faster microcontrollers (such as the DS89C420 which executes an instruction in 90 nanoseconds given an 11.0592 Mhz crystal) will require a number of NOPs to create a delay while EN is held high. The number of NOPs that must be inserted depends on the microcontroller you are using and the crystal you have selected. Namun, lebih cepat Microcontrollers (seperti DS89C420 yang menjalankan instruksi dalam 90 nanodetik diberi kristal 11,0592 Mhz) akan membutuhkan sejumlah nops untuk membuat sebuah penundaan sementara EN yang terangkat tinggi. Jumlah nops yang harus dimasukkan tergantung pada mikrokontroler Anda menggunakan dan kristal yang telah Anda pilih.
The instruction is executed by the LCD at the moment the EN line is brought low with a final CLR EN instruction. Instruksi dieksekusi oleh LCD pada saat garis EN dibawa rendah dengan EN CLR akhir instruksi.
    Programming Tip: The LCD interprets and executes our command at the instant the EN line is brought low. Programming Tip: LCD menafsirkan dan menjalankan perintah kami pada saat garis EN dibawa rendah. If you never bring EN low, your instruction will never be executed. Jika Anda tidak pernah membawa EN rendah, instruksi Anda tidak akan pernah dieksekusi. Additionally, when you bring EN low and the LCD executes your instruction, it requires a certain amount of time to execute the command. Selain itu, ketika Anda membawa EN LCD rendah dan mengeksekusi instruksi Anda, itu memerlukan waktu tertentu untuk menjalankan perintah. The time it requires to execute an instruction depends on the instruction and the speed of the crystal which is attached to the 44780's oscillator input. Waktu yang diperlukan untuk mengeksekusi instruksi tergantung pada instruksi dan kecepatan kristal yang melekat pada 44.780's osilator masukan.
CHECKING THE BUSY STATUS OF THE LCD PEMERIKSAAN THE BUSY STATUS OF THE LCD
As previously mentioned, it takes a certain amount of time for each instruction to be executed by the LCD. Seperti yang disebutkan sebelumnya, dibutuhkan waktu tertentu untuk setiap instruksi yang akan dijalankan oleh LCD. The delay varies depending on the frequency of the crystal attached to the oscillator input of the 44780 as well as the instruction which is being executed. Keterlambatan bervariasi tergantung pada frekuensi kristal osilator melekat pada masukan dari 44.780 serta instruksi yang sedang dieksekusi.
While it is possible to write code that waits for a specific amount of time to allow the LCD to execute instructions, this method of "waiting" is not very flexible. Walaupun mungkin untuk menulis kode yang menunggu untuk jumlah waktu tertentu untuk memungkinkan LCD untuk mengeksekusi instruksi, metode ini "menunggu" tidak sangat fleksibel. If the crystal frequency is changed, the software will need to be modified. Jika frekuensi kristal berubah, perangkat lunak perlu diubah. Additionally, if the LCD itself is changed for another LCD which, although 44780 compatible, requires more time to perform its operations, the program will not work until it is properly modified. Sebagai tambahan, jika LCD itu sendiri akan berubah untuk LCD yang lain, meskipun 44.780 kompatibel, membutuhkan lebih banyak waktu untuk melakukan operasinya, program ini tidak akan bekerja sampai benar dimodifikasi.
A more robust method of programming is to use the "Get LCD Status" command to determine whether the LCD is still busy executing the last instruction received. Metode yang lebih kuat dari pemrograman adalah dengan menggunakan tombol "Dapatkan LCD Status" perintah untuk menentukan apakah LCD masih sibuk mengeksekusi instruksi terakhir diterima.
The "Get LCD Status" command will return to us two tidbits of information; the information that is useful to us right now is found in DB7. Tombol "Dapatkan LCD Status" perintah akan kembali kepada kita dua tidbits informasi; informasi yang berguna untuk kita sekarang ditemukan di DB7. In summary, when we issue the "Get LCD Status" command the LCD will immediately raise DB7 if it's still busy executing a command or lower DB7 to indicate that the LCD is no longer occupied. Singkatnya, ketika kita mengeluarkan "Get LCD Status" perintah LCD akan segera menaikkan DB7 kalau masih sibuk melaksanakan suatu perintah atau DB7 lebih rendah untuk menunjukkan bahwa LCD tidak lagi ditempati. Thus our program can query the LCD until DB7 goes low, indicating the LCD is no longer busy. Jadi program kami dapat query LCD sampai DB7 pergi rendah, menunjukkan LCD tidak lagi sibuk. At that point we are free to continue and send the next command. Pada saat itu kita bebas untuk melanjutkan dan mengirim perintah selanjutnya.
Since we will use this code every time we send an instruction to the LCD, it is useful to make it a subroutine. Karena kita akan menggunakan kode ini setiap kali kita mengirim instruksi ke LCD, akan bermanfaat untuk membuat sebuah sub rutin. Let's write the code: Mari kita menulis kode:
    WAIT_LCD: WAIT_LCD:
      CLR EN ;Start LCD command CLR EN; Mulai perintah LCD CLR RS ;It's a command CLR RS; It's a perintah SETB RW ;It's a read command SETB RW; Ini perintah membaca MOV DATA,#0FFh ;Set all pins to FF initially MOV DATA, # 0FFh; Set semua pin untuk FF awalnya SETB EN ;Clock out command to LCD SETB EN; Jam keluar perintah untuk LCD MOV A,DATA ;Read the return value MOV A, DATA; Baca nilai pengembalian JB ACC.7,WAIT_LCD ;If bit 7 high, LCD still busy JB ACC.7, WAIT_LCD; Jika 7 bit tinggi, LCD masih sibuk CLR EN ;Finish the command CLR EN; Selesai perintah CLR RW ;Turn off RW for future commands CLR RW; Matikan RW untuk masa depan perintah RET RET
Thus, our standard practice will be to send an instruction to the LCD and then call our WAIT_LCD routine to wait until the instruction is completely executed by the LCD. Jadi, praktik standar kami akan mengirim instruksi ke LCD dan kemudian memanggil rutin WAIT_LCD kami menunggu sampai instruksi benar-benar dilaksanakan oleh LCD. This will assure that our program gives the LCD the time it needs to execute instructions and also makes our program compatible with any LCD, regardless of how fast or slow it is. Ini akan memastikan bahwa program kami memberikan LCD waktu yang dibutuhkan untuk melaksanakan instruksi dan juga membuat program kami kompatibel dengan LCD, terlepas dari seberapa cepat atau lambat itu.
Programming Tip: The above routine does the job of waiting for the LCD, but were it to be used in a real application a very definite improvement would need to be made: as written, if the LCD never becomes "not busy" the program will effectively "hang," waiting for DB7 to go low. Programming Tip: di atas melakukan pekerjaan rutin menunggu LCD, tetapi itu untuk digunakan dalam aplikasi nyata yang sangat pasti perbaikan perlu dilakukan: seperti yang tertulis, jika LCD tidak pernah menjadi "tidak sibuk" program akan efektif "menggantung," menunggu DB7 pergi rendah. If this never happens, the program will freeze. Jika hal ini tidak pernah terjadi, program akan membeku. Of course, this should never happen and won't happen when the hardware is working properly. Tentu saja, hal ini pernah terjadi dan tidak akan terjadi bila perangkat keras bekerja dengan benar. But in a real application it would be wise to put some kind of time limit on the delay--for example, a maximum of 256 attempts to wait for the busy signal to go low. Namun dalam aplikasi nyata akan bijaksana untuk menaruh beberapa jenis batas waktu penundaan itu - misalnya, dari 256 usaha maksimum untuk menunggu sinyal sibuk untuk pergi rendah. This would guarantee that even if the LCD hardware fails, the program would not lock up. Hal ini akan menjamin bahwa bahkan jika hardware LCD gagal, program tidak akan lock up.
INITIALIZING THE LCD Menginisialisasi LCD
Before you may really use the LCD, you must initialize and configure it. Sebelum Anda dapat benar-benar menggunakan LCD, Anda harus menginisialisasi dan mengkonfigurasinya. This is accomplished by sending a number of initialization instructions to the LCD. Hal ini dilakukan dengan mengirimkan sejumlah instruksi untuk inisialisasi LCD.
The first instruction we send must tell the LCD whether we'll be communicating with it with an 8-bit or 4-bit data bus. Instruksi pertama harus memberitahu kami mengirim LCD apakah kita akan berkomunikasi dengan dengan sebuah 8-bit atau 4-bit data bus. We also select a 5x8 dot character font. Kami juga memilih font karakter 5x8 titik. These two options are selected by sending the command 38h to the LCD as a command. Dua opsi ini dipilih dengan mengirimkan perintah 38h ke LCD sebagai perintah. As you will recall from the last section, we mentioned that the RS line must be low if we are sending a command to the LCD. Seperti yang Anda ingat dari bagian terakhir, kita menyebutkan bahwa garis RS harus rendah jika kita mengirimkan perintah ke LCD. Thus, to send this 38h command to the LCD we must execute the following 8051 instructions: Jadi, untuk mengirimkan perintah ke 38h ini LCD kita harus mengeksekusi instruksi 8.051 berikut:
    CLR RS CLR RS MOV DATA,#38h MOV DATA, # 38h SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD
Programming Tip: The LCD command 38h is really the sum of a number of option bits. Programming Tip: 38h perintah LCD sebenarnya adalah jumlah dari sejumlah pilihan bit. The instruction itself is the instruction 20h ("Function set"). Instruksi itu sendiri adalah instruksi 20h ( "Fungsi set"). However, to this we add the values 10h to indicate an 8-bit data bus plus 08h to indicate that the display is a two-line display. Namun, untuk ini kita menambahkan nilai-nilai 10h untuk menunjukkan 8-bit data bus ditambah 08h untuk menunjukkan bahwa tampilan adalah dua baris layar.
We've now sent the first byte of the initialization sequence. Sekarang kami telah mengirimkan byte pertama dari urutan inisialisasi. The second byte of the initialization sequence is the instruction 0Eh. Byte kedua dari urutan inisialisasi instruksi 0Eh. Thus we must repeat the initialization code from above, but now with the instruction. Jadi kita harus mengulangi kode inisialisasi dari atas, tapi sekarang dengan instruksi. Thus the the next code segment is: Dengan demikian, segmen kode berikutnya adalah:
    CLR RS CLR RS MOV DATA,#0Eh MOV DATA, # 0Eh SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD
Programming Tip: The command 0Eh is really the instruction 08h plus 04h to turn the LCD on. To that an additional 02h is added in order to turn the cursor on. Programming Tip: 0Eh perintah sebenarnya adalah 04h ditambah 08h instruksi untuk mengaktifkan LCD di atas. Untuk itu 02h tambahan yang ditambahkan dalam rangka untuk mengubah kursor di atas.
The last byte we need to send is used to configure additional operational parameters of the LCD. Byte terakhir kita perlu mengirim digunakan untuk mengkonfigurasi parameter operasional tambahan dari LCD. We must send the value 06h. Kita harus mengirimkan nilai 06h.
    CLR RS CLR RS MOV DATA,#06h MOV DATA, # 06h SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD
Programming Tip: The command 06h is really the instruction 04h plus 02h to configure the LCD such that every time we send it a character, the cursor position automatically moves to the right. Programming Tip: 06h Perintah instruksi yang benar-benar 04h ditambah 02h untuk mengkonfigurasi LCD sedemikian rupa sehingga setiap kali kita kirimkan karakter, posisi kursor secara otomatis bergerak ke kanan.
So, in all, our initialization code is as follows: Jadi, dalam semua, kami kode inisialisasi adalah sebagai berikut:
    INIT_LCD: INIT_LCD:
      CLR RS CLR RS MOV DATA,#38h MOV DATA, # 38h SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD CLR RS CLR RS MOV DATA,#0Eh MOV DATA, # 0Eh SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD CLR RS CLR RS MOV DATA,#06h MOV DATA, # 06h SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD RET RET
Having executed this code the LCD will be fully initialized and ready for us to send display data to it. Setelah kode ini dieksekusi LCD akan sepenuhnya diinisialisasi dan siap untuk kita untuk mengirim data menampilkan itu.
CLEARING THE DISPLAY KLIRING THE DISPLAY
When the LCD is first initialized, the screen should automatically be cleared by the 44780 controller. Ketika pertama diinisialisasi LCD, layar akan secara otomatis dihapus oleh 44.780 controller. However, it's always a good idea to do things yourself so that you can be completely sure that the display is the way you want it. Namun, selalu ide yang baik untuk melakukan hal-hal diri Anda sehingga Anda bisa benar-benar yakin bahwa layar adalah cara Anda inginkan. Thus, it's not a bad idea to clear the screen as the very first opreation after the LCD has been initialiezd. Jadi, ini bukan ide buruk untuk membersihkan layar sebagai opreation pertama setelah LCD telah initialiezd.
An LCD command exists to accomplish this function. Perintah LCD ada untuk mencapai fungsi ini. Not suprisingly, it is the command 01h. Tidak mengherankan, itu adalah perintah 01h. Since clearing the screen is a function we very likely will wish to call more than once, it's a good idea to make it a subroutine: Sejak membersihkan layar adalah fungsi kita sangat mungkin akan ingin untuk menghubungi lebih dari sekali, itu ide yang baik untuk menjadikannya sebuah subroutine:
    CLEAR_LCD: CLEAR_LCD:
      CLR RS CLR RS MOV DATA,#01h MOV DATA, # 01h SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD RET RET
How that we've written a "Clear Screen" routine, we may clear the LCD at any time by simply executing an LCALL CLEAR_LCD . Bagaimana bahwa kami telah menulis sebuah "Clear Screen" rutin, kita dapat menghapus LCD setiap saat dengan hanya menjalankan sebuah LCALL CLEAR_LCD.
Programming Tip: Executing the "Clear Screen" instruction on the LCD also positions the cursor in the upper left-hand corner as we would expect. Programming Tip: Pelaksana tombol "Clear Screen" instruksi pada LCD juga posisi kursor di atas pojok kiri sebagaimana yang kita harapkan.
WRITING TEXT TO THE LCD MENULIS TEKS DENGAN LCD
Now we get to the real meat of what we're trying to do: All this effort is really so we can display text on the LCD. Sekarang kita sampai daging yang sebenarnya dari apa yang kita coba lakukan: Semua upaya ini benar-benar sehingga kami dapat menampilkan teks pada LCD. Really, we're pretty much done. Sungguh, kita cukup banyak dilakukan.
Once again, writing text to the LCD is something we'll almost certainly want to do over and over--so let's make it a subroutine. Sekali lagi, menulis teks ke LCD adalah sesuatu yang kita akan hampir pasti ingin melakukannya berulang - jadi mari kita membuat sebuah sub rutin.
    WRITE_TEXT: WRITE_TEXT:
      SETB RS SETB RS MOV DATA,A MOV DATA, A SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD RET RET
The WRITE_TEXT routine that we just wrote will send the character in the accumulator to the LCD which will, in turn, display it. Yang WRITE_TEXT rutin bahwa kita baru saja menulis akan mengirimkan karakter di akumulator ke LCD yang akan, pada gilirannya, tampilan itu. Thus to display text on the LCD all we need to do is load the accumulator with the byte to display and make a call to this routine. Jadi untuk menampilkan teks pada LCD semua yang perlu kita lakukan adalah beban akumulator dengan byte untuk menampilkan dan membuat panggilan ke rutinitas ini. Pretty easy, huh? Cukup mudah, ya?
A "HELLO WORLD" PROGRAM Sebuah "HALO WORLD" PROGRAM
Now that we have all the component subroutines written, writing the classic "Hello World" program--which displays the text "Hello World" on the LCD is a relatively trivial matter. Sekarang bahwa kita memiliki semua komponen subrutin ditulis, menulis klasik "Hello World" program - yang menampilkan teks "Hello World" pada LCD adalah relatif sepele. Consider: Pertimbangkan:
    LCALL INIT_LCD LCALL INIT_LCD LCALL CLEAR_LCD LCALL CLEAR_LCD MOV A,#'H' MOV A, # 'H' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'E' MOV A, # 'E' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'L' MOV A, # 'L' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'L' MOV A, # 'L' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'O' MOV A, # 'O' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#' ' MOV A, # '' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'W' MOV A, # 'W' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'O' MOV A, # 'O' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'R' MOV A, # 'R' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'L' MOV A, # 'L' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'D' MOV A, # 'D' LCALL WRITE_TEXT LCALL WRITE_TEXT
The above "Hello World" program should, when executed, initialize the LCD, clear the LCD screen, and display "Hello World" in the upper left-hand corner of the display. Di atas "Hello World" program harus, jika dilaksanakan, menginisialisasi LCD, layar LCD yang jelas, dan menampilkan "Hello World" di bagian pojok kiri atas layar.
CURSOR POSITIONING CURSOR POSITIONING
The above "Hello World" program is simplistic in the sense that it prints its text in the upper left-hand corner of the screen. Di atas "Hello World" program sederhana dalam arti bahwa di cetak dengan teks pada bagian atas pojok kiri layar. However, what if we wanted to display the word "Hello" in the upper left-hand corner but wanted to display the word "World" on the second line at the tenth character? Namun, bagaimana jika kita ingin menampilkan kata "Halo" di bagian pojok kiri tetapi ingin menampilkan kata "World" pada baris kedua di sepuluh karakter? This sounds simple--and actually, it is simple. Ini kedengarannya sederhana - dan benar-benar, adalah sederhana. However, it requires a little more understanding of the design of the LCD. Namun, hal itu memerlukan sedikit lebih banyak pemahaman tentang desain LCD.
The 44780 contains a certain amount of memory which is assigned to the display. All the text we write to the 44780 is stored in this memory, and the 44780 subsequently reads this memory to display the text on the LCD itself. Para 44.780 berisi sejumlah memori yang diberikan ke layar. Semua teks kita menulis surat kepada 44.780 tersimpan dalam memori ini, dan kemudian membaca 44.780 memori ini untuk menampilkan teks pada LCD itu sendiri. This memory can be represented with the following "memory map": Memori ini dapat diwakili dengan mengikuti "peta memori":

In the above memory map, the area shaded in blue is the visible display. Memori di atas peta, wilayah yang diarsir dengan warna biru adalah layar terlihat. As you can see, it measures 16 characters per line by 2 lines. Seperti yang anda lihat, ukuran 16 karakter per baris dengan 2 baris. The numbers in each box is the memory address that corresponds to that screen position. Angka dalam setiap kotak adalah alamat memori yang sesuai dengan posisi layar.
Thus, the first character in the upper left-hanad corner is at address 00h. The following character position (character #2 on the first line) is address 01h, etc. Dengan demikian, karakter pertama di sudut kiri-sudut hanad di alamat 00h. Berikut posisi karakter (karakter # 2 pada baris pertama) adalah alamat 01h, dll This continues until we reach the 16th character of the first line which is at address 0Fh. Ini terus berlanjut sampai kita mencapai 16 karakter baris pertama yang merupakan alamat 0Fh.
However, the first character of line 2, as shown in the memory map, is at address 40h. Namun, karakter pertama dari baris 2, seperti ditunjukkan pada peta memori adalah pada alamat 40h. This means if we write a character to the last position of the first line and then write a second character, the second character will not appear on the second line. Ini berarti jika kita menulis karakter ke posisi terakhir baris pertama dan kemudian menulis karakter kedua, karakter kedua tidak akan muncul pada baris kedua. That is because the second character will effectively be written to address 10h--but the second line begins at address 40h. Itu karena karakter kedua akan efektif ditulis ke alamat 10h - tetapi baris kedua dimulai pada alamat 40h.
Thus we need to send a command to the LCD that tells it to position the cursor on the second line. Jadi kita perlu untuk mengirim perintah ke LCD yang memberitahu ke posisi kursor pada baris kedua. The "Set Cursor Position" instruction is 80h. The "Set Cursor Position" instruksi adalah 80h. To this we must add the address of the location where we wish to position the cursor. In our example, we said we wanted to display "World" on the second line on the tenth character position. Untuk ini kita harus menambahkan alamat lokasi dimana kita ingin posisi kursor. Pada contoh kita, kami berkata kami ingin menampilkan "World" pada baris kedua di posisi kesepuluh karakter.
Referring again to the memory map, we see that the tenth character position of the second line is address 4Ah. Merujuk lagi ke peta memori, kita melihat bahwa karakter kesepuluh posisi baris kedua adalah alamat 4Ah. Thus, before writing the word "World" to the LCD, we must send a "Set Cursor Position" instruction--the value of this command will be 80h (the instruction code to position the cursor) plus the address 4Ah. Jadi, sebelum menulis kata "World" pada LCD, kita harus mengirim "Set Cursor Position" instruksi - nilai dari perintah ini akan 80h (kode instruksi untuk posisi kursor) plus alamat 4Ah. 80h + 4Ah = CAh. 80h + 4Ah = Cah. Thus sending the command CAh to the LCD will position the cursor on the second line at the tenth character position: Dengan demikian mengirimkan perintah Cah ke LCD akan posisi kursor pada baris kedua di posisi ke sepuluh karakter:
    CLR RS CLR RS MOV DATA,#0CAh MOV DATA, # 0CAh SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD
The above code will position the cursor on line 2, character 10. Kode diatas akan posisi kursor pada baris 2, karakter 10. To display "Hello" in the upper left-hand corner with the word "World" on the second line at character position 10 just requires us to insert the above code into our existing "Hello World" program. Untuk menampilkan "Halo" di bagian pojok kiri dengan kata "World" pada baris kedua di posisi 10 karakter hanya mengharuskan kita untuk memasukkan kode diatas ke kami yang ada "Hello World" program. This results in the following: Ini hasil sebagai berikut:
    LCALL INIT_LCD LCALL INIT_LCD LCALL CLEAR_LCD LCALL CLEAR_LCD MOV A,#'H' MOV A, # 'H' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'E' MOV A, # 'E' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'L' MOV A, # 'L' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'L' MOV A, # 'L' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'O' MOV A, # 'O' LCALL WRITE_TEXT LCALL WRITE_TEXT CLR RS CLR RS MOV DATA,#0CAh MOV DATA, # 0CAh SETB EN SETB EN CLR EN CLR EN LCALL WAIT_LCD LCALL WAIT_LCD MOV A,#'W' MOV A, # 'W' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'O' MOV A, # 'O' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'R' MOV A, # 'R' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'L' MOV A, # 'L' LCALL WRITE_TEXT LCALL WRITE_TEXT MOV A,#'D' MOV A, # 'D' LCALL WRITE_TEXT LCALL WRITE_TEXT
SUMMARY RINGKASAN
This tutorial has presented the underlying concepts of programming an LCD display. Tutorial ini disajikan konsep-konsep yang mendasari pemrograman layar LCD. Obviously it has not addresses all issues. Jelas itu tidak alamat semua masalah. The 44780 LCD controller offers many other functions which are accessed using other commands, and some of the commands already presented include other options that were not discussed here. 44.780 LCD controller yang menawarkan banyak fungsi lainnya yang diakses menggunakan perintah lain, dan beberapa perintah telah disajikan mencakup pilihan lain yang tidak dibahas di sini. However, this tutorial should get you going in the right direction. Namun, tutorial ini harus segera Anda akan arah yang benar.

Baca Keseluruhan Isi Posting Ini >

Surat Pemberitahuan Pelaksanaan Pemutusan Listrik

Hari ini, saya pikir adalah hari yang tenang untuk menyegarkan badan yang tengah dilanda “body-hot” alias badan meriang dan mo pilek. Dan ternyata, “J E L E G E E R R !”, ada sepucuk surat dan bukan surat cinta ataupun surat warisan dari Bill Gate tapi surat pemutusan listrik dari PLN Disjaya dan Tangerang. Alamak, pelik betul nasib Peter Parker versi Indonesia ini, apalagi jika hidup tanpa listrik. Sudah ngekos di kos-kosan berukuran super mungil dipinggir jalan berdebu, dilingkari got penuh kecoa dan tikus kura-kura ninja, senantiasa basah kuyup dikala hujan, ups ga etis rasanya mengeluh meratapi nasib disini. Yang jelas mirip sama Peter Parker lah, tapi saya bukanlah Spiderman melainkan Bedmen.. :P
Beberapa waktu yang lalu sesaat setelah maghrib tetangga kosan (satu nomor rumah dan satu kWh dengan saya), baru saja pulang dari tempat kerjanya di sebuah kios rokok kecil di piggir jalan, memberi saya surat tersebut karena merasa bingung harus berbuat apa. Akhirnya saya ambilah surat tersebut, “Okelah kalo begitu, biar saya yang urus surat ini”, celetuk saya, yang pada hakekatnya saya sendiri pun bingung harus ngapain karena kami sudah bayarkan semua ke ibu kosan tepat waktu tiap bulan.
Setelah saya konfirmasi ke yang punya kosan/kontrakan ternyata memang sudah dibayarkan pada waktunya, namun dia pun heran karena mendapati surat serupa untuk rumahnya. Menurut penuturan beberapa orang yang pernah mendapati hal serupa, surat ini dimanfaatkan oleh ognum-ognum tertentu untuk meminta uang tips kepada warga yang ketakutan akan dilaksanakanya pemutusan listrik, sehingga listrik di rumahnya tidak diputus seperti yang tertera pada judul surat itu.
Apabila saya cermati dalam isi surat ini, surat ini diberikan ketika pelanggan belum membayar dari jatuh tempo antara tanggal 5 s.d. 20, “tapi kan sudah bayar”. Kemudian di alenia lainya listrik baru akan diputus jika masih menunggak selama kurun waktu dua bulan. Dan disana pun tertera, “..dan ternyata rek. listrik tsb. diatas telah dilunasi..”, PLN meminta maaf dan surat tersebut “..dapat diabaikan..”. Ya saya abaikan sajalah, berhubung itu adalah salah satu hobi saya, “mengabaikan!” :D
Yang ingin saya share dengan readers sekalian yang saya cintai adalah, benarkah isu tentang permintaan uang tips kepada pelanggan yang ketakutan akan pemutusan listrik di rumahnya kepada petugas pengantar, apakah ada yang mempunyai pengalaman serupa? Atau dalam bidang apa saja, PAM, telepon, atau apa saja yang berkaitan dengan pemerasan oleh ognum penyalah-gunaan wewenang.
Saya pada dasarnya berharap isu tersebut tidak benar, karena saya mencintai PLN sebagai sebuah BUMN yang senantiasa memberikan pelayanan terbaiknya kepada masyarakat. Namun karena masih maraknya aksi penyalah-gunaan wewenang dan jabatan yang berlangsung dari dahulu kala hingga sekarang, maka harus kita sudahi dengan “membuka mulut” di era demokrasi dan reformasi seperti saat ini demi kehidupan yang lebih baik untuk generasi setelah kita dan Indonesia yang lebih baik dan bersih. “Kita kan hanya orang kecil, bisa apa?”. ingat suara kita adalah penentu arah bangsa. Tetap bersatu dan tetap waspada. (end)

Baca Keseluruhan Isi Posting Ini >

Teknik Maling Menduplikasi Kartu Credit/Debit Anda di ATM (Full Review)

Note:
  1. Artikel ini saya buat dan tulis ditujukan hanya kepada manusia, bukan BOTs ataupun spammers.
  2. Membaca artikel ini berarti anda paham dan menyetujui bahwa artikel yang saya buat ini adalah untuk :
  • pembelajaran bagi semua agar senantiasa waspada, berhati-hati dan menjaga kerahasiaan identitas kartu kredit/debit saat bertransaksi di ATM dan dimana pun berada,
  • tidak meniru kegiatan para maling pecundang seperti ilustrasi berikut ini (terlebih sudah banyak yang tahu dan artikel ini adalah untuk mencegah bukan mengajari),
  • tidak merasa disudutkan dengan artikel ini, artikel ini disebarkan diseluruh dunia dengan berbagai bahasa untuk memperkecil ruang gerak maling sehingga sindikat maling dapat dengan mudah ditangkap berdasar kewaspadaan bersama.
Anda setuju bahwa artikel ini adalah sebagai pembelajaran bersama?
  • Tidak Setuju! Silahkan tutup halaman ini dan jangan banyak komentar.
  • Setuju.. Mari kita simak artikel berikut ini agar kita tahu cara berhati-hati di ATM.
Maraknya aksi pembobolan ATM di banyak negara dengan menggunakan kartu magnetik kosong oleh para maling/sindikat maling membuat para blogger di seluruh dunia tergerak untuk ikut mengajarkan cara berhati-hati ketika bertransaksi di ATM.
Skimming adalah tindakan kriminal serius yang menjadi criminal trend belakangan ini yang terjadi hampir di seluruh negara. Canggihnya peralatan yang digunakan membuat orang awam tidak menyadari bahwa informasi yang terdapat di dalam kartunya sedang dicuri. Hal ini membuat begitu susahnya menangkap para pelaku credit/debit card skimming ini bahkan di negara maju sekalipun dan membuat para pelaku tidak jera untuk melakukanya lagi. Jalan satu-satunya adalah senantiasa mawas diri menjaga kerahasiaan kartu identitas alat bertransaksi yang dimiliki.
Berikut adalah kutipan dari teapoci.blodspot.com tentang review cara maling beraksi:
Meningkatnya aksi kejahatan terhadap kartu debit/kredit pada tahun 2006-2007 tengah berada pada puncaknya. Beragam metode yang dilakukan oleh para maling untuk mendapatkan semua informasi rahasia yang terdapat dalam kartu credit/debit. Beberapa korban terkejut ketika mereka membaca tagihan mereka, ada banyak terjadi transaksi atau tarikan internasional.
Mari saya jelaskan kepada anda tentang teknologi perangkat keras (hardware) apa yang mereka gunakan (terinspirasi dari BBC TV Show tentang kasus ini).

Mari kita lihat bagaimana mereka (para maling) mencuri informasi yang terdapat pada kartu anda melalui Mesin ATM atau Supermarket:
  • Para maling tersebut akan mempersiapkan semua alat-alat yang mereka sebut Skimmer, MSR dan kamera nirkabel sebagai berikut ini:
  • Mereka meletakkan kotak brosur yang dilengkapi kamera nirkabel (wireless) tersebut di dekat dengan keypad/tombol untuk memasukkan pin ATM
  • Mereka (maling) akan menunggu si korban datang ke ATM
  • Si maling mulai menonton dan merekam nomor pin yang sedang di ketik korban dari laptopnya.
  • Kemudian si maling akan mencatat semua data dan pin ATM korban ke kartu kosong mereka.
    • Mencuri informasi yang terdapat di kartu credit/debit bisa dilakukan tidak hanya dari mesin ATM saja tapi juga bisa dilakukan di toko-toko melalui peralatan ATM Sweeper (POS Terminal) yang digunakan untuk debet/credit, data yang disalin dari kartu saat digesek akan disimpan dalam komputer server.
    Semua gambar tersebut diatas diambil dan diceritakan oleh teapoci.
    Intinya, dimana pun anda berada senantiasa waspadalah karena kejahatan bisa terjadi di mana saja, mari saling mengingatkan dan memberi informasi kepada sesama.

    Salah satu contoh “Card Skimming” yang berhasil ditemukan oleh polisi di Australia saat seorang wanita merasa kesulitan memasukan kartu ATM-nya ke dalam mesin ATM, diberitakan oleh www.brisbanetimes.com.au, 30 Januari 2009:
    Jika anda menjumpai hal serupa atau merasa ada yang janggal di dalam mesin ATM atau di tempat perbelanjaan, segera laporkan ke keamanan setempat agar segera mendapat pengamanan.

    Lalu bagaimana agar ATM kita aman dari pembobolan?
    • Untuk trik seperti yang disampaikan oleh teapoci.blogspot.com dalam tulisanya diatas, mereka (maling) membutuhkan data yang tersimpan pada “magnetic tape” atau strip hitam kartu kedit/debit. Sebaiknya periksa terlebih dahulu apakah bibir tempat memasukan kartu ATM yang ada pada mesin ATM itu tidak ditempeli oleh benda lain yang mencurigakan. Kemungkinan seorang pelaku menempelkan skimmer melalui media double tape ataupun magnet agar mudah untuk dilepas sewaktu-waktu. Contoh model-model skimmer yang berhasil ditemukan dan dipublikasikan dapat anda cari di google. Saran saya, pilihlah ATM yang sudah dilengkapi dengan anti-skimmer (ciri-ciri ATM ini adalah pada saat anda memasukkan kartu, kartu anda akan bergetar / tidak langsung di telan ke dalam ATM). Bergetarnya ATM akan membuat skimmer jatuh atau setidaknya lepas dari bibir ATM.
    • Buatlah Pin ATM yang sulit untuk ditebak (hindari pengunaan kombinasi 123456 atau kebalikanya) dan senantiasa menutup tangan kanan anda dengan tangan kiri ketika mengetikan nomor PIN di peralatan apapun, baik itu mesin ATM atau pun POS terminal (alat bertransaksi di pusat perbelanjaan). Pastikan tidak ada kamera yang mengarah ke tangan anda, hal ini mungkin sangat sulit karena kita tidak tahu dimana letak kamera diposisikan.
    • Hindari penggunaan ATM dimana lokasinya tidak terjaga atau tidak ada security atau bisa juga ditempat umum yang dekat dengan layanan free hotspot/WiFi. Di area ATM dimana dekat dengan lokasi hotspot (free internet via WiFi) memudahkan gerak-gerik pelaku dimana terdapat banyak orang yang juga memakai laptop disana. Kalaupun kepepet, sebaiknya perhatikan fisik mesin ATM dan tutup tangan anda serapat mungkin.
    Semoga cara tersebut diatas dapat meminimalisir aksi para pembobol ATM.

    Itulah informasi dari saya yang saya dapat dari kawan-kawan blogger di berbagai negara, semoga tulisan ini dapat bermanfaat. Mari ikut serta mencerdaskan kehidupan bangsa dan menjaga ketertiban dunia dengan saling berbagi informasi yang berguna bagi sesama.
    Anda dapat menyalin, memodifikasi dan menyebarluaskan sebagian atau keseluruhan isi tulisan ini jika dirasa bermanfaat bagi masyarakat di seluruh tanah air tercinta (cc).
    (cc): creative common, artinya jangan lupa url lengkap “artikel” tetap ditampilkan..
    EDUCATION PURPOSE ONLY – UNTUK KEPERLUAN EDUKASI SEMATA
    “Semoga tidak ada pihak lain yang merasa dirugikan dengan tulisan ini selain maling, stop berprasangka buruk dan mari kita bijak melihat fakta”. (end)

    Baca Keseluruhan Isi Posting Ini >

    Ilustrasi Waspadai Skimmer di ATM, Roy Suryo Heboh!

    Mungkin beberapa waktu belakangan ini anda telah melihat demo ilustrasi bagaimana aksi pembobolan ATM dilakukan dan cara menghindarinya di TV. Terus terang saya pun menjadi gamblang dan mengerti dengan jelas bagaimana menyikapi dan mencegah agar ATM saya tidak dibobol orang dengan ilustrasi tersebut. Bukan takut ATM dibobol karena banyak isinya tapi “..saya takut dan kasihan sama si pembobol, kasian deh lu..” dan “..kena deh!”. :P

    Jika readers sekalian belum sempat menyaksikan tayangan itu, maka rekan-rekan blogger sudah merekam tayangan tersebut dan menayangkanya di YouTube. Berikut cuplikanya (steaming video):

    apabila embed video diatas tidak berfungsi silahkan klik disini untuk lihat langsung di YouTube..

    Tayangan tersebut diperagakan oleh Ruby Z. Alamsyah, seorang ahli forensik digital (IT), dan menjadi heboh dan ramai dibicarakan setelah tersiar ada kabar SMS Berantai yang dikirimkan Roy Suryo kepada sejumlah wartawan dan polisi,  entah didasari motif apa Roy Suryo Serang Ruby Alamsyah Lewat SMS.

    Roy Suryo,Pakar Telematika membuat heboh dengan usaha menyerang Ruby Alamsyah (Ahli Forensik Digital).Roy Suryo merasa apa yang dilakukan oleh Ruby Alamsyah di TV tidak etis.Demo yang dilakukan oleh Ruby Alamsyah terkait pembobolan ATM dinilai menyalahi aturan.Roy Suryo pun mengirim SMS ke sejumlah wartawan dan polisi.Isi SMS Roy Suryo adalah:

    ‘Saya dengar Mabes Polri akan mempermasalahkan si Rb ZA yang selama ini mengaku-ngaku ahli IT Mabes Polri. Padahal bukan dan malah memperagakan cara-cara kriminal di TV?’

    Apakah ini bentuk rasa tersaingi dari Roy Suryo dengan kehadiran Ruby Alamsyah

    (beritafenomenal.wordpress.com)

    Anda belum kenal si Roy ? Roy Suryo dikenal sebagai seorang Pakar Matematika Telematika yang lebih sering mempertontonkan kepiawainnya di bidang IT untuk menentukan keaslian sebuah foto Mesum, Bugil “Mesra” artis yang beredar di internet. Sebagai orang awam, saya lebih menganggap bahwa dia lebih mengarah ke sebuah sosok ahli pornografi yang handal dibandingkan sebagai seorang ahli IT yang patut dipertontonkan kepiawaianya “kalo hanya ngurusin yang gitu-gituan”.

    Serangan Roy Suryo terhadap Ruby Alamsyah yang melakukan aksi demo ilustrasi tersebut ditanggapi beberapa kalangan dan tentunya ada “Pro dan Kontra” disana. Tapi sejujurnya ratusan blogger di Indonesia lebih cenderung berpihak dan membenarkan aksi demo yang dilakukan oleh Ruby, pasalnya apabila ilustrasi tersebut tidak di demonstrasikan apakah masyarakat awam mengerti dengan jelas bagaimana menyikapi trik-trik pembobolan ATM yang tengah marak belakangan ini.

    Menurut saya, munculnya Ruby disaat seperti ini adalah tepat karena dapat membuka mata masyarakat luas bahwa banyak pakar TI di Indonesia yang siap bersuara di dunia nyata dan dapat memberikan kontribusi nyata dan berguna kepada masyarakat luas.

    "​Justru bersyukur dengan munculnya Ruby, kita (masyarakat) jadi tahu bahwa pakar TI di Indonesia itu banyak," ujar Ihwanul Iman, Bandung Blog Village (BBV) Representative saat berbincang dengan detikINET, Senin (25/1/2010).

    Ditambahkan oleh Ihwan, demikian dia akrab dipanggil, profil Ruby sangat kompeten untuk membahas masalah pembobolan ATM. Aksinya di TV tersebut membuat masyarakat bisa berhati-hati lagi dalam melakukan transaksi di ATM.

    "Kalau baca profilnya, dia sangat kompeten untuk membahas masalah yang sekarang ini menjadi buah bibir masyarakat," tuturnya.

    Serangan Roy ini diduga akibat aksi Ruby Alamsyah di stasiun TV swasta. Dalam tayangan tersebut, Ruby dengan gamblang mempraktekkan cara membobol ATM.

    Roy pun gerah. Dia lantas mengirimkan pesan singkat ke kolega serta masyarakat tentang dampak negatif dari penayangan tersebut. Menurutnya, aksi Ruby bisa memancing masyarakat untuk berbuat serupa.

    ‎​"Saya kira tidak perlu menyerang seperti itu, bahkan dengan menyebar SMS ke sejumlah pihak," pungkasnya. (blogger-pesta.blogspot.com)

    Entah apa maksud dan tujuan Roy Suryo, seharusnya dia dijerat balik dengan pasal pengancaman, pencemaran nama baik, UU pornografi (karena tiap hari melototin gambar porno yang bisa menarik perhatian anak-anak untuk menghayal dan bercita-cita menjadi seperti dia). Bukanya memajukan bangsa dengan keahlianya sebagai seorang pakar Telematika, malah cuma bisa bikin heboh di negara sendiri saja. “Malu dong OM..”

    INILAH.COM, Jakarta - Pakar telematika Roy Suryo menuding Ruby Z Alamsyah mengajari masyarakat bagaimana caranya membobol ATM Bank. Namun hal itu dibantah pria yang kerap dijadikan saksi ahli Polri dalam kasus pidana ini.

    "Saya tidak mendemonstrasikannya, tapi saya mengilustrasikan. Kalau anda lihat tayangan itu, saya justru bertanya dibagian mana Ruby mengajarkan tindakan kriminal pembobolan ATM. saya menerangkan itu secara general tidak spesifik," tuturnya kepada INILAH.COM di Jakarta, Senin (25/1).

    Ia juga mengatatakan, jika beberapa alat peraga yang digunakannya bukanlah alat bukti kepolisian. Hal itu, lanjut Ruby, bisa ditanyakan salah satu stasiun televisi swasta yang mengundangnya sebagai narasumber.

    "Saya tidak pakai barang bukti apapun dari kepolisian, bisa ditanyakan ke media yang bersangkutan itu (alat Skimmer) milik mereka. Salah satu media itu membeli di salah satu mall yang saya tidak bisa sebutkan nama mall-nya. Karena skimmer bisa dibeli bebas dan dijual murah.

    Dijelaskan Ruby, saat diundang salah satu stasiun televisi swasta tersebut, dirinya sempat bertanya diminta untuk keperluan apa keterangan dia. "Lalu media tersebut bilang untuk edukasi masyrakat. Ya saya mau kalau untuk edukasi masyarakat," tandas Ruby.

    Mengenai pernyataan Polri yang bilang Ruby bukan merupakan pegawai atau ahli IT dari Mabes Polri, ia membenarkan pernyataan tersebut. Karena dirinya mengaku adalah profesional digital forensik dari PT Jaringan Nusantara (Jarnus).

    Perusahaan tersebut, Ruby mengungkapkan, pihaknya kerap memberikan servis digital forensik dan melakukan analisa dengan SOP internasional. Kliennya tersebar selain penegak hukum juga ada corporate. Bahkan ia menambahkan, dirinya juga sering disewa polisi. Mulai dari penyeleidikan sampai pengadilan.

    "Jika Roy Suryo meragukan keahlian saya, bisa dicek saya sering membantu atau dimintai bantuan oleh Polda Metro Jaya, Mabes Polri, Polda Sumut dan Polda Papua. Sejak 3 tahun lalu tepatnya 2006 saya sudah banyak membantu kepolisian terkait digital forensik. Misalnya dalam kasus pembunuhan Alda Risma, Munir, dan terakhir Antasari," tandas Ruby. [jib]

    Sekian dulu..

    Baca Keseluruhan Isi Posting Ini >

    Diteror SMS Beruntun Berisi Link Download Otomatis

    Beberapa waktu yang lalu tepatnya, tgl. 23 Januari 2010, saya mendapat SMS bertubi-tubi ke dalam nomor handphone saya. Entah apa maksudnya, yang jelas isi SMS tersebut langsung link dengan internet dan meminta download sebuah berkas/file dari internet. Karena curiga, saya pun mematikan aliran data GPRS yang tengah berjalan di bandphone saya secepat mungkin, karena ditakutkan itu adalah virus atau sesuatu yang berbahaya lainya.

    Kebetulan saya menggunakan Sony Ericsson tipe W660i yang menggunakan OS khusus (tidak dapat di install aplikasi selain java) dan kebetulan sudah familiar karena bertahun-tahun memakai handphone tipe ini sehingga dengan mudah sms tersebut “diabaikan”. Berikut adalah SMS pertama kali yang berhasil saya anulir dari handphone saya dan dijepret menggunakan lensa Nikkor S225, semoga saja gambar-gambar berikut ini terlihat jelas di komputer readers.

    Karena saya tidak membuka berkas yang dikirimkan oleh peneror, hingga saat ini beliau (si pengirim) masih saya kategorikan sebagai peneror karena tidak mau menyebutkan apa keperluanya terlebih dahulu, dia pun mengirimkan pesan SMS berisi link download otomatis tersebut berkali-kali dalam sehari dan kemudian berakhir di ke-esokan harinya. Mungkin kehabisan pulsa atau low-battery :hammer:, hehe.. :P

    Sampai detik ini nomor ini masih saya kategorikan sebagai nomor berbahaya dan silahkan aktifkan fungsi blacklist atau daftar-hitam pada handphone anda jika men-support fitur ini. Nomor ini akan saya informasikan sebagai nomor aman atau whitelist jika si pengirim bersedia menyebutkan keperluanya dengan baik-baik.

    Informasi ini saya berikan kepada readers berkenaan dengan perkembangan virus yang begitu pesat dan mampu menyerang di berbagai perangkat digital seperti handphone dan komputer secara sekaligus dimana aktifitas hanphone-PC ataupun sebaliknya sudah menjadi keseharian di era modern seperti sekarang ini.

    Beberapa waktu yang lalu, saya mendapati beberapa virus yang sudah mampu menjangkiti handphone dengan OS symbian dari PC yang terinfeksi virus ketika dihubungkan melalui kabel data, alhasil handphone mahal itu pun blank dan harus di program ulang (reformat) OS-nya. Karena virus ini menyerang keduanya, handphone dan PC, maka keduanya harus di-format ulang agar kembali normal.

    Tidak menutup kemungkinan suatu saat nanti, satu jenis virus sudah dapat menyerang Windows dan berbagai jenis OS handphone populer lainya secara bersamaan. Senantiasa bersatu dan tetap waspada. (end)

    Baca Keseluruhan Isi Posting Ini >

    Busbar Protection

    Berikut adalah referensi tentang Busbar Protection Relay atau yang lebih dikenal dengan istilah relay BusPro. Format pdf dan saya embed disini biar langsung bisa dibaca tanpa download dulu.

    Untuk penjelasan untuk applikasi di lapangan akan saya bahas kemudian hari saat kesibukan proyek menurun dan ada waktu senggang untuk bermain keyboard dan menatap layar monitor. Silahkan disimak, mudah-mudahan tidak kesulitan karena versi english, hehe..
    Bagi readers yang kesulitan membaca embeded PDF ini dari facebook, email ataupun live RSS-Feed silahkan langsung ke TKP dengan klik "disini". Anda juga dapat membagikan artikel ini ke teman-teman anda jika dirasa bermanfaat, terima kasih.


    15 Busbar Protection

    Baca Keseluruhan Isi Posting Ini >

    Desain Payung yg Unik

    “Sedia Payung Sebelum Hujan” adalah istilah yg tepat dalam arti kata yang sebenarnya untuk kondisi cuaca saat ini di Jakarta. Bahkan ada pula yang bilang istilah itu udah ngga cocok untuk situasi kota Jakarta dan menggantinya dengan “sedia getek sebelum banjir..”

    Apapun itu, terserahlah.. toh saya sendiri sudah bosan dengan berita dan kritikan yg itu-itu saja dan belum tentu akan berubah/ditanggapi serius dalam kurun waktu kurang dari satu dekade.

    Disaat hujan tengah melanda dengan derasnya terkadang menyesal rasanya karena lupa tak bawa payung, namun seringkali juga malas bawa-bawa payung kemana-mana saat hujan belum turun, itulah saya.. hehe

    Bagaimana jika payung yang akan dibawa seperti berikut ini? Tentu akan lain ceritanya bukan.. Silahkan disimak dan klik gambar untuk perbesar gambar.

    1. Payung Samurai

    2. Payung “Lightsaber” (Seperti di Filem Star Wars)

    3. Payung “Pistol Air”, cocok untuk anda yg menggemari filem James Bond dan kehidupan di negeri hujan.

    4. Jika seharian gelap dan diwarnai hujan deras nan lebat, maka payung berikut ini sangat cocok.

    Lihat payungnya bercahaya! Payung ini dilengkapi dengan sumber cahaya di dalamnya dan akan menyala dengan indahnya disaat hujan dan gelap. Namun sekali lagi ini hanyalah sebuah konsep desain, maka anda belum bisa membelinya di toko payung terdekat. Tapi siapa tahu suatu saat nanti bisa..

    . sumber

    5. Membawa payung memang ribet, apalagi payung standar (bukan lipat) berukuran besar untuk 2 orang (mis: setting mau jalan-jalan berduaan ditengah rintik hujan). Disaat penantian ternyata seseorang yang dinanti lama sekali ngga nongol-nongol ditambah cuaca berubah cerah, mana kalau mau naik angkot saking panjangnya payung bisa nyolok-nyolok atau nyenggol orang-orang di dalam angkot. Uh.. nunggu lama dipinggir jalan, necis bawa payung gede dan ngga ujan lagi (kaya ojek payung bermodal), tengsin deh pastinya..

    So ini dia solusi dari doraemon “Payung + Penyangga Badan”. Payung ini bisa anda gunakan sebagai penyangga badan sembari mengunggu bis ataupun kawan disaat tidak turun hujan.

    Payung ini dapat dibeli disini: sumber (korea)

    6. Payung “Tas Jinjing”

    Payung basah..? Sekarang tidak lagi, anda bisa membawa payung ini tanpa takut membasahi dalam rumah seusai digunakan. Modelnya pun cukup menarik, layaknya tas jinjing yang biasa dipakai sehari-hari.

    Setelah memakai payung biasanya orang meletakanya diluar dan berceceran dimana-mana layaknya barang tak berharga lagi karena takut membasahi rumah atau kantor. Tapi itu kan dulu..

    Idenya sangat sederhana, payung ini memiliki dua sisi dan saat digulung maka sisi payung yang basah akan terbungkus sehingga air tidak lagi menetes.

    7. Payung “Internet”

    Pileus is an umbrella connected to the Internet to make walking in rainy days fun. Pileus has a large screen on the top surface, a built-in camera, a motion sensor, GPS, and a digital compass. The current prototype has two main functions: photo-sharing and 3D map navigation.
    The photo function is connected to a major web service: Flickr API. A user can take photo with a camera on the umbrella, and pictures are uploaded to Flickr in two minutes with context tags via a wireless Internet connection. User can also enjoy theirselves watching photo-streams downloaded from Flickr with simple operation of wrist snapping.

    Pileus Internet Umbrella Pileus Flickr Umbrella
    It also has a function of 3D Map. Detecting a location data from GPS, it shows a 3D bird view around the user. User can walk-through a city comparing the 3D views and real sights, and the map is always updated by GPS and a digital compass. It aims to create natural augmented reality with a large informatin screen on the umbrella.
    Pileus with Map Pileus w/ Map
    These two functions can be switched by simply fliping a switch. As a future direction of its development, putting a context data on the Internet (e.g. geo-tags on photos), it will be able to provide social local-navigations and real-time in-place communications. The product aims to provide an augmentation of everyday life synchronizing information on the Internet and the real place.

     

    Bersambung.. (tunggu update payung menarik berikutnya)

    Baca Keseluruhan Isi Posting Ini >

    Tutorial Lengkap Percepat koneksi internet di Firefox

    Internet lemot, lambat, blank, tidak bisa loading, slowly-slowly, de-el-el..?? Hmm.. eits jangan emosi dulu. Mungkin setting konfigurasi browser anda belum diset untuk ngebut. Emang ada? yup, dengan mencoba tutorial ini koneksi internet akan menjadi lebih cepat dari biasanya. Dan jangan khawatir anda pun dapat melakukanya, meski anda awam dengan perangkat internet.

    Jika anda mempunyai usaha warnet (cyber cafe) mungkin ini patut dicoba apalagi kebanyakan pengunjung saat ini kebanyakan membuka situs jejaring sosial (facebook, plurk, myspace, dll) yang tentunya menggunakan sistem web dinamis.

    Prakata

    Setelah dicoba merubah beberapa kode konfigurasi internal, ternyata firefox pun bisa jauh lebih ngebut dibanding dengan Chrome. Untuk mencobanya, silahkan ikuti panduan berikut baik-baik. Di dalam tutorial ini akan dibahas merubah setting internal proxy, render engine dll di firefox. Kesalahan dalam pengubahan yang akan anda lakukan sepenuhnya adalah resiko sendiri, jadi sebaiknya dilakukan dengan hati-hati.

    Sekilas Tentang Firefox

    Mozilla Firefox adalah sebuah software penjelajah internet (layaknya internet explorer) yang dikembangkan oleh Mozilla Corporation.

    Started as a fork of the browser component (Navigator) of the Mozilla Application Suite, Firefox has replaced the Mozilla Suite as the flagship product of the Mozilla project, stewarded by the Mozilla Foundation and a large community of external contributors.

    Mozilla Firefox adalah penjelajah yang bersifat cross-platform, dengan kata lain browser ini mendukung seluruh OS seperti: Microsoft Windows, Mac OS X, and Linux. Meskipun tidak tertulis mendukung berbagai jenis OS, source code disediakan secara gratis dan bekerja dengan baik untuk segala jenis operating systems lainya, termasuk FreeBSD, OS/2, Solaris, SkyOS, BeOS dan OS terbaru, Windows XP Professional x64 Edition, Vista dan Windows 7.

    Mempercepat Koneksi Internet dengan Firefox

    Jika anda kurang puas dengan Firefox karena tidak cocok dengan koneksi internet yang lambat, ups tunggu dulu. Disini kita akan membahas bagaimana mempercepat koneksi internet dengan fitur internal firefox yang tidak dimiliki oleh browser lain. Hasil percepatan internet biasanya bervariasi dan rata-rata hasilnya adalah lebih cepat dari biasanya dan tentunya masih lebih cepat diantara browser yang lainya. Untuk mempercepat koneksi internet di Firefox anda, silahkan ikuti instruksi di bawah ini:

    di dalam address bar, ketikan about:config

    Jika ada pesan peringatan, klik “I’ll be carefull, I promise”. Setelah muncul, seharusnya anda menemui tampilan yang mirip dengan layar dibawah ini:

    Tip1

    di dalam Filter, ketikan network.http.pipelining

    Jika sudah, seharusnya anda menemui tampilan yang mirip dengan layar dibawah ini:

    Biasanya kolom value berisi ” false ”, klik dua kali untuk merubahnya menjadi ” true “.

    Jika sudah dilakukan seharusnya anda menemui layar seperti dibawah.

    Tip2

    Kembali lagi ke Filter, ketikan network.http.pipelining.maxrequests

    Jika sudah, seharusnya anda menemui tampilan yang mirip dengan layar dibawah ini:

    Di dalam kolom value biasanya berisikan nilai 4 dan saat ini kita perlu mengubahnya menjadi 8. Ada juga tutorial yang menyebutkan bahwa lebih besar nilainya maka kecepatan browser juga menjadi lebih cepat, silahkan bereksperimen sendiri untuk membuktikanya.

    Jika sudah, seharusnya anda menemui tampilan yang mirip dengan layar dibawah ini:

    Tip3

    Go to the filter bar again and type network.http.proxy.pipelining

    Once it Opens You should see similar to the following screen

    Normally it says ” false ” under value field , Double click it so it becomes ” true “.

    Jika sudah, seharusnya anda menemui tampilan yang mirip dengan layar dibawah ini:

    Tip4

    Go to the filter bar again and type network.dns.disableIPv6

    Once it Opens You should see the following screen

    Normally it says ” false ” under value field , Double click it so it becomes ” true “.

    Jika sudah, seharusnya anda menemui tampilan yang mirip dengan layar dibawah ini:

    Tip5

    Go to the filter bar again and type plugin.expose_full_path

    Once it Opens You should see the following screen

    Normally it says ” false ” under value field , Double click it so it becomes ” true “.

    Jika sudah, seharusnya anda menemui tampilan yang mirip dengan layar dibawah ini:

    Tip6

    Now you need to Create new Preference name with interger value for this got to Right click -> New -> Integer

    Once it opens you should see the following screen

    Here you need to type nglayout.initialpaint.delay and click ok

    Now you need to enter 0 in value filed and click ok

    Once you finished this you should see the following screen.

    Tip7

    Now you need to Create one more Preference name with interger value for this got to Right click -> New -> Integer

    Once it opens you should see the following screen

    Here you need to type content.notify.backoffcount and click ok

    Now you need to enter 5 in value filed and click ok

    Once you finished this you should see the following screen.

    Tip8

    Now you need to Create one more Preference name with interger value for this got to Right click -> New -> Integer

    Once it opens you should see the following screen

    Here you need to type ui.submenuDelay and click ok

    Now you need to enter 0 in value filed and click ok

    Once you finished this you should see the following screen.

    Beberapa kode Tweaks lainya yang bisa anda coba jika koneksi internet masih lemot juga:

    Enable the spellchecker for inputfields and textareas (default is textareas only)

    layout.spellcheckDefault=2

    Open lastfm://-links directly in amarok

    network.protocol-handler.app.lastfm=amarok
    network.protocol-handler.external.lastfm=true
    Firefox Memory Leak Fix

    Open a new tab. Type “about:config” without quotes into the address bar and hit enter/click Go.

    Right-click anywhere, select New, then Integer. In the dialog prompt that appears, type:

    browser.cache.memory.capacity

    Click OK. Another dialog prompt will appear. This is where you decide how much memory to allocate to Firefox. This depends on how much RAM your computer has, but generally you don’t want to allocate too little (under 8MB), but if you allocate too much, you might as well not do this. A good recommended setting is 16MB. If you want 16MB, enter this value into the dialog prompt:

    16384

    (Why 16384 instead of 16000? Because computers use base-12 counting. Thus 16 megabytes = 16384 bytes. Likewise, if you want to double that and allocate 32MB, you’d enter 32768.)

    Click OK to close the dialog box, then close all instances of Firefox and restart. If your Firefox still uses the same amount of memory, give it a few minutes and it should slowly clear up. If that fails, try a system reboot.

    Now your Firefox will now be 3 – 30 times faster in loading pages.

    Referensi Tulisan: http://www.ubuntugeek.com/speed-up-firefox-web-browser.html

    Baca Keseluruhan Isi Posting Ini >