1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO ĐỀ TÀI HIỂN THỊ LCD SỬ DỤNG 8051 HỌC VIỆN KỸ THUẬT MẬT MÃ

33 138 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

Ngày nay khoa học kỹ thuật đang phát triển hết sức mạnh mẽ, đặc biệt là lĩnh vực điều khiển và tự động hóa. Để tăng tính năng điều khiển, các bộ vi điều khiển đã không ngừng được cải tiến và nâng cấp. Và một trong những họ vi điều khiển đang được ứng dụng rộng rãi ngày nay là họ vi điều khiển 8051. Các bộ vi điều khiển thuộc họ 8051 đầu tiên ra đời vào năm 1981. Các bộ vi điều khiển này mới chỉ có 128byte Ram, 4Kb Rom, 2 bộ định thời, một cổng nối tiếp và 4 cổng vào ra. Tất cả được đặt trên cùng 1 chip. Và của nhiều hãng sản xuất như vi điều khiển 8052, …Họ vi điều khiển 8051 được ứng dụng trong thực tế rất phổ biến như ứng dụng để điều khiển động cơ, điều khiển led, điều khiển đèn giao thông, làm bộ đếm sản phẩm, …trong nhiều ứng dụng đó nhóm sinh viên chúng em gồm 8 bạn đã tham gia vào thực hiện đề tài “Hiển thị LCD sử dụng 8051 bằng Miltisim và Keil”. Trong quá trình thực hiện làm do chúng em chưa có kinh nghiệm nhiều nên còn thiếu sót mong thầy (cô) chỉ dạy chúng em thêm trong những lần tiếp theo để chúng em thực hiện đề tài thành công hơn. GVHD: ĐẶNG VĂN HẢI LẠI THỊ HỒNG NHUNG SVBC:HOÀNG TRUNG KIÊNMAI THI HƯƠNG GIANGLƯU THANH SƠNHOÀNG ĐÌNH HẢIBÙI THỊ NGỌC TRÂMNGUYỄN VĂN HIỀNDƯƠNG TÙNG LÂMLÊ VĂN ĐẠT

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA ĐIỆN TỬ - VIỄN THÔNG - - BÁO CÁO ĐỀ TÀI HIỂN THỊ LCD SỬ DỤNG 8051 GVHD: ĐẶNG VĂN HẢI LẠI THỊ HỒNG NHUNG SVBC: HOÀNG TRUNG KIÊN MAI THI HƯƠNG GIANG LƯU THANH SƠN HỒNG ĐÌNH HẢI BÙI THỊ NGỌC TRÂM NGUYỄN VĂN HIỀN DƯƠNG TÙNG LÂM LÊ VĂN ĐẠT SINH VIÊN KHÓA Hà Nội, ngày 07 tháng 10 năm 2019 Lời nói đầu: Ngày khoa học kỹ thuật phát triển mạnh mẽ, đặc biệt lĩnh vực điều khiển tự động hóa Để tăng tính điều khiển, vi điều khiển không ngừng cải tiến nâng cấp Và họ vi điều khiển ứng dụng rộng rãi ngày họ vi điều khiển 8051 Các vi điều khiển thuộc họ 8051 đời vào năm 1981 Các vi điều khiển có 128byte Ram, 4Kb Rom, định thời, cổng nối tiếp cổng vào Tất đặt chip Và nhiều hãng sản xuất vi điều khiển 8052, … Họ vi điều khiển 8051 ứng dụng thực tế phổ biến ứng dụng để điều khiển động cơ, điều khiển led, điều khiển đèn giao thông, làm đếm sản phẩm, …trong nhiều ứng dụng nhóm sinh viên chúng em gồm bạn tham gia vào thực đề tài “Hiển thị LCD sử dụng 8051 Miltisim Keil” Trong trình thực làm chúng em chưa có kinh nghiệm nhiều nên cịn thiếu sót mong thầy (cơ) dạy chúng em thêm lần để chúng em thực đề tài thành công MỤC LỤC CHƯƠNG 1: TÌM HIỂU YÊU CẦU ĐỀ TÀI CHƯƠNG 1.1 GIỚI THIỆU VỀ 8051 1.1.1 SƠ LƯỢC VỀ LỊCH SỬ 1.1.2 CẤU TRÚC VI ĐIỀU KHIỂN 8051 1.1.2.1 TỔ CHỨC BỘ NHỚ 1.1.2.2 CÁC THANH GHI ĐĂC BIỆT 1.1.2.3 SƠ ĐỒ CHÂN CHƯƠNG 1.2: GIỚI THIỆU VỀ LCD 1.2.1 GIỚI THIỆU SƠ LƯỢC VỀ LCD 1.2.2 SƠ ĐỒ, CHỨC NĂNG, LIÊN KẾT CHÂN CÁC CHÂN CỦA LCD CHƯƠNG 2: THỰC HIỆN MƠ HÌNH ĐÊ TÀI CHƯƠNG 2.1 MẠCH NGUN LÝ CHƯƠNG 2.2 MẠCH LAYOUT, 3D CHƯƠNG 2.3 CODE CHƯƠNG 1: TÌM HIỂU ĐỀ TÀI 1.1 GIỚI THIỆU VỀ 8051 1.1.1 SƠ LƯỢC VỀ LỊCH SỬ Intel 4004 vi xử lý thương mại hóa Intel năm 1971 Vi điều khiển 4004 năm sau đó, Intel mắt vi điều khiển 8-bit với mã 8051 Khi vi điều khiển trở nên phổ biến, Intel cho phép hãng khác tung biến thể dựa 8051 Tuy nhiên chương trình nạp cho 8051 không thay đổi, cần viết lần chạy biến thể dịng 8051 Vi điều khiển 8051 Các tính vi điều khiển 8051: – 64Kb ROM – program memory – 128byte RAM – data memory – register bank – 128 flag – người dùng tự define – data bus chiều, 8-bit – address bus chiều 16-bit – 32 ghi đa dụng 8-bit – định thời 16-bit – internal external interrupt – port 8-bit – Thanh ghi PC DP 16-bit – UART, ADC, … Sơ đồ tổng quát khối chức 8051: Các anh em 8051: 8052: vi điều khiển 8052 chứa tất đặc tính 8051 bổ sung thêm 128byte RAM, 4Kb ROM định thời 8031: Khơng có sẵn ROM Để sử dụng, bạn phải tự thêm ROM cho 8031 Bên cạnh đó, có port 8-bit thay port 8051 Sau bảng so sánh thông số anh em nhà 8051: 1.1.2 CẤU TRÚC VI ĐIỀU KHIỂN 8051 1.1.2.1 TỔ CHỨC BỘ NHỚ Các vi điều khiển thuộc họ 8051 tổ chức thành khơng gian chương trình liệu, hình hình mơ tả điều Kiến trúc vi xử lý bit 8051 cho phép truy nhập tính tốn nhanh khơng gian liệu nhờ việc phân chia không gian nhớ chương trình liệu Tuy nhiên nhớ truy nhập hệ thống 16 bit địa thực nhờ ghi trỏ Bộ nhớ chương trình (ROM, EPROM) nhớ đọc, mở rộng tối đa 64Kbyte Với họ vi điều khiển 89xx, nhớ chương trình tích hợp sẵn chip có kích thước nhỏ 4kByte Với vi điều khiển khơng tích hợp sẵn nhớ chương trình chip, buộc phải thiết kế nhớ chương trình bên ngồi Ví dụ sử dụng EPROM: 2764 (64Kbyte), chân PSEN phải mức tích cực (5V) Hình 1: Cấu trúc vi điều khiển 8051 Bộ nhớ liệu (RAM) tồn độc lập so với nhớ chương trình Họ vi điều khiển 8051 có nhớ liệu tích hợp chip nhỏ 128byte mở rộng với nhớ liệu lên tới 64kByte Với vi điều khiển khơng tích hợp ROM chip có RAM chip 128byte Khi sử dụng RAM ngoài, CPU đọc ghi liệu nhờ tín hiệu chân RD WR Khi sử dụng nhớ chương trình nhớ liệu bên ngồi buộc phải kết hợp chân RD PSEN cổng logic AND để phân biệt tín hiệu truy xuất liệu ROM hay RAM ngồi Bộ nhớ chương trình: Hình 2: Cấu trúc nhớ chương trình Bộ nhớ liệu: Hình 3: Địa ngắt nhớ chương trình Hình mơ tả cấu trúc nhớ chương trình Sau khởi động, CPU bắt đầu thực chương trình vị trí 0000H Hình mơ tả địa ngắt mặc định nhớ chương trình Mối xảy ngắt, trỏ CPU nhảy đến địa ngắt tương ứng thực thi chương trình Ví dụ ngắt ngồi có địa 0003H, xảy ngắt ngồi trỏ chương trình nhảy đến địa 0003H để thực thi chương trình Nếu chương trình ứng dụng khơng xử dụng đến ngắt ngồi địa 0003H dùng cho mục đích khác (sử dụng cho nhớ chương trình) Bộ nhớ liệu: Hình 4: Cấu trúc nhớ liệu Hình mơ tả cấu trúc nhớ liệu nhớ liệu họ vi điều khiển 8051 CPU dùng đến chân RD WR truy cập đến nhớ liệu ngồi Hình mơ tả cấu trúc nhớ liệu chip, chia thành khối 128 byte thấp, 128 byte cao 128 byte đặc biệt Hình 5: Cấu trúc nhớ Hình mơ tả cấu trúc 128 byte thấp nhớ liệu họ vi điều khiển 8051 32 byte (00H-1FH) sử dụng cho ghi R0-R7 Hai bit ghi đặc biệt PSW lựa chọn ghi mà vi điều khiển dùng thực thi chương trình Hình 6: Cấu trúc 128 byte thấp nhớ liệu 8051 chứa 210 vị trí bit định địa 128 bit chứa byte địa từ 20H đến 2FH (16 byte x bit = 128 bit) phần lại chứa ghi đặc biệt Ngồi 8051 cịn có port xuất/nhập định địa bit, điều làm đơn giản việc giao tiếp phần mềm với thiết bị xuất/nhập đơn bit Vùng RAM đa mục đích có 80 byte đặt địa từ 30H đến 7FH, bên vùng từ địa 00H đến 2FH vùng nhớ sử dụng tương tự Bất kỳ vị trí nhớ vùng RAM đa mục đích truy xuất tự cách sử dụng kiểu định địa trực tiếp gián tiếp Bất kỳ vị trí nhớ vùng RAM đa mục đích truy xuất tự cách sử dụng kiểu định địa trực tiếp gián tiếp Cũng ghi từ R0 đến R7, ta có 21 ghi chức đặc biệt SFR chiếm phần Ram nội từ địa 80H đến FFH Cần lưu ý tất 128 địa từ 80H đến FFH định nghĩa mà có 21 địa định nghĩa Hình 7: 128 byte cao nhớ liệu 1.1.2.2 CÁC THANH GHI ĐẶC BIỆT Hình 8: Các ghi đặc biệt Thanh ghi chính: Thanh ghi tính tốn vi điều khiển 8051 ACC (Accumulator) Là ghi đặc biệt 8051 dùng để thực phép tốn CPU, thường kí hiệu A Thanh ghi phụ: Thanh ghi tính tốn phụ vi điều khiển 8051 B Thanh ghi B địa F0H dùng chung với chứa A phép toán nhân, chia Lệnh MUL AB nhân số bit không dấu chứa A B chứa kết 16 bit vào cặp ghi B, A (thanh chứa A cất byte thấp ghi B cất byte cao) Lệnh chia DIV AB chia A B, thương số cất chứa A dư số cất ghi B Thanh ghi B xử lý ghi nháp Các bit định địa ghi B có địa từ F0H đến F7H Thanh ghi trạng thái chương trình (PSW): Thanh ghi trạng thái chương trình PSW (địa chỉ: D0H) ghi mơ tả tồn trạng thái chương trình hoạt động hệ thống Bảng Bảng mô tả ghi Để hiển thị chữ số, gửi mã ASCII chữ từ A đến Z, a đến f số từ 0~9 đến chân bật RS=1 Cũng mã lệnh mà gửi đến LCD để xóa hình đưa trỏ vị trí đầu dịng nhấp nháy trỏ Chúng ta sử dụng RS=0 để kiểm tra bit cờ bận để xem LCD có sẵn sàng nhận thông tin Cờ bận D7 đọc R/W=1 RS=0 sau: Nếu R/W=1, RS=0 D7=1(cờ bận 1) LCD bận công việc bên không nhận thơng tin Khi D7 LCD sẵn sàng nhận thông tin Lưu ý nên kiểm tra cờ bận trước ghi bất khì liệu lên LCD > Cờ báo bận BF: (Busy Flag) Khi thực hoạt động bên chíp, mạch nội bên cần khoảng thời gian để hoàn tất Khi thực thi hoạt động bên chip thế, LCD bỏ qua giao tiếp với bên ngồi bật cờ BF (thơng qua chân DB7 có thiết lập RS=0, R/W=1) lên để báo cho MPU biết “bận” Dĩ nhiên, xong việc, đặt cờ BF lại mức > Bộ đếm địa AC: (Address Counter) Như sơ đồ khối, ghi IR không trực tiếp kết nối với vùng RAM (DDRAM CGRAM) mà thông qua đếm địa AC Bộ đếm lại nối với vùng RAM theo kiểu rẽ nhánh Khi địa lệnh nạp vào ghi IR, thông tin nối trực tiếp cho vùng RAM việc chọn lựa vùng RAM tương tác bao hàm mã lệnh Sau ghi vào (đọc từ) RAM, đếm AC tự động tăng lên (giảm đi) đơn vị nội dung AC xuất cho MPU thơng qua DB0-DB6 có thiết lập RS=0 R/W=1 (xem bảng tóm tắt RS - R/W).  Lưu ý: Thời gian cập nhật AC khơng tính vào thời gian thực thi lệnh mà cập nhật sau cờ BF lên mức cao (not busy), lập trình hiển thị, bạn phải delay khoảng tADD khoảng 4uS-5uS (ngay sau BF=1) trước nạp liệu 18 Tóm tắt lệnh ghi vào LCD Danh sách lệnh tô màu khác nhau, lệnh màu đỏ dùng thường xuyên lúc hiển thị LCD lệnh màu xanh thường dùng lần lúc khởi động LCD, riêng lệnh Read BF dùng khơng tùy theo cách viết chương trình wait_LCD Phần giải thích ý nghĩa lệnh tham số kèm theo chúng + Trước tìm hiểu tập lệnh LCD, sau vài ý giao tiếp với LCD: * Tuy sơ đồ khối LCD có nhiều khối khác nhau, lập trình điều khiển LCD ta tác động trực tiếp vào ghi DR IR thông qua chân DBx, ta phải thiết lập chân RS, R/W phù hợp để chuyển qua lại giữ ghi (xem bảng giới thiệu ghi này) * Với lệnh, LCD cần khoảng thời gian để hoàn tất, thời gian lâu tốc độ MPU, nên ta cần kiểm tra cờ BF đợi (delay) cho LCD thực thi xong lệnh hành lệnh tiếp theo.   Địa RAM (AC) tự động tăng (giảm) đơn vị, có lệnh ghi vào RAM (Điều giúp chương trình gọn hơn)  Các lệnh LCD chia thành nhóm sau: • Các lệnh kiểu hiển thị VD: Kiểu hiển thị (1 hàng / hàng), chiều dài liệu (8 bit / bit), • Chỉ định địa RAM nội • Nhóm lệnh truyền liệu RAM nội • Các lệnh lại (!!!) 19 ***Trước hết nhóm lệnh đỏ: + Clear display - xóa LCD: lệnh xóa tồn nội dung DDRAM xóa tồn hiển thị LCD Vì lệnh ghi Instruction nên chân RS phải reset trước ghi lệnh lên LCD Mã lệnh xóa LCD 0x01(ghi vào D0:D7) Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 0 0 0 Lệnh Clear Display (xóa hiển thị) ghi khoảng trống-blank (mã hiển thị kí tự 20H) vào tất nhớ DDRAM, sau trả đếm địa AC=0, trả lại kiểu thị gốc bị thay đổi Nghĩa là: Tắt hiển thị, trỏ dời góc trái (hàng đầu tiên), chế độ tăng AC + Cursor home - đưa trỏ vị trí đầu, dòng LCD: lệnh thực việc đưa trỏ vị trí nhớ DDRAM, sau lệnh biến ghi vào DDRAM biến nằm vị trí (1;1) RS phải trước ghi lệnh Mã lệnh 0x02 0x03(chọn mã lệnh, tùy ý) + Set DDRAM address (texe(max)=37uS): Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = [AD] [AD] [AD] [AD] [AD] [AD] [AD] Lệnh ghi vào AC địa DDRAM, dùng cần thiết lập tọa độ hiển thị mong muốn Ngay sau lệnh lệnh đọc/ghi liệu từ DDRAM địa định Khi chế độ hiển thị hàng: địa từ 00H đến 4FH Khi chế độ hiển thị hàng, địa từ 00h đến 27H cho hàng thứ nhất, từ 40h đến 67h cho hàng thứ Định vị trí trỏ cho DDRAM: di chuyển trỏ đến vị trí tùy ý DDRAM dùng để chọn vị trí cần hiển thị LCD Để thực lệnh cần reset RS=0 Bit MSB mã lệnh (D7) phải 1, bit lại mã lệnh địa DDRAM muốn di chuyển đến Ví dụ muốn di chuyển trỏ đến vị trí thứ dịng LCD (địa 42) cần ghi mã lệnh 0xAA 0xAA=10101010 (binary) bit MSB 1, bảy bit cịn lại 0101010=42, địa nhớ muốn đến + Read BF fand address (texe(max)=0uS): Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = [BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC] 20 (RS=0, R/W=1) Như đề cập trước đây, cờ BF bật, LCD làm việc lệnh (nếu có) bị bỏ qua cờ BF chưa mức thấp Cho nên, lập trình điều khiển, bạn phải kiểm tra cờ BF trước ghi liệu vào LCD Khi đọc cờ BF, giá trị AC xuất bit [AC] Nó địa CG hay DDRAM tùy thuộc vào lệnh trước + Write to CGRAM or DDRAM (texe(max)=37uS, tadd=4uS): Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = [Write data] (RS=1, R/W=0) Khi thiết lập RS=1, R/W=0, liệu cần ghi đưa vào chân DBx từ mạch LCD chuyển vào LCD địa xác định từ lệnh ghi địa trước (lệnh ghi địa xác định vùng RAM cần ghi) Sau ghi, đếm địa AC tự động tăng/giảm tùy theo thiết lập Entry mode Lưu ý thời gian cập nhật AC khơng tính vào thời gian thực thi lệnh Ghi liệu vào CGRAM DDRAM: khơng phải lệnh ghi instruction mà lệnh ghi liệu nên chân RS cần set lên trước ghi lệnh vào LCD Lệnh cho phép ghi mã ASCII ký tự cần hiển thị vào ghi DDRAM Trường hợp ghi vào CGRAM không khảo sát *** Kế đến nhóm lệnh màu xanh : nhóm lệnh thường thực lần (ít học này) thường viết chung chương trình khởi động LCD (chúng ta gọi init_LCD học này) + Entry mode set(texe(max)=37uS): Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 0 0 [I/D] [S] Xác lập thị liên tiếp cho LCD: nói cách dễ hiểu, lệnh cách mà bạn muốn hiển thị ký tự ký tự trước Ví dụ bạn muốn thị ký tự liên tiếp AB, trước hết bạn viết A vị trí 5, dịng Sau bạn ghi B vào LCD, lúc có cách mà LCD hiển thị B sau: hiển thị B bên phải A vị trí số (cách 1); B hiển thị bên trái A, vị trí số (cách 2); LCD tự dịch chuyển A bên trái đến vị trí sau hiển thị B bên phải A, vị trí 5(cách 3); khả cuối LCD dịch chuyển A bên phải đến vị trí sau hiển thị B bên trái A, vị trí (cách 4) Chúng ta chọn cách hiển thị thông qua lệnh Entry mode set Đây lệnh ghi Instruction nên RS=0, bit cao D7:3=00000, bit D2=1, hai bit lại D1:0 chứa mã lệnh để lựa chọn cách hiển thị Xem lại bảng 2, bit D1 chứa 21 giá trị I/D D0 chứa S Trong I/D nghĩa tăng giảm (Increment or Decrement) I/D= hiển thị tăng tức ký tự sau hiển thị bên phải ký tự trước, I/D=0 hiển thị giảm, tức ký tự sau hiển thị bên trái ký tự trước S giá trị Shift, S=1 ký tự trước “đẩy” đi, ký tự sau chiếm chỗ ký tự trước, ngược lại S=0 vị trí hiển thị ký tự trước khơng thay đổi Có thể tóm tắt mode hiển thị ứng với mã lệnh sau: + D7:0 = 0x04 (00000100): hiển thị giảm không shift (cách ví dụ) + D7:0 = 0x05 (00000101): hiển thị giảm shift (cách ví dụ) + D7:0 = 0x06 (00000110): hiển thị tăng không shift (cách 1, khuyến khích) + D7:0 = 0x07 (00000111): hiển thị tăng shift (cách ví dụ) Display position DDRAM address For shift left For shift right 00 40 01 41 27 67 01 41 02 42 00 40 02 42 03 43 01 41 03 43 04 44 02 42 04 44 05 45 03 43 05 45 06 46 04 44 06 46 07 47 05 45 07 47 08 48 06 46 + Display on/off control (texe(max)=37uS): Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 0 0 [D] [C] [B] D: Hiển thị hình D=1 ngược lại Khi tắt hiển thị, nội dung DDRAM không thay đổi C: Hiển thị trỏ C=1 ngược lại Vị trí hình dạng trỏ, xem hình B: Nhấp nháy kí tự vị trí trỏ B=1 ngược lại Chu kì nhấp nháy khoảng 409,6ms mạch dao động nội LCD 250kHz Xác lập cách thị cho LCD: lệnh bao gồm thông số cho phép LCD hiển thị, cho phép hiển thị cursor mở/tắt blinking Đây lệnh ghi Instrcution nên RS phải Mã lệnh cho lệnh có dạng 00001DCB D (Display) cho phép hiển thị LCD mang giá trị 1, C (Cursor) cursor hiển thị B blinking cho cursor vị trí hiển thị (blinking dạng ô đen nhấp nháy vị trí ký tự hiển thị) Mã lệnh dùng phổ biến cho lệnh 0x0E (00001110 - hiển thị cursor không hiển thị blinking) 22 + Function set (texe(max)=37uS): Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 0 [DL] [N] [F] * * Xác lập chức cho LCD: lệnh thiết lập phương thức giao tiếp với LCD, kích thước font chữ số lượng line LCD RS phải sử dụng lệnh Mã lệnh function set có dạng 001D—LNFxx Trong DL=1 (DL: Data Length) mode giao tiếp bit dùng, lúc tất chân từ D0 đến D7 phải kết nối với điều khiển ngồi Nếu DL=0 mode bit dùng, trường hợp có chân D4:7 dùng để truyền nhận liệu kết nối với điều khiển ngoài, chân D0:3 để trống N quy định số dịng LCD, khảo sát LCD loại hiển thị dòng nên N=1 (N=0 cho trường hợp LCD dòng) F kích thước font chữ hiển thị, LCD có font chữ có sẵn CGROM nên cần lựa chọn thông qua bit F, F=1 font 5x10 sử dụng F=0 font 5x8 hiển thị bit thấp mã lệnh gán giá trị tùy ý Mã lệnh dùng phổ biến cho lệnh function set 0x38 (00111000 giao tiếp bit, dòng với font 5x8) 0x28 (00101000 - giao tiếp bit, dịng với font 5x8)  Chú ý: • Chỉ thực thay đổi Function set đầu chương trình Và sau thực thi lần, lệnh thay đổi Function set không LCD chấp nhận ngoại trừ thiết lập chuyển đổi giao thức giao tiếp • Khơng thể hiển thị kiểu kí tự 5x10 điểm ảnh kiểu hiển thị hàng > Giao tiếp bit bit Như trình bày lệnh function set, có mode để ghi đọc liệu vào LCD mode bit mode bit: - Mode bit: Nếu bit DL lệnh function set mode bit dùng Để sử dụng mode bit, tất lines liệu LCD từ D0 đến D7 (từ chân đến chân 14) phải nối với PORT chip điều khiển bên ngồi (ví dụ PORTC ATmega32 ví dụ này) hình Ưu 23 điểm phương pháp giao tiếp liệu ghi đọc nhanh đơn giản chip điều khiển cần xuất nhận liệu PORT Tuy nhiên, phương pháp có nhược điểm tổng số chân dành cho giao tiếp LCD q nhiều, tính ln chân điều khiển cần đến 11 đường cho giao tiếp LCD -Mode bit: LCD cho phép giao tiếp với điều khiển theo chế độ bit Trong chế độ này, chân D0, D1, D2 D3 LCD không sử dụng (để trống), có chân từ D4 đến D7 kết nối với chip điều khiển Các instruction data bit ghi đọc cách chia thành phần, gọi Nibbles, nibble gồm bit giao tiếp thông qua chân D7:4, nibble cao xử lí trước nibble thấp sau Ưu điểm lớn phương pháp tối thiểu số lines dùng cho giao tiếp LCD Tuy nhiên, việc đọc ghi nibble tương đối khó khăn đọc ghi liệu bit Trong học này, tơi trình bày chương trình viết riêng để ghi đọc nibbles gọi Read2Nib Write2Nib Chân Kí hiệu VSS VCC VEE - RS I R/W E I/O - I I/O Mô tả Đất Chân cấp nguồn cho LCD, thiết kế mạch ta nối chân với VCC= 5V mạch điều khiển Cấp nguồn điều khiển độ tương phản Chân chọn ghi (Register select) Nối chân RS với logic “0” (GND) logic “1” (VCC) để chọn ghi + Logic “0”: Bus DB0-DB7 nối với ghi lệnh IR LCD (ở chê độ “ghi” - write) nối với đếm địa LCD (ở chê độ “đọc” - read) + Logic “1”: Bus DB0-DB7 nối với ghi liệu DR bên LCD Chân chọn chê độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt động chê độ ghi, nối với logic “1” để LCD chê độ đọc Chân cho phép (Enable) Sau tín hiệu đặt lên bus DB0-DB7, lệnh chấp nhận có xung cho phép chân E 24 7-14 DB0DB14 I/O + Ở chê độ ghi: Dữ liệu bus LCD chuyển vào(chấp nhận) ghi bên phát xung (high-tolow transition) tín hiệu chân E + Ở chê độ đọc: Dữ liệu LCD xuất DB0-DB7 phát cạnh lên (lowtohigh transition) chân E LCD giữ bus đên chân E xuống mức thấp Tám đường bus liệu dùng để trao đổi thơng tin với MPU Có chê độ sử dụng đường bus : + Chê độ bit : Dữ liệu truyền đường, với bit MSB bit DB7 + Chê độ bit : Dữ liệu truyền đường từ DB4 tới DB7, bit MSB DB7 25 CHƯƠNG 2: THỰC HIỆN MƠ HÌNH ĐỒ ÁN 2.1 MẠCH NGUN LÝ 2.2 MẠCH LAYOUT, 3D 26 27 28 2.3 Chương trình #include #define E P11 #define RS P10 #define DATA P2 void delay_us(unsigned int t); void delay_ms(unsigned int t); void delay_ms(unsigned int t) // Ham Delay _ms { unsigned int x, y; for(x = 0; x

Ngày đăng: 19/04/2021, 12:57

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w