Tải bản đầy đủ (.pdf) (78 trang)

BÁO CÁO ĐỒ ÁN : Thiết kế đồng hồ kim dùng led ma trận

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 (3.37 MB, 78 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH
KHOA ĐIỆN - ĐIỆN TỬ

–&—

ĐỒ ÁN MÔN HỌC 2
ĐỀ TÀI:

GVHD: NGUYỄN VĂN HIỆP
SV làm đề tài:

Lâm Quí Long

Thành phố Hồ Chí Minh, tháng 5/2009

05101089


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

BẢN NHẬN XÉT ĐỒ ÁN MÔN HỌC CỦA
GIÁO VIÊN HƯỚNG DẪN
GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG

05101089

ĐỀ TÀI:



THIẾT KẾ ĐỒNG HỒ KIM DÙNG LED
MA TRẬN
Nội dung đồ án môn học
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN:
...............................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
...............................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
Giáo viên hướng dẫn


SVTH: LÂM QUÍ LONG

2


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

LỜI CẢM ƠN
Trước tiên, em xin chân thành cảm ơn thầy, ThS. Nguyễn Văn Hiệp đã tận tình
giúp đỡ, theo dõi động viên, khuyến khích, tạo mọi điều kiện để em hồn thành tốt
đề tài trên.
Em xin gởi lời cám ơn đến Ban Giám Hiệu, tồn thể thầy cơ và nhất là các thầy
cô khoa Điện - Điện Tử Trường ĐH Sư Phạm Kỹ Thuật Tp.Hồ Chí Minh đã tạo
điều kiện thuận lợi cũng như chỉ dẫn và truyền đạt kiến thức để em hoàn thành được
đề tài.
Em cũng xin cảm ơn các bạn học cùng lớp đã hết lòng giúp đỡ em thực hiện đề tài
trên

Tp.Hồ Chí Minh tháng 5 năm 2009
Sinh viên thực hiện đề tài

SVTH: LÂM QUÍ LONG

3


Đô án môn học 2


GVHD: NGUYỄN VĂN HIỆP

Mục Lục
Chương I : LỰA CHỌN PHƯƠNG ÁN ................................................................. - 5 1. KHỐI DAO ĐỘNG........................................................................................... - 6 2. KHỐI XỬ LÝ TRUNG TÂM .......................................................................... - 6 3. KHỐI LƯU TRỮ THỜI GIAN THỰC ........................................................... - 6 4. KHỐI ĐIỀU KHIỂN ....................................................................................... - 6 5. KHỐI CHUÔNG ............................................................................................. - 6 6. KHỐI HIỂN THỊ ............................................................................................. - 6 7. KHỐI NGUỒN ................................................................................................ - 6 Chương II : GIỚI THIỆU LINH KIỆN VÀ THIẾT KẾ MẠCH........................... - 7 A. KHỐI LƯU TRỮ THỜI GIAN THỰC ( DS12887 )....................................... - 7 1. Giới thiệu linh kiện. ..................................................................................... - 7 2. Tính tốn các thơng số cần thiết................................................................. - 17 B. KHỐI XỬ LÝ TRUNG TÂM ( AT89S52) .................................................... - 18 1. Cấu trúc của 8051 ....................................................................................... - 18 2 . Sơ lược vê các chân của 8051..................................................................... - 19 3. Cấu trúc cổng xuất nhập ........................................................................... - 22 4. Tổ chức bộ nhớ ........................................................................................... - 22 5. Các thanh ghi có chức năng đặc biệt.......................................................... - 24 6. Hoạt động Reset ......................................................................................... - 29 C-Khối hiển thị LED MA TRẬN ............................................................................30
1. Giới thiệu về led ma trân .................................................................................30
2.Cấu tạo và phương pháp điều khiển led ma trận ............................................30
3. Tính tốn thơng số ...........................................................................................33
D. GIỚI THIỆU IC ỔN ÁP 7805 - 7812 .................................................................33
CHƯƠNG 3: SƠ ĐỒ NGUYÊN LÝ VÀ LAYOUT CỦA CÁC KHỐI TRONG
MẠCH..........................................................................................................................34
Chương 4: CHƯƠNG TRÌNH VÀ LƯU ĐỒ GIẢI THUẬT .....................................43
A-Lưu đồ giả thuật ..............................................................................................43
B-Chương trình ...................................................................................................48
CHƯƠNG 5: KẾT LUẬN ...........................................................................................77
I – Kết luận ..............................................................................................................77
II- Phương án phát triển đề tài ...............................................................................77
III - Tài liệu tham khảo ...........................................................................................78

SVTH: LÂM QUÍ LONG

-4-


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

Chương I : LỰA CHỌN PHƯƠNG ÁN
Chúng ta có thể sử dụng nhiều loại linh kiện khác nhau để chế tạo nên một chiếc đồng

hồ số như :
Dùng IC số
Dùng vi điều khiển ( AT89S52 )
Dùng IC số thì kết quả khơng thể chính xác được vì sai số do nhiều IC tạo nên. Vì
thế em đã lựa chọn phương án dùng AT89S52. với lựa chọn này ta có 2 phương án
nhỏ ở bên trong :
Phương án 1: dùng ngắt và timer có sẵn trong AT89S52
Phương án 2: dùng bộ định thời gian thực của hãng Dallas ( DS12887 )
Sau khi cân nhắc em lựa chọn phương án 2 là vì nếu dùng ngắt và timer trong
AT89S52 thì kết quả có độ chính xác thấp. Khi mất điện thì ta phải cài lại thời gian
cho nó ( điều này khơng khả thi ) . Ngược lại, khi dùng DS12887 thì dù mất điện
chúng ta cũng không phải cài lại thời gian cho đồng hồ và độ chính xác mang lại là
khá cao.
Sau đây là sơ đồ khối của mạch :

Khối lưu trữ
thời gian thực

Khối điều
khiển

Khối hiển thị

Khối dao động

Khối xử lý
trung tâm

Khối chuông


Khối nguồn

SVTH: LÂM QUÍ LONG

-5-


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

1. KHỐI DAO ĐỘNG :
Có thể tạo dao động bằng mạch RC nhưng độ chính xác khơng cao.
Dùng thạch anh 12MHz ( có thể ở tần số khác ) để tạo dao động cho vi điều khiển
và đây cũng là thiết đặc
mặc định của nhà sản xuất.
Tần số dao động của vi điều khiển: fvdk = fthach anh/12
Như vậy lúc này vi điều khiển hoạt động ở tần số 1MHz ( T=1us ).
2. KHỐI XỬ LÝ TRUNG TÂM :
Dùng vi điều khiển AT89S51 hoặc AT89S52 vì có thể giao tiếp với DS12887 và có
giá rẻ
Phương án thay thế :
Dùng PIC 16F887 nhưng giá thành cao, không thể giao tiếp với DS12887 mà chỉ có
thể giao tiếp với DS1307
3. KHỐI LƯU TRỮ THỜI GIAN THỰC
Dùng DS12887 của hãng Dallas vì nó có khả năng lưu trữ thời gian thực khi mất
điện, không sợ mất dữ liệu.
Phương án thay thế:
Dùng timer có sẵn trong vi điều khiển → giá thành của mạch sẽ thấp hơn nhiều
nhưng độ chính xác khơng

cao và phải nạp lại thời gian cho timer nên rất bất tiện.
Dùng DS1307 nếu dùng PIC 16f887
4. KHỐI ĐIỀU KHIỂN :
Dùng các nút nhấn thường hở ( thường đóng ) để chỉnh giờ và hẹn giờ.
5. KHỐI CHUÔNG :
Dùng loa
6. KHỐI HIỂN THỊ :
Dùng led ma trận 2 màu xanh đỏ để hiện thị kim đồng hồ
7. KHỐI NGUỒN :
Dùng máy biến áp có tỉ số vịng dây W1/W2 = 220/5 = 44 .Tiếp đó ta chỉnh lưu tồn
kỳ dùng cầu chỉnh lưu..
Dịng ra vào khoảng 1000 mA

SVTH: LÂM QUÍ LONG

-6-


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

Chương II :
GIỚI THIỆU LINH KIỆN VÀ THIẾT
KẾ MẠCH
A. KHỐI LƯU TRỮ THỜI GIAN THỰC ( DS12887 )
1. giới thiệu linh kiện.
a. Khảo sát sơ đồ chân của DS12C887 – Chức năng từng 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 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 u cầu ngắt
SQW – Ngõ ra sóng vng
VCC – Nguồn cung cấp +5 Volt
GND – Mass

Thông số cơ bản của DS12887
Vùng điện áp hoạt động : 4,5V- 5,5V
Dòng tiêu thụ tối đa : 15mA
Vùng nhiệt độ hoạt động : 00C - 700C
Vùng nhiệt độ bảo quản : -400C – 70 0C
Chức năng của 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 +5 volt. Khi điện áp 5 volts đượ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.25 volts, qúa trình đọc và ghi bị
cấm. Tuy nhhiê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ộ giữ giờ
được chuyển sang nguồn năng lượng bên trong. Chức năng giữ thời gian duy trì độ
chính xác vào khoảng ±1 phút/tháng ở nhiệt độ 250 C bất chấp điện áp ở ngõ vào chân
Vcc.
MOT (Mode Select): Chân 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 chọn lựa. Khi được nối xuống

SVTH: LÂM QUÍ LONG


-7-


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

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ị vào khoảng 20K.
SQW (Square Wave Output): Chân 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 Real Time Clock. Tần số của
chân SQW có thể thay đổi bằng cách lập trình thanh ghi A như đã trình bày ở bảng 2.1.
Tín hiệu SQW có thể mở hoặc tắt sử dụng bit SQWE trong Register B. Tín hiệu SQW
khơng xuất hiện khi Vcc thấp hơn 4.25 volts.
AD0-AD7 (Multiplexed Bidirectional Address/Data Bus): 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 xuất trong suốt phần thứ nhất 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ảy 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 AD6.
Dữ liệu ghi 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 bits 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ở về trạng thái tổng trở
cao cũng như khi DS bắt đầu chuyển xuống thấp trong trường hợp định thời Motorola
hoặc khi RD chuyển lên cao trong trường hợp định thời Intel.
AS (Address Strobe Input): 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ẽ 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 (Data Strobe or Read Input): Chân DS/RD có 2 kiểu sử dụng tuỳ thuộc vào
mức của chân MOT. Khi chân MOT được kết 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
DS12C887 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). 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 (same definition) với tín hiệu Output Enable (OE) trong một bộ nhớ riêng.
R/ W\ (Read/Write Input): Chân R/ W\ cũng có 2 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ế độ mà chỉ ra
hoặc là chu kỳ hiện tại là chu kỳ đọc hoặc ghi. Chu kỳ đọc đòi hỏi chân R/W\ phải ở
mức cao khi chân DS ở mức cao. Chu kỳ ghi đòi hỏi chân R/ W\ phải ở mức thấp trong
suốt q 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 (an active low signal) được gọi là
WR. Trong chế độ này, chân R/ W\ được định nghĩa như tín hiệu Write Enable (WE)
trong RAMs chung.
CS (Chip Select Input): Tín hiệu chọn lựa 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 địa chỉ nhưng sẽ
khơng có bất kỳ sự truy cập nào. Khi Vcc thấp hơn 4.25 volts, chức năng bên trong của

