LCD Controller Tutorial

Pengantar

LCD menambahkan terlihat lebih profesional untuk kebanyakan setiap proyek menutupi peran tujuh segmen atau alfa-numerik LED. Kebanyakan karakter LCD dikendalikan melalui controller standar industri HD44780 gaya. Ini bagus karena hampir semua karakter LCD Anda membeli akan beroperasi dengan cara yang sama persis. Setelah Anda telah belajar beberapa nuansa halus antarmuka Hitachi, Anda akan dapat dengan mudah menambahkan atau debugging output atraktif untuk setiap proyek yang Anda coba untuk mengatasi.

Pin Out

Pin out pada kebanyakan LCD akan 14 sampai 16 pin dalam satu baris dengan jarak 100 mil standar. Versi 16 pin memiliki dua pin ekstra untuk mengakomodasi cahaya-back.Namun, terkadang pin yang ada tapi tidak terhubung ke apa-apa. Saya kira ini memungkinkan produsen untuk memiliki hanya satu tata letak papan untuk kedua model. Selalu terbaik untuk mencari datasheet untuk bagian Anda, tetapi pin keluar benar-benar sangat standar.

PinFungsi
1Ground (Vss), 0V
2Power (Vdd), +5 V
3Tegangan Kontras (biasanya kurang dari 1V)
4"R / S" Daftar Pilih (1 untuk Data Tulis, 0 untuk Command Tulis)
5"R / W" Read / Write (1 untuk Baca, 0 untuk Tulis)
6"EN" Aktifkan baris (Mode Pulsa tinggi kait perintah atau _|¯|_ data)
7-14Data Pin (D0-D7) D0 adalah LSB, dalam mode 4-bit hanya D4-D7 digunakan
15-16(Opsional) Anoda Back-cahaya dan Katoda, NC, atau Tidak Ada di All

Skema

Ada dua cara dasar untuk antarmuka perangkat: mode 8-bit dan mode 4-bit. Paling sering, "R / W" line langsung diikat ke tanah, dan LCD hanya tertulis dan tidak membaca. Fungsi membaca biasanya digunakan untuk jajak pendapat "Sibuk Bendera" yang muncul pada D7 saat perangkat tidak mampu menerima perintah (ini sibuk .. mendapatkannya). Namun, fungsi ini dapat diabaikan dengan hanya menunggu waktu maksimum untuk setiap perintah untuk menyelesaikan (sebagian besar diselesaikan dalam waktu kurang dari 200us). Jadi, saya hanya akan membahas skenario di mana "R / W" adalah ground.

8-Bit Interface

Schematic 8 bit Interface

4-Bit Interface

Schematic 4-bit interface
Resistor 180 ohm pergi ke pin Anoda adalah untuk bias LED back-light pada model yang saya gunakan ketika saya membuat ini skematis. Model Anda mungkin tidak memiliki lampu belakang, itu mungkin perlu sebuah resistor nilai yang berbeda, atau Anda dapat memilih untuk mengabaikan lampu kembali semua bersama-sama dan menyimpan beberapa bagian, itu terserah Anda. Selain itu, tidak ditampilkan di sini, tapi Anda harus meletakkan 0.1uF atau 0.01uF keramik kapasitor dekat LCD antara Vss dan Vdd untuk bertindak sebagai filter untuk noise frekuensi tinggi.

Menulis Data dan Perintah

Dalam rangka untuk menulis perintah atau data lakukan hal berikut untuk kedua mode:

8-Bit Write Sequence
Pastikan "EN" adalah 0 atau rendah
Set "R / S" untuk 0 untuk perintah, atau 1 untuk data / karakter
Masukkan data / perintah pada D7-0
Set "EN" (EN = 1 atau Tinggi)
Tunggu Sedikitnya 450 ns!
Clear "EN" (EN = 0 atau Rendah)
Tunggu 5ms untuk perintah menulis, dan 200us untuk menulis data.


4-Bit Write Sequence
Pastikan "EN" adalah 0 atau rendah
Set "R / S" untuk 0 untuk perintah, atau 1 untuk data / karakter
Masukkan BYTE TINGGI data / perintah pada D7-4
Set "EN" (EN = 1 atau Tinggi)
Tunggu Sedikitnya 450 ns!
Clear "EN" (EN = 0 atau Rendah)
Tunggu 5ms untuk perintah menulis, dan 200us untuk menulis data.
Masukkan LOW BYTE data / perintah pada D7-4
Tunggu Sedikitnya 450 ns!
Clear "EN" (EN = 0 atau Rendah)
Tunggu 5ms untuk perintah menulis, dan 200us untuk menulis data.

