Đồ án môn học
BỘ LAO ĐỘNG THƯƠNG BINH VÀ XÃ HỘI TRƯỜNG ĐẠI
HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH
THIẾT KẾ VÀ THI CÔNG VI
ĐIỀU KHIỂN 8051 - ĐO NHIỆT ĐỘ
VÀ CHUYỂN ĐỔI ADC
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỦ
1
Đồ án môn học
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
3
Đồ án môn học
CHƯƠNG 1 : TỔNG QUAN
I/ LỜI NÓI ĐẦU
4
Đồ án môn học
II/ GIỚI THIỆU VỀ ĐỀ TÀI
5
Đồ án môn học
III/ MỤC ĐÍCH NGHIÊN CỨU
6
Đồ án môn học
CHƯƠNG II: VI ĐIỀU KHIỂN 8051 - ĐO NHIỆT ĐỘ
VÀ CHUYỂN ĐỔI ADC
I / VI ĐIỀU KHIỂN 8051
1 / GIỚI THIỆU CHUNG VỀ 8051:
VĐK 8051 là sản phẩm của Intel ra đời năm 1981. Hiện nay được dùng
khá phổ biến vì tính kinh tế và khả năng ứng dụng nhiều trong thực tiễn. Họ
VĐK MCS – 51 có một số phiên bản sau:
+> VĐK 80C31 có 126 byte nhớ RAM, không có ROM bên
trong mà phải dùng ROM ngoài.
+> VĐK 80C51 có 126 byte nhớ RAM, 4KB nhớ ROM chỉ lập
trình một lần, không lập trình lại được, có 2 bộ timer 0, 1.
+> VĐK 80C52 có 8 Kb nhớ ROM, 256 byte RAM và 3 bộ
timer : 0, 1, 2.
+> VĐK 87C51 có 256 byte nhớ RAM, 8 Kb nhớ EPROM có
thể xóa bằng tia cực tím và ghi lại nhiều lần.
+> VĐK 89C51 có 256 byte RAM, 4Kb nhớ FLASH ROM có
thể xóa và nạp bằng điện nhiều lần.
CONTROL
4 I/O
PORTS
BUS
CONTROL
SERIAL
PORT
EXTERNAL
INTERRUPTS
CPU
ON - CHIP
RAM
ETC
TIMER 0
TIMER 1
ADDRESS/DATA
TXD RXD
P
0
P
1
P
2
P
3
Đồ án môn học
3/ Mô tả chân của 8051.
3.1/ Sơ đồ chân:
9
Đồ án môn học
Ngõ vào của timer / counter 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
11
Đồ án môn học Bảng chức năng của các chân trên Port 3.
-
PSEN
: ( Program store Enable ) : 8051 có 4 tín hiệu điều khiển . Psen là
tín hiệu điều khiển ở chân số 29. Nó là tín hiệu điều khiển cho phép bộ nhớ
chương trình mở rộng và thường được nối đến chân OE ( Out put Enable )
của một EPROM để cho phép đọc các byte mã lệnh.
Psen sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương
trình được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8051
để giải mã lệnh. Khi thi hành chương trình trong ROM nội (8051) Psen sẽ ở
mức thụ động ( mức cao ).
- ALE: ( Address Latch Enable ):
Tín hiệu ra ALE trên chân 30 cho phép chốt địa chỉ, là chân đầu ra và
được tích cực ở mức cao. Chân ALE được sử dụng để phân kênh địa chỉ
và dữ liệu bằng cách nối tới chân G của chip 74LS373.
- RST .
12
Đồ án môn học
Chân số 9 là chân tái lập RESET. Nó là một đầu vào và có mức tích cực
cao ( bình thường ở mức thấp ). Khi cấp xung cao tới chân này thì bộ VĐK sẽ
tái lập và kết thúc mọi hoạt động. Điều này thường được coi như là sự tái bật
nguồn. Khi kích hoạt tái bật nguồn sẽ làm mất mọi giá trị trên các thanh ghi.
Nhằm làm cho đầu vào RESET có hiệu quả thì nó phải có tối thiểu 2 chu kỳ
a, Nối XTAL tới 8051 b, Nối XTAL tới nguồn đồng bộ ngoài
Hình 3. sơ đồ đấu nối thạch anh
4/ Các thanh ghi, bộ time/counter và ngắt
4.1/ Các thanh ghi
Trong CPU các thanh ghi được dùng để lưu cất thong tin tạm thời,
những thong tin này có thể là một byte dữ liệu cần được xử lý hoặc là một địa
chỉ đến dữ liệu cần được nạp. Phần lớn các thanh ghi của 8051 là các thanh
ghi 8 bit. Trong 8051 chỉ có một kiểu dữ liệu: Loại 8 bit, 8 bit của một thanh
ghi được trình bày như sau:
Với MSB là bit có giá trị cao nhất D7 cho đến LSB là bít có giá trị thấp
nhất D0. ( MSB – Most sigtican bit và LSB – Leart sigtician Bit ). Với một
kiểu dữ liệu 8 bít thì bất kỳ dữ liệu nào lớn hơn 8 bit đều phải được chia thành
các đoạn 8 bit trước khi được xử lý.
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
a)Một số thanh ghi 8 bít của 8051 b) Một số thanh ghi 16 bít của 8051
Đồ án môn học
Hình 4. Cấu trúc của một số thanh ghi
Các thanh ghi được sử dụng rộng rãi nhất của 8051 là A ( thanh ghi tích
lũy ), B, R0 R7, DPTR ( Con trỏ dữ liệu ) và PC ( Bộ đếm chương trình ).
Tất cả các dữ liệu trên đều là thanh ghi 8 bit trừ DPTR và PC 16 bit. Thanh
ghi tích lũy A được sử dụng cho tất cả mọi phép toán số học và logic.
4.2/ Hoạt động của bộ định thời timer.
B
SFR Mục đích Địa chỉ Địa chỉ từ hóa từng bít
TCON Điều khiển timer 88H Có
TMOD Chế độ timer 89H Không
TL0 Byte thấp của timer 0 8AH Không
TL1 Byte thấp của timer 1 8BH Không
TH0 Byte cao của timer 0 8CH Không
TH1 Byte cao của timer 1 8DH Không
15
Đồ án môn học
ả
4.2. Bảng các thanh ghi chức năng đặc biệt dùng timer
4.3/ Bộ ngắt của VĐK 8051.
Ngắt Cờ Địa chỉ vector
Reset hệ thống SRT 0000H
Ngắt ngoài 0 IEO 0003H
Timer 0 IFO 000BH
Ngắt ngoài 1 IE1 0013H
Timer 1 IF1 001BH
Port nối tiếp TI hoặc RI 0023H
Timer 2 TF2 hoặc IE2 002BH
1
PX
1
PT
O
PX
O
+ PXo: Ưu tiên ngắt ngoài. PXo = 1 Ưu tiên trước
PX1 = 0 Ưu tiên sau
+ PTo: Ưu tiên ngắt timer 0. PTo = 1 Ưu tiên trước
PTo = 0 Ưu tiên sau
+ PS (Priority senial ): Ưu tiên ngắt nối tiếp, PS = 1 Ưu tiên ngắt
Nếu để mặc định thì sẽ tuần tự từ PX0 PT0 PX1 PT1 PS
- Thanh ghi điều khiển trạng thái TCON
IE
1
IT
1
IE
O
IT
O
+ ITx: Xác lập kiểu ngắt của timer 0 hoặc 1
*> ITo = 0 Xác lập kiểu ngắt ở mức xung
*> ITo = 1 Xác lấp kiểu ngắt ở cạnh xung
17
Đồ án môn học
+ IEx: Cờ ngắt.
4/ Các tập lệnh của họ VĐK 8051
4.1/ Các chế dộ định địa chỉ
xác định bởi thanh ghi R0 vào thanh ghi A
- Đối với RAM ngoài ta phải MovX ( X : Extenal )
4.1.5. Chế độ định địa chỉ chỉ số thanh ghi.
Chế độ này được sử dụng rộng rãi khi truy cập các phần tủ dữ liệu của
bảng trong không gian ROM của 8051.
VD: MovC A,@A+DPTR ; Di chuyển nội dung ô nhớ trong ROM có
địa chỉ xác định bởi tổng nội dung của thanh ghi DPTR và thanh ghi A vào
trong thanh ghi A.
4.2. TẬP LỆNH CỦA 8051
4.2.1. Nhóm lệnh di chuyển dữ liệu.
*> Lệnh Mov dạng byte:
Cú pháp : Mov ( dest – byte ),( src – byte )
Chức năng: Lệnh sao chép nội dung của toán hạng nguồn cào
toán hạng đích, nội dung của toán hạng nguồn không thayh đổi. Lệnh này
không làm ảnh hưởng đến các cờ.
*> Lệnh Mov dạng word.
Cú pháp : Mov dptr,#data
19
Đồ án môn học
Chức năng: Giá trị 16 bít chính là toán hạng thứ 2 trực tiếp trong
câu lệnh được nạp vào thanh ghi con trỏ dữ liệu <DPTR> byte cao của dữ liệu
được nạp vào thanh ghi <DPH>, còn byte thấp được nạp vào thanh ghi
<DPL>. Lệnh này không làm ảnh hưởng đến cờ hiệu. Kichd thước 3byte, thời
gian thực hiện là 2 chu kỳ máy, mã lệnh là 1001 0000
*> Lệnh Mov dạng bít
Cú pháp: Mov <dest – bit>,<source - bit>
Chức năng: Chuyển dữ liệu ở dạng sao chép toán hạng nguồn
vào toán hạng đích, 1 toán hạng nguồn là cờ hiệu và một toán hạng còn lại là
bít địa chỉ trực tiếp. Lệnh này không làm ảnh hưởng đến thanh ghi hoặc cờ
khác.
*> Lệnh thiết lập bít.
Cú pháp : CPL <bit>
Chức năng: Lệnh lấy bù của bit, làm bit đã cho sẽ được lấy bù
với bít được định địa chỉ trực tiếp.
*> Lệnh lấy bù thanh ghi tích lũy.
Cú pháp : CPL <A>
Chức năng: Lệnh lấy bù tất cả các bit của thanh ghi tích lũy.
Lệnh này không làm ảnh hưởng đến trạng thái của cờ. Kích thước là 1 byte,
thời gian thực hiện là 1 chu kỳ máy, mã lệnh là 1111 0100.
21
Đồ án môn học
4.2.2. Nhóm lệnh rẽ nhánh chương trình.
*> Lệnh quay trở về từ chương trình con.
Cú pháp : Ret; Kích thước: 1 byte; Thời gian thực hiện : 2 chu kỳ
máy; Mã lệnh: 0010 0010.
*> Lệnh quay trở về từ ngắt.
Cú pháp : Reti; Kích thước: 1 byte ; Thời gian thực hiện: 2 chu lỳ
máy; Mã lệnh : 0010 0010.
*> Lệnh nhảy gián tiếp.
Cú pháp: JMP @A+DPTR; Kích thước: 1 byte; Thời gian thực
hiện : 2 chu kỳ máy ; Mã lệnh: 00100000.
*> Lệnh nhảy nếu 1 bít không được thiết lập.
Cú pháp : JBN bit,rel; Kích thước: 3 byte; Thời gian thực hiện: 2
chu kỳ máy; Mã lệnh: 0011 0000.
*> Lệnh nhảy nếu 1 bít được thiết lập và xóa bít đó.
Cú pháp: JBC bit,rel ; Kích thước : 3 byte ; Thời gian thực hiện :
2 chu kỳ máy; Mã lệnh: 0001 0000.
*> Lệnh nhảy nếu cờ CF không được thiết lập.
Cú pháp : JC rel ; Kích thước : 2 byte ; Thời gian thực hiện: 2
chu kỳ máy ; Mã lệnh : 0101 0000.
*> Lệnh trừ có nhớ.
Cú pháp: SUBB a, <src - byte>
23
Đồ án môn học
Chức năng: Thực hiện phép trừ thanh ghi tích lũy với toán hạng
thứ 2 và cờ nhớ CF, kết quả lưu vào thanh ghi tích lũy nếu quả phép trừ có
nhớ thì cờ CF được thiết lập.
*> Lệnh tăng lên 1 đơn vị.
Cú pháp: INC <byte>
Chức năng: Lệnh INC tăng giá trị của biến đã cho lên 1 đơn vị.
Biến có độ dài 1 byte do đó nếu giá trị ban đầu là 0FFH thì tăng lên 1 thì kết
quả sẽ là 00H. Lệnh không làm ảnh hưởng đến trạng thái cờ.
*> Lệnh giảm 1 đơn vị.
Cú pháp: DEC <byte>
Chức năng : Giảm giá trị của biến xuống 1 đơn vị. Nếu giá trị
ban đầu là 00H thì sau khi giảm sẽ 0FFh.
*> Lệnh thực hiện phép nhân.
Cú pháp : MUL AB
Kích thước 1 byte; Thời gian thực hiện: 4 chu kỳ máy;
Mã lệnh: 1010 0100
*> Lệnh thực hiện phép chia.
Cú pháp: DIV AB
Kích thước: 1 byte; Thời gian thực hiện: 4 chu kỳ máy
Mã lệnh : 1000 0100
*> Lệnh hiệu chỉnh số thập phân.
Cú pháp : DA A
Kích thước : 1 byte; Thời gian thực hiện: 1 chu kỳ máy
Mã lệnh: 1100 0100
4.2.4. Nhóm lệnh toán học logic.
24