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

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 05101089


..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
...............................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
Giáo viên hướng dẫn Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG

3

LỜI CẢM ƠN
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 toá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 toá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

Khối dao động Khối xử lý
trung tâm
Khối điều
khiển
Khối lưu trữ
thời gian thực
Khối nguồn
Khối chuông
Khối hiển thị
Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 6 -

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: f
vdk
= f
thach 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 :
Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 7 -
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 yêu cầu ngắt
SQW – Ngõ ra sóng vuông
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

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

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

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–
Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 11 -
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ờ 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 đ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.
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 – 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 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 2 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.
Bảng 2: chu kỳ ngắt và tần số sóng vuông Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG

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 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 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 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\.
Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 14 -
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\.

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 đè. Ø 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 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ả
Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 15 -
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. 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

Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 16 -
d. Giao tiếp bus với các chế độ định thời

Hình 2. giao tiếp bus với IC Motorola
Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 17 -

Hình 3. Giao tiếp bus với IC Intel 2. tính toán các thông số cần thiết:
Công suất tiêu thụ tối đa : P
D
= 5,5V * 15mA = 82,5mW


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 ngoà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 ngoà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.
Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 19 -
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
ngoà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 …

Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 20 -



Ø EA (truy xuất vùng nhớ ngoài)
EA là một tín hiệu vào có thể ở mức cao hay thấp. Nếu ở mức cao 8051 thi hành
chương trình ở ROM nội, 4K/8K chương trình. Nếu ở mức thấp, chương trình chỉ
được thi hành từ bộ nhớ ngoài. Đối với 8031/8231 EA phải được giữ ở mức thấp vì
chúng không có ROM nội. EA cũng chính là chân nhận điện áp mức cao để nạp
EPROM nội.
Ø ALE (cho phép chốt địa chỉ)
ALE là tín hiệu được xuất ra ở chân 20, rất quen thuộc với những ai đã từng làm
việc với vi xử lý 8085, 8086 của Intel. 8051 dùng ALE để phân kênh cho bus địa chỉ
và bus dữ liệu. Khi port 0 được dùng làm bus dữ liệu và byte thấp của bus địa chỉ –
ALE là tín hiệu dùng để chốt địa chỉ vào thanh ghi chốt bên ngoài trong nữa đầu của
một chu kỳ máy. Sau đó Port 0 sẵn sàng để truy xuất dữ liệu trong nữa chu kỳ còn
lại.
Xung ALE có tần số bằng
1
/
6
lần tần số bộ dao động nội và có thể dùng như một
xung clock cho mục đích nào đó khi hệ thống không làm việc. Nếu tốc độ 8051 là 12
MHz thì tần số xung ALE là 2 MHz. Một xung ALE bị mất khi có một lệnh MOVX
được thi hành.
Ngõ vào dao động nội

Bit Tên Chức năng
P3.0
P3.1
P3.2
P3.3
P3.4

với chân 19 (XTAL1) và 18 (XTAL2). Có thể mắc thêm tụ để ổn định dao động.
Thạch anh 12 MHz thường dùng cho họ MCs-51, trừ IC 80C31BH có thể dùng thạch
anh lên đến 16 MHz. Tuy nhiên, không nhất thiết phải dùng thạch anh mà ta có thể
Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 22 -
D

ghi
chốt dùng mạch dao động TTL tạo xung Clock đưa vào chân XTAL1 và lấy đảo của nó
đưa vào XTAL2.
Ø RST (Reset)
Ngõ vào RST (chân 19) là chân master reset của 8051. Khi nó ở mức cao (trong
khoảng ít nhất 2 chu kỳ máy) các thanh ghi nội được nạp với giá trị tương ứng theo
thứ tự khởi động hệ thống.
Ø Nguồn cung cấp
8051 sử dụng nguồn đơn 5V.

3. CẤU TRÚC CỔNG XUẤT NHẬP
Mạch bên trong của một chân port mô tả ngắn gọn trong hình 5. Khi ghi lên một chân
của cổng, dữ liệu được chốt vào bộ chốt. Chốt lái một transitor thường nối với chân của
cổng. Nhờ đó có thể kéo được 4 tải LS ở các cổng Port 1, 2 , 3 và 8 tải LS ở Port. Lưu ý
Port 0 có điện trở kéo lên, ngoại trừ khi dùng nó với chức năng vừa là bus địa chỉ, vừa là
bus dữ liệu ngoại. Tùy theo đặc tính bên trong của tải mà ta có thể thêm vào điện trở kéo
lên bên ngoài.
Vì lý do này mà bộ nhớ của vi điều khiển 8051 dựa theo cấu trúc Harvard để phân
chia vùng chương trình (code mã lệnh) và dữ liệu. Như đã mô tả ở bảng 3 cả hai vùng mã
lệnh và dữ liệu đều nằm ở bộ nhớ nội. Tuy nhiên cả hai cũng có thể mở rộng ra bộ nhớ
ngoài, có thể lên đến 64Kb cho vùng địa chỉ.
Bộ nhớ nội gồm có ROM nội (chỉ đối với 8051/8052) và RAM ngoại. RAM chia
thành nhiều vùng: vùng dành cho mục đích nào đó, vùng có thể truy xuất bit, các khối
(bank) thanh ghi, và các thanh ghi đặc biệt.
Có hai điều đáng lưu ý ở đây: (a) các thanh ghi và các cổng xuất nhập đều được
phân chia địa chỉ và có thể truy xuất chúng như những vùng khác. (b) stack thường được
phân chia vào RAM nội hơn là vùng nhớ ngoài. Đây là một đặc điểm của vi điều khiển.

