Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
1
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ử
đồ án môn học
kỹ thuật vi điều khiển
ứng dụng vi điều khiển họ 8051
Sinh viên thực hiện: ĐiNH NGọC CƯờNG
Giáo viên hớng dẫn: TRầN VĂN HạNH
Lớp: ĐL điện - điện tử k3
Nam Định - năm 2010
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
2
Phần I. Giới thiệu về đề ti
LờI NóI ĐầU
Chơng 1:DẫN NHậP
I. ĐặT VấN Đề
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 thay thế bằng các hệ
thống điều khiển tự động với các lệnh chơng trình đã đợc thiết lập trớc. Trong
quá trình sản xuất ở các nhà máy, xí nghiệp hiện nay, việc đo nhiệt độ tự động là
một yêu cầu hết sức cần thiết và quan trọng. Vì nếu nắm bắt đợc nhiệt độ làm việc
của các hệ thống. Dây chuyền sản xuất giúp ta biết đợ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 tránh đợc những h hỏng và sự cố có thể
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 Đại Học S Phạm Kỹ
Thuật. Nhóm chúng em tiến hành thực hiện đề tài thiết kế mạng thu thập dữ liệu
dùng vi điều khiển 8051.
II.GIớI HạN Đề TI :
Với thời gian có hạn cũng nh trình độ có hạn chúng em đã cố gắng hoàn thành
tập đồ án này nhng 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
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
4
5
ngày càng cao.
Năm 1971 xuất hiện bộ vi xử lí 4 bit loại TMS1000 do công ty texas Instruments
vừa là nơi phát minh vừa là nhà sản xuất. Nhìn tổng thể thì bộ vi xử lí chỉ có chứa
trên một chip những chức năng cần thiết để 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ịch 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 ty INTEL (Interlligen-Elictronics). Mới cho ra đời bộvi
điều khiển đơn chip đầu tiên trên thế giới với tên gọi 8048. Bên cạnh bộ xử lí trung
tâm 8048 còn chứa bộ nhớ dữ liệu, bộ nhớ chơng trình, bộ đếm và phát thời gian
các cổng vào và ra Digital trên một chip.Các công ty khác cũng lần lợc cho ra đời
các bộ vi điều khiển 8bit tơng tự nh 8048 và hình thành họ vi điều khiển MCS-48
(Microcontroller-sustem-48).Đến năm 1980 công ty INTEL cho ra đời thế hệ thứ
hai của bộ vi điều khiển đơn chip với tên gọi 8051. Và sau đó hàng loạt các vi điều
khiển cùng loại với 8051 ra đời và hình thà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 viên và hầu hết các công ty 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 ty khác
nh : AMD, SIEMENS, PHILIPS, DALLAS, OKI Ngoài ra còn có các công ty
khác cũng có những họ vi điều khiển riêng nh:
-Họ 68hcos của công ty Motola
-Họ st62 của công ty sgs-thomson
-Họ h8 của công ty Hitachi
-Họ pic của công ty Micro chip
III.KHảO SáT Bộ VI ĐIềU KHIểN 8051 V 8031
1. Các thông số cơ bản
IC vi điều khiển 8051/8031 thuộc họ MCS51 có các đặt điểm sau :
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
+ 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 hiệu ở cổng P0
- Khối vào ra song song: dùng để truy suất dữ liệu 8 bit
- Khối vào ra nối tiếp: dùng để truy suất dữ liệu nối tiếp theo tiêu chuẩn RS232
- Khối sử lý ngắt: tiếp nhận ngắt và thực hiện chơng trình phục vụ ngắt
- Timer/ couter: tạo khoảng thời gian hoặc đếm các sự kiện
- ROM on chip: (4 kbyte) lu giữ chơng trình
- RAM on chíp: (128 byte) lu giữ chơng trình tạm thời
3.Sơ Đồ CHÂN VI ĐIềU KHIểN Hình 2.2 Sơ đồ chân của IC 89C51
P1.0
P1.1
P1.2
P1.3
36
35
37
34
33
32
30
29
31
28
27
26
24
23
25
22
21
8051
(89C51)
P0.1
P0.2
P0.4
P0.5
P0.3
PSEN
P0.6
P2.5
P2.3
P2.1 (A9)
P2.7
ra dữ liệu, ngoài ra cổng P3 còn lu 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 trong trờng hợp truyền nối tiếp
P
3.1
T
XD
Phát dữ liệu trong trờng hợp truyền song song
P
3.2
INT
0
Đầu vào ngắt 0
P
3.3
INT
1
Đầu vào ngắt 1
P
3.4
T
0
Đầu vào cho bộ timer/couter 0
tồn tại độc lập so với bộ nhớ chơng trinh. Họ vi điều khiển8051 có bộ nhớ dữ liệu
tích hợp trên chip nhỏ nhất là 128 Byte và có thể mở rộng dữ liệu ngoài lên tới
64Kbyte. Với những vi điều khiển không tích hợp Rom trên chip thì vẫn có RAM
treenc chip là 128 byte. Khi sử dụng RAM ngoài Cpu đọc và ghi dữ liệu nhờ tín
hiệu trên các chân RD và WR. Khi sử dụng cả bộ nhớ chơng trì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
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
11
Hình 2.4 Địa chỉ ngắt trê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ỉ ngắt tơng ứng và thực
thi chơng trình tại đó
4.2 Bộ nhớ dữ liệu
Hình 2.5 Cấu trúc bộ nhớ dữ liệu
Hình trên mô tả cẩu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoài của họ
vi điều khiển 8051. CPU sẽ dùng đến các chân RD và WR khi truy cập đến bộ nhớ
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
12
dữ liệu ngoài. Dới đây là cấu trúc bộ nhớ dữ liệu trong chip, đợc chia làm 3 khối
là 128 byte thấp, 128 byte cao và 128 byte đặc biệt
Hình 2.8 128 byte cao của bộ nhớ dữ liệu
4.3 Các chế độ định địa chỉ
4.3.1 Chế độ định địa chỉ tức thời
Chế độ định địa chỉ tức thời thơng dùng để nạp dữ liệu cho thanh ghi, dữ
liệu là một hăng số cụ thể, dữ liệu đợc gọi qua tên nhãn ỷtong chế đọ định địa chỉ
tức thời thì đằng trớc dữ liệu có ký hiệu #
Vd: Nạp giá tri 25H vào thanh ghi A (Reg A)
MOV A,#25H
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à thanh ghi 8 bit, thanh ghi DPTR là thanh ghi 16 bit)
4.3.2 Chế độ định địa chỉ thanh ghi
Trong chế độ này dữ liệu đợc lu trữ trong các thanh ghi va CPU truy xuất
tới dữ liệu thông qua tên của thanh ghi. Trong câu lệnh dịch chuyển dữ liệu sử dụng
phơng pháp địng địa chỉ thanh ghi thì các toán hạng trong câu lệnh phải có kích
thớc phù hợp nhau, và không đợc sử dụng 2 thanh ghi R
i
trng 1 câu lệnh
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
15
Vd: di chuyển nội dung thanh ghi R
0
vào thanh ghi A
MOV A,R0
4.3.3 Chế độ định địa chỉ trực tiếp
Trong phơng pháp định địa chỉ trực tiếptoán hạng trong câu lệnh thể hiện
chỉ có thể chỏ tới địa chỉ tối đa là FFh trong trờng hợp muốn trỏ tới các địa chỉ lớn
hơn ta sẽ sử dụng phơng pháp định địa chỉ chỉ số. Trong phơng pháp này ta dùng
thanh ghi chứa A và thanh ghi con chỏ d liệu DPTR để xác định địa chỉ. Chú ý:
thanh ghi A bao giờ cũng kếtt hợp với DPTR để tạo địa chỉ nhng DPTR có thể đ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 thanh ghi A
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
16
MOVX A,@DPTR (8051 lấy dữ liệu trong RAM ngoài có địa chỉ ở DPTR
sao vào thanh ghi A)
4.4 Tập lệnh của họ vi điều khiển 8051
Quy ớc:
# Data: toán hang định địa chỉ tức thời
Direct : Toán hạng định địa chỉ trực tiếp
@Ri : Toán hạng định đia chỉ gián tiếp
Rn : Toán hạng định địa chỉ thanh ghi
4.4.1 Nhóm lệnh di chuyển dữ liệu
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
ADD A, # data
ADD A, Direct
ADD A, @Ri
ADD A, Rn
b, Lệnh cộng có nhớ ADDC
ADDC A, # data
ADDC A, Direct
ADDC A, @Ri
ADDC A, Rn
c, Lệnh tăng toán hạng một đơn vị:
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
18
INC A
INC Direct
INC @Ri
INC Rn
d, Lệnh trừ
SUBB # data
SUBB Direct
SUBB @Ri
SUBB Rn
e, Lệnh giảm nội dung thanh ghi một giá trị:
DEC A
DEC Divect
DEC @Ri
DEC Rn
g, Lệnh nhân MUL:
MUL AB
Cú pháp: ORL A, #Data
ORL A, Direct
ORL A, @Ri
ORL A, Rn
ORL Direct, #Data
ORL Direct, A
Bảng chân lý:
IN OUT
0 0 0
0 1 1
1 0 1
1 1 1
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
20
c,Lệnh hoặc tuyệt đối
XRL A, #Data
XRL A, Direct
XRL A, @Ri
XRL A, Rn
XRL Direct, #Data
XRL Direct, A
Bảng chân lí:
IN OUT
00 0
01 1
10 1
11 0
Cú pháp: JMP nhãn
Thực hiện rẽ nhánh chơng trình đến địa chỉ đợc xác đinh bởi toán hạng nhãn
*Khái niệm về nhãn:
Nhãn là tên hình thức đại diện cho một địa chỉ vật lý xác đinh trong bộ nhớ
*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 thú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ái
-Tên nhãn không đợc trùng với các từ đã đợc định nghĩa trớc
-Tên nhãn không dai quá 32 ký tự
b, Lệnh gọi chơng trình con
*Lệnh CALL
Cú pháp: CALL tên chơng trình con
*Lệnh ACALL< lệnh gọi tuyệt đối>
Cú pháp: ACALL địa chỉ 11bít
*Lệnh LCALL<lệnh gọi dài>
Cú pháp: LCALL địa chỉ 16 bít
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
22
c.Lệnh AJMP
Cú pháp: AJMP địa chỉ 11
-Nếu TH1
TH2 rẽ nhánh đến nhãn
-Nếu TH1=TH2 thực hiện lệnh tiếp theo
CJNE A, #data, nhãn
CJNE A, Direct, nhãn
c, Lệnh DJNZ
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
23
Cú pháp: DJNZ TH,nhãn
DJNZ Rn,nhãn
DJNZ Direct, nhãn
Giảm nội dung của toán hạng(TH)đi một đơn vị và so sanh với 0
Nếu TH
0 thì rẽ nhánh chơng trình đến địa chỉ xác định bởi toán hạng
nhãn
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 thực hiện lệnh tiếp theo
Một trong 2 toán hạng là cờ C
g, Lệnh MOV
Cú pháp:
JC nhãn
Thực hiện kiểm tra cờ C
-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 tra 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
Đồ án môn học: Vi xử lý GVHD: TRầN VĂN HạNH
Sinh viên: ĐINH NGọC CƯờNG Lớp: ĐL - ĐĐT3
25
Cú pháp :
JB TH, nhãn
Kiểm tra nội dung của toán hạng
-Nếu TH=1 thì rẽ nhánh đến nhãn
-Nếu TH=0 thì thực hiện lệnh tiếp theo