Hướng dẫn thực hành LCD
lượt xem 60
download
LCD là một loại vật chất phản xạ ánh sáng khi điện thế thay đổi. Nó hoạt động dựa trên nguyên tắc ánh sáng nền (Back Light). Nó bao gồm một lớp chất lỏng nằm giữa 2 lớp kiếng phân cực ánh sáng. Bình thường, khi không có điện áp, các tinh thể này được xếp thẳng hàng giữa hai lớp cho phép ánh sáng truyền qua theo hình xoắn ốc. Hai bộ lọc phân cực, 2 bộ lọc màu và 2 bộ cân chỉnh sẽ xác định cường độ ánh sáng đi qua và màu nào được tạo ra...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Hướng dẫn thực hành LCD
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world HƯỚNG DẪN THỰC HÀNH LCD 1. Mô tả bài toán: Kết nối AT89S52 với LCD1602 (LCD 16 cột, 2 hàng). Hiển thị trên LCD dòng chữ “ETECH ” 2. Hướng dẫn thiết kế phần cứng: a. Giới thiệu về LCD1602 Là một thiết bị thông dụng dùng để hiển thị thông tin đặc biệt là hiển thị các chữ - cái. LCD1602 có 16 cột và hai hàng, nó có thể hiển thị tối đa 32 kí tự cùng lúc (16 ở hàng trên, 16 ở hàng dưới). Một số hình ảnh về LCD1602: - Page 1 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world Bố trí chân và ý nghĩa các chân: - + Chân 1: GND + Chân 2: VCC + Chân 3: VEF Chân điều khiển độ tương phản + Chân 4: RS (Register Select)Cho phép chọn đến thanh ghi lệnh hoặc thanh ghi dữ liệu Khi RS = 0, 1 byte dữ liệu nào đó gửi đến LCD sẽ được đặt vào thanh ghi lệnh để điều khiển LCD. Khi RS = 1, thì 1 byte dữ liệu nào đó gửi đến LCD sẽ được đặt vào thanh ghi dữ liệu và được hiển thị ra ngoài. + Chân 5: R/W Quy định thao tác là đọc hay ghi. Khi R/W = 0 thao tác được xác lập là ghi. Khi đó có thể gửi dữ liệu đến LCD để hiển thị hoặc điều khiển LCD. Khi R/W = 1 thao tác được xác lập là thao tác đọc. Khi đó có thể đọc về trạng thái của LCD + Chân 6: EN (LCD enable) Chân cho phép LCD làm việc. Muốn LCD làm việc thì chân này phải được đặt ở mức cao (EN =1 à cho phép hoạt động, EN = 0 à cấm hoạt động) + Chân 7 à 16: Là 8 chân dữ liệu song song của LCD từ D0 đến D7. Dữ liệu có thể được gửi đến LCD theo chế độ giao tiếp 8 bít dữ liệu hoặc 4 bít dữ liệu. Trong chế độ giao tiếp 4 bít dữ liệu thì chỉ có 4 đường dữ liệu bít cao (D4àD7) được sử dụng. + Chân 15: Cực Anot của đèn nền Backlight + Chân 16: Cực Katot của đèn nền Backlight Page 2 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world Các lệnh điều khiển LCD1602: Các lệnh điều khiển LCD được nêu trong bảng - sau: Một số lệnh thường sử dụng: Lệnh Mã Xóa màn hình 0x01 Bật chế độ hiển thị, không có gạch chân và nhấp nháy con trỏ 0x0C Đặt chế độ 8 bít dữ liệu, 1 dòng, Font 5x7 0x30 Đặt chế độ 8 bít dữ liệu, 2 dòng, Font 5x7 0x38 Page 3 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world Định địa chỉ: - Khi bật nguồn lên vị trí con trỏ luôn nằm ở cột đầu tiên của dòng thứ nhất. Mỗi lần gửi ra LCD một kí tự thì con trỏ tự động tăng lên một vị trí. Dưới đây là bản đồ địa chỉ của LCD1602: Khi muốn di chuyển con trỏ đến một vị trí bất kì trên màn hình LCD ta lấy địa chỉ của vị trí đó cộng với 0x80 sau đó gửi mã lệnh thu được đến LCD. Ví dụ: + Muốn di chuyển con trỏ đến vị trí ô số 3 hàng 1: ta gửi mã lệnh (0x02 + 0x80) = 0x82 đến LCD. + Muốn di chuyển con trỏ đến vị trí số 5 hàng 2 ta gửi mã lệnh (0x44 + 0x80) = = (0x04 + 0x40 + 0x80) = 0xC4 đến LCD Page 4 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world Bảng mã các chữ cái: - à Tính theo các cột là 4 bít cao, tính theo các hàng là 4 bít thấp trong 8 bít dữ liệu. Cách tra bảng là gióng theo hàng và theo cột để có mã hex của từng kí tự. Page 5 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world à Ví dụ: Muốn hiển thị chữ A trên LCD thì gửi ra mã của nó là 0x41 (4 là cột, 1 là hàng tương ứng của chữ A)… Page 6 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world b. Kết nối LCD1602 với vi điều khiển AT89S52 Căn cứ vào chức năng các chân của LCD1602, kết nối LCD1602 với AT89S52 như sau: + Chân 1 nối GND + Chân 2 nối +5V + Chân VEF nối với 1 biến trở 10K để chỉnh độ tương phản + Chân RS, RW, EN nối với 3 chân của AT89S52 + 8 Chân dữ liệu nối với 1 port của AT89S52 + 2 Chân của đèn nền Backlight kết nối như hình vẽ Page 7 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world 3. Hướng dẫn lập trình phần mềm: a. Hàm cho phép gửi lệnh đến LCD1602 void LCD_WriteCommand(unsigned char byte) { LCD_RS = 0; // chon thanh ghi lenh LCD_RW = 0; //chon thao tac ghi LCD_DATA = byte; LCD_E = 1; //cho phep LCD LCD_E = 0; Delay(N2); } LCD_RS, LCD_RW… là những chân của vi điều khiển tương ứng được nối với - LCD Delay: là một hàm con gây trễ. - à Hàm LCD_WriteCommand cho phép gửi 1 byte lệnh đến để điều khiển LCD. Mã lệnh được lấy trong bảng mã lệnh của LCD. b. Hàm cho phép gửi một kí tự ra LCD1602 void LCD_WriteData(unsigned char byte) { LCD_RS = 1; // chon thanh ghi du lieu c. LCD_RW = 0; d. LCD_DATA = byte; LCD_E = 1; e. LCD_E = 0; f. Delay(N2); } g. à Hàm LCD_WriteData cho phép gửi 1 ký tự ra hiển thị trên LCD. Lưu ý rằng dữ liệu gửi ra LCD phải là mã ASCII của kí tự muốn hiển thị. à Hàm LCD_WriteData hoàn toàn giống với hàm LCD_WriteCommand chỉ khác ở thao tác chọn thanh ghi bằng tín hiệu RS. Page 8 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world c. Hàm cho phép di chuyển con trỏ đến vị trí bất kì trên màn hình LCD1602 void LCD_Gotoxy(unsigned char row,unsigned char column) { switch(row) { case 1: LCD_WriteCommand(0x80+column); break; case 2: LCD_WriteCommand(0x80+0x40+column); break; default: break; } } row: là tham số cho biết số hàng (do người lập trình nhập vào) có giá trị là 1 - hoặc 2 (LCD1602 chỉ có 2 hàng) column: là tham số cho biết số cột (do người lập trình nhập vào), có giá trị từ 0 - đến 15 (LCD1602 có 16 cột tính từ 0 đến 15) Lệnh điều kiện switch lựa chọn 1 trong 2 trường hợp: - + Nếu là hàng 1: thì địa chỉ là (0x80 + số thứ tự cột) + Nếu là hàng 2: thì địa chỉ là (0x80 + 0x40 + số thứ tự cột) à Ví dụ: Muốn hiển thị ở vị trí thứ 2 hàng 1 chỉ cần viết: LCD_Gotoxy(1,2); Page 9 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world d. Hàm cho phép gửi một chuỗi lưu trong bộ nhớ chương trình ra LCD1602 void LCD_SendStringFlash(const unsigned char* p) { unsigned char i; i = 0; while(p[i]!=0) { LCD_WriteData(p[i]); i++; Delay(N1); } } Các biến khai báo với từ khóa const là các hằng số. Nội dung của các biến này - không thể thay đổi được sau khi đã gán cho nó một giá trị đầu. Mỗi chuỗi kí tự trong c đều kết thúc bằng kí tự NULL có mã ASCII. Không có bất - kì kí tự nào có mã ASCII trùng với nó. Chương trình này kiểm tra các phần tử của mảng p (do người lập trình nhập - vào). Nếu phần tử hiện tại chưa phải là kết thúc mảng thì gửi ra hiển thị trên LCD, khi đã kết thúc mảng thì thoát. Một số ví dụ về gửi mảng trong bộ nhớ chương trình: - …. LCD_SendStringFlash(“ETECH”); … LCD_SendStringFlash(“8051 course”); … Page 10 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world e. Hàm cho phép gửi một chuỗi lưu trong bộ nhớ dữ liệu ra LCD1602 void LCD_SendString(unsigned char* p) { unsigned char i; i = 0; while(p[i]!=0) { LCD_WriteData(p[i]); i++; Delay(N1); } } Hàm này khác hàm trên là mảng p có thể thay đổi được giá trị một cách tùy ý. Vì - thế các phần tử của mảng p phải được lưu trong bộ nhớ RAM. Ví dụ: - … unsigned char RAMstring[]="etech.com.vn"; … LCD_SendString(RAMstring); … Mảng RAMString được khởi tạo giá trị đầu = “etech.com.vn” tuy nhiên đây là mảng lưu trong RAM nên nội dung của nó có thể thay đổi được trong chương trình. Lệnh LCD_SendString(RAMstring); gửi toàn bộ nội dung của mảng RAMString lên hiển thị trên LCD Page 11 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world Trở lại bài toán f. Bài toán chỉ có một yêu cầu là hiển thị trên LCD dong chữ ETECH do đó CPU - chỉ phải thực hiện 1 nhiệm vụ là điều khiển LCD Do LCD có thể lưu trữ được dữ liệu cho nên hàm hiển thị chữ ETECH chỉ cần - thực hiện một lần. Thời gian thực hiện rất nhanh Dùng cổng vào ra song song để kết nối với LCD cho nên CPU phải điều khiển - (Không có ngoại vi nào điều khiển được cổng vào ra song song thay CPU) Viết lưu đồ: - Page 12 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world Code mẫu: - #include "8051module.h" // khai bao bien va hang so #define N1 200 #define N2 5 // khai bao cac ham void Delay(unsigned int); void LCD_WriteCommand(unsigned char); void LCD_WriteData(unsigned char); void LCD_SendStringFlash(const unsigned char*); void LCD_Gotoxy(unsigned char,unsigned char); // dinh nghia cac ham void main() { // cam LCD LCD_E = 0; // khoi tao LCD Delay(100); LCD_WriteCommand(0x30); LCD_WriteCommand(0x30); LCD_WriteCommand(0x30); LCD_WriteCommand(0x0C); LCD_WriteCommand(0x38); LCD_WriteCommand(0x01); //Gửi chuỗi ETECH LCD_Gotoxy(1,5); LCD_SendStringFlash("ETECH"); while(1); } //============================================= Page 13 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world void Delay(unsigned int n) { unsigned int i,j; for(i=0;i
- Hướng dẫn thực hành LCD1602 ® E TECH Đề bài: Hiển thị chuỗi kí tự trên LCD1602 For a better world //============================================= void LCD_SendStringFlash(const unsigned char* p) { unsigned char i; i = 0; while(p[i]!=0) { LCD_WriteData(p[i]); i++; Delay(N1); } } //============================================= void LCD_Gotoxy(unsigned char row,unsigned char column) { switch(row) { case 1: LCD_WriteCommand(0x80+column); break; case 2: LCD_WriteCommand(0x80+0x40+column); break; default: break; } } Page 15 of 15 Trung tâm nghiên cứu, đào tạo và phát triển công nghệ điện tử ETECH Địa chỉ: số 4 ngõ 524 Bạch Đằng – Hà Nội Phone: 04.66519449 / 01675562699 Email: info@etech.com.vn, kythuatvixuly@gmail.com
CÓ THỂ BẠN MUỐN DOWNLOAD
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn