Đồ án 1: Đồng hồ báo thức
PHẦN I. CƠ SỞ LÝ THUYẾT
Chương 1: Giới thiệu khái quát về 89C51
Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương
tự nhau, ở đây ta giới thiệu 89c51 với các đặc điểm chính sau:
- 4KB EPROM nội
- 128 byte RAM nội
- 4 port xuất / nhập (I/O port) 8 bit
- 2 bộ đònh thời 16 bit
- Giao tiếp nối tiếp
- 64kb Rom ngoài
- 64kb Ram ngoài
- 210 vò trí nhớ để đònh vò bit, mỗi vò trí một bit
- 4us cho hoạt động nhân hoặc chia
1.1. Cấu trúc bên trong của IC 89C51 :
Hình I.1.1: Sơ đồ khối của chip 8051
GVHD: Trương Năng Toàn 1
Đồ án 1: Đồng hồ báo thức
- Thành phần chính của vi điều khiển 8051 là bộ xử lý trung tâm hay
còn gọi là CPU. CPU bao gồm:
Thamh ghi tích luỹ A
Thanh ghi tích luỹ B, dùng cho phép nhân và chia
Đơn vò logic học ALU
Từ trạng thái chương trình PSW
4 bank thanh ghi
Con trỏ ngăn xếp
- Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển
thời gian và logic
- Đơn vò xử lý trung tâm nhận trực tiếp xung từ bộ dao động
- Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ở
bên trong. Các nguồn ngắt có thể là các biến cố ở bên ngoài, sự tràn bộ đếm
đònh thời hoặc cũng có thể là giao diện nối tiếp.
- 2 bộ đònh thời 16 bit hoạt động như một bộ đếm.
- Các cổng port 0, port 1, port 2, port 3 được sử dụng vào mục đích điều
khiển, ở cổng port 3 có thêm các đường dẫn điều khiển dùng để trao đổi với
một bộ nhớ bên ngoài, hoặc để đầu nối giao diện nối tiếp cũng như các
đường dẫn ngắt bên ngoài.
- Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng
bộ làm việc độc lập với nhau. Tốc độ truyền qua cổng nối tiếp có thể đặt
trong dải rộng và được ấn đònh bằng một bộ đònh thời.
- Trong vi diều khiển 8051 còn có hai thành phần quan trọng khác là bộ
nhớ và các thanh ghi
- Bộ nhớ còn có Ram và Rom dùng để lưu dữ liệu
và mã lệnh.
- Các thanh ghi sử dụng để lưu dữ thông tin trong
quá trình xử lý. Khi CPU làm việc, nó làm thay đổi nội
dung của các thanh ghi.
1.2. Sơ đồ chân 89C51 :
Port 0:
- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.
- Port 0 có hai chức năng:
Port xuất nhập dữ liệu (P0.0 - P0.7) → không sử
dụng bộ nhớ ngoài.
GVHD: Trương Năng Toàn 2
U1
AT 8 9 C51
9
18
19
20
29
30
31
40
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RS T
XT A L2
XT A L1
GND
PSEN
ALE/PROG
EA /VPP
VCC
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0 /A8
P2.1/A9
P2.2/A10
P2.3/A 11
P2.4/A 12
P2.5/A 13
P2.6 /A14
P2.7/A 15
P3.0 /RXD
P3.1/T X D
P3.2/INT 0
P3.3/INT 1
P3.4/T 0
P3.5/T 1
P3.6 /WR
P3.7/RD
P0 .0 /AD0
P0 .1/AD1
P0 .2/AD2
P0 .3/AD3
P0 .4/AD4
P0 .5/AD5
P0 .6 /AD6
P0 .7/AD7
Đồ án 1: Đồng hồ báo thức
Bus đòa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) → có sử dụng bộ
nhớ ngoài.
+ Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các
điện trở kéo lên bên ngoài.
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai Hình I.1.2 sơ đồ chân
89C51
trò là ngõ vào của dữ liệu (D0 – D7)
Port 1:
- Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.
- Port 1 có một chức năng: Port xuất nhập dữ liệu (P1.0 – P1.7) → sử
dụng hoặc không sử dụng bộ nhớ ngoài.
- Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ
vào của đòa chỉ byte thấp (A0 – A7)
Port 2:
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
- Port 2 có hai chức năng:
• Port xuất nhập dữ liệu (P2.0 – P2.7) → không sử dụng bộ
nhớ ngoài.
•Bus đòa chỉ byte cao (A8 – A15) → có sử dụng bộ nhớ
ngoài.
- Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ
vào của đòa chỉ byte cao (A8 – A11) và các tín hiệu điều khiển
Port 3:
- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
- Port 0 có hai chức năng:
Port xuất nhập dữ liệu (P3.0 – P3.7) → không sử dụng bộ
nhớ ngoài hoặc các chức năng đặc biệt.
Các tín hiệu điều khiển → có sử dụng bộ nhớ ngoài hoặc
các chức năng đặc biệt.
- Khi lập trình cho ROM trong chip thì Port 3 đóng vai trò là ngõ
vào của các tín hiệu điều khiển.
Bảng I.1.2: Chức năng của các chân Port 3:
Bit Tên Đòa chỉ
bit
Chức năng
P3.0 RxD B0H Chân nhận dữ liệu của port nối tiếp
P3.1 TxD B1H Chân phát dữ liệu của port nối tiếp
P3.2 INT0 B2H Ngõ vào nhát ngoài 0
GVHD: Trương Năng Toàn 3
Đồ án 1: Đồng hồ báo thức
\
P3.3 INT1
\
B3H Ngõ vào nhát ngoài 1
P3.4 T0 B4H Ngõ vào của bộ đònh thời/đếm 0
P3.5 T1 B5H Ngõ vào của bộ đònh thời/đếm 1
P3.6 WR\ B6H Điều khiển ghi bộ nhớ dữ liệu (RAM) ngoài
P3.7 RD\ B7H Điều khiển đọc bộ nhớ dữ liệu (RAM) ngoài
Chân PSEN: là chân 29, có 4 tín hiệu điều khiển, là tín hiệu để cho
phép bộ nhớ chương trình mở rộng và thường được nối lên chân OE của một
EPROM để cho phép đọc các byte mã lệnh.
PSEN ở mức thấp trong thời gian lấy lệnh. Các mã nhò phân của chương
trình được đọc từ Eprom qua bus và được chốt vào thanh ghi lệnh của 8051
để giải mã lệnh. Khi thi hành chương trình trong Rom nội PSEN sẽ thụ động
(mức cao).
Chân ALE: (chốt) Tín hiệu ra ALE trên chân 30 tương hợp với các thiết
bò làm việc với các xử lý 8585,8088,8051 dùng ALE một cách tương tự cho
làm việc giải các kênh các Bus đòa chỉ và dữ liệu khi port 0 được dùng trong
chế đọ chuyển đổi của nó: vừa là Bus dữ liệu vừa là byte thấp của đòa chỉ,
ALE là tín hiệu để chốt đòa chỉ vào vào một thanh ghi bên ngoài trong nửa
đầu của chu kỳ bộ nhớ. Sau đó các đương port 0 dùng để xuất hoặc nhập dữ
liệu trong nửa sau của chu kỳ bộ nhớ.
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên
chíp và có thể được làm xung nhòp cho các hệ thống. Nếu xung trên 8051 là
12MHZ thì ALE có tần số 2MHZ. Chỉ ngoại trừ khi thi hành lệnh Movx, một
xung ALE bò mất. Chân này cũng được làm ngõ vào cho xung lập trình cho
Eprom trong 8051.
Chân EA: (truy xuất ngoài):Tín hiệu vào EA trên chân 31 thường được
mắc lên mức cao(+5V) hoặc mức thấp(GND). Nếu ở mức cao, 8051 thi hành
chương trình từ Rom nội trong khoảng đòa chỉ thấp(4K). Nếu ở mức thấp
chương trình chi được thi hành từ bộ nhớ mở rộng. Khi dùng 8031, EA luôn
được nối ở mức thấp vì không có bộ nhớ chương trình trên chíp. Nếu EA
được nối ở mức thấp bộ nhớ bên trong chương trình 8051 sẽ bò cấm và thi
hành chương trình Eprom mở rộng. Người ta còn dùng chân EA làm chân
cấp điện áp 21V khi lập trình cho Eprom trong 8051.
GVHD: Trương Năng Toàn 4
Đồ án 1: Đồng hồ báo thức
Chân RST(reset): Khi tín hiệu này được đưa lên mức cao(ít nhất phải 2
chu kỳ máy), các thanh ghi trong 8051 được tải những giá trò thích hợp đẻ
khởi động hệ thống.
Các ngõ vào bộ dao động trên chip:Như đã thấy ở các hình trên,8051
có bộ dao động trên chip. Nó thường được nối với thạch anh gia hai chân 18
và 19. Các tụ giữa cũng cần thiết như đã vẽ. Tần số thạch anh thông thường
là 12MHZ
Các chân nguồn: 8051 vận hành với nguồn đơn +5V(VCC) được nối
vào chân 40 và chân 20 được nối GND
Chương 2. Giới thiệu về IC thời gian thực DS12C887
2.1. Sơ đồ chân:
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 cho RTC
AS: chốt đòa chỉ.
R/ W: Ngõ vào đọc ghi.
DS: Chốt dữ liệu.
RESET: Ngõ vào reset.
GVHD: Trương Năng Toàn 5
U1
DS128 8 7
19
23
24
12
4
5
6
7
8
9
10
11
14
17
1
18
15
13
IRQ
SQW
VCC
GND
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AS
DS
MOT
RST
R/W
CS
Đồ án 1: Đồng hồ báo thức
IRQ: Nhõ ra yêu cầu ngắt.
SQW: Ngõ ra sóng vuông.
VCC: Nguồn cung cấp +5V.
GND: Mass
Hình I.2.1: Sơ đồ chân của
DS12C887
2.2. Chức năng các chân:
GND, VCC: nguồn cung cấp cho thiết bò ở những chân trên. Vcc là điện
áp ngõ vào +5v. Khi điện áp 5v được cung cấp đúng chuẩn, thiết bò được truy
cập đầy đủ và dữ liệu có thể đọc và ghi. Khi Vcc thấp hơn 4.25v, quá trình
đọc và ghi bò cấm tuy nhiên chức năng giữ thời gian vẫn được tiếp tục không
bò ảnh hưởng bởi điện áp bò sụt giảm bên ngoài. Khi Vcc rớt xuống thấp hơn
3v, Ram và bộ nhớ giờ được chuyển sang nguồn năng lượng bên trong.
MOT: là chân có tính linh hoạt để lựa chọn giữa hai loại Bus. Khi được
nối lên Vcc, Bus đònh thời Motorola được lựa chọn. Khi được nối xuống GND
hoặc không nối, Bus đònh thời Intel được lựa chọn. Chân có điện trở kéo
xuống bên trong có giá trò khoảng 20K.
SQW: có thể xuất tín hiệu ra từ 1 trong 13 loại được cung cấp từ 15
trạng thái được chia bên trong của RTC. Tần số của chân SQW có thể thay
đổi bằng cách lập trình thanh ghi A. Tín hiệu SQW có thể mở hoặc tắt khi ta
sử dụng bit SQWE trong thanh ghi B. Tín hiệu SQW không xuất hiện khi khi
Vcc thấp hơn 4.25v
AD0-AD7: Bus đa hợp tiết kiệm chân bơi vì thông tin đòa chỉ và thông
tin dữ liệu được dùng chung đường tín hiệu. Cùng tại nhưng chân, đòa chỉ
được suất trong suốt phần thứ 1 của chu kỳ Bus và được dùng cho dữ liệu
trong phần thứ 2 của chu kỳ. Đa hợp đòa chỉ/ dữ liệu không làm chậm thời
gian truy cập của DS12C887 khi bus chuyển từ đòa chỉ sang dữ liệu xảp ra
trong suốt thời gian truy cập Ram nội. Đòa chỉ phải có giá trò trước khi xuất
hiện sườn xuống của AS/ALE tại thời điểm mà DS12C887 chốt đòa chỉ từ AD0
tới AD7.
Dữ liệu phải được hiển thò và giữ ổn đònh trong suốt phần sau của DS hoặc
xung WR. Trong chu kỳ đọc của DS12C887 ngõ ra 8 bit của dữ liệu trong suốt
phần sau của DS hoặc xung RD. Chu kỳ đọc được thục hiện xong và Bus trở
GVHD: Trương Năng Toàn 6
Đồ án 1: Đồng hồ báo thức
về trạng thái tổng trở cao cũng như khi DS bắt đầu xuống thấp trong trường
hợp đònh thời Motorola hoặc khi RD lên cao trong trường hợp đònh thời Intel.
AS: xung dương cung cấp xung chốt đòa chỉ trong việc phức hợp Bus.
Sườn xuống của AS/ ALE làm cho đòa chỉ bò chốt lại bên trong của DS12C887.
Sườn lên tiếp theo khi xuất hiện trên Bus AS sẽ bò xoá đòa chỉ bất chấp chân
CS có được chọn hay không. Lệnh truy cập có thể gửi tới bằn cả hai cách.
DS: chân DS/ RD có hai kiểu sử dụng tuỳ thuộc vào mức của chân MOT.
Khi chân MOT được nối lên Vcc, Bus đònh thời Motorola được lựa chọn. Trong
kiểu này DS là xung dương trong suốt phần sau của chu kỳ Bus và được gọi là
Data Strobe. Trong suốt chu kỳ đọc, DS báo hiệu thời gian mà DS12C887
được điều khiển bus đôi. Trong chu kỳ đọc, xung quét của DS là nguyên nhân
làm DS12C87 chốt dữ liệu được ghi. Khi chân MOT được nối xuống GND,
Bus đònh thời Intel được lựa chọn. Trong kiểu này, chân DS được gọi là
Read(RD) xác đònh chu kỳ thời gian khi DS12C887 điều khiển bus đọc dữ
liệu. Tín hiệu RD có cùng đònh nghóa với tín hiệu OE trong bộ nhớ riêng.
R/ W: có hai cách hoặt động. Khi chân MOT được kết nối lên Vcc cho
chế độ đònh thời Motorola, R/ W đang ở chế độ chỉ ra hoặc là chu kỳ hiện tại
là chu kỳ đọc hoặc ghi. Chu ky đòi hỏi chân R/ W phải ở mức cao khi chân
DS ở mức cao. Chu kỳ đòi hỏi chân R/W ở mức thấp trong suốt quá trình chốt
tín hiệu của DS. Khi chân MOT được nối GND cho chế độ đònh thời Intel, tín
hiệu R/ W là tín hiệu hoạt động mức thấp được gọi là WR. Trong chế độ này
chân R /W được đònh nghóa như tín hiệu Write Enable trong Ram chung.
CS: tín hiệu lựa chọn phải đựoc xác đònh ở mức thấp ở chu kỳ bus để
DS12C887 được sử dụng. CS phải được giữ trong trạng thái hoạt động rtong
suốt DS và AS của chế độ đònh thời Motorola và trong suốt RD và WR của chế
độ đònh thời Intel. Chu kỳ bus khi chọn vò trí mà không chọn CS sẽ chốt đòa
chỉ nhưng sẽ không có bất kỳ sự truy cập nào. Khi Vcc thấp hơn 4.25Volts,
chức năng bên trong của DS12C887 ngăn chặn sự truy cập bằng cáchkhông
cho phép llựa chọn nhõ vào CS. Hành động này nhằm bảo vệ cả dữ liệu của
đồng hồ thời gian thực bên trong cung như dữ liệu Ram trong suốt quá trình
mất nguồn.
IRQ: là ngõ ra hoạt động mức thấp, có thể sử dụng ngõ vào ngắt tới bộ
vi xử lý.Ngõ ra IRQ\ ở mức thấp khi bit là nguyên nhân làm ngắt và phù hợp
với bit cho phép ngắt được đặt(set). Để xoá chân IRQ\ chương trình của bộ vi
GVHD: Trương Năng Toàn 7
Đồ án 1: Đồng hồ báo thức
xử lý thông thường được đặt ở thanh ghi C. Chân Reset cũng bò xoá trong lúc
ngắt. Khi không có trạng tgái ngắt nào được sử dụng, trạng thái IRQ\ ở mức
tổng trở cao. Nhiều thiết bò ngắtcó thể nối tới IRQ\ Bus là một ngõ ra mở và
yêu cầu một điện trở kéo lên bên ngoài.
RESET: không hiệu lực đối với lòch, đồng hồ hoặc Ram. Ở chế độ cấp
nguồn, chân reset có thể bò kéo xuống trong thời gian cho phép đẻ ổn đònh
nguồn cung cấp.
2.3. Cấu trúc bên trong của DS12C887:
GVHD: Trương Năng Toàn 8
Đồ án 1: Đồng hồ báo thức
Hình I.2.3: Cấu trúc bên trong DS12C887
2.4. Sơ đồ đòa chỉ của RTC DS12C887
GVHD: Trương Năng Toàn 9
Đồ án 1: Đồng hồ báo thức
Hình I.2.4: Sơ đồ đòa chỉ DS12C887
Sơ đồ đòa chỉ của DS12C887 được trình bày bao gồm 113 byte Ram
thông dụng, 11 byte Ram mà thành phần bao gồm đồng hồ thời gian thực,
GVHD: Trương Năng Toàn 10
Đồ án 1: Đồng hồ báo thức
lòch, dữ liệu báo giờ và 4 byte được sử dung cho việc điều khiển và thông
báo tình trạng.
Tất cả 128 byte có thể được ghi hoặc đọc trực tiếp từ nhữnh trường hợp
sau:
- Thanh ghi C và D là hai thanh ghi chỉ đọc
- Bit thứ 7 của thanh ghi A là bit chỉ đọc.
- Bit cao của byte thứ hai là bit chỉ đọc
Thời gian và đã có bằng cách đọc các byte bộ nhớ hiện có. Thời gian,
lòch và báo giờ được đặt hoặc gán giá trò bằng cách ghi giá trò byte Ram
thích hợp. Nội dung của 10 byte chứa thời gian lòch và báo giờ đều có thể
hiển thò ở hai dạng nhò phân hoặc BCD. Trước khi ghi lên các thanh ghi
thời gian , lòch và báo giờ bên trong, bit SET ở thanh ghi B phải được đặt ở
mức 1 để ngăn ngừa sự cập nhật có thể xảy ra trong quá trình ghi đè.
Thêm vào nữa là đẻ ghi lên 10 thanh ghi chỉ thời gian, lòch và báo giờ ở
một đònh dạng đã lựa chọn(BCD hay nhò phân), bit chọn kiểu dữ liệu DM
của thanh ghi B phải được đặt ở mức logic thích hợp. Tất cả 10 byte thời
gian lòch và báo giờ phải sử dụng cùng kiểu dữ liệu. Bit được đặt ở thanh
ghi B nên được xoá sau khi bit kiểu dữ liệu đã được ghi để cho phép đồng
hồ thời gian thực cập nhật byte thời gian và lòch. Vào lúc đầu đồng hồ thời
gian cập nhật ở một kiểu đã được lựa chọn. Kiểu dữ liệu không thể thay
đổi mà không khởi động lại 10 byte dữ liệu. Bảng sau trình bày đònh dạng
nhò phân và BCD của thời gian lòch và báo giờ. Bit lựa chọn kiểu hiển thò
24-12 không thể thay đổi mà không khởi động lại thanh ghi giờ. Khi đònh
dạng kiểu 12 giờ được chọn bit cao của byte giờ tương ứng với PM khi nó
được đặt ở mức logic 1. Byte thời gian lòch và byte báo giờ luôn được truy
cập bởi vì chúng được đệm gấp đôi, mỗi giây một lần 11byte được nâng
cấp và được kiểm tra tình trạng báo giờ. Nếu lệnh đọc dữ liệu thời gian và
lòch diễn ra trong quá trình cập nhật, một vấn đề phát sinh là có thể thời
gian giờ, phút, giây có thể không chính xác, xác xuất đọc kkhông chính
xác dữ liệu thời gian và lòch là rất thấp.
Sau đây ta tìm hiểu các thanh ghi điều khiển trong DS12C887.
Thanh ghi A:
Bảng I.2.4.1: Đòa chỉ thanh ghi A của RTC DS12C887
GVHD: Trương Năng Toàn 11
LSB MSB
Đồ án 1: Đồng hồ báo thức
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0
+ UIP: là bít trạng thái mà có thể theo dõi được, khi bit UIP ở mưc 1,
quá trình cập nhật sẽ sớm xảy ra. Khi bit UIP ở mức 0, quá trình cập nhật
sẽ không xảy ra ít nhất 244Us. Những thông tin về thời gian lòch và báo giờ
ở trong Ram có đầy đủ cho việc truy cập khi bit UIP ở mức 0. Bit UIP là bit
chỉ đọc và không bò ảnh hưởng bởi chân reset. Khi ghi bit SET ở thanh ghi
B lên mức 1 để ngăn chặn quá trình cập nhật và xoá bit trạng thái UIP.
+ DV2, DV1, DV0: 3bit trên được sử dụng để bật tắt bộ dao động và cài
đặt lại quá trình đếm xuống. Khi được đặt 010 thì đó là sự kết hợp duy
nhất để bật bộ dao động lên và cho phép RTC giữ thời gian. Khi được đặt
11X sẽ cho phép bộ dao động nhưng giữ quá trình đếm xuống ở mức reset.
Quá trình cập nhật tiếp theo sẽ sớm diễn ra sau 500ms sau khi kiểu 010
đực ghi vào DV1, DV2, DV3.
+ RS3, RS2, RS1,RS0: 4bit loại lựa chọn để lựa chọn 1 trong 13 loại của bộ
chia 15 trạng thái hoặc không cho phép xuất tín hiệu chia ra ngoài. Loại
được lựa chọn có thể phát ra sóng vuông(chân SQW) hoặc ngắt theo chu
kỳ. Người sử dụng có thể sử dụng một trong những cách sau:
- Cho phép ngắt với bit PIE
- Cho phép xuất ngõ ra chân SQW với bit SQWE.
- Cho phép cả hai hoạt động cùng một lúc và cùng một loại.
- Không kích hoạt cả hai.
Bảng sau liệt kê chu kỳ ngắt với tần số sóng vuông mà có thể lựa chọn với
bit RS. Cả 4 bit đọc ghi và không bò ảnh hưởng bởi chân reset.
- Thanh ghi B:
Bảng I.2.4.2: Đòa chỉ thanh ghi B của RTC DS12C887
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
SET PIE AIE UIE SQWE DM 24/12 DSE
- SET: Khi bit SET ở mức 0, thông thường quá trình cập nhật bằng
cách tăng biến đếm 1 lần một giây. Khi bit SET được lên vào mức 1
mọi quá trình cập nhật đều bò cấm, và chương trình có thể bắt đầu
khởi động byte thời gian và lòch mà không có quá trình cập nhật nào
GVHD: Trương Năng Toàn 12
Đồ án 1: Đồng hồ báo thức
xảy ra trong quá trình khởi động, chu kỳ đọc có thể thực thi ở cùng
một kiểu. SET là bit đọc ghi và không chòu ảnh hưởng bởi Reset hoặc
các chức năng bên trong của DS12C887.
- PIE: Bit cho phép ngắt theo chu kỳ, là bit đọc ghi, nó cho phép bit cờ
ngắt theo chu kỳ trong thanh ghi C để điều khiển chân IRQ\ xuống
mức thấp tuỳ thuộc vào tỉ lệ phân bố của RS3 đén RS0 ở thanh ghi A.
- AIE: Bit cho phép ngắt báo giờ, là bit đọc ghi mà khi được đặt lên 1
nó cho phép bit cờ báo giờ(AF) ở thanh ghi C để cho phép ngắt
IRQ\. Tín hiệu ngắt báo giờ diễn ra ở tất cả các giây khi cả 3 byte
báo giờ chứa mã báo giờ được thể hiện ở nhò phân như sau
11XXXXXX. Các chức năng bên trong của DS12C887 không bò ảnh
hưởng bởi chân AIE.
- UIE: Bít cho phép kết thúc quá trình ngắt cập nhật, là bit đọc ghi mà
cho phép bit cờ kết thúc quá trình cập nhật ở thanh ghi C để cho
phép ngắt IRQ\. Chân Reset ở mức 0 hoặc chân SET ở mức 1 sẽ xoá
bit UIE.
- SQWE: là bit cho phép xuất sóng vuông, được đặt lên mức 1, một tín
hiệu sóng vuông có tần số được đặt ở vò trí được lựa chọn của bit RS3
đến RS0 sẽ điều khiển sóng ra tại chân SQW. Khi bit SQWE được
đặt ở mức thấp, chân SQW sẽ được giữ ở mức thấp. SQWE là bit
đọc ghi và được xoá khi Reset. SQWE được đặt lên 1 khi được cấp
Vcc.
- DM: Bit kiểu dữ liệu qui đònh khi nào là thông tin lòch và thời gian ở
đònh dạng nhò phân hoặc BCD. Bit DM được đặt bởi chương trình có
thể đònh dạng thích hợp và có thẻ đọc khi được yêu cầu. Bit này
không bò thay đổi khi Reset. Mức 1 của DM sẽ hiển thò dữ liệu nhò
phân, mức 0 hiẻn thò dữ liệu BCD.
- 24/ 12: Bit xác đònh kiểu byte giờ. Khi ở mức 1 nó hiển thò kiểu 24
giờ, bit 0 hiển thò 12 giờ. Bit này không ảnh hưởng bởi các chức
năng bên trong hoặc chân reset.
- DSE: Bit cho phép nhớ công khai. Bit này cũng không bò ảnh hưởng
bởi chức năng bên trong hoặc chân reset.
- Thanh ghi C:
GVHD: Trương Năng Toàn 13
Đồ án 1: Đồng hồ báo thức
Bảng I.2.4.3: Đòa chỉ thanh ghi C của RTC DS12C887
MSB
LSB
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
IRQF PF AF UF 0 0 0 0
- IRQF: Bit cờ yêu cầu ngắt được đặt lên 1 khi những điều dưới đây
đúng:
PF=PIE=1
AF=AIE=1
UF=UIE=1
Đều có nghóa là IRQF=(PF.PIE)+(AF.AIE)+(UF.UIE).
Bất cứ lúc nào bit IRQF được đặt lên 1, chân IRQ\ được đặt xuống
mức thấp. Bit cờ PF,AF và UF được xoá khi thanh ghi C được chương
trình đọc hoặc chân reset ở mức thấp.
- Thanh ghi D:
Bảng I.2.4.4: Đòa chỉ thanh ghi D của RTC DS12C887
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
VRT 0 0 0 0 0 0 0
VRT: Bit thời gian và Ram hợp lệ, biểu thò tình trạng của pin được kết nối
chân VBAT. Bit này không phải là bit ghi được và luôn có giá trò là 1 khi
đọc, nếu hiên thò mức 0, nguồn năng lượng pin bên trong đã cạn và cả hai
mục dữ liệu thời gian thực lẫn dữ liệu Ram đều bò nghi ngờ. Bit này không
bò ảnh hưởng bởi chân reset.
PHẦN II. THIẾT KẾ VÀ THI CÔNG
1.Sơ đồ nguyên lý:
GVHD: Trương Năng Toàn 14
D P
Q 9
C 1 8 1 5
V C C
A D 2
R 2 2
R
0
P 1 . 3
P 2 . 4
3 3 0
R
P 1 . 7
A D 3
A 1 0 1 5
P N P B C E
D
P 2 . 1
A D 0
P 2 . 2
V C C
E
P 2 . 2
0
P 2 . 3
U 5
C . P H U T
7
6
4
2
1
9
1 0
5
3
8
A
B
C
D
E
F
G
D P
C A
C A
0
A 1 0 1 5
P N P B C E
0
V C C
A D 3
P 1 . 1
P 2 . 7
A L E
M O D E
D W N
M O D E
Q 9
C 1 8 1 5
U 6
D V . P H U T
7
6
4
2
1
9
1 0
5
3
8
A
B
C
D
E
F
G
D P
C A
C A
R 1 2
R
A D 2
P 2 . 0
A D 5
D W N
R 4
3 3 0
M O D E 1
U P
R 1 5
R
R P
1 0 K
1
2
3
4
5
6
7
8
9
A 1 0 1 5
P N P B C E
R 9 4 K 7
0
V C C
M O D E 1
3 3 P
U P
R 6
3 3 0
C 4
C
P 1 . 6
A D 7
R 3
3 3 0
V C C
A
V C C
V C C
P 1 . 2C
R E S E T
0
A D 4
Q 1 0
C 1 8 1 5
P 3 . 2
P 2 . 7
P 1 . 1
1 2 MC R Y S T A L
R 2 0
3 3 0
V C C
M O D E
P 1 . 0
P 2 . 3
V C C
U 1
A T 8 9 C 5 1
9
1 8
1 9
2 0
2 9
3 0
3 1
4 0
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
1 2
1 3
1 4
1 5
1 6
1 7
3 9
3 8
3 7
3 6
3 5
3 4
3 3
3 2
R S T
X T A L 2
X T A L 1
G N D
P S E N
A L E / P R O G
E A / V P P
V C C
P 1 . 0
P 1 . 1
P 1 . 2
P 1 . 3
P 1 . 4
P 1 . 5
P 1 . 6
P 1 . 7
P 2 . 0 / A 8
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
P 0 . 0 / A D 0
P 0 . 1 / A D 1
P 0 . 2 / A D 2
P 0 . 3 / A D 3
P 0 . 4 / A D 4
P 0 . 5 / A D 5
P 0 . 6 / A D 6
P 0 . 7 / A D 7
V C C
A D 4
R 1 7
R
A 1 0 1 5
P N P B C E
Q 9
I C N H A C
R 7
3 3 0
R 5
3 3 0
R 9 4 K 7
U 8
D V . G I A Y
7
6
4
2
1
9
1 0
5
3
8
A
B
C
D
E
F
G
D P
C A
C A
V C C
U 7
C . G I A Y
7
6
4
2
1
9
1 0
5
3
8
A
B
C
D
E
F
G
D P
C A
C A
P 1 . 6
P 2 . 1
A L E
M O D E 1
U 3
C . G I O
7
6
4
2
1
9
1 0
5
3
8
A
B
C
D
E
F
G
D P
C A
C A
L O A
1
2
B
U 4
D V . G I O
7
6
4
2
1
9
1 0
5
3
8
A
B
C
D
E
F
G
D P
C A
C A
R 1 4
R
P 1 . 7
A D 7
Q 8
P N P B C E
P 3 . 2
R 1 6
R
0
P 2 . 5
V C C
P 2 . 5
G
R 1 3
3 3 0
R 1 8
R
R 9 4 K 7
P 3 . 7
U 9
D S 1 2 8 8 7
1 9
2 3
2 41 2
4
5
6
7
8
9
1 0
1 1
1 4
1 7
1
1 8
1 5
1 3
I R Q
S Q W
V C CG N D
A D 0
A D 1
A D 2
A D 3
A D 4
A D 5
A D 6
A D 7
A S
D S
M O T
R S T
R / W
C S
V C C
D W N
F
P 1 . 0
P 1 . 2
U P
R 1 1
R
R 1
8 K 2
V C C
R 1 0
R
P 1 . 4
R 9 4 K 7
V C C
P 2 . 6
R 2
1 0 0
V C C
P 3 . 0
R 1 9
3 3 0
P 3 . 6
Q 1 1
D 4 6 8
0
P 1 . 4
A D 0
A D 1
A D 6
P 2 . 0
A D 1
P 3 . 7
V C C
P 2 . 4
0
P 1 . 5
P 1 . 5
A D 5
3 3 P
A 1 0 1 5
P N P B C E
P 3 . 6
L O A
1
2
0
P 1 . 3
Q 9
C 1 8 1 5
0
A D 6
R 8
3 3 0
V C C
Hình II.2.1: Sơ đồ mạch in khối vi xử lý
Đồ án 1: Đồng hồ báo thức
Hình II.1: Sơ đồ nguyên lý
2. Sơ đồ mạch in và bố trí linh kiện:
GVHD: Trương Năng Toàn 15
Hình II.2.2: Sơ đồ bố trí linh kiện khối vi xử lý
Đồ án 1: Đồng hồ báo thức
GVHD: Trương Năng Toàn 16
Hình II.2.3: Sơ đồ mạch in khối hiển thò
Đồ án 1: Đồng hồ báo thức
Hình II.2.4: Sơ đồ bố trí linh kiện khối hiển thò
GVHD: Trương Năng Toàn 17
Hình II.2.5: Sơ đồ mạch in khối nút nhấn
Hình II.2.6: Sơ đồ bố trí linh kiện khối nút nhấn
Đồ án 1: Đồng hồ báo thức
GVHD: Trương Năng Toàn 18
Đồ án 1: Đồng hồ báo thức
3. Lưu đồ giải thuật:
GVHD: Trương Năng Toàn 19
ẹo aựn 1: ẹong ho baựo thửực
GVHD: Trửụng Naờng Toaứn 20
ĐỔ CHUÔNG 30s
S
Đ
Đồ án 1: Đồng hồ báo thức
GVHD: Trương Năng Toàn 21
ẹo aựn 1: ẹong ho baựo thửực
GVHD: Trửụng Naờng Toaứn 22
SET ARLAM
P3.1,#02
P3.1,#01
P3.1,#03
P3.1,#04
SET GI
SET PHT
SET GIY
SET TIME
P3.3,#02
P3.3,#01
P3.3,#03
P3.3,#04
SET GI
SET PHT
SET GIY
KIM TRA PHM NHN
HIN TH
SET GI
P3.4=0 TNG GI TR GI
S
S
S
S S
S
S
S
ẹo aựn 1: ẹong ho baựo thửực
GVHD: Trửụng Naờng Toaứn 23
P3.5=0
GIM GI TR GI
S
HIN TH
BCD_7DOAN
ẹo aựn 1: ẹong ho baựo thửực
GVHD: Trửụng Naờng Toaứn 24
S
S
LU VO RTC
HEX_BCD
HIN TH
BCD_7DOAN
ẹo aựn 1: ẹong ho baựo thửực
GVHD: Trửụng Naờng Toaứn 25