Xem mẫu
- 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.
• 64k byte không gian bộ nhớ dữ liệu mở rộng.
• Một bộ xử lý luận lý (thao tác trên các bít
đơn).
• 210 bit được địa chỉ hóa.
Sơ đồ chân của chip
• Bộ nhân / chia 4µs. 8051
- II. IC ĐỒNG HỒ THỜI GIAN THỰC DS12887:
Khảo sát sơ đồ chân của
1.
DS12887:
Hình dạng thực tế DS12887
•AD0-AD7 – Bus đa hợp địa
chỉ/ dữ liệu
•NC – Bỏ trống
•MOT - Lựa chọn loại bus
•CS – Ngõ vào lựa chọn RT C
•AS – Chốt địa chỉ
•R/W – Ngõ vào đọc/ghi
•DS – Chốt dữ liệu
•RESET\ - Ngõ vàoReset
•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
- 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ỉ
đọc.
- b. Các thanh ghi điều:
DS12C887 có 4 thanh ghi điều khiển được sử dụng vào mọi lúc kể cả trong quá
trình cập nhật.
MSB LSB
Thanh ghi A:
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0
MSB LSB
Thanh ghi B:
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
SET PIE AIE UIE SQWE DM 24/12 DSE
MSB LSB
Thanh ghi C:
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
IRQF PF AF UF 0 0 0 0
MSB LSB
Thanh ghi D:
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
VRT 0 0 0 0 0 0 0
- III. IC 74154:
• Đây là IC có chức năng phân kênh, nó gôm có 22 ngõ vao, cho
̀ ̀
ra 24 ngõ ra. Chung ta dung nó để mở rông port xuât cho vi xử
́ ̀ ̣ ́
ly. Căn ban gôm có chân ngõ vao A(23),B(22),C(21),D(20) là
́ ̉ ̀ ̀
cac chân để chon ngõ ra tương ứng với cac ngõ ra tich cực mức
́ ̣ ́ ́
thâp là cac chân Y0(1), Y1(2), Y2(3), Y3(4), Y4(5), Y5(6),
́ ́
Y6(7), Y7(8), Y8(9), Y9(10),Y10(11), Y11(13),
́ ̣ ̣
Y12(14),Y13(15), Y14(16), Y15(17). Cho phep IC hoat đông
Hình dạng thực tế 74154
G1(18), G2(19).
Sơ đồ chân của IC 74154 Bảng chức năng
- IV. LED 7 ĐOẠN:
Led 7 đoan là loai đen tiêt kiêm năng lượng, tuôi thọ cao, được sử
̣ ̣̀ ́ ̣ ̉
dung rông rai trong đời sông. Ở đây, led 7 đoan được dung để
̣ ̣ ̃ ́ ̣ ̀
hiên thị cac giá trị cua thời gian và lich rât tiên lợi và hiêu quả
̣ ́ ̉ ̣ ̣́ ̣
cao.
3
8
VCC
VCC
7 U 15
A
6
B
4
C
2
D
1
E
9
F
10
G
5
DP
le d 7 d o a n
Sơ đồ chân Led 7 đoạn
Hình dạng thực tế Led 7 đoạn
- PHẦN HAI: THIẾT KẾ VÀ THI CÔNG
I. Thiết kế phần cứng:
1. Sơ đồ khối:
KHỐI KHỐI MỞ RÔNG VÀ HIỆN THỊ
̣
VI XỬ LÝ ̣
LED 7 ĐOAN
2. Nhiệm vụ của các khối:
a. Khối vi xử lý:
Khối vi xử lý bao gồm IC vi xử lý 89C51 có công dụng để chạy
chương trình giao tiếp xuất nhập qua các port, IC thời gian DS12887
để tao thời gian thực.
̣
Khối vi xử lý được kết nối 3 port để điều khiển quet cac led 7 đoan
́́ ̣
và để giao tiêp với RTC(DS12887).
́
- Sơ đồ nguyên lý mạch:
VCC
R 16 C4 C5 R 24 U 17 J7
24
40
31
R
U 18 41 2 39 21 1
AD0 P 0 .0 /A D 0 P 2 .0 /A 8
EA
VCC 5 3 38
VCC
22 2
AD1 P 0 .1 /A D 1 P 2 .1 /A 9
18 6 4 37 23 3
RST AD2 P 0 .2 /A D 2 P 2 .2 /A 1 0
7 5 36 24 4
AD3 P 0 .3 /A D 3 P 2 .3 /A 1 1
8 6 35 25 5
AD4 P 0 .4 /A D 4 P 2 .4 /A 1 2
23 9 7 34 26 6
SQW AD5 P 0 .5 /A D 5 P 2 .5 /A 1 3
10 8 33 27 7
AD6 P 0 .6 /A D 6 P 2 .6 /A 1 4
D1 11 9 32 28 8 C1 R 18
AD7 P 0 .7 /A D 7 P 2 .7 /A 1 5 C
19 12
LED IR Q P 3 .2 /IN T 0 R
1 5 R E S IS T O R S 16
IP 9
R /W P 3 .6 /W R
13 17 17 CON8 SW 1
CS DS P 3 .7 /R D
GND
1 14 30
MOT AS A LE 9
RST 29
PSEN
D S12887 R 19 J8 R 17
12
R 23 R R 20
R
S W 3 R R 21 13 8 1
P 3 .3 /IN T 1 P 1 .7
S W 4 R R 22 15 7 2
P 3 .5 /T 1 P 1 .6
S W 6 R 14 6 3
P 3 .4 /T 0 P 1 .5
S W 2 11 5 4
P 3 .1 /T XD P 1 .4
10 4 5
P 3 .0 /R XD P 1 .3
19 3 6
X1 P 1 .2
C2 2 7
P 1 .1
Y1 1 8
P 1 .0
1 2 . 0 0 0 K H z1 8
X2
C3
CON8
8051
- b. Khối mở rộng và hiện thị:
• Khôi nay gôm IC 74154 được sử dung để phân kênh và led 7 đoan để cho
́̀ ̀ ̣ ̣
hiên thị lich và thời gian.
̣ ̣
• Sơ đồ nguyên lý mach: ̣
C0
C1
C2
C3
C4
C5
C6
C7
3
8
3
8
3
8
3
8
3
8
3
8
3
8
3
8
VCC
VCC
VCC
VC C
VCC
VC C
VC C
VC C
VC C
VC C
VC C
VC C
VC C
VC C
VC C
VC C
D 0 D 0 D 0 D 0 D 0 D 0 D 0 D 0
7 U1 7 U2 7 U3 7 U4 7 U5 7 U6 7 U7 7 U8
A A A A A A A A
J2 D 1 D 1 D 1 D 1 D 1 D 1 D 1 D 1
6 6 6 6 6 6 6 6
B B B B B B B B
D 2 D 2 D 2 D 2 D 2 D 2 D 2 D 2
8 4 4 4 4 4 4 4 4
C C C C C C C C
D 3 D 3 D 3 D 3 D 3 D 3 D 3 D 3
7 2 2 2 2 2 2 2 2
7 D
D D D D D D D D
D 4 D 4 D 4 D 4 D 4 D 4 D 4 D 4
6 1 1 1 1 1 1 1 1
6 D
E E E E E E E E
D 5 D 5 D 5 D 5 D 5 D 5 D 5 D 5
5 9 9 9 9 9 9 9 9
5 D
F F F F F F F F
D 6 D 6 D 6 D 6 D 6 D 6 D 6 D 6
4 10 10 10 10 10 10 10 10
4 D
G G G G G G G G
D 7 D 7 D 7 D 7 D 7 D 7 D 7 D 7
3 5 5 5 5 5 5 5 5
3 D
DP DP DP DP DP DP DP DP
2
2 D
1
1 D
0 D
CON8 le d 7 d o a n le d 7 d o a n le d 7 d o a n le d 7 d o a n le d 7 d o a n le d 7 d o a n le d 7 d o a n le d 7 d o a n
C 14
C 10
C 11
C 12
C 13
C8
C9
3
8
3
8
3
8
3
8
3
8
3
8
3
8
VCC
VCC
VCC
VC C
VCC
VC C
VC C
VC C
VC C
VC C
VC C
VC C
VC C
VC C
D 0 D 0 D 0 D 0 D 0 D 0 D 0
7 U9 7 U 10 7 U 11 7 U 12 7 U 13 7 U 14 7 U 15
A A A A A A A
D 1 D 1 D 1 D 1 D 1 D 1 D 1
6 6 6 6 6 6 6
B B B B B B B
D 2 D 2 D 2 D 2 D 2 D 2 D 2
4 4 4 4 4 4 4
C C C C C C C
D 3 D 3 D 3 D 3 D 3 D 3 D 3
2 2 2 2 2 2 2
D D D D D D D
D 4 D 4 D 4 D 4 D 4 D 4 D 4
1 1 1 1 1 1 1
E E E E E E E
D 5 D 5 D 5 D 5 D 5 D 5 D 5
9 9 9 9 9 9 9
F F F F F F F
D 6 D 6 D 6 D 6 D 6 D 6 D 6
10 10 10 10 10 10 10
G G G G G G G
D 7 D 7 D 7 D 7 D 7 D 7 D 7
5 5 5 5 5 5 5
DP DP DP DP DP DP DP
le d 7 d o a n le d 7 d o a n le d 7 d o a n le d 7 d o a n le d 7 d o a n le d 7 d o a n le d 7 d o a n
11
13
15
10
12
14
0
2
4
6
8
1
3
5
7
9
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
VC C _AR R O W
J6
1
2
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q 11 Q 12 Q 13 Q 14 Q 15 VC C _AR R O W
CON2
A1015 A1015 A1015 A1015 A 1015 A1015 A 1015 A1015 A 1015 A1015 A1015 A1015 A 1015 A1015 A1015
R1 R 2 R 3 R 4 R 5 R 6 R 7 R 8 R 9 R 1 R0 1 R1 1 R2 1 R3 1 R4 1 5
RRRRRRRRRRRRRRR
1
3
4
5
6
7
0
1
2
3
4
5
6
7
8
9
1
1
1
1
1
1
1
U 16
Y11
Y10
Y12
Y13
Y14
Y15
Y0
Y1
Y2
Y3
Y4
Y5
Y7
Y9
Y6
Y8
74154
G1
G2
C
D
A
B
3
2
1
8
19
0
2
2
2
2
1
5
4
3
2
1
J5
CON5
- II. Thiết kế phần BEGIN
mềm: ải thích về chương Nạp các giá trị khởi tạo cho các ô nhớ thời gian và
• Gi 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).
trình: Goi ctc kdrtc( chuong trình khởi động RTC DS1287)
• Sơ lượt về lưu đồ: 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 đã Yes
được khởi động các giá trị
măc định chưa.
No
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)
No
P3.4=0, kiểm tra có
phím chỉnh cài đặt giờ
không?
Yes
Gọi CTC SETUPTIME (gọi chương trình con cài đặt lại giờ cho RTC)
END
- Begin(chương trình con
cài đặt thời gian và lịch)
P3.4=0
Nhảy tại chỗ, chờ cho đến
khi nào nhả phím nhấn thì
thôi
P3.4=1
Gọi CTC SETPHUT (chương trình con cài đặt giá trị phút)
P3.4=0
Nhảy tại chỗ, chờ cho đến
khi nào nhả phím nhấn thì
thôi
P3.4=1
Gọi CTC SETGIO (chương trình con cài đặt giá trị phút)
P3.4=0
Nhảy tại chỗ, chờ cho đến
khi nào nhả phím nhấn thì
thôi
P3.4=1
Gọi CTC SETTHU (chương trình con cài đặt giá trị phút)
P3.4=0
Nhảy tại chỗ, chờ cho đến
khi nào nhả phím nhấn thì
thôi
P3.4=1
Gọi CTC SETNGAY (chương trình con cài đặt giá trị phút)
P3.4=0
Nhảy tại chỗ, chờ cho đến
khi nào nhả phím nhấn thì
thôi
P3.4=1
Gọi CTC SETTHANG (chương trình con cài đặt giá trị phút)
- ĐỌC_RTC
Cất nội dung các thanh ghi 00h, 01h, ACC
KHỞI ĐỘNG_RTC
R0=00H,R1=40H,
Mov A,#0AFH, chọn chế độ cho RTC
Movx A,@R0, lấy nội dung từ RAM ngoai.
Mov R0,#0AH, chọn thanh ghi A trong RTC
Mov @R1,A, chuyển nội dung A vào ô nhớ d ữ liệu
Movx @R0,A, Ghi vào RTC
INC R0, tăng gián tiếp địa chỉ RAM ngoài
Mov A,#0EH, chọn chế độ cho RTC INC R1, tăng gián tiếp địa chỉ ô nhớ chứa dữ liệu
Mov R0,#0BH, chọn thanh ghi A trong RTC
No
R0=09H, kiểm tra đã lấy
đủ dữ liệu chưa
Movx @R0,A, Ghi vào RTC
Yes
Trả lại nội dung cho 00H, 01H,
ACC
RET
RET
- BIN2BCD BCD2MA7THANH
Mov B,#10 Mov DPTR,# TABLE, nạp địa chỉ dữ
liệu.
DIV AB
ANL A, #0FH
SWAP A
Movc A,@A+DPTR, lấy dữ liệu
ORL A,B
RET RET
- QUÉT LED
Cất 00H,01H,ACC vào stack Gọi CTC DELAY
Tăng dữ liệu quét cột
Mov R0,#40H
Mov R1,#00H Mov A,@R0
Mov A,@R0 Goi CTC BIN2BCD
Gọi CTC BCD2MA7THANH
Goi CTC BIN2BCD
SWAP A ( đảo nội dung thanh ghi A) Mov P1,A (xuất dữ liệu ra )
Gọi CTC BCD2MA7THANH Mov P2,R1 (xuất dữ liệu ra cột)
Gọi CTC DELAY
Mov P1,A (xuất dữ liệu ra )
Mov P2,R1 (xuất dữ liệu ra cột) Tăng dữ liệu quét cột
Tăng R0
No
R0 = 47H
Yes
RET
- Chương trình con
SETPHUT
Goi CTC QUETPHUT RET
Kiểm tra xem có No
Yes phím UP không?
Kiểm tra co phim
SETUP hay
không?
Yes
No
Goi CTC DELAY( chống nảy phím)
No
Kiểm tra xem có
phím DOWN
không? Yes Mov A,41H
Goi CTC DELAY( chống nảy phím)
Tăng giá trị nội dung thanh ghi A
Mov A,41H
Mov 41H,A
Giảm giá trị nội dung thanh ghi A
No
Mov 41H,A Kiểm tra A=59
No Yes
Kiểm tra
Mov 41H,#00
A=0FFH Yes
Mov 41H,#59
Yes
Goi CTC GRTC
DOWN=0
No
Goi CTC DRTC
Yes
Mov R7,#100 UP=0
No
Gọi CTC QUETPHUT No
SETUP=0
Yes
No Yes
R7=0 RET
- 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
No
R0=09H, kiểm tra đã
lấy đủ dữ liệu chưa
Yes
Trả lại nội dung cho 00H, 01H,
ACC
RET
- THE END
nguon tai.lieu . vn