You are on page 1of 36

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG ĐIỆN – ĐIỆN TỬ

--------------

ĐỒ ÁN I
ĐỀ TÀI: THIẾT KẾ VÀ CHẾ TẠO MẠCH ĐO NHIỆT ĐỘ
SỬ DỤNG VI ĐIỀU KHIỂN 8051

Sinh viên: Vũ Ngọc Thành


MSSV: 20202707
Giảng viên hướng dẫn: ThS. Đinh Thị Lan Anh

Hà Nội – 07/2023
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

MỤC LỤC

MỤC LỤC ..................................................................................................................... 1


DANH MỤC HÌNH VẼ VÀ BẢNG ............................................................................ 3
LỜI NÓI ĐẦU .............................................................................................................. 4
CHƯƠNG 1: TỔNG QUAN LM35, 8051, ADC ....................................................... 5
1.1 Tổng quan về LM35 ................................................................................................. 5
1.1.1 Khái quát về LM35 ............................................................................................ 5
1.1.2 Cấu tạo của LM35.............................................................................................. 5
1.1.3 Nguyên lý hoạt động của LM35 ........................................................................ 6
1.1.4 Đặc điểm của LM35 ........................................................................................... 6
1.2 Giới thiệu họ VĐK 8051 .......................................................................................... 6
1.2.1 Cấu tạo VĐK 8051 ............................................................................................. 6
1.2.2 Cấu trúc VĐK 8051, chức năng từng chân ..................................................... 7
1.2.3 Tổ chức bộ nhớ ................................................................................................. 10
1.3 Tổng quan về chuyển đổi tương tự-số (ADC) ...................................................... 12
CHƯƠNG 2: TÍNH TOÁN VÀ THIẾT KẾ MẠCH ĐO ....................................... 15
2.1 Sơ đồ khối................................................................................................................ 15
2.2 Tính toán và thiết kế .............................................................................................. 15
2.2.1 Mạch đo cảm biến và khuếch đại ................................................................... 15
2.2.2 Vi điều khiển và cách mạch xuất nhập .......................................................... 16
2.2.3 Ghép nối ADC và VĐK ................................................................................... 18
2.2.4 Mạch hiển thị .................................................................................................... 19
2.2.5 Mạch nguyên lý chung ..................................................................................... 20
CHƯƠNG 3: LẬP TRÌNH VĐK VÀ MÔ PHỎNG ................................................ 21
3.1 Nạp code cho VĐK 8051 ........................................................................................ 21
3.1.1 Khai báo chân giao tiếp ADC0808 ............................................................. 21
3.1.2 Khai báo chân giao tiếp LCD16x2 4bit ..................................................... 21
3.1.3 Hàm đọc ADC0808 theo kênh .................................................................... 21
3.1.4 Hàm delay .................................................................................................... 22

1
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

3.1.5 Chương trình giao tiếp LCD 16x2 4bit ..................................................... 22


3.1.6 Hàm gửi 4 bit dữ liệu ra LCD ....................................................................... 23
3.1.7 Hàm gửi 1 lệnh cho LCD ............................................................................... 23
3.1.8 Hàm khởi tạo LCD ...................................................................................... 23
3.1.9 Show Temp................................................................................................... 25
3.1.10 Chương trình ngắt timer 0 ......................................................................... 25
3.1.11 Chương trình chính ..................................................................................... 25
3.2 Mô phỏng ................................................................................................................ 26
CHƯƠNG 4 : LÀM MẠCH THỰC TẾ ................................................................... 28
4.1 Sử dụng phần mềm Altium để vẽ mạch in ........................................................... 28
4.2 Chuẩn bị các linh kiện ........................................................................................... 28
4.3 Làm mạch ............................................................................................................... 29
4.4 Nạp code .................................................................................................................. 32
4.4.1 Sử dụng USB ISP để nạp code cho AT89s52 bằng phần mềm progisp ...... 32
4.4.2 Mạch nạp code sử dụng USB ISP ................................................................... 32
4.5 Cắm nguồn chạy thử mạch.................................................................................... 33
KẾT LUẬN ................................................................................................................. 34
TÀI LIỆU THAM KHẢO ......................................................................................... 35

2
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

DANH MỤC HÌNH VẼ VÀ BẢNG

Hình 1.1 Cảm biến nhiệt độ LM355 ............................................................................... 5


Bảng 1.1 Sự khác nhau của các IC trong họ MCS-51 ................................................... 7
Hình 1.2 Cấu trúc từng chân VĐK 8051 ........................................................................ 8
Hình 1.3 Tóm tắt bộ nhớ dữ liệu trên chip ................................................................... 10
Hình 1.4 Quan hệ vào ra các khối ADC ...................................................................... 12
Hình 1.5 Quan hệ vào ra .............................................................................................. 13
Hình 1.6 Các ngõ vào, ra chính của bộ ADC .............................................................. 14

Hình 2.1 Sơ đồ khối mạch đo nhiệt độ ......................................................................... 15


