Tải bản đầy đủ (.doc) (47 trang)

đồng hồ thời gian thực 89c51+ds12887

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.18 MB, 47 trang )

N HC PHN 2 GVHD: TRN VN HNH
Trờng đại học s phạm kỹ thuật nam định
Khoa điện - điện tử
Bộ môn kỹ thuật điện tử
&
N HC PHN II
TI
THIếT Kế MạCH NG H S DNG DS12887
HIN TH giờ, phút, giây, TH, ngày, tháng, năm,
trên led 7 đoạn

Sinh viên thực hiện: NGUYN VIT LM



Lớp: Đs- ĐĐT3
Hệ đào tạo: Đại Học ( chính quy )
Gvhd: TRN VN HNH
Đơn vị công tác: Trờng Đại Học SPKT Nam Định
SVTH: NGUYN VN HIN 1 Lp: S-T3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
LêI Më §Ç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 ngày, giờ.
Vì kiến thức, sự hiểu biết còn ít ỏi và trình độ chuyên môn còn hạn chế
nên không tránh khỏi sự thiếu sót. Vì vậy chúng em rất mong nhận được


sự đóng góp ý kiến của thầy cô và các bạn để đề tài này hoàn chỉnh hơn.
Đồ án được hoàn tất là nhờ sự giúp đỡ của nhiều thầy cô, sự ủng hộ của
các bạn học xung quanh, và nỗ lực tìm hiểu và học tập của các thành viên
trong nhóm. Trước hết, xin cảm ơn nhà trường đã tạo điều kiện cho chúng
em học tập, xin cảm ơn khoa điện tử đã cung cấp cho chúng em những tài
liệu quý giá để tham khảo. Trong quá trình thực hiện, nhóm chúng em đã
nhận được rất nhiều ý kiến đóng góp của một số thầy cô và các bạn học
trong lớp. Xin cảm ơn các thầy, các cô và các bạn đã giúp đỡ. Và quan
trọng hơn cả là công ơn của thầy Trần Văn H¹nh là người trực tiếp hướng
dẫn chúng em xây dựng đồ án này. Chúng em xin cảm ơn thầy. Cuối cùng
là xin cảm ơn các bạn đọc - những người đã dành thời gian để tham khảo đồ
án này.
Tuy đã nỗ lực và cố gắng nhưng do sự hạn chế về mặt kiến thức nên
vẫn không thể tránh khỏi những thiếu sót cần bổ sung và sửa chữa để đồ án
được hoàn chỉnh hơn. Vì vậy rất mong nhận được các kiến đóng góp từ các
bạn đọc. mọi ý kiến đóng góp xin được liên hệ trực tiếp với các thành viên
trong nhóm.
Xin chân thành cảm ơn!

Yªu cÇu cña ®Ò tµi
SVTH: NGUYỄN VĂN HIỂN 2 Lớp: ĐS-ĐĐT3
N HC PHN 2 GVHD: TRN VN HNH
- Thiết kế đồng hồ số hiển thị trên led 7 đoạn : thứ , ngày, tháng, năm,
giờ, phút, giây sử dụng vi điều khiển 8051.
- Có các phím điều chỉnh thông số đồng hồ: Up/ Down, Mode.
- Không bị mất dữ liệu khi mất điện.
Phơng pháp thực hiện
Dùng vi mạch điều khiển real time clock DS12887 có nguồn dự phòng
phơng pháp này có đặc điểm:
* Ưu điểm:

- Mạch điện thiết kế đơn giản.
- Độ chính xác cao.
- Tiêu thụ năng lợng thấp do dùng phơng pháp quét.
- Chơng trình thời gian và lịch đã có sẵn trong Real time DS12887 .
- Giá thành thấp.
- Không phải cài đặt lại thời gian khi mất nguồn.
* Nhợc điểm:
-Ngời thiết kế phải hiểu rõ về Vi điều khiển và các IC đợc lựa chọn để thiết
kế.
Đây là phơng án thiết kế tối u nhất.

CHNG 1: TNG QUAN về C S Lí THUYT
SVTH: NGUYN VN HIN 3 Lp: S-T3
N HC PHN 2 GVHD: TRN VN HNH
1. 1 TìM HIU V VI IU KHIN H 8051
1.1.1 Sơ đồ khối của bộ VĐK 8051

