Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
Mục lục
.................................................................................................................... Trang
Lời nói đầu...................................................................................................... 1
Chương 1 :Giới thiệu đề tài .............................................................................
1. Giới thiệu................................................................................................
2. Sơ đồ khối ..............................................................................................
3. Chức năng các khối ................................................................................
Chương 2: Giới thiệu phần cứng .....................................................................
1. Sơ đồ mạch .............................................................................................
2. Giới thiệu các linh kiện có trong mạch ..................................................
2.1. AT89S52..........................................................................................
2.2. LCD .................................................................................................
2.2.1. Chức năng các chân..................................................................
2.2.2. Sơ đồ khối của HD44780 .........................................................
2.2.3. Tâập lệnh của LCD ..................................................................
2.2.4. Biểu đồ thời gian ......................................................................
2.3. IC thời gian thực DS1307 ...............................................................
2.3.1. Chức năng các chân..................................................................
2.3.2. Một vài thông số kỹ thuật.........................................................
2.3.3. Sơ đồ khối của DS1307 ...........................................................
2.3.4. Truyền dữ liệu trên bus 2 dây nối tiếp.....................................
2.3.5. Hai chế độ hoạt động của DS1307 ..........................................
2.3.6. Biểu đồ thời gian .....................................................................
Chương 3: Thiết kế chương trình ....................................................................
1. Mạch mô phỏng....................................................................................
2. Thuật toán
3. Chương trình
Tổng kết...........................................................................................................
Tài liệu tham khảo ...........................................................................................
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 1
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
LỜI NÓI ĐẦU
Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật công nghệ điện tử đã đang và sẽ
phát triển ngày càng rộng rãi đặc biệt là trong kỹ thuật số. Mạch số ứng dụng rất nhiều
trong kỹ thuật cũng như đời sống xã hội. Các ứng dụng của mạch số như đồng hồ số,
mạch đếm sản phẩm, mạch đo nhiệt độ... Trong các trường học công sở, cơ quan xí
nghiệp... đồng hồ số được dùng để xem giờ và báo giờ. Mục đích chính của đồ án này là
thiết kế một đồng hồ số có chức năng xem giờ và báo giờ thời gian thực, vẫn lưu được giờ
khi mất nguồn cung cấp.
Vì kiến thức và thời gian hạn chế, kinh nghệm còn yếu nên đồ án không tránh được
sai sót, rất mong sự đánh giá của Quý Thầy Cô và góp ý của các bạn sinh viên.
Sinh viên thực hiện
Hoàng Văn Ngân
Triệu Văn Lục
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 2
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
Chương 1: GIỚI THIỆU ĐỀ TÀI
1. Giới Thiệu:
Trong các ứng dụng dân dụng và công nghiệp, các bộ vi mạch vi điều khiển được
ứng dụng rộng rãi và đã phát huy được tính năng ưu việt của nó và ngày càng được sử
dụng rộng rãi. Việc sử dụng các bộ vi điều khiển để điều khiển các công việc mang
tính lặp lại có chu kỳ là cần thiết để thay thế sự giám sát của con người. Ở đây em xin
trình bày việc ứng dụng vi điều khiển để hiển thị, báo giờ thời gian thực trên LCD.
2. Sơ đồ khối:
KHOÁI HIEÅN THÒ
KHOÁI ÑIEÀU
CHÆNH
KHOÁI VÑK
CHUOÂNG
BAÙO
KHỐI THỜI GIAN THỰC
3. Chức năng các khối:
+ Khối điều chỉnh gồm 4 nút nhấn để đặt, hiệu chỉnh và hẹn thời gian.
+ Khối hiển thị là LCD.
+ Khối điều khiển sử dụng vi điều khiển AT89S52 điều khiển toàn bộ các hoạt động
chính của mạch : nhận tín hiệu điều khiển của khối điều chỉnh và tìn hiệu của từ con thời
gian thực xuất ra khối hiển thị và chuông báo.
+ Khối chuông báo là một chuông hoặc còi điện để báo hẹn giờ.
+ Khối thời gian thực là DS1307.
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 3
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
Chương 2: GIỚI THIỆU PHẦN CỨNG
1. Sơ đồ mạch:
Mạch nguồn:
Q5
BJT 633
U3
J11
R12
1
2
1
5A
GND
D2
VCC
VIN
10/2W
3
VOUT
C6
C5
R11
7805
104U 1000U
2
C4
1000U
12V DC
J3
330
1
2
D1
OUT 5V
POWER
Mạch điều khiển:
VCC
Y2
RN1
PORT 1
J6
1
2
3
4
5
6
7
8
39
38
37
36
35
34
33
32
P15
P16
P17
1
2
3
4
5
6
7
8
XTAL1
XTAL2
VCC
19
18
31
9
RESET
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
XTAL1
XTAL2
21
22
23
24
25
26
27
28
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
J10
1
2
3
4
5
6
7
8
1
2
32.768K
SCL
BT1
X1
X2
SQW/OUT
6
3
8
VBAT
VCC
VCC
RN2
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
SCL
2
SDA
3
SET TIME 4
SET ALARM5
DOWN
6
UP
7
8
ALARM
9
30
29
ALE/PROG
PSEN
SDA
7
DS1307
1
10
11
12
13
14
15
16
17
5
SCL
3V
VCC
SDA
GND
10K
2
3
4
5
6
7
8
9
4
1
1
2
3
4
5
6
7
8
PORT 2
PORT 0
J1
U4
U2
VCC
A1015
ALARM
R10
Q2
10K
S1
1
2
10K
SOUND
SW1
EA/VPP
RST
AT89S52
SET TIME
VCC
XTAL2
XTAL1
SET TIME
Y1
J5
12M
C1
33P
C2
33P
VCC
1
2
3
4
5
6
P15
P16
P17
R2
NAP 89S
SW5
RESET
SW2
SET ALARM
SET ALARM
C3
10UP
SW3
1.5K
RESET
DOWN
DOWN
R1
10K
SW4
UP
UP
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 4
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
Mạch hiển thị:
U1
LCD16*2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Vss
Vdd
V0
RS
R/W
E
D0
D1
D2
D3
D4
D5
D6
D7
A
K
LCD
ADJ1
RS
RW
E
D0
D1
D2
D3
D4
D5
D6
D7
10k
VCC
D0
D1
D2
D3
D4
D5
D6
D7
D7
D6
D5
D4
R2
8
7
6
5
4
3
2
1
SW1
330
VCC
Q1
R1
J1
VCC
LED
8 BIT
C1815
J3
8
7
6
5
4
3
2
1
2
1
E
RW
RS
LED
10K
POWER
J2
4 BIT
2. Giới thiệu về các linh kiện trong mạch
2.1. AT89S52:
AT89S52 cũng có cấu trúc phần cứng giống như các vi điều khiển khác trong họ 8051
và còn có các đặc trưng riêng:
+ Bộ nhớ 8k
+ So với 89C, nó có chân MISO (P1.5), MOSI (P1.6), SCK (P1.7) nên có thể nạp
ISP
39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
19
18
31
9
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5/MISO
P1.6/MOSI
P1.7/ACK
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
XTAL1
XTAL2
ALE/PROG
PSEN
EA/VPP
RST
AT89S52
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
30
29
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Hình : Sơ đồ chân 89S52
Trang 5
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
2.2. LCD:
2.2.1. Chức năng các chân:
Chân
Tên
số
1
Vss
2
Vdd
3
4
Vee
RS
5
RW
6
E
7-14
DB0DB7
15,16 A,K
Chức năng
Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của
mạch điều khiển
Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với
Vcc=5V của mạch điều khiển
Chân này dùng để điều chỉnh độ tương phản của LCD
Chân chọn thanh ghi (Register select).
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở
chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ
“đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong
LCD.
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để
LCD hoạt
động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận)
thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition)
của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện
cạnh lên (low- to-high transition) ở chân E và được LCD giữ ở bus đến
khi nào chân E xuống mức thấp.
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2
chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit
DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit
MSB là DB7.
Đèn của LCD
2.2.2. Sơ đồ khối của HD44780:
Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên trong lớp
vỏ và chỉ đưa các chân giao tiếp cần thiết.
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 6
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
Hình:Sơ đồ khối của HD44780
a. Các thanh ghi:
Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR (Instructor
Register) và thanh ghi dữ liệu DR (Data Register)
Thanh ghi IR : Để điều khiển LCD, người dùng phải “ra lệnh” thông qua tám đường
bus DB0-DB7. Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng. Người dùng chỉ
việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR. Nghĩa là, khi ta nạp vào thanh
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 7
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và
thực hiện lệnh đó.
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). Nghĩa là, khi MPU ghi thông tin vào DR, mạch nội bên
trong chíp sẽ tự động ghi thông tin này vào DDRAM hoặc CGRAM. Hoặc khi thông tin
về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này trong vùng RAM nội của HD44780 sẽ
được chuyển ra DR để truyền cho MPU.
Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2 thanh ghi
này khi giao tiếp với MPU. Bảng sau đây tóm tắt lại các thiết lập đối với hai chân RS và
R/W theo mục đích giao tiếp.
RS RW
Khi cần
0
0
Ghi vào thanh ghi IR để ra lệnh cho LCD (VD: cần display clear,…)
0
1
Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở DB0-DB6.
1
0
Ghi vào thanh ghi DR.
Đọc
dữ liệu từ DR.
1
1
b. Cờ báo bận BF(Busy Flag):
Khi thực hiện các hoạt động bên trong chíp, mạch nội bên trong cần một khoảng thời
gian để hoàn tất. Khi đang thực thi các hoạt động bên trong chip như thế, 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 để báo cho MPU biết nó đang “bận”. Dĩ nhiên, khi xong việc, nó sẽ đặt cờ
BF lại mức 0.
c. Bộ Đếm địa chỉ AC (Address Counter):
Như trong sơ đồ khối, thanh ghi IR không trực tiếp kết nối với vùng RAM (DDRAM
và CGRAM) mà thông qua bộ đếm địa chỉ AC. Bộ đếm này lại nối với 2 vùng RAM theo
kiểu rẽ nhánh. 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 nhưng việc chọn lựa vùng RAM tương tác đã được bao hàm trong
mã lệnh.
d. Vùng Ram hiển thị DDRAM(Display Data RAM):
Đây là vùng RAM dùng để hiển thị, nghĩa là ứng với một địa chỉ của RAM là một ô kí
tự trên màn hình và khi bạn ghi vào vùng RAM này một mã 8 bit, LCD sẽ hiển thị tại vị
trí tương ứng trên màn hình một kí tự có mã 8 bit mà bạn đã cung cấp.
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 8
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
Hình:Mối quan hệ
giữa địa chỉ của
DDRAM và vị trí hiển
thị của LCD
Vùng RAM này có 80x8 bit nhớ, nghĩa là chứa được 80 kí tự mã 8 bit. Những vùng
RAM còn lại không dùng cho hiển thị có thể dùng như vùng RAM đa mục đích.
e. Vùng ROM chứa ký tự đồ họa:
Vùng ROM này dùng để chứa các mẫu kí tự loại 5x8 hoặc 5x10 điểm ảnh/kí tự, và
định địa chỉ bằng 8 bit. Tuy nhiên, nó chỉ có 208 mẫu kí tự 5x8 và 32 mẫu kí tự kiểu 5x10
(tổng cộng là 240 thay vì 28 = 256 mẫu kí tự). Người dùng không thể thay đổi vùng
ROM này.
f. Vùng RAM chứa kí tự đồ họa CGRAM (Character Generator RAM):
Nhà sản xuất dành vùng có địa chỉ byte cao là 0000 để người dùng có thể tạo các mẫu
kí tự đồ họa riêng. Tuy nhiên dung lượng vùng này rất hạn chế: Ta chỉ có thể tạo 8 kí tự
loại 5x8 điểm ảnh, hoặc 4 kí tự loại 5x10 điểm ảnh.
2.2.3. Tập lệnh của LCD:
Các lệnh của LCD có thể chia thành 4 nhóm như sau :
• Các lệnh về kiểu hiển thị. VD : Kiểu hiển thị (1 hàng / 2 hàng), chiều dài dữ liệu (8
bit / 4 bit), …
• Chỉ định địa chỉ RAM nội.
• Nhóm lệnh truyền dữ liệu trong RAM nội.
• Các lệnh còn lại .
t
Tên lệnh
Hoạt động
(max)
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 0 0
0
0
0
0
0
1
Lệnh Clear Display (xóa hiển thị) sẽ ghi một khoảng trống-blank (mã
Clear
Display hiển kí tự 20H) vào tất cả ô nhớ trong DDRAM, sau đó trả bộ đếm
địa AC=0, trả lại kiểu hiện thị gốc nếu nó bị thay đổi. Nghĩa là : Tắt
hiển thị, con trỏ dời về góc trái (hàng đầu tiên), chế độ tăng AC
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1.52
Return
DBx = 0 0
0
0
0
0
1
*
ms
home
Lệnh Return home trả bộ đếm địa chỉ AC về 0, trả lại kiểu hiển thị
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 9
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
gốc nếu nó bị thay đổi. Nội dung của DDRAM không thay đổi
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 0 0
0
0
0
1 [I/D] S
I/D : Tăng (I/D=1) hoặc giảm (I/D=0) bộ đếm địa chỉ hiển thị AC 1
đơn vị mỗi khi có hành động ghi hoặc đọc vùng DDRAM. Vị trí con
Entry
trỏ cũng di chuyển theo sự tăng giảm này.
mode set
S : Khi S=1 toàn bộ nội dung hiển thị bị dịch sang phải (I/D=0) hoặc
sang trái (I/D=1) mỗi khi có hành động ghi vùng DDRAM. Khi S=0:
không dịch nội dung hiển thị. Nội dung hiển thị không dịch khi đọc
DDRAM hoặc đọc/ghi vùng CGRAM.
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 0 0
0
0
1
[D] [C] [B]
D: Hiển thị màn hình khi D=1 và ngược lại. Khi tắt hiển thị, nội dung
Display DDRAM không thay đổi.
C: Hiển thị con trỏ khi C=1 và ngược lại
on/off
control B: Nhấp nháy kí tự tại vị trí con trỏ khi B=1 và ngược lại
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 0 0
0
1 [S/C] [R/L] *
*
Lệnh Cursor or display shift dịch chuyển con trỏ hay dữ liệu hiển thị
sang trái mà không cần hành động ghi/đọc dữ liệu. Khi hiển thị kiểu 2
dòng, con trỏ sẽ nhảy xuống dòng dưới khi dịch qua vị trí thứ 40 của
Cursor hàng đầu tiên. Dữ liệu hàng đầu và hàng 2 dịch cùng một lúc. Chi tiết
sử dụng xem bảng bên dưới:
or
S/C R/L
Hoạt động
display
0
0
Dịch vị trí con trỏ sang trái (Giảm AC một đơn vị).
shift
0
1
Dịch vị trí con trỏ sang phải (Tăng AC lên 1 đơn vị).
1
0
Dịch toàn bộ nội dung hiển thị sang trái, con trỏ cũng
dịch theo.
1
1
Dịch toàn bộ nội dung hiển thị sang phải, con trỏ cũng
dịch theo
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 0 0
1 [DL] [N] [F] *
*
DL: Khi DL=1, LCD giao tiếp với MPU bằng giao thức 8 bit (từ
bit DB7 đến DB0). Ngược lại, giao thức giao tiếp là 4 bit (từ bit DB7
Function đến bit DB0). Khi chọn giao thức 4 bit, dữ liệu được truyền/nhận 2
lần liên tiếp. với 4 bit cao gởi/nhận trước, 4 bit thấp gởi/nhận sau.
set
N: Thiết lập số hàng hiển thị. Khi N=0 : hiển thị 1 hàng, N=1: hiển
thị 2 hàng.
F : Thiết lập kiểu kí tự. Khi F=0: kiểu kí tự 5x8 điểm ảnh, F=1: kiểu
kí tự 5x10 điểm ảnh.
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 10
37
us
37
us
37
us
37
us
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
* Chú ý:
• Chỉ thực hiện thay đổi Function set ở đầu chương trình. Và
sau khi được thực thi 1 lần, lệnh thay đổi Function set không
được LCD chấp nhận nữa ngoại trừ thiết lập chuyển đổi giao
thức giao tiếp.
• Không thể hiển thị kiểu kí tự 5x10 điểm ảnh ở kiểu hiển thị 2
hàng
Mã lệnh :DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 0
1 [ACG] [ACG] [ACG] [ACG] [ACG] [ACG]
Set
Lệnh này ghi vào AC địa chỉ của CGRAM. Kí hiệu [ACG] chỉ 1 bit
CGRAM của chuỗi dữ liệu 6 bit. Ngay sau lệnh này là lệnh đọc/ghi dữ liệu từ
address CGRAM tại địa chỉ đã được chỉ định.
Mã lệnh :DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = 0
1 [AD] [AD] [AD] [AD] [AD] [AD]
Lệnh này ghi vào AC địa chỉ của DDRAM, dùng khi cần thiết lập tọa
Set
độ hiển thị mong muốn. Ngay sau lệnh này là lệnh đọc/ghi dữ liệu từ
DDRAM
DDRAM tại địa chỉ đã được chỉ định.
address
Khi ở chế độ hiển thị 1 hàng: địa chỉ có thể từ 00H đến 4FH. Khi ở
chế độ hiển thị 2 hàng, địa chỉ từ 00h đến 27H cho hàng thứ nhất, và
từ 40h đến 67h cho hàng thứ 2.
Mã lệnh :DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = [BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC]
(RS=0, R/W=1).
Read
Khi cờ BF bật, LCD đang làm việc và lệnh tiếp theo (nếu có) sẽ bị bỏ
BF and
qua nếu cờ BF chưa về mức thấp. Cho nên, khi lập trình điều khiển,
address
bạn phải kiểm tra cờ BF trước khi ghi dữ liệu vào LCD.
Khi đọc cờ BF, giá trị của AC cũng được xuất ra các bit [AC]. Nó là
địa chỉ của CG hay DDRAM là tùy thuộc vào lệnh trước đó.
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Write
DBx = [Write data]
(RS=1, R/W=0)
data to
Sau khi ghi, bộ đếm địa chỉ AC tự động tăng/giảm 1 tùy theo thiết lập
CG or
Entry mode. Lưu ý là thời gian cập nhật AC không tính vào thời gian
DDRAM
thực thi lệnh.
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
DBx = [Read data]
(RS=1, R/W=1)
Read
Khi thiết lập RS=1, R/W=1,dữ liệu từ CG/DDRAM được chuyển ra
data
MPU thông qua các chân DBx (địa chỉ và vùng RAM đã được xác
from
CG or định bằng lệnh ghi địa chỉ trước đó).
DDRAM Sau khi đọc, AC tự động tăng/giảm 1 tùy theo thiết lập Entry mode,
tuy nhiên nội dung hiển thị không bị dịch bất chấp chế độ Entry
mode.
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 11
37
us
37
us
0
us
40
us
40
us
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
2.2.4. Biểu đồ thời gian :
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 12
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
2.3. IC thời gian thực DS1307:
2.3.1. Chức năng các chân:
X1,X2: nối với thạch anh 32,768 kHz
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 5
V đượ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à 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ị.
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.
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 13
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
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
SQW/OUT(square wave/output driver)- khi được kích hoạt thì bit SQWE được
thiết lập, 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.
2.3.2. Một vài thông số kỹ thuật:
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 NV 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.
2.3.3. Sơ đồ khối của DS1307:
Hình: Sơ đồ khối của DS1307
a. Địa chỉ Ram và RTC:
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 14
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
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.
Chú ý: Trạng thái đóng nguốn ban đầu của tất cả các thanh ghi không được định nghĩa.
Do đó phải bật bộ dao độngtrong lúc cấu hình ban đầu (CH=0).
Thanh ghi thời gian thực được mô tả như sau:
00h
07h
08h
3Fh
Seconds
Minutes
Hours
Day
Date
Month
Year
Control
Ram
56x8
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).
Trong DS1307 có một thanh ghi điều khiển để điều khiển hoạt động của chân
SQW/OUT.
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
OUT
0
0
SQWE
0
0
RS1
RS0
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 bị cấm. 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ẽ cho phép đầ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.
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 15
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
RS1 RS0
0
0
0
1
1
0
1
1
Tần số xung vuông
1Hz
4,096kHz
8,192kHz
32,768kHz
b. Hoạt động:
DS1307 hỗ trợ truyền dữ liệu bus 2 dây 2 chiều. Một thiết bị gửi dữ liệu lên đường truyền
được định nghĩa như là 1 máy phát và một thiết bị nhận dữ liệu như là máy nhận. Thiết bị điều
khiển thông điệp gọi là Master. Thiết bị được điều khiển bởi Master được gọi là Slaver. Đường
truyền (Bus) phải được điều khiển bởi thiết bị master mà phát ra xung nối tiếp (Serial
Clock_SCL) điều khiển sự truy cập đường truyền và phát ra điều kiện bắt đầu, dừng (Start ,Stop
condition). DS1307 hoạt động như là Slave trên bus 2 dây.
Hình: Cấc hình bus 2 dây điển hình
Việc truyền dữ liệu chỉ có thể được bắt đầu khi bus không bận
Trong lúc truyền dữ liệu, đường dữ liệu phải ổn định bất cứ khi nào đường Clock
là cao (High).
Do đó, các điều kiền về đường truyền sau được định nghĩa:
• Bus not busy:cả đường dữ liệu và xung đều ở mức cao (High)
• Start data transfer: một sự thay đổi trong trang thái của đường dữ liệu từ HIGH LOW trong khi xung clock vẫn cao (H), đây là điều kiện bắt đầu (Start
Condition).
• Stop data transfer: một sự thay đổi trong trang thái của đường dữ liệu từ LOW HIGH trong khi xung clock vẫn cao (H), đây là điều kiện dừng (Stop
Condition) .
• Data valid: trạng thái của đường dữ liệu biểu diễn dữ liệu hợp lệ khi mà : sau điều
kiện Start đường dữ liệu ổn định trong khoảng thời gian chu kỳ cao (HIGH) của
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 16
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
tín hiệu clock. Dữ liệu trên đường phải thay đổi trong chu kỳ thấp (LOW) của
tín hiệu clock. Có 1 xung clock/ 1 bit dữ liệu.
Mỗi dữ liệu truyền đi với điều kiện Start và kết thúc với điều kiện Stop. Số byte dữ liệu
truyền giữa điều kiện Start và Stop là không giới hạn và được quyết định bởi thiết bị
master. Sau khi một byte được truyền thì được báo nhận ở bộ thu với bit thứ 9.
• Acknowledge: Mỗi thiết bị nhận khi được định địa chỉ thì phải phát ra tín hiệu
báo nhận sau khi nhận mỗi byte. Thiết bị master phải phat ra thêm 1 xung clock
để ghép với bit báo nhận này
Thiết bị báo nhận phải kéo đường SDA xuống trong suốt xung clock báo nhận như là
cách mà đường SDA ổn định thấp trong chu kỳ High của xung clock báo nhận. Dĩ nhiên,
thời gian thiết lập và thời gian giữ (chờ) phải được tính toán đến. Master phải báo hiệu kết
thúc dữ liệu đến Slave bằng cách không phát ra một bit báo nhận trên byte cuối cùng mà
được ghi vào Slave. Trong trường hơp này, Slave phải để đường dữ liệu ở mức cao (H) để
cho phép Master phát ra điều kiện STOP.
2.3.4. Truyền dữ liệu trên bus 2 dây nối tiếp:
Hình: Truyền dữ liệu trên bus 2 dây
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
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 17
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
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.
2.3.5. Hai chế độ hoạt động của DS1307:
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 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 DS 1307 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.
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 18
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
2.3.6. Biểu đồ thời gian:
Hình: Biểu đồ thời gian.
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 19
Đồ án VĐK: Đồng hồ thời gian thực hiển thị LCD
http://www.ebook.edu.vn
Chương 3: THIẾT KẾ CHƯƠNG TRÌNH
1. Mạch mô phỏng
SVTH: Hoàng Văn Ngân - Triệu Văn Lục
Trang 20
- Xem thêm -