Hình 2.2 Mạch tạo dao động bằng thạch anh .............................................................. 17
Hình 2.3 Mạch Reset .................................................................................................... 17
Hình 2.4 Mạch sử dụng điện trở treo ........................................................................... 17
Hình 2.5 Ghép nối ADC với VĐK 8051 ....................................................................... 18
Hình 2.6 Ghép nối VĐK 8051 với LCD ....................................................................... 19
Hình 2.7 Mạch nguyên lý đo nhiệt độ .......................................................................... 20

Hình 3.1 Mô phỏng mạch đo ........................................................................................ 27

Hình 4.1 Vẽ mạch trên phần mềm Altium .................................................................... 28


Hình 4.2 In mạch đã vẽ ................................................................................................ 29
Hình 4.3 In mạch lên phíp đồng ................................................................................... 23
Hình 4.4 Sử dụng dung dịch ăn mòn ............................................................................ 30
Hình 4.5 Khoan lỗ ........................................................................................................ 30
Hình 4.6, 4.7 Hàn linh kiện .......................................................................................... 31
Hình 4.8 Mạch sau khi hoàn thành .............................................................................. 31
Hình 4.9 Giao diện phần mềm Progisp ........................................................................ 32
Hình 4.10 Mạch nạp code sử dụng USB ISP ............................................................... 32
Hình 4.11 Mạch đã hoạt động thành công ................................................................... 33

3
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

LỜI NÓI ĐẦU


Trong lĩnh vực kỹ thuật hiện đại ngày nay, việc chế tạo ra các bộ đo nhiệt độ có độ
chính xác nhiệt độ cao, ổn định, kích thước nhỏ gọn cho các thiết bị giám sát, điều khiển
là hết sức cần thiết. Chính vì thế, chúng em được cô giáo giao cho đề tài: “MẠCH ĐO
NHIỆT ĐỘ SỬ DỤNG VĐK 8051”.
Đồ án gồm có 4 chương:
• CHƯƠNG 1: TỔNG QUAN LM35, 8051, ADC
• CHƯƠNG 2: TÍNH TOÁN VÀ THIẾT KẾ MẠCH ĐO
• CHƯƠNG 3: LẬP TRÌNH VĐK VÀ MÔ PHỎNG
• CHƯƠNG 4: LÀM MẠCH THỰC TẾ
Trong quá trình thực hiện đồ án 1, em đã được củng cố và tiếp thu thêm các kiến
thức mới về các cảm biến đo nhiệt độ trong công nghiệp. Hơn thế nữa em đã học tập và
rèn luyện phương pháp làm việc, nghiên cứu một cách chủ động hơn, linh hoạt hơn.
Qua đây, em xin gửi lời cảm ơn chân thành đến ThS. Đinh Thị Lan Anh đã giúp
đỡ em trong quá trình làm đồ án.
Em xin chân thành cảm ơn!
Hà Nội, tháng 07 năm 2023
Thành
Vũ Ngọc Thành

4
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

CHƯƠNG 1: TỔNG QUAN LM35, 8051, ADC


1.1 Tổng quan về LM35

1.1.1 Khái quát về LM35

LM35 là IC cảm biến nhiệt độ có điện áp đầu ra thay đổi, dựa trên nhiệt độ xung quanh
nó. Nó là một vi mạch nhỏ và rẻ, có thể được sử dụng để đo nhiệt độ ở bất kỳ đâu trong
khoảng từ -55 ° C đến 150 ° C. Nó có thể dễ dàng được giao tiếp với bất kỳ vi điều khiển
nào có chức năng ADC hoặc bất kỳ nền tảng phát triển nào như Arduino.

1.1.2 Cấu tạo của LM35

Hình 1.1 Cảm biến nhiệt độ LM35

5
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

1.1.3 Nguyên lý hoạt động của LM35

Cảm biến LM35 hoạt động bằng các cho ra một giá định điện áp tỷ lệ thuận theo
nhiệt độ tại đầu ra VOUT (chân giữa) tương ứng với các mốc nhiệt độ. Như vậy, ta có thể
thấy bằng cách đưa vào chân số 1 của cảm biến nhiệt độ LM35 với điện áp vào 5V. Chân
số 3 nối đất. Đo điện áp ở chân giữa ta sẽ có được nhiệt độ tương ứng với mức điện áp đo
được (0-150ºC). Vì điện áp đầu ra của cảm biến tương đối nhỏ nên thông thường đối với
các mạch thực tế nên LM35 thường sẽ kèm theo Op-amp để giúp khuếch đại tín hiệu điện
áp ở đầu ra..

1.1.4 Đặc điểm của LM35

LM35 được sử dụng rộng rãi trong thực tế bởi các lí do sau:

• Điện áp đầu ra tỷ lệ với nhiệt độ: từ -55ºC đến 150ºC với điện áp từ -550mV đến
1500Mv.
• Đã hiệu chỉnh cho độ Celsius.
• Đảm bảo điện áp chính xác từ 0.5ºC đến 25ºC.
• Trở kháng đầu ra thấp
• Dòng cung cấp thấp (60 μA).
• Giá thấp.
• Điện áp làm việc từ 4 đến 30V

