Lời cảm tạĐến giờ phút này đã được ba năm học kể từ cái ngày chúng em là những học sinh của các trường trung học phổ thông từ trong cả nước bước chân vào cổng trường Đại Học Bà Rịa – Vũn
Trang 1Lời cảm tạ
Đến giờ phút này đã được ba năm học kể từ cái ngày chúng em là những học sinh của các trường trung học phổ thông từ trong cả nước bước chân vào cổng trường Đại Học Bà Rịa – Vũng Tàu này, đặc biệt là Khoa Điện - Điện Tử, là nơi chúng em đã chọn để trao dồi một ngành nghề trong tương lai cho riêng mình đó là chuyên ngành Tự Động Hóa
Trong thời gian theo học tại trường Đại Học Bà Rịa – Vũng Tàu lớp
DH08TD nói chung và nhóm sinh viên chúng em nói riêng được theo học và tìm hiểu cơ bản về các môn học trong hệ thống toàn bộ giáo trình môn học của nhà trường bao gồm các môn đại cương và các môn liên quan đến chuyên ngành Tự Động Hóa
Qua sáu học kì theo học, nhờ sự giúp đỡ, hỗ trợ của các thầy cô giáo là giảng viên của các khoa trong trường dạy cho chúng em các môn đại cương và đặc biệt là các thầy cô giáo giảng viên khoa Điện - Điện Tử đã tận tình chỉ dạy, hướng dẫn chung em học tập và tìm hiểu rất nhiều kiến thức liên quan đến chuyên ngành của mình Tuy nhiên, để cho thấy được thành quả của mình, dưới sự chỉ đạo của nhà trường và khoa Điện - Điện Tử, các sinh viên phải làm các bài tập lớn để vận dụng các kiến thức lý thuyết đã học vào thực tế Để đáp ứng yêu cầu đó, em nói riêng và các bạn trong lớp DH08TD nói chung đã tiến hành học tập, tìm hiểu và nghiên cứu
để hoàn thành đồ án môn học
Qua đồ án này, sinh viên chúng em xin chân thành cảm ơn các thầy cô giáo giảng viên các khoa đã chỉ dạy cho chúng em các môn đại cương, các thầy cô giáo giảng viên khoa Điện - Điện Tử đã hướng dẫn, chỉ dạy cho chúng em các kiến thức liên quan đến chuyên ngành Tự Động Hóa Đặc biệt là Cô Châu Nguyễn Ngọc Lan
đã tận tình hướng dẫn cho chúng em hoàn thành tốt đồ án môn học này
Đây là lần đầu tiên chúng em được tự nghiên cứu, tìm hiểu và làm đồ án của mình qua kết quả nghiên cứu tìm hiểu được, nên không thể tránh khỏi những thiếu sót nhất định Rất mong được ý kiến đóng góp chân thành của các thầy cô giáo giảng viên trong khoa Điện - Điện Tử và các bạn sinh viên trong lớp để chúng em hoàn thiện hơn công việc học tập, tìm hiểu, nghiên cứu trong môn học chuyên ngành của mình nhằm nâng cao kiến thức chuyên ngành và đáp ứng được yêu cầu của môn học cũng như đáp ứng nhu cầu tuyển dụng của thị trường lao động hiện nay trước khi ra trường
Trang 2I ĐẶT VẤN ĐỀ:
Trong suốt thời gian học tại trường nói chung cũng như môn Vi Điều Khiển nói riêng, chúng ta đã được học và thực tập rất nhiều về LED đơn, LED 7 đoạn, LED ma trận, bàn phím….trong đó chúng em thấy đề tài LCD quan trọng và nhiều ứng dụng bởi vì 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 Đó là vì các nguyen nhân sau:
- Dễ dàng lập trình cho các ký tự và đồ họa
Và 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 và ứng dụng rộng rãi trong thực tế 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 chẳng hạn như : điện thoại di động, máy game và các lĩnh vực khác mà giá thành rẻ…vì vậy chúng em chọn đề tài hiển thị chữ ra LCD đồ án môn học
Trong thời gian tìm hiểu và nghiên cứu rất nhiều tài liệu nói về LCD thì chúng
em cảm thấy thời gian và kiến thức học tập ở trường còn quá hạn hẹp so với thực
tế và do nhiều yếu tố khách quan, chủ quan phát sinh ra trong thời gian đó nên sản phẩm chưa được hoàn thiện như chúng em mong muốn Vì đây là sản phẩm đầu tiên của nhóm và nó dừng lại ở mức độ là đồ án môn học nên không tánh được những thiếu sót mong thấy cô góp ý thêm
II GIỚI THIỆU VỀ ĐỀ TÀI:
Trang 3- Bộ Driver (mạch điều khiển).
Màn hình LCD và bộ Driver đã được kết nối sẵn với nhau bởi nhà sản xuất, khi sử dụng chỉ cần giao tiếp với bộ Driver
LCD TC1602 A là loại màn hình hiển thị được 16 kí tự × 2 dòng, bao gồm tất
cả các kí tự chuẩn ngoài ra còn có một số kí tự đặc biệt nhưng không có kí tự dấu tiếng Việt
Hình dáng và sơ đồ chân của LCD:
Trang 4Sơ đồ giao tiếp LCD với vi điều khiển:
Trang 52.2 Vi điều khiển AT89C51:
AT89C51 là 1 hệ vi tính có 8 chip đơn tính CMOS có hiệu suất cao, công suất nguồn tiêu thụ thấp cho phép lập trình/xóa được (Flash Programmale and Erasable Read Only Memory – EPROM).Chip này được sản xuất dựa vào công nghệ bộ nhớ không mất nội dung có độ tích hợp cao của hãng Atmel
- Có 4 Kbyte bộ nhớ FLASH ROM bên trong dùng để lưu chương trình điều khiển
- Có 128byte RAM nội
- Có 4 port xuất/ nhập 8 bit
- Có khả năng giao tiếp truyền dữ liệu nối tiếp
- Có thể giao tiếp với 64 kbyte bộ nhớ bên ngoài dùng để lưu chương trình điều khiển
- Có thể giao tiếp với 64 kbyte bộ nhớ bên ngoài dùng để lưu dữ liệu
- Có 210 bit, có thể truy xuất từng bit Có các lệnh xử lí bit
Hình AT89C51 thực tế :
Trang 6Sơ đồ chân của vi điều khiển:
Vi điều khiển 89C51 có tất cả 40 chân Trong đó có 24 chân có tác dụng kép mỗi đường có thể hoạt động như đường xuất nhập điều khiển IO hoặc là thành phần của các bus dữ liệu và bus địa chỉ để tải địa chỉ và dữ liệu khi giao tiếp với bbooj nhớ ngoài
Sơ đồ khối truy cập bộ nhớ chương trình bên ngoài
Trang 8D0-D7: dữ liệu đầu vàoLE: chốt ngõ vào (hoạt động ở mức cao)CP: khóa ngõ vào( mở khi tác động mức cao)OE: cho phép xuất (hoạt động ở mức thấp)O0-O7: ngõ ra
Trang 9Sơ đồ chân của IC 7400:
Cấu trúc của IC7400:
3 YÊU CẦU THIẾT KẾ:
- Mạch phải hoạt động đúng theo yêu cầu đặt ra
- Mạch hoạt động phải có độ ổn định và chính xác cao
Trang 102. SƠ ĐỒ MẠCH IN CỦA ĐỀ TÀI:
Trang 113. Lưu đồ giải thuật chương trình chính:
Trang 124 Lưu đồ giải thuật chương trinh con:
Trang 135 Code chương trình:
$mod51 ; Chuong trinh hien thi LCD voi Thach anh 12MHz
;;;*********khai bao thanh ghi dia chi LCD**********
LCD_CMD_WR equ 0LCD_DATA_WR equ 1LCD_BUSY_RD equ 2LCD_DATA_RD equ 3
;;;*************************************************
;;***************LCD Commands***********************LCD_CLS equ 1 ; gia tri lenh xoa man hinh hien thi
LCD_HOME equ 2 ; gia tri lenh tro ve dau dongLCD_SETMODE equ 4 ; dich con tro sang traiLCD_SETVISIBLE equ 8 ; tat con tro
LCD_SHIFT equ 16 ; dich con tro sang trai; 10HLCD_SETFUNCTION equ 32 ; 20H
LCD_SETCGADDR equ 64 ; 40HLCD_SETDDADDR equ 128 ;ep con tro vao dong thu nhat ; 80H
;;;******************************************************
**********
;vi tri chuong trinh nhay den khi reset org 0000h
jmp start ;nhay den chuong trinh chinh
;bat dau chuong trinh org 0100h
string1:db ' !!THUA THAY CO '
db 0string2:db ' VA CAC BAN!! '
db 0string3:db ' DAY LA DO AN '
db 0string4:db ' MON HOC '
db 0string5:db ' De Tai:HIEN THI '
db 0string6:db ' CHU RA LCD '
Trang 14string7:db ' SVTH: '
db 0string8: db ' _Ng Xuan Mai_ '
db 0string9: db '*Mso Sinh Vien:* '
db 0string10: db ' 0851020006, '
db 0string11: db ' _Ng Van Huu_ '
db 0string12: db '*Mso Sinh Vien:* '
db 0string13: db ' 0851030010 '
db 0string14a: db ' Lop: '
db 0string14b: db ' ^^DH08TD^^ '
db 0string15: db ' Khoa: '
db 0string16: db '*DIEN - DIEN TU* '
db 0string17: db ' Truong: DH '
db 0string18: db ' BA RIA-VUNG TAU '
db 0string19: db ' GVHD: '
db 0string20: db ' !!Co Ngoc Lan!! '
db 0string21: db ' Cam on co da '
db 0string22: db ' huong dan chung '
db 0string23: db ' em lam do an'
db 0string24: db ' thanh cong ^0^ '
db 0string25: db ' Do an nay dua '
db 0
Trang 15string26: db ' tren ung dung '
db 0string27: db ' cua vi xu ly '
db 0string28: db ' (IC89C52).^0o0^ '
db 0string29: db ' Thiet ke va mo '
db 0string30: db ' phong mach bang '
db 0string31: db 'phan mem Proteus '
db 0string32: db ' Cam on thay co '
db 0string33: db ' va cac ban da '
db 0string34: db 'quan tam theodoi '
db 0string35: db ' $THE_END$ '
db 0start: mov A,#038h ;Thong bao LCD la su dung che do Bus 8bit call wrcmd ;goi chuong trinh con goi lenh
loop: mov A,#LCD_SETVISIBLE+6 ;goi lenh 0Eh (8 cong 6 bang E)
de kich hoat LCDcall wrcmd ;goi chuong trinh con goi lenh
mov DPTR,#string1 ;dua dong chu 1a vao con tro dia chi call wrstr ;goi chuong trinh con xuat dong chu toi LCD mov DPTR,#200 ;dua 200 vao con tro de thuc hien viec doi 200ms; chuong trinh wrstr se day lay DPTR*1ms
call wtms ;goi chuong trinh con doi 200ms mov A,#LCD_CLS ;Xóa màn hình LCD
mov A,#LCD_SETDDADDR+64 ; ; dua gia tri C0H vao A.; gia tri lenh dua con tro vao dong thu 2
call wrcmd ; ghi lenh chuyen con tro ve dong thu 2 mov DPTR,#string2
call wrslow mov DPTR,#200 call wtms
Trang 16mov A,#LCD_SETDDADDR+64 ; ;Ðua gia tri C0H vao A; gia tri lenh dua con tro vao dong thu 2
call wrcmd mov A,#LCD_CLS ;Clear screen call wrcmd
mov DPTR,#string3 call wrslow
mov A,#LCD_SETDDADDR+64 ;Ðua gia tri 0CH vao A, call wrcmd
mov DPTR,#string4 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string5 call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string6 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string7 call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string8 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string9
Trang 17call wrslow mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string10 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string11 call wrslow
mov A,#LCD_CLS mov A,LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string12 call wrslow
mov A,#LCD_SETDDADDR+64 ;Ðua gia tri 0CH vao A, call wrcmd
mov DPTR,#string13 call wrslow
mov A,#LCD_CLS mov A,LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string14a call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string14b call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
Trang 18call wrslow mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string16 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string17 call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string18 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string19 call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string20 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string21 call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string22 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64
Trang 19call wrcmd mov A,#LCD_CLS call wrcmd
mov DPTR,#string23 call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string24 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string25 call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string26 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string27 call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string28 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string29 call wrslow
mov A,#LCD_SETDDADDR+64
Trang 20mov DPTR,#string30 call wrslow
mov A,#LCD_CLS mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string31 call wrslow
mov A,#LCD_CLS mov A,LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string32 call wrslow
mov A,#LCD_SETDDADDR+64 call wrcmd
mov DPTR,#string33 call wrslow
mov A,#LCD_CLS mov A,LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
mov DPTR,#string34 lcall delaylc
mov R7,#20loop1:
mov DPTR,#string35 call wrstr
mov DPTR,#1000 ; gia tri de cho delay 1s call wtms
mov A,#LCD_CLS ;Clearscreen call wrcmd
mov DPTR,#string35 call wrstr
mov DPTR,#1000 call wtms
mov A,#LCD_CLS ;Clear screen
Trang 21call wrcmd djnz R7,loop1 mov DPTR,#string35 call wrstr
mov DPTR,#400 call wtms
mov A,#LCD_SETDDADDR+64 call wtms
;*******************************************
mov A,#LCD_SETVISIBLE+7;Show theblink cursor as well tat hien thi nhap nhay con tro(madieu khien F)
call wrcmd mov DPTR,#100 ; gia tri delay 2000*1ms equ 2s call wtms
mov A,#LCD_CLS ;Clear screen call wrcmd
jmp loop ; quay lai chuong trinh ban dau
jz wrstr2 movx @R0,A call wtbusy inc DPTR push DPL push DPH pop DPH pop DPL jmp wrstr1wrstr2: ret
;;;******************************************************
***********
;Chuong trình con viet chuoi ky tu trong DPTR theo tung ky tu
Trang 22wrslw1: clr A movc A,@A+DPTR
jz wrslw2 movx @R0,A call wtbusy inc DPTR push DPL push DPH mov DPTR,#150 ;delay100ms lam cham call wtms
pop DPH pop DPL jmp wrslw1wrslw2: ret
;;;;***********chuong trinh con goi 1 lenh trong thanh ghi A ra LCD****************
wrcmd: mov R0,#LCD_CMD_WR ;dua dia chi RW vao R0 movx @R0,A ;xuat lenh trong thanh ghi A ra LCD jmp wtbusy ;Kiem tra LCD ban
;chuong trinh con ghi mot ky tu len LCDwrchar: mov R0,#LCD_DATA_WR ; dua dia chi WR du lieu vao R0
movx @R0,A ;xuat du lieu nam trong thanh ghi A ra LCD
;Chuong trình con doi LCD het banwtbusy: mov R1,#LCD_BUSY_RD movx A,@r1
jb ACC.7,wtbusy ret
;; chuong trinh con doi tong so giay co trong thanh chua Awtsec:
push ACCcall wtmspop ACC
Trang 23dec Ajnz wtsecret
;;****************************************************
; chuong trinh con doi tong so ms co trong con tro DPTRwtms: xrl DPL,#0FFh ;không th? s? d?ng l?nh DEC DPTR, do dó vòng l?p s? d?ng 2 l?p l?p tang
xrl DPH,#0FFh ;and incrementing instead
inc DPTRwtms1: mov TL0,#low(-1200) ;100 xung = 1ms ? t?n s? th?ch anh 1.2MHz
mov TH0,#high(-1200) mov TMOD,#1 ;Timer 0 mode 1 setb TCON.4 ;Timer 0 runswtms2: jnb TCON.5,wtms2 clr TCON.4 ;Timer 0 stops clr TCON.5
inc DPTR mov A,DPL orl A,DPH jnz wtms1 ret
;;;;*****************************************************
*delaylc:
call wrslow mov A,#LCD_SETDDADDR+64 call wrcmd
mov A,#LCD_CLS call wrcmd
ret
Trang 24***********
END
6 Mô phỏng:
Trang 257 Kết quả thiết kế mạch:
Trang 26-Còn sơ sài và nhiều cho thiếu sót do làm lần đầu và kinh nghiệm chưa có
-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
3 Nhiệm vụ các thành viên:
-Các thành viên cùng tìm tài liệu tham khảo ,thiết kế mạch qua proteus,
ORCAD, tìm và lập trình theo vi xử lý, hoạt động tích cực, năng nổ và nhiệt tình làm đề tài
4 Hướng phát triển:
- Kết hợp với bàn phím hiển thị số khi ta nhấn phím.
- Kết hợp với các cảm biến đo nhiệt độ để hiển thi đo nhiệt độ
- Kết hợp với cảm biến quang hiển thị phân loại và đếm sản phẩm
- Làm mạch hiển thi ngày và giờ
- Làm mạch máy tính cộng trừ nhân chia