Tải bản đầy đủ (.docx) (37 trang)

MẠCH HIỆN THỊ ĐỒNG hồ và NHIỆT độ lên LCD dùng AT89C52 ( có code và mạch in )

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (560.56 KB, 37 trang )

Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

MỤC LỤC

1


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

DANH MỤC CÁC HÌNH ẢNH

2


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

DANH MỤC CÁC BẢNG BIỂU

3


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

CHƯƠNG 1: GIỚI THIỆU VỀ ĐỀ TÀI
1.1
KHẢO SÁT VÀ PHÂN TÍCH BÀI TOÁN
1.1.1 Đặt vấn đề
Thời gian là một vấn đề hết sức quan trọng trong cuộc sống cũng như trong
sản xuất, thời gian cũng là thước đo cho một sự vật sự việc nào đó chẳng hạn khi đo
vận tốc của chiếc xe, sự nhanh hay chậm,… do đó thời gian rất cần thiết. Ngoài việc
biết được thời gian thực chúng ta còn có thể biết được nhiệt độ thực nhờ cảm biến


nhiệt độ dưới sự nghiên cứu thông minh của con người trong thời kỳ hiện đại.
1.1.2 Giải quyết vấn đề
Do yêu cầu về thời gian và nhiệt độ thực nên chúng ta sẽ xét tới việc sử dụng
IC thời gian thực, vi điều khiển, cảm biến, cách thức hiển thị thời gian và nhiệt độ
thực.
1.2
LỰA CHỌN GIẢI PHÁP
1.2.1 Giải pháp thiết kế
 Đầu vào hệ thống lấy dữ liệu từ DS1307, là IC thời gian thực nhằm cung cấp giờ
cho hệ thống, để cập nhật thời gian.
 Cảm biến nhiệt độ IC 18B20 cung cấp nhiệt độ thực cho hệ thống.
 Xử lý, điều khiển dùng vi điều khiển AT89C52. Lập trình vi điều khiển để
xử lý đọc ghi giờ, tính toán hiển thị thời gian.
 Để hiển thị: Lấy giá trị thời gian thực được lưu tạm trong RAM vi điều khiển
xuất lên LCD.
 Điều chỉnh thời gian và cài đặt báo thức thông qua nút bấm: lựa chọn cài đặt
giờ, tăng giảm thời gian.

1.2.2 Xác định bài toán và giới hạn của đề tài
Hệ thống đồng hồ thời gian thực hiển thị:

4


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

 Đầu vào hệ thống lấy dữ liệu từ DS1307, là IC thời gian thực nhằm cung cấp giờ
cho hệ thống. Đầu ra được hiển thị trên LCD.
 Cảm biến nhiệt độ IC 18B20 cung cấp nhiệt độ thực cho hệ thống. Đầu ra
được hiển thị trên LCD.

 Hiển thị chính xác thời gian thực và nhiệt độ.
 Làm việc với điện áp cấp từ nguồn 5 V và nguồn pin 3 V.
 Đảm bảo đúng về thời gian sau khi mất điện.
 Điều chỉnh và thay đổi được thời gian.
 Làm việc được lâu dài và ổn định.

CHƯƠNG 2: THIẾT KẾ HỆ THỐNG
2.1 SƠ ĐỒ KHỐI HỆ THỐNG

5


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

KHỐI
NGUỒN

HỐI HIỆU CHỈNH

KHỐI THỜI GIA
KHỐI VI ĐIỀU KHIỂN

KHỐI HIỂN THỊ

KHỐI CẢM BIẾN

Hình 2-1: Sơ đồ khối chức năng của hệ thống.
 Khối nguồn: Nguồn 5 V cung cấp cho toàn hệ thống.
 Khối hiển thị: Là LCD.
 Khối điều khiển: Sử dụng vi điều khiển AT89C52 điều khiển toàn bộ hoạt động

của mạch, nhận tín hiệu điều khiển từ khối hiệu chỉnh và giá trị từ khối thời gian
và nhiệt độ thực xuất ra khối hiển thị.
 Khối cảm biến: IC 18B20
 Khối thời gian thực: Là IC DS1307.

2.2 LỰA CHỌN LINH KIỆN
2.2.1 Vi điều khiển AT89C52

6


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

2.2.1.1 Cấu tạo và chức năng các khối của AT89C52
• CPU (Central Processing Unit) bao gồm:
 Thanh ghi tích lũy A
 Thanh ghi tích lũy phụ B
Hình 2-2: Chip AT89C52
 Đơn vị logic học (ALU)
 Thanh ghi từ trạng thái chương trình
 Bốn băng thanh ghi
 Con trỏ ngăn xếp
• Bộ nhớ chương trình (ROM) gồm 8 Kbyte Flash.
• Bộ nhớ dữ liệu (RAM) gồm 256 byte.
• Bộ Timer/Counter 16 bit thực hiện chức năng định thời và đếm sự kiện.
• Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong.
• Bộ chia tần số với hệ số chia là 12.
• Cổng xuất nhập với 32 chân.
2.2.1.2 Chức năng các chân của AT89C52
• VCC, GND: Cung cấp nguồn cho bộ vi điều khiển, cấp qua chân 20 và 4.

• Chân EA: Tín hiệu /EA cho phép chọn bộ nhớ chương trình trong hay ngoài.
• XTAL1, XTAL2: Mạch dao động được đưa vào hai chân này thông thường
được kết nối với dao động thạch anh.
• Chân RESET (RST): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết
lập trạng thái ban đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại các
giá trị ban đầu nếu ngõ này ở mức 1.

Hình 2-3: Khối reset cho vi điều khiển
• Port 0 (P0.0=>P0.7): Port 0 gồm 8 chân, có 2 chức năng, nằm trên các chân
32-39. Trong các thiết bị cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức
năng như các đường I/O. Đối với thiết bị cỡ lớn có bộn nhớ trong mở rộng,
P0 là đa hợp địa chỉ và dữ liệu.
• Port 1 (P1.0=>P1.7): Port 1 có thể xuất nhập theo bit và theo byte, nằm trên
các chân 1-8

7


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

• Port 2 (P2.0=>P2.7): Port 2 có tác dụng kép trên các chân 21-28 được dùng
như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với thiết kế lớn
có thể mở rộng và bộ nhớ.
• Port 3: Một số chức năng riêng của Port 3:



















Bit
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6

• P3.7

Tên
RXD
TXD
INT0
INT1
TO
T1

/WR

• /RD










Chức năng
Ngõ vào dữ liệu nối tiếp
Ngõ xuất dữ liệu nối tiếp
Ngõ vào ngắt cứng thứ 0
Ngõ vào ngắt cứng thứ 1
Ngõ vào của Timer/counter 0
Ngõ vào của Timer/counter 1
Tín hiệu ghi bộ nhớ dữ liệu

ngoài
• Tín hiệu đọc bộ nhớ dữ liệu

ngoài
Bảng 2.1: Bảng chức năng các chân Port 3 vi điều khiển
2.2.2 LCD 16x2
Sử dụng LCD 16x2, hiển thị thời gian linh hoạt, hiển thị được nhiều ký tự,
giúp cho việc quan sát thời gian khi đồng hồ chạy bình thường cũng như lúc cài đặt

trực quan và linh hoạt hơn.

Hình 2-4: LCD 16x2

8


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

Bảng 2.2 Bảng chức năng các chân LCD16X2
2.2.3

IC thời gian thực DS1307

2.2.3.1 Giới thiệu chung

Hình 2-5: IC DS1307
DS1307 là chip đồng hồ thời gian thực (RTC: Real-Time Clock), là sản
phẩm của hãng Dallas. Chip này có 7 thanh ghi thời gian thực. Ngoài ra DS1307
còn có 1 thanh ghi điều khiển ngõ ra phụ và 56 Byte SRAM để người dùng sử dụng.
Cơ chế hoạt động: DS1307 hoạt động với vai trò slave trên đường bus nối
tiếp.Việc truy cập được thi hành với chỉ thị start và một mã thiết bị nhất định được
cung cấp

9


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

bởi địa chỉ các thanh ghi. Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đến

khi chỉ thị stop đươc thực thi.
2.2.3.2 Thông số kỹ thuật và chức năng của DS1307

Hình 2-6: Sơ đồ chân DS1307





Vcc: Nối với nguồn, GND nối đất.
X1,X2: Nối với thạch anh 32,768 KHz.
Vbat: Đầu vào pin 3 V.
SDA (serial data input/out): Là chân vào ra cho 2 đường dây nối tiếp. Chân
SDA thiết kế theo kiểu cực máng hở, đòi hỏi phải có một điện trở kéo trong