1.2 Giới thiệu họ VĐK 8051

1.2.1 Cấu tạo VĐK 8051

MCS-51 là họ IC vi điều khiển do hãng Intel sản xuất. Các IC tiêu biểu cho họ là
8031, 8051, 8951... Những đặc điểm chính và nguyên tắt hoạt động của các bộ vi điều
khiển này khác nhau không nhiều. Khi đã sử dụng thành thạo một loại vi điều khiển thì ta
có thể nhanh chóng vận dụng kinh nghiệm để làm quen và làm chủ các ứng dụng của một
bộ vi điều khiển khác. Vì vậy để có những hiểu biết cụ thể về các bộ vi điều khiển cũng
như để phục vụ cho đề tài tốt nghiệp này ta bắt đầu tìm hiểu một bộ vi điều khiển thông
dụn g nhất, đó là họ MCS-51 và nếu như họ MCS-51 là họ điển hình thì 8051 lại chính là
đại diện tiêu biểu.

Các đặc điểm của 8051 được tóm tắt như sau :

• 4 KB ROM bên trong.

6
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

• 128 Byte RAM nội.


• 4 Port xuất /nhập I/O 8 bit.
• 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 (hoạt động trên bit đơn).
• 210 vị trí nhớ có thể định vị bit.
• 4 s cho hoạt động nhân hoặc chia.

Bảng mô tả sự khác nhau của các IC trong họ MSC-51:

Bảng 1.1 Sự khác nhau của các IC trong họ MCS-51

1.2.2 Cấu trúc VĐK 8051, chức năng từng chân


Cấu trúc từng chân của VĐK 8051

7
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

Hình 1.2 Cấu trúc từng chân VĐK 8051


Chức năng hoạt động của từng chân (pin) được tóm tắt như sau:

• Từ chân 1 8 Port 1 (P1.0, . . ., P1.7) dùng làm Port xuất nhập I/O để giao tiếp bên
ngoài.
• Chân 9 (RST) là chân để RESET cho 8051. Bình thường các chân này ở mức thấp.
Khi ta đưa tín hiệu này lên cao (tối thiểu 2 chu kỳ máy). Thì những thanh ghi nội
của 8051 được LOAD những giá trị thích hợp để khởi động lại hệ thống.
• Từ chân 1017 là Port3 (P3.0, P3.1, . . ., P3.7) dùng vào hai mục đích : dùng là Port
xuất / nhập I/O hoặc mỗi chân giữ một chức năng cá biệt được tóm tắt sơ bộ như
sau:

8
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

P3.0 (RXD) : Nhận dữ liệu từ Port nối tiếp.

P3.1 (TXD) : Phát dữ liệu từ Port nối tiếp.

P3.2 (INT0) : Ngắt 0 bên ngoài.

P3.3 (INT1) : Ngắt 1 từ bên ngoài.

P3.4 (T0) : Timer/Counter 0 nhập từ bên ngoài.

P3.5 (T1) : Timer/Counter 1 nhập từ bên ngoài.

P3.6 (WR) : Tín hiệu Strobe ghi dữ liệu lên bộ nhớ bên ngoài.

P3.7 (RD) : Tín hiệu Strobe đọc dữ liệu lên bộ nhớ bên ngoài.

• Các chân 18,19 (XTAL2 và XTAL1) được nối với bộ dao động thạch anh 12 MHz
để tạo dao động trên CHIP. Hai tụ 30 pF được thêm vào để ổn định dao động.
• Chân 20 (Vss) nối đất (Vss = 0).
• Từ chân 2128 là Port 2 (P2.0, P2.1, . . ., P2.7) dùng vào hai mục đích: làm Port
xuất/nhập I/O hoặc dùng làm byte cao của bus địa chỉ thì nó không còn tác dụng
I/O nữa. Bởi vì ta muốn dùng EPROM và RAM ngoài nên phải sử dụng Port 2 làm
byte cao bus địa chỉ.
• Chân 29 (PSEN) là tín hiệu điều khiển xuất ra của 8051, nó cho phép chọn bộ nhớ
ngoài và được nối chung với chân của OE (Outout Enable) của EPROM ngoài để
cho phép đọc các byte của chương trình. Các xung tín hiệu PSEN hạ thấp trong suốt
thời gian thi hành lệnh. Những mã nhị phân của chương trình được đọc từ EPROM
đi qua bus dữ liệu và được chốt vào thanh ghi lệnh của 8051 bởi mã lệnh.
• Chân 30 (ALE : Adress Latch Enable) là tín hiệu điều khiển xuất ra của 8051, nó
cho phép phân kênh bus địa chỉ và bus dữ liệu của Port 0.
• Chân 31 (EA : Eternal Acess) được đưa xuống thấp cho phép chọn bộ nhớ mã
ngoàiđối với 8031.

Đối với 8051 thì :

EA = 5V : Chọn ROM nội.

EA = 0V : Chọn ROM ngoại.

EA = 21V : Lập trình EPROM nội.

9
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

