Tải bản đầy đủ (.docx) (65 trang)

LUẬN VĂN ĐIỀU CHỈNH TỐC ĐỘ VÀ THỜI GIAN CỦA HỆ THỐNG QUẠT DÙNG VI ĐIỀU KHIỂ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 (1.24 MB, 65 trang )

LỜI CAM ĐOAN
1
Khóa luận tốt
nghiệp
LỜI CẢM ƠN
2
Khóa luận tốt
nghiệp
TỪ VIẾT TẮT
ALE
: Address Latch Enable
PSEN : Program Store Enable
DPTR : Data Pointer
PCON : Power Control Register

TMOD
: Timer Mode Register

TCON
: Timer Control Register

IP : Interrupt Priority
Register
IE : Interrupt Enable Register
LED
: Light Emitting Diode
3
MỤC LỤC
M




ĐẦ U 10
1. Lí do chọn đề tài 10
2. Đặ t v ấn đề 10
3. M ụ c tiêu c ủa đề

tài 11
4. Gi ớ i h ạn đề tài 11
N Ộ I

DUNG 12
CHƯƠNG I: GIỚI THIỆU VỀ MỘT VÀI LINH KIỆN SỬ DỤNG TRONG

MẠCH



12
1.1. T ổ ng quan v ề ngôn ng ữ

Assembly 12
1.1.1.Gi ớ i thi ệ u chung 12
1.1.2. M ộ t s ố quy ướ c khi l ậ p trình v ớ i ngôn ng ữ

Assembly 12
1.2. C ấ u trúc chung v ề vi điề u khi ể n

AT89C52 14
1.2.1. Khảo sát sơ đồ chân và chức năng chân


89C52 15
1.2.2. Các thanh ghi có ch ức năng đặc

biệt 17
1.2.3.Các nhóm l ệ nh 20
1.3. Led 7

đoạ n 21
1.3.1. Các khái ni ệm cơ bả n 21
1.3.2. K ế t n ố i v ới vi điề u khi ể n 25
1.4. Led

đơn 25
1.5. Điệ n tr ở 27
1.5.1.Đị nh

ngh ĩa 27
1.5.2. Đơn vị 27
1.5.3. Kí hi ệu và quy

ước 27
1.5.4. Cách đọ c các thông s ố điệ n tr ở 28
1.6. Transistor 29
1.6.1. Đị nh

ngh ĩa 29
1.6.2. Phân lo ạ i transitor 29
1.6.3. Trasistor đượ c s ử d ụ ng trong m ạ ch 30
1.7. T ụ điệ n 31
1.7.1. Đị nh


ngh ĩa 31
1.7.2. Phân lo ạ i t ụ điệ n 32
4
1.7.3. Tính ch ấ t t ụ điệ n 33
1.7.4. T ụ đượ c s ử d ụ ng trong

m ạ ch 34
1.8. C ầ u Diode (diode bán d ẫ n) 35
1.8.1. Đị nh

ngh ĩa 35
1.8.2. Ho ạt độ ng c ủ a c ầ u diode 35
1.9. Phím

nh ấ n 36
CHƯƠNG II. THIẾ T K Ế VÀ THI

CÔNG 37
2.1. Thiết kế 37
2.1.1. Thi ế t k ế ph ầ n c ứ ng 37
2.1.2. Thi ế t k ế ph ầ n

m ề m 45
2.2. Chương trình 54
2.3. Thi công 59
2.3.1. Thi ế t k ế m ạ ch

layout 59
2.3.2. S ả n ph ẩ m th ự c 61

K Ế T LU ẬN VÀ HƯỚ NG PHÁT TRI Ể N C ỦA ĐỀ

TÀI 64
TÀI LI Ệ U THAM

KH Ả O 66
5
DANH MỤC HÌNH
Hình 1.1: Vi điều khiển AT89C52 14
Hình 1.2: Mạch Reset 17
Hình 1.3: Mạch tạo dao động bằng thạch anh 17
Hình 1.4: Led 7 đoạn 21
Hình 1.5: Các chân ra của led 7 đoạn 21
Hình 1.6: Led Anode, Cathode chung 24
Hình 1.7: Sơ đồ vị trí các led 25
Hình 1.8: Led đơn 25
Hình 1.9: Sơ đồ nối chân led đơn 26
Hình 1.10: Điện trở 27
Hình 1.11: Các thông số màu của điện trở 28
Hình 1.12: Transistor 29
Hình 1.13: Các cực của transistor 30
Hình 1.14: Transistor C2383 và hình chú thích 30
Hình 1.15: Transistor A1013 và hình chú thích 31
Hình 1.16: Hình ảnh tụ điện 31
Hình 1.17: Tụ phân cực(tụ hóa) 32
Hình 1.18: Tụ điện không phân cực 32
Hình 1.19: Tụ điện 34
Hình 1.20: Tụ điện 34
Hình 1.21: Tụ điện 35
Hình 1.22: Diode 35

