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

Mạch báo chuông giờ học

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 (923.53 KB, 37 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

ĐỒ ÁN CHUYÊN NGÀNH 1
ĐỀ TÀI:THIẾT KẾ, CHẾ TẠO MẠCH BÁO CHUÔNG GIỜ HỌC
THEO THỜI GIAN THỰC

GIÁO VIÊN HƯỚNG DẪN : HOÀNG THỊ HẰNG
SINH VIÊN THỰC HIỆN

: NGUYỄN TUẤN HIỆP
DOÃN TRUNG HIẾU
NGUYỄN VĂN HIẾU

LỚP

: 1122202.3


LỜI MỞ ĐẦU________________________________________________________________4
Chương 1:

TỔNG QUAN VỀ ĐỀ TÀI_____________________________________________5

1.1.

Đặt vấn đề_______________________________________________________________5

1.2.

Phân tích yêu cầu thiết kế___________________________________________________5



1.2.1.

Yêu cầu tính năng_______________________________________________________________5

1.2.2.

Yêu cầu phi tính năng____________________________________________________________6

1.2.3.

Yêu cầu về hoạt động của mạch điện_______________________________________________6

1.3.

Cơ sở lý thuyết____________________________________________________________6

1.3.1.

IC thời gian thực DS1307_________________________________________________________6

1.3.2.

IC Vi điều khiển PIC16F877A______________________________________________________7

1.3.2.1.

Giới thiệu________________________________________________________________7

1.3.2.2.


Sơ đồ chân của PIC16F877A_________________________________________________8

1.3.3.

LCD 16X2_____________________________________________________________________9

1.3.4.

CHUÔNG ĐIỆN_________________________________________________________________9

Chương 2:

THIẾT KẾ HỆ THỐNG______________________________________________11

2.1.

Sơ đồ khối tổng thể của mạch điện___________________________________________11

2.2.

Nguyên lý và cấu tạo của các khối chức năng.__________________________________11

2.2.1.

Khối nguồn___________________________________________________________________11

2.2.2.

Khối thời gian thực_____________________________________________________________12


2.2.3.

Khối hiển thị - LCD 16x2_________________________________________________________13

2.2.4.

Khối còi báo__________________________________________________________________14

2.2.5.

Khối nút nhấn_________________________________________________________________15

2.2.6.

Khối Vi điều khiển_____________________________________________________________16

Chương 3:
3.1.

KẾT QUẢ THỰC HIỆN SẢN PHẨM____________________________________17

Sơ đồ nguyên lý, layout và danh mục linh kiện_________________________________17

3.1.1.

Sơ đồ nguyên lý_______________________________________________________________17

3.1.2.


Chương trình điều khiển________________________________________________________17

3.1.3.

Sơ đồ mạch in_________________________________________________________________32

3.2.

Kết quả đạt được trên mạch mô phỏng_______________________________________33

3.3.

Ưu nhược điểm của mạch__________________________________________________35

3.3.1.

Chương 4:

Ưu điểm, nhược điểm của đề tài._________________________________________________35

KẾT LUẬN_______________________________________________________36

2


Nhận xét của giáo viên hướng dẫn
.......................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................

...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
....................................................................
Ngày ... Tháng ... Năm ...
Giáo viên hướng dẫn

3


LỜI MỞ ĐẦU

Kỹ thuật Vi xử lí với tốc độ phát triển nhanh đã và đang mang đến những thay
đổi to lớn trong khoa học và công nghệ cũng như trong đời sống hàng ngày. Ngày nay,
các thiết bị, máy móc áp dụng kĩ thuật Vi xử lí ngày càng trở nên thông minh hơn và
dễ sử dụng hơn, các công việc được thực hiện với hiệu quả cao hơn.

Kỹ thuật Vi xử lí là kỹ thuật của tương lai, là chìa khóa đi vào cơng nghệ hiện đại. Đối
với học sinh, sinh viên chuyên ngành Điện-Điện tử, đây là một lĩnh vực mới, hứa hẹn
mở ra nhiều triển vọng. Để góp phần làm nền tảng ban đầu cho việc học tập, tìm hiểu
và ứng dụng kỹ thuật vi xử lí, chúng em đã quyết định thực hiện Đề tài: “THIẾT KẾ,
CHẾ TẠO MẠCH BÁO CHUÔNG GIỜ HỌC THEO THỜI GIAN THỰC”.
Với sự hướng dẫn của Cơ: HỒNG THỊ HẰNG, chúng em đã tiến hành
nghiên cứu và thiết kế đề tài.
Chúng em đã cố gắng tận dụng tất cả những kiến thức đã học ở trường cùng
với sự tìm tịi nghiên cứu, sáng tạo để có thể hồn thành tốt đồ án này. Những sản
phẩm, những kết quả đạt được ngày hơm nay tuy khơng có gì lớn lao, nhưng đó là
những thành quả của cả một khoá học.
Mặc dù chúng em đã rất cố gắng để hoàn thành đồ án này đúng thời hạn, tuy
vậy vẫn không tránh khỏi những thiếu sót mong q thầy cơ thơng cảm. Chúng em
mong nhận được những ý kiến đóng góp chân thành từ q thầy cơ cùng tồn thể các
bạn.
Trong q trình thực hiện đề tài do khả năng và kiến thức thực tế có hạn nên
khơng thể tránh khỏi sai sót, kính mong thầy cơ đóng góp ý kiến để đề tài hồn thiện
hơn.
Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện:
NGUYỄN TUẤN HIỆP
DOÃN TRUNG HIẾU
NGUYỄN VĂN HIẾU

4


Chương 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. Đặt vấn đề
Yêu cầu đề tài đặt ra là thiết kế chế tạo bảng mạch vi điều khiển thực hiện chức

năng điều khiển thời gian, cài đặt hẹn giờ tự động điều khiển bật tắt thiết bị điện sử
dụng Vi điều khiển PIC16F877A. Đề tài sử dụng IC thời gian thực DS1307, có tác
dụng đếm thời gian, Vi điều khiển PIC16F877A chỉ thực hiện đặt thời gian để đưa vào
DS1307, sau đó đọc giá trị thời gian từ DS1307 ra. Vi điều khiển cịn có chức năng
nhận các tín hiệu đặt thời gian từ các nút bấm, sau đó xử lí để đưa ra thời gian phù hợp
từ đó bật tắt thiết bị điện mong muốn. Đề tài đã chọn LED và LCD để thực hiện chức
năng hiển thị các thông tin và các trạng thái có liên quan trong đề tài.
Từ việc phân tích và khảo sát trên, nhóm đã đưa ra các vấn đề chính cần giải
quyết của yêu cầu đề tài đặt ra là:
-

Tìm hiểu kiến thức cơ bản Vi điều khiển PIC16F877A, đặc biệt là giao tiếp
giữa Vi điều khiển và DS1307.
Xây dựng sơ đồ khối, từ đó xây dựng ngun lí và mơ phỏng mạch trên phần
mềm PROTEUS .
Thiết kế mạch in trên phần mềm ALTIUM
Thực hiện lắp ráp linh kiện trên mạch in.
Tìm hiểu mạch nạp PICKIT và phần mềm nạp PICKIT3 để thực hiện nạp code
cho Vi điều khiển PIC16F877A.
Viết báo cáo tổng hợp về quy trình thực hiện đề tài.

1.2. Phân tích u cầu thiết kế
1.2.1. u cầu tính năng
Mạch có các u cầu tính năng sau:
-

Vi điều khiển: Vi điều khiển PIC16F877A.
Kết nối dữ liệu thông tin thời gian với đồng hồ thời gian thực.
Cấu hình cài đặt được thời gian bằng nút nhấn.
Nguồn cấp: Input 9-12 VDC. Có mạch nguồn ổn áp 5VDC trên bảng mạch.

Màn hình LCD hiển thị thơng số thời gian.
LED trạng thái và relay để thực hiện điều khiển khi đến mốc thời gian đặt
trước.
5


1.2.2.
-

Yêu cầu phi tính năng
Kích thước giới hạn: 9x15 cm. Sắp xếp linh kiện và đi dây khoa học.
Thiết kế các đầu kết nối hợp lý.
Đảm bảo an toàn về liên động điện.

1.2.3. Yêu cầu về hoạt động của mạch điện
- Cài đặt được thời gian cho mạch điện và chạy được thời gian thực.
- Cài đặt hẹn giờ và thực hiện điều khiển relay bật/tắt theo thời gian hẹn trước.
1.3. Cơ sở lý thuyết
1.3.1. IC thời gian thực DS1307

Hình 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 ngồ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.


6


Bảng chức năng các chân IC DS1307
Chân

Tên

Chức năng

1

X1

2

X2

Kết nối đến thạch anh 32.768Khz làm nguồn dao động cho
chip

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

8

VCC

Ngõ xuất xung vng, tần số có thể lập trình để thay đổi từ
1Hz, 4Khz, 8 Khz, 32 Khz
Nguồn cấp chính, khoảng 5VDC

1.3.2. IC Vi điều khiển PIC16F877A
1.3.2.1. Giới thiệu

PIC16F877A là VDK thuộc họ PIC16xxx với tập lệnh gồm 35 lệnh có độ dài
14bit. Mỗi lệnh đều được thực thi trong 1 chu kỳ máy. Tôc độ hoạt động tối đa cho
phép là 20Mhz với mỗi chu kỳ lệnh là 200ns. Bộ nhớ chương trình 8k, bộ nhớ dữ liệu
368 x 8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256 x 8 byte.

Hình 2. IC Vi điều khiển PIC16F877A
7


1.3.2.2. Sơ đồ chân của PIC16F877A

Hình 3. Sơ đồ chân PIC16F877A
* PIC16F877A gồm có 40 chân:
-(VDD, VSS): Cung cấp nguồn điện cho vi điều khiển. VDD là chân nguồn dương
(+5V), VSS là chân nguồn âm (0V hoặc mức tiếp đất).
- (MCLR): Đặt lại vi điều khiển về trạng thái ban đầu.
-(PORTA, PORTB, PORTC, PORTD): Mỗi PORT (A, B, C, D) có 8 chân đầu
vào/đầu ra có thể được cấu hình theo ý muốn.
-(AN0-AN7): Cung cấp các kênh đầu vào analog để đọc dữ liệu từ các cảm biến
analog
-Chân ngoại vi USART (RC6/TX, RC7/RX): Sử dụng cho giao tiếp nối tiếp thông qua
giao thức USART (Universal Synchronous/Asynchronous Receiver/Transmitter).
-Chân ngoại vi SPI (RB0/SS, RB1/SCK, RB2/SDI, RB3/SDO): Sử dụng cho giao tiếp
tuần tự đồng bộ (SPI - Serial Peripheral Interface).
-Chân ngoại vi I2C (RB0/SDA, RB1/SCL): Sử dụng cho giao tiếp tuần tự không đồng
bộ (I2C - Inter-Integrated Circuit).
-Chân ngoại vi PWM (CCP1, CCP2): Sử dụng cho điều khiển độ rộng xung (PWM Pulse Width Modulation) để điều khiển độ sáng, tốc độ động cơ, v.v.
-Chân hẹn giờ/timer (TMR0, TMR1, TMR2): Cung cấp các bộ đếm thời gian để tạo ra
ngắt hẹn giờ, đo thời gian, và các chức năng liên quan.
8



1.3.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ình hiển thị.
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 Vi điều khiển. 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 4. LCD 16x2 trên thực tế

Hình 5. LCD 16x2 dưới dạng sơ đồ chân

1.3.4. CHNG ĐIỆN

Hình 6. LCD 16x2 dưới dạng sơ đồ chân

9


Chuông điện là một loại thiết bị phát âm thanh chuông reo lên khi được cấp
điện nguồn 220V.Chng điện có nhiều loại như chuông điện dùng để làm chuông cửa
điện, chuông điện để báo giờ làm việc tự động hoặc làm chuông báo động khẩn cấp.
Cấu tạo của chuông điện khá đơn gian là sử dụng tốc độ quay của các thiết bị
khi chuyển động va chạm với nhau ra âm thanh hoặc chuông được làm bằng bo mạch
điện tử.

Riêng đối với chng điện 220V thì cũng khá phổ biến tuy ít sử dụng, hiếm khi
sử dụng trong gia đình nhưng trong các cơng ty, nhà xưởng, trường học thì nó đóng
một vai trị rất cấp thiết, có thể kết nối với nút nhấn làm chng báo động khẩn cấp
hoặc báo giờ thủ công nhấn bằng tay
Hiện đại hơn kết hợp chuông điện 220V này vớithiết bị báo giờ làm việc tự
động sẽ trở thànhhệ thống chuông báo giờ làm việc nhà xưởng, trường học thơng minh
và hồn tồn tự động
Chng điện tuy đơn giản, vẻ ngồi khơng nổi bật nhưng nó đóng một vai trị
rất quan trong đối với cuộc sống hằng ngày của chúng ta.

10


Chương 2: THIẾT KẾ HỆ THỐNG
2.1. Sơ đồ khối tổng thể của mạch điện
KHỐI NÚT NHẤN
KHỐI RTC DS1307

KHỐI VI XU LÝ

KHỐI HIỂN THỊ LCD
CỊI BÁO

KHỐI NGUỒN

Hình 7. Sơ đồ khối tổng tổng quan
-

-


Khối nguồn sẽ cung cấp nguồn cho toàn bộ mạch: Khối thời gian thực, còi báo,
khối vi xử lý,Khối hiển thị và Khối điều khiển chính.
Khối điều chỉnh ngày giờ và hẹn giờ là 4 nút bấm MODE, UP, DOWN và OK.
Khối điều khiển chính là vi điều khiển Atmega16 sẽ nhận tín hiệu từ Khối điều
chỉnh hẹn giờ, sau đó thực hiện xử lý rồi giao tiếp với Khối thời gian thực
DS1307 và gọi thời gian. Đồng thời với q trình đó, Khối điều khiển chính
cũng gửi dữ liệu đến các Khối điều khiển thiết bị điện và Khối hiển thị.
Khối hiển thị là LCD 16x2 nhận tín hiệu từ khối điều khiển để hiển thị các
thơng tin về thời gian và thứ - ngày – tháng – năm theo yêu cầu đặt ra.
Khối điều khiển thiết bị điện bao gồm 1 đèn LED báo hiệu và 1 Relay 5V220V. Khi nhận được tín hiệu từ vi điều khiển, đèn LED và Relay sẽ thực hiện
chức năng tự động bật/tắt.

2.2. Nguyên lý và cấu tạo của các khối chức năng.
2.2.1. Khối nguồn
Mạch sử dụng vi điều khiển PIC16F877A làm sư lý trung tâm. Xuất hiển thị LCD thơi
gian thưc với bộ thời gian thưc DS1307. Đồng thời có cị báo khi đến thời gian cài đặt,
với 4 nút nhấn để thay đổi thời gian.

11


U5

DOMINO2

7805
K

1N4007


1

C2

VO

3

C1

0.1mF

D11

C3

LED-RED

0.1mF

KHOI NGUON

330 R22

K

1000mF

VI


A

A

GND

2
1

D1

2

J1

Hình 8. Sơ đồ khối khối nguồn
-Sử dụng nguồn cấp DC từ 7,5V đến 12V. Cấp vào J1. D1 làm nhiệm vụ ngăn không
để cấp ngược nguồn làm hỏng mạch. Tụ C2 và C1 lọc nguồn cấp vào để tang tính ổn
định cho nguồn và cho mạch. IC 7805 U5 làm nhiệm vụ ổn áp cho ra nguồn điện ổn
định 5V với dòng tối đa là 1A. Nguồn 5V này sẽ được lọc lại một lần nữa bằng tụ C3.
Và được cấp cho toàn bộ mạch hoạt động. Đèn LED D11 dùng để báo có nguồn vời
R22 = 330 hạn dòng cho LED.
2.2.2. Khối thời gian thực
Khối thời gian thực sử dụng IC DS1307. DS1307 là một IC thời gian thực với
nguồn cung cấp nhỏ, dùng để cập nhật thời gian và ngày tháng với 56 bytes SRAM.
Địa chỉ và dữ liệu được truyền nối tiếp qua 2 đường bus 2 chiều. Nó cung cấp thơng
tin về giờ,phút,giây ,thứ,ngày ,tháng, năm. Ta cấp nguồn 5V cho DS1307 qua hai chân
số 4 và số 8 của IC. Ngoài ra nguồn pin 3V được nối vào chân số 3 của IC là nguồn
pin dự trữ khi ngắt nguồn cấp chính, đảm bảo IC vẫn hoạt động bình thường (trong
trường hợp mất nguồn nuôi bất chợt, khi khởi động lại mạch không bị sai giờ). Chân

1(X1) và 2(X2) của IC được kết nối với thạch anh có giá trị 32,768KHz để tạo dao
động. ngoài ra, Để tăng độ ổn định tần số của thạch anh . Pin 3V3 dùng để cấp nguồn
cho IC thời gian thực vẫn chạy đúng giờ ngay cả khi mất điện. Các điện trở kéo kên
R1 và R2 có giá trị 4.7k để đáp ứng đúng theo chuẩn I2C. Thời gian sẽ được chạy tự
động trong U2. Các giá trị sẽ được vi điều khiển truy cập đọc và ghi thông qua giao
thức chuẩn I2C với 2 dây.

12


R1

R2

4.7k

4.7k
6
5

scl
sda

J2

7
+

3


U2
SCL
SDA

X1

1

XTAL
32,768

SOUT
VBAT

X2

2

DS1307

khoi dalass

PIN-3V3

Hình 9: Sơ đồ nguyên lý khối thời gian thực

Hình 10: IC DS1307

Hình 11: Thạch anh 32,768KHz


2.2.3. Khối hiển thị - LCD 16x2

D0
D1
D2
D3
D4
D5
D6
D7

GND
K

1
16

7
8
9
10
11
12
13
14

RS
RW
E


VEE

VDD
A

3

2

2
15

LCD12

4
5
6

LCD16X2

3

e

rs

1

10K


Hình 12: Sơ đồ nguyên lý khối hiển thị - LCD 16x2
13


Khối hiển thị sử dụng LCD 16x2, có tác dụng hiển thị thời gian thực và các
thông số cài đặt để thực hiện bật tắt thiết bị. LCD 16x2 gồm 16 chân. Trong đó ta cấp
nguồn cho LCD thơng qua chân số 1(VSS) và số 2(VDD). Chân số 3 được nối với
nguồn thông qua biến trở 10KΩ để điều chỉnh độ tương phản cho LCD. Chân số 15
(Backlight Anode) và chân số 16 (Backlight Cathode) lần lượt được nối với dương
nguồn và âm nguồn để tắt/bật đèn màn hình LCD.
Màn hình LCD 16X2 ở chế độ 4 bít kết nối và được điều khiển bơi vi xử lý.
Các chân 15 và 16 được cấp nguồn và cấp mass để sáng nên cho LCD. Biến trở 10K
được dùng để chỉnh độ tương phản của màn hình. Màn hình giúp hiển thị các ký tự cơ
bản trong bảng mã ASCII với 2 dịng và 16 cột.
2.2.4. Khối cịi báo

LS1

2

Q1

COI-H

R3
10k

1

3


C1815

Hình 13: Sơ đồ nguyên lý khối còi báo
Sử dụng còi báo LS1 buzzer để phát ra âm thanh, được cấp nguồn điều khiển bởi Q1
C1815. Q1 dùng để nâng dòng điều khiển lên đến 1A, điền trở R3 là điện trở phân cự
cho Q1. Khi Q1 dược kích đẫn sẽ cấp nguồn cho cịi báo. Vi điều khiển sẽ phải cấp tín
hiệu điều khiển mức cao thồng qua điện trở phân cự R3 để kích Q1 dẫn.
-Dịng của Q1 C1815 có thể lên đến 50mA.
-Hệ số khuêch đại là 120

14


-Vậy để C1815 dẫn bảo hịa thì
Ib=Icmax/beta=50/120=0.41mA.
-Điện trở Rb được tính
Vbe/Ib=(5-0.7)/4.2=10k ;
2.2.5. Khối nút nhấn
K2
1

2
KEY-TRON

K3
R4
10k

R5

10k

R6

R8

10k

1

2
KEY-TRON

10k

K4
1

2
KEY-TRON

K5
1

2
KEY-TRON

rs

Hình 14: Sơ đồ ngun lý khối nút nhấn

-Sử dụng các nút nhấn một tiếp điểm để tạo mức thay đổi logic giúp vi điều khiển có
thể hiểu đươc khi ta tác động nhấn nút. Các điện trở R4 R5 R6 R8 là các điện trở kéo
lên để xác định mức cao khi không nhấn nút. Các nút nhân K2,K3,K4,K5 khi được
nhấn sẽ kéo dẫn điện xuống mức 0. Với K2 dùng để chọn chỉnh thời gian, K3 dùng để
tang giá trị , K4 dùng để giảm giá trị, K5 dùng để chọn chỉnh báo thức. Các nút này có
thể đễ dàng thay đổi chức năng cho nhau bằng cách sửa lại trong chương trình.

15


2.2.6. Khối Vi điều khiển
X2

20M

2
3
4
5
6
7

C6
R7

10uF

10k

K1

1

13
14

2
KEY-TRON

8
9
10
1

U1
OSC1/CLKIN
OSC2/CLKOUT

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+

RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7

33
34
35
36
37
38
39

40
15
16
17
18
23
24
25
26

rs
e

scl
sda

19
20
21
22
27
28
29
30

PIC16F877A

Hình 15: Sơ đồ nguyên lý khối vi xử lý

-Sử dụng vi xử lý PIC16F877A. Với thạch anh giao động 20M để tạo xung nhịp cho

PIC. Nút nhấn K1 reset chip. Tụ C6 10u làm tụ Reset tự động cho vi xử lý khi mới cấp
nguồn. R7 10k là trở kéo cho chân Reset.
Sử dụng các chân RB0-RB3 làm ngõ vào của 4 nút điều chỉnh. Các chân RD4-RD7
kết nối đến DATA của LCD ở chế độ 4 bit, Chân RB6 làm chân RS chân RB7 làm
chân E điều khiển cho LCD. 2 chân RC3 (SCL) và RC4 (SDA) được hỗ trợ chuẩn giao
tiếp I2C dùng để giao tiếp với DS1307. Chân RE0 được dùng để kích hoạt cịi báo.
Nguồn cấp chính từ khối nguồn 5V.
Với nhiệm vụ chính là giao tiếp và điều khiển các khối khác thành một liên kết thực
hiện các chức năng theo yêu cầu của mạch với chương trình được lập trình.
Ở đây là đọc thời gian từ RTC sau đó hiển thị lên LCD. Đọc các nút nhấn để có thể
hiệu chỉnh thời gian, hiển thị lên LCD và ghi thời gian đã hiệu chỉnh trở lại vào RTC,
đồng thời so sánh thời gian hiện tại với thới gian đặt sẳn để bật còi báo khi 2 thời gian
này bằng nhau.

16


Chương 3: KẾT QUẢ THỰC HIỆN SẢN PHẨM
3.1. Sơ đồ nguyên lý, layout và danh mục linh kiện
3.1.1. Sơ đồ nguyên lý

Hình 16: Sơ đồ nguyên lý
3.1.2. Chương trình điều khiển
// LDNam chuc cac ban thanh cong
#include <16F877a.h> //truy xuat vao file dinh nghia PIC 16F877A
#device adc=10
#FUSES HS //cau hinh cho pic
#use delay(clock=20000000) //tan anh xu dung 4M
#include <ds1307.c> // thu vien DS1307
#define LCD_ENABLE_PIN PIN_D1

#define LCD_RS_PIN PIN_D2
#define LCD_DATA4
PIN_D0
#define LCD_DATA5
PIN_C2
#define LCD_DATA6
PIN_C1
#define LCD_DATA7
PIN_C0
#include <! lcd_tm.c> // thu vien LCD

////
////
////
////
////

17


#define tang pin_B2 // tang
#define giam pin_B3 // giam
#define mode pin_B1 // chinh gio
#define dat_bao pin_B0 // dat bao
#define coi pin_d3
#define rl pin_A1
#define led pin_A0
byte ngay,thang,nam,gio,phut,giay;
byte chinh=0; // chinh thoi gian
byte ct=0; // tao chop tat


//---------------------------------------int8 gio_on[10],phut_on[10];
int8 giay_off[10];
int8 lan_hen;
int8 chon_lan;
int8 giay_nho;
int8 giay_tat;
//---------------------------------------int1 bct=0; // bit tao chop tat
int1 np=1; // bit luu co phim nhan
void hien_thi(); // ham hien thi thoi gian len lcd
void quet_phim(); // ham quet 3 phim nhan
void luu_rom();
void doc_rom();
void bao_gio();
//========================================
void main()
{
lcd_init () ; // khoi tao LCD
ds1307_init(); // khoi tao ds1307
doc_rom(); // Doc thoi các gia tri thoi gian hen tu DS1307
chon_lan=1; // Cho lan hen dau tien khi chinh
output_low(coi); // tat coi bao
giay_tat=0; // Giay dem nguoc khi bao coi = 0
18


output_high(led);
while(true) // vong lap vo han
{
hien_thi(); // hien thi cac gia tri len LCD

if (chinh==0) // neu khong chinh thoi gian
{
ds1307_get_date(ngay,thang,nam); // Doc ngay thang nam tu RTC
ds1307_get_time(gio,phut,giay); // Doc gio phut giay tu RTC
if(giay_nho!=giay) // Khi giay doc duoc khac voi giay truoc do
{
bao_gio(); // Kiem tra so sanh de bao gio
giay_nho=giay; // nho lai giay hien tai
if(giay_tat>0) // neu coi dang bat tuc giay tat > 0
{
giay_tat--; // giam giay tat
if(giay_tat==0) // neu giay tat = 0 thi tat coi
{
output_low(coi); // Tat coi;
output_low(rl);
}
}
}
}
else
if (chinh>3) // neu chinh > 3 tuc dang chinh ngay thang nam th́ doc hien thi gio
phut giay
ds1307_get_time(gio,phut,giay);
int8 i;
for (i=0;i<200;i++) // tao thoi gian tre khoang 60 ms truoc khi cap nhat lai thoi
gian
{
quet_phim(); // quet phim nhan
delay_us(300); // tao thoi gian tre ms
}

}
}
//========================================
19


void bao_gio() // Bao gio theo cac thoi gian dat
{
int8 i;
if(giay_tat==0&&giay==0) // neu coi dang tat và giay = 0
{
for(i=0;i{
if(gio==gio_on[i]&&phut==phut_on[i]&&(gio_on[i]!=0||phut_on[i]!=0)) // bat
coi khi thoi gian bang nhau/ khong bat khi de thoi gian hen là 00-00
{
giay_tat=giay_off[i]; // dat thoi gian bao tuong ung voi lan bao
output_high(coi); // bat coi bao
output_high(rl);
}
}
}
}
//========================================
void doc_rom() // doc thoi gian bao dat
{
int8 i;
int8 dl;
doc_byte_1307(10,dl); // doc gia tri tai dia chi 10 tu RTC
if(dl!=0x55) // Ma mac dinh neu chua duoc ghi

{
lan_hen=2; // dat lai gia tri mac dinh
for (i=0;i<10;i++)
{
gio_on[i]=0;
phut_on[i]=0;
giay_off[i]=1;
}
luu_rom(); // luu lai gia tri mac dinh
}
else
{
doc_byte_1307(11,lan_hen); // doc so lan hen
20



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×