có sơ đồ nguyên lý, sơ đồ khối và lưu đồ giải thuật, mạch in và code đầy đủ cho MẠCH HIỆN THỊ ĐỒNG hồ và NHIỆT độ lên LCD dùng AT89C52 ...............................................................................................................................................................
Trang 1MỤC LỤC
Trang 2DANH MỤC CÁC HÌNH ẢNH
Trang 3DANH MỤC CÁC BẢNG BIỂU
Trang 4CHƯƠ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ư trongsả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 đovậ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ệcbiế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ếnnhiệ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ểnxuấ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 đặtgiờ, 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ị:
Trang 5 Đầ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
Trang 6KHỐI VI ĐIỀU KHIỂN
KHỐI CẢM BIẾN
KHỐI THỜI GIAN THỰC KHỐI HIỆU CHỈNH
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 thời gian thực: Là IC DS1307
2.2 LỰA CHỌN LINH KIỆN2.2.1 Vi điều khiển AT89C52
KHỐI NGUỒN
KHỐI HIỂN THỊ
Trang 72.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ácgiá 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ân32-39 Trong các thiết bị cỡ nhỏ không dùng bộ nhớ mở rộng nó có chứcnă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êncác chân 1-8
Trang 8• 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ùngnhư 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:
• P3.0 • RXD • Ngõ vào dữ liệu nối tiếp
• P3.1 • TXD • Ngõ xuất dữ liệu nối tiếp
• P3.2 • INT0 • Ngõ vào ngắt cứng thứ 0
• P3.3 • INT1 • Ngõ vào ngắt cứng thứ 1
• P3.4 • TO • Ngõ vào của Timer/counter 0
• P3.5 • T1 • Ngõ vào của Timer/counter 1
• P3.6 • /WR • Tín hiệu ghi bộ nhớ dữ liệu
ngoài
• P3.7 • /RD • Tín hiệu đọc bộ nhớ dữ liệu
ngoàiBảng 2.1: Bảng chức năng các chân Port 3 vi điều khiển2.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 đặttrực quan và linh hoạt hơn
Hình 2-4: LCD 16x2
Trang 9Bảng 2.2 Bảng chức năng các chân LCD16X22.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ảnphẩm của hãng Dallas Chip này có 7 thanh ghi thời gian thực Ngoài ra DS1307cò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 đượccung cấp
Trang 10bởi địa chỉ các thanh ghi Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đếnkhi 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ânSDA thiết kế theo kiểu cực máng hở, đòi hỏi phải có một điện trở kéo trongkhi hoạt động
SCL (serial clock input): SCL được sử dụng để đồng bộ sự chuyển dữ liệutrê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
Trang 11Hì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ênchú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 gianThô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 bytethanh 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:
Trang 12 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 bitacknowledge sẽ được truyền, các điều kiện START và STOP sẽ được nhậndạ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ựchiện bởi phần cứng sau khi chấp nhận địa chỉ của slave và bit chiều Byte địachỉ 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 địachỉ 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 acknowledgenhậ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 đượctương tự như chế độ slave ghi Tuy nhiên trong chế độ này thì bit chiều lạichỉ chiều truyền ngược lại Chuỗi dữ liệu được phát đi trên SDA bởi DS1307trong 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 7bit đị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 contrỏ thanh ghi Nếu con trỏ thanh ghi không được viết vào trước khi chế độ
Trang 13đọc được thiết lập thì địa chỉ đầu tiên được đọc sẽ là địa chỉ cuối cùng chứatrong con trỏ thanh ghi DS1307 sẽ nhận được một tín hiệu NotAcknowledge khi kết thúc quá trình đọc
Hình 2-10: Chế độ Data Read2.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.
Trang 142.2.5 Một số linh kiện khác trong mạch
Trang 15CHƯƠNG 3: XÂY DỰNG HỆ THỐNG
3.1 LƯU ĐỒ GIẢI THUẬT
có Không
Nút Mode có nhấn?
Cài Đặt Và GhiRTC vào DS1307
END
Trang 163.2 SƠ ĐỒ NGUYÊN LÝ VÀ MẠCH IN
Hình 3-1: Sơ đồ nguyên lý hệ thống
Trang 17Hình 3-2: Sơ đồ mạch in3.3 SƠ ĐỒ MẠCH MÔ PHỎNG
Hình 3-3: Mạch mô phỏng hệ thống3.4 MÔ HÌNH MẠCH THỰC NGHIỆM
Trang 18Hì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…
Trang 19PHỤ LỤC CODE
RS BIT P2.7 ;RS=0 LENH, RS=1 DU LIEU
;RW BIT P2.6 ;RW=0 GHI, RW=1 DOC
EN BIT P2.6 ;CHO PHEP LCD
;VUNG RAM CHUA DU LIEU TAM THOI
Trang 21;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
Trang 22MOV 37,A ;DON VI
Trang 23MOV 42,A ;CHUC
MOV R1,#20 ;LUU VAO O NHO CUA VDK
MOV ADDR_DS,R0 ;DIA CHI CAN DOC GIA TRI TRONG RTC
Trang 24DJNZ R5,MP22
;LUC NAY NHIET DO DA DUOC CHUYEN DOI XONG
;CAN PHAI DOC RA
;DELAY 200uS, DOI DQ XUONG MUC THAP,TUC LA
;DS18B20 TRA LOI,NHAN DUOC
MOV R7,#100
;DS18B20 DA KHOI DONG
HAVE1820:
SETB FLAG
Trang 30LCALL START_BIT ;START
MOV A,#0D0H ; 0A0=GHI
MOV R7,#8 ; XOAY 8 LAN
LCALL ROTATE ; GUI
LCALL SLAVE_ACK ; DA NHAN
MOV A,ADDR_DS ;DIA CHI BYTE THAP
MOV R7,#8 ; XOAY 8 LAN
LCALL SLAVE_ACK ; DA NHAN
MOV A,WR_DS ; DU LIEU CAN GHI VAO ROM
MOV R7,#8 ; XOAY 8 LAN
LCALL ROTATE ; GUI
LCALL SLAVE_ACK ; DA NHAN
LCALL STOP_BIT ; STOP BIT
Trang 31MOV A,#0D0H ;0A0=GHI
MOV R7,#8 ;XOAY 8 LAN
LCALL ROTATE ;GUI
LCALL SLAVE_ACK ;DA NHAN
MOV A,ADDR_DS ;DIA CHI BYTE THAP
;DOAN CT TREN DA CHO SLAVE BIET LA MASTER CAN DOC DU LIEU O DIA CHI NAO
;DOC DU LIEU TAI DAY
LCALL START_BIT ;START
MOV A,#0D1H ;0A1=DOC
MOV R7,#8 ;XOAY 8 LAN
LCALL SLAVE_ACK ;DA NHAN
;DOAN CTC BEN DUOI LA NHAN DU LIEU SAU KHI DOC TU ROM 24C64 LUU VAO BYTE_READ
MOV R7,#8
READ_DATA:
Trang 32RLC A ; ROTATE NEXT BIT
MOV RE_DS,A ; SAVE ROTATED DATA
Trang 36ACALL READY ;is LCD ready?
CLR RS ;RS=0 for command;RS=1 for data reg ;CLR RW ;R/W=0 to write to LCD
MOV LCD,A ;issue command code
SETB EN ;E=1 for H-to-L pulse
CLR EN ;E=0 ,latch in
RET
DATA_DISPLAY:
ACALL READY ;is LCD ready?
SETB RS ;RS=1 for data
CLR RW ;R/W=0 to write to LCD
MOV LCD,A ;issue data
SETB EN ;E=1 for H-to-L pulse
Trang 37DB ' CAI DAT GIO ',0
DANH MỤC CÁC TÀI LIỆU THAM KHẢO
[1] ThS Trần Công Thịnh Giáo trình kỹ thuật vi xử lý Tp.HCM, Đại học Tôn ĐứcThắng, 2011
[2] Khoa Điện – Điện tử Thí nghiệm vi xử lý Tp.HCM, Đại học Tôn Đức Thắng,2012
[3] Tống Văn On Họ vi điều khiển 8051 Tp.HCM, NXB Lao Động Xã Hội, 2001
Các website tham khảo
[4] http://www.dientuvietnam.net
[5] http://www.alldatasheet.com
[6] http://www.dientu.club/2015/02/giao-tiep-thoi-gian-thuc-ds1307-voi-vi.html
6.71%