Hình 1.23: Diode 36
Hình 1.24: Nhìn gần một Diode 36
Hình 1.25: Hình ảnh phím nhấn 36
Hình 2.1: Khối nguồn 38
Hình 2.2: Khối phím nhấn 38
Hình 2.3: Khối vi điều khiển 39
Hình 2.4: Khối Led 7 đoạn 40
Hình 2.5: Khối Led đơn 40
Hình 2.6: Khối động cơ 41
Hình 2.7: sơ đồ nguyên lý toàn mạch 43
Hình 2.8: Sơ đồ layout mạch điều khiển 59
Hình 2.9: Sơ đồ mạch layout hiển thị 60
Hình 2.10: Sản phẩm sau khi gia công 61
Hình 2.11: Sản phẩm sau khi gia công 62
Hình 2.12: Mô hình thực 63
DANH MỤC BẢNG
Bảng 1.1: Bảng các quy ước trong ngôn ngữ Assembly 12
Bảng 1.2: Bảng thanh ghi PCON 20
Bảng 1.3: Bảng liệt kê các lệnh trong 89C52 20
Bảng 1.4: Bảng mã hiển thị led 7 đoạn có Anode chung (các led đơn sáng ở mức 0) 22
Bảng 1.5: Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung (các led đơn

sáng ở mức1) 23
1. Lí do chọn đề tài
MỞ ĐẦU
Quạt là một vật dụng không thể thiếu trong đời sống của con người.Nó là một thiết bị
dẫn động bằng điện được sử dụng khá phổ biến để tạo ra luồng gió nhằm phục vụ lợi ích
cho người sử dụng. Nó làm giảm sức nóng của cơ thể, hạ nhiệt, giúp con người cảm thấy
mát mẻ, thoải mái, thông gió, thoát khí, làm mát, hoặc bất kỳ tác động liên quan đến không
khí trong môi trường sống.

Hiện nay, trong các nhà máy, xí nghiệp, công ty, người ta thường sử dụng hệ thống
quạt gồm nhiều quạt mắc nối tiếp với nhau.Mỗi quạt có chế độ các nút bấm với các tốc độ
nhanh, vừa, chậm phụ thuộc vào nhu cầu sử dụng của con người.
Cùng với sự phát triển của khoa học kĩ thuật, công nghệ điện tử cũng đang có những
bước phát triển vượt bậc trong những năm gần đây. Trong đó công nghệ vi điện tử đã có
những bước phát triển nổi trội. Những bộ vi xử lí nhanh chóng ra đời đã không ngừng cải
thiện và phát triển về mặt kiến trúc cũng như chức năng và hiệu quả sử dụng.Vì vậy, công
việc của chúng ta là phải tìm cách khai thác triệt để các tính năng của vi xử lí để góp phần
vào công cuộc phát triển công nghệ hiện nay.
Trong bài khóa luận này, chúng em đã khai thác tính năng của vi điều
khiểnAT89C52 đã được học trong chuyên ngành của mình ứng dụng vào hệ thống quạt để
điều khiển tốc độ và thời gian một cách tự động và tố ưu nhất nhằm phục vụ đời sống của
con người trong thời đại công nghệ.
Chính vì vậy em đã chọn đề tài kháo luận “ĐIỀU CHỈNH TỐC ĐỘ VÀ THỜI
GIAN CỦA HỆ THỐNG QUẠT SỬ DỤNG VI ĐIỀU KHIỂN 8051”.
2. Đặt vấn đề
Trong đời sống sinh hoạt hằng ngày, việc bật tắt các thiết bị điện nhằm đáp ứng nhu
cầu của con người là những hoạt động tất yếu và thường xuyên. Nhiều thiết bị điện muốn
hoạt động hoặc ngừng hoạt động, không còn cách nào khác là phải nhấn công tắc điện để
cung cấp nguồn điện hoặc ngắt nguồn điện cho thiết bị. Điều này nhiều lúc rất thụ động và
bất tiện cho người sử dụng, từ những nhược điểm đó chúng em đã có một ý tưởng thiết kế
một thiết bị có khả năng bật/tắt tùy theo nhu cầu. Là một hệ thống có khả năng hẹn giờ,