Perintah Set

R / SR / WD7D6D5D4D3D2D1D0Instruksi / Keterangan
0000000001Tampilan jelas dan Home Cursor yang
000000001*Kembali Cursor dan LCD untuk Posisi Depan
00000001IDSPindahkan kursor Set Arah
0000001DCBAktifkan Tampilkan / Cursor
000001SCRL**Pindah Cursor / Display Shift
00001DLNF**Interface Set Panjang
0001AAAAAAPindahkan kursor ke CGRAM
001AAAAAAAPindahkan kursor ke Tampilan
01BF*******Jajak pendapat "Bendera Sibuk"
10DDDDDDDDTulis Karakter ke Tampilan pada Posisi Kursor Lancar
11DDDDDDDDBaca Karakter di Pamerkan di Posisi Kursor Lancar
deskripsi bit ini untuk perintah yang berbeda adalah:
"*" - Tidak Digunakan / Diabaikan. Bit ini dapat berupa "1" atau "0"

Set Cursor Pindahkan Arah:
ID - Kenaikan yang Cursor Setelah Setiap Byte Ditulis ke Tampilan jika Set
S - Shift Tampilan dengan Byte Tertulis ke Tampilan

Aktifkan Tampilkan / Cursor
D - Turn Tampilan Pada (1) / Off (0)
C - Turn Cursor On (1) / Off (0)
B - Cursor Blink Aktif (1) / Off (0)

Pindah Cursor / Display Shift
SC - Tampilan Shift Aktif (1) / Off (0)
RL - Arah Hak Shift (1) / Waktu (0)

Interface Set Panjang
DL - Mengatur Panjang Data Interface 8 (1) / 4 (0)
N - Jumlah Line Display 1 (0) / 2 (1)
F - Karakter Font 5x10 (1) / 5x7 (0)

Jajak pendapat "Bendera Sibuk"
BF - bit ini diset sedangkan LCD pengolahan 

Pindahkan kursor ke CGRAM / Tampilan
Alamat - A

Baca / Tulis ASCII untuk Menampilkan
D - Data 

Inisialisasi

Ada, tentu saja, dua cara yang berbeda untuk menginisialisasi LCD: mode 4-bit, dan mode 8-bit. Sangat menarik untuk dicatat bahwa empat-line LCD menginisialisasi seperti LCD dua baris. Bahkan, setup biasanya hanya dua kontroler HD44780 gaya, tapi untuk pengguna itu transparan. Satu-satunya bagian aneh adalah bahwa garis yang ditujukan sedemikian rupa sehingga kedua garis 1's mendahului kedua garis 2's dari setiap controller, yang membuat alamat non-berturut-turut. Jadi, jika Anda hanya mengatur tampilan untuk menggeser kursor tepat setelah masing-masing karakter menulis, tampilan akan membungkus, akhirnya, dari baris 1 ke baris 3 ke baris 2 dan, akhirnya, dengan garis 4.

Saya akan menunjukkan bentuk umum tentang bagaimana untuk menginisialisasi tampilan serta contoh. Contoh ini akan menginisialisasi 2-line (atau 4-line, mereka menginisialisasi yang sama) untuk menggeser kursor tepat setelah masing-masing karakter menulis, tampilan kursor tidak, dan tentunya mengaktifkan LCD untuk dilihat.

Kecuali secara eksplisit mencatat "Write", berarti mengikuti petunjuk yang digariskan dalam bagian "Menulis Data dan Perintah." Else yang memungkinkan pulsa harus diberikan diikuti dengan menunggu jumlah lain waktu.

Ingat: Untuk perintah RS = 0, untuk data RS = 1

8-Bit Inisialisasi


Inisialisasi UmumContoh Inisialisasi
1Tunggu 20ms untuk LCD untuk power up
2Tulis D7-0 = 30 hex, dengan RS = 0
3Tunggu 5ms
4Tulis D7-0 = 30 hex, dengan RS = 0, lagi
5Tunggu 200us
6Tulis D7-0 = 30 hex, dengan RS = 0 waktu, satu lagi
7Tunggu 200us
8Write Perintah "Interface Set"Tulis 38 hex (8-bit, 2-baris)
9Write Perintah "Aktifkan Tampilkan / Kursor"Tulis 08 hex (jangan pergeseran menampilkan, menyembunyikan kursor)
10Write Command "Hapus dan Home"Tulis 01 hex (layar jernih dan rumah)
11Write Command "Arah Pindahkan kursor Set"Tulis 06 hex (bergerak kanan kursor)
12-Tulis 0C hex (menghidupkan tampilan)
Tampilan siap untuk menerima data.

