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

Xây dựng Đồng hồ thời gian thực dùng DS 12C887 và vi điều khiển 8051

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 (474.28 KB, 62 trang )

ĐỒ ÁN TỐT NGHIỆP

 

KHOA CNTT - ĐHTN

LỜI NÓI ĐẦU
Kỹ thuật vi xử lý hiện nay rất phát triển, nó được ứng dụng vào rất nhiều lĩnh
vực như sản xuất công nghiệp, tự động hoá và còn nhiều lĩnh vực khác. So với kỹ
thuật số thì kỹ thuật vi xử lý nhỏ gọn hơn rất nhiều do nó được tích hợp lại và được
lập trình để điều khiển.
Với tính ưu việt của vi xử lý thì trong phạm vi đề tài nhỏ này em chỉ tiến hành
việc dùng vi điều khiển để xây dựng hệ thống hiển thị và điều khiển thời gian thực
đây chỉ là một ứng dụng nhỏ trong các ứng dụng của nó.
Những kiến thức của bản thân kết hợp với tài liệu tham khảo và dưới sự
hướng dẫn của thầy giáo đã giúp em hoàn thành đề tài này. Mặc dù đã cố gắng
nhưng đề tài của em không tránh khỏi sự thiếu sót. Kính mong các thầy cô thông
cảm.
Em xin chân thành cảm ơn thầy giáo Lê Hùng Linh đã tận tình giúp đỡ em
hoàn thành đề tài này.
Sinh viên:
Phạm Thị Quang.

SVTH: Phạm Thị Quang

1


ĐỒ ÁN TỐT NGHIỆP

 



KHOA CNTT - ĐHTN

PHẦN 1
CƠ SỞ LÝ THUYẾT

SVTH: Phạm Thị Quang

2


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

I. Một vài đặc điểm cơ bản của 8051
1.1. Giới thiệu bộ vi điều khiển
Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên một chíp có
thể lập trình, được dùng để điều khiển hoạt động của một hệ thống.
Theo các tập lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ
thông tin, xử lý thông tin đo thời gian và tiến hành đống mở một cơ cấu nào đó.
Trong các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển thường làm
nhiệm vụ điều khiển hoạt động như trong ti vi, máy giặt, đầu đọc laser, điện thoại,
lò vi ba …Trong hệ thống sản xuất tự động, bộ vi điều khiển được sử dụng trong
Robot các dây truyền tự động. Các hệ thống càng “thông minh” thì vai trò của hệ vi
điều khiển càng quan trọng.
1.2. Khảo sát vi điều khiển họ MCS-51
Vi mạch tổng quát của họ MCS-51 là chip 8051, linh kiện đầu tiên của họ

này được đưa ra thị trường, chip 8051 có đặc trưng như sau:
4 kb ROM.
128 byte RAM .
4 port xuất nhập(I/O port) 8 bit.
2 bộ định thời 16 bit.
Mạch giao tiêp nối tiếp.
Không gian nhớ chương trình (mã) ngoài 64kb.
Không gian nhớ dữ liệu ngoài 64kb.
Bộ xử lý bít ( thao tác trên các bít riêng rẽ).
210 vị trí nhớ được xác định địa chỉ, mỗi vị trí 1 bít .Nhân,chia trong
4 Ms.

Chíp
8051
8031
8751
8951
8052

bộ nhớ chươnng trình bộ nhớ dữ liệu trên Time
trên chíp

chíp

4 KB MROM
0 KB
4 KB EPROM
4 KB Flash ROM
8 KB MROM


128 Bytes
128 Bytes
128 Bytes
128 bytes
256 Bytes

SVTH: Phạm Thị Quang

2
2
2
2
3

3


 

ĐỒ ÁN TỐT NGHIỆP

8032
8752
8952

0 KB
8 KB EPROM
8 KB Flash ROM

KHOA CNTT - ĐHTN


256 Bytes
256 Bytes
256 Bytes

3
3
3

Bảng1.2: So sánh các chip hiện thời của MSC -51.
Các thành viên khác của họ MCS-51 có các tổ hợp ROM (EPROM), RAM trên
chíp khác nhau hoặc có thêm bộ định thời thứ ba (bảng 1.1). Mỗi một IC của họ
MCS-51cũng có phiên bản CMOS công suất thấp.
1.2.1.Đặc tính kỹ thuật cơ bản của 8051.
-Là vi điều khiển 8 bít.
- 4kb ROM dung để lưu trữ chưong trình từ địa chỉ 000H đến 0FFFH.
- 128b RAM dùng để lưu trữ dữ liệu địa chỉ 00H đến 7FH .
- Bốn port xuất nhập 8 bít song song.
- Hai bộ định thời 16 bít.
- Có bộ điều khiển ngắt lôgíc có 5 nguồn ngắt.
- Có 22 thanh ghi có chức năng riêng biệt SFR(Special Function Registers).
- Mạch giao tiếp nối tiếp.
- Không gian nhớ chương trình ngoài 64k.
- Không gian nhớ dữ liệu ngoài 64k.Bộ vi xử lý (CPU) thao tác được trên các
bít riêng rẽ.
- 8051 có hai tín hiệu đọc riêng biệt là: RD và PSEN.
- RD: Được kích hoạt khi byte được đọc từ bộ nhớ dữ liệu ngoài.
- PSEN: Được kích hoạt khi byte được đọc từ bộ nhớ chương trình bên
ngoài.
-Có hai trăm mười vị trí nhớ được định địa chỉ, mỗi vị trí nhớ là một bít nhớ

từ địa chỉ 20H đến địa chỉ 7FH.
-Nhân chia trong µs.
- Vi điều khiển 8051 và 8052 là ROM có thể xoá được.Việc phát triển tính
năng của dòng vi điều khiển này bao gồm: Tăng bộ nhớ, tăng các cổng, chuyển đổi
AD… - Tất cả các điều khiển trong họ vi điều khiển này đều có chung bộ lệnh.
- Đặc trưng nổi bật của các vi điều khiển phát triển sau này là lập trình và
điều khiển bằng những SFR được thêm vào sau đó.
SVTH: Phạm Thị Quang

4


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

1.2.1.1 Cấu trúc bên trong của 8051
-Phần chính của vi diều khiển 8051 là bộ xử lý trung tâm (CPU: Central
Procesing Unit) bao gồm:
+ Thanh ghi tích luỹ A.
+Thanh ghi tích luỹ phụ B dung cho phép nhân và phép chia .
+ Đơn vị logic học (ALU: Arithmetic Logical Unit).
+ Từ trạng thái chương trình (PSW: Program Status Word).
+ Bốn bank thanh ghi.
-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 trực tiếp nhận xung từ bộ dao động. Bên cạnh đó,
còn có khả năng đưa tín hiệu giữ nhịp từ bên ngoài vào.

