1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Mạch hiển thị chữ chạy LCD potx

14 1,1K 13

Đ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 14
Dung lượng 382,44 KB

Nội dung

2.CÁC CHƯƠNG TRÌNH KHI GIAO TIẾP 8051 PHẦN II : 3.CODE CHƯƠNG TRÌNH THỰC HIỆN THEO MẠCH.. TỔNG QUAN VỀ LCD hinh 2 Trong những năm gần đây LCD Liquid Crystal Display đã được sử dụng r

Trang 1

PHẦN I GIAO TIẾP VĐK 8051 VỚI LCD

Hinh 1

NỘI DUNG:

PHẦN I :

1.TỔNG QUAN VỀ LCC & CÁCH GIAO TIẾP VỚI 8051.

2.CÁC CHƯƠNG TRÌNH KHI GIAO TIẾP 8051

PHẦN II :

3.CODE CHƯƠNG TRÌNH THỰC HIỆN THEO MẠCH.

4.MẠCH MÔ PHỎNG TRÊN PROTUS.

5.KẾT LUẬN ƯU & NHƯỢC ĐIỂM

6.NHIỆM VỤ CÁC THÀNH VIÊN VÀ ĐÁNH GIÁ

7.NHAN XÉT CỦA GIÁ VIÊN

Trang 2

I.TỔNG QUAN VỀ LCD & CÁCH GIAO TIẾP LCD VỚI 80C51:

1.1 TỔNG QUAN VỀ LCD

hinh 2

Trong những năm gần đây LCD (Liquid Crystal Display) đã được sử dụng rộng rãi thay thế cho LED 7 đoạn hay các loại LED nhiều đoạn khác Ngày nay LCD với những tính năng nổi trội của nó đã được sử dụng rất nhiều trong vi điều khiển Khả năng hiện thị của LCD là rất đa dạng, trực quan (chữ, số và nhiều loại kí tự đồ họa khác ),

dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức khác nhau mà giá thành rẻ…

LCD sử dụng trong mạch: lLCD LM 032L

Hình dạng, kích thước:

Sơ đồ chaân:

- Hình (3)

Trang 3

1.2 CÁCH GIAO TIẾP GIAO TIẾP LCD VỚI VĐK 8051 :

Tôi thực hiện giao tiếp 8051 thông qua IC đệm 74LS373 (kết nối 8 bit):

P0.0 Æ P0.7 (của 8051) nối với DB0 Æ DB7 (của LCD)

P3.6 và P3.7 nối với cổng NAND ,ngõ ra cổng NAND được nối chân E (chân số 6 của LCD) Chân số 2 IC 74LS373 nối với RS (chân số của LCD)

Chân số 5 IC 74 LS373 nối với RW (chân số 4 của LCD)

2.CÁC CHƯƠNG TRÌNH CON KHI GIAO TIẾP LCD VỚI 8051:

2.1.XỬ LÝ ĐƯỜNG ĐIỀU KHIỂN E:

Để thiết lập câu lệnh hay gởi dữ liệu kí tự cho LCD, ta phải tạo ra một xung cạnh xuống trên chân , do đó ta đưa chân E nhận mức cao, tạo một độ trễ khoảng 200ms (để tạo độ rộng xung) và sau đó đưa E xuống thấp, ta có thể coi như là một chương trình con để ra lệnh cho LCD đọc

dữ liệu

LENH:

SETB E LCALL DELAY2 CLR E RET

Đọc dữ liệu hay trạng thái từ LCD: tạo một xung cạnh lên , chương trình như sau:

LENH2: CLR E LCALL DELAY2 SETB E

Trang 4

RET

Chương trình delay: 200ms, timer1, chế độ 1

DELAY2: MOV TMOD,#10H MOV R7,#4

LL: MOV TH1,#HIGH(-50000) MOV TL1,#LOW(-50000)

SETB TR1

JNB TF1,$

CLR TR1

CLR TF1

DJNZ R7,LL

MOV R7,#00H

RET

2.2 KIỂM TRA TRANG THÁI BÂN CỦA LCD:

Trong khi viết chương trình ta phải kiểm tra xem LCD Cĩ cịn bận hay đang bận thực hiện lệnh đã nhận trước đĩ hay khơng

Khi thực hiện các hoạt động bên trong chíp, mạch nội bên trong cần một khoảng thời gian để hồn tất Khi đang thực thi các hoạt động bên trong chip như thế, LCD sẽ bỏ qua mọi giao tiếp với bên ngồi và bật cờ BF (thơng báo qua chân DB7 khi cĩ thiết lập RS=0, R/W=1) lên để cho 80C51 biết nĩ đang “bận” Dĩ nhiên , khi xong việc nĩ sẽ đặt cờ BF lại mức 0 Dựa trên nguyên tắc đĩ ta viết đoạn chương trình con kiểm tra trạng thái bận của LCD như sau:

WAIT_LCD:

CLR E CLR RS SETB RW MOV DATA_LCD,#0FFH SETB E

MOV A,DATA_LCD

JB ACC.7,WAIT_LCD CLR RW

CLR RS RET

2.3 KHỞI TAO LCD:

Trang 5

KHOITAO: CLR RS ;Chọn chế độ gởi lệnh

MOV DATA_LCD,#38H ;Chọn bus 8bit, font ký tự 5x8, 2 hàng LCALL LENH ;Gọi lệnh thực thi xuất ra LCD LCALL WAIT_LCD ;Kiểm tra trạng thái bận của LCD CLR RS ;Chọn chế độ gởi lệnh MOV DATA_LCD,#0FH ;LCD on, bật cursor

LCALL LENH LCALL WAIT_LCD RET

2.4.XÓA MÀN HÌNH :

CLR_LCD:

MOV DATA_LCD,#01H LCALL LENH

LCALL WAIT_LCD RET

2.5 GHI RA MÀN HÌNH DÒNG TIN THEO YÊU CẦU:

string1a:db ' !! W E L L C O M E !! '

db 0

string1b:db '!! D H MO HA NOI !! '

db 0

string2:db ' NHOM 2 '

db 0

string3:db ' K10 F '

db 0

string4:db ' HIEN THI CHU LCD!'

;****************************

WRITE_TEXT:

SETB E ;E=1 bắt đầulệnh LCD SETB RS ;RS=1 để chọn thanh chế độ xuất

Trang 6

;các dữ liệu ký tự để hiển thị lên LCD MOV DATA_LCD,#’T’ ;goi dữ liệu ký tự chữ T lên LCD CLR E ;E=0 tạo cạnh xuống LCALL WAIT_LCD ; Kiểm tra xem LCD còn bận hay không RET

3 CODE CHƯƠNG TRÌNH THỰC HIÊN VÀ SƠ ĐỒTHỰC HIỆN: 3.1 CODE CHƯƠNG TRÌNH THỰC HIỆN: $MOD51 ; chuong trinh giao tiep 8051 $ LCD ; 1.2MHz Clock ;khoi tao LCD LCD_CMD_WR equ 0

LCD_DATA_WR equ 1

LCD_BUSY_RD equ 2

LCD_DATA_RD equ 3

;LCD DINH NGHIA LCD_CLS equ 1

LCD_HOME equ 2

LCD_SETMODE equ 4

LCD_SETVISIBLE equ 8

LCD_SHIFT equ 16

LCD_SETFUNCTION equ 32

LCD_SETCGADDR equ 64

LCD_SETDDADDR equ 128

;CAI DAT TRANG THAI BAN DAU

Trang 7

org 0000h

ajmp start

;DIA CHI LUU TRONG CHUONGTRINH

org 0100h

string1a:db ' !! W E L L C O M E !! ' ;CHUO KI TU CAN HIEN THI

db 0

string1b:db '!! D H MO HA NOI !! ';CHUO KI TU CAN HIEN THI

db 0

string2:db ' NHOM 2 ' ;CHUO KI TU CAN HIEN THI

db 0

string3:db ' K10 F ' ;CHUO KI TU CAN HIEN THI

db 0

string4:db ' HIEN THI CHU LCD!' ;CHUO KI TU CAN HIEN THI