• Các chân từ 32 đến 39 là Port 0 (P0.0, P0.1, . . . , P0.7) dùng cả hai mục đích: Vừa
làm byte thấp cho bus địa chỉ, vừa làm bus dữ liệu, nếu vậy Port 0 không còn chức
năng xuất nhập I/O nữa.
• Chân 40 (Vcc) được nối lên nguồn 5V.

1.2.3 Tổ chức bộ nhớ

Hình 1.3 Tóm tắt bộ nhớ dữ liệu trên chip


• RAM mục đích chung

Trong bản đồ bộ nhớ trên, 80 byte từ địa chỉ 30H7FH là RAM mục đích chung. Kể cả
32byte phần dưới từ 00H2FH cũng có thể sử dụng giống như 80 byte ở trên, tuy nhiên 32
byte còn có mục đích khác sẽ đề cập sau.

10
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

Bất kỳ vị trí nào trong RAM mục đích chung cũng có thể được truy xuất tùy ý giống
như việc sử dụng các mode để định địa chỉ trực tiếp hay gián tiếp. Ví dụ để đọc nội dung
của RAM nội có địa chỉ 5FH vào thanh ghi tích lũy thì ta dùng lệnh : MOV A, 5FH.

RAM nội cũng được truy xuất bởi việc dùng địa chỉ gián tiếp qua R0 và R1. Hai
lệnh sau đây sẽ tương đương lệnh trên :

MOV R0, #5FH

MOV A, @R0

Lệnh thứ nhất dùng sự định vị tức thời để đưa giá trị 5FH vào thanh ghi R0, lệnh
thứ hai dùng sự định vị gián tiếp để đưa dữ liệu “đã được trỏ đến bởi R0” vào thanh ghi
tích lũy A.

• RAM định vị

8051 chứa 210 vị trí có thể định vị bit, trong đó có 128 bit nằm ở các địa chỉ từ 20H2FH
và phần còn lại là các thanh ghi chức năng đặc biệt.

• Các băng thanh ghi (Register Banks)

32 vị trí nhớ cuối cùng của bộ nhớ từ địa chỉ byte 00H1FH chức các dãy thanh ghi. Tập
hợp các lệnh của 8051 cung cấp 8 thanh ghi từ R0R7 ở địa chỉ 00H07H nếu máy tính
mặc nhiên chọn để thực thi. Những lệnh tương đương dùng sự định vị trực tiếp. Những giá
trị dữ liệu được dùng thường xuyên chắc chắn sẽ sử dụng một trong các thanh ghi này.

• Các thanh ghi chức năng đặc biệt (Special Function Register)

Có 21 thanh ghichức năng đặc biệt SFR ở đỉnh của RAM nội từ địa chỉ các thanh ghi chức
năng đặc biệt được định rõ, còn phần còn lại không định rõ.

Mặc dù thanh ghi A có thể truy xuất trực tiếp, nhưng hầu hết các thanh ghi chức
năng đặc biệt được truy xuất bằng cách sử dụng sự định vị địa chỉ trực tiếp. Chú ý rằng
vài thanh ghi SFR có cả bit định vị và byte định vị. Người thiết kế sẽ cẫn thận khi truy xuất
bit mà không truy xuất byte.

11
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

1.3 Tổng quan về chuyển đổi tương tự-số (ADC)

Các bộ chuyển đổi tương tự-sô, viết tắt là ADC thực hiện hai chức năng cơ bản là lượng tử
hóa và mã hóa. Lượng tử hóa là gán cho những mã nhị phân cho từng giá trị rời rạc sinh ra
trong quá trình lượng tử hóa.

Biến đổi tương tự – số (analog – digital) là thành phần cần thiết trong việc xử lý
thông tin và các cách điều khiển sử dụng phương pháp số. Tín hiệu thực ở Analog. Một hệ
thống tiếp nhận dữ liệu phải có các bộ phận giao tiếp Analog – Digital (A/D).

Các bộ chuyển đổi tương tự số, viết tắt là ADC thực hiện hai chức năng cơ bản là
lượng tử hóa và mã hóa. Lượng tử hóa là gán cho những mã nhị phân cho từng giá trị rời
rạc sinh ra trong quá trình lượng tử hóa.

• Quan hệ In – Out:

Biến đổi AD có tính chất tỉ lệ. Tín hiệu vào Analog được biến đổi thành một phân
số X bằng cách so sánh với tín hiệu tham chiếu Vref. Đầu ra của bộ ADC là mã của phân
số này. Bất kỳ một sai số tín hiệu Vref nào cũng sẽ dẫn đến sai số mức ra, vì vậy người ta
cố gắn giữ cho Vref càng ổn định càng tốt.

Hình 1.4 Quan hệ vào ra các khối ADC


Nếu bộ ADC xuất mã ra gồm n bit thì số mức ra rời rạc là 2n. Đối quan hệ tuyến
tính, tần vào được lượng tử hóa theo đúng mức này. Mỗi mức như vậy là một tín hiệu
Analog được phân biệt với hai mã kế tiếp nhau, nó chính là kích thước của LSB (Least
Significant Bit).