Hình 1.1: Sơ đồ khối tổng quát của 8051/8052
Vi điều khiển (VĐK) 8051/52 đợc chế tạo theo cấu trúc của một hệ vi tính
gồm các khối sau:
- Bộ xử lý trung tâm CPU(central Processorr Unit): Dùng để điều khiển
toàn vi mạch trong việc thực hiện lệnh và xử lý số học và logic.
- Bộ nhớ dữ liệu (RAM) bên trong :(128 byte cho 8051 va 256 byte cho
8052) dùng làm các thanh ghi thông dụng, thanh ghi đặc biệt SFR và xử lý bit
để ghi nhớ dữ liệu cho chơng trình.
- Bộ nhớ chơng trình(ROM) bên trong: (4Kbyte cho 8051 va 8Kbyte
cho 8052) dùng để ghi nhớ chơng trình.
- Cổng trao đổi tin vào ra dữ liệu và địa chỉ (P0-P3): Dùng để trao đổi
tin song song về dữ liệu và địa chỉ.
- Cổng trao đổi tin nối tip: Dùng trao đổi tin nối tiếp nhận vào từ chân

RXD và đa ra từ chân TXD.
- Khối định thời gian bộ đếmTimer/Counter 0 ,1 và 2: Dùng để định
thời gian đếm xung ngoài vào các chân T0, T1 và T2.
SVTH: NGUYN VN HIN 4 Lp: S-T3
Bus iu
khin
4 Cng vo
/ ra
Cng ni
tip
C
O
U
N
T
E
R

I
N
P
U
T
S
Ram
ON - CHIP
ETC
TIMER 0
TIMER 1
a ch / D liu

TXD RXD
P0 P1 P2 P3
ROM
ON- CHIP
CHNG
TRèNH
Ngt ngoi
iu khin
ngt
osc
CPU
N HC PHN 2 GVHD: TRN VN HNH
- Khối điều khiển ngắt: Dùng để ngắt chơng trình khi có xung ngoài
hay khi có đếm tràn.
- Khối điều khiển BUS và mạch tạo xung nhịp. Giao tiếp giữa CPU với
các khối bên trong của 8051 đợc thực hiện qua các BUS nội bộ gồm BUS dữ
liệu 8 bít, BUS địa chỉ và các tín hiệu điều khiển khác.
Các thành viên của họ MCS-51(Atmel) có đặc điểm chung:
Có 4/ 8/ 12/ 20 Kbyte bộ nhớ flash ROM bên trong để lu chơng
trình. Nhờ vậy vi điều khiển có thể nạp xoá bằng điện đến 10000 lần.
128 byte RAM nội.
4 Port xuất/ nhập 8 bit.
Từ 2 đến 3 bộ định thời 16 bit.
Có khả năng giao tiếp truyền dữ liệu nối tiếp.
Dung lợng bộ nhớ ROM ngoại lớn nhất mà vi điều khiển có thể
kết nối là 64 Kbyte.
Có thể mở rộng không gian nhớ dữ liệu ngoài 64 Kbyte (bộ
nhớ RAM ngoại).
Bộ xử lý bit (thao tác trên các bit riêng rẽ).
210 bit có thể truy xuất tới từng bit.

1.1. 2 Khảo sát sơ đồ chân.
Các thành viên của họ 8051 ví dụ nh 8751, 89C51, DS500 đều có kiểu
đóng vỏ khác nhau, chẳng hạn dạng hai hàng chân DIP, dạng vỏ dẹt vuông
QFP và dạng không có chân đỡ LLC , song chúng đều có 40 chân với các
chức năng nh vào ra I/O, đọc RD\ , ghi WR\ , địa chỉ, dữ liệu và ngắt. Tuy
nhiên , vì hầu hết các nhà phát triển chính đều sử dụng chíp đóng vỏ 40 chân
kiểu hai hàng chân DIP nên chúng ta chỉ tập trung mô tả phiên bản này. Mô tả
chân của 8051 đợc trình bày nh hình sau:

SVTH: NGUYN VN HIN 5 Lp: S-T3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
4
15
16
17
18
19

20
40
39
38
37
36
35
34
33
32
31
2
30
29
28
27
26
25
24
23
22
21
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7

RST
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
XTAL2
XTAL1
GND
RXD
TXD
NT0
NT1
T0
T1
WR
RD
VCC
P0.0 AD0
P0.1 AD1
P0.2 AD2
P0.3 AD3
P0.4 AD4
P0.5 AD5
P0.6 AD6
P0.7 AD7
EA