định thời gian cho thiết bị một cách tự động tùy theo ý muốn của người sử dụng.
Quạt máy được thiết kế 3 phím nhấn ứng với 3 tốc độ nhanh, chậm, vừa tùy vào nhu
cầu sử dụng của con người.Trong một nhà máy hoặc xí nghiệp, người ta thường sử dụng hệ
thông quạt gồm nhiều quạt mắc nối tiếp với nhau.Vấn đề đặt ra ở đây là việc điều chỉnh
quạt, ở nhiều thời điểm ứng với nhiều thời gian cũng như nhu cầu sử dụng thay đổi, việc
điều chỉnh quạt thường gây cản trở công việc cũng như mất thời gian của người làm việc.
Bên cạnh đó, khoa học kĩ thuật không ngừng cho ra đời nhiều công nghệ và thiết bị tự động

hóanhằm phục vụ tối đa cho lợi ích của người sử dụng. Để bắt kịp nhịp phát triển của xã hội
thì đòi hỏi phải cho ra đời một thiết bị tự động hóa cho hệ thống quạt, có nghĩa là quạt sẽ tự
động thay đổi tốc độ sao cho phù hợp với nhu cầu sinh hoạt của người sử dụng.
3. Mục tiêu của đề tài.
Hoàn thành được hệ thống mạch bật/tắt quạt tự động với vận tốc vào thời gian được

định trước. Mạch phải đảm bảo được:
• Thời gian hiển thị rõ ràng, chính xác.
•Vận tốc được biểu thị các màu khác nhau của Led đơn sáng/tắt đồng thời với hệ

thống
quạt.
4. Giới hạn đề tài.
Do chi phí và thời gian có hạn nên sản phẩm chỉ dừng lại ở mô hình và vẫn tồn tại

một số giới hạn sau:
• Thời gian bật/tắt chưa linh động, chỉ dùng lại ở thời gian được cài đặt sẵn
• Mỗi lần sử dụng vẫn phải bấm nút, chưa hiện thực hóa bằng điều khiển từ xa.
NỘI DUNG
CHƯƠNG I: GIỚI THIỆU VỀ MỘT VÀI LINH KIỆN SỬ DỤNG
TRONG MẠCH
1.1. Tổng quan về ngôn ngữ Assembly
1.1.1.Giới thiệu chung
Asembly là một ngôn ngữ lập trình cấp thấp gần với ngôn ngữ máy, chương trình sau
khi viết bằng assembly cần được chuyển đổi qua mã lệnh (hay còn gọi là mã máy) của vi
điều khiển, quá trình chuyển đổi được thực hiện bằng chương trình dịch Assembler. Các mã
lệnh sau đó được nạp vào ROM của vi điều khiển để thực hiện chương trình. Chương trình
dịch Assembler được dùng phổ biến hiện nay là chương trình Macro Assembler sử dụng
trên Dos. As
Để soạn thảo chương trình có thể sử dụng Notepal hoặc bất cứ chương trình soạn

thảo có sử dụng bộ kí tự chuẩn ASCII và lưu tên đuôi như sau: "tên.asm". Ngoài ra có thể
sử dụng các phần mềm hỗ trợ soạn thảo dành riêng cho vi điều khiển đã tích hợp sẵn
chương trình dịch Assembler.
1.1.2. Một số quy ước khi lập trình với ngôn ngữ Assembly.
a) Khi giới thiệu các câu lệnh viết bằng hợp ngữ, các câu lệnh cần được bao quát tất
cả

các trường hợp do đó có một số qui ước khi thiết lập cú pháp các lệnh như sau:
Bảng 1.1: Bảng các quy ước trong ngôn ngữ Assembly
Tên qui
ước
Tên qui ước đại diện cho
Ví dụ Lệnh
sử
dụng tên qui
ước
Ví dụ khi sử dụng
Rn
Các thanh ghi ở các Bank thanh ghi
Khi sử dụng thay n bằng các số từ 0 đến
7:
R0, R1, R2, R3, R4, R5, R6, R7
Mov A,Rn Mov A,R2
#data
Dữ liệu 8 bit, khi sử dụng data có thể