khi hoạt động.
 SCL (serial clock input): SCL được sử dụng để đồng bộ sự chuyển dữ liệu
trên đường dây nối tiếp.
 SQW/OUT: Xung vuông/đầu ra driver.

2.2.3.3 Sơ đồ địa chỉ RAM DS1307

10


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

Hình 2-7: Tổ chức bộ nhớ DS1307
Vì 7 thanh ghi đầu tiên là quan trọng nhất trong hoạt động của DS1307, nên
chúng ta sẽ khảo sát các thanh ghi này một cách chi tiết. Trước hết hãy quan sát tổ

chức theo từng bit của các thanh ghi này.

Hình 2-8: Tổ chức các thanh ghi thời gian
Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các byte
thanh ghi thích hợp. Thời gian và ngày tháng được thiết lập cũng thông qua các byte
thanh ghi này bằng cách viết vào đó những giá trị thích hợp. Nội dung của các
thanh ghi dưới dạng mã BCD (Binary Coded Decreaseimal).
2.2.3.4 Sự truyền nhận dữ liệu trên Bus 2 chiều
DS 1307 có thể hoạt động ở 2 chế độ sau:

11


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

 Chế độ slave nhận (chế độ DS1307 ghi): Chuỗi dữ liệu và chuỗi xung clock
sẽ được nhận thông qua SDA và SCL. Sau mỗi byte được nhận thì 1 bit
acknowledge sẽ được truyền, các điều kiện START và STOP sẽ được nhận
dạng khi bắt đầu và kết thúc một truyền 1 chuỗi, nhận dạng địa chỉ được thực
hiện bởi phần cứng sau khi chấp nhận địa chỉ của slave và bit chiều. Byte địa
chỉ là byte đầu tiên nhận được sau khi điều kiện START được phát ra từ
master. Byte địa chỉ có chứa 7 bit địa chỉ của DS1307, là 1101000, tiếp theo
đó là bit chiều (R/ w) cho phép ghi khi nó bằng 0, sau khi nhận và giải mã
byte địa chỉ thì thiết bị sẽ phát đi 1 tín hiệu acknowledge lên đường SDA.
Sau khi DS1307 nhận dạng được địa chỉ và bit ghi thì master sẽ gửi một địa
chỉ thanh ghi tới DS1307, tạo ra một con trỏ thanh ghi trên DS1307 và
master sẽ truyền từng byte dữ liệu cho DS1307 sau mỗi bit acknowledge
nhận được, sau đó master sẽ truyền điều kiện STOP khi việc ghi hoàn thành.

Hình 2-9 Chế độ Data Write

 Chế độ slave phát (chế độ DS1307 đọc): Byte đầu tiên slave nhận được
tương tự như chế độ slave ghi. Tuy nhiên trong chế độ này thì bit chiều lại
chỉ chiều truyền ngược lại. Chuỗi dữ liệu được phát đi trên SDA bởi DS1307
trong khi chuỗi xung clock vào chân SCL. Các điều kiện START và STOP
được nhận dạng khi bắt đầu hoặc kết thúc truyền một chuỗi. byte địa chỉ
nhận được đầu tiên khi master phát đi điều kiện START. Byte địa chỉ chứa 7
bit địa chỉ của slave và 1 bit chiều cho phép đọc là 1. Sau khi nhận và giải
mã byte địa chỉ thì thiết bị sẽ nhận 1 bit acknowledge trên đường SDA. Sau
đó DS1307 bắt đầu gửi dữ liệu tới địa chỉ con trỏ thanh ghi thông qua con
trỏ thanh ghi. Nếu con trỏ thanh ghi không được viết vào trước khi chế độ

12


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

đọc được thiết lập thì địa chỉ đầu tiên được đọc sẽ là địa chỉ cuối cùng chứa
trong con trỏ thanh ghi . DS1307 sẽ nhận được một tín hiệu Not
Acknowledge khi kết thúc quá trình đọc.

Hình 2-10: Chế độ Data Read
2.2.4 IC cảm biến nhiệt độ 18B20.
18B20 là cảm biến nhiệt độ được sử dụng rộng rãi trong công nghiệp, bởi giá
thành thấp và cách vận hành đơn giản. 18B20 có mức điện áp thay đổ theo độ C.
Sơ đồ chân 18B20