ALE
PSEN
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
8051
N HC PHN 2 GVHD: TRN VN HNH
Hình 1.2.Sơ đồ chân của 8051/8052
Trong số 40 chân của 8051 có 32 chân dành cho 4 cổng P0, P1, P2, P3
mỗi cổng có 8 chân. Các chân còn lại dành cho nguồn VCC, đất GND, các
chân dao động XTAL1 và XTAL2 , khởi động lại RS, cho phép chốt địa chỉ
ALE , truy cập đợc địa chỉ ngoài EA , cho phép cất chơng trình PSEN
1. Nhóm chân nguồn, dao động và điều khiển
- VCC : Chân số 40 cung cấp điện áp nguồn nguồn +5V.
- GND : Chân số 20 là chân đất (hay chân nối mass)
- XTAL1 và XTAL2 : 8051 có một bộ dao động trên chíp nhng vẫn cần có
một bộ dao động đồng hồ bên ngoài để kích hoạt. Bộ dao động thạch anh
ngoài thờng đợc nối tới các chân vào XTAL1 (19 ) và XTAL2 (18).
- RST : Khởi động lại ( RESET ) đó là chân vào số 9, mức tích
cực cao, bình thờng ở mức thấp. Khi có xung cao đặt tới chân này thì bộ VĐK
sẽ kết thúc mọi hoạt động hiện tại và tiến hành khởi động lại. Quá trình xảy
ra hoàn toàn tơng tự nh khi bật nguồn. Khi RESET, mọi giá trị trên các thanh
ghi sẽ bị xóa
- EA\: Truy cập bộ nhớ ngoài là chân vào số 31 trên vỏ kiểu DIP. Đối với các
thành viên họ 8051 có ROM chơng trình trên chíp thì chân EA đợc nối tới

nguồn VCC.
- PSEN\ : Là chân ra có chức năng cho phép cất chơng trình .
SVTH: NGUYN VN HIN 6 Lp: S-T3
N HC PHN 2 GVHD: TRN VN HNH
- ALE : Cho phép chốt địa chỉ , là chân ra cú mức tích cực cao.
2 Nhóm chân cổng vào ra
Bốn cổng P0 , P1 , P2 và P3 đều có 8 chân và tạo thành cổng 8 bít. Tất
cả các cổng khi RESET đều đợc cấu hình làm cổng ra.
- Cổng P0 có 8 chân ( từ chân 32 đến chân 39 ). Bình thờng đây là cổng ra.
Để có thể vừa làm đầu ra vừa làm đầu vào thì mỗi chân phải đợc nối tới một
điện trở kéo 10K bên ngoài.
- Cổng P1 cũng có 8 chân từ chân 1 đến chân 8 và có thể sử dụng làm đầu
vào hoặc ra.
- Cổng P2 cũng có 8 chân từ chân 21 đến chân 28 và có thể sử dụng làm đầu
vào hoặc ra.
- Cổng P3 chiếm 8 chân từ chân 10 đến chân 17 và có thể sử dụng làm đầu
vào hoặc ra. Cổng P3 có thêm 1 chức năng quan trọng khác là cung cấp 1 số
tín hiệu đặc biệt, chẳng hạn nh ngắt.
Bit Tên Số chân Chức năng
P3.0 RXD 10 Chân nhận dữ liệu truyền thông nối tiếp
P3.1 TXD 11 Chân truyền dữ liệu truyền thông nối tiếp
P3.2 INT0 12 Ngõ vào ngắt ngoài 0
P3.3 INT1 13 Ngõ vào ngắt ngoài 1
P3.4 T0 14 Ngõ vào của bộ counter 0(đếm sự kiện ngoài 0)
P3.5 T1 15 Ngõ vào của bộ counter 1(đếm sự kiện ngoài 1)
P3.6 WR\ 16 Điều khiển ghi bộ nhớ dữ liệu ngoài
P3.7 RD\ 17 Điều khiển đọc bộ nhớ dữ liệu ngoài
Bảng1.1: Các chức năng khác của cổng P3
1.1.3 T chc b nh.
Hu ht cỏc b vi x lý (CPU) u cú khụng gian nh chung cho d