4-Bit Inisialisasi

Ingat: Data / Command menulis tentang byte satu ukuran dilakukan delay tinggi menggigit,, rendah menggigit, delay. (1 menggigit = 4 bit)

Inisialisasi UmumContoh Inisialisasi
1Tunggu 20ms untuk LCD untuk power up
2Tulis D7-4 = 3 hex, dengan RS = 0
3Tunggu 5ms
4Tulis D7-4 = 3 hex, dengan RS = 0, lagi
5Tunggu 200us
6Tulis D7-4 = 3 hex, dengan RS = 0 waktu, satu lagi
7Tunggu 200us
8Tulis D7-4 = 2 hex, untuk mengaktifkan mode empat-bit
9Tunggu 5ms
10Write Perintah "Interface Set"Tulis 28 hex (4-Bits, 2-baris)
11Write Perintah "Aktifkan Tampilkan / Kursor"Tulis 08 hex (jangan pergeseran menampilkan, menyembunyikan kursor)
12Write Command "Hapus dan Home"Tulis 01 hex (layar jernih dan rumah)
13Write Command "Arah Pindahkan kursor Set"Tulis 06 hex (bergerak kanan kursor)
14-Tulis 0C hex (menghidupkan tampilan)
Tampilan siap untuk menerima data.

Alamat Lokasi

2-Line Display

LCD
Baris 100 hex, 01 hex, hex 02 ,...........          
Baris 240 hex, 41 hex, hex 42 ,...........

4-Line Display

LCD
Baris 100 hex, 01 hex, hex 02 ,...........          
Baris 240 hex, 41 hex, hex 42 ,...........
Line320 hex, 21 hex, 22 hex ,...........
Line 460 hex, 61 hex, hex 62 ,...........

Beberapa Berguna Perintah

Command (dalam hex)Efek
0CTernyata ON HANYA LCD, tidak ada kursor
08Ternyata OFF layar LCD
0ETernyata pada layar LCD dan Menetapkan CURSOR PADAT
0FTernyata pada layar LCD dan Menetapkan CURSOR BLINKING
80Memindahkan kursor ke alamat pertama di kiri LINE 1
C0Memindahkan kursor ke alamat pertama di kiri LINE 2
94Memindahkan kursor ke alamat pertama di kiri LINE 3
D4Memindahkan kursor ke alamat pertama di kiri LINE 4

Juga, perhatikan bahwa menambahkan sebuah offset untuk baris perintah akan memindahkan kursor ke tempat yang berbeda dalam baris yang disediakan Anda tidak melebihi alamat di baris. Jadi, misalnya, 80h + 2h akan memindahkan kursor ke posisi ketiga dari baris pertama. Kebanyakan kompiler akan membiarkan Anda mendefinisikan sebuah string dan memungkinkan pernyataan seperti ini:

; LCD Konstanta
Baris 1 equ 080h; atau 0x80 # define baris 1
;
; 8051 kode
mov lcdRegister, baris 1 +2; mengatur register yang akan diteruskan ke ... 
                                                                        ; ... Subrutin untuk 3 spot 1 line
panggilan writeCommandSubroutine; menulis perintah
;
atau 
; Kode PIC
movlw baris 1 +2
panggilan writeCommandSubroutine; melakukan hal yang sama untuk PIC


KLIK tuk melanjutkan »

Apa itu CAPTCHA dan Cara Bekerja?



CAPTCHA atau Captcha (diucapkan seperti topi-ch-uh) yang merupakan singkatan dari "Completely Automated Public Turing test untuk memberitahu Komputer dan Manusia Selain" adalah jenis uji tantang-respons untuk memastikan bahwa respon hanya dihasilkan oleh manusia dan bukan oleh 
komputer. Dengan kata sederhana, CAPTCHA adalah verifikasi kata tes yang Anda akan menemukan akhir dari suatu bentuk sign-up sementara sign up account Gmail atau Yahoo. 
 
 Hampir setiap pengguna internet akan memiliki pengalaman CAPTCHA dalam penggunaan internet sehari-hari mereka, tetapi hanya sedikit yang menyadari apa itu dan mengapa mereka digunakan. Jadi dalam posting ini Anda akan menemukan informasi rinci tentang bagaimana CAPTCHA bekerja dan mengapa mereka digunakan.

  Apa Tujuan CAPTCHA Tepat Melayani? 
 