- Chương trình đang chạy có thể dừng lại nhờ một khối điều khiển ngắt ở bên
trong. Các nguồn 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.
- Hai bộ định thời 16 bit hoạt động như bộ đếm.Các cổng (từ, port0, port1,
port2, port3 ) sử dụng vào mục đích điều khiển ở port3 có thêm các đường dẫn điều
khiển dùng để trao đổi với bộ nhớ bên ngoài hoặc để nối với giao diện nối tiếp cũng
như các đường ngắt dẫn 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ể cài đặt trong dải
rộng và được ấn địnhTimer
bằng2(8032/8052)
một bộ định thời.
Timer 1

T2EX*

- Trong vi điều khiển
Timer 0 8051 có hai phần quan trọng khác đó là bộ nhớ và các
Serial port

thanh ghi:

+ Bộ nhớ có bộ nhớ RAM và bộ nhớ ROM (chỉ có ở 8031) và dùmg để lưu
trữ dữ liệu và mã lệnh.
+ Các thanh ghi dùng để lưu trữ 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..
INT1*
INT0*

SVTH: Phạm Thị Quang


5


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

128 bytes
RAM
(8032/8052)
Interrupt
control

Other
registers

128 bytes
RAM

ROM
OK-8031/8032

4K-8051
8K-8052

Timer 2
(8032/8052)


Timer 1
Timer 0

CPU

Oscillatior

Bus control

I/O ports

Serial
Port

Hình2. 1:Sơ đồ khối của 8051
Interrupt control: Điều khiển ngắt.
Other registers: Các thanh ghi khác.
128 bytes RAM: RAM 128 byte.
Timer 2, 1, 0: Bộ định thời 2, 1, 0.
CPU: Đơn vị điều khiển trung tâm.
Oscillator: Mạch dao động.
Bus control: Điều khiển BUS.
I/O ports: Các port xuất/nhập.
Serial port: Port nối tiếp.
Address/data: Địa chỉ dữ liệu.

SVTH: Phạm Thị Quang

6



ĐỒ ÁN TỐT NGHIỆP

 

KHOA CNTT - ĐHTN

Hình2.2: Sơ đồ chân của chíp 8051
Như sơ đồ trên ta thấy được 8051 có 32 chân trong 40 chân của 8051 có
công dụng xuất/ nhập, tuy nhiên 24 trong 32 chân này có 2 mục đích (công
dụng) [ 26/32 đối với 8032/8051]. Mỗi một đường có thể hoạt động xuất/ nhập
hoặc hoạt động như một đường điều khiển hoặc hoạt động như một đường địa
chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp.
nếu trên hình thành 4 port 8 bit. Với các thiết kế yêu cầu một mức tối thiểu bộ
nhớ ngoài hoặc các thành phần bên ngoài khác, ta có thể sử dụng các port này
làm nhiện vụ xuất/ nhập. 8 đường cho mỗi port có thể được xử lý như một đơn
vị giao tiếp với các thiết bị song song như máy in, bộ biến đổi D-A, vv… hoặc
mỗi đường có thể hoạt động độc lập với một thiết bị đơn bít như chuyển mạch,
LED, BJT, FET, cuộn dây, động cơ, loa,…
Port 0
Port 0 (các chân từ 32 đến 39 trong 8051) có 2 công dụng. Trong đó các thiết
kế có tối thiểu thành phần, port 0 được sử dụng làm nhiệm vụ xuât/ nhập. trong các
thiết kế lớn hơn có bộ nhớ ngoài, port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp [
byte thấp của bus địa chỉ nếu là địa chỉ ].
Port 1
SVTH: Phạm Thị Quang

7



ĐỒ ÁN TỐT NGHIỆP

 

KHOA CNTT - ĐHTN

Port 1 chỉ có công dụng là xuất/ nhập ( các chân từ 1 đến 8 trên 8051). Các
chân của port 1 được ký hiệu là P1.0, P1.1… P1.7 và được dùng để giao tiếp với
các thiết bị bên ngoài khi có yêu cầu. Không có chức năng nào khác nữa gán cho
các chân của port 1, nghĩa là chúng chỉ được sử dụng để giao tiếp với các thiết bị
ngoại vi. [ Ngoại lệ: với 9032/ 8051, ta có thể sử dụng P1.0 và P1.1 hoặc làm các
đường xuất/ nhập hoặc làm các ngõ vào cho mạch định thời thứ ba] .
Port 2
Port 2 ( các chân từ 21 đến 28 trên 8051 ) có 2 công dụng, hoặc làm nhiệm
vụ xuất/ nhập hoặc là byte địa chỉ cao của bus địa chỉ 16 bit cho các thiết kế có bộ
nhớ chương trình ngoài hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu
ngoài.
Port3
Port 3 ( các chân từ10 đến 17 trên 8051 ) có 2 công dụng. Khi không hoạt
động xuất/ nhập, các chân của port 3 có nhiều chức năng riêng ( mỗi chân có chức
năng riêng liên quan đến các đặc trưng cụ thể của 8051).

SVTH: Phạm Thị Quang

8


 


ĐỒ ÁN TỐT NGHIỆP

Bit
P3.0
P3.1
P3.2

Tên
RxD
TxD
INT 0

P3.1
P3.4
P3.5
P3.6
P3.7
P1.0
P1.1

KHOA CNTT - ĐHTN

Địa chỉ bit
B0H
B1H

Chức năng
Chân nhận dữ liệu của port nối tiếp
Chân phát dữ liệu của port nối tiếp


B2H

Ngõ vào ngắt ngoài 0

B3H
Ngõ vào ngắt ngoài 1
T0
B4H
Ngõ vào của bộ định thời/ đếm 0
T1
B5H
Ngõ vào của bộ điịnh thời/đếm 1
B6H
Điều khiển ghi bộ nhớ dữ liệu ngoài
WR
B7H
Điều khiển đọc bộ nhớ ngoài
RD
T2
90H
Ngõ vào của bộ định thời/đếm 2
T2EX
91H
Nạp lại/ thu nhận của bộ định thời 2
Bảng2.1: Chức năng của các chân của port 3 và port 1
INT 1

Bảng này cho ta thấy chức năng của các chân của port 3 và 2 chân P1.0, P1.1
của port 1.
Chân cho phép bộ nhớ chương trình PXEN