Hình 2-11: Sơ đồ chân của IC 18B20
Chân DQ là chân ngõ vào ra dữ liệu.
Chân Vdd là cung cấp nguồn.
Chân GND là chân nối mass.


13


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

2.2.5 Một số linh kiện khác trong mạch
2.2.5.1 Nút Nhấn
Trong mạch này ta sử dụng 5 nút bấm để điều khiển mode, tăng, giảm,

Hình 2-12: Nút nhấn 2 chân

2.2.5.2 Pin CMOS 3 V
Sử dụng một đế và pin CMOS 3 V làm nguồn nuôi cho DS1307 để có thể lưu
được giờ khi không có nguồn điện cung cấp cho mạch.

Hình 2-13: Pin CMOS 3 V

14


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG
3.1 LƯU ĐỒ GIẢI THUẬT
START

Kiểm tra dữ liệu
RTC, và nhiệt độ


Đọc RTC DS1307, nhiệt
độ và lưu vào Ram 89C52
Phân tích tín hiệu dữ liệu

Xuất Dữ Liệu RTC và
nhiệt độ lên LCD

Nút Mode có nhấn?
Không
không
END

15



Cài Đặt Và Ghi
RTC vào DS1307


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

3.2 SƠ ĐỒ NGUYÊN LÝ VÀ MẠCH IN

Hình 3-1: Sơ đồ nguyên lý hệ thống

16


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD


Hình 3-2: Sơ đồ mạch in
3.3 SƠ ĐỒ MẠCH MÔ PHỎNG

Hình 3-3: Mạch mô phỏng hệ thống
3.4 MÔ HÌNH MẠCH THỰC NGHIỆM

17


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

Hình 3-4: Mạch mô phỏng thực nghiệm
CHƯƠNG 4: KẾT LUẬN

4.1 ƯU ĐIỂM, KHUYẾT ĐIỂM
4.1.1: ƯU ĐIỂM
- Mạch dễ thực hiện, dễ vận hành, sửa chữa và chi phí thấp.
- Duy trì được thời gian thực và biết được nhiệt độ hiện tại.

4.1.2: KHUYẾT ĐIỂM
- Mạch vẫn còn nhiều khuyết điểm như nhiễu
- Sai số trong quá trình hoạt động.

4.2: HƯỚNG PHÁT TRIỂN
- Cài thêm báo thức, lịch làm việc phục vụ đời sống.
- Ngoài việc hiển thị lên LCD có thể hiển thị lên LED 7 đoạn…..

18



Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

PHỤ LỤC
CODE
;GIAO TIEP DS18B20
;----------------DQ

BIT

P3.7

FLAG EQU 35
TMPL EQU 29H
TMPH

EQU 28H

TMP EQU 27H
;GIAO TIEP VOI NUT NHAN
;---------------------NUT_MODE

BIT

P1.0

NUT_THOAT

BIT


P1.1

NUT_TANG BIT

P1.2

NUT_GIAM BIT

P1.3

;GIAO TIEP DS1307
;---------------SCL BIT

P3.4

SDA BIT

P3.5

;GIAO TIEP LCD MODE 8BIT
;----------------------BUSY BIT

P0.7 ;CO BAO LCD DANG BAN

LCD EQU P0
RS

BIT

P2.7 ;RS=0 LENH, RS=1 DU LIEU


;RW BIT

P2.6 ;RW=0 GHI, RW=1 DOC

EN

P2.6 ;CHO PHEP LCD

BIT

;VUNG RAM CHUA DU LIEU TAM THOI

19


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

;-----------------------------GIAY

EQU 20

PHUT

EQU 21

GIO
TEMP

EQU 22

EQU 24

;VUNG RAM CHUA DU LIEU HIEN THI
;-----------------------------CH_GIO

EQU 30

DV_GIO

EQU 31

DAUHAICHAM1 EQU 32
CH_PHUT

EQU 33

DV_PHUT

EQU 34

DAUHAICHAM2 EQU 35
CH_GIAY

EQU 36

DV_GIAY

EQU 37

RE_DS


EQU 60

ADDR_DS

EQU 61

WR_DS

EQU 62

;":"

;":"

ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
;DOAN CT TAO TRE KHOANG 2S
;MUC DICH:
;DE NGUON CAP CHO MACH DUOC ON DINH HON
;-------------------------------------DELAY2S:

20


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD


MOV R6,#200

;100mS

LAP500uS:
MOV R5,#250

;500uS