CAPTCPA terutama digunakan untuk mencegah perangkat lunak otomatis (bot) dari melakukan tindakan atas nama manusia yang sebenarnya. Misalnya ketika sign up untuk account email baru, Anda akan menemukan CAPTCHA pada akhir bentuk sign-up sehingga untuk memastikan bahwa formulir tersebut diisi hanya oleh manusia dan tidak sah oleh perangkat lunak otomatis ataukomputer bot. Tujuan utama dari CAPTCHA adalah untuk mengajukan tes yang sederhana dan lurus ke depan bagi setiap manusia untuk menjawab tapi untuk komputer, hampir tidak mungkin untuk memecahkan.
  

Bagi banyak CAPTCHA mungkin tampak konyol dan menyebalkan, namun ternyata memiliki kemampuan untuk melindungi sistem dari serangan berbahaya di mana orang mencoba permainan sistem. Penyerang dapat menggunakan software otomatis untuk menghasilkan kuantitas besar permintaan sehingga menyebabkan beban yang tinggi pada server target yang akan menurunkan kualitas pelayanan sistem tertentu, baik karena pengeluaran penyalahgunaan atau sumber daya. Hal ini dapat mempengaruhi jutaan pengguna yang sah dan permintaan mereka. CAPTCHA dapat digunakan untuk melindungi sistem yang rentan terhadap spam email, seperti layanan dari Gmail, Yahoo dan Hotmail. 

  
Siapa yang Menggunakan CAPTCHA? 
 
CAPTCHA terutama digunakan oleh situs web yang menawarkan layanan seperti polling online dan formulir pendaftaran. Misalnya, layanan email berbasis web seperti Gmail, Yahoo dan Hotmail menawarkan account email gratis bagi pengguna mereka. Namun pada setiap proses sign up, CAPTCHA yang digunakan untuk mencegah spammer menggunakan bot untuk menghasilkan ratusan spam mail account. 

  Perancangan Sistem CAPTCHA 

 
CAPTCHA dirancang pada kenyataan bahwa komputer kurangnya kemampuan bahwa manusia memiliki ketika datang ke pengolahan data visual. Hal ini lebih mudah mungkin bagi manusia untuk melihat gambar dan memilih pola dari komputer.Hal ini karena komputer tidak memiliki kecerdasan nyata bahwa manusia telah secara default. CAPTCHA dilaksanakan dengan menghadirkan pengguna dengan sebuah gambar yang berisi terdistorsi atau secara acak terbentang karakter yang hanya manusia harus dapat mengidentifikasi. Kadang-kadang karakter striked keluar atau disajikan dengan latar belakang berisik untuk membuatnya lebih sulit untuk komputer untuk mengetahui pola. 


Kebanyakan, tetapi tidak semua, CAPTCHA mengandalkan tes visual. 
Beberapa Situs menerapkan sistem CAPTCHA yang sama sekali berbeda untuk memberitahu manusia dan komputer terpisah. Sebagai contoh, pengguna disajikan dengan 4 gambar di mana 3 berisi gambar hewan dan satu mengandung bunga.Pengguna diminta untuk memilih hanya gambar-gambar yang berisi binatang di dalamnya. Tes Turing dengan mudah dapat diselesaikan oleh setiap manusia, namun hampir mustahil untuk komputer.

  Breaking CAPTCHA 
 
Tantangan dalam memecahkan CAPTCHA terletak dalam tugas keras dan nyata dalam pengajaran komputer bagaimana untuk memproses informasi dalam cara yang mirip dengan bagaimana manusia berpikir. Algoritma dengan kecerdasan buatan (AI) harus dirancang untuk membuat komputer berpikir seperti manusia ketika datang untuk mengenali pola-pola dalam gambar. Namun tidak ada algoritma universal yang dapat melewati dan memecahkan sistem CAPTCHA dan maka setiap algoritma CAPTCHA harus harus ditangani secara individual. Ini mungkin tidak bekerja 100 persen dari waktu, tetapi dapat bekerja sering cukup bermanfaat untuk spammer.

KLIK tuk melanjutkan »