FS
Q = LSB =
2n
➢ Trong đó Q: Lượng tử
➢ LSB: Bit có trọng số thấp nhất

12
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

➢ FS: Giá trị toàn thang

Hình 1.5 Quan hệ vào ra


Tất cả các giá trị Analog của lượng tử Q được biểu diễn bởi mã số, mà mã này tương
ứng với giá trị trung bình của lượng tử (có thể hiểu là giữa khoảng LSB) gọi là mức ngưỡng.
Các giá trị Analog nằm trong khoảng từ mức ngưỡng sai biệt đi ± ½ LSB vẫn được thể
hiện bằng cùng một mã, đó là sai số lượng tử hóa. Sai số này có thể sẽ giảm đi bằng cách
tăng số bit trong mã ra bộ ADC.

• Độ phân giải

Là giá trị biến đổi nhỏ nhất của tín hiệu vào ra được yêu cầu để thay đổi mã lên một
mức. Độ phân giải được đưa ra với giả thiết lý tưởng.

• Độ chính xác

Sự sai biệt giữa các giá trị điện áp tín hiệu vào so với giá trị FS tương đương với mã
xuất ra. Thường có ghi trong đặc tính của các bộ ADC thương mại.

• ADC

Tùy theo công nghệ chế tạo mà bộ ADC có đầu vào đơn cực hay lưỡng cực, đa số
nằm trong khoảng 0…5V hoặc 0…10V đối với đơn cực và -5…+5V hoặc –10V…+10V
đối với ADC lưỡng cực. Tín hiệu vào cần phù hợp với tầm vào xác định cho từng bộ ADC.
Nếu đầu vào không hết thang sẽ tạo mã vô dụng ở đầu ra. Vấn đề này được giải quyết bằng

13
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

cách chọn tầm đầu vào bộ ADC sau đó chỉnh độ lợi thích hợp cho đầu vào của nguồn
Analog.

Khi sử dụng bộ ADC đơn cực mà có tín hiệu vào là lưỡng cực trong khoảng ±Vpp
thì ta cần phải cộng điện áp vào Vi với một điện áp nền bằng +Vpp, khi đó ta sẽ có Vi nằm
trong khoảng 0..+2Vpp; tín hiệu này sẽ được đưa tới đầu vào bộ ADC. Nếu sử dụng ADC
lưỡng cực thì không cần cộng tín hiệu và đầu ra ta sẽ nhận được mã lưỡng cực.

• Đầu ra bộ ADC

Đa số các ADC có đầu ra 8 Bits, 16 Bits … dù vậy cũng có loại 3½ Digit, mã BCD,
10 Bits, 14 Bits. Đầu các bộ ADC thường là mã nhị phân tự nhiên hoặc có dấu. ADC dùng
cho máy đo chỉ thị số đa dụng thường là mã BCD.

Hình 1.6 Các ngõ vào, ra chính của bộ ADC


Hình vẽ cho thấy đầu vào và đầu ra của bộ ADC. Mọi ADC đều yêu cầu có tín hiệu
Vr. Bất kỳ một sai số nào trên Vr đều gây ra lỗi độ lợi ở đặc tính của AD. Vì vậy Vr là tín
hiệu đảm bảo độ chính xác và ổn định của bộ AD. Dùng IC ổn áp có thể thỏa mãn điều
này.

• Tín hiệu điều khiển.

Mọi bộ ADC đều có tính xung Clock và tín hiệu điều khiển để hoạt động. Thiết bị
ngoài giao tiếp với ADC sẽ khởi động quá trình AD bằng cách phát một xung Start vào
đầu vào Start của ADC, ADC sẽ nhận biết cạnh lên của xung Start và ngay sau đó nó sẽ
kéo đường EOC (End of Conversion) xuống thấp (không tích cực). Lúc này ADC đang
thực hiện quá trình biến đổi, tương ứng với mỗi xung Clock đưa vào ADC sẽ thực hiện
được một bước biến đổi, sau một bước nhất định tùy theo bộ ADC, thì quá trình biến đổi
hoàn thành. Khi biến đổi xong, AD sẽ nâng đường EOC lên mức cao, tín hiệu này có thể
dùng để kích một ngắt cứng của máy tính (nếu dùng giao tiếp với máy tính). Để đọc được

14
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

dữ liệu đầu ra của bộ ADC thì phải nâng đường OE (Output Enable) của ADC lên mức
cao, sau khi đọc xong thì lại trả đường này về mức thấp.

CHƯƠNG 2: TÍNH TOÁN VÀ THIẾT KẾ MẠCH ĐO


2.1 Sơ đồ khối

Hình 2.1 Sơ đồ khối mạch đo nhiệt độ


Tín hiệu tương tự từ LM35 sẽ được đưa vào ADC. Tại đây, ADC sẽ thực hiện việc
chuyển đổi tín hiệu tương tự sang tín hiệu số để đưa vào VXL. VXL có nhiệm vụ tính toán
theo chương trình đã được định sẵn trước đó. Khi đã tính toán ra giá trị nhiệt độ, VXL đưa
kết quả ra hiển thị trên hệ thống LCD. Và đó chính là kết quả cần đo.