viết dưới dạng :
• số nhị phân (Vd: #00110011b)
• số thập lục phân (Vd: #0A6H)
Mov A,#data Mov A,#20H

• số thập phân (Vd: #21)
Direct
Ô nhớ có địa chỉ là direct, direct được
thay bằng địa chỉ từ 00H đến FFH khi

viết chương trình.
Mov A,direct Mov A,30H
@Ri
Ô nhớ có địa chỉ gián tiếp, đây là địa

chỉ của một ô nhớ, địa chỉ này được xác

định gián tiếp bằng giá trị của thanh ghi

R0 hoặc R1 (chỉ được sử dụng hai thanh
ghi R0 hoặc R1 để lưu giá trị này)
Mov A,@Ri Mov A,@R1
#data: là giá trị cần thiết lập trong một ô nhớ, data được ghi trong chương trình

assembly với qui định về cách viết số như ở bên dưới, các số này sau đó được trình biên

dịch chuyển thành các số nhị phân tương ứng.
Ví dụ: Khi ghi #95H đây là giá trị được thiết lập trong từng bit của ô nhớ.( các bit của ô

nhớ có giá trị là 10010101).
Còn khi ghi 95H thì hiểu đây là ô nhớ có địa chỉ là 95H.
Đối với các ô nhớ được định tên bằng kí hiệu chẳng hạn P0,P1,A,B,TH0 thì được
sử dụng tên đó thay cho địa chỉ cần sử dụng.
Ví dụ: hai lệnh sau đây là như nhau Mov TH0,#43H và Mov 8CH,#43H vì thanh ghi
TH0 có địa chỉ là 8CH.

b) Quy định về cách viết số.
Trình biên dịch Assembler cho phép sử dụng các loại số sau trong chương trình:
• Số Binary (số nhị phân): Số nhị phân khi viết cần thêm phía sau giá trị bằng kí tự

"B".
Các số này phải là số nhị phân 8 bit. Khi giá trị cần thiết lập là các giá trị cần cho

từng
bit trong byte thì dùng cách biểu diễn bằng số nhị phân
Ví dụ: khi cần thiết lập giá trị cho một byte mà các bit 0,1 xen kẽ nhau thì nên biểu

diễn bằng số 01010101B cho dễ kiểm tra.
• Hexadecimal (số thập lục phân-ghi tắt là hex): số hex khi viết cần thêm phía sau

giá trị
bằng kí tự "H" .Nếu sô hex bắt đầu là A,B,C,D,E,F thì cần thêm số "0" phía trước
để trình biên dịch nhận biết được đó là số Hex, không lầm giá trị số với các kí tự chữ

khác. Khi sử dụng các giá trị dành riêng cho một công việc nào đó, việc ghi nhớ bằng số

nhị phân rất rắc rối và khó nhớ, khi đó số hex được sử dụng, vì số hex là cách viết ngắn

gọn của số nhị phân.
Ví dụ: 69H, 0A3H
• Số Decimal (số thập phân): Số thập phân khi viết không cần cần thêm kí tự hoặc

thêm
sau giá trị bằng kí tự "D". Khi tính toán: cộng trừ nhân chia, nếu sử dụng số nhị

phân

hoặc số hex sẽ gây khó khăn cho người viết chương trình, trong trường hợp này số

thập
phân được sử dụng
Ví dụ: 45, 27, 68D
Chú ý: địa chỉ của các ô nhớ, của các bit nhớ, địa chỉ của ROM luôn được viết

bằng số thập lục phân và cũng tuân theo qui tắc viết số như phía trên.
c) Kết thúc chương trình.
Sau khi chương trình hoàn tất phải kết thúc bằng câu lệnh END .Các câu lệnh này

báo cho trình biên dịch biết phần kết thúc của chương trình, trình biên dịch bỏ qua tất cả

các câu lệnh sau lệnh END
1.2. Cấu trúc chung về vi điều khiển AT89C52
VĐK 89C52 mà chúng ta sử dụng có những đặc điểm sau:
• 4KB ROM bên trong
• 256 Byte ngoài
• 4 Port xuất nhập dữ liệu I/O
• Giao tiếp nối tiếp
• 64 KB vùng nhớ mã ngoài
• 64 KB vùng nhớ dữ liệu ngoài
• Xử lý Boolean
Hình 1.1: Vi điều khiển AT89C52
1.2.1. Khảo sát sơ đồ chân và chức năng chân 89C52
Sơ đồ chân của 89C52 mô tả tóm tắt chức năng của từng chân như sau: 32 trong số 40
chân của 89C52 có công dụng xuất/nhập. 32 chân trên được chia thành 4 port 8 bit, 8 đường
cho mỗi port có thể xử lí như 1 đơn vị giao tiếp với các thiết bị song song như máy
in…hoặc mỗi đường có thể hoạt động giao tiếp với một thiết bị đơn bit như chuyển mạch,
LED, BJT, FET cuộn dây, động cơ loa…