db 0

start: mov A,#038h ;NAP A BANG 38

call DATACMD

loop: mov A,#LCD_SETVISIBLE+6 ;NAP TRANG THAI MAN HINH call DATACMD

mov R7,#2 ;NAP GIA TRI HANG QUET TREN LCD loop2:

mov DPTR,#string1a ;NAP CON TRO VUNG DU LIEU HIEN THI call wrstr

Trang 8

mov DPTR,#200 ;NAP CON TRO VUNG DU LIEU DPTR =200 call wtms

mov A,#LCD_CLS ;xoa man hinh lcd

call DATACMD

mov DPTR,#string1b ;NAP CON TRO VUNG DU LIEU HIEN THI call wrstr

mov DPTR,#200 ;NAP CON TRO VUNG DU LIEU DPTR =200 call wtms

mov A,#LCD_CLS ;xoa man hinh lcd

call DATACMD

djnz R7,loop2 ;NAP LAI CHO TOI KHI BO DEM = 0

mov DPTR,#string1a ;NAP CON TRO VUNG DU LIEU HIEN THI call wrstr

mov DPTR,#400 ;NAP CON TRO VUNG DU LIEU DPTR =400 call wtms

mov A,#LCD_SETDDADDR+64 ;NAP TRANG THAI MAN HINH call DATACMD

mov DPTR,#string2 ;NAP CON TRO VUNG DU LIEU HIEN THI

call wrslow

mov DPTR,#200 ;NAP CON TRO VUNG DU LIEU DPRT=200

Trang 9

call wtms

mov A,#LCD_CLS ;xoa man hinh lcd

call DATACMD

mov DPTR,#string3 ;NAP CON TRO VUNG DU LIEU HIEN THI

call wrslow

mov A,#LCD_SETDDADDR+64 ;NAP TRANG THAI MAN HINH

call DATACMD

mov DPTR,#string4 ;NAP CON TRO VUNG DU LIEU HIEN THI

call wrslow

mov A,#LCD_SETVISIBLE+7 ;XUAT RA MAN HINH

call DATACMD

mov DPTR,#2000 ;NAP DIA CHI VUNG DU LIEU DPTR = 2000

call wtms

mov A,#LCD_CLS ;xoa man hinh lcd

call DATACMD

jmp loop ;NAP LAI CHO TOI KHI BO DEM = 0

;CHUONG TRINH QUET CHUOI KI TU TRONG RAM

wrstr: mov R0,#LCD_DATA_WR ;NAP TRANG THAI MAN HINH

wrstr1: clr A

movc A,@A+DPTR ;LAY LAI DU LIEU O NHO ROM (A + DPTR) DUA VAO A

Trang 10

jz wrstr2

mov @R0,A ;SAO CHEP NOI DUNG A VAO RO

call wtbusy ;GOI CHUONG TRINH BAN CUA LCD

inc DPTR ;TANG DIA CHI VUNG DU LIEU DPTR LEN

push DPL ;CAT VAO NGAN XEP

push DPH ;CAT VAO NGAN XEP

pop DPH ;LAY TU NGAN XEP

pop DPL ;LAY TU NGAN XEP

jmp wrstr1

wrstr2: ret

;CHUONG TRINH XUAT CHUOI KI TU TRONG RAM

wrslow: mov R0,#LCD_DATA_WR

wrslw1: clr A ;XOA NOI DUNG TRONG A

movc A,@A+DPTR ;LAY LAI DU LIEU O NHO ROM (A + DPTR) DUA VAO A

jz wrslw2 ;THOA RA CT CON

movx @R0,A ;SAO CHEP NOI DUNG A VAO RO

call wtbusy ;GOI CHUONG TRINH BAN CUA LCD

inc DPTR ;TANG DIA CHI VUNG DU LIEU DPTR LEN

push DPL ;CAT VAO NGAN XEP

push DPH ;CAT VAO NGAN XEP

mov DPTR,#100 ;NAP DIA CHI VUNG DU LIEU DPTR = 100

call wtms ;GOI CHUONG TRINH CON

