LỜI MỞ ĐẦU
Ngày nay, cùng với sự phát triển của xã hội, ngành điện tử, quy mô các
trường học, lớp học được mở rộng cả về quy mô lẫn số lượng thì việc sử dụng
các công cụ thô sơ không còn phù hợp, thay vào đó là các thiết bị điện tử hiện
đại, có độ tự động, hiệu quả cao được sử dụng rộng dãi. Sự phát triển của ngành
điện tử càng mạnh mẽ thì việc sử dụng vi điều khiển để thiết kế chế tạo được các
thiết bị hỗ trợ báo giờ là không khó. Các thiết bị báo giờ, chỉ cần tác động, thay
đổi một chút thì ta có thể sử dụng chúng ở nhiều nơi khác nhau mà vẫn đạt được
kết quả như mong muốn.
Là sinh viên kỹ thuật nói chung và ngành kỹ thuật điện tử nói riêng, việc
nắm bắt công nghệ và ứng dụng của chúng vào đời sống là vô cùng quan trọng
để theo kịp công nghệ mới ra. Sau thời gian tìm tòi và nắm bắt các kiến thức về
vi điều khiển, các quá trình làm mạch thực tế, nhóm sinh viên chúng tôi đã quyết
định làm đề tài kết thúc môn Thực tập cơ sở “Thiết kế mạch chuông báo lớp học
tự động sử dụng vi điều khiển AT89C52”. Do thời gian có hạn, kiến thức của các
thành viên, đặc biệt là các trang thiết bị phục vụ thực hành, linh kiện để làm
mạch còn hạn chế nên đề tài còn nhiều thiếu sót, rất mong nhận được sự giúp
đỡ, đóng góp ý kiến của thầy, cô và các đồng chí để bài báo cáo của chúng tôi
được hoàn thiện hợn.
Xin chân thành cảm ơn!
1
MỤC LỤC
LỜI MỞ ĐẦU......................................................................................................1
CHƯƠNG 1. TỔNG QUAN...............................................................................6
1.1 Đặt vấn đề..........................................................................................................................6
1.2 Phân tích............................................................................................................................6
1.3 Xây dựng phương án...........................................................................................................6
1.4 Phạm vi của đề tài và phương hướng mở rộng....................................................................7
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT...................................................................8
2.1 Giới thiệu IC AT89C52..........................................................................................................8
2.1.1 Sơ đồ chân AT89C52..............................................................................................................................9
2.1.2 Chức năng của các chân AT89C52.......................................................................................................10
2.1.3 Các chế độ đặc biệt.............................................................................................................................12
2.1.4 Các bít khoá bộ nhớ chương trình......................................................................................................13
2.2 Tìm hiểu IC thời gian thực DS1307.....................................................................................14
2.2.1 Giới thiệu chung về DS1307................................................................................................................14
2.2.2 Cơ chế hoạt động và chức năng của DS1307......................................................................................15
2.2.3 Sơ đồ địa chỉ RAM và RTC...................................................................................................................16
2.3 Giới thiệu LCD...................................................................................................................18
2.3.1 Chức năng các chân của LCD 16x2......................................................................................................18
2.3.2 Các thanh ghi.......................................................................................................................................20
CHƯƠNG 3. THIẾT KẾ MẠCH.....................................................................21
3.1 Sơ đồ khối........................................................................................................................ 21
3.1.1 Sơ đồ khối tổng quát...........................................................................................................................21
3.1.2 Chức năng các khối.............................................................................................................................21
3.2 Sơ đồ thuật toán...............................................................................................................22
3.3 Sơ đồ nguyên lý các khối...................................................................................................23
3.3.1 Khối nguồn..........................................................................................................................................23
3.3.2 Khối hiển thị LCD.................................................................................................................................23
3.3.3 Khối xử lý AT89C52..............................................................................................................................23
3.3.4 Khối thời gian thực DS1307................................................................................................................24
3.3.5 Khối điều chỉnh....................................................................................................................................24
3.3.6 Khối âm thanh.....................................................................................................................................25
3.4 Sơ đồ nguyên lý mạch.......................................................................................................26
3.4.1 Sơ đồ mạch.........................................................................................................................................26
3.4.2 Nguyên lý hoạt động...........................................................................................................................26
CHƯƠNG 4. THI CÔNG MẠCH....................................................................41
4.1 Danh sách vật liệu và linh kiện...........................................................................................41
4.1.1 Danh sách vật liệu làm mạch..............................................................................................................41
4.1.2 Danh sách linh liện sử dụng trong mạch.............................................................................................41
4.2 Quy trình thi công mạch....................................................................................................42
4.2.1 Thiết kế mạch nguyên lý và vẽ mạch in trên phầm mềm Altium........................................................42
4.2.2 Các bước thi công mạch trên thực tế.................................................................................................45
4.3 Sản phẩm mạch thực tế.....................................................................................................45
KẾT LUẬN........................................................................................................46
TÀI LIỆU THAM KHẢO................................................................................47
2
DANH MỤC HÌNH VẼ
LỜI MỞ ĐẦU......................................................................................................1
CHƯƠNG 1. TỔNG QUAN...............................................................................6
1.1 Đặt vấn đề..........................................................................................................................6
1.2 Phân tích............................................................................................................................6
1.3 Xây dựng phương án...........................................................................................................6
1.4 Phạm vi của đề tài và phương hướng mở rộng....................................................................7
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT...................................................................8
2.1 Giới thiệu IC AT89C52..........................................................................................................8
Hình 2.1: Sơ đồ khối của AT89C52....................................................................9
2.1.1 Sơ đồ chân AT89C52..............................................................................................................................9
Hình 2.2: Sơ đồ các chân AT89C52..................................................................10
2.1.2 Chức năng của các chân AT89C52.......................................................................................................10
Hình 2.3 - Sơ đồ chân RST...............................................................................11
Hình 2.4 Ngõ vào bộ dao động.........................................................................12
2.1.3 Các chế độ đặc biệt.............................................................................................................................12
2.1.4 Các bít khoá bộ nhớ chương trình......................................................................................................13
2.2 Tìm hiểu IC thời gian thực DS1307.....................................................................................14
2.2.1 Giới thiệu chung về DS1307................................................................................................................14
3
Hình 2.5: IC DS1307.........................................................................................14
2.2.2 Cơ chế hoạt động và chức năng của DS1307......................................................................................15
2.2.3 Sơ đồ địa chỉ RAM và RTC...................................................................................................................16
2.3 Giới thiệu LCD...................................................................................................................18
Hình 2.7: Màn hình hiển thị LCD.....................................................................18
2.3.1 Chức năng các chân của LCD 16x2......................................................................................................18
2.3.2 Các thanh ghi.......................................................................................................................................20
CHƯƠNG 3. THIẾT KẾ MẠCH.....................................................................21
3.1 Sơ đồ khối........................................................................................................................ 21
3.1.1 Sơ đồ khối tổng quát...........................................................................................................................21
Hình 3.1: Sơ đồ khối tổng quát.........................................................................21
3.1.2 Chức năng các khối.............................................................................................................................21
3.2 Sơ đồ thuật toán...............................................................................................................22
Hình 3.2: Sơ đồ thuật toán.................................................................................22
3.3 Sơ đồ nguyên lý các khối...................................................................................................23
3.3.1 Khối nguồn..........................................................................................................................................23
3.3.2 Khối hiển thị LCD.................................................................................................................................23
3.3.3 Khối xử lý AT89C52..............................................................................................................................23
Hình 3.4: Sơ đồ khối xử lý AT89C52...............................................................24
3.3.4 Khối thời gian thực DS1307................................................................................................................24
Hình 3.5: IC thời gian thực DS1307.................................................................24
3.3.5 Khối điều chỉnh....................................................................................................................................24
Hình 3.6: Sơ đồ khối điều chỉnh........................................................................25
3.3.6 Khối âm thanh.....................................................................................................................................25
Hình 3.7: Sơ đồ khối âm thanh..........................................................................25
3.4 Sơ đồ nguyên lý mạch.......................................................................................................26
3.4.1 Sơ đồ mạch.........................................................................................................................................26
Hình 3.8: Sơ đồ mạch nguyên lý.......................................................................26
3.4.2 Nguyên lý hoạt động...........................................................................................................................26
CHƯƠNG 4. THI CÔNG MẠCH....................................................................41
4.1 Danh sách vật liệu và linh kiện...........................................................................................41
4.1.1 Danh sách vật liệu làm mạch..............................................................................................................41
4.1.2 Danh sách linh liện sử dụng trong mạch.............................................................................................41
4.2 Quy trình thi công mạch....................................................................................................42
4.2.1 Thiết kế mạch nguyên lý và vẽ mạch in trên phầm mềm Altium........................................................42
Hình 4.1: Sơ đồ mạch nguyên lý SCH..............................................................42
Hình 4.2: Mạch in sau khi được phủ đồng........................................................43
Hình 4.3: Mạch in ở chế độ 3D.........................................................................44
4.2.2 Các bước thi công mạch trên thực tế.................................................................................................45
4.3 Sản phẩm mạch thực tế.....................................................................................................45
Hình 4.6: Sản phẩm mạch thực tế.....................................................................46
KẾT LUẬN........................................................................................................46
TÀI LIỆU THAM KHẢO................................................................................47
4
DANH MỤC BẢNG BIỂU
Bảng 1.1 Thời gian các tiết học trong một ngày………………………….......6
Bảng 2.1 Chức năng chuyển đổi của các chân P3.0 ÷ P3.7………………….10
Bảng 2.2 Trạng thái các chân trong thời gian chế độ nghỉ và nguồn giảm…..12
Bảng 2.3 Các bit khoá bộ nhớ chương trình của AT89C52………………….12
Bảng 2.4 Chức năng các chân của Module LCD…………………………….17
Bảng 4.1 Danh sách các vật liệu làm mạch………………………………….40
Bảng 4.2 Danh sách các linh kiện chính sử dụng trong mạch……………….40
5
CHƯƠNG 1. TỔNG QUAN
1.1 Đặt vấn đề
Hiện nay với sự phát triển của vi điều khiển. Các hệ thống cần thiết đều
được hoạt động một cách tự động. Đơn giản như hệ thống chuông hẹn giờ, hệ
thống báo động, báo giờ trường học, báo giờ công sở.
Vấn đề báo tiết học là vấn đề cần thiết ở bất cứ trường học nào, giúp thầy
cô điều chỉnh được thời gian dạy học của mình. Sẽ rất mất thời gian khi ta phải
canh thời gian cho tiết học, hơn nữa hiện nay trên thị trường chỉ có những loại
chuông báo cố định về thời gian mà không thể tự thay đổi theo giờ học của từng
trường, từng vùng, từng mùa khác nhau. Để đáp ứng những yêu cầu nêu trên
chúng tôi lựa chọn đề tài thiết kế và thi công mạch chuông báo tiết hoc tự động.
1.2 Phân tích
Mục đích:
- Hệ thống báo chuông tại các thời điểm vào, ra của tiết học của trường.
- Hệ thống có khả năng chỉnh lại thời gian.
Yêu cầu:
- Hệ thống làm việc ổn định, chính xác.
- Có khả năng đưa vào ứng dụng trong thực tế.
1.3 Xây dựng phương án.
Sau khi nghiên cứu thực tế các thời điểm vào ra của các tiết học của trường
Đại học Kỹ Thuật Hậu Cần-CAND, chúng ta có những nhận xét sau:
Mỗi ngày có 2 buổi học mỗi buổi kéo dài 5 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 từ đó ta xây dựng được thời khóa biểu như bảng 1.1:
Bảng 1.1: Thời gian các tiết học trong một ngày.
6
Tiết
Vào
Ra
Tiết
Vào
Ra
1
7h30
8h15
6
13h
13h45
2
8h20
9h05
7
13h50
14h35
3
9h10
9h55
8
14h40
15h25
4
10h05
10h50
9
15h35
16h20
5
10h55
11h40
10
16h25
17h10
Thời gian báo:
- Thời gian báo chuông là 5 giây.
- Cách báo: sử dụng chuông báo.
- Phạm vi báo: Tất cả khu vực giảng đường, lớp học bằng cách xây dựng hệ
thống chuông đến từng khu nhà học, từng giảng đường.
1.4 Phạm vi của đề tài và phương hướng mở rộng.
Phạm vi của đề tài:
- Hệ thống chuông báo của chúng tôi có thể dùng cho thời khóa biểu của cả
mùa đông và mùa hè bằng cách thay đổi thời gian của các tiết học. Nhưng do
đây là đề tài môn học nên chúng tôi mới chỉ xây dựng và thiết kế hệ thống trong
phạm vi thời khóa biểu của trường mà chúng tôi đang học.
Phương hướng mở rộng:
- 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ỉ.
Nếu trường nào không học vào chủ nhật thì sẽ có chế độ không báo chuông vào
chủ nhật. Có thêm chế độ điều chỉnh thời gian báo của chuông cho phù hợp với
yêu cầu của nhiều trường trong phạm vi cả nước.
- 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ư từng nơi làm việc khác nhau.
- Xây dựng hệ thống chuông báo không dây sử dụng bộ thu-phát song
song.
7
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu IC AT89C52.
AT89C52 là một bộ vi xử lý 8 bit, loại CMOS, có tốc độ cao và công suất
thấp với bộ nhớ Flash có thể lập trình được. Nó được sản xuất với công nghệ bộ
nhớ không bay hơi mật độ cao của hãng Atmel, và tương thích với họ MCS52TM về chân ra và tập lệnh.
AT89C52 có các đặc trưng cơ bản như sau: 4 K byte Flash, 128 byte RAM,
32 đường xuất nhập, hai bộ định thời/đếm 16-bit, một cấu trúc ngắt hai mức ưu
tiên và 5 nguyên nhân ngắt, một port nối tiếp song công, mạch dao động và tạo
xung clock trên chip.
AT89C52 được thiết kế với logic tĩnh cho hoạt động có tần số giảm xuống
0 và hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng phần mềm. Chế
độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ định thời/đếm, port nối
tiếp và hệ thống ngắt tiếp tục hoạt động.
Chế độ nguồn giảm duy trì nội dung của RAM nhưng không cho mạch dao
động cung cấp xung clock nhằm vô hiệu hoá các hoạt động khác của chip cho
đến khi có reset cứng tiếp theo.
8
Hình 2.1: Sơ đồ khối của AT89C52.
2.1.1 Sơ đồ chân AT89C52
Mặc dù các thành viên của họ 89C52 (ví dụ 8751, 89S52, 80C51, DS5000)
đều có các kiểu đóng vỏ khác nhau, CFP (Quad Flat Pakage) và dạng chip không
có chân đỡ LCC (Leadless Chip Carrier) chúng đều có 40 chân cho các chức
năng khác nhau như vào ra I/O, đọc RD giới hạn như hai hàng chân DIP (DualIn
- LinePakage), dạng vỏ dẹt vuông QPF, ghi WR, địa chỉ, dữ liệu và ngắt. Cần
phải lưu ý một số hãng cung cấp một phiên bản 89C52 có 20 chân với số cổng
vào ra ít hơn cho các ứng dụng yêu cầu thấp hơn. Tuy nhiên vì hầu hết các nhà
phát triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta chỉ tập
trung mô tả phiên bản này.
9
Hình 2.2: Sơ đồ các chân AT89C52
2.1.2 Chức năng của các chân AT89C52
- Port 0: từ chân 32 đến chân 39 (P0.0 ÷ P0.7). Port 0 có 2 chức năng:
trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các
đường IO, đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa
chỉ và bus dữ liệu.
- Port 1: từ chân 1 đến chân 8 (P1.0 ÷ P1.7). Port 1 là port IO dùng cho
giao tiếp với thiết bị bên ngoài nếu cần.
- Port 2: từ chân 21 đến chân 28 (P2.0 ÷ P2.7). Port 2 là một port có tác
dụng kép dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ đối với
các thiết bị dùng bộ nhớ mở rộng.
- Port 3: từ chân 10 đến chân 17 (P3.0 ÷ P3.7). Port 3 là port có tác dụng
kép. Các chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên
hệ đến các đặc tính đặc biệt của AT89C52 như trong bảng 2.1.
Bảng 2.1 Chức năng chuyển đổi của các chân P3.0 ÷ P3.7
Bit
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
Tên
RXD
TXD
INT0
INT1
T0
T1
WR
Chức năng chuyển đổi
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 TIMER/ COUNTER thứ 0
Ngõ vào của TIMER/ COUNTER thứ 1
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
10
P3.7
RD
Tín hiệu đọc bộ nhớ dữ liệu ngoài.
- PSEN (Program store enable): PSEN là tín hiệu ngõ ra có tác dụng cho
phép đọc bộ nhớ chương trình mở rộng và thường được nối đến chân OE của
Eprom cho phép đọc các byte mã lệnh. PSEN ở mức thấp trong thời gian
AT89C52 lấy lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua bus
dữ liệu, được chốt vào thanh ghi lệnh bên trong AT89C52 để giải mã lệnh. Khi
AT89C52 thi hành chương trình trong ROM nội, PSEN ở mức cao.
- ALE (Address Latch Enable): Khi AT89C52 truy xuất bộ nhớ bên ngoài,
Port 0 có chức năng là bus địa chỉ và dữ liệu do đó phải tách các đường dữ liệu
và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa
hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt. Tín hiệu ở chân
ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên
chốt địa chỉ hoàn toàn tự động.
- EA (External Access): Tín hiệu vào EA (chân 31) thường được mắc lên
mức 1 hoặc mức 0. Nếu ở mức1, AT89C52 thi hành chương trình từ ROM nội.
Nếu ở mức 0, AT89C52 thi hành chương trình từ bộ nhớ mở rộng. Chân EA
được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong AT89C52.
- RST (Reset): Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ
máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ
thống. Khi cấp điện mạch phải tự động reset. Các giá trị tụ và điện trở được chọn
là: R1=10Ω, R2=220Ω, C=10 µF được mô tả trong hình 2.4.
Hình 2.3 - Sơ đồ chân RST
- Các ngõ vào bộ dao động X1, X2: Bộ tạo dao động được tích hợp bên
trong 89C52. Khi sử dụng 89C52, người ta chỉ cần nối thêm thạch anh và các tụ.
Tần số thạch anh tùy thuộc vào mục đích của người sử dụng, giá trị tụ thường
được chọn là 33p.
11
Hình 2.4 Ngõ vào bộ dao động
2.1.3 Các chế độ đặc biệt
- Chế độ nghỉ:
Trong chế độ nghỉ, CPU tự đi vào trạng thái ngủ trong khi tất cả các ngoại
vi bên trong chip vẫn tích cực. Chế độ này được điều khiển bởi phần mềm. Nội
dung của RAM trên chip và của tất cả các thanh ghi chức năng đặc biệt vẫn
không đổi trong khi thời gian tồn tại chế độ này. Chế độ nghỉ có thể được kết
thúc bởi một ngắt bất kỳ nào được phép hoặc bằng cách reset cứng.
Ta cần lưu ý rằng khi chế độ nghỉ được kết thúc bởi một reset cứng, chip vi
điều khiển sẽ tiếp tục bình thường việc thực thi chương trình từ nơi chương trình
bị tạm dừng, trong vòng 2 chu kỳ máy trước khi giải thuật reset phần mềm nắm
quyền điều khiển.
Ở chế độ nghỉ, phần cứng trên chip cấm truy xuất RAM nội nhưng cho
phép truy xuất các chân của các port. Để tránh khả năng có một thao tác ghi
không mong muốn đến một chân port khi chế độ nghỉ kết thúc bằng reset, lệnh
tiếp theo yêu cầu chế độ nghỉ không nên là lệnh ghi đến chân port hoặc đến bộ
nhớ ngoài.
- Chế độ nguồn giảm:
Trong chế độ này, mạch dao động ngừng hoạt động và lệnh yêu cầu chế độ
nguồn giảm là lệnh sau cùng được thực thi. RAM trên chip và các thanh ghi
chức năng đặc biệt vẫn duy trì các giá trị của chúng cho đến khi chế độ nguồn
giảm kết thúc. Chỉ có một cách ra khỏi chế độ nguồn giảm, đó là reset cứng.
Việc reset sẽ xác định lại các thanh ghi chức năng đặc biệt nhưng không
làm thay đổi RAM trên chip. Việc reset không nên xảy ra (chân reset ở mức tích
cực) trước khi Vcc được khôi phục lại mức điện áp bình thường và phải kéo dài
trạng thái tích cực của chân reset đủ lâu để cho phép mạch dao động hoạt động
trở lại và đạt trạng thái ổn định.
Trạng thái của các chân trong thời gian tồn tại chế độ nghỉ và chế độ nguồn
giảm được cho trong bảng 2.2:
Bảng 2.2 Trạng thái các chân trong thời gian chế độ nghỉ và nguồn giảm.
12
Chế
độ
Bộ nhớ
Chương
trình
ALE
PSEN
PORT O
PORT 1
PORT 2
PORT 3
Nghỉ
Bên trong
1
1
Dữ liệu
Dữ liệu
Dữ liệu
Dữ liệu
Nghỉ
Bên ngoài
1
1
Thả nổi
Dữ liệu
Dữ liệu
Dữ liệu
Nguồn
Bên trong
0
0
Dữ liệu
Dữ liệu
Dữ liệu
Dữ liệu
giảm
Bên ngoài
0
0
Thả nổi
Dữ liệu
Dữ liệu
Dữ liệu
2.1.4 Các bít khoá bộ nhớ chương trình
Trên chip có ba bit khoá, các bít này có thể không cho phép lập trình hoặc
cho phép lập trình, các bit này cho ta thêm một số đặc trưng nữa của AT89C52
như sau. Khi bit khoá 1 LB1 được lập trình, mức logic ở chân
được lấy mẫu
và được chốt trong khi reset. Nếu việc cấp nguồn cho chip không có công dụng
reset, mạch chốt được khởi động bằng một giá trị ngẫu nhiên và giá trị này được
duy trì cho đến khi có tác động reset. Điều cần thiết là giá trị được chốt của
phải phù hợp vơi mức logic hiện hành ở chân này.
Bảng 2.3 Các bit khoá bộ nhớ chương trình của AT89C52
Các bit khóa chương trình
Chế
độ
LB1
LB2
LB3
1
U
U
U
Loại bảo vệ
Không có đặc trưng khóa chương trình
Các lệnh MOVC được thực thi từ bộ nhớ
chương trình ngoài không được phép tìm nạp
lệnh từ bộ nhớ nội,
được lấy mẫu và được
chốt khi reset, hơn nữa việc lập trình trên
Flash bị cấm
2
P
U
U
3
P
P
U
Như chế độ 2, cấm thêm việc kiểm tra chương
trình
4
P
P
P
Như chế độ 3, cấm thêm việc thực thi chương
trình ngoài
13
2.2 Tìm hiểu IC thời gian thực DS1307.
2.2.1 Giới thiệu chung về DS1307.
Hình 2.5: IC DS1307
IC thời gian thực là họ vi điều khiển của hãng dalat DS1307 có một số đặc
trưng cơ bản sau:
- DS1307 là 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.
- SRAM: 56bytes.
- Địa chỉ và dữ liệu được truyền nối tiệp qua 2 đường bus 2 chiều.
- DS1307 có môt mạch cảm biến điện áp dùng để dò các điện áp lỗi và tự
động đóng ngắt với nguồn pin cung cấp 3V.
- DS1307 có 7 byte dữ liệu nằm từ địa chỉ 0x00 tới 0x06, 1 byte điểu khiển,
và 56 byte lưu trữ (dành cho người sủ dụng).
- Khi xử lý dữ liệu từ DS1307, họ đã tự chuyển cho ta về dạng số BCD, ví
dụ như ta đọc đựơc dữ liệu từ địa chỉ 0x04 (tương ứng với Day- ngày trong
tháng) và tại 0x05 (thang) là 0x15, 0x11 như thế có nghĩa là lúc đó là ngày 1511 chứ không phải là ngày 21 tháng 17
- Lưu ý đến vai trò của chân SQW/OUT. Đây là chân cho xung ra của
DS1307 có 4 chế độ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz... các chế độ này đuợc
quy định bởi các bít của thanh ghi Control Register (địa chỉ 0x07).
- Địa chỉ của DS1307là 0xD0.
- 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 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.
14
2.2.2 Cơ chế hoạt động và chức năng của DS1307
Hình 2.6: Sơ đồ DS1307
Vcc: nối với nguồn.
X1, X2: nối với thạch anh 32,768 kHz.
Vbat: đầu vào pin 3V.
GND: đất.
SDA: chuỗi data.
SCL: dãy xung clock.
SQW/OUT: xung vuông/đầu ra driver.
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. Ngày cuối tháng sẽ tự động được điều chỉnh với các tháng
nhỏ hơn 31 ngày bao gồm cả việc tự động nhảy năm. Đồng hồ có thể hoạt động
ở dạng 24h hoặc 12h với chỉ thị AM/PM. DS1307 có một mạch cảm biến điện
áp dùng để dò các điện áp lỗi và tự động đóng ngắt với nguồn pin cung cấp.
DS 1307 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
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.
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 3 V đượ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, 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à
15
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,5 đế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): khi được kích hoạt thì bit SQWE
được thiết lập 1 chân SQW/OUT phát đi 1 trong 4 tần số (1Hz, 4kHz, 8kHz,
32kHz). Chân này cũng được thiết kế theo kiểu cực máng hở vì vậy nó cũng cần
có một điện trở kéo trong. Chân này sẽ hoạt động khi cả Vcc và Vbat được cấp.
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ũng có
DS1307 với bộ tạo dao động trong tần số 32,768kHz, với cấu hình này thì chân
X1 sẽ được nối vào tín hiệu dao động trong còn chân X2 thì để hở.
2.2.3 Sơ đồ địa chỉ RAM và RTC
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). Bit 7 của thanh
ghi seconds là bit clock halt (CH), khi bit này được thiết lập 1 thì dao động
disable, khi nó được xoá về 0 thì dao động được enable.
DS1307 có thể chạy ở chế độ 24h cũng như 12h. Bit thứ 6 của thanh ghi
hours là bit chọn chế độ 24h hoặc 12h. Khi bit này ở mức cao thì chế độ 12h
được chọn. Ở chế độ 12h thì bit 5 là bit AM/PM với mức cao là là PM. Ở chế độ
24h thì bit 5 là bit chỉ 20h (từ 20h đến 23h).
16
Trong quá trình truy cập dữ liệu, khi chỉ thị START được thực thi thì dòng
thời gian được truyền tới một thanh ghi thứ 2, thông tin thời gian sẽ được đọc từ
thanh ghi thứ cấp này, trong khi đó đồng hồ vẫn tiếp tục chạy. Trong DS1307 có
một thanh ghi điều khiển để điều khiển hoạt động của chân.
OUT (output control): bit này điều khiển mức ra của chân SQW/OUT khi
đầu ra xung vuông là disable. Nếu SQWE=0 thì mức logic ở chân SQW/OUT sẽ
là 1 nếu OUT=1, và =0 nếu OUT=0.
SQWE (square wave enable): bit này được thiết lập 1 sẽ enable đầu ra của
bộ tạo dao động. Tần số của đầu ra sóng vuông phụ thuộc vào giá trị của RS1 và
RS0.
DS1307 hỗ trợ bus 2 dây 2 chiều và giao thức truyền dữ liệu. Thiết bị gửi
dữ liệu lên bus được gọi là bộ phát và thiết bị nhận gọi là bộ thu. Thiết bị điều
khiển quá trình này gọi là master. Thiết bị nhận sự điều khiển của master gọi là
slave. Các bus nhận sự điều khiển của master là thiết bị phát ra chuỗi xung clock
(SCL), master sẽ điều khiển sự truy cập bus, tạo ra các chỉ thị START và STOP.
Tuỳ thuộc vào bit R/ w mà 2 loại truyền dữ liệu sẽ được thực thi:
Truyền dữ liệu từ master truyền và slave nhận: Master sẽ truyền byte đầu
tiên là địa chỉ của slave. Tiếp sau đó là các byte dữ liệu. Slave sẽ gửi lại bit
thông báo đã nhận được (bit acknowledge) sau mỗi byte dữ liệu nhận được. Dữ
liệu sẽ truyền từ bit có giá trị nhất (MSB).
Truyền dữ liệu từ slave và master nhận: byte đầu tiên (địa chỉ của slave)
được truyền tới slave bởi master. Sau đó slave sẽ gửi lại master bit acknowledge.
tiếp theo đó slave sẽ gửi các byte dữ liệu tới master. Master sẽ gửi cho slave các
bit acknowledge sau mỗi byte nhận được trừ byte cuối cùng, sau khi nhận được
byte cuối cùng thì bit acknowledge sẽ không được gửi.
Master phát ra tất cả các chuỗi xung clock và các chỉ thị START và STOP.
sự truyền sẽ kết thúc với chỉ thị STOP hoặc chỉ thị quay vòng START. Khi chỉ
thị START quay vòng thì sự truyền chuỗi dữ liệu tiếp theo được thực thi và các
bus vẫn chưa được giải phóng. Dữ liệu truyền luôn bắt đầu bằng bit MSB.
DS1307 có thể hoạt động ở 2 chế độ sau:
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
17
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.
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ế độ đọ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. Đọc dữ
liệu - chế độ slave phát.
2.3 Giới thiệu LCD
LCD được giới thiệu gồm 14 chân. (hình 2.6)
Hình 2.7: Màn hình hiển thị LCD
2.3.1 Chức năng các chân của LCD 16x2.
Chức năng chính của các chân Module LCD 16x2 được mô tả trong bảng
2.4:
Bảng 2.4: Chức năng các chân của Module LCD
Chân
số
Ký
hiệu
Mức
logic
I/O
Chức năng
1
Vss
-
-
Nguồn cung cấp(GND)
2
Vdd
-
-
Nguồn cung cấp(+5V)
3
Vee
-
I
Điện áp để điều chỉnh độ tương phản
18
4
RS
0/1
I
Lựa chọn thanh ghi
0= thanh ghi lệnh
1=thanh ghi dữ liệu
5
R/W
0/1
I
0=ghi vào LCD module
1=đọc từ LCD module
6
E
1,1=>0
I
Tín hiệu cho phép
7
D0
0/1
I/O
Data bus line 0 (LSB)
8
D1
0/1
I/O
Data bus line 1
9
D2
0/1
I/O
Data bus line 2
10
D3
0/1
I/O
Data bus line 3
11
D4
0/1
I/O
Data bus line 4
12
D5
0/1
I/O
Data bus line 5
13
D6
0/1
I/O
Data bus line 6
14
D7
0/1
I/O
Data bus line 7 (MSB)
Các chân điều khiển việc đọc và ghi LCD bao gồm RS, R/W và EN.
- RS (chân số 3): Chân lựa chọn thanh ghi (Select Register), chân này cho
phép lựa chọn 1 trong 2 thanh ghi IR hoặc DR để làm việc. Vì cả 2 thanh ghi này
đều được kết nối với các chân Data của LCD nên cần 1 bit để lựa chọn giữa
chúng. Nếu RS=0, thanh ghi IR được chọn và nếu RS=1 thanh ghi DR được
chọn. Chúng ta đều biết thanh ghi IR là thanh ghi chứa mã lệnh cho LCD, vì thế
nếu muốn gửi 1 mã lệnh đến LCD thì chân RS phải được reset về 0. Ngược lại,
khi muốn ghi mã ASCII của ký tự cần hiển thị lên LCD thì chúng ta sẽ set RS=1
để chọn thanh ghi DR.
- R/W (chân số 4): Chân lựa chọn giữa việc đọc và ghi. Nếu R/W=0 thì dữ
liệu sẽ được ghi từ bộ điều khiển ngoài (vi điều khiển AVR chẳng hạn) vào
LCD. Nếu R/W = 1 thì dữ liệu sẽ được đọc từ LCD ra ngoài. Tuy nhiên, chỉ có
duy nhất 1 trường hợp mà dữ liệu có thể đọc từ LCD ra, đó là đọc trạng thái
LCD để biết LCD có đang bận hay không (cờ Busy Flag - BF). Do LCD là một
thiết bị hoạt động tương đối chậm (so với vi điều khiển), vì thế một cờ BF được
dùng để báo LCD đang bận, nếu BF=1 thì chúng ta phải chờ cho LCD xử lí xong
nhiệm vụ hiện tại, đến khi nào BF=0 một thao tác mới sẽ được gán cho LCD. Vì
thế, khi làm việc với Text LCD chúng ta nhất thiết phải có một chương trình con
tạm gọi là wait_LCD để chờ cho đến khi LCD rảnh. Có 2 cách để viết chương
trình wait_LCD. Cách 1 là đọc bit BF về kiểm tra và chờ BF=0, cách này đòi hỏi
19
lệnh đọc từ LCD về bộ điều khiển ngoài, do đó chân R/W cần được nối với bộ
điều khiển ngoài. Cách 2 là viết một hàm delay một khoảng thời gian cố định
nào đó (tốt nhất là trên 1ms). Ưu điểm của cách 2 là sự đơn giản vì không cần
đọc LCD, do đó chân R/W không cần sử dụng và luôn được nối với GND. Tuy
nhiên, nhược điểm của cách 2 là khoảng thời gian delay cố định nếu quá lớn sẽ
làm chậm quá trình thao tác LCD, nếu quá nhỏ sẽ gây ra lỗi hiển thị.
- EN (chân số 5): Chân cho phép LCD hoạt động (Enable), chân này cần
được kết nối với bộ điều khiển để cho phép thao tác LCD. Để đọc và ghi data từ
LCD chúng ta cần tạo một “xung cạnh xuống” trên chân EN, nói theo cách khác,
muốn ghi dữ liệu vào LCD trước hết cần đảm bảo rằng chân EN=0, tiếp đến xuất
dữ liệu đến các chân D0÷7, sau đó set chân EN lên 1 và cuối cùng là xóa EN về
0 để tạo 1 xung cạnh xuống.
Để hiển thị chữ cái và con số, mã ASCII của các chữ cái từ A đến Z, a đến
z và các con số từ 0 ÷ 9 được gửi tới các chân D0 ÷ D7 khi RS = 1. Các mã lệnh
được gửi tới LCD để xóa màn hình hoặc đưa con trỏ về đầu dòng… (được liệt kê
trên bảng trên) thông các chân D0 ÷ D7. Có thế sử dụng RS = 0 để kiểm tra bit
cờ bận xem LCD đã sẵn sàng nhận thông tin chưa. Khi R/W = 1 và RS = 0: Nếu
D7 = 1 (cờ bận bằng 1) LCD đang bận các công việc bên trong và sẽ không nhận
thông tin, nếu D7 = 0 LCD sẵn sàng nhận thông tin mới. Trong mọi trường hợp
cần kiểm tra cờ bận trước khi ghi bất kì dữ liệu nào lên LCD.
2.3.2 Các thanh ghi.
- Thanh ghi IR: Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng. Chỉ
việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR. Ví dụ: Lệnh “hiển thị
màn hình và con trỏ” có mã lệnh là 00001110.
- Thanh ghi DR: Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng
RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng
RAM này gửi ra cho MPU (ở chế độ đọc).
- Cờ báo bận BF: (Busy Flag) Khi đang thực thi các hoạt động bên trong,
LCD bỏ qua mọi giao tiếp với bên ngoài và bật cờ BF (thông qua chân DB7 khi có
thiết lập RS=0, R/W=1) lên để cho biết nó đang “bận”.
- Bộ đếm địa chỉ AC: (Address Counter) Khi một địa chỉ lệnh được nạp vào
thanh ghi IR, thông tin được nối trực tiếp cho 2 vùng RAM (việc chọn lựa vùng
RAM tương tác đã được bao hàm trong mã lệnh). Sau khi ghi vào (đọc từ) RAM,
bộ đếm AC tự động tăng lên (giảm đi) 1 đơn vị. Bộ nhớ LCD Vùng RAM hiển thị
DDRAM: (Display Data RAM).
20
CHƯƠNG 3. THIẾT KẾ MẠCH
3.1 Sơ đồ khối.
3.1.1 Sơ đồ khối tổng quát.
Hình 3.1: Sơ đồ khối tổng quát
3.1.2 Chức năng các khối.
- Khối nguồn: Cung cấp nguồn nuôi tất cả linh kiện trong mạch.
- Khối thời gian thực DS1307: Khối này thực chất 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ó có pin cấp riêng, như vậy 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.
- Khối điều chỉnh: Chức năng của khối này là sử dụng ngắt của 89C52 để
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).
- 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.
- 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ị.
- Khối xử lý (vi điều khiển 89C52): Vi điều khiển 89C52 là trung tâm xử lý
các thông tin của mạch. Cụ thể là:
AT89C52 đả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 thời
gian từ DS1307, Điều khiển LCD, Kiểm tra phím bấm, Điều khiển loa.
21
3.2 Sơ đồ thuật toán.
Hình 3.2: Sơ đồ thuật toán
22
3.3 Sơ đồ nguyên lý các khối.
3.3.1 Khối nguồn.
Nguồn cung cấp cho mạch là PIN 3V, 5V, 12V.
3.3.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ị thời gian 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 ta sử dụng 1 biến trở để
điều chỉnh thích hợp.
Hình 3.3: Sơ đồ khối hiển thị
3.3.3 Khối xử lý AT89C52.
Sử dụng IC số là một bất lợi cho quá trình thiết kế từ việc thiết kế, kết nối
cho tới chọn linh kiện và khắc phục nhiễu.
Một lựa chọn để khắc phục nhược điễm của IC số là dùng bộ vi điều khiển
AT89C52 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ạnh anh dao động là 12Mhz. Nút ấn kết hợp với tụ
C để thực hiện reset.
23
Hình 3.4: Sơ đồ khối xử lý AT89C52
3.3.4 Khối thời gian thực DS1307.
Ta chọn IC DS1307 vì đây là IC chạy thời gian thực có độ chính xác rất
cao, và đặt 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.
Hình 3.5: IC thời gian thực DS1307
3.3.5 Khối điều chỉnh.
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à một chân nút nhấn treo xuống mass để tạo sự thay đổi tín hiệu khi nhấn nút.
24
Hình 3.6: Sơ đồ khối điều chỉnh
3.3.6 Khối âm thanh.
- Có nhiều phương án để điều khiển cơ cấu chấp hành, ở đây chúng ta sử
dụng Transistor C1815 để điều khiển relay 12V/10A. Điện trở R=1k để phân
cực và hạn dòng cho Transistor.
- Diode 1N4007 dùng để 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.
Hình 3.7: Sơ đồ khối âm thanh
25