SVTH: LÂM QUÍ LONG

-8-


Đô án môn học 2


GVHD: NGUYỄN VĂN HIỆP

DS12C887 ngăn chặn sự truy cập bằng cách không cho phép chọn lựa 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 (Interrupt Request Output): Chân IRQ\ là ngõ ra hoạt động mức thấp của
DS12C887 mà có thể sử dụng như ngõ vào ngắt tới bộ 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 đọc ở 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\ ở trong tình trạng tổng trở cao. Nhiều thiết bị ngắt có thể nối tới
một IRQ\ bus. IRQ\ bus là một ngõ ra mở và yêu cầu 1 điện trở kéo lên bên ngoài.
RESET\ (Reset Input): Chân RESET\ khơng có hiệu lực đối với đồng hồ, lịch, hoặc
là 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. Thời gian mà chân RESET\ bị kéo xuống mức thấp
phụ thuộc vào ứng dụng. Tuy nhiên nếu chân RESET\ được sử dụng ở chế độ cấp
nguồn, thời gian RESET\ ở mức thấp có thể vượt quá 200ms để chắc chắn rằng bộ định
thời bên trong mà điều khiển DS12C887 ở chế độ power-up đã hết. Khi RESET\ ở mức
thấp và VCC ở trên 4.25 volts, những điều sau diễn ra:
A. Bit cho phép ngắt định kỳ ((Periodic Interrupt Enable (PEI)) được đặt ở mức 0..
B. Bit cho phép ngắt chuông (Alarm Interrupt Enable (AIE)) được đặt ở mức 0.
C. Bit cờ cho phép ngắt kết thúc cập nhật ((Update Ended Interrupt Flag (UF)) được
xoá về 0 zero.
D. Bit cờ trạng thái yêu cầu ngắt (Interrupt Request Status Flag (IRQF)) được đặt ở
mức 0.
E. Bit cờ cho phép ngắt định kỳ (Periodic Interrupt Flag (PF)) được đặt ở mức 0.
F. Thiết bị không sử dụng được cho tới khi chân RESET\ trở lại mức logic 1.
G. Bit cờ cho phép ngắt chuông (Alarm Interrupt Flag (AF)) được đặt ở mức 0.
H. Chân IRQ\ ở trong trạng thái tổng trở cao.
I. Bit cho phép xuất sóng vuông (Square Wave Output Enable (SQWE)) được đặt ở

mức 0.
J. Bit cho phép ngắt kết thúc cập nhật (Update Ended Interrupt Enable (UIE)) bị xoá
về mức 0.
Trong các ứng dụng thơng thường chân RESET\ có thể được nối lên VCC. Kết nối
như vậy sẽ cho phép DS12C887 hoạt động và khi mất nguồn sẽ không làm ảnh hưởng
đến bất kỳ thanh ghi điều khiển nào.
Hoạt động của Real Time Clock khi được cấp nguồn hoặc mất nguồn.
Chức năng của đồng hồ thời gian thực sẽ tiếp tục hoạt động và tất cả RAM, thời
gian, lịch và vị trí bộ nhớ báo giờ và những vùng nhớ không mất dữ liệu còn lại bất
chấp điện áp ngõ vào VCC. Khi điện áp VCC được cung cấp cho DS12C887 và đạt tới
điện áp lớn hơn 4.25 volts, thiết bị có thể sử dụng được sau 200 ms, dao động được
cung cấp, nó cho phép bộ dao động hoạt động và quá trình dao động khơng ảnh hưởng
bởi chân reset. Tính đến giai đoạn này hệ thống đã đi vào ổn định sau khi nguồn được
cung cấp. Khi VCC rớt xuống dưới 4.25 volts, ngõ vào lựa chọn chip bị bắt buộc
chuyển sang trạng thái không hoạt động bất chấp giá trị tại ngõ vào chân CS. Vì vậy
DS12C887 được hoạt động ở chế độ chống ghi. Khi DS12C887 đang ở trạng thái
chống ghi, mọi ngõ vào đều bị bỏ qua còn các ngõ ra đều ở trạng thái tổng trở cao. Khi

SVTH: LÂM QUÍ LONG

-9-


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

VCC rớt xuống điện áp khoảng 3 volts, điện áp VCC cung cấp bên ngoài được cắt đi và
nguồn pin lithium ở bên trong DS12C887 sẽ cung cấp nguồn cho Real Time Clock và
bộ nhớ RAM.

b. Cấu trúc bên trong Real Time Clock DS12C887
b1. Sơ đồ địa chỉ của Real Time Clock
Sơ đồ địa chỉ của DS12C887 được trình bày ở hình 1. 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 tự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.

Hình 1 Sơ đồ địa chỉ của DS12C887
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 q 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–

SVTH: LÂM QUÍ LONG

- 10 -



Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

12 không thiể 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ờ ln đượ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 điễ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ó vài phương pháp tránh một số sai số có thể xảy ra khi
đọc thời gian và lịch được đề cập sau trong bài viết. 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ờ thược ghi vào vị trí của các thanh ghi
giờ, phút, giây, tác động 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 : Kiểu dữ liệu thời gian, lịch và báo giờ

b2. Các thanh ghi điều khiển
DS12C887 có 4 thanh ghi điều khiển được sử dụng vào mọi lúc kể cả trong q trình
cập nhật.
Ø THANH GHIi A

LSB
MSB
BIT 7
BIT
BIT
BIT
BIT
BIT
BIT
BIT
6
5
4
3
2
1
0
DV2
DV1
DV0
RS3
RS2
RS1
RS0

SVTH: LÂM Q LONG

- 11 -



Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

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, q 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 – 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 - 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 ngồ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 2 liệt kê chu kỳ ngắt và tần số sóng vng 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.

Bảng 2: chu kỳ ngắt và tần số sóng vng

SVTH: LÂM QUÍ LONG


- 12 -


Đô án môn học 2

Ø

GVHD: NGUYỄN VĂN HIỆP

THANH GHI B

MSB
BIT 7
SET

BIT
6
PIE

BIT 5

BIT 4

BIT 3

AIE

UIE

SQWE


BIT
2
DM

BIT 1

LSB
BIT 0

24/12

DSE

SET – Khi bit SET ở mức 0, thơng thường q 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ó q 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. . A 0 in the PIE bit blocks the IRQ\ output from being driven by
a periodic interrupt, but the Periodic Flag (PF) bit is still set at the periodic rate. PIE is
not modified by any internal DS12C887 functions but is cleared to 0 on RESET\ .
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ờ “don’t care” đượ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 vng (Square Wave Enable (SQWE)) được đặt
lên mức 1, một tín hiệu sóng vng 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 VCC.
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 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\.

SVTH: LÂM QUÍ LONG

- 13 -


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP


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 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\.
Ø

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
9 of 19
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 xố 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.
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 đè.
Ø
MSB
BIT 7
VRT

THANH GHI D
BIT 6

0

BIT 5
0

BIT 4
0

BIT 3
0

BIT 2
0

BIT 1
0

LSB
BIT 0
0

VRT – Bit thời gian và RAM hợp lệ (Valid RAM and Time (VRT)) biểu thị tình tạ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 lithium bên trong đã cạn và cả

SVTH: LÂM QUÍ LONG

- 14 -



Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

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ì ln có giá trị bằng 0.

c. 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ẫ 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 hiệu ngắt sẽ xảy ra sau mỗi chu kỳ cập nhật mà chỉ ra rằng
có hơn 999ms để đọc những thơng tin về thời gian và ngày tháng thực. Nếu ngắt này
được sử dụng, bit IRQF ở thanh ghi C phải được xóa trước khi bỏ những ngắt thường lệ.
Cách thứ 2 sử dụng bit đang cập nhật (Update-In-Progress (UIP)) ở thanh ghi A để xác
nhận răng chu kỳ cập nhật đang được tiến hành. Bit UIP sẽ phát xung mỗi lần một giây.
Sau khi bit UIP lên mức cao, quá trình cập nhật tiến hành sau 244µs. Nếu bit UIP ở mức
thấp, nó cần ít nhất 244µs trước khi dữ liệu thời gian/lịch thay đổi. Chính vì vậy, người
sử dụng có thể tránh được những phục vụ ngắt thơng thường mà có thể làm thời gian cần
thiết để đọc đúng dữ liệu thời gian/lịch vượt quá 244µs. Cách thứ 3 sử dụng ngắt theo

chu kỳ để xác định khi có một chu kỳ cập nhật. Bit UIP ở thanh ghi A được đặt lên mức 1
trong khi đặt bit PF ở thanh ghi C. Ngắt theo chu kỳ xuất hiện làm cho một phần lớn của
hơn của tBUC cho phép thông tin thực về thời gian và lịch có thể đạt được tại tất cả nơi
xảy ra của chu kỳ ngắt. Việc đọc chỉ có thể hồn tất khi 1 ( tPI/2 + tBUC ) để chắc chắn
rằng dữ liệu không được đọc trong suốt q trình cập nhật.

SVTH: LÂM Q LONG

- 15 -


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

d. Giao tiếp bus với các chế độ định thời

Hình 2. giao tiếp bus với IC Motorola

SVTH: LÂM QUÍ LONG

- 16 -


Đơ án mơn học 2

GVHD: NGUYỄN VĂN HIỆP

Hình 3. Giao tiếp bus với IC Intel


2. tính tốn các thơng số cần thiết:
Công suất tiêu thụ tối đa : PD = 5,5V * 15mA = 82,5mW

SVTH: LÂM QUÍ LONG

- 17 -


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

B. KHỐI XỬ LÝ TRUNG TÂM ( AT89S52)
Thông số cơ bản của AT89S52
Vùng điện áp hoạt động : 4V - 5.5V
Dòng tiêu thụ tối đa lúc hoạt động : 25mA
Dòng tiêu thụ tối đa lúc không tải : 6.5mA
Vùng nhiệt độ hoạt động : - 400C đến +850C
Dòng ra tối đa trên 1 chân port : 10mA
Dòng ra tối đa trên 1 port : 26mA ( port 0 ) và 15mA ( port 1,2,3 )
Tổng dòng ra tối đa trên tất cả các chân ngõ ra : 71mA
Tần số dao động tối đa của thạch anh : 24MHz
Dung lượng bộ nhớ flash : 8KB
Dung lượng bộ nhớ Ram nội : 256 byte

1. CẤU TRÚC CỦA 8051:
Trung tâm của 8051 vẫn là vi xử lý trung tâm (CPU). Để kích thích cho tồn bộ
hệ thống hoạt động, 8051 có bộ tạo dao động nội với thạch anh được ghép bên ngoài với
tần số khoảng từ vài Mhz đến 24 Mhz. Liên kết các phần tử với nhau là hệ thống BUS
nội, gồm có BUS dữ liệu, BUS địa chỉ và BUS điều khiển. 8051 có 4K ROM, 128 bytes

RAM và một số thanh ghi bộ nhớ … Nó giao tiếp với bên ngồi qua 3 cổng song song và
một cổng nối tiếp có thể thu, phát dữ liệu nối tiếp với tốc độ lập trình được. Hai bộ định
thời 16 bit của 8051 cịn có 2 ngắt ngồi cho phép nó đáp ứng và xử lý điều kiện bên
ngoài theo cách ngắt quảng, rất hiệu quả trong các ứng dụng điều khiển. Thông qua các
chân điều khiển và các cổng song song 8051 có thể mở rộng bộ nhớ ngoài lên đến 64Kbs
dữ liệu.

SVTH: LÂM QUÍ LONG

- 18 -


Đơ án mơn học 2

GVHD: NGUYỄN VĂN HIỆP

Hình 4. sơ đồ khối của 8051
2 . SƠ LƯỢC VỀ CÁC CHÂN CỦA 8051
Mục này giới thiệu cấu trúc phần cứng của 8051 từ những chân được nhìn thấy bên
ngồi. Dưới đây chỉ mô tả ngắn gọn chức năng của từng chân. Trong 40 chân có đến 32
chân có chức năng như cổng xuất nhập, 24 trong số chúng được dùng cho hai mục đích
khác nhau. Mỗi chân có thể là đường xuất nhập, đường điều khiển hoặc là một phần của
địa chỉ hay dữ liệu. Thiết kế thường có bộ nhớ ngoài hay các thiết bị ngoại vi sử dụng
những port để xuất nhập dữ liệu. Tám đường trong mỗi port được dùng như một đơn vị
giao tiếp song song như máy in, bộ biến đổi tương tự số, v.v… Hoặc mỗi đường cũng có
thể hoạt động một cách độc lập trong giao tiếp với các thiết bị đơn bit như: transitor,
LED, switch, solenoids …

SVTH: LÂM QUÍ LONG


- 19 -


Đô án môn học 2

GVHD: NGUYỄN VĂN HIỆP

Ø
Port 0
Port 0 là cổng song song dùng cho hai mục đích, nó là các chân từ 32 đến 39. Trong
những thiết kế nhỏ nó được dùng trong cổng xuất nhập bình thường. ở những thiết kế
có sử dụng bộ nhớ ngồi, nó vừa là bus dữ liệu vừa là byte thấp của bus địc chỉ. Nó
cịn dùng chứa bytes mã khi nạp ROM nội.
Ø
Port 1
Port 1 dành cho cổng xuất nhập và chỉ dành cho mục đích này mà thơi. Nó dùng để
giao tiếp với các thiết bị ngoại vi theo từng bit hoặc byte. Port 1 chiếm các chân từ 1
đến 8.
Ø
Port 2
Port 2 (chân 21 ÷ 28) là port có hai chức năng. Ngồi mục đích dành cho xuất
nhập thơng thường nó cịn dùng làm byte cao cho bus địa chỉ bộ nhớ ngồi.
Ø
Port 3
Port 3 (chân 10 ÷ 17) là port hai chức năng. Bên cạnh chức năng xuất nhập, các bit
của port 3 cịn có chức năng điều khiển. Chức năng các bit của port 3 được mô tả
trong bảng 3.
PSEN (cho phép nạp chương trình)
8051 có 4 chân tín hiệu điều khiển. PSEN là tín hiệu điều khiển được xuất ra ở chân
29. Tín hiệu điều khiển này cho phép lập trình ở bộ nhớ ngồi và thường được nối với

các chân OE của EPROM để đọc mã lệnh từ bộ nhớ ngoài vào thanh ghi lệnh của

SVTH: LÂM QUÍ LONG

- 20 -



×