Đồ án THIẾT KẾ VÀ THI CÔNG VI ĐIỀU KHIỂN 8051 - ĐO NHIỆT ĐỘ VÀ CHUYỂN ĐỔI ADC
Trang 1BỘ LAO ĐỘNG THƯƠNG BINH VÀ XÃ HỘI TRƯỜNG ĐẠI
HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH
THIET KE VA THI CONG VI
DIEU KHIEN 8051 - DO NHIET DO
VA CHUYEN DOI ADC
KHOA ĐIỆN - ĐIỆN TỬ
BỘ MÔN ĐIỆN TỦ
Trang 2Đồ án môn học 2
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 3MỤC LỤC
A- PHAN GIGI THIỆU
CHUONG 1: TONG QUAN
I/ LOINOIDAU
IU/ GIGI THIEU
II/ MỤC ĐÍCH NGHIÊN CỨU
B- PHẦN NỘI DUNG
CHƯƠNG 2: VI ĐIỀU KHIÊN 8051 - ĐO NHIỆT ĐỘ
VA CHUYEN DOI ADC
U VĐK 8§9C51
I/ ĐO LƯỜNG
II/ CHUYEN DOI
CHUONG3: THIET KE VA THICONG
1 NHIỆM VU THIET KE
Il/ SO BO KHOI VA CHUC NANG TUNG KHOI
II/ THIẾT KE VA PHAN TICH NGUYEN LY HOAT DONG CUA TUNG
KHOI
IV/ SƠ ĐỒ NGUYÊN LÝ VÀ GIẢI THUẬT CHƯƠNG TRÌNH
V/ THI CONG
CHUONG 4: KET LUAN VA KIEN NGHI
C - PHU LUC - TAI LIEU THAM KHAO
Trang 4Đồ án môn học 4
Ụ LỜI NÓI ĐẦU
Trang 51 GIỚI THIỆU VỀ ĐÈ TÀI
Trang 6Đồ án môn học
II/ MỤC ĐÍCH NGHIÊN CỨU
Trang 7CHUONG II: VI DIEU KHIEN 8051 - DO NHIET DO
VA CHUYEN DOI ADC
I/ VI DIEU KHIEN 8051
1/ GIỚI THIỆU CHUNG VỀ 8051:
VDK 8051 1a 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:
+> VDK 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
+> VDK 80C52 có 8 Kb nhớ ROM, 256 byte RAM và 3 bộ timer : 0, 1,2
+> VDK 87C5I có 256 byte nhớ RAM, 8 Kb nhớ EPROM có
thể xóa bằng tỉa cực tím và ghi lại nhiều lần
+> VDK 89C51 co 256 byte RAM, 4Kb nhớ FLASH ROM có
thể xóa và nạp bằng điện nhiều lần
Trang 8Đồ án môn học
P PJP P TXD RXD ADDRESS/DAT
Hình 1 Sơ đồ khối của họ VĐK 8051
2/ Bảng thông số cơ bản của các họ VĐK
Trang 93/ Mô tả chân của 8051
EAIVP ALEIP- PSEN
FET P2.6 P25 P2.4 F13 Paz P2.1 P2.0
Hình 2 Sơ đồ chân của 8051
Trang 10Đồ án môn học 10
3.2/ Chức năng các chân VĐK:
- Port 0: Cé 2 chức năng ở trên chân từ 32 -> 39 trong các thiết kế cỡ nhỏ
(Không dùng bộ nhớ mở rộng), có 2 chức năng như các đường UO Đối với
các thiết kế cỡ lớn ( với bộ nhớ mở rộng ) nó được kết hợp kênh giữa các bus
- Port 1: Là cổng I/O trên các chân 1->8 Có thể dùng cho các thiết bị ngoài
nếu cần Cổng này không có chức năng khác, vì vậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài
- Port 2: Là một cổng có công dụng kép trên các chân từ 21 -> 28 được dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng
- Port 3: Cũng là một cổng công dụng kép trên các chân 10->17 Các chân của công này có nhiều chức năng, các công dụng chuyền đổi có lien hệ với các đặc tính đặc biệt của 8051 như bảng sau:
P3.0 RXD Dữ liệu nhận cho port nôi tiép
P3.1 TXD Dữ liệu phát cho port nối tiếp
P3.2 INT0 Ngat 0 bên ngoài
P3.3 INTI Ngắt 1 bên ngoài
Bảng chức năng của các chân trên Port 3
Trang 11- 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
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ỳ
máy Hay nói cách khác, xung cao phải kéo dài tối thiểu 2 chu kỳ máy trước
nó xuống thấp Trong 8051 một chu kỳ máy được định nghĩa bằng 12chu kỳ đao động của thạch anh
-EA: Các thành viên họ 8051 như 8751, 89C51 hoặc DS5000 đều có ROM trên chip lưu cất chương trình Trong các trường hợp như vậy thì chân EA
được nối tới Vcc Đối với các thành viên của họ như 8031 và 8032 mà không
có ROM trên chip thì mã chương trình được lưu cất ở trên bộ nhớ ROM ngoài
Trang 12- Chân Vcc: Chân số 40 là chân Vcc cấp điện áp nguồn cho chip, nguồn điện
áp là +5V
- Chân GND: Chân số 20
- Chân XTAL 1 và XTAL 2: 8051 có một bộ dao động trên chip nhưng nó yêu cầu một xung đồng hồ ngoài đề chạy nó Bộ dao động thạch anh thường
xuyên nhất được nối tới chân đầu vào XTAL 1 ( chân 19 ) và XTAL 2 ( chân
18 ) Bộ dao động thạch anh này cũng cần 2 tụ điện giá trị 30PF Một phía của
tụ điện được nối xuống đất như hình a
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
Trang 13Trong 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 đữ liệu cần được xử lý hoặc là một địa
chỉ đến đữ 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:
D, | De | Ds | Ds | Ds | Dz | Dy | Do
Với MSB là bit có giá trị cao nhất D7 cho đến LSB là bít có giá trị thấp
nhat DO ( MSB — Most sigtican bit va LSB — Leart sigtician Bit ) Với một
kiểu dữ liệu 8 bít thì bất kỳ đữ liệu nào lớn hơn 8 bit déu phải được chia thành
các đoạn 8 bit trước khi được xử lý
RO
a)Một số thanh ghi 8 bít của 8051 b) Một số thanh ghi 16 bít của 8051
Hình 4 Cấu trúc của một số thanh ghi
Trang 14Đồ án môn học 14
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
TMOD | Chê độ timer 89H Không
4.2 Bảng các thanh ghi chức năng đặc biệt dùng timer
Port noi tiép TI hoac RI 0023H
Timer 2 TF2 hoac IE2 002BH
Bang 4.3 Cac vector ngat
Trang 15
- Thanh ghi cho phép ngắt IE: Đây là thanh ghi 8 bít cho phép truy nhập ở mức bít
EXI = 1 > Cấm ngắt ngoài hoạt động + ET0: Cho phép ngắt trong timer 0 ET0 = 1 - Cho phép ngắt
ETI =0 > Cấm ngắt
+ EXI: Cho phép ngắt ngoài 1 EX1 = 0 > Cho phép
EX1 =1 > Cấm ngắt +ET1: Cho phép ngat trong timer 1 ET1 = 0 Cho phép ngắt
ET1 =1 > Cam ngat +ES: Cho phép ngit néi tiép ES = 0 > Cho phép ngat
+ PXo: Uu tién ngắt ngoài PXo = 1 > Uu tién trước
PXI =0 > Ưu tiên sau
+ PTo: Ưu tiên ngắt timer 0 PTo = 1 Ưu tiên trước
Trang 16Đồ án môn học 16
PTo =0 > Ưu tiên sau
+ PS (Priority senial ): Ưu tiên ngắt nối tiếp, PS = I > Uu tién ngắt
+ ITx: Xác lập kiểu ngắt của timer 0 hoac 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 + IEx: Cờ ngắt
4/ Các tập lệnh của họ VĐK 8051
4.1/ Các chế độ định địa chỉ
4.1.1/ Chế độ điịnh địa chỉ tức thời
- Cú pháp : Mov a,#Data; Di chuyển giá trị data vào thanh ghi a
- Ví dụ:
+.Mov R0,#10H; Di chuyên giá trị 20 hệ hecxa vào thanh ghi RO +.Mov DPTR,#50; Di chuyển giá trị 50 vào con trỏ dữ liệu DPTR
4.1.2/ Chế độ định địa chỉ trực tiếp
Đây là chế độ có thể truy nhập toàn bộ không gian nhớ của RAM, áp
dụng cho RAM trong và SER ( thanh ghi chức năng đặc biệt )
Trang 174.1.3 Chế độ định địa chỉ thanh ghi
Chế độ này toán hạng phải là một trong các thanh ghi từ R0->R7, A, B,
DPTR
VD:
Mov A,RO ; Di chuyên nội dung thanh ghi R0 vào thanh ghi A Mov R2, A ; Di chuyển nội dung thanh ghi A vào thanh ghi R0 Chế độ này yêu cầu toán hạng nguồn và toán hạng đích phải có cùng
kích thước
4.1.4 Chế độ này các thanh ghi dùng đẻ trỏ đến đữ liệu có trong bộ nhớ Chỉ
dùng các thanh ghi R0, R1 còn định địa chỉ gián tiếp
- Chế độ các thanh ghi từ R2->R7 không dùng đến
- R0, R1 đều có dấu @ đứng trước Nếu không có @ thì đó là lệnh chuyền nội dung R0 và R1 chứ không phải là di chuyển nội dung ngăn nhớ có
trong RO, RI
VD: Mov a,@RO ; Di chuyển nội dung 6 nhớ có trong ROM có dia chi 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ủ đữ 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 TAP LENH CUA 8051
4.2.1 Nhóm lệnh di chuyển dữ liệu.
Trang 18Đồ án môn học 18
*> Lénh Mov dang byte:
Cú pháp : Mov ( dest — byte ),( sre — 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 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ỏ đữ 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 dang bit
Cd phap: 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 chuyên số liệu vào ngăn xếp
Cú pháp: PUSH direct Chức năng: Để chuyền số liệu có trong câu lệnh vào ngăn xếp, trước tiên con trỏ ngăn xếp sẽ được tăng lên 1, sau đó số liệu sẽ được chuyển
vào đỉnh của ngăn xếp mà địa chỉ này được định bởi <SP>
Kích thước là 2 byte, thời gian thực hiện là 2 chu kỳ máy, mã
lệnh là : 1100 0000
Trang 19*> Lệnh chuyên số liệu ra khỏi ngăn xếp
Cú pháp: POP direct, kích thước là 2 byte, thời gian thực hiện là
2 chu kỳ máy, mã lệnh la 1101 0000
*> Lệnh hoán chuyền dữ liệu
Cú pháp : XCH A,<byte>
Chức năng: Hoán chuyển nội dung của thanh ghi tích lũy với
thanh ghi hoặc bộ nhớ có địa chỉ trong toán hạng thứ 2 của câu lệnh, toán
hang thứ 2 có thể là thanh ghi, thanh ghi này có thể là trực tiếp hoặc gián tiếp
trực tiếp, lệnh này không ảnh hưởng đến các cờ
*> Lệnh xóa thanh ghi tích lũy
Cú pháp: CLR A
Chức năng: Lệnh xóa tất cả các bít của thanh ghi tích lũy về 0
lệnh này không ảnh hưởng đến trạng thái của các cờ Kích thước 1 byte; thời gian thực hiện là 1 chu kỳ máy
*> 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.
Trang 204.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: I 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: I 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 nhảy nếu thanh ghi tích lũy bằng 0.
Trang 21Cú pháp : JZ rel ; Kích thước : 2 byte; Thời gian thực hiện: 2 chu kỳ máy ; Mã lệnh : 0110 0000
*> Lệnh nhảy nếu thanh ghi tích lũy khác 0
Cú pháp : JNZ rel; Kích thước: 2byte; Thời gian thực hiện : 2
chu kỳ máy; Mã lệnh : 01 II 0000
*> Lệnh nhảy khi so sánh 2 toán hạng
Cu phap : CINZ < dest — byte >, <sre - byte>, rel
Chức năng: so sánh 2 toán hạng và nhảy nếu không bằng
+ Nếu toán hạng 1 = toán hạng 2 -> Nhảy đến nhãn
+ Nếu toán hạng 1 # toán hạng 2 Thực hiện lệnh tiếp theo
*> Lệnh giảm và nhảy
Cú pháp : DỊNZ byte,<rel - address>
Chức năng: Lệnh giảm ô nhớ đi 1 và nhảy đến nhãn khác nếu
bằng 0, thực hiện lệnh tiếp theo nếu khác 0
*> Lệnh tạm ngừng hoạt động
Cú pháp : NOP Kích thước : I byte; Thời gian thực hiện: 1 chu kỳ máy;
Mã lệnh: 0000 0000
4.2.3.Nhóm lệnh tính toán số học
*> Lệnh thực hiện phép cộng
Cú pháp : ADD a,<src - byte>
Chức năng: Cộng giá trị biến nội dung trong thanh ghi tích lũy,
kết quả lưu vào thanh ghi tích lũy
*> Lệnh cộng có nhớ
Cú pháp : ADDC a,<src - byte>