1. Trang chủ
  2. » Luận Văn - Báo Cáo

LẬP TRÌNH NHÚNG: THIẾT KẾ ĐỒNG HỒ BÁO CHUÔNG TRƯỜNG HỌC

15 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 678,59 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngày nay việc ứng dụng vi điều khiển, vi xử lý đang ngày càng phát triển rộng rãi và thâm nhập ngày càng nhiều vào các lĩnh vực kỹ thuật và đời sống xã hội. Tuy nhiên ứng dụng cho các hệ thống nhúng ngày nay không đơn giản chỉ dừng lại ở điều khiển đèn nhấp nháy, đếm số người vàora, hiển thị dòng thông báo trên matrix hay điều khiển ONOFF của động cơ…mà nó ngày càng trở nên phức tạp. Và với xu hướng tất yếu này cùng với sự phát triển mạnh mẽ của công nghệ chế tạo vi mạch, người ta đã tạo ra những vi điều khiển có cấu trúc mạnh hơn, đáp ứng thời gian thực tốt hơn, chuẩn hóa hơn so với các vi điều khiển 8 bit trước đây.

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA ĐIỆN TỬ VIỄN THÔNG

ĐỀ TÀI:

THIẾT KẾ ĐỒNG HỒ BÁO CHUÔNG TRƯỜNG HỌC

Giảng viên : Ths.Trần

Vũ Kiên

Sinh viên thực hiện : Đào Thị Nhung

Mã sinh viên :

18810540031

Lớp :

D13DT&KTMT

Hà Nội, tháng 10 năm 2021

Trang 2

MỤC LỤC

DANH SÁCH HÌNH ẢNH

Trang 3

MỞ ĐẦU

Ngày nay việc ứng dụng vi điều khiển, vi xử lý đang ngày càng phát triển rộng rãi và thâm nhập ngày càng nhiều vào các lĩnh vực

kỹ thuật và đời sống xã hội Tuy nhiên ứng dụng cho các hệ thống nhúng ngày nay không đơn giản chỉ dừng lại ở điều khiển đèn nhấp nháy, đếm số người vào/ra, hiển thị dòng thông báo trên matrix hay điều khiển ON-OFF của động cơ…mà nó ngày càng trở nên phức tạp

Và với xu hướng tất yếu này cùng với sự phát triển mạnh mẽ của công nghệ chế tạo vi mạch, người ta đã tạo ra những vi điều khiển có cấu trúc mạnh hơn, đáp ứng thời gian thực tốt hơn, chuẩn hóa hơn

so với các vi điều khiển 8 bit trước đây

Ưu điểm của việc sử dụng các linh kiện điện tử làm cho các hệ thống linh hoạt và đa dạng hơn, giá thành thấp hơn và độ chính xác cao hơn Với tính ưu việt của vi điều khiển thì trong phạm vi báo cáo

đề tài nhỏ này, em đã chọn đề tài " thiết kế đồng hồ báo chuông trường học sử dụng thời gian thực hiển thị trên LCD"

Tuy nhiên do kiến thức chuyên môn còn hạn chế, em mong thầy

sẽ góp ý bổ sung để đề tài của em được hoàn thiện hơn và giúp em hiểu biết hơn trong quá trình học tiếp theo

Xây dựng phương án

Em sẽ thiết kế đồng hồ báo tiết học của trường học với thời khóa biểu trong phạm vi mùa hè với những nội dung:

- Mỗi ngày có 2 buổi học mỗi buổi kéo dài 6 tiết

- Thời gian của mỗi tiết là 45 phút

- Thời gian nghỉ giải lao là 5 phút

- Sau tiết thứ 3 của mỗi buổi nghỉ giải lao 10 phút

Thời khóa biểu như sau:

Trang 4

4 9h20 10h05 10 15h05 15h50

5 10h10 10h55 11 15h55 16h40

6 11h00 11h45 12 16h45 17h30

- Thời gian báo:

+ Thời gian báo là 10 giây đối với những tiết bắt đầu, ra tiết thứ

3 vào tiết thứ tư của mỗi buổi, kết thúc của mỗi buổi

+ Còn lại thời gian báo cho các thời điểm khác là 5 giây

- Cách báo : sử dụng chuông điện 220V

- Phạm vi báo: Tất cả khu vực trong trường

NỘI DUNG CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI

1.1 Sơ đồ tổng quát

Hình 1.1: Sơ đồ khối tổng quát

1.2 Chức năng các khối

1.2.1 Khối nguồn

Cung cấp nguồn nuôi tất cả linh kiện trong mạch

1.2.2 Chức năng của khối RTC

Khối này là một chíp thời gian thực (Real Time Clock), được sử dụng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng Nó

Trang 5