a) Port 0
PORT0 (các chân từ 32 đến 39) có 2 công dụng.Trong các thiết kế có tối thiểu thành
phần, PORT0 được sử dụng làm nhiệm vụ xuất/nhập.Trong các thiết bị lớn hơn có bộ nhớ
ngoài, PORT0 trở thành bus địa chỉ và bus dữ liệu đa hợp.
b) Port 1
PORT1 (các chân từ 1 đến 9) chỉ có một công dụng là xuất/nhập. Các chân của
PORT1 được kí hiệu là P1.0,P1.1,…,P1.7 và được dùng để giao tiếp với thiết bị bên ngoài
khi có yêu cầu. Không có chức năng nào khác gán cho các chân của PORT1, nghĩa là chúng
chỉ được sử dụng để giao tiếp với các thiết bị ngoại vi.
c) Port 2
PORT2 (các chân từ 21 đến 28) 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 bú đì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 bị có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài.
d) Port 3
PORT3 (các chân từ 10 đến 17) có 2 công dụng.Khi không hoạt động xuất/nhập, các
chân của PORT3 có nhiều chức năng riêng (mỗi chân chức năng riêng liên quan đến các
đặc trưng cụ thể của 8051).
• P3.0: (chân số 10) đưa vào tín hiệu nhận tin nối tiếp RxD
• P3.1: (chân số 11) đưa ra tín hiệu truyền tin nối tiếp TxD

I
¯
¯
N
¯
¯
T
¯
¯
0

¯
hay

P3.2:

(chân

số

12)

tín

hiệu

vào

gây

ngắt

0

của

VĐK

I
¯
¯

N
¯
¯
T
¯
¯
1
¯
hay

P3.3:

(chân

số

13)

tín

hiệu

vào

gây

ngắt

1


của

VĐK
•T0 hay P3.4: (chân số 14) tín hiệu vào đếm cho định thời/đếm 0 cho VĐK

8051/8052.
•T1 hay P3.5: (chân số 15) tín hiệu vào đếm cho định thời/đếm 1 cho VĐK

8051/8052.

¯
W
¯
¯

¯
R
¯
hay

P3.6:

(chân

số

16)

để


đưa

tín

hiệu

ghi

dữ

liệu

vào

bộ

nhớ

ngoài.

¯
R
¯
¯
D
¯
hay

P3.7:


(chân

số

17)

để

đưa

tín

hiệu

đọc

dữ

liệu

từ

bộ

nhớ

ngoài.
• T2 hay P1.0: (chân số 1)tín hiệu vào đếm cho Timer2/ Counter2 cho VĐK 8052.
• T2EX: (chân số 2) tín hiệu vào gây ngắt 2 của VĐK 8052.
e)

Chân

cho

phép

bộ

nhớ

chương

trình

P
¯
¯

¯
S
¯
E
¯
¯

N
¯
¯
89C52 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


P
¯
¯

¯
S
¯
E
¯
¯

N
¯
¯



tín

hiệu

xuất

trên

chân

29.Đây




tín

hiệu

điều

khiển

cho

phép

truy

suất

bộ
nhớ chương trình ngoài, dùng để đưa tín hiệu điều khiển đọc bộ nhớ chương trình ROM
ngoài.
Tín

hiệu

P
¯
¯

¯

S
¯
E
¯
¯

N
¯
¯



logic

0

trong

suốt

thời

gian

tìm

nạp

lệnh.Khi


thực

thi

1
chương

trình chứa



ROM

nội,

P
¯
¯

¯
S
¯
E
¯
¯

N
¯
¯


được

duy

trì



logic

không

tích

cực

(logic

1).
f) Chân cho phép chốt địa chỉ ALE
89C52 sử dụng chân 30, chân xuất tín hiệu cho phép chốt địa chỉ ALE để giải đa hợp
bus dữ liệu và bus địa chỉ. 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 xung clock cho phần còn lại của hệ thống. Nếu
mạch dao động có tần số 12MHz, tín hiệu ALE có tần số 20MHz. Ngoại lệ duy nhất là
trong thời giant hi lệnh MOVX, 1 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 89C52 có
EPROM này.
g)
Chân


truy

xuất

ngoài

E
¯
¯