8051 cung cấp cho ta 4 tín hiệu điều khiển bus. Tín hiệu cho phép bộ nhớ
chương trình PXEN ( program store enable ) là tín hiệu xuất trên chân 29. Đây là tín
hiệu điều khiển cho phép ta truy xuất bộ nhớ chương trình ngoài. Chân này thường
nối với chân cho phép xuất OE ( output enable ) của EPROM (hoặc ROM) để cho
phép đọc các byte lệnh.
Tín hiệu PXEN ở logic 0 trong suốt thời gian tìm -nạp lệnh. Các mã nhị phân
của chương trình hay opcode ( mã thao tác) được đọc từ EP-ROM, qua bus dữ liệu
và được chốt vào thanh ghi lệnh IR của 8051 để giải mã.
Khi thực thi một chương trình chứa ROM nội, PXEN được duy trì ở logic
không tích cực ( logic 1).
Chân cho phép chốt địa chỉ ALE
8051 sử chân 30, chân xuất tín hiệu cho phép chốt địa chỉ ALE
(address latch enable) để giải đa hợp bus dữ liệu và bus địa chỉ.
Khi port 0 làm bus địa chỉ/dữ liệu đa hợp chân ALE xuất tín hiệu để chốt
byte thấp của địa chỉ 16 bit vào một thanh ghi ngoài trong suốt nửa đầu chu kỳ bộ
nhớ. Sau khi điều này được thực hiện, các chân của port 0 sẽ xuất nhập dữ liệu
trong suốt nửa chu kỳ thứ hai của bộ nhớ.

SVTH: Phạm Thị Quang

9


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động bên trong chip vi

điều khiển và có thể được dùng làm xung clock cho phần còn lại của hệ thống.Nếu
mạch dao dộng có tần số 12MHz, tín hiệu ALE có tần số 2MHz. Ngoại hệ duy nhất
là trong thời gian thực thi lệnh MOVX, một xung ALE sẽ bị bỏ qua .Chân ALE còn
được dùng để nhận xung ngõ vào lập trình cho EPROM trên chip đối với các phiên
bản của 8051có EPROM này.
Chân truy suất ngoài EA
Ngõ vào này ( chân 31) có thể được nồi với 5V ( logic 1) hoặc nối với GND (
logic 0). Nếu chân này nối lên 5V, 8051/8052 thực thi chương trình trong ROM nội.
Nếu chân này nối với GND ( và chân PXEN ở logic 0 ), chương trình thực hiện ở
bộ nhớ ngoài.
Các phiên bản EPROM của 8051 cò sử dụng chân EA làm chân nhận điện
áp cấp điện 21V cho việc lập trình EPROM nội.
Chân RESET ( RST)
Ngõ vào RST ( chân 9) là ngõ vào khoá chính
(master reset) của 8051 dùng để thiết lập lại trạng thái ban
đầu cho hệ thống hay gọi tắt là reset hệ thống . Khi ngõ vào
này được treo ở logic 1 tối thiểu 2 chu kỳ máy, các thanh ghi bên trong của 8051
được nạp các giá trị thích hợp cho việc khởi động lại hệ
thống.
Các chân XTAL1 và XTAL2
Chân ALX1 là ngõ vào đến mạch khuyếch đại đảo
của mạch dao động và ngõ vào đến mạch tạo xung clock
bên trong chip.
Chân ALX2 là ngõ ra đến mạch khuyếch đại đảo của mạch
dao động.
Mạch dao động trên chip 8051 được ghép với thạch anh bên ngoài ở 2 chân
ALX1 và ALX2 tức là chân 18 và chân 19.
1.2.2 Tổ chức bộ nhớ của 8051

SVTH: Phạm Thị Quang


10


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

Hầu hết các bộ vi xử lý (CPU) đều có không gian nhớ chung cho dữ liệu và
chương trình.
Các chip vi điều khiển hiếm khi được sử dụng giống như các CPU trong các
hệ máy tính, thay vào đó chúng được dùng làm thành phần trung 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 phải thường trú trong ROM.
Bộ nhớ nội trong chip bao gồm ROM ( chỉ có ở 8051/8052) và RAM. RAM
trên chip bao vùng RAM đa chức năng ( nhiều công dụng), vùng RAM với tùng bít
được định địa chỉ ( gọi tắt là vùng RAM định địa chỉ bít), các dãy ( bank) thanh ghi
chức năng đặc biệt SFR ( special function register).
Vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến 7FH, bên dưới
vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có thể sử dụng tương tự có các mục
đích khác. Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể được truy
suất tự do bằng cách sử dụng các kiểu định địa chỉ trực tiếp hoặc gián tiếp. Thí dụ
để đọc nội dung tại địa chỉ 5FH của RAM nội vào thanh chứa A ta dùng lệnh sau:
MOV A 5FH.
Lệnh di chuyển một byte dữ liệu bằng cách dùng kiểu địa chỉ trực tiếp để xác
định vị trí nguồn (nghĩa là địa 5FH). Đích của dữ liệu được xác định rõ ràng trong
opcode của lệnh là thanh chứa A.
Vùng RAM đa mục đích còn có thể được truy xuất bằng cách dung kiểu định

địa chỉ gián tiếp qua các thanh ghi R0, R1. Thí dụ hai lệnh sau thực hiện cùng công
việc như lệnh ở thí dụ trên.
MOV R0, #5FH
MOV A, @R0
Lệnh đầu tiên dùng kiểu định địa chỉ tức thời di chuyển giá trị 5FH, vào
thanh ghi R0, lệnh tiếp theo sử dụng kiểu định địa chỉ gián tiếp di chuyển dữ liệu trỏ
bởi R0 vào thanh chứa A.

1.2.2.1 Vùng RAM định địa chỉ bit
SVTH: Phạm Thị Quang

11


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

8051 chứa 210 vị trí bit được định địa chỉ trong đó 128 bit chứa trong các
byte ở địa chỉ từ 20H đến 2FH và phần còn lại chứa trong các thanh ghi chức năng
đặc biệt.
Hầu hết các bộ xử lý yêu cầu một chuỗi lệnh đọc-sửa-ghi để nhận được cùng
một kết quả. Ngoài ra 8051 còn có các port xuất/nhập có thể định từng địa chỉ bit,
điều này làm đơn giản việc giao tiếp phần mềm với các thiết bị xuất/ nhập đơn bit.
1.2.2.2 Các dãy thanh ghi
32 vị trí thấp nhất của bộ nhớ nội chứa các dãy thanh ghi. Các lệnh của 8051
hỗ trợ 8 thanh ghi từ R0-R7 thuộc dãy 0. Đây là dãy mặc định sau khi Reset hệ
thống. Các thanh ghi này ở các địa chỉ từ 00H đến 07H. Lệnh sau đây đọc nội dung

tại địa chỉ 05H vào thanh chứa.
MOV A, R5.
Các lệnh sử dụng thanh ghi từ R5-R7 là các lệnh ngắn và thực hiện nhanh
hơn so với các lệnh tương đương sử dụng kiểu định địa chỉ trực tiếp.
Ý tưởng “các thanh ghi” cho phép “chuyển đổi ngữ cảnh” nhanh và có hiệu
quả ở những nơi mà các phần riêng rẽ của phần mềm sử dụng một tập thanh ghi
riêng, độc lập với các phần khác của phần mềm.
1.2.2.3. Các thanh ghi chức năng đặc biệt
Các thanh ghi nội của hầu hết các bộ vi xử lý đều được truy xuất rõ ràng bởi
một tập lệnh.
Các thanh ghi nội của 8051 được cấu hình thành một phần của RAM trên
chip, do vậy mỗi thanh ghi cũng có một địa chỉ. Điều này hợp lý với 8051 vì chíp
này có rất nhiều thanh ghi.
Hầu hết các thanh ghi được chức năng đặc biệt được truy xuất bằng kiểu
định địa chỉ trực tiếp.
Từ trạng thái chương trình PSW
PSW có địa chỉ là D0H chứa các bít trạng thái có chức năng được như sau:

Bít
PSW.7

Kí hiệu
CY

Địa chỉ
D7H

Mô tả bít
Cờ nhớ


SVTH: Phạm Thị Quang

12


 

ĐỒ ÁN TỐT NGHIỆP

PSW.6
PSW.5
PSW.4
PSW.3

AC
F0
RS1
RS0

D6H
D5H
D4H
D3H

KHOA CNTT - ĐHTN

Cờ nhớ phụ
Cờ 0
Chọn dãy thanh ghi ( bít 1 )
Chọn dãy thanh ghi ( bít 0)

00 = bank 0: địa chỉ từ 00H đến 07H
01 = bank 1: địa chỉ từ 08H dến 0FH
10 = bank 2: địa chỉ từ 10H đến 17H

PSW.2
PSW.1
PSW.0

OV
P

D2H
D1H
D0H

11 = bank 3: địa chỉ từ 18H đến địa chỉ 1FH
Cờ tràn
Dự trữ
Cờ kiểm tra chẵn lẻ

Cờ nhớ : Cờ nhớ CY ( carry flag) có 2 công dụng. Công dụng truyền thống trong
các phép toán số học là được set bằng 1 nếu có số nhớ từ phép cộng bít 7 hoặc có
một số mượn mang đến bít 7. Cờ nhớ CY là thanh chứa logic được dùng như một
thanh ghi 1 bít đối với các lệnh được thao tác trên bít.
Cờ nhớ phụ: khi cộng các giá trị BCD, cờ nhớ phụ AC (auxiliary carry flag ) được
set bằng 1 nếu có một số nhớ được tạo ra từ bít 3 chuyển sang bít 4 hoặc nếu kết
quả trong đề-cát thấp nằm trong tầm từ 0AH đến 0FH.
Cờ 0: Đây là cờ có nhiều mục đích dành cho các ứng dụng của người lập trình.
Các bít chứa dãy thanh ghi: Các bít chọn thanh ghi RS0, RS1 dùng để xác định dãy
thanh ghi tích cực. Các bít này được xoá sau khi có thao tác reset hệ thống và đổi

mức logic bởi phần mềm khi cần.
Cờ tràn: Cờ tràn được xét bằng 1 sau phép toán cộng hoặc trừ nếu có xuất hiện một
tràn số học khi các số có dấu cộng hoặc trừ, phần mềm có thể kiểm tra bit tràn để
xác định xem kết quả có nằm trong tầm tay hay không.
Cờ chẵn lẻ: Bit chẵn lẻ P tự động được xếp bằng 1 hay xoá bằng 0 ở mỗi chu kì
máy để thiết lập kiểm tra chẵn cho thanh chứa A. Số các bit 1 trong thanh chứa cộng
với bit P luôn là thanh chẵn. Bit chẵn lẻ được sử dụng nhiều để kết hợp với các
chương trình xuất nhập nối tiếp trước khi truyền dữ liệu hoặc kiểm tra chẵn lẻ sau
khi nhận dữ liệu.
Thanh ghi B
Thanh ghi B ở địa chỉ F0H được dụng chung với thanh chứa A trong các
phép toán nhân, chia. Lệnh MUL AB nhân hai số 8bit không dấu chứa trong A và B
SVTH: Phạm Thị Quang

13


ĐỒ ÁN TỐT NGHIỆP

 

KHOA CNTT - ĐHTN

chứa kết quả 16bit vào cặp thanh ghi B:A (Thanh chứa A cất byte thấp và thanh ghi
B vất byte cao).
Lệnh DIV AB chia A bởi B, thương số cất trong thanh chứa A và dư số cất
trong thanh ghi B. Thanh ghi B còn được xử lý như 1 thanh ghi nháp. Các bit được
chỉ định địa chỉ của thanh ghi B có địa chỉ từ F0H đến F7H.
Con trỏ stack
Con trỏ stack SP ( stack pointer ) là một thanh ghi 8 bít ở địa chỉ 81H. SP

chứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack. Các lệnh liên quan đến stack
bao gồm lệnh cất dữ liệu vào stack và lệnh lấy dữ liệu ra khỏi stack. việc cất vào
stack làm tăng SP trước khi ghi dữ liệu và việc lấy dữ liệu ra khỏi stack sẽ làm giảm
SP. Vùng stack của 8051 được giữ trong RAM nội và được giới hạn đến các địa chỉ
truy xuất được bởi kiểu định địa chỉ gián tiếp. Vùng Ram nội có 128 byte trên
8031/8051 hoặc 256 byte trên 8031/8052.
Nếu ta không khởi động SP, nội dung mặc định của thanh ghi này là 07H
nhằm duy trì sự tương thích với 8048, bộ vi điều khiển tiền nhiệm của 8051.
Con trỏ dữ liệu DPTR
Con trỏ dữ liệu được dung để truy xuất bộ nhớ chương trình ngoài hoặc bộ
nhớ dữ liệu ngoài. DPTR là một thanh ghi 16 bít có địa chỉ 82H ( DPL, byte thấp )
và 83H ( DPH, byte cao).
Các thanh ghi port
Các port xuất/nhập của 8051 bao gồm port 0 tại địa chỉ 80H, port 1 tại địa
chỉ 90H, port 2 tại địa chỉ A0H và port 3 tại địa chỉ B0H. Các port 0, 2, và 3 không
được dung để xuất/nhập nếu ta sử dụng thêm bộ nhớ ngoài hoặc nếu có một số đặc
tính đặc biệt của 8051 được sử dụng ( như là ngắt, port nối tiếp,…) . Tất cả các port
đều được định địa chỉ từng bit nhằm cung cấp khả năng giao tiếp mạch.
Các thanh ghi định thời
8051 có 2 bộ đếm/định thời (time/ counter) 16 bít để định các khoảng thời
gian hoặc để đếm các sự kiện. Bộ định thời 0 có địa chỉ 8AH ( TL0, byte thấp ) và
8CH ( TH0, byte cao ); bộ định thời 1 địa chỉ 8BH ( TL1, byte thấp) và 8BH ( TH1,
byte cao).

SVTH: Phạm Thị Quang

