ĐỒng hỒ hiỂn thỊ thỜi gian thỰc vÀ nhiỆt ĐỘ
TRANSCRIPT
BỘ CÔNG THƢƠNG
TRƢỜNG CAO ĐẲNG CÔNG THƢƠNG TP.HCM
KHOA: ĐIỆN – ĐIỆN TỬ
BỘ MÔN: ĐIỆN TỬ CÔNG NGHIỆP
ĐỒ ÁN: VI ĐIỀU KHIỂN
ĐỀ TÀI: ĐỒNG HỒ HIỂN THỊ THỜI GIAN
THỰC VÀ NHIỆT ĐỘ
GVHD: Th.S Đào Thành Sung
SVTH1: Phạm Tấn Huân
MSSV: 2116060091
SVTH2: Nguyễn Văn Hảo
MSSV: 2116060019
Tp. Hồ Chí Minh, Tháng 6 Năm 2019
2
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
LỜI MỞ ĐẦU
Hiện nay phát triển không ngừng về mọi mặt, trong đó điện tử, tự động hóa đóng
một vai trò nay với sự không nhỏ. Điện tử góp phần vào quá trình tự động hóa mọi thứ
giúp con ngƣời hiện đại hóa cuộc sống và các hệ thống tự động hóa điều khiển đã dần
thay thế cho sức ngƣời trong các công việc trong gia đình cũng nhƣ cơ quan, trƣờng
học, xí nghiệp,… và một hệ thống tự động đơn giản trong đó là hệ thống “Đồng Hồ
Hiển Thị Thời Gian Thực” trong các trƣờng học, gia đình, xí nghiệp.
Vấn đề đồng hồ hiển thị thời gian thực là vấn đề cần thiết ở bất cứ trƣờng học,
gia đình, xí nghiệp nào, giúp mọi ngƣời biết thời gian để sắp xếp công việc. Chính vì
thế chúng em thiết kế mạch đồng hồ hiển thị thời gian thực.
3
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
LỜI CẢM ƠN
Em xin chân thành cám ơn thầy Đào Thành Sung đã tận tình hƣớng dẫn và tạo
điều kiện thuận lợi cho em hoàn thành tốt đồ án này .Em xin chân thành cám ơn quý
thầy cô trong khoa điện tử cùng các bạn sinh viên trong lớp và khoa đã đóng góp ý
kiến và trao đổi kinh nghiệm trong quá trình thực hiện và hoàn thành đề tài này.
Trong quá trình thực hiện đề tài không thể tránh khỏi sai sót, kính mong quý
thầy cô góp ý và chỉ dẫn để ngƣời thực hiện hoàn thiện hơn trong đồ án vi điều khiển
này.
Ngƣời thực hiện:
( Ký và ghi rõ họ tên)
Phạm Tấn Huân
Nguyễn Văn Hảo
4
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN MÔN HỌC
Tên đề tài: ĐỒNG HỒ HIỂN THỊ THỜI GIAN THỰC VÀ NHIỆT ĐỘ
Ngày giao đề tài: 19/02/2019; Tuần thứ: 2
Ngày hoàn thành đề tài: 05/6/2019; Tuần thứ: 17
Sinh viên thực hiện:
Họ tên sinh viên 1: Phạm Tấn Huân MSSV: 2116060091
Họ tên sinh viên 2: Nguyễn Văn Hảo MSSV: 2116060019
Tuần/ngày Nội dung – công việc thực hiện
Tuần 2-3
(18/2-03/3)
Chọn nhóm và đăng ký đồ án vi điều khiển
Gặp giáo viên hƣớng dẫn đề xuất đề tài đồ án
Chờ giáo viên hƣớng dẫn xét duyệt đề tài đồ án
Tuần 4-7
(04/3-31/3)
Tìm hiểu, lên ý tƣởng và thiết kế sơ đồ nguyên lý
Viết code cho vi điều khiển và mô phỏng trên phần mềm proteus
Tuần 8-9-10
(01/4-21/4)
Kiểm tra sơ đồ nguyên lý ,sửa lỗi và giải thích nguyên lý hoạt
động của mạch
Tuần 11-15
(22/4-26/5) Bắt đầu thi công mạch, chỉnh sửa lỗi và lắp ráp mạch
Tuần 16
(27/5-02/6)
Tiến hành viết báo cáo và đƣa cho giáo viên hƣớng dẫn xem rồi
chỉnh sửa
Tuần 17
(03/6-09/6) Nộp đồ án và báo cáo hoàn chỉnh trƣớc khi bảo vệ
Xác nhận của giáo viên hƣớng dẫn
(Ký và ghi rõ họ và tên)
5
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN
Nhận xét chung:
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
Đánh giá: (Đƣợc phép bảo vệ hay không đƣợc phép bảo vệ)
….......................................................................................................................................
….......................................................................................................................................
….......................................................................................................................................
TPHCM, ngày …. tháng .… năm 2019
Giáo viên hƣớng dẫn
(Ký và ghi rõ họ tên)
6
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
LỜI CAM ĐOAN
Đề tài này là do nhóm của chúng em tự thực hiện dựa vào một số tài liệu tham
khảo và chúng em xin cam đoan đề tài này không sao chép bất kỳ công trình đã có
trƣớc đó. Nếu có sao chép nhóm chúng em hoàn toàn chịu trách nhiệm.
TP.HCM, ngày 26 tháng 5 năm 2019
Ký tên
Phạm Tấn Huân
Nguyễn Văn Hảo
7
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
MỤC LỤC
Lời mở đầu……………………………………………………………………………..2
Lời cảm ơn……………………………………………………………………………..3
Lịch trình thực hiện …………………………………………………………………...4
Nhận xét của GVHD ....................................................................................................... 5
Lời cam đoan................................................................................................................6
Mục lục ........................................................................................................................... .7
Danh mục hình................................................................................................................9
Danh mục bảng...............................................................................................................9
CHƢƠNG 1. TỔNG QUAN VỀ MẠCH ĐỒNG HỒ HIỂN THỊ THỜI GIAN THỰC
VÀ NHIỆT ĐỘ ..............................................................................................................10
1.1. Sơ đồ khổi mạch đồng hồ hiển thị thời gian thực và nhiệt độ…………………...10
1.2. Mục đích và yêu cầu đồ án……………………………………………………….10
1.2.1. Mục đích.......................................................................................................10
1.2.2. Yêu cầu…………………………………………………………………….10
1.2.3. Nhiệt độ động cơ chạy………………………….………………………….10
1.2.4. Cài đặc báo thức……………………..…………………………….………10
1.3. Danh sách linh kiện trong mạch…………………………………………….……11
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT ..............................................................................12
2.1. IC thời gian thực ds 1307………………………………………...………...…….12
2.2. IC vi điều khiển Atmega16………………………………………………………13
2.2.1. Giới thiệu…………………………………………………………………..13
2.2.2. Sơ đồ chân của atmega16………………………………………………….14
2.3. LCD 16X2…………………………………………………………………….….15
2.3.1. Giới thiệu…………………………………………………………………..15
2.3.2. Sơ đồ chân của LCD 16X2……………………………………...…………16
2.4. Cấu tạo và nguyên lý hoạt động của động cơ……………………………………16
2.4.1 Cấu tạo của động cơ………………………………………………..…….16
2.4.2 Nguyên lý hoạt động của động cơ………………….………………………17
8
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
CHƢƠNG 3. THIẾT KẾ - THI CÔNG.........................................................................18
3.1 Sơ đồ nguyên lý của mạch hiển thị thời gian và nhiệt độ………………………..18
3.1.1 Khối công suất………………………………………………………...….18
3.1.2 Khối vi điều khiển…………………………………………………………19
3.1.3 Khối nút nhấn…………………………………………………………….20
3.1.4 Khối thời gian thực ………………………………………………………..21
3.1.5 Khối hiển thị LCD16………………………………………………………22
3.2 Sơ đồ mạch in của mạch hiển thị thời gian thực và nhiệt độ…………………...23
3.2.1 Mô hình thực tế của mạch………………………………………………..24
3.3 Code chƣơng trình ...................................................................................................25
CHƢƠNG 4. KẾT LUẬN .............................................................................................39
TÀI LIỆU THAM KHẢO ................................................................................................40
9
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
DANH MỤC HÌNH
Hình 1.1: Sơ đồ khối mạch đồng hồ hiển thị thời gian thực và nhiệt độ ............... 10
Hình 2.1: IC thời gian thƣc DS1307 ...................................................................... 12
Hình 2.2: IC Atmega16 .......................................................................................... 13
Hình 2.3: Sơ đồ chân Atmega16 ............................................................................ 14
Hình 2.4: LCD 16X2 .............................................................................................. 15
Hình 2.5: Sơ đồ cấu tạo của động cơ ..................................................................... 16
Hình 3.1: Khối công suất ....................................................................................... 17
Hình 3.2: Khối vi điều khiển .................................................................................. 18
Hình 3.3: Khối nút nhấn ......................................................................................... 19
Hình 3.4: Khối thời gian thực ................................................................................. 20
Hình 3.5: Khối hiển thì LCD16X2 ......................................................................... 21
Hình 3.6: Sơ đồ nguyên lý chung ........................................................................... 22
Hình 3.7: Sơ đồ mạch in ......................................................................................... 22
Hình 3.8: Sơ đồ mạch in PDF. ................................................................................ 23
Hình 3.9: Mô hình của mạch đồng hồ hiển thị thời gian thực và nhiệt độ ............. 23
DANH MỤC BẢNG
Bảng 2.1: chức năng các chân IC DS1307……………………………………..12
Bảng 2.2: sơ đồ chân của LCD 16X2…………………………………………..16
10
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
CHƢƠNG 1: TỔNG QUAN VỀ MẠCH HIỂN THỊ THỜI GIAN
THỰC VÀ NHIỆT ĐỘ
1.1 Sơ đồ khối mạch đồng hồ hiển thị thời gian thực và nhiệt độ
Hình 1.1 Sơ đồ khối mạch đồng hồ hiển thị thời gian thực và nhiệt độ
1.2 Mục đích và yêu cầu của đồ án
1.2.1 Mục đích
Hệ thống hiển thị thời gian thực và nhiệt độ.
Hệ thống có khả năng chỉnh lại giờ.
Nhiệt độ hiển thị thay đổi theo nhiệt độ môi trƣờng.
Hệ thống động cơ đƣợc dùng đi dây điện đồng bộ 12V(DC).
1.2.2 Yêu cầu
Hệ thống làm việc ổn định.
Có khả năng đƣa mô hình vào ứng dụng trong thực tế.
1.2.3 Nhiệt độ động cơ chạy
Nhiệt độ cài đặc để động cơ chạy là >33 độ.
1.2.4 Cài đặt báo thức
Thời gian báo thức mặc định là 21h16’, có thể thay đổi trên nút nhấn.
LM35
LCD 16x2
Khối vi điều
khiển
DS1307
Động cơ
12V(DC)
Khối nguồn
Nút nhấn
11
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
1.3 Danh sách linh kiện trong mạch
Động cơ 12V(DC)
Pin CR2025 3v
Màn hình LCD 16*2a
IC Atmega16
DS1307
Biến trở cúc áo
Trở thanh 10k
Trở 220R, 4K7
Thạch anh
Diode 1N4007
Nút nhấn 2 chân
Tụ 33pF
Led đơn
Relay 12V
Băng trở
Transistor C2383, C1815
Lm35
Buzzer
12
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
CHƢƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 IC thời gian thực DS1307
H nh 2 1 IC Thời gian thực DS1307
DS1307 là chip thời gian thực hay RTC (Read time clock), thời gian thực ở đây
là tính chính xác về thời gian tuyệt đối cho thời gian mà con ngƣời đang sử dụng: Thứ,
ngày, tháng, năm, giờ, phút, giây. Thời gian đƣợc lƣu trữ trong DS1307 cho đến năm
2100.
DS1307 đƣợc chế tạo bởi Dallas Semiconductor, chip có cấu tạo bên ngoại khá
đơn giản. Chip DS1307 có 8 chân và chúng ta hay dùng là dạng Dip và thứ tự các chân
nó đƣợc mô tả nhƣ hình.
Chip DS1307 có 7 thanh ghi 8 bit mỗi thanh ghi này chứa: Thứ, ngày, tháng,
năm, giờ, phút, giây. DS1307 đƣợc đọc thông qua chuẩn truyền thông I2C nên do đó
để đọc đƣợc và ghi từ DS1307 thông qua chuẩn truyền thông này.
Bảng 2.1 Chức năng các chân IC DS1307
Chân Tên Chức năng
1 X1 Kết nối đến thạch anh 32.768Khz làm nguồn dao động cho chip
2 X2
3 Vbat Kết nối đến cực dƣơng của Pin dự phòng, có điện áp tiêu chuẩn
khoảng 3V
4 GND Kết nối đến mass
5 SDA Chân dữ liệu khi kết nối đến bus I2C
6 SCL Chân nhận xung clock đồng bộ khi kết nối bus I2C
7 SQW/OUT Ngõ xuất xung vuông, tần số có thể lập trình để thay đổi từ 1Hz,
4Khz, 8 Khz, 32 Khz
8 VCC Nguồn cấp chính, khoảng 5VDC
13
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
2.2 IC VĐK Atmega16
2.2.1. Giới thiệu
Atmega16 là một họ vi điều khiển do hãng Atmel sản xuất (Atmel cũng là nhà
sản xuất dòng vi điều khiển 89C51 mà có thể bạn đã từng nghe đến). AVR là chip vi
điều khiển 8 bits với cấu trúc tập lệnh đơn giản hóa-RISC(Reduced Instruction Set
Computer), một kiểu cấu trúc đang thể hiện ƣu thế trong các bộ xử lí.
Vi điều khiển Atmega16 hiệu suất cao, công suất thấp Atmel 8-bit AVR RISC
dựa trên kết hợp 16KB bộ nhớ flash có thể lập trình, 1KB SRAM, 512B EEPROM,
một 10-bit A / D chuyển đổi 8-kênh, và một giao diện JTAG cho on-chip gỡ lỗi. Thiết
bị hỗ trợ thông lƣợng của 16 MIPS ở 16 MHz và hoạt động giữa 4,5-5,5 volt.
Vi điều khiển Atmega16 thực hiện hƣớng dẫn trong một chu kỳ đồng hồ duy
nhất, các thiết bị đạt đƣợc thông lƣợng gần 1 MIPS mỗi MHz, cân bằng điện năng tiêu
thụ và tốc độ xử lý.
AVR Atmega16 so với các chip vi điều khiển 8 bits khác, AVR có nhiều đặc
tính hơn hẳn, hơn cả trong tính ứng dụng (dễ sử dụng) và đặc biệt là về chức năng.
Gần nhƣ chúng ta không cần mắc thêm bất kỳ linh kiện phụ nào khi sử dụng
AVR, thậm chí không cần nguồn tạo xung clock cho chip (thƣờng là các khối thạch
anh).
Thiết bị lập trình (mạch nạp) cho AVR rất đơn giản, có loại mạch nạp chỉ cần vài
điện trở là có thể làm đƣợc. một số AVR còn hỗ trợ lập trình on – chip bằng
bootloader không cần mạch nạp…
Bên cạnh lập trình bằng ASM, cấu trúc AVR đƣợc thiết kế tƣơng thích C. Nguồn
tài nguyên về source code, tài liệu, application note…rất lớn trên internet. Nguồn tài
nguyên về source code, tài liệu, application note…rất lớn trên internet.
H nh 2.2 IC Atmega 16
14
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
2.2.2 Sơ đồ chân của Atmega16
Hình 2.3 Sơ đồ chân Atmega16
Gồm có 40 chân:
- Chân 1 đến 8 : Cổng nhập xuất dữ liệu song song B (PORTB) nó có thể đc sử dụng
các chức năng đặc biệt thay vì nhập xuất dữ liệu.
- Chân 9 : RESET để đƣa chip về trạng thái ban đầu.
- Chân 10 : VCC cấp nguồn nuôi cho vi điều khiển.
- Chân 11,31 : GND 2 chân này đc nối với nhau và nối đất.
- Chân 12,13 : 2 chân XTAL2 và XTAL1 dùng để đƣa xung nhịp từ bên ngoài vào
chip.
- Chân 14 đến 21 : Cổng nhập xuất dữ liệu song song D (PORTD) nó có thể đc sử
dụng các chức năng đặc biệt thay vì nhập xuất dữ liệu.
- Chân 22 đến 29 : Cổng nhập xuất dữ liệu song song C (PORTC) nó có thể đc sử
dụng các chức năng đặc biệt thay vì nhập xuất dữ liệu.
- Chân 30 : AVCC cấp điện áp so sánh cho bộ ADC.
- Chân 32 : AREF điện áp so sánh tín hiệu vào ADC.
- Chân 33 đến 40 : Cổng vào ra dữ liệu song song A (PORTA) ngoài ra nó còn đc tích
hợp bộ chuyển đổi tín hiệu tƣơng tự sang tín hiệu số ADC (analog to digital converter
2, Vào ra của vi điều khiển.
- PORTA (PA7 … PA0) : là các chân số 33 đến 40. Là cổng vào ra song song 8 bít khi
không dùng ở chế độ ADC. Bên trong có sẵn các điện trở kéo, khi PORTA là output
thì các điện trở kéo ko hoạt động, khi PORTA là input thì các điện trở kéo đc kích
hoạt.
15
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
- PORTB (PB7 ... PB0) : là các chân số 1 đến 8. Nó tƣơng tự nhƣ PORTA khi sử dụng
vào ra song song. Ngoài ra các chân của PORTB còn có các chức năng đặt biệt sẽ đc
nhắc đến sau.
- PORTC (PC7 ... PC0) : là các chân 22 đến 30. Cũng giống PORTA và PORTB khi là
cổng vào ra song song. Nếu giao tiếp JTAG đc bật, các trở treo ở các chân PC5(TDI),
PC3(TMS), PC2(TCK) sẽ hoạt động khi sự kiện reset sảy ra. Chức năng giao tiếp
JTAG và 1 số chức năng đặc biệt khác sẽ đc nghiên cứu sau.
- PORTD (PD7 ... PD0) : là các chân 13 đến 21. Cũng là 1 cổng vào ra song song
giống các PORT khác, ngoài ra nó còn có 1 số tính năng đặc biệt sẽ đc nghiên cứu sau.
3, mạch cấp nguồn nuôi cho vi điều khiển 4, mạch cấp giao động ngoài cho vi điều
khiển dùng thạch anh 5, Mạch nạp avr910 usb.
2.3. LCD 16X2
LCD16x2 là một màn hình hiển thị bao gồm nhiều ma trận nhỏ, khi hoạt động thì
LCD16x2 sẽ hiển thị các kí tự trong bảng mã ASCII .Vi điều khiển gửi các tín hiệu
khởi tạo cho LCD16X2, sau đó hiển thị các đƣợc kí tự lên màn hìnhhiển thị.
2.3.1 Gới thiệu
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) đƣợc sử dụng trong rất nhiều
các ứng dụng của VĐK. LCD có rất nhiều ƣu điểm so với các dạng hiển thị khác: Nó
có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đƣa
vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ
thống và giá thành rẽ.
Hình 2.4 LCD 16X2
16
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
2.3.2 Sơ đồ chân của LCD 16X2
Bảng 2.2 Sơ đồ chân của LCD 16X2
2.4 Cấu tạo và nguyên lý hoạt động của động cơ
2.4.1 Cấu tạo của động cơ.
Hình 2.5 Sơ đồ cấu tạo của động cơ
Động cơ có cấu tạo gồm các phần chính:
1. Cánh quạt.
2. Ổ bi.
3. Cuộn ứng(phần tĩnh).
4. Cuộn cảm(phần quay).
5. Trục.
6. Dây điện đầu ra.
17
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
2.4.2 Nguyên lý hoạt động của động cơ.
Bộ phận chính trong động cơ chính là cuộn cảm và cuộn ứng. Động cơ có cấu tạo
chính là một cuộn dây điện quấn quanh một lõi kim loại từ tính nhƣ sắt hay thép.
Chúng hoạt động trên nguyên lý rất đơn giản nhƣ sau: Khi có dòng điện đi qua cuộn
dây chúng sẽ tạo ra một từ trƣờng trong lõi kim loại. Cuộn dây sẽ khuếch đại từ trƣờng
này và khi đó nam châm điện có thể hút các vật chất bằng sắt thép xung quanh nó
giống nhƣ một nam châm vĩnh cửu thông thƣờng.
Khi relay đóng lại thì dòng điện 12V(DC) sẽ đƣợc khép kín, nó sẽ đi vào trong hệ
thống mạch của động cơ. Khi đó động cơ hoạt động, phần tĩnh tạo ra từ trƣờng làm
trục và phần quay chạy. Trục và phần quay đƣợc cố định bởi ổ bi, cánh quạt đƣợc gắng
vào trục nên tạo ra gió.
Cũng với nguyên tắc này, ngƣời ta có thể thiết kế ra nhiều loại động cơ có kích thƣớc
và tốc độ quay khác nhau.
18
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
CHƢƠNG 3: THIẾT KẾ - THI CÔNG
3.1 Sơ đồ nguyên lý đồng hồ hiển thị thời gian thực và nhiệt độ
3.1.1 Khối công suất
Do động cơ sử dụng nguồn điện 12V(DC) nên ta dụng Tranzitor điều khiển
cuộn hút relay hoặc công tắc tơ, relay và công tắc tơ có tác dụng cách li về điện với
mạch động lực và nó điều khiển đóng ngắt động cơ.
Hình 3.1 Khối công suất
Ở hình vẽ trên ta sử dụng Trans C1815 để kích dòng cho Relay đóng tiếp điểm thƣờng
mở, nguyên lý hoạt động nhƣ sau:
– Khi “Tín hiệu” đƣa vào là mức 0 (Tức =0V) thì Q2 không dẫn do không có dòng
IBE >> Relay không làm việc.
– Khi “Tín hiệu” đƣa vào là mức 1 (Tức =5V) thì sẽ qua R3 hạn dòng làm cho Q2 dẫn
thông lúc này ta có dòng Ice là dòng điện chạy qua cuộn dây >> Q2 >> MASS, Relay
(12V) đóng tiếp điểm thƣờng mở (điều khiển thiết bị nào đó).
– Diot D1 trong mạch có tác dụng chống lại dòng điện cảm ứng do cuộn đây sinh ra
làm hỏng tranzitor. Relay dùng để điều khiển động cơ.
Mục đích của R3 là tạo dòng vào cực B của trans tới ngƣỡng bão hòa để trans hoạt
động nhƣ 1 chiếc khóa có điều kiện.
19
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
3.1.2 Khối vi điều khiển (Atmega16)
Các chân 1-8 thuộc PORTB của vi điều khiển, trong đó từ chân 1-5 đƣợc nối với
khối nút nhấn để tao tín hiệu và điều chỉnh thông số trên LCD16X2 . Chân số 39 nối
với khối công suất để điều khiển chuông báo thức.
Các chân 14-15-16-18-19-20-21 thuộc PORTD của vi điều khiển là ngõ ra của LCD
16X2. Chân số 17 nối với khối công suất để điều khiển động cơ.
Vi điều khiển muốn hoạt động đƣợc cần có một nguồn tạo dao động. Trong các mạch
vi điều khiển thƣờng sử dụng thạch anh để tạo dao động.
Để tăng độ ổn định tần số, ngƣời ta dùng thêm 2 tụ nhỏ C4, C5 (33pF x2), tụ bù nhiệt
ổn tần.
Khi không có mạch dao động thạch anh vô tình bằng cách nào đó bị kéo lên mức 1
(5V) thì vi điều khiển sẽ không hoạt động, vậy nên khi mạch không chạy nên kiểm tra
xem mạch dao động thạch anh đã đúng hay chƣa.
Hình 3.2 Khối vi điều khiển
20
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
3.1.3 Khối nút nhấn
Hình 3.3 Khối nút nhấn
Sử đụng các nút nhấn để tạo tín hiệu vào để điều chỉnh các thông số trên LCD các nút
nhấn lần lƣợt là UP - MODE – DOWN-CHEDO-CHUYEN đƣợc kết nối với các chân
1-2-3-4-5 thuộc PORTB của vi điều khiển.
MODE: điều chỉnh những thông số mà ta muốn thây đổi trên LCD
UP: tăng giá trị của thông số trên LCD
DOWN: giảm giá trị thông số trên LCD
CHEDO: Cài đặc thời gian báo thức
CHUYEN: Chọn chế độ hiển thị 12h hoặc 24h
21
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
3.1.4 Khối thời gian thực
VCC, GND: nguồn 1 chiều đƣợc cung cấp tới các chân này. VCC là đầu vào 5V.
Khi 5V đƣợc cung cấp thì thiết bị đó có thể truy cập hoàn chỉnh và dữ liệu có thể đọc
và viết.
Khi pin 3V đƣợc kết nối tới ds1307 và vcc nhỏ hơn 1.25Vbat thì quá trình đọc và viết
không đƣợc thực thi, tuy nhiên chức năng timekeeping không bị ảnh hƣởng bởi điện
áp vào thấp khi VCC nhỏ hơn Vbat thì RAM và time keeper sẽ đƣợc ngắt tới nguồn
cung cấp ( 3-5VDC).
Hình 3.4 Khối thời gian thực
Vbat: đầu vào pin cho bất kỳ một chuẩn pin 3V. Điện áp pin phải giữ trong khoảng
2.5-3V để đảm bảo cho thiết bị hoạt động tốt.
SCL (serial clock input): SCL đƣợc xử dụng để đồng bộ sự chuyển dữ liệu trên đƣờng
dây nối tiếp.
SDA (serial data input/output): là chân ra vào cho 2 đƣờng dây nối tiếp. Chân SDA
đƣợc thiết kế theo kiểu cực máng hở, vì vậy phải có điện trở R10=10K và R11=10K
kéo lên trong khi hoạt động.
X1, X2: đƣợc nối với thạch anh với tần số 32,768 kHz. Là một mạch tạo dao động
ngoài, để hoạt động ổn định ta nói thêm 2 tụ C1, C2 với giá trị 33pF.
DS1307 với bộ dao động trong tần số 32,768kHz, với cấu hình này thì chân X1 sẽ
đƣợc nối tín hiệu dao động còn chân X2 thì để hở.
22
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
3.1.5 Khối hiển thị LCD
Hình 3.5 Khối hiển thị LCD16X2
LCD 16X2 và giao tiếp với vi điều khiển (Atmega16):
- Các chân 1,2,3 là các chân VSS , VDD, VEE trong đó VSS chân nối đất , VEE chân
chọn độ tƣơng phản chân này dc chọn qua 1 biến trở 5K một đầu nối VEE , một đầu
nối mass chân VSS, một đầu nối nguồn chân VDD.
- Chân chọn thanh ghi RS (Register Select): Có hai thanh ghi trong LCD, chân RS
(Register Select) đƣợc dùng để chọn thanh ghi, nhƣ sau:
Nếu RS = 0 ở chế độ ghi lệnh nhƣ xóa màn hình , bật tắt con trỏ.
Nếu RS =1 ở chế độ ghi dữ liệu nhƣ hiển thị ký tự , chữ số lên màn hình .
- Chân đọc/ ghi (R/W): Đầu vào đọc/ ghi cho phép ngƣời dùng ghi thông tin lên LCD
khi R/W = 0 hoặc đọc thông tin LCD khi R/W = 1.
- Chân cho phép E (Enable): Chân cho phép E đƣợc sử dụng bởi LCD để chốt dữ liệu
của nó. Khi dữ liệu đƣợc đến chân dữ liệu thì cần có 1 xung từ mức cao xuống mức
thấp ở chân này để LCD chốt dữ liệu, Xung này phải có độ rộng tối thiểu 450ns.
- Chân D4 – D7: 4 chân dữ liệu 8 bít, đƣợc dùng để gửi thông tin lên LCD hoặc đọc
nội dung của các thanh ghi trong LCD. Để hiển thị các chữ cái và các con số chúng ta
gửi các mã ASCII của các chữ cái và các con số tƣơng ứng đến các chân này khi bật
RS =1.
23
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
Hình 3.6 Sơ đồ nguyên lý chung
3.2 Sơ đồ mạch in đồng hồ hiển thị thời gian thực và nhiệt độ
Hình 3.7 Sơ đồ mạch in
24
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
Hình 3.8 Sơ đồ mạch in PDF
3.2.1 Mô hình thực tế của mạch
Hình 3.9 Hình ảnh thực tế của mạch đồng hồ hiển thị thời gian thực
25
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
3.3 Code chƣơng trình
/*******************************************************
This program was created by the
CodeWizardAVR V3.12 Advanced
Automatic Program Generator
© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 01/04/2019
Author :
Company :
Comments:
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*******************************************************/
#include <mega16.h>
#include <delay.h>
// Alphanumeric LCD functions
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
26
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
// DS1307 Real Time Clock functions
#include <ds1307.h>
// Alphanumeric LCD functions
#include <alcd.h>
#define up PINB.4
#define mod PINB.3
#define dw PINB.2
#define che_do PINB.0
#define chuyen PINB.1
#define bat PORTA.1
#define ADC_VREF 0xe0 //Lay ap 2.56V, ADLAR=1
// Declare your global variables here
unsigned char h,m,s,gtmod,h_cd,dem;
signed char mod_hen,gio=20,phut=15;
unsigned char ngay,thang,nam,thu;
unsigned int nd;
bit tt_cd,tt_chuyen;
void hienthi()
{
if(tt_chuyen==0)
{
if(tt_cd==0)
{
h_cd=h;
}
else
{
if(h<13) h_cd=h;
else h_cd=h-12;
}
27
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
lcd_gotoxy(0,0);
lcd_putchar(nd/10+0x30);
lcd_putchar(nd%10+0x30);
lcd_putchar(0xdf);
lcd_puts("C ");
lcd_gotoxy(8,0);
lcd_putchar(h_cd/10+0x30);
lcd_putchar(h_cd%10+0x30);
lcd_puts(":");
lcd_putchar(m/10+0x30);
lcd_putchar(m%10+0x30);
lcd_puts(":");
lcd_putchar(s/10+0x30);
lcd_putchar(s%10+0x30);
if(thu==1)
{
lcd_gotoxy(0,1);
lcd_puts("CN ");
}
else
{
lcd_gotoxy(0,1);
lcd_puts("T");
lcd_putchar(thu+0x30);
lcd_puts(" ");
}
lcd_gotoxy(6,1);
lcd_putchar(ngay/10+0x30);
lcd_putchar(ngay%10+0x30);
lcd_puts("/");
28
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
lcd_putchar(thang/10+0x30);
lcd_putchar(thang%10+0x30);
lcd_puts("/20");
lcd_putchar(nam/10+0x30);
lcd_putchar(nam%10+0x30);
}
else
{
lcd_gotoxy(0,0);
lcd_puts("CAI DAT HEN GIO ");
lcd_gotoxy(0,1);
lcd_puts(" ");
lcd_putchar(gio/10+0x30);
lcd_putchar(gio%10+0x30);
lcd_puts(":");
lcd_putchar(phut/10+0x30);
lcd_putchar(phut%10+0x30);
lcd_puts(" ");
}
}
unsigned char read_adc(unsigned char adc_input){
ADMUX=adc_input | ADC_VREF; //Chon kenh ADC va ap so sanh
ADCSRA|=0x40; //Start ADC
while (!(ADCSRA & 0x10)); //Kiem tra co ADC
ADCSRA|=0x10;
return ADCH; //ADC 8bit
}
void cdchuyen()
{
if(chuyen==0)
29
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
{
delay_ms(20);
if(chuyen==0)
{
tt_chuyen=~tt_chuyen;
mod_hen=0;
gtmod=0;
while(chuyen==0);
}
}
}
void cdmod()
{
if(mod==0)
{
delay_ms(20);
if(mod==0)
{
if(tt_chuyen==0)
{
mod_hen=0;
gtmod++;
if(gtmod>6) gtmod=0;
}
else
{
gtmod=0;
mod_hen++;
if(mod_hen>2) mod_hen=0;
}
30
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
while(mod==0);
}
}
}
void cdchedo()
{
if(che_do==0)
{
delay_ms(20);
if(che_do==0)
{
tt_cd=~tt_cd;
while(che_do==0);
}
}
}
void cdup()
{
if(up==0)
{
delay_ms(20);
if(up==0)
{
if(tt_chuyen==0)
{
if(gtmod==1)
{
h++;
if(h>23) h=0;
rtc_set_time(h,m,s);
31
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
}
else if(gtmod==2)
{
m++;
if(m>59) m=0;
rtc_set_time(h,m,s);
}
else if(gtmod==3)
{
thu++;
if(thu>7) thu=1;
rtc_set_date(thu,ngay,thang,nam);
}
else if(gtmod==4)
{
ngay++;
if(ngay>31) ngay=1;
rtc_set_date(thu,ngay,thang,nam);
}
else if(gtmod==5)
{
thang++;
if(thang>12) thang=1;
rtc_set_date(thu,ngay,thang,nam);
}
else if(gtmod==6)
{
nam++;
if(nam>99) nam=1;
rtc_set_date(thu,ngay,thang,nam);
32
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
}
}
else
{
if(mod_hen==1)
{
gio++;
if(gio>23) gio=0;
}
else if(mod_hen==2)
{
phut++;
if(phut>59) phut=0;
}
}
while(up==0);
}
}
}
void cddw()
{
if(dw==0)
{
delay_ms(20);
if(dw==0)
{
if(tt_chuyen==0)
{
if(gtmod==1)
{
33
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
h--;
if(h==0) h=23;
rtc_set_time(h,m,s);
}
else if(gtmod==2)
{
m--;
if(m==0) m=59;
rtc_set_time(h,m,s);
}
else if(gtmod==3)
{
thu--;
if(thu<1) thu=7;
rtc_set_date(thu,ngay,thang,nam);
}
else if(gtmod==4)
{
ngay--;
if(ngay<1) ngay=31;
rtc_set_date(thu,ngay,thang,nam);
}
else if(gtmod==5)
{
thang--;
if(thang<1) thu=12;
rtc_set_date(thu,ngay,thang,nam);
{ else if(gtmod==6) }
nam--;
if(nam<1) nam=99;
34
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
rtc_set_date(thu,ngay,thang,nam);
}
}
else
{
if(mod_hen==1)
{
gio--;
if(gio<0) gio=23;
}
else if(mod_hen==2)
{
phut--;
if(phut<0) phut=59;
}
{ while(dw==0); }
}
}
void nhap_nhay()
{
dem++;
delay_ms(1);
if(dem<100)
{
if(tt_chuyen==0)
{
if(gtmod==1)
{
lcd_gotoxy(8,0);
lcd_puts(" ");
35
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
}
else if(gtmod==2)
{
lcd_gotoxy(11,0);
lcd_puts(" ");
}
else if(gtmod==3)
{
lcd_gotoxy(0,1);
lcd_puts(" ");
}
else if(gtmod==4)
{
lcd_gotoxy(6,1);
lcd_puts(" ");
}
else if(gtmod==5)
{
lcd_gotoxy(9,1);
lcd_puts(" ");
}
else if(gtmod==6)
{
lcd_gotoxy(12,1);
lcd_puts(" ");
}
else hienthi();
}
else
{
36
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
if(mod_hen==1)
{
lcd_gotoxy(5,1);
lcd_puts(" ");
}
else if(mod_hen==2)
{
lcd_gotoxy(8,1);
lcd_puts(" ");
}
else hienthi();
}
}
else if(dem<200) hienthi();
else
{
dem=0;
nd=read_adc(0);
}
}
void kiem_tra_hen_gio()
{
if((gio==h)&&(phut==m))
{
if(s<16)
{
bat=1;
delay_ms(15);
bat=0;
delay_ms(15);
37
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
}
else bat=0;
}
else bat=0;
}
void main(void)
{
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 0
// RD - PORTD Bit 1
// EN - PORTD Bit 2
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// Characters/line: 16
DDRD=0xff;
DDRB=0x00;
DDRC=0xff;
DDRA=0xfE;
lcd_init(16);
i2c_init();
h=20;
m=50;
s=0;
thu=6;
ngay=25;
thang=5;
38
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
nam=19;
// rtc_set_date(thu,ngay,thang,nam);
// rtc_set_time(h,m,s);
ADMUX=ADC_VREF;
ADCSRA=0x86; //Fosc/64
tt_chuyen=0;
mod_hen=0;
gtmod=0;
bat=0;
gio=21;
phut=03;
nd=read_adc(0);
while (1)
{
if((mod_hen==0)&&(gtmod==0))
{
kiem_tra_hen_gio();
rtc_get_time(&h,&m,&s);
rtc_get_date(&thu,&ngay,&thang,&nam);
if(nd>33) PORTD.3=1;
else PORTD.3=0;
}
nhap_nhay();
cdmod();
cdup();
cddw();
cdchedo();
cdchuyen();
}
}
39
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
CHƢƠNG 4: KẾT LUẬN
Nhờ sự giúp đỡ nhiệt tình từ GVHD nên chúng em đã hoàn thành đồ án trong thời
gian quy định, nhƣng do các thành viên trong nhóm còn vƣớng tiết học ở lớp nên đồ
án còn sơ sài, mong các thầy(cô) bỏ qua và cho chúng em thêm ý kiến về đồ án để
chúng em có thể hoàn thiện tốt hơn. Chúng em mong các thầy(cô) bỏ qua các khuyết
điểm để chúng em có thể bảo vệ thành công đồ án.
Những điều đã làm đƣợc trong đồ án này:
- Tìm hiểu đƣợc nguyên lí hoạt động của ATMEGA16.
- Tìm hiểu đƣợc nguyên lí hoạt động của cảm biến đo nhiệt độ LM35.
- Cách ứng dụng thực tế của mạch đồng hồ hiển thị thời gian thực và nhiệt độ
trong đồ án.
Những điều chƣa làm đƣợc trong đồ án này:
- Chƣa hoàn toàn hiểu hết code đồ án.
- Chƣa phân chia thời gian hợp lí để hoàn thành đồ án sớm hơn.
- Chƣa thực sự tìm hiểu thêm về các cảm biến khác ngoài LM35, và các ứng
dụng phổ biến khác của cảm biến đo nhiệt độ.p
-
40
Đồ án: Đồng hồ hiển thị thời gian thực và nhiệt độ GVHD: Th.S Đào Thành Sung
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Lâm Quang Chuyên, 2012, Giáo trình vi điều khiển, Trƣờng Cao đẳng Công
thƣơng Tp. HCM.
[2]. Nguyễn Đình Phú, Nguyễn Trƣờng Duy, 2013, Kỹ Thuật Số, Xuất bản Đại Học
Quốc Gia, Tp.HCM.
Tiếng Anh
[1]. Brander, J., 1985a, Competition Management, Journal of International
Economics, Số 18, trang 83-100.
[2]. Brander, J., 1985b, Benefits of Competition, Journal of International
Economics, Số 18, trang 68-108.
[3]. Jaffe, J. and Westerfield R., 1985, The impact of inflation, Journal of Finance, Số
40, trang 25-34.