¯
A
¯
Ngõ vào này (chân 31) có thể được nối với 5V (logic1) hoặc với GND (logic0).Nếu
chân này nối lên 5V, 8051 thực thi chương trình trong ROM nội (chương trình nhỏ hơn

4K/8K).Nếu chân này nối với GND chương trình cần thực thi chứa ở bộ nhớ ngoài.Các
phiên

bản

EPROM

của

8051

còn

sử


dụng

chân

E
¯
¯

¯
A
¯

làm

chân

nhận

điện

áp

cấp

điện

21V

cho

việc lập trình EPROM nội.
h) Chân Reset (RST)
Ngõ vào RST (chân số 9) là ngõ vào xóa chình của 89C52 dùng để thiết lập lại trạng

thái ban đầu cho hệ thống hay gọi là reset hệ thống. Khi ngõ vào này được treo ở logic1 tối
thiểu 2 lần chu kì máy, các thanh ghi bên trong của 89C52 được nạp các giá trị thích hợp

cho việc khởi động lại hệ thống.
Hình 1.2: Mạch Reset
i)
Các chân Xtal1 và Xtal2
Mạch dao động bên trong chip được ghép với thạch anh bên ngoài ở 2 chân XTAL1 và

XTAL2 (chân 18 và 19).Tần số danh định của thạch anh là 12 MHz cho hầu hết các chip.
Hình 1.3: Mạch tạo dao động bằng thạch anh
1.2.2. Các thanh ghi có chức năng đặc biệt
Các thanh ghi nội của 89C52 đượ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 89C52 vì chip này có rất nhiều
thanh ghi. Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức năng đặc biệt SFR

chiếm phần trên của RAM nội từ địa chỉ 80H đến FFH.
Lưu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ có
21 địa chỉ được định nghĩa.
a) 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 2 số 8bit không dấu chứa trong A và B và chứa kết quả 16
bit vào cặp thanh ghi B:A (thanh chứa A cất byte thấp và thanh ghi B cất byte cao).
Lệnh chia DIV AB chia A và B, thương số cất trong thanh chứa A và số dư cất trong
thanh ghi B. Thanh ghi B còn được xử lí như một thanh ghi nháp. Các bit được định địa chỉ

của thanh ghi B có địa chỉ từ F0H đến F7H.
b) Con trỏ stack
Con trỏ stack SP là một thanh ghi 8bit ở địa chỉ 81H. SP chứa địa chỉ của dữ liệu hiện
đang ở đỉnh của stack. Các lệnh lien quan đến stack bao gồm cả lệnh đua dữ liệu vào và
lệnh lấy dữ liệu ra khỏi stack. Vùng của stack được giữ trong RAM nội và được giới hạn
đến các địa chỉ truy xuất bởi kiểu định địa chỉ gián tiếp.
c) Con trỏ dữ liệu DPTR
Con trỏ dữ liệu DPTR được dùng để truy xuất bộ nhớ chương trình ngoài hoặc bộ nhớ
dữ liệu ngoài. DPTR là thanh ghi 16bit có địa chỉ là 82H (byte thấp) và 83H (byte cao).
d) Các thanh ghi PORT
Các PORT xuất nhập của 89C52 bao gồm PORT0 tại địa chỉ 80H, PORT1 tại địa chỉ
90H, PORT2 tại địa chỉ A0H và PORT3 tại địa chỉ B0H. Các PORT0, 2 và 3 không được
dùng để xuất nhập nếu ta sử dụng them bộ nhớ ngoài hoặc có 1 số đặc tính đặc biệt của
89C52 được sử dụng (ngắt, port nối tiếp…). P2.1 đến P1.7, ngược lại, luôn luôn là các
đường xuất nhập đa mục đích hợp lệ. Tất cả các PORT đều được định địa chỉ từng bit nhằm
cung cấp các khả năng giao tiếp mạnh.
e) Các thanh ghi định thời
89C52 có 2 bộ đếm/định thời (Timer/Couter) 16bit để đị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, buyet
cao), bộ định thời 1 có có địa chỉ 8BH (TL1, buyte thấp) và 8DH (TH1, byte cao).
Hoạt động của bộ định thời được thiêt lập bởi thanh ghi ở chế độ định thời TMOD ở
địa chỉ 89H.Và thanh ghi điều khiển định thời TCON ở địa chỉ 88H. Chỉ có TCON được
định địa chỉ chỉ từng bit.
f) Các thanh ghi của PORT nối tiếp
Bên trong 89C52 có 1 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.
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 ở địa chỉ 98H, thanh ghi này được định chỉ từng bit.
g) Các thanh ghi ngắt
89C52 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 hóa khi mạch reset hoạt động và sau đó được cho phép bằng cách ghi vào thanh ghi
cho phép ngắt IE ở địa chỉ B8H. Cả 2 thanh ghi này đều được định địa chỉ bằng từng bước.
h) Thanh ghi điều khiển nguồn
Thanh ghi điều khiển nguồn PCON có địa chỉ 87H chứa các bit điều khiển. Các bit
điều khiển nguồn, nguồn giảm PD và nghỉ IDL, hợp lệ trong tất cả các chip thuộc họ MCS-
51. PCON không được định địa chỉ bit.
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 các ứng dụng của người sử dụng.
Bảng 1.2: Bảng thanh ghi PCON
Bit Kí hiệu Mô tả
7
SMOD
Bit tăng gấp đôi tốc độ baul, bit này khi set làm cho tốc độ baul tăng ở