14


 


ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời
TMOD ( timer mode register) ở địa chỉ 89H và thanh ghi diều khiển định thời
TCON ( timer control register ) ở địa chỉ 88H. Chỉ có TCON được định địa chỉ từng
bít.
Các thanh ghi của port nối tiếp
Bên trong 8051có một port nối tiếp để truyền thông với các thiết bị nối tiếp
như các thiết bị đầu cuối hoặc modem, hoặc để giao tiếp với các IC khác có mạch
giao tiếp nối tiếp. Một thanh ghi được gọi là bộ đệm dữ liệu nối tiếp SBU ( serial
data buffer) ở địa chỉ 99H lưu giữ dữ liệu nhận về. Việc ghi lên SBUF sẽ lấy dữ liệu
đẫ nhận được.
Các chế độ hoạt động khác nhau được lập trình thông qua thanh ghi điều
khiển port nối tiếp SCON ( serial port control register) ở địa chỉ 98H, thanh ghi này
được định địa chỉ ở từng bit.
Thanh ghi ngắt
8051 có một cấu trúc ngắt với 2 mức ưu tiên và 5 nguyên nhân ngắt. Các
ngắt bị vô hiệu hoá sau khi reset hệ thống và sau đó được cho phép bằng cách ghi
vào thanh ghi cho phép ngắt IE ( interrupt enable structure) ở địa chỉ A8H. Mức ưu
tiên ngắt được thiết lập qua thanh ghi ưu tiên ngắt IP (interrupt priority register) ở
địa chỉ B8H. Cả hai thanh ghi này đều được định địa chỉ từng bit.
Thanh ghi điều khiển nguồn
Thanh ghi điều khiển nguồn PCON (Power control register) có địa chỉ 87H
chứa các bit điều khiển.
Bit SMOD tăng gấp đôi tốc độ baud của port nối tiếp khi port này hoạt động
ở chế độ 1, 2, hoặc 3. Các bit 4, 5 và 6 của PCON không được định nghĩa. Các bit 2
và 3 là các bit cờ đa mục đích dành cho ứng dụng của người sử dụng.

Các bit điều khiển nguồn, nguồn giảm PD và nghỉ IDL, hợp lệ trong tất cả
chip thuộc họ MCS-51, nhưng chỉ được thực hiện trong các phiên bản CMOS của
họ MCS-51. PCON không được địa chỉ bit.
Chế độ nguồn giảm: Lệnh thiết lập từ bit PD bằng 1 sẽ là lệnh sau cùng được
thực thi trước khi đi vào chế độ nguồn giảm. Trong suốt thời gian ở chế độ nguồn
giảm Vcc có điện áp là 2V. Cần phải giữ cho Vcc không thấp hơn khi đạt được chế
SVTH: Phạm Thị Quang

15


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

độ nguồn giảm và cần phục hồi Vcc = 5V tối thiểu 10 chu kì giao động trước khi
chân RST đạt mức thấp lần nữa.
Bit
7

Kí hiệu
SMOD

Mô tả
Bit tăng gấp đôi tốc độ baud, bit này khi xét làm cho tốc
độ baud tăng gấp 2 ở các chế độ 1, 2 và 3 của port nối

6

5
4
3
2
1
0

GF1
GF0
PD

tiếp.
Không đinh nghĩa.
Không định nghĩa .
Không định nghĩa.
Bit cờ đa mục đích 1.
Bit cờ đa mục đích 2.
Nguồn giảm; thiết lập để tích cực chế độ nguồn giảm,

IDL

chỉ ra khỏi chế độ bằng Reset.
Chế độ nghỉ; thiết lập để tích cực chế độ nghỉ, chỉ ra

khỏi chế độ bằng 1 ngắt hoặc Reset hệ thống.
1.2.3 Tập lệnh của 8051
Các lệnh của 8051 được chia thành 5 nhóm.
Nhóm đại số học .
Nhóm lệnh lôgic .
Nhóm lệnh xử lý dữ liệu.

Nhóm lệnh xử lý bit.
Nhóm lệnh rẽ nhánh.
Các chi tiết của tập lệnh
Rn: Các thanh ghi từ R0 đến R7 của bank thanh ghi được lưạ chọn.
Data : Đây là 8 bít địa chỉ vùng dữ liệu bên trong. Nó có thể là vùng RAM
dữ liệu trong (0-127) hoặc các thanh ghi chứa chức năng đặc biệt.
@Ri: Định địa chỉ gián tiếp sử dụng thanh ghi R0 hoặc R1.
#data : Hằng 8 bít chứa trong câu lệnh.
#data 16: Hằng 16 bít địa chỉ được dùng trong câu lệnh .
Addr 16: 16 bít địa chỉ được dung trong câu lệnh LCALL và LJMP.
Addr 11: 11 bít địa chỉ được dung trong lệnh LCALLvà LJMP.
Rel: Byte offset 8 bit có dấu được dung trong lệnh SJMP và những lệnh nhảy
có điều kiện.

SVTH: Phạm Thị Quang

16


ĐỒ ÁN TỐT NGHIỆP

 

KHOA CNTT - ĐHTN

Bit: Bit được định địa chỉ trực tiếp trong RAM dữ liệu nội hoặc các thanh ghi
chức năng đặc biệt.
Nhóm lệnh số học
ADD A,Rn (1 byte, 1 chu kỳ máy): Cộng nội dung thanh ghi A.
ADD A, data (2, 1): Cộng trực tiếp 1 byte vào thanh ghi A.

ADD A, @Ri (1, 1): Cộng gián tiếp nội dung RAM chứa tại địa chỉ được
khai báo trong thanh ghi Ri vào thanh ghi A.
ADD A, #data (2, 1): Cộng dữ liệu tức thời vào thanh ghi A.
ADDC A, Rn (1, 1): Cộng thanh ghi và cờ nhớ vào A.
ADDC, A, data (2, 1): Cộng trực tiếp byte dữ liệu vào cờ nhớ A.
ADDC, A, @Ri (1, 1): Cộng gián tiếp nội dung RAM và cờ nhớ A.
ADDC A, #data (2, 1): Cộng dữ liệu tức thời từ cờ nhớ vào A.
SUBB A, Rn (1, 1): Trừ nội dung thanh ghi A cho nội dung thanh ghi Rn và
cờ nhớ.
SUBB A, data (2, 1): Trừ trực tiếp thanh ghi A cho một số và cờ nhớ.
SUBB A, @Ri (2, 1): Trừ gián tiếp thanh ghi A cho một số và cờ nhớ.
SUBB A, #data (2, 1):Trừ nội dung thanh ghi A cho một số tức thời và cờ
nhớ.
INC A (1, 1): Tăng nội dung thanh ghi A lên 1.
INC Rn (1, 1): Tăng nội dung thanh ghi Rn lên 1.
INC data (2, 1): Tăng dữ liệu trực tiếp lên 1.
INC @R (1, 1): Tăng nội dung vùng RAM lên 1.
INC DPTR (1, 1): Tăng nội dung thanh con trỏ dữ liệu lên 1.
DEC A (1, 1): Giảm nội dung thanh ghi A lên 1.
DEC Rn (2, 1): Giảm dữ liệu trực tiếp thang ghi Rn lên 1.
DEC data (2, 1): Giảm dữ liệu trực tiếp lên 1.
DEC @Rn (1, 1): Giảm trực tiếp nội dung vùng RAM lên 1.
DEC DPTR (1, 1): Giảm nội dung thanh con trỏ dữ liệu lên 1.
MUL AB (1, 4): Nhân nội dung thanh ghi A với nội dung thanh ghi B.
DIV AB (1, 4): Chia nội dung thanh ghi A cho nội dung thanh ghi B.
DA A (1, 1): Hiệu chỉnh thập phân thanh ghi A.
SVTH: Phạm Thị Quang

