đồ án đồng hồ thời gian thực - Pdf 15


BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
ĐỒ ÁN MÔN HỌC
MÔN: VI XỬ LÝ
Đề tài: ĐỒNG HỒ THỜI GIAN THỰC
GVHD : Nguyễn Tất Bảo Thiện
LỚP : ĐH ĐT6LTA
SVTH :Tạ Tấn Vàng
Nguyễn Tấn Vinh
Nguyễn Mạnh Tú

PHẦN MỘT: GIỚI THIỆU VỀ 8051, DS12887,
74154 VÀ LED 7 ĐOẠN
I. VÀI ĐIỂM CƠ BẢN VỀ 8051:

8051 là IC vi điều khiển (Microcontroller) do
hãng Intel sản xuất. IC này có đặc điểm như
sau:

4k byte ROM,128 byte RAM

4 Port I/O 8 bit.

2 bộ đếm/ định thời 16 bit.

Giao tiếp nối tiếp.

64k byte không gian bộ nhớ chương trình mở
rộng.


IRQ\ - Ngõ ra yêu cầu ngắt

SQW – Ngõ ra sóng vuông

VCC – Nguồn cung cấp +5
Volt

GND – Mass
Hình dạng thực tế DS12887

2. Cấu trúc bên trong Real Time Clock DS12C887:
a. Sơ đồ địa chỉ của Real Time Clock:

Sơ đồ địa chỉ bao gồm 113 bytes
RAM thông dụng, 11 bytes RAM mà
thành phần bao gồm đồng hồ thời gian
thực, lịch, dữ liệu báo giờ và 4 bytes
được sử dụng cho việc điều khiển và
thông báo tình trạng. Tất cả 128 bytes
có thể được ghi hoặc đọc trực tiếp trừ
những trường hợp sau :

1. Thanh ghi C and D là hai thanh ghi
chỉ đọc.

2. Bit thứ 7 của thanh ghi A là bit chỉ
đọc.

3. Bit cao của byte thứ 2 là bit chỉ

Y12(14),Y13(15), Y14(16), Y15(17). Cho phép IC hoạt động
G1(18), G2(19).
Sơ đồ chân của IC 74154 Bảng chức năng
Hình dạng thực tế 74154

IV. LED 7 ĐOẠN:
Led 7 đoạn là loại đèn tiết kiệm năng lượng, tuổi thọ cao, được sử
dụng rộng rãi trong đời sống. Ở đây, led 7 đoạn được dùng để
hiện thị các giá trị của thời gian và lịch rất tiện lợi và hiệu quả
cao.
U 1 5
l e d 7 d o a n
7
6
4
2
1
9
1 0
3
8
5
A
B
C
D
E
F
G
V C C

3 1
1 9
1 8
9
3 9
3 8
3 7
3 6
3 5
3 4
3 3
3 2
1
2
3
4
5
6
7
8
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
1 0
1 1

P 2 . 1 / A 9
P 2 . 2 / A 1 0
P 2 . 3 / A 1 1
P 2 . 4 / A 1 2
P 2 . 5 / A 1 3
P 2 . 6 / A 1 4
P 2 . 7 / A 1 5
P 3 . 0 / R X D
P 3 . 1 / T X D
P 3 . 2 / I N T 0
P 3 . 3 / I N T 1
P 3 . 4 / T 0
P 3 . 5 / T 1
P 3 . 6 / W R
P 3 . 7 / R D
S W 3
R 2 3
U 1 8
D S 1 2 8 8 7
1 9
2 3
2 41 2
4
5
6
7
8
9
1 0
1 1

5
6
7
8
S W 6
C 5 R 2 4
R E S I S T O R S I P 9
1 2
3
4
5
6
7
8
9
R 1 9
R R 2 0
R
Y 1
1 2 . 0 0 0 K H z
C 4
R 1 7
R
C 1
C
C 2
R 1 8
R
J 7
C O N 8

1
2
3
4
5
D 6
D 4
D 5
D 7
D 7
Q 1
A 1 0 1 5
U 1 4
l e d 7 d o a n
7
6
4
2
1
9
1 0
3
8
5
A
B
C
D
E
F

D 1
R 5
R
Q 1 2
A 1 0 1 5
D 5
D 0
D 4
D 1 D 1
D 5
R 6
R
D 3
D 5
D 1
D 3
D 6
D 6
U 1 0
l e d 7 d o a n
7
6
4
2
1
9
1 0
3
8
5

G
V C C
V C C
D P
D 3
D 2
D 6
D 5
D 2
D 1
D 5
D 6
D 4
D 3
D 2
U 1 5
l e d 7 d o a n
7
6
4
2
1
9
1 0
3
8
5
A
B
C

D 7
C 1 2
D 7
D 4
D 7
U 1 3
l e d 7 d o a n
7
6
4
2
1
9
1 0
3
8
5
A
B
C
D
E
F
G
V C C
V C C
D P
D 2
D 5
D 5

D 1
D 1
D 0
D 7
D 6
D 5
C 1
D 3
U 2
l e d 7 d o a n
7
6
4
2
1
9
1 0
3
8
5
A
B
C
D
E
F
G
V C C
V C C
D P