2.2 Tính toán và thiết kế

2.2.1 Mạch đo cảm biến và khuếch đại

Khảo sát nhiệt độ cần đo thuộc dải từ 0 đến 150°C.

15
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

a. Mạch đo

Tính toán nhiệt độ đầu ra của LM35:

Ta có : U= 𝑡 × 𝑘
• Với : U là điện áp đầu ra
• T là nhiệt độ môi trường đo
• K là hệ số theo nhiệt độ của Lm35 : 10mV/1°C
Giả sử điện áp Vcc cấp cho LM35 là 5V ADC 10bit
5 5
Vậy bước thay đổi của LM35 sẽ là : =
210 1024

Giá trị ADC đo được thì đầu điện áp đầu vào của LM35 là :
𝑡×𝑘 10−2 × 1024 × 𝑡
= = 2048 × 𝑡
5 × 1024 5
Vay nhiệt độ ta đo được t = giá trị ADC/2048

b. Sai số của LM35

• Tại °C thì điện áp của LM35 là 10mV


• Tại 150 °C thì điện áp của LM35 là 1.5V
 Dải điện áp ADC biến đổi là 1.5 – 0.01 = 1.49V
• ADC 11 bit nên bước thay đổi của ADC là: n = 2.44mV
0.00244
 Sai số của hệ thống đo là Y= = 0.164%
1.49

2.2.2 Vi điều khiển và cách mạch xuất nhập

a, Mạch tạo dao động

16
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

• Ghi chú: C1,C2= 30pF±10pF (thường được sử


dụng với C1,C2 là tụ 33pF) dùng ổn định dao
động cho thạch anh.

Hình 2.2 Mạch tạo dao động bằng thạch anh cung cấp
xung nhịp (clock) cho vi điều khiển

b. Mạch Reset

Việc kết nối chân RESET đảm bảo hệ thống bắt đầu làm việc khi Vi điều khiển được cấp
điện, hoặc đang hoạt động mà hệ thống bị lỗi cần tác động cho Vi điều khiển hoạt động
trở lại, hoặc do người sử dụng muốn quay về trạng thái hoạt động ban đầu. Vì vậy chân
RESET được kết nối như sau:

• Vi điều khiển sử dụng thạch anh có tần số fzat =


12MHz sử dụng C=10µF và R=10KΩ.

Hình 2.3 Mạch Reset

.
c. Mạch sử dụng điện trở treo

Sử dụng điện trở treo trước


mỗi Port, đồng thời nối thêm
giắc cắm 8 chân để làm
đường nhận hoặc xuất tín
hiệu kết nối với các mạch
điện khác từ bên ngoài.

Hình 2.4 Mạch sử dụng điện trở treo

17
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

2.2.3 Ghép nối ADC và VĐK

Hình 2.5 Ghép nối ADC với VĐK 8051

Với 8051 chúng ta sẽ dùng PORT3 làm port nhập data của ADC808. Chúng ta cần có 3
chân dùng để điều khiển chân đầu vào của tín hiệu vào ADC là P2,0, P2.1, P2.2.
Ngoài ra để có thể điều khiển được quá trình truy xuất/giao tiếp ADC thì chúng ta cũng
cần thêm một số chân để kết nối với ADC0808 nữa, cụ thể là:

• Chân EOC của ADC0808 sẽ kết nối với chân P2.5 của 8051.
• Chân OE của ADC0808 sẽ kết nối với chân P2.6 của 8051.
• Chân LE của ADC0808 sẽ kết nối với chân P2.3 của 8051.
• Chân START của ADC0808 sẽ kết nối với chân P2.4 của 8051.
• Nguồn xung clock cấp cho ADC0808 sẽ được tạo ra bởi chân P2.7.

18
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

2.2.4 Mạch hiển thị

Hình 2.6 Ghép nối VĐK 8051 với LCD

Kết nối LCD với VĐK AT89S52 như sau:


• Chân 1 nối GND.
• Chân 2, chân 3 được nối với biến trở để chỉnh độ tương phản.
• Chân RS, EN, RW nối với 3 chân P0.0, P0.1, P0.2 cúa vi điều khiển.
• 8 chân dữ liệu kết nối port PO của vi điều khiển và một điện trở thanh 10k ohm để đảm
bảo đúng mức logic cho dữ liệu.

19
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

2.2.5 Mạch nguyên lý chung

Hình 2.7 Mạch nguyên lý đo nhiệt độ

20
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

CHƯƠNG 3: LẬP TRÌNH VĐK VÀ MÔ PHỎNG