các chế độ 1,2 và 3 của port nối tiếp
6 -
Không định nghĩa
5 -
Không định nghĩa
4 -
Không định nghĩa
3
GF1 Bit cờ đa mục đích 1
2
GF0 Bit cờ đa mục đích 2
1
PD
Nguồn giảm; thiết lập để tích cực chế độ nguồn giảm, chỉ ra khỏi
chế

độ bằng reset
0
IDL
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. Các nhóm lệnh
Các lệnh trong 89C52 được chia thành 5 nhóm lệnh: nhóm lệnh logic, nhóm lệnh số

học, nhóm lệnh chuyển dữ liệu, nhóm lệnh thao tác trên bit, nhóm lệnh rẽ nhánh.
Bảng 1.3: Bảng liệt kê các lệnh trong 89C52
Lệnh số học Lệnh logic
Lệnh chuyển
dữ liệu
Lệnh thao tác
trên bit
Lệnh rẽ nhánh
ADD A, source ANL A, source MOV A, source CLR C ACALL addr11
ADD A, #data ANL A, #data MOV A, #data CLR bit LCALL addr16
ADDC
A, source
ANL
direct, A
MOV dest, A SETB C RET
ADDC A, #data ANL
direct, #data
MOV
dest, source
SETB bit RET1
SUBB A, source ORL A, source MOV

dest, #data
CPL C AJMP addr11
SUBB A, #data ORL A, #data MOV
DPTR, #data16
CPL bit LIMP addr16
INC A ORL direct, A
MOVC

A,@A+DPTR
ANL C,bit SJMP rel
INC source ORL
direct, #data
MOVC

A,@A+PC
ANL C,/bit JMP
@A+DPTR
DEC A XRL A, source MOVX A,@Ri ORL C,bit JZ rel
DEC source XRL A, #data MOVX ORL C,/bit JNZ rel
A,@DPTR
INC DPTR XRL direct, A MOVX @Ri,A MOVC,bit CJNE
A,direct,rel
MUL AB XRL
direct,#data
MOVX
@DPTR,A
MOV bit, C CJNE
A,#data,rel
DIV AB CLR A PUSH direct JC rel CJNE
Rn,#data,rel

DA A CPL A POP direct JNC rel CJNE
Ri,#data,rel
RL A XCH A, source JB bit,rel DJNZ Rn,rel
RLC A XCHD A,@Ri JNB bit,rel DJNZ direct,rel
RR A JNB bit,rel NOP
RRC A
1.3. Led 7 đoạn
1.3.1. Các khái niệm cơ bản
• Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm
một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7
đoạn.

Hình 1.4: Led 7 đoạn Hình 1.5: Các chân ra của led 7 đoạn
• 8 led đơn trên led 7 đoạn có Anode (cực +) hoặc Cathode (cực -) được nối chung với
nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện. 8 cực còn lại
trên mỗi led đơn được đưa thành 8 chân riêng.
• Led 7 đoạn có Anode (cực +) chung, đầu chung này được nối với +Vcc, các chân
còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tón
hiệu đặt vào các chân này ở mức 0.
• Led 7 đoạn có Cathode (cực -) chung, đầu chung này được nối xuống Mass, các chân
còn lại dùng để điều khiển trạng thái sáng tắt của các Led đơn, Led chỉ sáng khi tín
hiệu đặt vào các chân này ở mức 1.
• Vì led 7 đoạn chứa bên trong nó có các Led đơn, do đó khi kết nối cần đảm bảo dòng
qua mỗi Led đơn trong khoảng 10mA-20mA để bảo vệ Led. Nếu kết nối với nguồn
5V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều khiển.
Bảng 1.4: Bảng mã hiển thị led 7 đoạn có Anode chung (các led đơn sáng ở mức 0)
Số hiển thị trên led 7
đoạn
Mã hiển thị led 7 đoạn dạng
nhị phân