có pin cấp riêng, nếu như mất nguồn điện thì RTC vẫn có thể hoạt động bình thường và chính xác theo thời gian đã được thiết lập ban đầu Trong sơ đồ này nó sẽ đảm nhiệm chức năng cấp time chính xác cho vi điều khiển xử lý các công việc mà người sử dụng yêu cầu 1.2.3 Chức năng của khối điều chỉnh

Chức năng của khối này là sử dụng ngắt của 89C51 để yêu cầu việc điều chỉnh time theo ý của người sử dụng, cài đặt time ban đầu cho đồng hồ thời gian thực RTC Tác động bởi các phím bấm (BUTTON).

1.2.4 Khối âm thanh

Khối này gồm có transistor thông dòng cho loa kêu khi có mức điện áp thay đổi liên tục ở chân ra của vi điều khiển

1.2.5 Khối hiển thị

Khối này thực chất là LCD 16x2 để hiển thị time và các thông tin mà lập trình viên cần hiển thị

1.2.6 Khối xử lý (vi điều khiển 89C51)

Vi điều khiển 89C51 là trung tâm xử lý các thông tin của mạch:

 AT89C51 đảm nhiệm việc đọc thời gian từ DS1307, chuyển đổi dữ liệu qua lại giữa RTC với LCD để có thể hiển thị lên LCD, đồng thời cập nhật time từ DS1307

 Điều khiển LCD

 Kiểm tra phím bấm

 Điều khiển loa

CHƯƠNG 2: THIẾT KẾ HỆ THỐNG

Trang 6

2.3 Giới thiệu chung về DS1307:

DS1307 là chip thời gian thực hay RTC (Read time clock) Đây là một IC tích hợp cho thời gian bởi vì tính chính xác về thời gian tuyệt đối cho thời gian : Thứ, ngày, tháng, năm, giờ, phút, giây DS1307 là chế tạo bởi Dallas Chip này 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

Ngoài ra DS1307 còn chứa 1 thanh ghi điều khiển ngõ ra phụ

và 56 thanh ghi trống các thanh ghi này có thể dùng như là RAM DS1307 được đọc thông qua chuẩn truyền thông I2C nên do đó để đọc được và ghi từ DS1307 thông

Sơ đồ khối của DS1307:

Hình 2.1: Sơ đồ khối của DS1307

2.1 Sơ đồ callgraph 2.2 Sơ đồ đặc tả

Trang 7

*Mô tả hoạt động của các chân:

• Vcc, GND: nguồn một 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 nối tới thiết bị này và Vcc nhỏ hơn 1,25Vbat thì quá trình đọc và viết không được thực thi Khi Vcc nhỏ hơn Vbat thì RAM

và timekeeper sẽ được ngắt tới nguồn cung cấp trong (thường

là nguồn 1 chiều 3V)

• Vbat: Đầu vào pin cho bất kỳ một chuẩn pin 3V Điện áp pin phải được giữ trong khoảng từ 2,5V đến 3V để đảm bảo cho sự hoạt động của thiết bị

• 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

• 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

• SQW/OUT(square wave/output driver)- là một ngõ ra phụ tạo xung dao động (xung vuông)

• X1, X2: được nối với một thạch anh tần số 32,768kHz Là một mạch tạo dao động ngoài, để hoạt động ổn định thì phải nối thêm 2 tụ 33pF

Các thanh ghi và cơ sở mã hóa DS1307

- Thời gian, lịch được thiết lập hoặc khởi tạo bằng cách ghi các byte thanh ghi thích hợp

- Hình dưới đây là tổ chức theo từng bit của các thanh ghi:

Trang 8

Hình 2.2: Các bit thanh ghi

Thanh ghi giờ (HOURS):

Có thể nói đây là thanh ghi phức tạp nhất trong DS1307 Thanh ghi này có địa chỉ 0x02 Trước hết 4-bits thấp của thanh ghi này được dùng cho chữ số hàng đơn vị của giờ Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ (gọi là mode) là 12h (1h đến 12h) và 24h (1h đến 24h) giờ, bit 6 xác lập hệ thống giờ Nếu bit 6 = 0 thì hệ thống 24h được chọn, khi đó 2 bit cao 5 và 4 dùng mã hóa chữ số hàng chục của giá trị giờ Do giá trị lớn nhất của chữ số hàng chục trong trường hợp này là 2 (=10, nhị phân) nên 2 bit 5 và 4 là đủ để mã hóa Nếu bit 6 = 1 thì hệ thống 12h được chọn, với trường hợp này chỉ có bit 4 dùng mã hóa chữ số hàng chục của giờ, bit 5 chỉ buổi trong ngày, AM hoặc PM Bit 5 = 0 là AM và bit 5 = 1 là PM Bit 7 luôn bằng 0

Thanh ghi phút (MINUTES):

