Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
3,7 MB
Nội dung
MỤC LỤC CHƯƠNG I: GIỚI THIỀU VỀ VI ĐIỀU KHIỂN AT89C51 Sơ đồ khối vi điều khiển AT89C51 Đặc tính cảu AT89C51 Sơ đồ chân chức chân AT89C51 Tổ chức nhớ CHƯƠNG II: GIỚI THIỆU VỀ LCD 16 × LM016L Chức chân LCD 16×2 LM016L Sơ đồ khối LCD HL016L Tập lệnh LCD CHƯƠNG III: GIAOTIẾP89C51vớiLCD 16 × 𝟐 LM016L Sơ đồ mạch nguyên lý Chương trình assembly CHƯƠNG 1: : GIỚI THIỀU VỀ VI ĐIỀU KHIỂN AT89C51 Sơ đồ chân chức chân AT89C51 SƠ ĐỒ CHÂN CỦA VI ĐIỀU KHIỂN 89C51 Bảng chức Port -Chân cho phép nhớ chương trình 𝐏𝐒𝐄𝐍 Tổ chức nhớ Bộ nhớ bên 89C51 gồm RAM ROM 10 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 4uS5uS (ngay sau BF=1) trước nạp liệu Xem thêm hình bên Hình : Giản đồ xung cập nhật AC d> Vùng RAM hiển thị DDRAM : (Display Data RAM) Đây vùng RAM dùng để hiển thị, nghĩa ứng với địa RAM kí tự hình bạn ghi vào vùng RAM mã bit, LCD hiển thị vị trí tương ứng hình kí tự có mã bit mà bạn cung cấp Hình sau trình bày rõ mối liên hệ : Hình : Mối liên hệ địa DDRAM vị trí hiển thị LCD Vùng RAM có 80x8 bit nhớ, nghĩa chứa 80 kí tự mã bit Những vùng RAM lại khơng dùng cho hiển thị dùng vùng RAM đa mục đích Lưu ý để truy cập vào DDRAM, ta phải cung cấp địa cho AC theo mã HEX 19 e> Vùng ROM chứa kí tự CGROM: Character Generator ROM Vùng ROM dùng để chứa mẫu kí tự loại 5x8 5x10 điểm ảnh/kí tự, định địa bit Tuy nhiên, có 208 mẫu kí tự 5x8 32 mẫu kí tự kiểu 5x10 (tổng cộng 240 thay 28 =256 mẫu kí tự) Người dùng khơng thể thay đổi vùng ROM Hình : Mối liên hệ địa ROM liệu tạo mẫu kí tự Như vậy, để ghi vào vị trí thứ x hình kí tự y đó, người dùng phải ghi vào vùng DDRAM địa x (xem bảng mối liên hệ DDRAM vị trí hiển thị) chuỗi mã kí tự bit CGROM Chú ý bảng mã kí tự CGROM hình bên có mã ROM A00 Ví dụ : Ghi vào DDRAM địa “01” chuỗi bit “01100010” LCD thứ từ trái sang (dòng trên) hiển thị kí tự “b” 20 Bảng : Bảng mã kí tự (ROM code A00) 21 Tập lệnh LCD Trước tìm hiểu tập lệnh LCD, sau vài ý giaotiếpvớiLCD : * 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 2) * Với lệnh, LCD cần khoảng thời gian để hồ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 * Đị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 22 23 CHƯƠNG III: GIAOTIẾP89C51vớiLCD 16 ×2 LM016L Ghép nối vi điều khiển AT89C51 vớiLCD LM016L cổng P2 theo chế độ bit hiển thị 02 dòng ký tự lên LCD Sơ đồ nguyên lý - Mạch nguyên lý: +Chọn LCD LM016L +Chân VDD LCD nối với nguồn +5v + Chân VSS LCD nối đất + Chân VEE LCD nối tới biến trở để điều chỉnh độ tương phản LCD +Chân RS (chọn ghi) LCD nối với P3.0 AT89C51 +Chân RW (đọc/ghi) LCD nối với P3.1 AT89C51 + Chân E (cho phép) LCD nối với P3.2 AT89C51 + chân liệu D4-D7 LCD nối với P2.4-P2.7 AT89C51 Sơ đồ nguyên lý ghép nối AT89S52 vớiLCD HD 44780 24 - Kết nối: + Thực nối dây modul thí nghiệm theo sơ đồ nguyên lý STT 89C51 LED P3.0 RS P3.1 RW P3.2 E P2.4 – P2.7 D4 – D7 25 Chương trình Assembly ghép nối vi điều khiển AT89C51 vớiLCD LM016L cổng P2 theo chế độ bit hiển thị 02 dòng ký tự lên LCD trễ 0.5s Dòng 1: “ Chúc bạn’’ Dòng 2: “ Vui vẻ” Tạo trễ 0.5s: Sử dụng thạnh anh có tần số 12MHz tương ứng với chu kì máy= mirco second (uS) Để tạo trễ 0.5s ta có code sau: ; Đầu tiền ta tạo hàm trễ 10ms DELAY10MS: MOV R2,#20; thời gian thực câu lệnh chu kì máy LAP1: MOV R3,#100; thời gian thực câu lệnh 1chu kì máy LAP2: NOP n;thời gian thực câu lệnh chu kì máy NOP NOP DJNZ R3,LAP2 ; thời gian thực câu lệnh chu kì máy DJNZ R2,LAP1 ; thời gian thực câu lệnh chu kì máy RET ; thời gian thực câu lệnh ày chu kì máy; Thời gian trễ ((100× (3 + 2) + 2)*20+2+ 1+1)*1= 10045 uS ≈ 10ms ; Tiếp theo tạo trễ 250ms DELAY250MS: MOV R4,#25; thời gian thực câu lệnh ày chu kì máy LAP3: CALL DELAY10MS ; thời gian thực câu lệnh 10000 chu kỳ máy DJNZ R4,LAP3; thời gian thực câu lệnh chu kì máy RET ; thời gian thực câu lệnh ày chu kì máy Thời gian trễ ( 25*(10000+2)+2+1)*1=250053 us ≈ 250 𝑚𝑠 26 ;Tiếp theo tạo trễ 500ms DELAY500MS: MOV R6,#2 ; thời gian thực câu lệnh chu kì máy LAP4: CALL DELAY250MS; thời gian thực câu lệnh 250000 chu kì máy DJNZ R6,LAP4; thời gian thực câu lệnh chu kì máy RET; thời gian thực câu lệnh chu kì máy Thời gian trễ là: ((250000+2)*2+2+1)*1=500003 us ≈ 0.5 s Code Assembly Assembly ghép nối vi điều khiển AT89C51 vớiLCD LM016L cổng P2 theo chế độ bit hiển thị 02 dòng ký tự lên LCD trễ 0.5s LCD_DATA EQU P2 TEMP_D EQU 30H EN BIT P3.2 RS BIT P3.1 RW BIT P3.0 ORG 000h JMP MAIN WRTCMD4 MACRO THAMSO ; dùng marco de nap lenh vao lcd MOV TEMP_D,#THAMSO MOV A,TEMP_D ANL A,#0F0H ;thuc hien phép toán AND tung bit giua hai toán hang duoc chi lenh luu ket qua vao A MOV LCD_DATA,A CLR RS CLR RW 27 SETB EN CLR EN CALL DELAY10MS MOV A,TEMP_D SWAP A ;Tráo doi noi dung hai nua thap cao cua ghi A ANL A,#0F0H ; thuc hien phép toán AND tung bit giua hai toán hang duoc chi lenh luu ket qua vao A MOV LCD_DATA,A CLR RS CLR RW SETB EN CLR EN ENDM GHIDL4: MOV A,TEMP_D ANL A,#0F0H MOV LCD_DATA,A SETB RS CLR RW SETB EN CLR EN CALL DELAY10MS MOV A,TEMP_D SWAP A ANL A,#0F0H MOV LCD_DATA,A SETB RS CLR RW SETB EN 28 CLR EN CALL DELAY10MS RET MAIN: CLR EN CALL DELAY500MS MOV TEMP_D,#20H ANL TEMP_D,#0F0H MOV LCD_DATA,TEMP_D CLR RS CLR RW SETB EN CLR EN CALL DELAY500MS WRTCMD4 28H ;Dat che dong, bit WRTCMD4 01H ;xoa man hình hien thi WRTCMD4 06H ;tang tro dich sang phai ;Viet Du lieu ;Dong thu nhat WRTCMD4 80H;dong thu nhat DONG1: WRTCMD4 83H ;con tro chi den giua Dong thu nhat MOV R0,#0 29 LAPA: MOV A,R0 MOV DPTR,#MALCD MOVC A,@A+DPTR MOV TEMP_D,A CALL GHIDL4 INC R0 CJNE R0,#12,LAPA ; Ðoan chuong trình xulý noi dung ghi A 12 ;Dong thu hai WRTCMD4 0CH ;xuong dong thu DONG2: WRTCMD4 0C3H ;con tro chi den giua dong thu MOV R7,#0 REW: MOV A,R7 MOV DPTR,#MALCD2 MOVC A,@A+DPTR MOV TEMP_D,A call delay500ms CALL GHIDL4 INC R7 CJNE R7,#10,REW; Ðoan chuong trình xulý noi dung ghi A 10 30 DICH: WRTCMD4 18H ;dich toan bo hien thi sang ben trai CALL DELAY500MS WRTCMD4 18H CALL DELAY500MS WRTCMD4 18H CALL DELAY500MS WRTCMD4 1CH ;dich toan bo hien thi sang ben phai CALL DELAY500MS WRTCMD4 1CH CALL DELAY500MS WRTCMD4 1CH CALL DELAY500MS WRTCMD4 1CH CALL DELAY500MS JMP DICH DELAY10MS: MOV R2,#20 LAP1: MOV R3,#100 LAP2: NOP NOP NOP DJNZ R3,LAP2 DJNZ R2,LAP1 RET DELAY250MS: 31 MOV R4,#25 LAP3: CALL DELAY10MS DJNZ R4,LAP3 RET DELAY500MS: MOV R6,#2 LAP4: CALL DELAY250MS DJNZ R6,LAP4 RET MALCD: DB 'CHUC CAC BAN' MALCD2: DB 'VUI VE' END Kết quả: Sử dụng phần mềm proteus để mô 32 33 ... CHƯƠNG III: GIAO TIẾP 89C51 với LCD 16 ×2 LM016L Ghép nối vi điều khiển AT89C51 với LCD LM016L cổng P2 theo chế độ bit hiển thị 02 dòng ký tự lên LCD Sơ đồ nguyên lý - Mạch nguyên lý: +Chọn LCD LM016L... +Chân VDD LCD nối với nguồn +5v + Chân VSS LCD nối đất + Chân VEE LCD nối tới biến trở để điều chỉnh độ tương phản LCD +Chân RS (chọn ghi) LCD nối với P3.0 AT89C51 +Chân RW (đọc/ghi) LCD nối với P3.1... (đọc/ghi) LCD nối với P3.1 AT89C51 + Chân E (cho phép) LCD nối với P3.2 AT89C51 + chân liệu D4-D7 LCD nối với P2.4-P2.7 AT89C51 Sơ đồ nguyên lý ghép nối AT89S52 với LCD HD 44780 24 - Kết nối: +