§å ¸ n m«n häc : Vi xö lý
GV HD : T RÇ N V¡ N H¹NH
Sinh
viªn:
§INH
NGäC
C¦êNG
1
Líp:
§L
-
§§T3
BỘ LAO ĐỘNG TH
Ư
ƠNG BINH VÀ XÃ HỘI
TR
Ư
ỜNG ĐẠI HỌC S
Ư
PHẠM KỸ THUẬT NAM ĐỊNH
KHOA: ĐIỆN - ĐIỆN TỬ
-
§§T3
§å ¸ n m«n häc : Vi xö lý
GV HD : T RÇ N V¡ N H¹NH
PHẦN I. GIỚI THIỆU VỀ ĐỀ T
À
I
LỜI NÓI ĐẦU
Trong nhiều
lĩ
nh vực sản xuất công nghiệp h
i
ện nay, nhất là ngành công
Nghiệp luyện k
i
m, chề b
i
ến
t
hực phẫm vấn đề đo và khống chế nhiệt độ đặc biệt
đ
ư
ợc chú
t
rọng đến v
ì
ợc trong quá trình
học tập ở
t
r
ư
ờng sẽ đ
ư
ợc đánh giá qua đợt bảo vệ đồ án môn học. Vì vậy chúng em
cố gắng tận dụng
tất
cả những kiến
t
hức đã học ở tr
ư
ờng cùng với sự tìm tồi ngh
i
ên
cứu, để có thể hoàn thành
t
ố
t
l
uận văn này. Những sản phẫm những kế
t
quả
đạt
đ
ư
ợc ngày hôm nay
I. ĐẶT VẤN ĐỀ
PHẦN II: NỘI DUNG
CH
Ư
ƠNG 1:DẪN NHẬP
Ngày nay vớ
i
sự phát triển của công nghiệp vi điện tử, kỹ thuật số các
hệ
thống điều khiển dần dần đ
ư
ợc tự động hóa. Với những kỹ thuậ
t
tiên
ti
ến nh
−
vi xử
lí, vi mạch số đựơc ứng dụng vào lỉnh vực điều khiển, thì các hệ thống điều khiển
cơ kh
í
thô sơ, vớ
i
tốc độ xử
lí
chậm chạp
ít
chính xác đ
ư
ợc
tì
nh trạng làm việc của
các yêu cầu. Và có những xử
l
ý kịp thời
t
ránh đ
ư
ợc những h
ư
hỏng và sự cố có
t
hể
xảy ra. Để đáp ứng đ
ư
ợc yêu cầu đo nhiệt độ
t
ự động, thì có nhiều ph
−
ơng pháp để
thực hiện, nghiên cửu khảo sát vi điều khiển 8051 nhóm thực hiện nhận thấy rằng:
ứng dụng vi điều khiển 8051 vào việc đo và khống chế nhiệt độ tự động là ph
−
ơng
pháp tối
ư
u nhất. Đồng đ
−
ợc sự đồng ý của khoa Điện Tr
−
−
ng ch
ỉ
giải quyết đ
−
ợc một số vấn đề sau:
- Thiết kế mạch đo nhiệt độ trong phòng
- Thiết kế 1 hệ thống thu thập nhiệt độ phòng gồm 1 vi điều khiển master và 1
vi điều khiển slave.
- Viế
t
ch
−
ơng trình cho vi điều khiển 8051 để đáp ứng các yêu cầu trên
III. MỤC ĐÍCH NGHIÊN CỨU
Mc ớch tr
c ht khi thc hin
ti
ny l hon t
t
ch
ng trỡnh mụn
hc iu kin ra
t
r
ng. C
t
i
nhng kin
t
hc ó
c hc
t
r
ng, ng th
i
phỏt huy tớnh sỏng to, kh
nng gii quyt mt vn theo yờu cu
t
ra. V õy cng
l
dp chỳng em
t
khng nh mỡnh tr
c khi ra tr
ng tham gia vo cỏc hot ng sn xut ca xó
hi.
CH
NG 2: GII THIU CHUNG V B VI IU KHIN
I. GIớI THIệU
ti
ến hành đóng mở một cơ cấu nào đó. Trong các
t
h
i
ếh
bị
điện và điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển hoạt động của
TV, máy giặt, đầu đọc laser, điện thọai, 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, dây chuyền tự động. Các hệ thống càng
thông minh
t
h
ì
vai trò của hệ vi điều khiển càng quan trọng.
II. LịCH Sử PHáT TRIểN CủA Bộ VI ĐIềU KHIểN :
Bộ vi điều khiển thực ra, là một
l
oạ
i
vi xử
lí
trong
t
ập hợp các bộ vi xử
l
để xử
lí
ch
ơng trình theo mộ
t
trình tự, còn
tất
cả bộ phận phụ trợ khác cần thiết nh
:
bộ nhớ dữ liệu , bộ nhớ ch
ơng trình , bộ
chuển đổi AID, khối điều khiển, khối hiển thị, điều khiển máy in,hối đồng hồ và
lịc
h là những linh kiện nằm ở bên ngoài đ
ợc nối vào bộ vi xử lí.
Mãi đến năm 1976 công
t
y INTEL (Interlligen-El
i
ctronics). Mới cho ra đời bộvi
điều khiển đơn chip đầu tiên
t
rên thế giới với
t
ên gọi 8048. Bên cạnh bộ xử
em-48).Đến năm 1980 công
t
y INTEL cho ra đời
t
hế hệ thứ
hai của bộ vi điều khiển đơn ch
i
p với tên gọi 8051. Và sau đó hàng loạt các vi điều
khiển cùng
l
oạ
i
với 8051 ra đời và hình
t
hành họ vi điều khiển MCS-51 . Đến nay
họ vi điều khiển 8 bit MCS51 đã có đến 250 thành v
i
ên và hầu hế
t
các công
t
y hàng
dẫn hàng đầu thế giới chế
t
ạo. Đứng đầu là công ty INTEL và rấtnhiều công
t
y khác
nh
p
- 64KB không gian bộ nhớ ch
ơng
t
r
ì
nh mở rộng
- 64 KB không gian bộ nhớ dữ
li
ệu mở rộng
- một bộ xử
lí
luận
lí
(thao tác trên các bit đơn)
- 210 bi
t
đ
ợc địa chỉ hóa
- bộ nhân
/
chia 40s
2.CấU TRúC BÊN TRONG CủA 8051
/
8031
Hình 2.1 Cấu trúc bên trong của 8051/
Nhiệm vụ các khối
- CPU: thực hiện các phép toán số học và
(
RD
)
XTAL
XTAL1
+ Khi PSEN= 0: cho phép truy suất bộ nhớ ngoài
+ Khi PSEN= 1: cho phép truy suất bộ nhớ trong
- EA: dùng để truy suất bộ nhớ dữ
li
ệu hoặc bộ nhớ ch
ơng trình ngoài
- RST: reset
- ALE: (Adress Latch Enable) dùng để tách tín hiệu đ
ị
a chỉvà
tí
n h
i
ệu ở cổng P0
- Khối vào ra song song: dùng để
t
ruy suấ
t
dữ
li
ệu 8 bi
t
- Khối vào ra nối tiếp: dùng để truy suất dữ
liệ
ơng trình tạm thời
3.Sơ Đồ CHÂN VI ĐIềU KHIểN
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
(
RXD
)
(
TXD
)
(
NT0
)
(
NT1
)
(
T0
)
(
T1
)
GND
18
23
19
22
20 21
Vcc
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
PSEN
P2.7
P2.6
P2.5
P2.4
(
A12
)
P2.3
P2.2
P2.1
(
A9
)
P2.0
(
li
ệu
trong tr
ờng hợp có thiết kế mở rộng bộ nhớ thì nó đ
ợc dùng làm chân địa chỉ cho các
bít cao của địa chỉ 16 b
it
Chân 10
17
t
huộc cổng P3 ở trạng thái b
ì
nh th
ơng ta có thể dùng để vào
ra dữ liệu, ngoài ra cổng P3 còn
l
u giữ các chức năng đặc biệt
P
3.I
Tên Chức năng
P
3.0
R
XD
Nhập dữ liệu
3.4
T
0
Đầu vào cho bộ
ti
mer/couter 0
P
3.5
T
1
Đầu vào cho bộ
ti
mer/couter 1
P
3.6
WR Đ
ờng điều khiển ghi bộ nhớ ngoài
P
3.7
RD Đ
ờng điều khiển đọc bộ nhớ ngoài
Chân 18, 19: Đầu vào của bộ dao động
Chân 20
:
chân Mass
Chân 40
:
chân d
ơng
t
r
ì
nh đ
ợc
tí
ch hợp sẵn trong chip có kich th
ớc nhỏ
nhất
l
à 4Kbyte. Với các vi điều khiển không
tí
ch hợp sẵn bộ nhớ ch
ơng trình trên
chip, buộc phả
i
thiế
t
kế bộ nhớ ch
ơng trình bên ngoài. Ví dụ sử dụng EFROM:
2746(64Kbyte) khi đó chân PSEN phải đặt ở mức cao (5V). Bộ nhớ dữ
liệ
u (RAM)
tồn tạ
nh và bộ nhớ dữ
liệ
u bên ngoà
i
thì buộc phảo kết hợp chân RD và PSEN bởi cổng logic AND đế
phân biệt tín hiệu truy xuấ
t
dữ liệu trên ROM hay trên RAM
4.1 Bộ nhớ ch
ơng trình
Hình 2.3 Cấu trúc bộ nhớ ch
ơng trình
Hình 2.4 Đ
ị
a ch
ỉ
ngắt
t
rên bộ nhớ ch
ơng trình
Sau khi khởi động CPU bắt đầu thực hiện ch
ơng trình ở vị trí 0000h. Mõi
khi có ngắ
t
xảy ra con trỏ của CPU sẽ nhảy đến đúng địa ch
ỉ
Hình d
ới đây mô tả cấu trúc 128 byte thấp của bộ nhớ dữ
liệ
u của họ v
i
điều
khiển 8051. 32byte đầu
ti
ên ( 00H - 1FH) đ
ợc sử dụng cho 4 bộ bank thanh ghi R0
- R7. Hai b
it
của thanh gh
i
đặc biệt PSW sẽ lựa chon 1
t
rong 4 bộ
t
hanh ghi mà vi
điều khiển sẽ dùng trong khi thực hiện ch
ơng
t
rình
Hình 2.7 Cấu trúc 128 byte thấp của bộ nhớ dữ liệu
t
rong
8051 chứa 210 vị trí bit đ
rên Ram
đa mục đích đều có thể đ
ợc
t
ruy xuất tự do bằng cách sử dụng các kiểu định địa
chỉ trực tiếp hay gián tiếp. Cũng nh
các thanh ghi từ R0 đến R7 ta có 21 thanh ghi
chức năng đặc b
i
ệt SFR chiếp phần
t
rên của Ram nội từ địa ch
ỉ
80H đến FFH. ( Cần
l
u ý là không phảI
t
ấ
t
cả 128 byte địa ch
ỉ
từ 80H đến FFH đều đ
ợc định nghĩa mà
chỉ có 21 địa ch
ỉ
đ
Số liệu đ
ợc đặt tên
l
à data equ 25H
MOV A,#data (Nạp giá tri 25H vào thanh ghi A)
Chú ý: chế độ định địa chỉ này số liệu th
ờng
l
à một hằng số không thay đổi
trong suốt ch
ơng trình hoạt động, và giá trị nạp vào phả
i
có kích th
ớc phù hợp vớ
i
thanh ghi (thanh ghi A, B, R là
t
hanh ghi 8 bit, thanh ghi DPTR là thanh gh
i
16 bit)
4.3.2 Chế độ định địa ch
ỉ
t
hanh gh
i
Vd: di chuyển nội dung
t
hanh ghi R
0
vào thanh ghi A
MOV A,R0
4.3.3 Chế độ định địa ch
ỉ
t
rực
ti
ếp
Trong ph
ơng pháp định đ
ị
a chỉ trực tiếptoán hạng
t
rong câu lệnh
t
hể hiện
địa chỉ của nguồn nhớ chứa dữ liệu (ngăn nhớ của Ram on chip) chế độ định địa chỉ
này
t
hông th
ờng dùng để chỏ tới vùng không gian nhớ30
1
làm con chỏ để
chỏ tới dữ liệu
t
rong bộ nhớ. Trong câu lệnh nếu R
0
và R
1
làm con chỏthì có ký hiệu
@ phía tr
ớc .
Vd: MOV R0,#30H (Nạp
t
hanh ghi dữ liệu R
0
g
i
á trị 30h)
MOV a,@R0 (Nạp nội dung ô nhớ có địa chỉ trong R
0
30H vào thanh ghi A
4.3.5 Chế độ định địa chỉ chị số thanh ghi
Trong ph
thanh ghi chứa A và
t
hanh ghi con chỏ d
liệu DPTR để xác định đ
ị
a chỉ. Chú ý:
thanh gh
i
A bao giờ cũng kếtt hợp vớ
i
DPTR để tạo địa chỉ nh
ng DPTR có
t
hể đi
riêng. Ph
ơng pháp định địa chỉnày dùng để chỏ tới ROM on chip và ROM RAM
ngoà
i
Vd: MOVC A,@A + DPTR (8051 lấy nội dung thanh ghi A + nội dung của DPTR
làm đị chỉ của ROM on chip sau đó sao dữ liệu ở địa chỉ A+DPTR vào
t
hanh gh
i
A
MOVX A, @DPTR (8051 lấy dữ
liệ
u trong RAM ngoài có địa ch
a. Lệnh Mov:
* Tr
ờng hợp 1
:
Mov A, Data
Mov A, direct
Mov A, @Ri
Mov A, Rn
*Tr
ờng hợp 2: Mov Direct, A
Mov Direct, #Data
Mov Direct, @Ri
Mov D
* Tr
ờng hợp 3: Mov Rn, #Data
Mov Rn, A
Mov Rn, Direc
t
* Tr
ờng hợp 4:
Mov @Ri, #data
Mov @Ri, A
b, Lệnh Movx:
Mov D
i
rect
ADDC A, Rn
d, LÖnh trõ
INC A
INC Direct
INC @Ri
INC Rn
SUBB # data
SUBB Direc
t
SUBB @Ri
SUBB Rn
e, LÖnh gi¶m néi dung
t
hanh ghi mét gi¸ trÞ:
DEC A
DEC Divect
DEC @Ri
DEC Rn
g, LÖnh nh©n MUL:
MUL AB
Th
−
c hiÖn nh©n néi dung
t
hanh ghi A víi néi dung
t
hanh ghi B
KÕt qu¶: Byte thÊp
l
−
ANL A, # Data
ANL A, Direct
ANL A, @Ri
ANL A, Rn
ANL Direc
t
, #Data
ANL Direct, A
LÖnh
t
hùc hiÖn gi÷a c¸c bÝ
t
t
−
¬ng øng cña to¸n h¹ng thø nhÊt víi c¸c b
Ýt
cña
t
o¸n h¹ng ha
i
B¶ng ch©n
lÝ
:
IN OUT
0 0 0
0 1 0
1 0 0
1 1 1
01 1
10 1
11 0
d, Lệnh xoá thanh ghi A
Cú pháp : CLR A
A
0
Lệnh lấy phần bù
t
hanh ghi A
CPL A
A
A
e, Lệnh quay phải nội dung thanh ghi A
Cú pháp
:
RR A
- Lệnh này di chuyển đ
ợc
tất
cả các bít của thanh ghi A sang phải 1 bí
t
f, Lệnh quay trái nội dung thanh ghi A
Cú pháp: RL A
- Lệnh này di chuyển tấ
t
cả các bít của thanh ghi A sang trái 1 bi
*Quy
t
ắc đặ
t
t
ên nhãnP
:
-Tên nhãn bao giờ cũng bao gồm các chữ cái từ A
ữ
Z; a
ữ
z; các số từ 0
ữ
9
-Kế
t
t
húc tên của nhãn
l
à dấu
:
-Giữa các ký tự trong nhãn không đ
ợc đặt dấu cách
-Tên nhãn phải đ
ợc bắt đầu bằng một chữ cá
Cú pháp: SJMP Rel
e, Lệnh JZ
*A
0
Cú pháp: JZ nhãn
Thực hiện kiểm
t
ra nội dung thanh ghi A
Nếu A=0 rẽ nhánh đến nhãn
Nếu A
0 thực hiện lệnh tiếp theo
Nhóm lệnh rẽ nhánh có điều kiện
e, Lệnh JNZ
Thực hiện kiểm
t
ra nội dung thanh ghi A
*A
0
Nếu A=0 thực h
i
ện lệnh tiếp
t
heo
Nếu A
0 rẽ nhánh đến nhãn
b, Lệnh CJNE
ơng
t
r
ì
nh đến địa chỉ xác định bởi
t
oán hạng
Nếu TH=0 thì thực hiện lệnh tiếp theo
1, TH TH-1
2, TH
0
TH 0 rẽ nhánh nhãn
TH=0
t
hực hiện lệnh tiếp theo
d, Lệnh NOP
4.4.5 Nhóm lệnh xử lý toán hạng bít
a, Lệnh xoá bít CLR
Cú pháp : CLR THbi
t
THbit=0
CLR C
b, Lệnh SETB
Cú pháp: SETB C
;
C=1
SETB THbít
Thbit=1
c, Lệnh CPL
-NÕu C=1 thùc hiÖn rÏ nh¸nh
-NÕu C=0 thùc hiÖn lªnh tiÕp theo
h, LÖnh JNC
Có ph¸p: JNC nh·n
Thùc hiÖn kiÓm tra cê C
-NÕu C=1 thùc hiÖn lÖnh tiÕp theo
-NÕu C=0 thùc hiÖn rÏ nh¸nh
Thùc hiÖn kiÓm
t
ra néi dung thanh ghi a
*A
〈〉
0
A
≠
0 rÏ nh¸nh ®Õn nh·n
A=0 thùc hiÖn lÖnh tiÕp theo
i, LÖnh JB