17



 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

Nhóm lệnh logic.
ANL A, Rn (1, 1): AND nội dung thanh ghi A với nội dung thanh ghi Rn.
ANL A, data (2, 1): AND nội dung thanh ghi A với dữ liệu trực tiếp.
ANL A, @Ri (1, 1): AND nội dung thanh ghi A với dữ liệu gián tiếp trong
RAM.
ANL A, #data (2, 1): AND nội dung thanh ghi A với dữ liệu tức thời.
ANL data, A(2, 1): AND dữ liệu trực tiếp với A.
ANL data, #data (3, 2): AND một dữ liệu trực tiếp với 1 dữ liệu tức thời.
ANL C, bit (2, 2): AND cờ nhớ với một bít dữ liệu trực tiếp.
ORL A Rn (1, 1) : OR nội dung thanh ghi A với nội dung thanh ghi Rn.
ORL A, data (2, 1): OR nội dung thanh ghi A với dữ liệu gián tiếp trong RM.
ORL A, # data (2, 1): OR nội dung thanh ghi A với dữ liệu tức thời.
ORL data , A (2, 1): OR một dữ liệu trực tiếp với A.
ORL data, #data (3, 2): OR một dữ liệu trực tiếp với một dữ liệu tức thời.
ORL C, bit (2, 2): OR cờ nhớ với một bít dữ liệu trực tiếp.
ORL C, /bit (2, 2): OR cờ nhớ với bù một bít trực tiếp.
XRL A, Rn (1, 1): XOR nội dung thanh ghi A với một nội dung thanh ghi
Rn.
XRL A, data (2, 1): XOR nội dung thanh ghi A với dữ liệu trực tiếp.
XRL A, @Ri (1, 1):XORnội dung thanhghi A với dữ liệu gián tiếp trong
RAM.
XRL A, #data (2, 1): XOR nội dung thanh ghi A với dữ liệu tức thời.
SETB C (1, 1): Đặt cờ nhớ.

SETB bit (2, 1): Đặt 1 bít trực tiếp.
CLR A (1, 1): Xoá thanh ghi A.
CLR C (1, 1):Xoá cờ nhớ.
CPL A (1, 1): Bù nội dung thanh ghi.
CPL bit (1, 1): Bù một bít trực tiếp.
RL A (1, 1): Quay trái nội dung thanh ghi A.
RLC A (1, 1): Quay trái nội dung thanh ghi A qua cờ nhớ.
RR A (1, 1): Quay phải nội dung thanh ghi A.
SVTH: Phạm Thị Quang

18


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

RRC A (1, 1): Quay phải nội dung thanh ghi A qua cờ nhớ.
SWAP (1, 1): Quay trái nội dung thanh ghi A 1 nibble ( ½ byte).
Nhóm lệnh chuyển dữ liệu.
MOV A,Rn (1, 1): Chuyển nội dung lệnh thanh ghi Rn vào thanh ghi A.
MOV A, data (2, 1): Chuyển dữ liệu trực tiếp vào thanh ghi A.
MOV A, @Ri (1, 1): Chuyển dữ liệu gián tiếp vào thanh ghi A.
MOV A, #data (2, 1): Chuyển dữ liệu tức thời vào thanh ghi A.
MOV Rn, data (2, 1): Chuyển dữ liệu trực tiếp vào thanh ghi Rn.
MOV Rn, #data (2, 1): Chuyển dữ liệu tức thời vào thanh ghi Rn.
MOV data, A (2, 1): Chuyển nội dung thanh ghi A vào dữ liệu trực tiếp.
MOV data, Rn (2, 2): Chuyển nội dung thanh ghi Rn vào một dữ liệu trực

tiếp.
MOV data, data (3, 2): Chuyển một dữ liệu trực tiếp vào một dữ liệu trực
tiếp.
MOV data, @Ri (2, 2): Chuyển một dữ liệu gián tiếp vào một dữ liệu trực
tiếp.
MOV @Ri, A (2, 1): Chuyển nội dung thanh ghi A vào một dữ liệu gián tiếp.
MOV @Ri, data (2, 1): Chuyển một dữ liệu trực tiếp vào một dữ liệu gián
tiếp.
MOV @Ri, #data (2, 1): Chuyển một dữ liệu tức thời vào một dữ liệu gián
tiếp.
MOV DPTR, data 16 (3, 2): Chuyển hằng 16 bit vào một thanh ghi con trỏ dữ
liệu.
MOV C, bit (2, 1): Chuyển một bit trực tiếp vào cờ nhớ.
MOV bit, C (2, 2):Chuyển cờ nhớ vào một bít trực tiếp.
MOVC A, @A + DPTR (1, 2): Chuyển byte bộ nhớ chương trình có địa chỉ
là @A + DPTR vào thanh ghi A.
MOVC A, @A + PC (1, 2): Chuyển byte bộ nhớ chương trình có địa chỉ là
@A + PC vào thanh ghi A.
MOV A, @Ri (1, 2): Chuyển dữ liệu ngoài (8 bit địa chỉ) vào thanh ghi A.

SVTH: Phạm Thị Quang

19


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN


MOV A, @ DPTR (1, 2): Chuyển dữ liệu ngoài(16 bit địa chỉ)vào thanh ghi
A.
MOV @Ri, A (1, 2): Chuyển nội dung A ra dữ liệu bên ngoài ( 8 bít địa chỉ).
MOV @DPTR, A (1, 2): Chuyển nội dung A ra dữ liệu bên ngoài ( 16 bit địa
chỉ ).
MOV @Ri, A (1, 2): Chuyển nội dung A ra dữ liệu bên ngoài (8 bit địa chỉ ).
MOV @DPTR, A (1, 2): Chuyển nội dung A ra dữ liệu bên ngoài ( 16 bít địa
chỉ ).
PUSH data (2, 2): Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP.
POP data (2, 2): Chuyển dữ liệu trực tiếp vào ngăn xếp và giảm SP.
XCH A, Rn (1, 1): Trao đổi dữ liệu giữa thanh ghi Rn và thanh ghi A.
XCHD A, @Ri (1, 1): Trao đổi dữ liệu giữa nibble thấp thanh ghi A với nội
dung nửa thấp của byte trong RAM nội, byte này được định địa chỉ gián tiếp bởi
thanh ghi được chỉ ra trong lệnh.
Nhóm lệnh chuyển điều khiển.
ACALL addr11 (2, 2): Gọi chương trình con dùng địa chỉ tuyệt đối.
LCALL addr16 (3, 2): Gọi chương trình con dung địa chỉ dài.
RET (1, 2): Trở về từ lệnh gọi chương trình con.
RET 1 (1, 2): Trở về từ lệnh gọi ngắt.
AJMP addr11 (2, 2): Nhảy tuyệt đối.
LJMP addr16 (3, 2): Nhảy dài.
SJMP rel (2, 2): Nhảy ngắn đến địa chỉ offset chỉ ra bởi rel.
JMP @A + DPTR (1, 2): Nhảy gián tiếp từ con trỏ dữ liệu.
JZ rel (2, 2): Nhảy đến địa chỉ offset rel nếu A = 0.
JNZ rel (2, 2): Nhảy đến địa chỉ offset rel nếu A không bằng 0.
JC rel (2, 2): Nhảy đến rel nếu cờ nhớ được cài đặt.
JNC rel (2, 2): Nhảy đến rel nếu cờ nhớ được không được cài đặt.
JB bit, rel (3, 2): Nhảy tương đối đến rel nếu bit trực tiếp được đặt.
JNB bit, rel (3, 2): Nhảy tương đối đến rel nếu bit trực tiếp không được đặt.

JBC bit, rel (3, 2): Nhảy tương đối đến rel nếu bít trực tiếp không được cài
đặt bằng 1 và xoá bít.
SVTH: Phạm Thị Quang

20


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

CJNE A, #data, rel (3, 2): So sánh dữ liệu tức thời với A và nhảy đến rel nếu
không bằng.
CJNE Rn, #data, rel (3, 2): So sánh dữ liệu tức thời với nội dung thanh ghi
Rn và nhảy đến rel nếu không bằng.
CJNE @Ri, #data, rel (3, 2): So sánh dữ liệu tức thời với dữ liệu gián tiếp và
nhảy đến rel nếu không bằng.
DJNZ Rn, rel (2, 2): Giảm thanh ghi Rn và nhảy đến rel nếu không bằng.
DJNZ data, rel (3, 2): Giảm dữ liệu trực tiếp và nhảy đến rel nếu không bằng.
1.3. Vi điều khiển AT89C51
AT 89C51 là phiên bản 8051 có ROM trên chip là bộ nhớ Flash. Phiên bản
này rất thích hợp cho các ứng dụng nhanh vì bộ nhớ Flash có thể được xoá trong
vài giây ( chứ không phải 20 phút như 8751). Dĩ nhiên là để dùng AT 89C51 cần
phải có bộ đốt ROM hỗ trợ bộ nhớ Flash, xong lại không cần bộ xoá ROM vì bộ
nhớ Flash vì bộ nhớ Flash được xoá bằng bộ đốt PROM. Để tiện sử dụng, hiện nay
hãng Atmel đang nghiên cứu một phiên bản của AT89C51 có thể được lập trình qua
cổng COM của máy tính IBM PC và như vậy sẽ không cần bộ đốt PROM.
Ký hiệu


ROM

RAM

Chân

Timer

Ngắt

Vcc

Đóng vỏ

I/O
AT89C51

4K

128

32

2

6

5V


40

AT89LV51

4K

128

32

2

6

3V

40

AT89C1051

1K

64

15

1

3


3V

20

AT89C2051

2K

128

15

2

6

3V

20

AT89C52

8K

128

32

3


8

5V

40

AT89LV52

8K

128

32

3

8

3V

40

Bảng 3.1: Các phiên bản của 8051 của Atmel
Thông số về kiểu đóng vỏ và tốc độ của bộ vi điều khiển cũng đươc thể hiện
ở kí hiệu. Ví dụ, từ bảng 2, chữ “C” đứng trước số 51 ở kí hiệu AT 89C51-12PC là
để chỉ công nghệ CMOS( tiêu thụ năng lượng thấp) “12” để chỉ tốc độ 12MHZ và
“P” là kiểu đóng vỏ DIP, và chữ “C” cuối cùng là kí hiệu cho thương mại(Ngược

SVTH: Phạm Thị Quang


21


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

với chữ “M” là quân sự), AT 89C51-12PC rất thích hợp cho các thử nghiệm của
học sinh, sinh viên
Kí hiệu
Tốc độ
Số chân
Đóng vỏ
Mục đích
AT89C51-12PC 42MHZ
40
DTP
Thương mại
Bảng2.3: Các phiên bản 8051 với tốc độ khác nhau của Atmel
II. DS 12C887
2.1. Đặc trưng / tính năng:
-

Thay thế về thời gian và lịch cho dòng máy tính IBM

-

Nguồn pin tương thích là MC146818B và DS 12C87


-

Nếu nguồn cung cấp bị mất(mất điện) thì hệ thống vẫn hoạt động trong
khoảng thời gian là trên 10 năm.

-

Hệ thống còn chứa đựng các thành phần : Pin lithium, thạch anh và các mạch
hỗ trợ.

-

Bộ đếm giờ, phút, giây, ngày, tháng, năm cho tới năm 2100.

-

Mã nhị phân hay mã BCD(mã chuyển đổi giữa nhị phân và thập phân) diễn
tả về thời gian, lịch và báo giờ(chuông báo).

-

Trong chế độ 12h thì có giờ sáng(AM) và giờ chiều (PM)

-

Tuỳ chọn cài đặt thời gian.

-


Bus thời gian có thể tuỳ chọn giữa Motorola và Intel.

-

Có một chân để chọn các Bus khác nhau
Giao tiếp với phần mền gồm 128 byte nội bộ trong đó có
+ 15 byte – dùng cho thời gian và các tín hiệu điều khiển
+ 113 byte RAM đa mục đích

-

Cho phép lập trình tần số của sóng vuông

-

Tín hiệu ngắt phải tương thích với Bus(IRQ)

-

Có 3 ngắt mền khác nhau cho phép kiểm tra và điều khiển
+ Đặt thời gian báo thức(chuông báo) 1 hoặc 2 lần trong 1 ngày
+ Tỷ lệ về thời gian là từ 122-500 ms
+Cập nhật thời gian theo chu kỳ

-

Thanh ghi thế kỷ

2.2.Mô tả về các chân.
SVTH: Phạm Thị Quang


22


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

- AD0 – AD7:8 đường dữ liệu và địa chỉ
-

NC: Không kết nối

-

Mot: Chế độ chọn Bus

-

CS: Chân nhập Chip RTC

-

AS: Chân chốt địa chỉ

-

R/W: đọc/ viết


-

DS: Chân dữ liệu

-

Reset: Chân reset

-

IRQ: xuất ra yêu cầu ngắt

-

SQW: xuất ra sóng vuông

-

Vcc: nguồn cung cấp chính 5v

-

Gnd: chân nối với đất