Có địa chỉ 0x01, chứa giá trị phút của đồng hồ Tương tự thanh ghi SECONDS, chỉ có 7 bit của thanh ghi này được dùng lưu mã BCD của phút, bit 7 luôn luôn bằng 0

Thanh ghi giây (SECONDS):

Thanh ghi này là thanh ghi đầu tiên trong bộ nhớ của DS1307, địa chỉ của nó là 0x00 Bốn bit thấp của thanh ghi này chứa mã BCD 4-bit của chữ số hàng đơn vị của giá trị giây Do giá trị cao nhất của chữ số hàng chục là 5 (không có giây 60 !) nên chỉ cần 3 bit (các bit

Trang 9

SECONDS6:4) là có thể mã hóa được (số 5 =101, 3 bit) Bit cao nhất, bit 7, trong thanh ghi này là 1 điều khiển có tên CH (Clock halt – treo đồng hồ), nếu bit này được set bằng 1 bộ dao động trong chip bị vô hiệu hóa, đồng hồ không hoạt động Vì vậy, nhất thiết phải reset bit này xuống 0 ngay từ đầu

Thanh ghi thứ (DAY – ngày trong tuần):

Nằm ở địa chỉ 0x03 Thanh ghi DAY chỉ mang giá trị từ 1 đến 7 tương ứng từ Chủ nhật đến thứ 7 trong 1 tuần Vì thế, chỉ có 3 bit thấp trong thanh ghi này có nghĩa

Các thanh ghi còn lại:

DATE chứa ngày trong tháng (1 đến 31), MONTH chứa tháng (1 đến 12) và YEAR chứa năm (00 đến 99) Chú ý, DS1307 chỉ dùng cho

100 năm, nên giá trị năm chỉ có 2 chữ số, phần đầu của năm do người dùng tự thêm vào (ví dụ 20xx) Ngoài các thanh ghi trong bộ nhớ, DS1307 còn có một thanh ghi khác nằm riêng gọi là con trỏ địa chỉ hay thanh ghi địa chỉ (Address Register)

Trang 10

CHƯƠNG 3: THIẾT KẾ MẠCH

3.1 Sơ đồ nguyên lý

Hình 3.1: Sơ đồ nguyên lý

3.2 Sơ đồ nguyên lý cho từng khối

3.2.1 Khối nguồn

- Nguồn cung cấp cho toàn

mạch là +5VDC Do đó

mạch nguồn chỉ cần sử

dụng vi mạch ổn áp 7805

với dòng 0.5 A Mạch được

thiết kế như hình bên:

C 1

1 0 0 u F

D 1

L E D p o w e r

D 2

d i o d e c a u

V C C

U 4

L M 7 8 0 5

1

3

V I N

D V O U T

J 1

c o n n e c t o r

1 3

S 2

c o n g t a c

R 2

2 2 0

Hình 3.2: Khối nguồn

- Đối với role ta sử dụng nguồn nuôi riêng 12V Có thể điều chế theo nhiều cách khác nhau

- Đối với chuông ta sử dụng nguồn 220V mắc riêng rẽ

Trang 11

*Chú ý nguồn nuôi cho mạch điều khiển cần giữ sự ổn định vì vậy ta

sử dụng ổn áp LM7805 cho nó

3.2.2 Khối hiển thị LCD

- LCD 16x2 và giao tiếp với vi

điều khiển:

VEE của LCD được nối với

biến trở và nguồn 5V để điều

chỉnh độ sáng của LCD

- Hiển thị time 1 ngày của RTC

lên LCD

+ 3 chân điều khiển

(RS,RW,E )

+ Đường dữ liệu D0 đến D7

+ Chân điều khiển độ sáng

tối của LCD chân VEE em sử

dụng 1 biến trở để điều chỉnh

thích hợp

U 3

L C D

5 v

Hình 3.3: Khối hiển thị

3.2.3 Khối xử lý AT89C51

- Dùng bộ vi điều khiển AT89C51

với dòng điện tiêu thụ thấp và

có thể lập trình được

- Vi điều khiển sử dụng thạch

anh dao động là 12Mhz Nút ấn

kết hợp với tụ C để thực hiện

reset

Y 1

C R Y S T A L

R 1

C 2

C A P

C 3

0

C 1

C A P

U 1

A T 8 9 C 5 1 9

3 1

1 3 5 7

2 1

2 3

2 5

2 7

1 0

1 2

1 4

1 6

3 9

3 7

3 5

3 3

R S T

X T A L 2 P S E N

A L E / P R O G

E A / V P P

P 1 0

P 1 2

P 1 4

P 1 6

P 2 0 / A 8

P 2 2 / A 1 0

P 2 4 / A 1 2

P 2 6 / A 1 4

P 3 0 / R X D

P 3 1 / T X D

P 3 2 / I N T 0

P 3 4 / T 0

P 3 6 / W R

P 3 7 / R D