liu v chng trỡnh. iu ny cng hp lý vỡ cỏc chng trỡnh thng c
lu trờn a v c np vo RAM thc thi; vy thỡ c hai, d liu v
chng trỡnh, u lu tr trong RAM.
Cỏc chip vi iu khin him khi c s dng ging nh cỏc CPU
trong cỏc h mỏy tớnh, thay vo ú chỳng c dựng lm thnh phn trung
SVTH: NGUYN VN HIN 7 Lp: S-T3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
tâm trong các thiết kế hướng điều khiển, trong đó bộ nhớ có dung lượng giới
hạn, không có ổ đĩa và hệ điều hành. Chương trình điều khiển thường trú
trong ROM.
Do lý do trên, 8051 có không gian nhớ riêng cho chương trình và dữ
liệu.
a. Bộ nhớ cho chương trình (Program Memory)
Các model cũ của họ vi điều khiển 8051 không có bộ nhớ nội dành cho
chương trình. Nó được nạp vào từ bên ngoài giống như một chip riêng biệt.
Các model này được đánh dấu bởi nh·n bắt đầu với 803 (ví dụ như 8031 hoặc
8032). Tất cả các model sau này đều có vài Kbyte ROM được nhúng vào, và
mặc dù các bộ nhớ này thậm chí nó đủ để viết hầu hết các chương trình,
nhưng trong một vài trường hợp nào đó thì việc sử dụng bộ nhớ ngoài cũng
cần thiết. Một ví dụ điển hình là việc sử dụng cái gọi là: “lookup tables”.
Chúng được sử dụng trong trường hợp một vài thứ quá phức tạp hoặc khi
không có thời gian cho việc giải quyết các phương trình miêu tả các tiến trình.
Cách vi điều khiển sử dụng bộ nhớ ngoại dựa vào trạng thái cổng EA
SVTH: NGUYỄN VĂN HIỂN 8 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH

H×nh 1.3: Vi ®iÒu khiÓn sö dông bé nhí ngo¹i dùa vµo tr¹ng th¸i cña EA
EA =0 trong trường hợp này, bộ nhớ nội của chương trình đã hoàn toàn
mất tác dụng, chỉ có chương trình được lưu ở ở bộ nhớ ngoại mới được thực
thi.

EA=1 trong trường hợp này, chương trình được xây dựng trong ROM
sẽ được thực thi đầu tiên, sau đó, thì chương trình ở bộ nhớ ngoài (Additional
ROM Memory) sẽ được thực thi tiếp theo.
b. Bộ nhớ cho dữ liệu (Data Memory)
Data Memory được sử dụng để lưu trữ tạm thời, giữ giá trị dữ liệu cũng
như các kết quả trung gian được tạo ra trong suốt quá trình hoạt động của vi
điều khiển. Bên cạnh đó, các họ vi điều khiển này cũng bao gồm nhiều thanh
ghi khác như: bộ đếm và bộ định thời, các port vào ra, truyền nối tiếp… Các
phiên bản trước đó có dung lượng bộ nhớ là 256 đường địa chỉ, trong khi các
model sau này con số đó đã được tăng lên bởi 128 thanh ghi được thêm vào.
Trong cả hai phiên bản trên, 256 đường địa chỉ (có địa chỉ từ 0-FFh) đều
SVTH: NGUYỄN VĂN HIỂN 9 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
thuộc bộ nhớ. Một điều rất thông dụng cho tất cả họ vi điều khiển 8051. Các
đường địa chỉ luôn có sẵn cho người sử dụng với không gian bộ nhớ từ 0 tới
7Fh, 128 thanh ghi đầu và phần này của RAM được chia ra thành nhiều block.
Block đầu tiên bao gồm 4 bank, mỗi bank bao gồm 8 thanh ghi từ R0 tới R7.
Trước khi truy cập chúng, một bank bao gồm thanh ghi đó sẽ phải được chọn.
Đến block tiếp theo (ở địa chỉ từ 20h tới 2Fh) là bit-addressable, có nghĩa là
mỗi bit sẽ được đánh địa chỉ ở đó từ 0 đến 7Fh.
SVTH: NGUYỄN VĂN HIỂN 10 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
1.1.4 Các thanh ghi chức năng (special function register – SFR)
SFR là một loại của bảng điều khiển được sử dụng để thực thi và theo
dõi quá trình hoạt động của một chương trình vi điều khiển. Mỗi một thanh
ghi, thậm chí là mỗi bit của mỗi thanh ghi, đều được đặt tên, được định địa
SVTH: NGUYỄN VĂN HIỂN 11 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
chỉ trong vùng của RAM và được xác định mục đích một cách rõ ràng (ví dụ:
điều khiển định thời, ngắt, truyền thông nối tiếp…).