3.1 Nạp code cho VĐK 8051
Code:
#include <REGX51.H>
#define VREF 5 //VREF=5V
3.1.1 Khai báo chân giao tiếp ADC0808
#define ADC0808_DATA P3 //PORT
#define ADC0808_A P2_0 //PIN
#define ADC0808_B P2_1
#define ADC0808_C P2_2
#define ADC0808_ALE P2_3
#define ADC0808_START P2_4
#define ADC0808_EOC P2_5
#define ADC0808_OE P2_6
#define ADC0808_CLK P2_7
3.1.2 Khai báo chân giao tiếp LCD16x2 4bit
#define LCD_RS P0_0
#define LCD_RW P0_1
#define LCD_EN P0_2
#define LCD_D4 P0_4
#define LCD_D5 P0_5
#define LCD_D6 P0_6
#define LCD_D7 P0_7
/*****************ADC0808*********************/
3.1.3 Hàm đọc ADC0808 theo kênh
unsigned char ADC0808_Read(unsigned char channel){
unsigned char kq;

21
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

ADC0808_A = channel & 0x01;


ADC0808_B = channel & 0x02;
ADC0808_C = channel & 0x04;
ADC0808_ALE = 1;
ADC0808_START = 1;
ADC0808_ALE = 0;
ADC0808_START = 0;
while(ADC0808_EOC);
while(!ADC0808_EOC);
ADC0808_OE = 1;
kq = ADC0808_DATA;
ADC0808_OE = 0;
return kq;
}
3.1.4 Hàm delay
void delay_us(unsigned int t){
unsigned int i;
for(i=0;i<t;i++);
}
void delay_ms(unsigned int t){
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<125;j++);
}
3.1.5 Chương trình giao tiếp LCD 16x2 4bit
void LCD_Enable(void){
LCD_EN =1;

22
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

delay_us(3);
LCD_EN=0;
delay_us(50);
}
3.1.6 Hàm gửi 4 bit dữ liệu ra LCD
void LCD_Send4Bit(unsigned char Data){
LCD_D4=Data & 0x01;
LCD_D5=(Data>>1)&1;
LCD_D6=(Data>>2)&1;
LCD_D7=(Data>>3)&1;
}
3.1.7 Hàm gửi 1 lệnh cho LCD
void LCD_SendCommand(unsigned char command){
LCD_Send4Bit(command >>4);/* Gui 4 bit cao */
LCD_Enable();
LCD_Send4Bit(command); /* Gui 4 bit thap*/
LCD_Enable();
}
void LCD_Clear(){// Ham Xoa Man Hinh LCD
LCD_SendCommand(0x01);
delay_us(10);
}
3.1.8 Hàm khởi tạo LCD
void LCD_Init(){
LCD_Send4Bit(0x00);
delay_ms(20);
LCD_RS=0;

23
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

LCD_RW=0;
LCD_Send4Bit(0x03);
LCD_Enable();
delay_ms(5);
LCD_Enable();
delay_us(100);
LCD_Enable();
LCD_Send4Bit(0x02);
LCD_Enable();
LCD_SendCommand( 0x28 ); // giao thuc 4 bit, hien thi 2 hang, ki tu 5x8
LCD_SendCommand( 0x0c); // cho phep hien thi man hinh
LCD_SendCommand( 0x06 ); // tang ID, khong dich khung hinh
LCD_SendCommand(0x01); // xoa toan bo khung hinh
}
void LCD_Gotoxy(unsigned char x, unsigned char y){
unsigned char address;
if(!y)address=(0x80+x);
else address=(0xc0+x);
delay_us(1000);
LCD_SendCommand(address);
delay_us(50);
}
void LCD_PutChar(unsigned char Data){//Ham Gui 1 Ki Tu
LCD_RS=1;
LCD_SendCommand(Data);
LCD_RS=0 ;
}

24
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

void LCD_Puts(char *s){//Ham gui 1 chuoi ky tu


while (*s){
LCD_PutChar(*s);
s++;
}
}
3.1.9 Show Temp
unsigned char Temp(unsigned char adc){//Tinh nhiet do tu adc8bit
return ((VREF*adc)/2.56f); //Tinh nhiet do
} */
void TempShow(unsigned char z){ //Chuyen doi hien thi
LCD_Puts("Nhiet do: ");
LCD_PutChar((z/100)+48);//Tram
LCD_PutChar((z%100/10)+48);//Chuc
LCD_PutChar((z%10)+48);//Don vi
LCD_Puts("°C");
}
3.1.10 Chương trình ngắt timer 0
void INT_Timer0()interrupt 1 {
//ctr phuc vu ngat tao xung clock cho ADC0808
ADC0808_CLK=~ADC0808_CLK; //Dao bit
}
3.1.11 Chương trình chính
unsigned char temp;
void main(){
//Tao xung clock cho ADC0808 dung ngat timer
TMOD=0x02; //Timer0 8bit tu nap lai

25
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

TH0=TL0=236;//Tao ngat 20us


TR0=1;//Khoi dong timer0
ET0=1;//Ngat timer0
EA=1;//Cho phep ngat cuc bo
//init
LCD_Init();//Khoi tao LCD
delay_ms(200);
LCD_Puts("Do nhiet do...");//Gui chuoi len LCD
delay_ms(500);
LCD_Clear();//Xoa man hinh
LCD_Gotoxy(0,1);
LCD_Puts("Do An 1 - VNT");
while(1){
LCD_Gotoxy(0,0);
temp=ADC0808_Read(0); //Doc ADC0
//temp=Temp(temp); //Tinh nhiet do
TempShow(temp); //Hien thi nhiet do
delay_ms(500);//0.5s doc mot lan
}
}//THE END