Vùng tổng quát
Vùng RAM này chiếm 80 bytes từ địa chỉ 30H đến địa chỉ 7FH. Vùng nhớ 32 bytes bên
dưới cũng có thể được dùng như vùng này mặc dù nó được dùng cho mục đích khác.
Bất kỳ vị trí nào trong vùng này đều có thể truy xuất tự do bằng địa chỉ trực tiếp hoặc
gián tiếp. Ví dụ để đọc nội dung byte nhớ nội của địa chỉ 5FH vào thanh ghi ACC, ta
dùng lệnh sau:
MOV A, 5FH ;
Lệnh này chuyển một byte dữ liệu sử dụng địa chỉ trực tiếp để xác định địa chỉ nguồn
(5FH).
RAM nội cũng có thể được truy xuất bằng địa chỉ gián tiếp thông qua R0 và R1
(chỉ hai thanh ghi này mà thôi). Ví dụ lênh sau sẽ thực hiện công việc giống như ví dụ
trên
MOV R0, 5FH ;
MOV A, @R0 ;
Lệnh đầu tiên nạp giá trị 5FH cho thanh ghi R0. Lệnh thứ hai dùng chuyển dữ liệu được
chỉ ra bởi R0 và thanh ghi tích luỹ (ACC).

Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG

đương sử dụng địa chỉ trực tiếp.
Các ngăn thanh ghi có thể thay đổi bằng cách set lại thanh ghi trạng thái chương trình
(PSW.3 PSW.4) trong chương trình. Giả sử sau khi cho phép sử dụng bank 3 thanh ghi
R5 lúc này có địa chỉ 20H. Lệnh sau ghi nội dung thanh ghi ACC vào vị trí 18H(R3)
MOV R3, A;
5. CÁC THANH GHI CÓ CHỨC NĂNG ĐẶC BIỆT
Hầu hết các thanh ghi nội của các vi điều khiển đều có thể được truy xuất thông qua tên
đã được định nghĩa. Ví dụ INC A.
Các thanh ghi nội của 8051 chiếm một phần của vùng nhớ nội, vì vậy mỗi thanh ghi
đều có một địa chỉ. Các thanh ghi chức năng (FSRs) nằm trong vùng nhớ cao từ 80H đến
FFH. Lưu ý có một số bytes trong vùng này không được định nghĩa. Chỉ có 21 địa chỉ
thanh ghi chức năng được định nghĩa (26 địa chỉ đối với 8052/8032).
Mặc dù có thể truy xuất các thanh ghi chức năng thông qua tên của nó, hầu hết các
thanh ghi này được truy xuất bằng địa chỉ trực tiếp. Một số thanh ghi có thể truy xuất
bằng byte hoặc bit. Trong lập trình phải cẩn thận khi truy xuất bit thông qua byte.
Ví dụ lệnh sau:
SETB 0E0H ;
Đô án môn học 2 GVHD: NGUYỄN VĂN HIỆP
SVTH: LÂM QUÍ LONG
- 25 -
Set bit 0 trong thanh ghi ACC, các bit khác vẫn không thay đổi. Lưu ý địa chỉ của một
bit trong một thanh ghi chức năng luôn được xác định bởi 5 bit cao của địa chỉ thanh ghi
đó. Ví dụ một bit trong thanh ghi P1 (90H hay 10010000B) hay có địa chỉ 9xH hay
10010xxxB.
Thanh ghi trạng thái chương trình (PSW) sẽ được mô tả chi tiết trong phần sau, các
thanh ghi chức năng còn lại được mô tả ngắn gọn và sẽ được mô tả chi tiết trong những
chương sau.
Ø Thanh ghi trạng thái chương trình:
Thanh ghi trạng thái chương trình có địa chỉ 0Dh, chứa các bit trạng thái chương trình.
Các bit trạng thái được mô tả như sau:

+7F +127
8E 142


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status