2.3. Mô tả
Xung nhịp RAM DS 12C887 được thiết kế để nâng cấp và thay thế trực tiếp cho
DS12C887. Hiện nay có sự tương thích về sự kết hợp thêm phần cứng vào máy tính
cá nhân IBM. Byte thế kỷ nằm ở hai vị trí là địa chỉ 50h,30h. Nó được xem như là
một phát minh mới về máy PC AT. Nguồn pin lithium, tinh thể thạch anh và những

mạch điện bảo vệ tất cả chứa đựng trong 24 chân.
Cung cấp 16 các ứng dụng khác nhau như chức năng không thay đổi thời gian
trong ngày, giờ báo(chuông báo), năm. Chương trình cho phép ngắt, máy phát sóng
vuông và 113 byte RAM tĩnh. Đồng hồ thời gian thực là để nhớ chính xác thời gian
trong ngày và duy trì nó nếu như nguồn cung cấp bị hỏng(mất điện)
2.4. Nguyên tắc hoạt động

SVTH: Phạm Thị Quang

23


 

ĐỒ ÁN TỐT NGHIỆP

KHOA CNTT - ĐHTN

Sơ đồ trong hình 1 đã diễn tả về việc kết nối chân với các khối chức năng bên
trong DS 12C887. Dưới đây là sự diễn tả về chức năng của mỗi nguồn Pin.
2.4.1. Mô tả tín hiệu
- Gnd, Vcc:
Nguồn cung cấp năng lượng tới các thiết bị trên Pin, nguồn vào là 5v. Khi
nguồn 5v được nhập vào ở giữa giới hạn bình thường thì thiết bị hoàn toàn có thể
sử dụng được và dữ liệu có thể được đọc/ viết vào. Khi chân nguồn thấp hơn 4,25v
việc đọc/ viết trở lên khó khăn hơn. Tuy nhiên, chức năng giữ thời gian vẫn không
bị thay đổi bởi chân nguồn vào thấp. Nếu Vcc dưới 3v thì RAM và máy bấm giờ sẽ
chuyển vào trong nguồn năng lượng Pin. Chức năng giữ thời gian duy trì sự chính
xác trong khoảng một phút trên một tháng ở nhiệt độ 25 0C mà không cần đến bất
kỳ một nguồn pin nào nhập vào.

- MOT(lựa chọn chế độ):
Chân MOT cho phép lựa chọn giữa 2 kiểu Bus:
+ Khi kết nối với Vcc thì Bus Motorola được chọn
+ Khi kết nối với chân Gnd hoặc ngắt dòng điện trái thì Bus Intel được lựa
chọn
- SQW(xuất ra sóng vuông):
Chân SQW có thể xuất ra tín hiệu từ 1 trong 13 nhánh được cung cấp bởi 15
trạm bên trong của đồng hồ thời gian thực. Tần suất của chân nguồn SQW có thể bị
thay đổi bởi chương trình của thanh ghi A trong bảng 1. Tín hiệu SQW có thể bật
hoặc tắt bằng cách sử dụng bit SQWE trong thanh ghi B. Tín hiệu SQW không cho
phép nguồn Vcc nhỏ hơn 4,25v.
- DA0 – AD7(địa chỉ trực tiếp đa chức năng hay bus địa chỉ):
Bus đa thành phần được ghi lại vào chân bởi vì thông tin về địa chỉ thời gian và
dữ liệu được chia sẻ như nhau. Địa chỉ hiện tại thì ở phần thứ nhất (phần 1) của chu
kỳ bus và phần 2 của chu kỳ bus giành cho đường dẫn tín hiệu sử dụng cho dữ liệu.
Địa chỉ , dữ liệu đa thành phần không chậm hơn thời gian truy cập của DS 12C887
kể từ khi bus chuyển đổi từ địa chỉ đến dữ liệu. Dữ liệu xuất hiện trong suốt thời
gian RAM truy cập. Địa chỉ phải có giá trị trước khi chân AS/ ALE rời ra. Chốt địa
chỉ của DS 12C887 là từ AD0 – AD6. Dữ liệu nhập vào phải hợp lí và thật ở trong
SVTH: Phạm Thị Quang

24


ĐỒ ÁN TỐT NGHIỆP

 

KHOA CNTT - ĐHTN


suốt phần sau của xung nhịp DS hoặc RD. Một chu kỳ của DS 12C887 xuất ra 8 bit
dữ liệu luôn luôn ở phần sau cùng của xung nhịp đọc/ ghi. Chu kỳ đọc là thiết bị
đầu cuối và bus quay về ở mức trở kháng cao như là trong trường hợp về sự chuyển
đổi định giờ ở Motorola là mức thấp còn ở Intel là mức cao.
- AS:Chân chốt địa chỉ
Xung nhịp nhấp nháy chủ yếu ở trên bus đa thành phần. Cạnh của chân AS/
ALE tách ra là do địa chỉ chốt với DS12C887. Chân tiếp theo xuất hiện trên bus AS
không để ý địa chỉ bị mất, chân CS được xác nhận. Lệnh truy cập thì nên gửi theo
từng cặp.
- DS: Chân dữ liệu
Chân đọc ghi có hai chế độ của hệ điều hành phụ thuộc vào mức độ của chân
MOT. Khi chân MOT kết nối tới Vcc thì bus thời gian của Motorola được chọn.
Trong chế độ DS chắc chắn là xung nhịp ở cuối của mỗi chu kỳ bus thì được gọi là
trường hợp đọc dữ liệu. Trong suốt quá trình chu kỳ đọc thì DS 12C887 là bus 2
chiều. Có xuất hiện 1 vệt dài của DS trong quá trình chu kỳ viết bởi vì DS 12C887
chốt dữ liệu được viết. Khi chân MOT kết nối tới chân Gnd thì bus thời gian của
Intel được chọn.Trong chế độ chân DS được gọi là đọc (RD) nó xác nhận một
khoảng thời gian khi thiết bị DS 12C887 đọc dữ liệu. Tín hiệu RD được định nghĩa
giống như tín hiệu cho phép xuất (OE) trên bộ nhớ.
- R/W: Chân R/W có hai chế độ của hệ điều hành:
+ Chân MOT kết nối với Vcc – Motorola Timming(chế độ thời gian của
Motorola). R/W ở cùng một mức thay thế chu kỳ hiện thời gọi là đọc/viết.
A đọc chu kỳ là sự thay thế cùng với mức cao trên R/W trong khi DS
ở mức cao.
A viết chu kỳ là sự thay thế trong khi R/W ở mức thấp với DS.
+Chân MOT kết nối với chân Gnd – Intel Timming ( chế độ thời gian của
Intel). Tín hiệu R/W hoạt động ở mức thấp gọi là WR. Trong chế độ R/W có cùng
nghĩa giống như tín hiệu cho phép viết trên những RAM có đặc điểm chung giống
nhau.
- CS:


SVTH: Phạm Thị Quang

25


×