Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
262,94 KB
Nội dung
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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 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 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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 - Bố trí chân và ý nghĩa các chân: + Chân 1: GND + Chân 2: VCC + Chân 3: V EF 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 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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 - 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 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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 - Đị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 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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 - 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 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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 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 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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 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 V EF 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 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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 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 - 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 c. d. e. f. 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. 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); } void LCD_WriteData( unsigned char byte) { LCD_RS = 1; // chon thanh ghi du lieu LCD_RW = 0; LCD_DATA = byte; LCD_E = 1; LCD_E = 0; Delay(N2); } 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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 c. Hàm cho phép di chuyển con trỏ ñến vị trí bất kì trên màn hình LCD1602 - 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); void LCD_Gotoxy( unsigned char row, unsigne d char column) { switch(row) { case 1: LCD_WriteCommand(0x80+column); break; case 2: LCD_WriteCommand(0x80+0x40+column); break; default: break; } } 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 For a better world TECH ® E Hư ớng dẫn thực h ành LCD1602 Đề bài: Hiển thị chuỗi kí tự trên LCD1602 d. Hàm cho phép gửi một chuỗi lưu trong bộ nhớ chương trình ra LCD1602 - 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: void LCD_SendStringFlash( const unsigned char* p) { unsigned char i; i = 0; while(p[i]!=0) { LCD_WriteData(p[i]); i++; Delay(N1); } } …. LCD_SendStringFlash(“ETECH”); … LCD_SendStringFlash(“8051 course”); … [...]... Hư ng d n th c hành LCD1 602 Đ bài: Hi n th chu i kí t trên LCD1 602 void Delay(unsigned int n) { unsigned int i,j; for(i=0;i . Hư ớng dẫn thực h ành LCD1 602 Đề bài: Hiển thị chuỗi kí tự trên LCD1 602 HƯỚNG DẪN THỰC HÀNH LCD 1. Mô tả bài toán: Kết nối AT89S52 với LCD1 602 (LCD 16 cột, 2 hàng). Hiển thị trên LCD dòng. E Hư ớng dẫn thực h ành LCD1 602 Đề bài: Hiển thị chuỗi kí tự trên LCD1 602 3. Hướng dẫn lập trình phần mềm: a. Hàm cho phép gửi lệnh ñến LCD1 602 - LCD_ RS, LCD_ RW… là những. // 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);