3.2 Mô phỏng

Sử dụng phần mềm KeliC V5 để nạp code cho AT89S52 khi mô phỏng trong Proteus

26
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

Hình 3.1 Mô phỏng mạch đo bằng Proteus

27
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

CHƯƠNG 4 : LÀM MẠCH THỰC TẾ


4.1 Sử dụng phần mềm Altium để vẽ mạch in

Hình 4.1 Vẽ mạch trên phần mềm Altium


4.2 Chuẩn bị các linh kiện
• Tụ hóa 10uF-25v
• 1 Nút nhấn 2p
• Trở 10k
• 1 Thanh Jump đực thẳng
• 1 Thanh Jump cái thẳng
• 1 Day trắng 2P –
• Nguồn 5v-1A + Jack nối nguồn DC 5.5 ( Ngoài ra con các dung cu làm mach in:
Phip dong, bôt sat, may hän, máy khoan mach,...)
• IC 89S52 + đế cắm 40p
• 1 LM 35
• 1 LCD 1602
• 1 ADC 0808 + đế cắm
• 2 Biến trở tam giác 10k

28
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

• 1 Thach anh 12 Mhz


• 2 Tu gốm 33p

4.3 Làm mạch


• Tiến hành in mạch đã vẽ ra giấy in mạch.

Hình 4.2 In mạch đã vẽ


• Cắt phíp đồng sao cho vừa với phần mạch đã in, đặt phần giấy vừa in vào phíp đồng,
sử dụng bàn là nhiệt độ cao để là cho mực in vào phíp đồng.

Hình 4.3 In mạch lên phíp đồng

29
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

• Sử dụng nước sôi và cho dung dịch muối ăn mòn để tạo các đường dây cho mạch.

Hình 4.4 Sử dụng dung dịch ăn mòn

• Khoan lỗ để gắn linh kiện.

Hình 4.5 Khoan lỗ

30
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

• Gắn, hàn linh kiện.

Hình 4.6, 4.7 Hàn linh kiện


• Kết quả:

Hình 4.8 Mạch sau khi hoàn thành

31
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

4.4 Nạp code


4.4.1 Sử dụng USB ISP để nạp code cho AT89s52 bằng phần mềm progisp

Hình 4.9 Giao diện phần mềm Progisp

4.4.2 Mạch nạp code sử dụng USB ISP

Hình 4.10 Mạch nạp code sử dụng USB ISP

32
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

4.5 Cắm nguồn chạy thử mạch

Hình 4.11 Mạch đã hoạt động thành công

33
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

KẾT LUẬN
Trong quá trình làm đồ án 1 với đề tài: “MẠCH ĐO NHIỆT ĐỘ SỬ DỤNG VĐK
8051” đã giúp em hiểu rõ hơn những vấn đề lý thuyết và thực tế, nhằm củng cố kiến thức
đã học trong thời gian qua và đỡ bỡ ngỡ hơn trong quá trình thực tế sau này.
Được sự hướng dẫn của cô giáo ThS. Đinh Thị Lan Anh, sự giúp đỡ của bạn bè và
sự nỗ lực của bản thân em đã hoàn thành những công việc sau:
• Tìm hiểu về các phương pháp đo nhiệt độ.
• Tìm hiểu về cảm biến nhiệt độ LM35.
• Tìm hiều về họ VĐK 8051, ADC.
• Kết quả mô phỏng đo nhiệt độ trên Proteus.
• Vẽ mạch trên Altium và làm mạch thực tế.
Tuy nhiên do thời gian và hiểu biết của em có hạn nên đồ án 1 còn một số điểm hạn
chế sau:
Hệ thống chưa ổn định và độ chính xác chưa cao.
Do hạn chế về thời gian nghiên cứu và trình độ của bản thân nên đồ án vẫn còn
những thiếu sót. Em rất mong nhận được sự góp ý của thầy cô và bạn bè để bản đồ án của
em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Hà Nội, tháng 07, năm 2023
Sinh viên
Thành
Vũ Ngọc Thành

34
ĐỒ ÁN I - Vũ Ngọc Thành _20202707

TÀI LIỆU THAM KHẢO


[1] Cô Phạm Thị Ngọc Yến, Bài giảng Kỹ thuật đo lường.
[2] Hoàng Minh Sơn, Mạng truyền thông công nghiệp, Nhà xuất bản khoa học và kỹ
thuật.
[3] Nguyễn Tăng Cường, Phan Quốc Thắng, Cấu trúc và lập trình họ vi điều khiển
8051, Nhà xuất bản khoa học và kỹ thuật.
[4] http://webdien.com/d/index.php
[5] http://tailieu.vn
[6] https://www.huongnghiepviet.com

35

You might also like