1. A Register (Accumulator)
H×nh 1.4: Thanh ghi A
Đây là thanh ghi đa chức năng được sử dụng cho việc lưu trữ các kết
quả trung gian trong quá trình thực thi. Một số nên được lưu vào trong A
trước khi thực thi lệnh kế tiếp. Một khi một phép toán nào đó được thực hiện
bởi ALU, kết quả được gắn vào trong thanh ghi A. Nếu dữ liệu được truyền
đến một thanh ghi khác thì nó cũng phải được truyền thông qua thanh ghi này.
Vì có nhiều mục đích thông dụng như vậy, nên đây là thanh ghi được sử dụng
phổ biến mà vi điều khiển không thể không có nó.
SVTH: NGUYỄN VĂN HIỂN 12 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
2. B Register
Thanh ghi B được sử dụng trong việc nhân, chia các toán hạng. Các toán
hạng có thể được lưu trữ ở thanh ghi A hoặc B. Tất cả các lệnh khác của
chương trình đều có thể sử dụng thanh ghi này giống như thanh ghi A.
H×nh 1.5: Thanh ghi B
Trong suốt chương trình, mỗi thanh ghi được gọi thông qua tên của nó,
chính vì vậy địa chỉ chính xác của các thanh ghi không quan trọng đối với
người sử dụng.
3. R Registers (R0-R7)
H×nh 1.6: Thanh ghi R
Đây là một tên thông dụng cho tổng cộng 8 thanh ghi đa chức năng (R0,
R1, R2…R7). Tương tự như accumulator, chúng được sử dụng cho việc lưu
trữ dữ liệu tạm thời cho các biến hoặc các kết quả trung gian.
SVTH: NGUYỄN VĂN HIỂN 13 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
1.2. Giới thiệu về IC thời gian thực DS12C887
DS12C887 thuộc họ Real-Time Clock là sản phẩm của hãng MAXXIM
với những tính năng sau:
• Được sử dụng chạy đồng hồ, lịch trong các dòng máy tính.

• Sơ đồ chân tương thích với các loại IC MC146818 và DS1287
• Tự vận hành với pin nội có tuổi thọ lên đến 10 năm.
• Đếm giờ, phút, giây, ngày, tháng, năm, thứ với thời gian đến năm 2100.
• Dữ liệu ngày giờ được truy xuất dưới dạng binary hoặc BCD.
• Có thể lựa chọn hiển thị giờ Mode 24 hoặc Mode 12 với AM và PM.
• Tương thích Bus giao tiếp với họ Motorola và họ Intel.
• Cung cấp 128 Byte RAM được định địa chỉ, trong đó có 14 Byte sử dụng
cho việc lưu trữ giờ và các thanh ghi điều khiển, 114 Byte RAM đa mục đích
dành cho các ứng dụng của người sử dụng.
• Xuất tín hiệu lập trình xung vuông.
• Tín hiệu điều khiển ngắt
IRQ
.
• Thời gian có thể bị sai số

phút /1 tháng trong điều kiện nhiệt độ 25
o
C
• Có mạch dao động nội và có thanh ghi thế kỷ .
1.2.1 Sơ đồ chân IC
o AD0-AD7: Bus đa hợp địa
chỉ/dữ liệu.
o NC: Bỏ trống.
o MOT: Lựa chọn loại Bus.
o CS: Ngõ vào lựa chọn RTC
o AS: chốt địa chỉ.
o R/ W: Ngõ vào đọc ghi.
o DS: Chốt dữ liệu.
o RESET: Ngõ vào reset.
o IRQ: Ngõ ra yêu cầu ngắt.

SVTH: NGUYỄN VĂN HIỂN 14 Lớp: ĐS-ĐĐT3
Hình 1.7 Sơ đồ chân IC DS12C887
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
o SQW: Ngõ ra sóng vuông.
o VCC: Nguồn cung cấp +5V.
o GND: Mass
1.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 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
SVTH: NGUYỄN VĂN HIỂN 15 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
suốt phần sau của DS hoặc xung RD. Chu kỳ đọc được thục hiện xong và Bus
trở 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ằng 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 kỳ đò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 được 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 trong
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
SVTH: NGUYỄN VĂN HIỂN 16 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
địa chỉ nhưng sẽ không có bất kỳ sự truy cập nào. Khi Vcc thấp hơn 4.25V,
chức năng bên trong của DS12C887 ngăn chặn sự truy cập bằng cách không
cho phép lựa chọn ngõ 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 cũng 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
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 thá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ắt có 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.
1.2.3 Cấu trúc bên trong Dallas DS12C887
Chức năng các khối
Khối nguồn(Power): Gồm có nguồn cung cấp chính và nguồn pin dự
phòng được cung cấp bởi pin Lithium có tuổi thọ rất lâu (Khi nguồn Vcc <
3V thì nguồn được chuyển qua nguồn pin đặt bên trong IC )
SVTH: NGUYỄN VĂN HIỂN 17 Lớp: ĐS-ĐĐT3
Hình 1.8 Sơ đồ khối IC DS12C887
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH

Khối dao động (OSC): Mạch dao động sử dụng thạch anh 32.768 KHz
có độ chính xác cao, sau đó được đưa đến các bộ chia để có được tần số cần
dùng.
Các bộ chia tần số (Divide by 8, Divide by 64): Tần số 32.768 KHz
qua bộ chia 8, sau đó chia 2 lần 64 để có được tần số 1 Hz cung cấp cho đồng
hồ.
Khối phát xung vuông (Square wave out): Chân SQW xuất các xung
vuông có tần số điều khiển bởi chương trình ở thanh ghi A. Tín hiệu xung
vuông có thể tắt mở bởi bit SQWE ở thanh ghi B. Tín hiệu xung vuông sẽ
không hoạt động khi nguồn cung cấp < 4.25V.
Các thanh ghi (Registers A, B, C, D): Các chế độ hoạt động có thể
thay đổi bởi chương trình ở các thanh ghi.
Khối lịch giờ: Các thông tin về giờ, lịch được đọc từ bộ nhớ và ghi vào
RAM dưới dạng mã Binary hoặc BCD (Binary coded decimal).
Khối giao tiếp (Bus Interface): Gồm các chân AD0 – AD7, DS, R/
W
,
AS, MOT để đặt chế độ thích hợp cho IC có thể giao tiếp vi xử lý của họ
Motorola và họ Intel.
1.2.4 Sơ đồ địa chỉ của DS12C887
Sơ đồ địa chỉ của DS12C887 được trình bày ở hình 1.9. 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 :
- Thanh ghi C and 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ứ 2 là bit chỉ đọc.
SVTH: NGUYỄN VĂN HIỂN 18 Lớp: ĐS-ĐĐT3
Hình 1.9 Sơ đồ địa chỉ

của DS12C887
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
Thời gian và lịch đã có bằng cách đọc các bytes 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ị bytes
RAM thích hợp. Nội dung của 10 bytes chứa thời gian, lịch và báo giờ đều có
thể hiển thị ở cả 2 dạng nhị phân (Binary) hoặc BCD (Binary-Coded
Decimal). Trước khi ghi lên các thanh ghi thời gian, lịch, và các thanh ghi
báo giờ bên trong, bit SET ở thanh ghi B phải được đặt ở mức logic 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 để ghi
lên 10 thanh ghi chỉ thời gian, lịch, và thanh ghi 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 (Data mode (DM)) của
thanh ghi B phải được đặt ở mức logic thích hợp. Tất cả 10 bytes 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 bytes thời gian và lịch. Vào lúc đầu, đồng hồ thời gian thực
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 bytes dữ liệu. Bảng 2 trình bày định dạng nhị phân và
BCD của cả 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 12
giờ được lựa chọn, bit cao của bytes giờ tương ứng với PM khi nó được đặt ở
mức logic 1. Bytes thời gian, lịch, và bytes 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, 11 bytes đượ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à giờ, phút, giây, … có thể
không chính xác. Xác xuất đọc không chính xác dữ liệu thời gian và lịch là rất
thấp. Có 3 bytes báo giờ có thể sử dụng bằng 2 cách. Cách thứ nhất, khi thời
gian báo giờ được ghi vào vị trí của các thanh ghi giờ, phút, giây, tác động
SVTH: NGUYỄN VĂN HIỂN 19 Lớp: ĐS-ĐĐT3
Hình 1.9 Sơ đồ địa chỉ
của DS12C887

ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
báo giờ được bắt đầu tại thời gian chính xác trong ngày khi bit cho phép báo
chuông được đặt ở mức cao. Cách thứ hai sử dụng để đặt trạng thái bất chấp
vào một hoặc nhiều bytes báo chuông. Mã bất chấp là bất kỳ mã số hex nào
nằm trong giá trị từ C0 đến FF. Hai bit có trọng số lớn nhất của những byte
trên đặt vào trạng thái bất chấp khi ở mức logic 1. Báo giờ sẽ được sinh ra
mỗi giờ khi bit bất chấp được đặt vào bytes giờ. Tương tự, báo giờ sẽ sinh ra
mỗi phút nếu mã bất chấp có ở bytes giờ và bytes phút. Nếu mã bất chấp có ở
trong cả 3 bytes báo giờ thì nó sẽ tạo ra tín hiệu ngắt mỗi giây.
Bảng 1.4 Kiểu dữ liệu thời gian, lịch và báo giờ
 Thanh ghi A