Mã hiển thị led 7 đoạn dạng thập
lục phân
h g f e d c b a
0
1 1 0 0 0 0 0 0 C0
1
1 1 1 1 1 0 0 1 F9
2
1 0 1 0 0 1 0 0 A4
3
1 0 1 1 0 0 0 0 B0
4
1 0 0 1 1 0 0 1 99
5
1 0 0 1 0 0 1 0 92
6
1 1 0 0 0 0 1 0 82
7
1 1 1 1 1 0 0 0 F8
8
1 0 0 0 0 0 0 0 80
9
1 0 0 1 0 0 0 0 90
A
1 0 0 0 1 0 0 0 88
B
1 0 0 0 0 0 1 1 83
C
1 1 0 0 0 1 1 0 C6
D

1 0 1 0 0 0 0 1 A1
E
1 0 0 0 0 1 1 0 86
F
1 0 0 0 1 1 1 0 8E
-
1 0 1 1 1 1 1 1 BF
Bảng 1.5: Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung (các
led

đơn sáng ởmức 1).
Số hiển thị trên led 7
đoạn
Mã hiển thị led 7 đoạn dạng
nhị phân
Mã hiển thị led 7 đoạn dạng thập
lục phân
0
0 0 1 1 1 1 1 1 3F
1
0 0 0 0 0 1 1 0 06
2
0 1 0 1 1 0 1 1 5B
3
0 1 0 0 1 1 1 1 4F
4
0 1 1 0 0 1 1 0 66
5
0 1 1 0 1 1 0 1 6D
6

0 1 1 1 1 1 0 1 7D
7
0 0 0 0 0 1 1 1 07
8
0 1 1 1 1 1 1 1 7F
9
0 1 1 0 1 1 1 1 6F
A
0 1 1 1 0 1 1 1 77
B
0 1 1 1 1 1 0 0 7C
C
0 0 1 1 1 0 0 1 39
D
0 1 0 1 1 1 1 0 5E
E
0 1 1 1 1 0 0 1 79
F
0 1 1 1 0 0 0 1 71
-
0 1 0 0 0 0 0 0 40

Hình 1.6: Led Anode, Cathode chung
Hình 1.7: Sơ đồ vị trí các led
1.3.2. Kết nối với vi điều khiển
Phần cứng được kết nối với 1 Port bất kì của vi điều khiển, để thuận lợi cho việc xử lí về
sau phần cứng nên được kết nối như sau: Px.0 nối với chân a, P1.x nối với chân b, lần lượt
theo thứ tự cho đến Px.7 nối với chân h. Dữ liệu xuất ra có dạng nhị phân như sau:hgfedcba.
1.4. Led đơn
Led (viết tắt của Light Emitting Diode, có nghĩa là điốt phát quang) là các điôt có

khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại. Cũng giống như điốt, Led được cấu
tạo từ một khối bán dẫn loại p ghép với một khối bán dẫn loại n.
Hình 1.8: Led đơn
Các chân của led đơn được nối với AT89C52 theo sơ đồ:

Hình 1.9: Sơ đồ nối chân led đơn
Với đèn Led siêu sáng:
Điện áp sử dụng theo màu sắc như sau:
• Led đỏ, vàng và Led xanh lá: 1.7-2 volts
• Led xanh và Led trắng: 3.5 - 4 volts
Dòng định mức qua Led: 10-20mA cho đa số các Led.
 Cách tính toán điện trở hạn cho dòng Led
Nếu chúng ta sử dụng nguồn 3V thì không cần điện trở mà có thể lắp trực tiếp nhưng
nếu cho nguồn lớn hơn 3V thì phải có thêm 1 con điện trở hạn cho dòng Led.
Áp dụng nguyên lý mạch điện vào tính toán điện trở này như sau:
R=
V
CC
–V
Led
I
Led
Với: V
Led
là điện áp trên Led phát quang.
I
Led
là dòng điện áp định mức cho Led
Dựa vào công thức trên ta sẽ tính được giá trị điện trở hạn cho
Led.


Trong hệ thống ta dùng:
Led màu vàng, đỏ và xanh lá với V
Led
=1.7V, I
Led
=10mA và V
cc
=5V thì điện trở hạn

có giá trị:

×