BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐH GIAO THÔNG VẬN TẢI TP HCM KHOA ĐIỆN – ĐIỆN TỬ VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN HỌC PHẦN KỸ THUẬT VI XỬ LÝ Mã học phần 033103 Đề tài MẠCH ĐO NHIỆT ĐỘ SỬ DỤNG CẢM BIẾN LM35 HIỂN THỊ LCD Sinh viên thực hiện Ngô Quốc Trưởng Lê Văn Huy 1951050105 1951050061 TD19 TD19 Tp Hồ Chí Minh, ngày 12 tháng 12 năm 2021 ĐH Giao thông Vận tải TP HCM GVHD Lưu Hoàng Minh NHÓM 07 – TD19 i LỜI NÓI ĐẦU Xuất hiện từ những năm 70 của thế kỷ 20 cho đến nay, chúng ta có thể dễ dàng tìm thấy v.
TỔNG QUAN VỀ ĐỀ TÀI
Yêu cầu thiết kế
2.1.1 Giới thiệu chung họ vi điều khiển MCS-51
Hiện nay, họ vi điều khiển MCS-51 được sử dụng rộng rãi trên toàn thế giới, bao gồm cả Việt Nam Vào năm 1980, Intel đã giới thiệu chip 8051 (80C51), bộ vi điều khiển đầu tiên thuộc họ này, với các đặc điểm nổi bật như 4KB ROM, 128-byte RAM, 32 đường xuất nhập, 1 port nối tiếp và 2 bộ định thời 16 bit Sự ra đời của chip này đã đánh dấu bước tiến quan trọng trong lĩnh vực vi điều khiển.
Vi điều khiển 8052, 8053, 8055 đã được cải tiến với nhiều tính năng mới Hiện tại, Intel không còn cung cấp các vi điều khiển MCS-51, và các nhà sản xuất như Atmel, Philips, AMD, Siemens, Matra&Dallas, và Semiconductors đã trở thành những nhà cung cấp thứ hai cho các chip này Vi điều khiển Atmel, với nhiều loại khác nhau, được sử dụng rộng rãi tại Việt Nam và trên thế giới Các chip vi điều khiển của Atmel có tính năng tương tự như MCS-51 của Intel, với mã số được thay đổi nhẹ; ví dụ, 80C52 của Intel trở thành 89C52 (AT89C52) khi sản xuất tại Atmel Các mã số tương đương cho 8051, 8053, 8055 lần lượt là 89C51, 89C53, 89C55 Vi điều khiển Atmel ngày càng được cải tiến, bổ sung nhiều chức năng tiện lợi cho người dùng.
Hình 2.1 Một số vi điều khiển thuộc họ MCS-51
Sau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trường dòng
Vi điều khiển 89Sxx được nâng cấp với nhiều cải tiến, đặc biệt là tính năng nạp chương trình theo chế độ nối tiếp, mang lại sự đơn giản và tiện lợi cho người dùng.
CƠ SỞ LÝ THUYẾT
Vi điều khiển AT89S52
2.1.1 Giới thiệu chung họ vi điều khiển MCS-51
Hiện nay, họ vi điều khiển MCS-51 được sử dụng rộng rãi trên toàn cầu, đặc biệt là tại Việt Nam Vào năm 1980, Intel đã giới thiệu chip 8051 (80C51), bộ vi điều khiển đầu tiên trong dòng MCS-51, với cấu hình gồm 4KB ROM, 128-byte RAM, 32 đường xuất nhập, 1 cổng nối tiếp và 2 bộ định thời 16 bit Sự phát triển này đã mở ra nhiều ứng dụng mới cho các hệ thống vi điều khiển.
Vi điều khiển 8052, 8053, 8055 đã được cải tiến với nhiều tính năng mới Hiện tại, Intel không còn cung cấp các vi điều khiển MCS-51, mà các nhà sản xuất như Atmel, Philips/Signetics, AMD, Siemens, Matra&Dallas, và Semiconductors đã được cấp phép sản xuất các chip tương tự Trong số đó, vi điều khiển của Atmel được sử dụng phổ biến tại Việt Nam và trên toàn thế giới, với nhiều loại khác nhau Chip của Atmel có tính năng tương đương với MCS-51 của Intel, với mã số được điều chỉnh nhẹ; ví dụ, 80C52 của Intel trở thành 89C52 (AT89C52) khi sản xuất tại Atmel Các mã số tương đương cho 8051, 8053, 8055 lần lượt là 89C51, 89C53, 89C55 Vi điều khiển Atmel ngày càng được cải tiến và bổ sung nhiều chức năng tiện lợi cho người dùng.
Hình 2.1 Một số vi điều khiển thuộc họ MCS-51
Sau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trường dòng
Vi điều khiển 89Sxx được nâng cấp với nhiều cải tiến, đặc biệt là tính năng nạp chương trình qua chế độ nối tiếp, mang lại sự đơn giản và tiện lợi cho người dùng.
Bảng 2.1 Dung lượng và chế độ nạp của các vi điều khiển 89Sxx
Tên chip Dung lượng RAM Dung lượng ROM Chế độ nạp
Tất cả các vi điều khiển đều có phần mềm tương tự nhau với các tập lệnh lập trình giống nhau, trong khi phần cứng được cải tiến với chip có mã số cao hơn Các vi điều khiển thế hệ mới, như 89Cxx, có nhiều tính năng vượt trội hơn so với các thế hệ trước Cấu trúc ROM và RAM của vi điều khiển 89Cxx tương tự như 98Sxx, nhưng 89Sxx được trang bị thêm một số tính năng và chế độ nạp nối tiếp.
Bảng 2.2 Dung lượng và chế độ nạp của các vi điều khiển 89Sxx
Tên chip Dung lượng RAM Dung lượng ROM Chế độ nạp
Vi điều khiển 89S có nhiều tính năng vượt trội hơn so với 89C, trong khi giá cả tương đương Với chế độ nạp ISP (In System Programming), việc nạp cho 89Sxx trở nên đơn giản và tiết kiệm chi phí 89S52 cho phép nạp chương trình trực tiếp mà không cần tháo chip, đồng thời hỗ trợ khả năng xóa và viết lại chương trình nhiều lần mà không cần sử dụng thiết bị master như 89C Toàn bộ cấu trúc phần cứng hoàn toàn tương thích, cho phép các chương trình viết cho 89C chạy tốt trên 89S52.
2.1.2 Sơ đồ khối vi điều khiển AT89S52
Hình 2.2 Sơ đồ khối vi điều khiển AT89S52
2.1.3 Khảo sát đồ chân vi điều khiển AT89S52
IC 89S52 có 40 chân với nhiều chức năng, bao gồm vào ra I/O, đọc, ghi, địa chỉ, dữ liệu và ngắt Đa số các nhà phát triển thường sử dụng chip này trong các ứng dụng nhúng.
40 chân với hai hàng chân DIP, nên chúng ta cùng khảo sát Vi điều khiển với 40 chân dạng DIP
Hình 2.3 Sơ đồ chân vi điều khiển AT89S52
− Chân số 40 là VCC cấp điện áp nguồn cho vi điều khiển
Chân số 20 nối GND (hay nối Mass)
Khi thiết kế cần sử dụng một mạch ổn áp để bảo vệ cho Vi điều khiển, cách đơn giản là sử dụng IC ổn áp 7805
Port 0 gồm 8 chân (từ chân 32 đến 39) có hai chức năng:
Chức năng xuất/nhập của các chân trong mạch điện cho phép nhận tín hiệu từ bên ngoài để xử lý, hoặc xuất tín hiệu ra bên ngoài, ví dụ như điều khiển đèn LED đơn sáng và tắt.
Port 0, với 8 chân từ AD7 đến AD0, đảm nhiệm chức năng là bus dữ liệu và bus địa chỉ Nó không chỉ lấy dữ liệu từ ROM hoặc RAM ngoại khi có kết nối với bộ nhớ ngoài, mà còn được sử dụng để xác định địa chỉ của bộ nhớ này.
Port P1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm các đường xuất/nhập, không có chức năng khác
Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:
Chức năng của bus địa chỉ cao (A8-A15) là quan trọng khi kết nối với bộ nhớ ngoài có dung lượng lớn Để định địa chỉ cho bộ nhớ, cần sử dụng 2 byte, trong đó byte thấp được đảm nhận bởi P0, còn byte cao được giao cho P2.
Port 3 gồm 8 chân (từ chân 10 đến 17):
− Với mỗi chân có một chức năng riêng thứ hai như trong bảng sau :
Bảng 2.3 Chức năng các chân của port 3
P3.0 RxD Ngõ vào nhận dữ liệu nối tiếp
P3.1 TxD Ngõ xuất dữ liệu nối tiếp
P3.2 INT0 Ngõ vào ngắt cứng thứ 0
P3.3 INT1 Ngõ vào ngắt cứng thứ 1
P3.4 T0 Ngõ vào của Timer/Counter thứ 0
P3.5 T1 Ngõ vào của Timer/Counter thứ 1
P3.6 WR Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài
P1.0 T2 Ngõ vào của Timer/Counter thứ 2
P1.1 T2X Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2
Ngõ vào RST tại chân 9 là ngõ vào Reset, có chức năng thiết lập trạng thái ban đầu cho vi điều khiển Hệ thống sẽ được khôi phục các giá trị ban đầu khi ngõ này ở mức 1 trong ít nhất 2 chu kỳ máy.
Chân 18 và 19 của vi điều khiển được sử dụng để nhận tín hiệu xung clock từ bên ngoài, thường kết hợp với thạch anh và tụ điện nhằm tạo ra nguồn xung clock ổn định.
2.1.3.9 Chân cho phép bộ nhớ chương trình PSEN
PSEN (Program Store Enable) là tín hiệu được phát ra từ chân 29, có chức năng truy xuất bộ nhớ chương trình bên ngoài Chân này thường được kết nối với chân OE (Output Enable) của ROM bên ngoài.
Khi vi điều khiển tương tác với bộ nhớ chương trình ngoài, chân tín hiệu kích hoạt sẽ phát ra tín hiệu ở mức thấp và được kích hoạt hai lần trong mỗi chu kỳ máy.
Khi thực hiện chương trình trong ROM nội, chân này giữ ở mức logic không tích cực (logic 1), và không cần kết nối nếu không sử dụng.
2.1.3.10 Chân ALE (chân cho phép chốt địa chỉ-chân 30)
Khi vi điều khiển truy xuất bộ nhớ bên ngoài, port 0 đảm nhiệm cả chức năng bus địa chỉ và bus dữ liệu, do đó cần phải tách biệt các đường dữ liệu và địa chỉ Tín hiệu ở chân ALE được sử dụng như tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối với IC chốt.
MÀN HÌNH TINH THỂ LỎNG LCD 16x2
2.2.1 Giới thiệu chung về màn hình tinh thể lỏng LCD
Trong những năm gần đây, màn hình tinh thể lỏng LCD đã trở nên phổ biến và dần thay thế các loại đèn LED truyền thống Sự chuyển đổi này xuất phát từ nhiều lý do, bao gồm chất lượng hình ảnh vượt trội, khả năng tiết kiệm năng lượng và thiết kế mỏng nhẹ của màn hình LCD.
− Màn hình LCD có giá thành hạ
− Khả năng hiển thị số, ký tự và đồ hoạ tốt hơn nhiều so với đèn LED (đèn LED chỉ hiển thị được số và một số ký tự)
Sử dụng bộ điều khiển tương phản LCD giúp giảm tải công việc cho CPU, trong khi đèn LED vẫn cần CPU hoặc phương pháp khác để duy trì hiển thị dữ liệu.
− Dễ dàng lập trình các ký tự và đồ hoạ
2.2.2 Chức năng và nhiệm vụ của các chân
Hình 2.4 Sơ đồ chân của LCD 16x2
Bảng 2.4 Chức năng các chân của LCD 16x2
STT chân Kí hiệu Chức năng chân
1 VSS Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC = 5V của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của màn hình
Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi
Logic "0": Các chân DB0-DB7 của bus sẽ kết nối với thanh ghi lệnh IR của LCD khi ở chế độ ghi, hoặc với bộ đếm địa chỉ của LCD khi ở chế độ đọc.
− Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic
“1” để LCD ở chế độ đọc
Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E
Khi ở chế độ ghi, dữ liệu từ bus sẽ được chuyển vào thanh ghi nội bộ của LCD khi tín hiệu chân E phát hiện xung chuyển từ cao xuống thấp.
Khi ở chế độ đọc, dữ liệu từ LCD sẽ được xuất ra các chân DB0-DB7 khi phát hiện sự chuyển đổi từ thấp sang cao (low-to-high transition) ở chân E Dữ liệu này sẽ được giữ trên bus cho đến khi chân E trở về mức thấp.
7 D0 8 đường của bus dữ liệu dùng để trao đổi thông tin với
MPU Có 2 chế độ sử dụng 8 đường bus này
− Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7
− Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7
15 LED+ Nguồn dương cho đèn nền
16 LED- GND cho đèn nền
Bảng 2.5 Bảng mã lệnh của LCD
Mã lệnh(hex) Lệnh đến thanh ghi của LCD
01 Xóa màn hình hiển thị
04 Giảm con trỏ (dịch con trỏ sang trái)
06 Tăng con trỏ (dịch con trỏ sang phải)
05 Dịch hiển thị sang phải
07 Dịch hiển thị sang trái
08 Tắt con trỏ, tắt hiển thị
0A Tắt hiển thi, bật con trỏ
0C Tắt con trỏ, bật hiển thị
0E Bật hiển thị, nhấp nháy con trỏ
0F Tắt hiển thị, nhấp nháy con trỏ
10 Dịch vị trí con trỏ sang trái
14 Dịch vị trí con trỏ sang phải
18 Dịch toàn bộ hiển thị sang trái
1C Dịch toàn bộ hiển thị sang phải
80 Đưa con trỏ về đầu dòng thứ nhất
C0 Đưa con trỏ về đầu dòng thứ hai
38 Hai dòng và ma trận 5x7
2.2.3 Các bước lập trình hiển thị ký tự lên LCD
Một chương trình hiển thị ký tự trên LCD sẽ đi theo 4 bước sau:
− Xóa toàn bộ màn hình
− Đặt chế độ hiển thị
− Đặt vị trí con trỏ (Nơi bắt đầu của ký tự hiển thị )
Các bước 3 và 4 có thể được lặp lại nhiều lần nếu có nhiều ký tự cần hiển thị Mặc định, chế độ hiển thị sẽ là chế độ dịch, và con trỏ sẽ bắt đầu ở dòng đầu tiên Để điều khiển hoạt động của LCD, nên sử dụng port 1 hoặc port 2 cho việc xuất nhập dữ liệu, trong khi các chân tạo tín hiệu điều khiển RS, RW, và E có thể được chọn từ các chân còn lại của các port.
IC chuyển đổi analog – digital ADC0808
IC ADC0808 là một vi mạch chuyển đổi tín hiệu tương tự sang kỹ thuật số với độ phân giải 8-bit, cho phép chuyển đổi tín hiệu điện tương tự thành 256 mức điện áp dựa trên Vref được cung cấp.
− Giao tiếp dễ dàng với tất cả các vi xử lý
− Hoạt động với thang đo tỷ lệ với 5VDC hoặc điện áp chuẩn có thể điều chỉnh được
− Không cần căn chỉnh không hay toàn thang (full-scale)
− Multiplex 8 kênh với địa chỉ logic
− Tầm điện áp vào từ 0 – 5V với nguồn cung cấp đơn 5V
− Ngõ ra phù hợp với điện áp TTL
− Sai số không điều chỉnh được tổng cộng: 1 LSB
− Thời gian chuyển đổi: Khoảng 100s
Hình 2.5 Sơ đồ chân ADC0808
− IN0-7: Ngõ vào tín hiệu Analog Input
− START: Chân điều khiển tín hiệu bắt đầu quá trình biến đổi ADC
− EOC (End of Conversion): Chân phát tín hiệu báo kết thúc quá trình chuyển đổi ADC
− 2 -1 - 2 -8 : Ngõ ra tín hiệu số 8-bit
− OUT ENABLE: Chân cho phép xuất
− CLK: Chân nhận nguồn xung Clock (từ 10kHz đến 1282kHz)
− Vcc/ GND: Chân nhận điện nguồn
− Vref+/ Vref-: Chân nhận (input) điện áp tham chiếu
− ALE (Address Latch Enable): Chân chốt địa chỉ ngõ vào
− ADD A, B, C: Các chân địa chỉ ngõ vào
Vì ADC0808 có 3 chân địa chỉ nên nó có thể giám sát đồng thời 8 bộ cảm biến khác nhau 8 kênh tương tự được chọn như bảng dưới đây
Bảng 2.6 Chọn kênh tương tự của ADC0808
Dữ liệu đầu ra ADC là một số nguyên N nằm trong tầm:
.256 (Độ chính xác tuyệt đối)
2.3.2 Giản đồ xung và sơ đồ khối của ADC0808
Hình 2.6 Giản đồ xung ADC0808
Hình 2.7 Sơ đồ khối ADC0808
2.3.3 Các bước lập trình cho ADC0808
Các bước chuyển dữ liệu từ đầu vào của ADC808 vào bộ vi điều khiển như sau:
− Chọn một kênh tương tự bằng cách dùng các chân địa chỉ A, B và C
− Kích hoạt chân cho phép chốt địa chỉ ALE (Address Latch Enable) bằng cách đưa một xung thấp lên cao để chốt địa chỉ
− Kích hoạt chân SC bằng xung cao xuống thấp để bắt đầu chuyển đổi
− Giám sát EOC để báo kết thúc chuyển đổi Đầu ra cao xuống thấp báo rằng dữ liệu đã được chuyển đổi và cần phải được lấy đi
− Kích hoạt chân đọc dữ liệu ra OE của ADC bằng xung cao xuống thấp
ADC0808 không có đồng hồ tích hợp, nên cần cung cấp xung đồng bộ bên ngoài cho chân CLK Nhóm chúng tôi đã sử dụng ngắt timer để tạo xung cho ADC Tốc độ chuyển đổi của ADC0808 phụ thuộc vào tần số đồng hồ kết nối với CLK, tuy nhiên, tốc độ này không thể vượt quá 100ms.
2.4 CẢM BIẾN NHIỆT ĐỘ LM35
LM35 là cảm biến nhiệt mạch tích hợp chính xác cao, với điện áp đầu ra tỷ lệ tuyến tính theo nhiệt độ Celsius Sản phẩm này được sản xuất bởi hãng National Semiconductor Corp và không cần căn chỉnh ngoài, vì đã được hiệu chỉnh sẵn.
Hình 2.8 Cảm biến nhiệt độ LM35
2.4.1 Sơ đồ chân cảm biến nhiệt độ LM35
− Vs: Là chân cung cấp điện áp cho LM 35 hoạt động từ 4 – 20 V
− Vout: Là chân điện áp đầu ra LM35 được đưa vào chân Analog của các bộ ADC
− GND: là chân nối mass
Hình 2.9 Chú thích chân cảm biến nhiệt độ LM35
2.4.2 Đặc tính hoạt động của cảm biến nhiệt độ LM35
LM35 là một cảm biến nhiệt độ analog, hoạt động dựa trên việc đo hiệu điện thế đầu ra Cảm biến này cung cấp điện áp 10mV cho mỗi 1 độ C thay đổi Dưới đây là bảng thông số kỹ thuật chính của LM35.
Bảng 2.7 Bảng thông số kỹ thuật chính của cảm biến nhiệt độ họ LM35
Mã sản phẩm Dải nhiệt độ Độ chính xác Đầu ra
Như vậy, nhóm chúng em chọn cảm biến LM35 để thực hiện đồ án vì có tầm đo rộng từ - 55 đến 150 o C
2.4.3 Phối hợp tín hiệu và ghép nối LM35 với 8051
Phối hợp tín hiệu là thuật ngữ quan trọng trong lĩnh vực thu nhận dữ liệu, thường được áp dụng cho các bộ cảm biến phát ra tín hiệu điện áp, dòng điện, dung kháng hoặc trở kháng Để đảm bảo tín hiệu phù hợp với đầu vào của bộ chuyển đổi ADC, cần phải chuyển đổi các tín hiệu này về dạng điện áp Quá trình chuyển đổi này được gọi là phối hợp tín hiệu.
Phối hợp tín hiệu là quá trình chuyển đổi dòng điện thành điện áp hoặc khuếch đại tín hiệu Ví dụ, bộ cảm biến nhiệt LM35 thay đổi trở kháng theo nhiệt độ, và sự thay đổi này cần được chuyển thành điện áp để các bộ chuyển đổi tương tự sang số (ADC) có thể sử dụng Khi kết nối LM35 với ADC0808, với độ phân giải 10mV/°C của LM35, để đầu ra (D7 – D0) phản ánh chính xác nhiệt độ dương, giá trị Vref+ cần được thiết lập ở mức 2,56V.
Vref- = 0V Ví dụ có thể xem ở bảng dưới đây
Bảng 2.8 Giá trị ngõ ra ADC0808 ứng với từng nhiệt độ khi phối ghép LM35
Nhiệt độ ( o C) V in (mV) D out (D7 – D0)
Để đo nhiệt độ âm và nâng cao độ chính xác của thiết bị đo, cần sử dụng mạch chuyển đổi nhằm chuyển đổi dải điện áp và tăng độ phân giải cho mỗi đơn vị độ C.
Cảm biến nhiệt độ LM35
3.1 SƠ ĐỒ KHỐI CỦA MẠCH
Hình 3.1 Sơ đồ khối chức năng của mạch đo nhiệt độ LM35 hiển thị LCD
− NGUỒN: Cấp nguồn cho hệ thống
− CẢM BIỂN: Biến đổi tín hiệu nhiệt sang tín hiệu điện
− MẠCH CHUYỂN ĐỔI: Biến đổi điện áp đầu ra
− VI ĐIỀU KHIỂN: Xử lý tín hiệu
− HIỂN THỊ: Hiển thị nhiệt độ
Cảm biến LM35 chuyển đổi tín hiệu nhiệt thành tín hiệu điện áp, sau đó tín hiệu này được gửi đến mạch chuyển đổi để chuyển đổi thành tín hiệu số cho vi điều khiển AT89S52 Vi điều khiển tiếp nhận và xử lý tín hiệu, sau đó hiển thị nhiệt độ trên màn hình LCD 16x2.
TÍNH TOÁN, THIẾT KẾ VÀ MÔ PHỎNG
SƠ ĐỒ KHỐI CỦA MẠCH
Hình 3.1 Sơ đồ khối chức năng của mạch đo nhiệt độ LM35 hiển thị LCD
− NGUỒN: Cấp nguồn cho hệ thống
− CẢM BIỂN: Biến đổi tín hiệu nhiệt sang tín hiệu điện
− MẠCH CHUYỂN ĐỔI: Biến đổi điện áp đầu ra
− VI ĐIỀU KHIỂN: Xử lý tín hiệu
− HIỂN THỊ: Hiển thị nhiệt độ
Cảm biến LM35 chuyển đổi nhiệt độ thành tín hiệu điện áp, sau đó mạch chuyển đổi sẽ biến tín hiệu điện áp tương tự thành tín hiệu số cho vi điều khiển AT89S52 Vi điều khiển này sẽ xử lý tín hiệu và hiển thị nhiệt độ trên màn hình LCD 16x2.
LƯU ĐỒ GIẢI THUẬT
Hình 3.2 Lưu đồ thuật toán của mạch đo nhiệt độ LM35 hiển thị LCD (chương trình chính)
Hình 3.3 Lưu đồ thuật toán của mạch đo nhiệt độ LM35 hiển thị LCD (chương trình con).
TÍNH TOÁN VÀ THIẾT KẾ MẠCH CHUYỂN ĐỔI ĐIỆN ÁP ĐẦU RA
Cảm biến LM35 có điện áp ngõ ra trong khoảng từ -0.55V đến 1.5V, tuy nhiên, ADC chỉ có khả năng đọc giá trị điện áp dương Do đó, cần phải chuyển đổi dải điện áp của LM35 sang dải điện áp dương để đảm bảo quá trình đo lường chính xác.
3.3.1 Sử dụng mạch khuếch đại vi sai để chuyển đổi dải điện áp
Mạch khuếch đại vi sai kết hợp đầu vào đảo và không đảo để tạo ra tín hiệu đầu ra phản ánh sự khác biệt giữa hai điện áp đầu vào V1 và V2, cho phép trừ một tín hiệu khỏi tín hiệu khác Nếu cần thiết, có thể thêm nhiều đầu vào để thực hiện phép trừ.
Khi các điện trở trong mạch bằng nhau (R = R3 và RA = R4), điện áp đầu ra sẽ đạt giá trị như đã chỉ định và độ lợi điện áp là +1 Tuy nhiên, nếu điện trở đầu vào không bằng nhau, mạch sẽ hoạt động như một bộ khuếch đại vi sai, với đầu ra âm khi V1 cao hơn V2 và đầu ra dương khi V1 thấp hơn V2.
Mạch khuếch đại vi sai được sử dụng để chuyển đổi giá trị điện áp từ -0.55V đến +1.5V sang dải điện áp dương Để thực hiện điều này, nguồn V2 (đầu ra cảm biến) được chọn, trong khi V1 được thiết lập ở mức -0.55V thông qua mạch đảo điện áp.
R R= , RA R= 4, như vậy lúc này dải điện áp đầu ra của mạch sẽ là:
Dải điện áp đầu ra của mạch đo được từ 0 đến 2,05V với độ phân giải 10mV/°C, đáp ứng yêu cầu đề ra Để nâng cao độ phân giải và tăng độ chính xác trong quá trình đo, chúng ta có thể chọn R1 = 3,2 kΩ và R2 = 4,3 kΩ Khi đó, mạch sẽ có độ lợi áp đạt 4300 với giá trị 1,95.
= R = = và dải điện áp đầu ra là:
Cảm biến LM35 có độ phân giải điện áp là 10mV/°C Khi tín hiệu được khuếch đại qua mạch khuếch đại vi sai với độ lợi A v = 1,95, độ phân giải điện áp tăng lên thành 19,5mV/°C.
3.3.2 Tính V ref+ và V ref- cho ADC0808
Vì dải nhiệt độ của LM35 từ -55 o C đến 150 o C ta có 206 giá trị và ví dụ xét tại nhiệt độ max là 150 o C thì N = 205, VIN,ADC =Vout,150 o
, 256 (Độ chính xác tuyệt đối)
IN ADC ref ref ref ref ref
CODE CHƯƠNG TRÌNH
DBUS EQU P0 ;Gan ten data bus
LJMP NEXT ;Nhay den nhan NEXT
ORG 000BH ;Chuong trinh ngat tao xung cho ADC
MOV P2,#0FFH ;P2 la dau vao
ACALL INIT_LCD ;Goi ham khoi tao LCD
MOV DPTR,#WELCOME ;In dong welcome
CLR A MOVC A,@A+DPTR CJNE A,#0,NHAY1 SJMP TIEP
ACALL LCD_WRITE ACALL DELAY INC DPTR SJMP LOOP1 TIEP:
MOV DPTR,#NHOM04 ;In dong ten nhom 04
CLR A MOVC A,@A+DPTR CJNE A,#0,NHAY2 SJMP TIEP1 NHAY2:
INC DPTR SJMP LOOP2 TIEP1:
MOV TMOD,#02H ;Chon Timer 0, che do 2 de tao xung clock 32KHz
ACALL INIT_LCD ;Goi ct khoi tao
MOV DPTR,#NHIETDO ;In khung nhiet do
CLR A MOVC A,@A+DPTR CJNE A,#0,NHAY SJMP TIEP2 ;Nhay toi chuong trinh chinh NHAY:
ACALL LCD_WRITE INC DPTR
MOV A,#0C0H ACALL LCD_COMMAND MOV DPTR,#NHOM04 ;In dong ten nhom 04 LOOP3:
CLR A MOVC A,@A+DPTR CJNE A,#0,NHAY3 SJMP MAIN NHAY3:
ACALL LCD_WRITE INC DPTR
CLR ADR SETB ALE CLR ALE SETB START CLR START
JC AM ACALL HIENTHI_DUONG SJMP NEXT2
LCD_WRITE: ;Ghi data vao LCD
LCD_COMMAND: ;Nhan du lieu
CLR RW ;Cho phep truy xuat ghi
CLR RS ;Cho phep truy xuat lenh
MOV DBUS,A ;Chuyen lenh ra DBUS
ACALL WAIT_LCD ;Doi LCD lam viec
INIT_LCD: ;Khoi dong LCD
CLR RS ;RS=0 cho phep truy xuat lenh
MOV B,#100 MOV A,#8AH ACALL LCD_COMMAND MOV A,P2
DIV AB ADD A,#30H ACALL LCD_WRITE ;In so hang tram MOV A,#8BH
MOV B,#10 DIV AB ADD A,#30H ACALL LCD_WRITE ;In so hang chuc MOV A,#8CH
ADD A,#30H ACALL LCD_WRITE ;In so hang don vi RET
MOV A,#8AH ACALL LCD_COMMAND MOV A,#2DH
ACALL LCD_WRITE ;In dau "-"
MOV B,P2 MOV A,#56 SUBB A,B MOV B,#100 DIV AB
MOV A,#8BH ACALL LCD_COMMAND MOV A,B
MOV B,#10 DIV AB ADD A,#30H ACALL LCD_WRITE ;In so hang chuc MOV A,#8CH
ADD A,#30H ACALL LCD_WRITE ;In so hang don vi RET
CHOP_LCD: ;Hieu ung chop man hinh
NHIETDO: DB 'NHIET DO: ',0DFH,'C', 00H
3.5 MÔ PHỎNG TRÊN PHẦN MỀM PROTEUS
Hình 3.5 Mô phỏng mạch đo nhiệt độ LM35 hiện thị LCD
Hình 3.6 Layout PCB và sơ đồ mạch in mạch đo nhiệt độ LM35 hiển thị LCD
Hình 3.7 Layout 3D mạch đo nhiệt độ LM35 hiển thị LCD
Sau thời gian nghiên cứu và tìm hiểu, cùng với sự hỗ trợ nhiệt tình từ TS Lưu Hoàng Minh, nhóm chúng em đã hoàn thành đồ án môn học với đề tài “Mạch đo nhiệt độ sử dụng LM35 hiển thị LCD” Chúng em xin gửi lời cảm ơn chân thành đến thầy vì sự giúp đỡ quý báu.
Mặc dù chưa có cơ hội thi công mạch, nhóm chúng tôi đã hoàn thành các mục tiêu đề ra, thiết kế và mô phỏng mạch thành công Qua quá trình này, chúng tôi đã học hỏi được nhiều kiến thức quý giá trong học phần Kỹ thuật vi xử lý cũng như trong chuyên ngành của mình Bài tập lớn này sẽ là bước đà giúp chúng tôi phát triển và hoàn thiện hơn trong các đồ án môn học tiếp theo.
Do còn thiếu sót về kiến thức, nhóm không thể tránh khỏi một số sai sót trong quá trình thực hiện đề tài Chúng tôi rất trân trọng và cảm ơn những góp ý từ thầy và các bạn Xin chân thành cảm ơn thầy cùng tất cả các bạn đã dành thời gian đọc bài báo cáo của chúng em!