pop DPH ;LAY TU NGAN XEP

pop DPL ;LAY TU NGAN XEP

jmp wrslw1 ;NHAY DEN CT CON

wrslw2: ret

;CHUONG TRINH XUAT RA LCD :

Trang 11

DATACMD: mov R0,#LCD_CMD_WR

movx @R0,A ;SAO CHEP NOI DUNG A VAO RO

jmp wtbusy ;NHAY DEN CT CON TRANG THAI BAN LCD

;CHUONG TRINH CON:

wrchar: mov R0,#LCD_DATA_WR ;NAP TRANG THAI LCD VAO RO

movx @R0,A ;SAO CHEP NOI DUNG A VAO RO

;CHUONG TRINH DOI TRANG THAI BAN CUA LCD

wtbusy: mov R1,#LCD_BUSY_RD ;NAP TRANG THAI BAN LCD VAO R1

movx A,@r1 ;SAO CHEP NOI DUNG R1 VAO THANH A

jb ACC.7,wtbusy ;NHAY NEU ACC =1

ret

;TRE SO TRONG THANH A

wtsec: push ACC ;CAT ACC VAO NGAN XEP

call wtms ;GOI CHUONG TRINH CON

pop ACC ;LAY ACC TU NGAN XEP

dec A

jnz wtsec ;NHAY DEN NOI

ret

;TRE MOT SO THOI GIAN CHO VDK

wtms: xrl DPL,#0FFh ;THUC HIEN PHEP TOAN XOR GIUA HAI TOAN HANG xrl DPH,#0FFh ;THUC HIEN PHEP TOAN XOR GIUA HAI TOAN HANG inc DPTR ;TANG DPTR NEU CO CY = 1

wtms1: mov TL0,#01Ch ;100 TICH TAC DONG HO = 1ms CUA XUNG 1.2Mhz mov TH0,#0FFh

Trang 12

mov TMOD,#1 ;TIME 0 O MUC 1 setb TCON.4 ;TIME 0 DEM CHAY wtms2: jnb TCON.5,wtms2

clr TCON.4 ;TIME 0 DUNG DEM clr TCON.5

inc DPTR

mov A,DPL

orl A,DPH

jnz wtms1

ret

END

3 2.SƠ ĐỐ MẠCH :

Hình 4

4 MẠCH MÔ PHỎNG TRÊN (PM) PROTUS:

Hình (1)

Trang 13

Kết quả chạy mô phỏng: Mạch chạy tốt và đúng

Mạch chạy và hiện thị dòng tin theo yêu cầu trong code

5 KẾT LUẬN:

5.1.Nhược điểm:

- Phần mềm tương đối phức tạp, nhất là đối với những người mới học và chưa có nhiều kinh nghiệm như tui, cần viết nhiều, tham khảo nhiều chương trình thì mới có kinh nghiệm tốt để viết

- Chương trình còn dài dòng , phức tạp, chưa có thời gian nhiều cho việc tối ưu

- Chưa đưa ra được sơ đồ giải thuật

5.2 Ưu điểm:

- Có thể kết luận mạch chạy và làm việc hiệu quả, hiển thị đúng dòng tin theo yêu cầu

- Tuy mạch còn đơn giản chưa đáp ứng đc cho thực tế đẻ so sánh với các chương trình lớn , nói chung mạch đạt được yêu cầu là giao tiếp 80C51 với LCD

6.Nhiệm vụ các thành viên

-Do đây là lần đầu thiết kế nên nhiều phàn còn sơ sài do còn thiếu kinh nghiệm

-Nhóm chưởng cũng như các thành viên cùng tìm tai liệu tham khảo ,thiết kế mach qua proteus,tìm và lập trình theo

vi sử lý

-các thành viên trong nhóm hoạt động tích cực,năng nổ và nhiệt tình làm đề tài

7.nhận xét của giáo viên

Ngày đăng: 02/07/2014, 00:20

HÌNH ẢNH LIÊN QUAN

Sơ đồ chaân: - Mạch hiển thị chữ chạy LCD potx
Sơ đồ cha ân: (Trang 2)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w