3. Các thanh ghi điều khiển
SVTH: NGUYỄN VĂN HIỂN 20 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
*, Các thanh ghi
1. Thanh ghi A
Bảng 1.2: các bit của thanh ghi A
UIP - Update In Progress (UIP) là bit 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 là 244 µs. 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 của chân RESET\.
Khi ghi bit SET ở thanh ghi B lên 1 để ngăn chặn mọi quá trình cập nhật và
xoá bit trạng thái UIP.
DV2, DV1, DV0: là 3 bit trên được sử dụng để bật hoặc 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 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 DV0, DV1 và DV2.

RS3, RS2, RS1, RS0: là 4 bit loại lựa chọn để lựa chọn một 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) và/hoặc ngắt theo
chu kỳ. Người sử dụng có thể sử dụng 1 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ả 2
Bảng dưới liệt kê chu kỳ ngắt và tần số sóng vuông mà có thể chọn lựa
với bit RS. Cả 4 bit đọc/ ghi đều không bị ảnh hưởng bởi chân RESET
SVTH: NGUYỄN VĂN HIỂN 21 Lớp: ĐS-ĐĐT3
MSB LSB
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
2. Thanh ghi B
MSB LSB
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
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 1 giây. Khi bit SET được ghi 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) bytes
thời gian và lịch mà không có quá trình cập nhật nào 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 của nút 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ỳ (Periodic Interrupt Enable) là bit
đọc/ghi, nó cho phép bit cờ ngắt theo chu kỳ (Periodic Interrupt Flag (PF))
trong thanh ghi C để điều khiển chân IRQ\ xuống mức thấp. Khi bit PIE được
đặt lên mức 1, chu kỳ ngắt được tạo ra bằng cách đ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 bit RS3-RS0 ở thanh ghi A.
SVTH: NGUYỄN VĂN HIỂN 22 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
AIE – Bit cho phép ngắt báo giờ (Alarm Interrupt Enable (AIE)) là bit
đọc/ghi mà khi được đặt lên 1 nó cho phép bit cờ báo giờ (Alarm Flag (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 bytes 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 bit AIE.
UIE – Bit cho phép kết thúc quá trình ngắt cập nhật (Update Ended
Interrupt Enable (UIE)) 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ẽ xóa bit UIE.
SQWE – Khi bit cho phép xuất sóng vuông (Square Wave Enable
(SQWE)) được đặt lên mức 1, một tín hiệu sóng vuông có tần số được đặt bởi
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 xóa khi RESET. SQWE được đặt lên 1 khi
được cấp V
CC
.
DM – Bit kiểu dữ liệu (Data Mode (DM)) quy định khi nào thì 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ó đị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 bởi các chức năng bên trong hoặc chân RESET\. Mức
1 của DM sẽ hiển thị dữ liệu nhị phân còn mức 0 hiển thị dữ liệu Binary
Coded Decimal (BCD).
24/12 – Bit điều khiển 24/12 xác định kiểu bytes giờ. Khi ở mức 1 thì
nó chỉ chế độ hiển thị 24 giờ, còn ở mức 0 thì chỉ chế độ hiển thị 12 giờ. Bit
này là bit đọc ghi và không bị ảnh hưởng bởi các chức năng bên trong cũng

như chân RESET\.
DSE – Bit cho phép nhớ công khai (Daylight Savings Enable (DSE)) là
bit đọc\ghi, nó cho phép 2 cập nhật đặc biệt khi DSE được đặt lên 1. Vào chủ
nhật đầu tiên của tháng 4, thời gian sẽ tăng từ 1:59:59 AM lên 3:00:00 AM.
Vào chủ nhật cuối cùng của tháng 10, khi thời gian lần đầu tiên đạt được
SVTH: NGUYỄN VĂN HIỂN 23 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
1:59:59 AM thì nó sẽ đổi thành 1:00:00 AM. Chức năng đặc biệt này sẽ
không được thực thi nếu bit DSE ở mức 0. Bit này không bị ảnh hưởng bởi
các chức năng bên trong cũng như chân RESET\.
3. Thanh ghi C
MSB LSB
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
IRQF PF AF UF 0 0 0 0
IRQF – Bit cờ yêu cầu ngắt (Interrupt Request Flag (IRQF)) được đặt lên
1 khi một trong những điều dưới đây đúng :
- PF = PIE = 1
- AF = AIE = 1
- UF = UIE = 1
Điề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.
PF – Bit cờ ngắt theo chu kỳ (Periodic Interrupt Flag (PF)) là bit chỉ
đọc, nó được đặt lên mức 1 khi có 1 sườn xung được phát hiện ở tín hiệu lựa
chọn của bộ chia. Từ bit RS3 đến RS0 xác định chu kỳ. PF được đặt lên 1 bất
chấp trạng thái của bit PIE. Khi cả PF và PIE đều ở mức 1, tín hiệu IRQ\ được
kích hoạt và sẽ đặt bit IRQF lên mức 1. Bit PF sẽ bị xoá bằng phần mềm đọc
thanh ghi C hoặc chân RESET\.
AF - Mức 1 của bit cờ cho phép ngắt báo giờ (Alarm Interrupt Flag

(AF)) chỉ ra rằng thời gian hiện tại được so sánh với thời gian báo giờ. Nếu
bit AIE còn ở mức 1, chân IRQ\ sẽ xuống mức thấp và 1 sẽ được đặt vào bit
IRQF. Khi RESET\ hoặc đọc thanh ghi C sẽ xoá AF.
UF – Bit cờ ngắt kết thúc cập nhật (Update Ended Interrupt Flag (UF))
được đặt sau mỗi chu kỳ cập nhật. Khi bit UIE được đặt lên 1, mức 1 ở UF sẽ
làm cho bit IRQF lên mức 1, nó sẽ xác định trạng thái chân IRQ\. UF sẽ bị
xoá khi thanh ghi C được đọc hoặc có tín hiệu RESET.
SVTH: NGUYỄN VĂN HIỂN 24 Lớp: ĐS-ĐĐT3
ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH
Từ bit 3 đến bit 0- Đây là những bit không sử dụng của thanh ghi
trạng thái C. Những bit này luôn luôn ở mức 0 và không thể ghi đè.
4. Thanh ghi D
MSB LSB
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
VRT 0 0 0 0 0 0 0
VRT – Bit thời gian và RAM hợp lệ (Valid RAM and Time (VRT))
biểu thị tình trạng của 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ị bằng 1 khi đọc. Nếu hiển thị mức 0, nguồn
năng lượng bên trong IC đã 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 chịu ảnh hưởng bởi chân RESET.
BIT 6 ĐẾN BIT 0 – Những bit được đề cập ở trên của thanh ghi D
không được sử dụng. Chúng không ghi được và khi đọc thì luôn có giá trị
bằng 0.
1.2.5 Chu kỳ cập nhật
DS12C887 thực hiện một chu kỳ cập nhật mỗi lần một giây bất chấp bit
SET ở thanh ghi B. Khi bit SET ở thanh ghi B được đặt lên 1, bộ phận sao
chép từ bộ đệm các bytes thời gian, lịch, báo giờ sẽ không hoạt động và sẽ
không cập nhật thời gian khi thời gian tăng lên. Tuy nhiên, quá trình đếm giờ
vẫn tiếp tục để cập nhật bộ nhớ nội để sao chép vào bộ đệm. Hành động này
cho phép thời gian vẫn duy trì độ chính xác mà không phụ thuộc quá trình đọc

hoặc ghi bộ đệm thời gian, lịch và báo giờ và cũng chắc chắn rằng những
thông tin về thời gian và lịch là phù hợp. Chu kỳ cập nhật cũng so sánh những
bytes báo giờ với những bytes thời gian tương ứng và kết quả là có báo giờ
nếu giống nhau hoặc là mã “don’t care” được đặt cho tất cả 3 vị trí. Có 3
cách có thể điều khiển truy cập đồng hồ thời gian thực mà có thể tránh được
bất kỳ khả năng truy cập các dữ liệu về thời gian và lịch mâu thuẫn với nhau.
Cách thứ nhất sử dụng ngắt kết thúc cập nhật. Nếu được kích hoạt, một tín
SVTH: NGUYỄN VĂN HIỂN 25 Lớp: ĐS-ĐĐT3

×