P 0 0 / A D 0

P 0 2 / A D 2

P 0 4 / A D 4

P 0 6 / A D 6

Hình 3.4: Khối vi xử lý

Trang 12

3.2.4 Khối thời gian thực

- Em chọn IC DS1307 vì đây là IC

chạy thời gian thực, có độ chính

xác rất cao, và đặc biệt là dữ liệu

thời gian củng không bị mất khi

chúng ta bi mất nguồn hoặc cúp

điện Nên đồng hồ ta chạy vẫn

chính xác ngay cả khi mất điện

Được nuôi bằng nguồn nuôi pin

3V

Y 1

U 5 D S 1 3 0 7

G N DS Q W / O U T 7

S D A 5

X 1

1

X 2

2

S C L 6

V B A T

3

V C C 8

R 5

R 4

5 v

B T 1

3 V

Hình 3 5: Khối thời gian thực

3.2.5 Khối thao tác

- Sử dụng nút nhấn để tạo tín hiệu

vào để điều chỉnh thời gian Nút

nhấn được kết nối với module giao

tiếp để tiết kiệm chân và đơn giản

khi thực hiện, và 1 chân nút nhấn

treo xuống mass để tạo sự thay đổi

tín hiệu khi nhấn nút

t a n g

m e n u

m e n u

g i a m

d e c _ k e y

i n c _ k e y

Hình 3.6: Khối thao tác

3.2.6 Khối chấp hành

- Ở đây em sử dụng Transistor

A1015 để điều khiển relay 12V/10A

Điện trở R =10K để phân cực và

hạn dòng cho Transistor

- Sử dụng Diode để bảo vệ

Transistor khi trong mạch xuất hiện

áp ngược từ cuộn dây sinh ra Relay

dùng để điều khiển chuông điện

R1(2)

SPEAKER

RL1

12V

LS1

SPEAKER

+220V

Q1

BC547

+12V

D1

DIODE

Hình 3 7: Khối chấp hành

Trang 13

3.3 Sơ đồ thuật toán

Hình 3.8: Sơ đồ thuật toán

3.4 Nguyên lý hoạt động

Khi đã đảm bảo cấp nguồn cho các mạch ổn định , mạch sẽ hoạt đông như sau:

+ Khi bắt đầu khởi động thì vi xử lý sẽ đọc dữ liệu trên DS1307 và hiển thị thời gian ở thời điểm hiện tại lên màn hình LCD

+ Khi mà có tác động nút bấm thì quá trình set lại thời gian bắt đầu:

• Sử dụng button DEC_KEY (giảm) hoặc INC_KEY (tăng) để điều chỉnh cho RTC

• Khi đó vi điều khiển sẽ điều khiển việc tăng hay giảm các thông

số như: ngày, tháng, năm, giờ, phút, giây đúng theo cái yêu cầu mà mình mong muốn

Sau khi set xong thì màn hình sẽ hiển thị chữ “DA XONG” để thông báo

+ Còn không có tác động nút bấm thì nó sẽ quay lại từ đầu và tiếp tục lấy data từ RTC và hiển thị lên LCD

+ Khi thời gian hiện tại được hiển thị trên LCD thì vi điều khiển luôn thực hiện việc kiểm tra (luôn lặp lại việc kiểm tra) thời gian hiện tại

Trang 14

có trùng với thời gian vào tiết hay thời gian kết thúc tiết học hay không

+ Nếu như trùng thì nó sẽ nhảy tới chương trình báo chuông và chuông báo sẽ kêu lên báo hiệu

+ Thời gian cho chuông báo thì theo như người lập trình cài đặt

+ Cứ thỏa mãn điều kiện thời gian hiện tại bằng với các mốc thời gian được thiết lập trước đó thì chuông báo sẽ reo lên báo hiệu

Trang 15

KẾT LUẬN

Do đề tài môn học em mới chỉ xây dựng mô phỏng và thiết kế hệ thống trong phạm vi hẹp cố định là một thời khóa biểu mùa hè nên hệ thống còn khá hạn chế Phương hướng phát triển:

+ Thiết kế hệ thống chuông báo cho thời khóa biểu 2 mùa: Mùa đông và mùa

hè Trong đó giờ mùa hè buổi sáng vào sớm hơn 15 phút, buổi chiều vào muộn hơn 30 phút so với giờ mùa đông Và thêm thời kháo biểu buổi tối cho các trường học theo hệ thống tín chỉ

+ Thiết kế Module điều chỉnh bằng quét phím ma trận hoặc giao tiếp bàn phím máy tính có thể lập trình thời khóa biểu theo ý muốn và giờ giấc của từng trường cũng như nơi làm việc

+ Xây dựng Hệ thống chuông báo không dây sử dụng bộ thu phát sóng

Ngày đăng: 09/11/2021, 11:06

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w