1. Trang chủ
  2. » Giáo án - Bài giảng

GIÁO TRÌNH LCD (Liquid Crystal Display)

26 693 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 444 KB

Nội dung

Ch¬ng Giới thiệu thiết bị hiển thị (LCD),cách ghộp ni vi vi x lý (Hunghe`o) Màn hình tinh thÓ láng LCD (liquid Crystal Display) I/ KiÕn thøc chung LCD (Liquid Crystals Display) 1.Màn hình tinh thể lỏng (LCD) phạm vi ứng dụng? _ Ngày lĩnh vực thông tin giải trí, việc dùng hình ống tia ca tốt truyền thống (CRT) dần đợc thay việc sử dụng h×nh tinh thĨ láng (LCD) V× LCD cã nhiỊu u điểm vợt trội nh : Độ dày hình nhỏ nhiều , Kích thớc đa dạng từ loại hình nhỏ tới hình cực lớn, Tiêu thụ lợng không nguy hiểm CRT LCD dùng thông tin giải trí (Màn hình Tivi, máy vi tÝnh) LCD dïng lÜnh vùc ®iỊu khiĨn LCD dùng truyền thông (Màn hình điện thoại, hiển thị hệ thống chuyên dụng) phần xét tới LCD loại nhỏ việc dùng LCD để hiển thị hệ thống chuyên dụng Cơ sở vật lý LCD _ Đúng nh tên gäi cđa nã, LCD (Liquid Crystals Display ) - Mµn hình tinh thể lỏng - , sở vật lý để LCD hiển thị đợc thông tin , hình ảnh đặc tính vật liệu chế tạo nên LCD, tức Liquid Crystals (thạch anh lỏng) _ Đặc tính Liquid Crystals : Thứ nhất: Liquid Crystals lµ vËt liƯu st võa cã tÝnh chất chấ rắn,lại vừa có tính chất chất lỏng (chính điệu đà lam nên khác biệt): + ánh sáng truyền qua Liquid Crystals theo góc nghiêng phân tử , ánh sáng bị phản xạ trở lại Đây tính chất chất rắn + Khi Liquid Crystals đợc tích điện, bị thay đổi góc nghiêng phần tử, kết ánh sáng truyền xuyên qua Đây tính chất chất lỏng Thứ hai : LCD gồm bề mặt dạng rÃnh , bề mặt lớp Thạch Anh lỏng (Liquid Crystal) Trớc hết nói đặc tính bề mặt rÃnh : mõi bề mặt có rÃnh Các rÃnh mặt song song với vuông góc với rÃnh mặt lại (theo hớng bắc-nam/ tây-đông) Bây nói đặc tính lớp Liquid Cristal (ở giữa) : ánh sáng truyền qua lớp theo góc phần tử, ánh sáng bị xoắn 90 độ xuyên qua lớp Liquid Cristal Nhng phân cực cho lớp Liquid Cristal, phân tử đợc xếp lại theo phơng ngang, mà ánh sáng truyền qua lớp Liquid Cristal mà không bị xoắn (H×nh 2) Thø ba : VỊ tÝnh chÊt cđa líp lọc ánh sáng đơn cực Chúng ta biết ánh sáng sóng truyền theo nhiều phơng khác Lớp lọc đơn cực thực tập hợp đờng thẳng suốt song song Chính bề mặt rÃnh LCD đà nói trên- Sau qua lớp lọc đơn cực, ánh sáng thành phần sóng có phơng trùng với phơng đờng thẳng lớp lọc cực LCD có lớp lọc đơn cực có phơng lọc vuông góc Vì vậy, sau khỏi lớp lọc đơn cực ánh sáng bị chặn lại hoàn toàn ánh sáng truyền qua lớp lọc ®¬n cùc nÕu sau qua líp läc thø nhÊt ánh sáng đợc xoắn góc 90 độ ®i qua líp läc thø ThËt may, viƯc xo¾n ánh sáng hoàn toàn thực đợc theo tính chất lớp Liquid Cristal đà nói Có thể tổng kết đờng ánh sáng nh sau: Để có điểm tối LCD: ánh sáng phát từ bên LCD qua bề mặt rÃnh thứ (lớp lọc đơn cực), sau ánh sáng qua lớp Liquid Cristal (lớp đợc phân cực nên ánh sáng qua mà không bị xoắn), sau ánh sáng qua bề mặt rÃnh thứ 2lớp phân cực thứ (lớp lọc đơn cực), ánh sáng không ló đợc khỏi lớp này(bị chặn lại hoàn toàn) ta thấy điểm tối hình LCD (Hình 3) Để có điểm sáng LCD: trình tơng tự nhng khác chỗ ánh sáng qua lớp Liquid Cristal không đợc phân cực nên ánh sáng bị xoắn 90 độ, nhờ mà qua đợc bề mặt rÃnh thứ (lớp lọc đơn cực) Ta thấy điểm sáng LCD (H×nh 3) H×nh H×nh 3 II/ XÐt LCD cụ thể Hitachi HD44780 LCD hiển thị đợc hàng hàng hiển thị đợc 16 ký tự (LCD có 14 chân) nh đợc minh hoạ hình Thông sè cđa LCD : +KÝch thíc hiĨn thÞ : 16 ký tự x dòng +Màu hiển thị: đen/trắng +Chế ®é giao tiÕp : bÝt vµ bÝt +Cì chữ hiển thị : 5x7 5x10 Cấu trúc LCD 1a Giới thiệu sơ đồ chân LCD _ LCD có tổng số 14 chân chia làm nhãm: Nhãm 1: (3 ch©n) CÊp nguån VDD, VSS : cấp 5V, 0V VEE: thay đổi điện áp để thay đổi độ tơng phản Nhóm 2: (8 chân) Vào thông tin với VĐK : Từ chân D0-D7 Nhóm : (3 chân) Điều khiển việc vào thông tin : E,RS,R/W E :(bật /tắt ) (cho phép/ không cho phép trao đổi thông tin với VĐK ) RS :(loại thông tin trao đổi)Thông tin trao đổi lệnh điều khiển hay liệu để hiển thị R/W : (hớng truyền thông tin) đọc trạng thái từ LCD hay thông tin VĐK gửi vào LCD để hiển thị Cụ thể tên gọi mô tả chức chân đợc tổng kết bảng sau: Interface Pin Connections Chân Ký Tên số hiệu Cấp nguồn VSS CÊp nguån VDD VEE Contrast RS Chän ghi RW Read/Write E Read Write enable 0V (GND) Nối với dơng nguồn (+4.5V~+5.5V) điều chỉnh điện áp chân tăng giảm độ tơng phản LCD thờng đợc nối với biÕn trë NÕu RS=0 : LCD nhËn lƯnh tõ V§K Nếu RS=1: LCD nhận liệu từ VĐK để hiển thị Chọn chức ghi/ đọc RS=1 : chọn chức đọc liệu từ LCD vào VĐK RS=0 : chọn chức ghi liệu từ VĐKvào LCD để hiểnt thị Cho phép/ ko cho phép LCD trao đổi thông tin với VĐK Chỉ E chuyển từ 10 tín hiệu chân D0-D7 đợc đa vào LCD D0 Mô tả chức D1 D2 10 D3 11 D4 12 D5 13 D6 14 D7 Data bus 0-7 chân đợc nối với VĐK để vào/ra thông tin _ Từ đặc điểm chức đà đợc đề cập ta tới việc hình thành việc ghép nối cđa LCD víi vi ®iỊu khiĨn nh sau: Nh hình minh hoạ ta thấy chân D0-D3 đờng tín hiệu chiều (để trao đổi thông tin Vi điều khiển LCD) chân điều khiển RS, R/W, E chân đa tín hiệu điều khiển từ Vi điều khiển tới LCD nên đờng tín hiệu chiều Vì chân Contrast (VEE) điều chỉnh độ tơng phản LCD nên ta cấp nguồn cho thông qua biến trở (nh hình vÏ) 1b CÊu tróc bé nhí LCD Mµn hiển thị LCD nói chung lên tới 40 ký tự dòng có tới dòng.Trong có RAM để chứa mà 80 ký tự gọi nhớ DDRAM(display data ram),màn hiển thị dịch để quan sát đợc ký tự khác Bộ ký tù hiĨn thÞ : Bé hiĨn thÞ cã thĨ hiển thị đợc ký tự đà đợc lập trình trớc ký tự ngời dùng định nghĩa.Trong điều khiển hiển thị có nhớ ROM dùng để phát ký tự, Rom chứa 192 ký tự,khi cần chọn ký tự đợc chọn thông qua mà nó, có tới 96 m· ký tù ASCII, 64 m· ký tù tiÕng Nhật, 32 ký tự đặc biệt khác Trong điều khiĨn LCD cịng cã mét bé RAM gäi lµ CGRAM(character generator ram) bé nhí nµy lu ký tù ngời dùng định nghĩa, ký tự phải viết vào CGRAM trớc sau hiển thị hiển thị đợc Tập lệnh LCD 2a Khả hiển thị LCD LCD có khả hiển thị linh hoạt _ Thiết lập chế độ hiển thị : Hiển thị dòng hay dòng Chọn cỡ chữ hiển thị (5x7 hay5x10) Chọn kiểu trỏ hình (có/không gạch chân , có/không nhấp nháy) _ Thiết lập kiểu trao đổi thông tin : Trao đổi thông tin với Vi điều khiển dùng bit hay bít _ Trình bày nội dung hiển thị Hiển thị ký tự LCD Hiển thị ký tự vị trí LCD Tạo chữ chạy LCD Hiển thị ký tự , biểu tợng , hình vẽ tuỳ ý ngời dùng LCD 2b Tập lệnh LCD Để thực đợc khả hiển thị trên, ta cần lƯnh cho LCD thùc hiƯn c¸c thao t¸c, tøc phải sử dụng tập lệnh LCD Binary Command Hex D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 x 02 or 03 0 0 1/D S 04 to 07 0 0 D U B 08 to 0F (Dịch LCD trỏ) 0 D/C R/L x x 10 to 1F Function Set 0 8/4 2/1 x x 20 to 3F Set CGRAM Address A A A A A 40 to 7F Set Display Address A / D: 1=Increment*, 0=Decrement 1=Display shift on, S: 0=Off* A Clear Display (Xoá hình) Display & Cursor Home Character Entry Mode (Chế độ nhận liệu) Display On/Off & Cursor (bật/tắt LCD vµ kiĨu trá) Display/Cursor Shift D: 1=Display on, 0=Off* U: B: 1=Cursor underline on, 0=Off* 1=Cursor blink on, 0=Off* D / C: 1=Display shift, 0=Cursor move 10 / A 01 A A A A A 80 to FF R / L: / 4: 1=Right shift, 0=Left shift 1=8-bit interface*, 0=4-bit interface / 1: 1=2 line mode, 0=1 line mode* 10 / 7: 1=5x10 dot format, 0=5x7 dot format* x = Don't care * = Initialization settings Chó thÝch b¶ng lƯnh: Ký hiƯu X 1/D S D U B D/C R/L 8/4 2/1 10/7 Chức §Þa chØ trá DÞch trá sau hiĨn thị Con trỏ đợc gạch chân Con trỏ nhấp nháy Dịch chuyển Chiều dịch chuyển Chế độ trao đổi thông tin Số dòng hiển thị Cỡ chũ Chú thích bít nhị phân (0,1)tuỳ ý 1= tự động tăng; 0= tự động giảm Có (1); Không (0) =1: bật LCD; =0: tắt LCD Có (1); Không (0) Có (1); Không (0) Màn hình (1); Con trỏ (0) Sang phải (1); Sang trái (0) bít (1); bít (0) dòng (1) ; dßng (0) Cì 5x10 (1); Cì 5x7 (0) _ Các lệnh chia làm nhóm : Nhóm 1: Các lệnh thiết lập chế độ hiển thị : Display On/Off & Cursor , Function Set , Character Entry Mode Nhóm 2: Các lệnh điều khiển trình hiển thị (con trỏ hình): Display & Cursor Home , Display On/Off & Cursor , Display/Cursor Shift, Set CGRAM Address, Nhóm 3: Lệnh kiểm tra trạng thái LCD : Set Display Address _ Trên tập lệnh LCD, mà lệnh đợc ®a tõ Vi ®iỊu khiĨn vµo LCD qua ®êng D0-D7 Muốn LCD nhận hiểu tín hiều đa vào lệnh phải sử dụng Nhóm chân Điều khiển việc vào thông tin : E,RS,R/W Khi LCD hiểu tín hiệu đa vào liệu, lệnh kết hợp chân định Các chế độ vào thông tin LCD (kết hợp chân E, RS, R/W) Có chế độ đa thông tin vào LCD (từ vi điều khiển): thông tin đa vào lệnh; Thông tin đa vào liệu để hiển thị Có chế độ đa thông tin khỏi LCD (vào vi điều khiển) : đọc trạng thái hành LCD cho Vi điều khiển biết Điều khiển LCD phải sử dụng linh hoạt chế độ Việc định dùng chế độ vào thông tin chân E, RS,R/W LCD định + Chân E: định việc chấp nhận thông tin chân lại : tín hiệu chân E chun møc tõ  + Ch©n RS định việc nhận lệnh hay liệu Lệnh (RS=0 ); Dữ liệu (RS=1) + Chân R/W định chiều truyền liệu Vào LCD(R/W=0); Ra khỏi LCD (R/W=0) Tổng hợp theo bảng sau: RS 0 Các chế độ vào/ra thông tin RS, R/W định ChÕ ®é R/ W LƯnh gưi tõ Vi ®iỊu khiĨn vào LCD Đọc cờ bận (D7) vị trí trá (D0-D6) cđa LCD D÷ liƯu gưi tõ Vi điều khiển vào LCD Ví dụ muốn hiển thị chữ A LCD ta phải lần lợt qua chế độ sau: Cấp nguồn Đọc trạng thái LCD xem LCD đà sẵn sàng cha Gửi lệnh từ Vi điều khiển vào LCD để thiết lập chế độ hiển thị Gửi mà ký tự cần hiển thị vào LCD Các ứng dụng hiển thị LCD Phần sử dụng tập lệnh LCD đợc xét mục để đạt đợc mục đích hiển thị LCD kết hợp với sử dụng linh hoạt Nhóm chân điều khiển vào thông tin E, RS, R/W 3a Thiết lập chế độ hiển thị cho LCD _ Phần øng dơng c¸c lƯnh : Binary Command Hex D7 Clear Display Display On/Off & Cursor Function Set D6 D5 D4 0 0 0 0 0 8/4 D3 2/1 D2 D1 D0 D 10 / U x B x 01 08 to 0F 20 to 3F _ Đặt vấn đề : Khi LCD modul đợc Reset, trạng thái ban đầu đợc cấp nguồn hình LCD cha có đợc hiển thị Thậm chí , lúc ta cho liệu vào để hiển thị ký tự LCD làm đợc Bởi trớc tiên LCD phải nhận ®ỵc lƯnh ®iỊu khiĨn tríc nã cã thĨ hiĨn thị thông tin Lệnh điều khiển mà ta muốn nói tới lệnh cho LCD bật chế độ hiển thị thiết lập chế độ hiển thị cho LCD (Ví dụ: hiển thị hay dòng, trỏ hiển thị theo dạng ) _ Lệnh Display On/Of and Cursor đợc gửi tới LCD bật chế độ hiển thị LCD đồng thời xác định kiểu trỏ hiển thị Nếu bít D =1 bật LCD (ngợc lại tắt LCD) Nếu bít U=1 trỏ hình đợc gạch chân (và ngợc lại ) Nếu bít B=1 trỏ nhấp nháy (và ngợc lại) Tốt nên chọn kiểu trỏ hiển thị trỏ nhấp nháy có gạch chân để tiện quan sát Muốn , ta sÏ gưi tíi LCD m· lƯnh sau : 00001111($0F) Cơ thĨ c¸c thao t¸c nh sau : RS ®Ĩ ë møc logic (LCD ho¹t ®éng ë chÕ ®é nhËn lƯnh), R/W = (trun d÷ liƯu tõ vi điều khiểu vào LCD) đờng vào D0-D7 đợc đặt là: 00001111 ($0F)) Sau để chân E cã chun møc “1”vỊ “0” ë møc cao (cho phép LCD nhận liệu) Sau thao tác đợc thực hiện, trỏ nhấp nháy, có gạch chân xuất hiên góc bên trái hình LCD _ Lệnh Function Set: Nếu muốn LCD hiển thị dòng Ta dùng câu lệnh Function Set.Lệnh xác định LCD trao đổi thông tin với bên đờng hay đờng liệu, độ phân giải 5x10 hay 5x7 NÕu bÝt 8/4 =1 th× LCD sÏ dïng bÝt D0-D7 để trao đổi thông tin với Vi điều khiển (nếu =0 dùng bit thôi) Nếu bít 2/1=1 LCD hiển thị dòng (nếu =0 hiển thị dòng ) Nếu bít 10/7=1 ký tự đợc hiển thị với cỡ chữ 5x10 (nếu =0 cỡ chữ 5x7) 10 12 3c Hiển thị ký tự vị trí LCD _Phần ứng dụng c¸c lƯnh: Binary Command Set Display Address Hex D7 D6 A D5 A D4 A D3 A D2 A D1 A D0 A 80 to FF _ Đặt vấn đề: Khi LCD bắt đầu đợc hoạt động, sau đợc thiết lập kiểu hiển thị, ta thấy LCD có trỏ đầu dòng (đây gọilà địa $00) Mỗi ký tự, biểu tợng đợc hiển thị, trỏ lại dịch sang phải vị trí (tức sang địa $01, $02) Sự tự động tăng địa trỏ nh đà tạo thuận tiện hiển thị chuỗi ký tự LCD ta không cần phải định địa hiển thị cho ký tự Nhng ta không muốn hiển thị chuỗi ký tự vị trí đầu dòng nữa, mà muốn hiển thị từ vị trí , lúc ta phải cho LCD biết địa hiển thị thông qua lệnh Set Display Address _ LƯnh Set Display Address : LƯnh nµy sÏ đặt trỏ hình vị trí (có toạ độ xác định 0AAAAAAA) hình Sau ta cho hiển thị chữ vị trí trỏ _ Các định địa hình LCD Ta biết địa đặt trỏ nhận giá trị khoảng $00-$7F tức 128 địa Nhng thực tế (do kích thờc LCD )chỉ có 80 địa đợc xác định, 40 địa cho dòng 40 địa lại cho dòng dới Chỉ có LCD loại 40x2 hàng dùng hết 80 địa đó, loại LCD nhỏ (nh ta xét ) không dùng hết 80 địa Cách định địa hiển thị LCD đợc minh hoạ theo hình sau: _ Vì Set Display Address lệnh nên LCD phải làm việc chế độ lệnh từ Vi điều khiển gửi vào LCD _ Ví dụ : muốn hiển thị chữ A LCD vị trí số 10 dòng ($0A hay 00001010) ta làm nh sau: Đặt chân RS=0 , R/W=0 Đặt mà 10001010 vào chân D0-D7 Tạo cho chân E chun møc “1” vỊ “0” Sau bíc nµy, trá vị trí $0A Giờ hết chế độ nhận lệnh, ta thiết lập chế độ nhân liệu : RS=1, R/W=0 Đặt mà hoá ký tự A (00010100) vào D0-D7 Tạo cho E chuyển trang thai Ngay sau đó, ta thấy chữ A vị trí số 10 dòng 13 Định địa LCD 20ký tự x4 dòng Định địa LCD 16ký tự x2 dòng 3d Hiển thị chữ chạy LCD _ Phần øng dơng c¸c lƯnh : Binary Command Display/Cursor Shift Hex D7 D6 D5 D4 D3 D/C D2 R/L D1 x D0 x 10 to 1F _ Đặt vấn đề: Tuỳ vào kích thớc LCD mà số lợng ký tự hiển thị LDC bị hạn chế Nhng hầu hết LCD có chức dịch chuyển khối ký tự đợc hiển thị sang trái sang phải Điều giúp ích nhiều nội dung cần hiển thị lớn cửa số LCD, làm cho hiển thị LCD trở nên sinh động Muốn , ta dùng lệnh Cursor/Display Shift _ LÖnh Cursor/Display Shift NÕu D/C=1 LCD sÏ dịch chuyển hình (nếu =0 LCD dịch chuyển trỏ) Nếu R/L=1 LCD dịch chuyển sang phải (nếu =0 dịch sang trái) 14 _ Ví dụ: Sau ta xÐt thĨ vÝ dơ dÞch chun khối ký tự LCD: Nhập lệnh vào LCD để thiết lập trạng thái ban đầu (hiển thị dòng, trỏ nhấp nháp có gạch chân ) (lệnh Function Set, Display On/Off and Cursor ), sau truyền liệu vào LCD , ta truyền cho LCD 26 ký tù tõ A-Z (truyÒn m· tõ 01000001 – 01011010 tức từ $41-$5A) Tuy nhiên LCD ta quan sát đợc 16 ký tự dòng , từ A-P Những ký tự lại trỏ bị khuất bên phải nên ta không quan sát đợc Giờ ta dùng lệnh Cursor/Display Shift để dịch khối 26 ký tự sang trái để nhìn đợc ký tự lại trỏ Mỗi lần lệnh Cursor/Display Shift đợc nhập vào LCD, khối 26 ký tự dịch vị trí Cứ liên tục nhập lệnh vào LCD, sau thời gian ta nhìn đợc ký tự Z, sau trỏ đợc hiển thị Vẫn tiếp tục nhập lệnh dịch chuyển vào ta lại thấy ký tự đầu (A,B ) đợc hiển thị nh thể khối 26 ký tự đợc quay vòng quanh - cách LCD thực hiên lệnh Cursor/Display Shift- Vì nhận lệnh LCD không thay đổi địa ký tự , mà dịch chuyển khối địa LCD sang trái hay sang phải _ Lệnh Cursor/Display Shift có tác dụng đối dịch chuyển ký tự nh đà trình bày , đợc dùng để dịch chuyển trỏ hiển thị Dùng lệnh trá sÏ gióp ta chØnh sưa néi dung t¹i địa sổ hiển thị 3e Con trỏ sở _ Phần ứng dụng lÖnh: Binary Command Clear Display Display & Cursor Home Hex D7 0 D6 0 D5 0 D4 0 D3 0 D2 0 D1 D0 x 01 02 or 03 _Đặt vấn đề: Sau thực chữ chạy LCD, ta thấy hệ thống địa hình LCD đà bị dịch chuyển Có cách nhanh để đa hệ thống địa trở dạng chuẩn nh ban đầu không? Đây lúc ta dùng lÖnh Display and Cursor Home, Clear Display _ LÖnh Cursor Home : vừa có tác dụng đa trỏ địa ($00), vừa có tác dụng kéo ®Þa chØ cđa khèi ®Þa chØ cđa LCD vỊ vị trí góctrái dòng đàu tiên _ Lệnh Clear Display có tác dụng lệnh Cursor Home , có tác dụng xoá tất nội dụng vừa đợc hiển thị LCD 3f Chế độ nhận liệu _Phần øng dơng lƯnh: 15 Binary Command Character Entry Mode Hex D7 D6 D5 D4 D3 D2 D1 1/D D0 S 04 to 07 _ Đặt vấn đề: Nh trờng hợp ta xét trên, ký tự đợc nhập vào, sau LCD hiển thị ký tự trỏ tự động tăng địa lên Tuy nhiên thiết lúc phải hiển thị theo cách đó, tức sau hiển thị trỏ tự động giảm địa HÃy xét ví dụ cụ thể hình hiển thị máy tính điện tử bỏ túi bình thờng Khi bật máy có số góc bên phải hình Sau ngời dùng nhập số vào, sau hiển thị số đó, trỏ lại tự động dịch sang trái (tức giảm địa chØ cđa nã) Cø nh vËy, cµng nhiỊu ký tù đợc nhập vào trỏ sang bên trái (tức địa gảm) Bây ta làm cho hình LCD ta hoạt động nh choc hình máy tính điện tử Đó hiệu việc sử dơng lƯnh Character Entry Mode _ LƯnh Character Entry Mode : Nếu S=1 trỏ tự động dịch địa sau hiển thị (nếu=0 không dịch) Nếu 1/D=1 địa trỏ tự động tăng tức trỏ dịch sang phải sau hiển thị (nếu =0 dịch sang trái) _ Thực lần lợt bớc sau: Nhập lệnh thích hợp (Function Set, Display On/Off and Cursor)vào LCD để thiết lập chế độ ban đầu cho LCD, dùng dòng để hiển thị, định địa hiển thị $10 (lệnh Set Display Address ) Sau ®ã gưi lƯnh Character Entry Mode vào LCD mà nhị phân là: 00000111 ($07) Lệnh thiết lập chế độ hiển thị- dịch trái cho LCD (tức sau hiển thị trỏ dịch sang trái) Mọi công việc chuẩn bị va thiết lập chế độ đà hoàn tất Giờ việc nhập số hay ký tự vào LCD để kiểm tra kiết Nhập liệu vào LCD Ta nhập số từ 0-9 (mà hoá từ 00110000 đến 00111001 ($30 đến $39 )) Ta they LCD hoạt động nh hình hiển thị máy tính điện tử Sau số đợc hiển thị, trỏ dịch sang trái để chờ hiển thị số _ bảng lƯnh cđa LCD ta they r»ng lƯnh cã thĨ nhËp vào LCD với cách mà hoá khác từ 00000100 đến 00000111 ($04 đến $07) Mỗi cách mà hoá đáp ứng nhu cầu đời sống thực tế (nh hình máy tính điện tử chẳng hạn) 3g Hiển thị ký tự tuỳ ý LCD theo định nghĩa ngời dùng _ Phần ứng dơng lƯnh: Command D7 D6 D5 Binary D2 D1 D0 Hex 16 D4 Set CGRAM Address A D3 A A A A A 40 to 7F _ LÖnh Set CGRAM Address : khởi động chức hiển thị ký tự , hình dạng theo định nghĩa riêng ngời sử dụng LCD cho phép định nghĩa tối đa ký tự ngời dùng _ Các bớc thực hiện: Ví dụ muốn hiển thị hình ngời nh minh hoạ ta phải lần lợt thực bớc sau: Thiết lập chế độ làm việc cho LCD Gưi lƯnh Set CGRAM Address ®Õn Vi ®iƯu khiĨn (m· lệnh từ $04-$78) từ lúc trở đi, liệu đợc truyền vào tạo nên hiển thị theo ý ngêi dïng theo tõng dßng NhËp dòng mà nhị phân để hiển thị đợc nh y muèn (00001110, 00010001, 00001110, 00000100, 00011111, 00000100, 00001010, 00010001 ($0E, $11, $0E, $04, $1F, $04, $0A, $11) ) Sau LCD nhận dòng vào này, hình đợc hình LCD Nếu gỉ dòng bít vào ta đợc ký tự , hình vẽ khác _ Chú ý CGRAM nhớ tạm thời, điện Vì nối LCD với Vi điều khiển, dòng bit phải đợc lu sẵn bé nhí ROM cđa Vi diỊu khiĨn, nµo dïng tới định nghĩa đợc gọi 3g LCD trao đổi với bên bit _ Phần nµy sÏ øng dơng lƯnh : Binary Command Function Set Hex D7 D6 D5 D4 D3 8/4 2/1 D2 10 / D1 x D0 x 20 to 3F _ Đặt vấn đề: 17 Trong thực tế thờng gặp LCD đợc điều khiển bsằng loại Chip bit Trong LCD co đờng vào liệu Vì ta phải xem xét khả làm việc với LCD mà dùng đờng liệu (để tơng thích với loại Vi Điều Khiển bit) bit đợc gọi nửa byte chế độ bit, dùng bit để trao đổi thông tin? Trả lời: dùng bit cao D4-D7 để trao đổi thông tin $ bit thấp lại D0-D3 phải tuân thủ cách xử lý sau: bit không sử dụng phải thả tự nối với cực thông qua điện trở 4k7-47k Tuyệt đối không đợc nối chân không sử dụng trực tiếp với đất làm cho LCD hiểu nhầm dùng bít để trao đổi liệu (4 bit D0-D3 0000) Để LCD làm việc chế độ giao tiếp bit việc phải thiết lập (ra lệnh cho LCD) chọn chế độ lµm viƯc bit (dïng lƯnh Function Set ) Nhng có vấn đề nảy sinh lệnh đợc đa vào LCD bit D4-D7 mà thôi, bít thấp thay đổit giá trị tuỳ ý đợc Nhng thật may mắn lƯnh Function Set bÝt lƯnh cho LCD lµm việc chế độ bit bit , cần gửi tới LCD mà lệnh 00100000 đà thiết lập đợc chế độ trao đổi thông tin bit Sau thiÕt lËp chÕ ®é trao đổi thông tin4 bit, kể từ lúc lệnh liệu đợc gửi tới LCD phải chia làm phần : bít phần cao gửi trớc, sau gửi bít phần thấp Mỗi lần gửi thông tin tới LCD phải cấp cho chân E xung dơng Nh số lần gửi chế độ bit gấp lần số lần gửi chế độ bit, nên số xung dơng cần cấp cho chân E gấp đôi 3h.Đọc thông tin LCD _ Phần ứng dơng lƯnh: Binary D7 D6 D5 D4 D3 Read Data High D D D D D Read Status Low BF A A A A D: Character data at current cursor address A: Current cursor address ($00 to $7f) BF: Busy Flag (0 = Ready, = Busy) Instruction RS D2 D A D1 D A D0 D A Table 6: HD44780 Read Instructions _ LƯnh : Cê bËn cđa LCD đợc đọc đờng D7 Nếu D7=1 tức LCD thực lệnh cha sẵn sàng để nhân thông tin từ VI diều khiển (nếu D7=0 tức LCD đà sẵn sàng chờ thông tin) bit A mà hoá vị trí trỏ hình, đợc đọc chân D0-D6 _ Các thông tin trạng thái báo Vi điều khiển để VĐK đợi LCD hết bận gửi lệnh _ Chú ý LCD phải để chế ®é ®äc th«ng tin : RS=1, R/W=1 18 3g Chu trình thời gian LCD Cần để ý tới thời gian LCD thực lệnh để tạo khoảng thời gian trễ thích hợp lập trình Assembly Khoảng thời gian trễ có tác dụng đợi để LCD thùc hiƯn xong lƯnh tríc råi míi gưi lƯnh Sau cấp nguồn cho LCD phải đợi LCD khởi động xong hoàn toàn, ta chèn vào thời gian trễ Thời gian thực lệnh Quá trình thực lệnh (nhận liệu ) 19 Lập trình Assembly cho Vi Điều Khiển 89C51 Điều khiển hoạt động LCD ; LCD Example Program ; Port = D0-D7 (data port), R/W nèi víi P3.2, Enable nèi víi P3.4, RS nèi víi P3.3 ;***** #INCLUDE "8051EQU.INC" ;include predefined constants ; ; ************************************************************ ************** ; Biến Hằng ; ; Lập nhớ đệm có 16 ô nhớ (đủ cho LCD) ; Để viết ký tự lên LCD, ký tự đợc đa vào đệm sau ; tất bít đợc đồng loạt đa vào LCD B0 EQU 070H ;BUFFER POSITION B1 EQU 071H ; B2 EQU 072H ; B3 EQU 073H ; B4 EQU 074H ; B5 EQU 075H ; B6 EQU 076H ; B7 EQU 077H ; B8 EQU 078H ; B9 EQU 079H ; B10 EQU 07AH ; B11 EQU 07BH ; B12 EQU 07CH ; B13 EQU 07DH ; B14 EQU 07EH ; B15 EQU 07FH ;BUFFER POSITION 16 ; ; ************************************************************ ************** ; ; RESET ;reset routine 20 .ORG 0H ;locate next command at 00H AJMP START ;jump to START (first command of program) ; ; ************************************************************ ************** ; ; INTERRUPTS ;place interrupt routines at appropriate ;memory locations ORG 03H ;external interrupt RETI ORG 0BH ;timer interrupt RETI ORG 13H ;external interrupt RETI ORG 1BH ;timer interrupt RETI ORG 23H ;serial port interrupt RETI ORG 2BH ;locate beginning of rest of program ; ; ************************************************************ ************** ; INITIALIZE: ;set up control registers ; MOV TCON,#00H MOV TMOD,#00H MOV PSW,#00H MOV IE,#00H ;disable interrupts RET ; ; ************************************************************ ************** ; DELAYMS: ;millisecond delay routine ; ;uses R7 21 MOV R7,#00H ;put 00H in register R7 LOOPA: INC R7 ;increment R7 MOV A,R7 ;move R7 to Accumlator CJNE A,#0FFH,LOOPA ;jump to LOOPA if R7 not equal to #FFH RET ;return ; ; ************************************************************ ************** ; DELAYHS: ;half second delay using milsec delay ; ;uses R5 R6 (R7) MOV R6,#00H MOV R5,#002H LOOPB: INC R6 ACALL DELAYMS MOV A,R6 JNZ LOOPB DEC R5 MOV A,R5 JNZ LOOPB RET ; ; ************************************************************ ************** ; DELAYS: ;delay for a second or two ; ;uses (R5 R6 R7) ACALL DELAYHS ACALL DELAYHS ACALL DELAYHS ACALL DELAYHS RET ; 22 ; ************************************************************ ************** ; ; ; ************************************************************ ************** ; WRITELCD: SETB P3.4 ;enable LCD ACALL DELAYMS ;wait for write completion CLR P3.4 ;disable LCD RET ; ; ************************************************************ ************** ; EXECUTELCD: CLR P3.3 ;ditto SETB P3.4 ;enable LCD ACALL DELAYMS CLR P3.4 SETB P3.3 ;Make rs=1 RET ; ; ************************************************************ ************** ; LCDSETUP: ; MOV P1,#03CH ;set up LCD bits and lines ACALL EXECUTELCD MOV P1,#00DH ;turn on display and cursor off ACALL EXECUTELCD MOV P1,#006H ;set increment one and shift ACALL EXECUTELCD MOV P1, #02H ; Home Display 23 ACALL EXECUTELCD RET ; ; ************************************************************ *************** ; CLEARBUFFER: ; uses R0 ; MOV R0,#070H CBONE: MOV @R0,#' ' ; put a blank in the memory address specified in R0 INC R0 ; go to next memory address CJNE R0,#080H,CBONE ; stop when address is 80H RET ; ; ************************************************************ *************** ; WRITEBUFFER: ;uses R0 ; MOV R0,#070H WBONE: MOV P1,@R0 ; get character stored in the memory address specified in R0 ACALL WRITELCD INC R0 ; go to next memory address CJNE R0,#080H,WBONE ; stop when address is 80H RET ; ; ; ************************************************************ *************** ; WRITEIguana_Labs: ;write Iguana Labs to LCD ; 24 ACALL CLEARBUFFER MOV B0,#'I' ;write I MOV B1,#'g' ;write g MOV B2,#'u' ;write u MOV B3,#'a' ;write a MOV B4,#'n' ;write n MOV B5,#'a' ;write a MOV B6,#' ' ;write MOV B7,#'L' ;write L MOV B8,#'a' ;write a MOV B9,#'b' ;write b MOV B10,#'s' ;write s ACALL WRITEBUFFER RET ; ; ************************************************************ *************** ; WRITELCD_Example: ;write Example to LCD ; ACALL CLEARBUFFER MOV B0,#'L' ;write L MOV B1,#'C' ;write C MOV B2,#'D' ;write D MOV B3,#' ' ;write MOV B4,#'E' ;write E MOV B5,#'x' ;write x MOV B6,#'a' ;write a MOV B7,#'m' ;write m MOV B8,#'p' ;write p MOV B9,#'l' ;write l MOV B10,#'e' ;write e ACALL WRITEBUFFER RET ; ; ************************************************************ ************** ; 25 BEGLINEONE: ; MOV P1,#080H ;go to beginning of line one ACALL EXECUTELCD RET ; ; ************************************************************ *************** ; BEGLINETWO: ; MOV P1,#0C0H ;go to beginning of line two ACALL EXECUTELCD RET ; ; ************************************************************ *************** ; CLEARDISPLAY: ; MOV P1,#001H ;clear display ACALL EXECUTELCD ACALL BEGLINEONE ;go to beginning of line one RET ; ; ************************************************************ *************** ; ; ************************************************************ *************** ; START: ;beginning of main program ; MOV SP,#02FH ;initialize stack pointer to 2FH ACALL INITIALIZE ;initialize registers ACALL DELAYHS 26 ... lý LCD _ Đúng nh tªn gäi cđa nã, LCD (Liquid Crystals Display ) - Màn hình tinh thể lỏng - , sở vật lý để LCD hiển thị đợc thông tin , hình ảnh đặc tính vật liệu chế tạo nên LCD, tức Liquid Crystals... thị ký tự LCD HiĨn thÞ ký tù ë vÞ trÝ bÊt kú LCD Tạo chữ chạy LCD Hiển thị ký tự , biểu tợng , hình vẽ tuỳ ý ngời dùng LCD 2b Tập lệnh LCD Để thực đợc khả hiển thị trên, ta cần lệnh cho LCD thực... registers ACALL DELAYHS 26 CLR P3.2 ;make LCD R/W low (Stays low since we are just writing to LCD) ACALL LCDSETUP ;initialize LCD LCDLOOP: ACALL CLEARDISPLAY ; erase LCD screen ACALL DELAYHS ACALL BEGLINEONE

Ngày đăng: 06/08/2014, 10:27

TỪ KHÓA LIÊN QUAN

w