8
5
A
B
C
D
E
F
G
V C C
V C C
D P
D 3
C 7
C 8
C 3
D 4
D 2
D 6
D 2
D 0
D 5
Q 2
A 1 0 1 5
D 0
C 3
D 0
U 8
l e d 7 d o a n
7

A 1 0 1 5
R 7
R
D 5
C 1
R 9
R
D 1
C 9
D 1
D 4
D 6
C 7
R 1 2
R
Q 5
A 1 0 1 5
R 1 0
R
C 6
D 7
C 6
D 7
D 5
D 4
Q 3
A 1 0 1 5
D 3 D 3
D 6
D 1

2
3
4
5
6
7
8
9
1 0
1 1
1 3
1 4
1 5
1 6
1 7
2 3
2 2
2 1
2 0
1 8
1 9
Y 0
Y 1
Y 2
Y 3
Y 4
Y 5
Y 6
Y 7
Y 8

A
B
C
D
E
F
G
V C C
V C C
D P
C 5
D 2
D 6
D 0
D 1
D 7
U 1 1
l e d 7 d o a n
7
6
4
2
1
9
1 0
3
8
5
A
B

1 0
3
8
5
A
B
C
D
E
F
G
V C C
V C C
D P
Q 1 0
A 1 0 1 5
V C C _ A R R O W
C 0
D 7
D 3
D 7
D 2
C 1 4
U 1 2
l e d 7 d o a n
7
6
4
2
1

D
E
F
G
V C C
V C C
D P
R 4
R

BEGIN
Nạp các giá trị khởi tạo cho các ô nhớ thời gian và
lịch.40H=59(giây),41H=59(phút),42H=23(giờ),43H=(thứ),
44H=01(ngày),45H=01(tháng),46H=09(năm).
Goi ctc kdrtc( chuong trình khởi động RTC DS1287)
Gọi ctc drtc( chương trình đọc các giá trị thời gian, lịch và dữ liệu từ RTC)
Mov A,48H( chuyển nội dung ô nhớ mặc định là RTC đang hoạt động bình
thường), tại địa chì 0EH của SRAM, ta nạp một giá trị mặc định cho nó trong
lần khởi động RTC trước đó. Mặc định giá trị = 5
A= 5, kiểm tra xem RTC đã
được khởi động các giá trị
măc định chưa.
Gọi chương trình GRTC( chương trình con ghi dữ liệu vào RTC)
Gọi CTC DRTC ( chương trình con đọc dữ liệu từ RTC)
Gọi CTC QUETLED(chương trình con hiển thị các giá trị thời gian và lịch)
P3.4=0, kiểm tra có
phím chỉnh cài đặt giờ
không?
Gọi CTC SETUPTIME (gọi chương trình con cài đặt lại giờ cho RTC)
Yes

khi nào nhả phím nhấn thì
thôi
Gọi CTC SETTHANG (chương trình con cài đặt giá trị phút)
P3.4=0
P3.4=1
P3.4=0
P3.4=0
P3.4=1
P3.4=1
P3.4=0
P3.4=1
P3.4=0
P3.4=1

KHỞI ĐỘNG_RTC
Mov A,#0AFH, chọn chế độ cho RTC
Mov R0,#0AH, chọn thanh ghi A trong RTC
Movx @R0,A, Ghi vào RTC
Mov R0,#0BH, chọn thanh ghi A trong RTC
Mov A,#0EH, chọn chế độ cho RTC
Movx @R0,A, Ghi vào RTC
RET
ĐỌC_RTC
Cất nội dung các thanh ghi 00h, 01h, ACC
R0=00H,R1=40H,
Movx A,@R0, lấy nội dung từ RAM ngoai.
INC R0, tăng gián tiếp địa chỉ RAM ngoài
INC R1, tăng gián tiếp địa chỉ ô nhớ chứa dữ liệu
Mov @R1,A, chuyển nội dung A vào ô nhớ dữ liệu
R0=09H, kiểm tra đã lấy

Goi CTC BIN2BCD
Gọi CTC BCD2MA7THANH
Mov P1,A (xuất dữ liệu ra )
Mov P2,R1 (xuất dữ liệu ra cột)
Gọi CTC DELAY
Tăng dữ liệu quét cột
R0 = 47H
RET
QUÉT LED
No
Yes
Tăng R0

Goi CTC QUETPHUT
Kiểm tra co
phim SETUP
hay không?
Kiểm tra xem có
phím DOWN
không?
Goi CTC DELAY( chống nảy phím)
Mov A,41H
Giảm giá trị nội dung thanh ghi A
Mov 41H,A
Kiểm tra
A=0FFH
Mov 41H,#59
Chương trình con
SETPHUT
Goi CTC GRTC

Yes
Yes
Yes
Yes
Yes

GHI_RTC
Cất nội dung các thanh ghi 00h, 01h, ACC
R0=00H,R1=40H,
MovA,@R1, chuyển gián tiếp nội dung ô nhớ dữ liệu
vào A
Movx @R0,A, ghi nội dung dữ liệu vào RAM ngoài
INC R0, tăng gián tiếp địa chỉ RAM ngoài
INC R1, tăng gián tiếp địa chỉ ô nhớ chứa dữ liệu
R0=09H, kiểm tra đã
lấy đủ dữ liệu chưa
Trả lại nội dung cho 00H, 01H,
ACC
RET
No
Yes

THE END


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status