DJNZ R5,$
DJNZ R6,LAP500uS
;DOAN CT DOC DU LIEU O NHO GIAY CUA RTC
;NEU BIT 7 = 1 THI RESET RTC
;NEU BIT 7 = 0 THI TOI CHUONG TRINH CHINH
;---------------------------------------;DOAN CTC RESET LAI DS1307
;------------------------MOV ADDR_DS,#00H
MOV WR_DS,#00H

;GHI GIA TRI 0 VAO O NHO GIAY CUA

RTC
LCALL

WRITE_RTC

LCALL

DELAY10MS

;

########################################
#########
BCDTOASCII:
MOV 30,#'T'
MOV 31,#'i'
MOV 32,#'m'
MOV 33,#'e'
MOV 34,#':'
MOV 35,#' '
MOV A,22 ;CHUYEN DOI GIA TRI GIO
ANL A,#0FH
ADD A,#30H

21


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

MOV 37,A ;DON VI
MOV A,22
ANL A,#0F0H
SWAP

A

ADD A,#30H
MOV 36,A ;CHUC
MOV 38,#':'
MOV A,21 ;CHUYEN DOI GIA TRI PHUT
ANL A,#0FH

ADD A,#30H
MOV 40,A ;DON VI
MOV A,21
ANL A,#0F0H
SWAP

A

ADD A,#30H
MOV 39,A ;CHUC
MOV 41,#':'
MOV A,20 ;CHUYEN DOI GIA TRI GIAY
ANL A,#0FH
ADD A,#30H
MOV 43,A ;DON VI
MOV A,20
ANL A,#0F0H
SWAP

A

ADD A,#30H

22


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

MOV 42,A ;CHUC
MOV 44,#' '

MOV 45,#' '

CTC DOC DU LIEU TU DS1307
;
########################################
################
DOC_RTC:
PUSHACC
PUSH00H
PUSH01H
MOV R0,#00H

;DIA CHI DU LIEU CAN DOC BAT DAU LA

MOV R1,#20

;LUU VAO O NHO CUA VDK

MOV ADDR_DS,R0

;DIA CHI CAN DOC GIA TRI TRONG RTC

GIAY

;#############################
GIAOTIEPDS18B20:
LCALL

RESETT


MOV A,#0CCH ;LENH SKIP ROM
LCALL

WRITE

NOP
MOV A,#44H
LCALL

WRITE

NOP
;DELAY 100uS
MOV R5,#10
MP22:

23

;LENH CHUYEN DOI NHIET DO


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

DJNZ R5,MP22
;LUC NAY NHIET DO DA DUOC CHUYEN DOI XONG
;CAN PHAI DOC RA
LCALL

RESETT


MOV A,#0CCH ;LENH SKIP ROM
LCALL

WRITE

LCALL

GET_TEMP

LCALL

TRANS_TEMP

RET
RESETT:
SETB DQ

;DUA DQ TU CAO

NOP
NOP
CLR DQ

;XUONG THAP

;DLEAY 650uS
MOV R7,#3
START_DEL1:
MOV R6,#107
DJNZ R6,$

DJNZ R7,START_DEL1;DOI 650uS
SETB DQ

;TRA DQ LEN CAO LAI

NOP
NOP
;DELAY 200uS, DOI DQ XUONG MUC THAP,TUC LA
;DS18B20 TRA LOI,NHAN DUOC
MOV R7,#100
;DS18B20 DA KHOI DONG
HAVE1820:
SETB FLAG

24


Đề Tài: Đồng Hồ và Nhiệt Độ xuất LCD

;DELAY 234uS
MOV R6,117
DJNZ R6,$
START_OUT:
SETB DQ
RET
GET_TEMP:
JNB

FLAG,NO_TEMP ;NEU KO CO NHIET DO THI CHO HT GIA


TRI 0
MOV A,#0BEH ;LENH DOC VUNG CHUA DU LIEU TAM THOI
LCALL

WRITE

LCALL

READ

MOV TMPL,A
LCALL

READ

MOV TMPH,A
RET
NO_TEMP:
MOV TMPH,#0
MOV TMPL,#0
RET
TRANS_TEMP:
;LAY 4 BIT THAP CO NGHIA CUA THANH GHI MS BYTE (BYTE CAO)
MOV C,28H.3
MOV 27H.7,C
MOV C,28H.2
MOV 27H.6,C
MOV C,28H.1

25



×