Thiết kế mạch đo và hiển thị nhiệt độ môi trường ra LED 7 đoạn
Mạch có thể sử dụng để đo nhiệt độ trong khoảng từ +0°C đến +99°C.
Mạch nhỏ gọn, dễ sử dụng cho tất cả mọi người và đáp ứng nhanh với nhiệt độ môi trường.
Mạch hiển thị LED 7 đoạn nên dễ dàng theo dõi nhiệt độ dù thiếu ánh sáng.
Mạch cơ động vì có thể dùng được nhiều loại nguồn: pin, sạc điện thoại nên dễ dàng mang theo và sử dụng.
33 trang |
Chia sẻ: lylyngoc | Lượt xem: 12558 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Thiết kế mạch đo và hiển thị nhiệt độ môi trường ra LED 7 đoạn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI NÓI ĐẦU
Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của chúng ta đã và đang ngày một thay đổi, văn minh và hiện đại hơn. Sự phát triển của kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết góp phần cho hoạt động của con người đạt hiệu quả cao.
Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và sử dụng được lại là một điều rất phức tạp. Các bộ vi điều khiển theo thời gian cùng với sự phát triển của công nghệ bán dẫn đã tiến triển rất nhanh, từ các bộ vi điều khiển 4 bit đơn giản đến các bộ vi điều khiển 32 bit, rồi sau này là 64 bit. Điện tử đang trở thành một ngành khoa học đa nhiệm vụ. Điện tử đã đáp ứng được những đòi hỏi không ngừng từ các lĩnh vực công – nông – lâm – ngư nghiệp cho đến các nhu cầu cần thiết trong hoạt động đời sống hằng ngày.
Một trong những ứng dụng thiết thực trong đó là ứng dụng về nhiệt kế điện tử. Với môn học Vi điều khiển này, em đã quyết định nhận làm đồ án thiết kế mạch đo và hiển thị nhiệt độ môi trường ra LED 7 đoạn.
Mặc dù đã rất cố gắng thiết kế và làm mạch nhưng do thời gian ngắn và năng lực còn hạn chế nên mạch vẫn còn những sai sót. Em mong thầy giáo và các bạn góp ý để việc học tập của em được tốt hơn.
Em xin chân thành cảm ơn!
PHẦN I: LÝ THUYẾT CHUNG VỀ HỆ THỐNG ĐO NHIỆT ĐỘ
I. MỤC ĐÍCH, YÊU CẦU
Sự cần thiết, quan trọng cũng nhờ tính khả thi vào lợi ích của mạch số cũng chính là lý do nên chọn và thực hiện đồ án “thiết kế mạch đo và hiển thị nhiệt độ môi trường ra LED 7 đoạn” nhằm dùng kiến thức số học và kỹ thuật số vào thực tế.
Tìm hiểu nguyên tắc hoạt động của thiết bị cảm biến (cảm biến nhiệt), ADC0804, AT89C51 và ứng dụng.
Yêu cầu của bài này là thiết kế mạch đo và hiển thị nhiệt độ môi trường ra LED 7 đoạn.
II. Ý NGHĨA
Thấy được tính khoa học và ứng dụng thực tế của đề tài.
8051 là họ Vi điều khiển mới có nhiều tính năng, khả năng xử lí nhanh.
Ứng dụng ADC trong việc chuyển đổi tín hiệu tương tự sang tín hiệu số.Tín hiệu tương tự ở đây là tín hiệu điện áp được lấy từ các bộ cảm biến.
Mạch hiển thị LED 7 đoạn nên dễ dàng cho người sử dụng theo dõi nhiệt độ hiển thị.
III. GIỚI HẠN ĐỀ TÀI
Trong phạm vi thiết kế này, người thực hiện cần thiết kế và thi công mạch Hiển thị nhiệt độ gọn, đơn giản.
Đề tài “Hiển thị nhiệt độ” rất đa dạng và phong phú, có nhiều loại hình khác nhau dựa vào công dụng và độ phức tạp. Do tài liệu tham khảo bằng Tiếng Việt còn hạn chế, trình độ có hạn và kinh nghiệm trong thực tế còn non kém, nên đề tài chắc chắn còn nhiều thiếu sót. Vì vậy rất mong nhận được những ý kiến đóng góp, giúp đỡ chân thành của các thầy cô cũng như của các bạn sinh viên.
PHẦN II:TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG ĐO VÀ HIỂM THỊ NHIỆT ĐỘ
I – CƠ SỞ LÝ THUYẾT
1. Nguyên lý hoạt động và nguyên lý đo.
1.1. Các linh kiện sử dụng trong mạch.
- Sử dụng vi điều khiển họ 8051.
- Đo nhiệt độ bằng cảm biến nhiệt LM35 thông qua bộ thiết kế mạch chuyển đổi ADC080
- Hiển thị bằng led 7 đoạn
1.2. Nguyên lý một số linh kiện phục vụ cho công việc đo lường.
1.2.1- Giới thiệu tổng quan về họ Vi điều khiển 8051
AT89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượng cao, công suất thấp với 4 KB PEROM (Flash Programeable and erasable read only memory).
Các đặc điểm của 8951 được tóm tắt như sau:
- 4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghi xóa tới 1000 chu kỳ
- Tần số hoat động từ 0 Hz đến 24 MHz
- 3 mức khóa bộ nhớ lập trình
- 2 bộ Timer/Counter 16 bit
- 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
1.2.1.1. Sơ đồ khối và sơ đồ chân của AT89C51
OTHER REGISTER
128 byte RAM
128 byte RAM
8032\8052
ROM
0K:
8031\8032
4K:8951
8K:8052
INTERRUPT CONTROL
INT1\ INT0\
SERIAL PORT TEMER0
TEMER1
TEMER2 8032\8052
CPU
OSCILATOR
BUS CONTROL
I/O PORT
SERIAL PORT
EA\ RST
ALE\ PSEN\
P0 P1 P2 P3
Address\Data
TXD RXD
TEMER2 8032\8052
Cất kết quả vào RAM (hàng đơn vị cất vào ô nhớ 30H, hàng chục cất vào ô nhớ 31H)
Chia tiếp kết quả cho 10 được số hàng chục
Gán A=P2
Cất kết quả vào RAM (hàng đơn vị cất vào ô nhớ 30H, hàng chục cất vào ô nhớ 31H)
Chia tiếp kết quả cho 10 được số hàng chục
Chia cho 10 được số dư là hàng đơn vị
Gán A=P2
TEMER1
Sơ đồ khối của AT89C51
Sơ đồ chân của AT89C51
1.2.1.2. Chức năng các chân của AT89C51
+ Port 0 (P0.0 – P0.7 hay chân 32 – 39): Ngoài chức năng xuất nhập ra, port 0 còn là bus đa hợp dữ liệu và địa chỉ (AD0 – AD7), chức năng này sẽ được sử dụng khi AT89C51 giao tiếp với thiết bị ngoài có kiến trúc bus.
Port 0
+ Port 1 (P1.0 – P1.7 hay chân 1 – 8): có chức năng xuất nhập theo bit và byte. Ngoài ra, 3 chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo chuẩn ISP, 2 chân P1.0 và P1.1 được dùng cho bộ Timer 2.
Port 1
+ Port 2 (P2.0 – P2.7 hay chân 21 – 28): là một port có công dụng kép. Là đườ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 2
+ Port 3 (P3.0 – P3.7 hay chân 10 – 17): mỗi chân trên port 3 ngoài chức năng xuất nhập ra còn có một số chức năng đặc biệt sau:
Bit
Tên
Chức năng chuyển đổi
P3.0
RXD
Dữ liệu nhận cho port nối tiếp
P3.1
TXD
Dữ liệu truyền cho port nối tiếp
P3.2
INT0
Ngắt bên ngoài 0
P3.3
INT1
Ngắt bên ngoài 1
P3.4
T0
Ngõ vào của Timer/Counter 0
P3.5
T1
Ngõ vào của Timer/Counter 1
P3.6
WR
Xung ghi bộ nhớ dữ liệu ngoài
P3.7
RD
Xung đọc bộ nhớ dữ liệu ngoài
Port 3
+ RST (Reset – chân 9): mức tích cực của chân này là mức 1, để reset ta phải đưa mức 1 (5V) đến chân này với thời gian tối thiểu 2 chu kỳ máy (tương đương 2µs đối với thạch anh 12MHz.
+ XTAL 1, XTAL 2: AT89S52 có một bộ dao động trên chip, nó thường được nối với một bộ dao động thạch anh có tần số lớn nhất là 33MHz, thôn thường là 12MHz.
+ EA (External Access): EA thường được mắc lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, bộ vi điều khiển thi hành chương trình từ ROM nội. Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng.
+ ALE (Address Latch Enable): ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ. Sau đó các đường port 0 dùng để xuất hoặc nhập dữ liệu trong nửa chu kỳ sau của bộ nhớ.
+ PSEN (Program Store Enable): PSEN là điều khiển để cho phép bộ nhớ chương trình mở rộng và thường được nối với đến chân /OE (Output Enable) của một EPROM để cho phép đọc các bytes mã lệnh. PSEN sẽ ở mức thấp trong thời gian đọc 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 bộ vi điều khiển để giải mã lệnh. Khi thi hành chương trình trong ROM nội, PSEN sẽ ở mức thụ động (mức cao).
+ Vcc, GND: AT89S52 dùng nguồn một chiều có dải điện áp từ 4V – 5.5V được cấp qua chân 40 (Vcc) và chân 20 (GND).
1.2.2. Giới thiệu về IC ADC0804
Các bộ chuyển đổi ADC thuộc những thiết bị được sử dụng rộng rãi nhất để thu dữ liệu. Các máy tính số sử dụng các giá trị nhị phân, nhưng trong thế giới vật lý thì mọi đại lượng ở dạng tương tự (liên tục). Nhiệt độ, áp suất (khí hoặc chất lỏng), độ ẩm và vận tốc và một số ít những đại lượng vật lý của thế giới thực mà ta gặp hằng ngày. Một đại lượng vật lý được chuyển về dòng điện hoặc điện áp qua một thiết bị được gọi là các bộ biến đổi. Các bộ biến đổi cũng có thể coi như các bộ cảm biến. Mặc dù chỉ có các bộ cảm biến nhiệt, tốc độ, áp suất, ánh sáng và nhiều đại lượng tự nhiên khác nhưng chúng đều cho ra các tín hiệu dạng dòng điện hoặc điên áp ở dạng liên tục. Do vậy, ta cần một bộ chuyển đổi tương tự số sao cho bộ vi điều khiển có thể đọc được chúng. Một chip ADC được sử dụng rộng rãi là ADC0804.
ADC0804
Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hãng National Semiconductor. Chip này cũng được nhiều hãng khác sản xuất. Chip có điện áp nuôi +5V v à độ phân giải 8 bit. Ngoài độ phân giải thì thời gian chuyển đổ i cũng là một tham số quan trọng khi đánh giá bộ ADC. Thời gian chuyển đổi được định nghĩa là thời gian mà bộ ADC cần để chuyển một đầu vào tương tự thành một số nhị phân. Đối với ADC0804 thì thời gian chuyển đổi phụ thuộc vào tần số đồng hồ đ ược cấp tới chân CLK và CLK IN và không bé hơn 110µs. Các chân khác của ADC0804 có chức năng như sau:
+ CS (Chip select): Chân số 1, là chân chọn Chip, đầu vào tích cực mức thấp được sử dụng để kích hoạt Chip ADC0804. Để truy cập ADC0804 th ì chân này phải ở mức thấp.
+ RD (Read): Chân số 2, là một tín hiệu vào, tích cực ở mức thấp. Các bộ chuyển đổi đầu vào tương tự thành số nhị phân và giữ nó ở một thanh ghi trong. RD được sử dụng để có dữ liệu đã được chyển đổi tới đầu ra của ADC0804. Khi CS = 0 nếu có một xung cao xuống thấp áp đến chân RD thì dữ liệu ra dạng số 8 bit được đưa tới các chân dữ liệu (DB0 – DB7).
+ WR (Write): Chân số 3, đây là chân vào tích c ực mức thấp được dùng để báo cho ADC biết bắt đầu quá trình chuyển đổi. Nếu CS = 0 khi WR tạo ra xung cao xuống thấp thì bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8 bit. Khi việc chuyển đổi hoàn tất thì chân INTR được ADC hạ xuống thấp.
+ CLK IN và CLK R: CLK IN (chân số 4), là chân vào nối tới đồng hồ ngo ài được sử dụng để tạo thời gia n. Tuy nhiên ADC0804 c ũng có một bộ tạo xung đồng hồ ri êng. Để dùng đồng hồ riêng thì các chân CLK IN và CLK R (chân s ố 19) được nối với một tụ điện v à một điện trở (như hình vẽ). Khi đó tần số được xác định bằng biểu thức:
F = 1/ 1.1RC
Với R = 10 kΩ, C = 150 pF và tần số f = 606 kHz và thời gian chuyển đổi l à 110 µs.
+ Ngắt INTR (Interupt): Chân số 5, là chân ra tích c ực mức thấp. Bình thường chân này ở trạng thái cao v à khi việc chuyển đổi ho àn tất thì nó xuống thấp để báo cho CPU biết l à dữ liệu chuyển đổi sẵn sàng để lấy đi. Sau khi INTR xuống thấp, cần đặt CS = 0 và gửi một xung cao xuống thấp tới chân RD để đ ưa dữ liệu ra.
+ Vin (+) và Vin (-): Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi sai, trong đó V in = Vin(+) – Vin(-). Thông thường Vin(-) được nối tới đất và Vin(+) được dùng làm đầu vào tương tự và sẽ được chuyển đổi về dạng số.
+ Vcc: Chân số 20, là chân nguồn nuôi +5V. Chân này còn được dùng làm điện áp tham chiếu khi đầu vào Vref/2 để hở.
+ Vref/2: Chân số 9, là chân điện áp đầu vào được dùng làm điện áp tham chiếu. Nếu chân này hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong dải 0 đến +5V. Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến Vin khác với dải 0 đến +5V. Chân Vref/2 được dùng để thực hiện các điện áp đầu ra khác 0 đến +5V.
Vref/2 (V)
Vin (V)
Kích thước bước (mV)
Hở
0 – 5
5/256 = 19.53
2.0
0 – 4
4/256 = 15.62
1.5
0 – 3
3/256 = 11.71
1.28
0 – 2.56
2.56/256 = 10
1.0
0 – 2
2/256 = 7.81
0.5
0 – 1
1/256 = 3.90
Bảng 1 – Quan hệ điện áp V ref/2 với Vin
+ D0 - D7: D0 - D7, chân số 18 – 11, là các chân ra d ữ liệu số (D7 là bit cao nhất MSB và D0 là bit thấp nhất LSB). Các chân này được đệm ba trạng thái và dữ liệu đã được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân RD đưa xu ống mức thấp. Để tính điện áp đầu ra ta tính theo công thức sau:
Dout = Vin / Kích thước bước
1.2.3. Giới thiệu về IC cảm biến LM35
Đây là cảm biến nhiệt được tích hợp chính xác cao của hãng National Semiconductor. Điện áp đầu ra của nó tỉ lệ tuyến tính với nhiệt độ theo thang độ Celsius. Chúng không yêu cầu cân chỉnh ngoài.
LM35 có 4 dạng: TO-46, SO-8, TO-92, TO-220. Nhưng thường dùng nhất là dạng TO-92 như hình dưới.
Sơ đồ chân LM35 dạng TO-92
Đặc điểm cơ bản của LM35:
+ Điện áp nguồn từ -0.2V đến +35V
+ Điện áp ra từ -1V đến +6V
+ Dải nhiệt độ đo được từ -55°C đến +150°C
+ Điện áp đầu ra thay đổi 10mV mỗi khi có sự thay đổi 1°C.
LM35 có độ biến thiên theo nhiệt độ : 10mV/1(0C)
Độ chính xác cao, tính năng cảm biến nhiệt độ rất nhạy, ở nhiệt độ 25(0C) nó có sai số không quá 1%. Với tầm đo từ 0(0C) đến 128(0C) , tín hiệu ngõ ra tuyến tính
liên tục với những thay đổi của tín hiệu nhõ vào.
Thông số kỹ thuật:
- Tiêu tán công suất thấp .
- Dòng làm việc từ 400µA đến 5mA.
- Dòng ngược 15mA.
- Dòng thuận 10mA.
- Độ chính xác: khi làm việc ở nhiệt độ 25(0C) với dòng làm việc 1mA thì điện áp ngõ ra từ 2,94V đến 3,04V.
Đặc tính điện:
- Theo thông số của nhà sản xuất LM35, quan hệ giữa điện áp và ngõ ra như sau:
Vout =0.01*T(0K)=2,73+0,01*T(0C).
Vậy ứng với tầm hoạt động từ 0(0C) đến 100(0C) ta có sự biến thiên điện áp ngõ ra là:
Ở 0(0C) thì điện áp ngõ ra Vout = 2,73V
Ở 5(0C) thì điện áp ngõ ra Vout = 2,78V
……………………………………….
Ở 100(0C) thì điện áp ngõ ra Vout = 3,71V
Tầm biến thiên điện áp tương ứng với nhiệt độ từ 0(0C) đến 100(0C) là 1V
1.2.4. Cấu tạo của LED 7 đoạn
Giao tiếp với led 7 đoạn
Các khái niệm cơ bản
Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người sử dụng với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng "led 7 đoạn". Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉ cần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng, trong các đồng hồ treo tường bằng điện tử, hiển thị số lượng sản phẩm được kiểm tra sau một công đoạn nào đó.
Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7 đoạn.8 led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) được nối chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện. 8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa ra ngoài để kết nối với mạch điện. Nếu led 7 đoạn có Anode(cực +) chung, đầu chung này được nối với +Vcc, các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0. Nếu led 7 đoạn có Cathode(cực -) chung, đầu chung này được nối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1.
Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảo dòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led. Nếu kết nối với nguồn 5V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều khiển.
Sơ đồ vị trí các led được trình bày như hình dưới:
Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng điện qua led nếu led 7 đoạn được nối với nguồn 5V.
Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b. Tương tự với các chân và các led còn lại.
Kết nối với Vi điều khiển
Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể ang 1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn. Như vậy led 7 đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động ang tắt của từng led led đơn trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn thường được gọi là “mã hiển thị led 7 đoạn”. Có hai kiểu mã hiển thị led 7 đoạn: mã dành cho led 7 đoạn có Anode(cực +) chung và mã dành cho led 7 đoạn có Cathode(cực -) chung. Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị trí b và c ang, nếu sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân b và c điện áp là 0V(mức 0) các chân còn lại được đặt điện áp là 5V(mức 1), nếu sử dụng led 7 đoạn có Cathode chung thì điện áp(hay mức logic) hoàn toàn ngược lại, tức là phải đặt vào chân b và c điện áp là 5V(mức 1).
Bảng mã hiển thị led 7 đoạn:
+ Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuận tiện cho việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a, Px.1 nối với chân b, lần lượt theo thứ tự cho đến Px.7 nối với chân h.
+ Dữ liệu xuất có dạng nhị phân như sau : hgfedcba
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung (các led đơn sáng ở mức 0):
Số hiển thị trên led 7 đoạn
Mã hiển thị led 7 đoạn dạng nhị phân
Mã hiển thị led 7 đoạn dạng thập lục phân
h g f e d c b a
0
1 1 0 0 0 0 0 0
C0
1
1 1 1 1 1 0 0 1
F9
2
1 0 1 0 0 1 0 0
A4
3
1 0 1 1 0 0 0 0
B0
4
1 0 0 1 1 0 0 1
99
5
1 0 0 1 0 0 1 0
92
6
1 1 0 0 0 0 1 0
82
7
1 1 1 1 1 0 0 0
F8
8
1 0 0 0 0 0 0 0
80
9
1 0 0 1 0 0 0 0
90
A
1 0 0 0 1 0 0 0
88
B
1 0 0 0 0 0 1 1
83
C
1 1 0 0 0 1 1 0
C6
D
1 0 1 0 0 0 0 1
A1
E
1 0 0 0 0 1 1 0
86
F
1 0 0 0 1 1 1 0
8E
-
1 0 1 1 1 1 1 1
BF
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung (các led đơn sáng ở mức 1):
Số hiển thị trên led 7 đoạn
Mã hiển thị led 7 đoạn dạng nhị phân
Mã hiển thị led 7 đoạn dạng thập lục phân
0
0 0 1 1 1 1 1 1
3F
1
0 0 0 0 0 1 1 0
06
2
0 1 0 1 1 0 1 1
5B
3
0 1 0 0 1 1 1 1
4F
4
0 1 1 0 0 1 1 0
66
5
0 1 1 0 1 1 0 1
6D
6
0 1 1 1 1 1 0 1
7D
7
0 0 0 0 0 1 1 1
07
8
0 1 1 1 1 1 1 1
7F
9
0 1 1 0 1 1 1 1
6F
A
0 1 1 1 0 1 1 1
77
B
0 1 1 1 1 1 0 0
7C
C
0 0 1 1 1 0 0 1
39
D
0 1 0 1 1 1 1 0
5E
E
0 1 1 1 1 0 0 1
79
F
0 1 1 1 0 0 0 1
71
-
0 1 0 0 0 0 0 0
40
1.2.5. TRANSISTOR điều khiển nâng dòng C1815
1.2.6. Biến trở tinh chỉnh: Là các thiết bị có điện trở thuần có thể biến đổi được theo ý muốn
1.2.7. IC 7805: IC 7805 để ổn áp từ điện áp DC 8v-35V xuống 5V.
II. THIẾT KẾ
1. PHẦN CỨNG
Sơ đồ khối mạch đo nhiệt độ.
KHỐI HIỂN THỊ
KHỐI XỬ LÝ TRUNG TÂM: 8051
KHỐI CHUYỂN ĐỒI TƯƠNG TỰ => SỐ
KHỐI CẢM BIẾN
CÁC KHỐI CHỨC NĂNG
1.1.1. Khối cảm biến
Khối cảm biến LM35 dùng để cảm biến nhiệt độ ngoài môi trường rồi chuyển đền khối ADC0804. Ở đây chân 1 nối nguồn,chân 3 nối đất còn chân 2 nối vào chân Vin+ của ADC.
1.1.2. Khối chuyển đổi tương tự sang số
Khối này là ADC0804 dùng để chuyển đổi tín hiệu tương tự (nhiệt độ) từ cảm biến sang tín hiệu số.Sau khi đã chuyển đổi thi ADC sẽ xuất dư liệu ra 8 chân chua VXL.
Trong khối chuyển đổi còn sử dụng IC LM358. Được mắc nối như trên.
1.1.3. Khối xử lý trung tâm
Khối này là IC AT89C51 mọi quá trình xử lí dữ liệu đều được thực hiện ở đây. Trong đồ án này em đã sử dụng port 2 và port 3 để xuất dữ liệu sau khi 89C51 tính toán và để quét led. ADC0804 sẽ chuyển các tín hiệu vào port 2 của IC AT89C51.
1.1.4. Khối hiển thị
Khối này có chức năng hiển thị nhiệt độ dữ liệu sẽ được lấy từ Port 1, port 0 và port 3 của vi xử lí AT89C51.
1.1.5. Sơ đồ nguyên lý
Mô phỏng mạch và hình ảnh thực tế
2. PHẦN MỀM
2.1. Lưu đồ thuật toán chương trình chính
LM35 chuyển t° → Điện áp u
Bắt đầu
Nạp giá trị ban đầu
Tính toán đưa ra tín hiệu số
Xuất ra LED 7 đoạn
2.2. ADC chuyển u → 8 bit nhị phân
Gán A=P2
Chia cho 10 được số dư là hàng đơn vị
Chia tiếp kết quả cho 10 được số hàng chục
Cất kết quả vào RAM (hàng đơn vị cất vào ô nhớ 30H, hàng chục cất vào ô nhớ 31H)
Giải thuật đọc ADC
2.3. Giải thuật xuất LED
Xuất hàng đơn vị ra led
Delay
Xuất hàng chục ra led
Delay
Chọn dữ liệu cần hiển thị
SETB P1.7
CLR P1.6
SETB P1.6
CLR P1.7
3. Nguyên lý hoạt động của mạch
Khi ta cấp nguồn cho mạch thì LED sẽ hiển thị ngay nhiệt độ của môi trường.
Khi nhiệt độ môi trường thay đổi làm cho trở kháng của cảm biến LM35 thay đổi dẫn đến điện áp đầu vào Vin của ADC thay đổi. Điện áp Vin vào ADC sẽ được so sánh với Ud của ADC. Ud có thể thay đổi từ 0V đến 2(Vref/2).
Ban đầu Ud = 0, nếu Vin > Ud khi đó Ud sẽ được cộng thêm một giá trị là . , trong đó :
đồng thời giá trị bộ đếm tăng thêm 1. Quá trình so sánh cứ như vậy đến khi nào Ud =Vin thì dừng. Khi đó giá trị của bộ đếm chính là giá trị thập phân. Giá trị thập phân này sẽ được đưa qua một bộ giải mã, giải mã ra nhị phân rồi đưa ra các chân AD0 – AD7.
Dãy mã nhị phân này sẽ được gửi đến Port 2 của AT89C51, VXL sẽ tính toán và thực hiện các lệnh để xuất giá trị đến các LED 7 đoạn. LED hiển thị nhiệt độ vừa thay đổi.
PHẦN III: KẾT LUẬN
1. Ưu điểm
Khả năng đáp ứng nhanh với sự thay đổi của nhiệt độ môi trường.
Mạch hiển thị LED 7 đoạn nên dễ dàng cho người sử dụng theo dõi nhiệt độ.
Mạch được thiết kế nhỏ gọn, dễ sử dụng, tiện lợi và có thể dùng nhiều loại nguồn: pin, sạc điện thoại,… nên rất cơ động.
2. Nhược điểm
Tính ổn định không cao khi mang đi xa hay sử dụng trong khi đang di chuyển.
Còn có sai số nhiệt độ đo được do sai số linh kiện và những sai số trong khi tính toán thiêt kế mạch nhưng chấp nhận được.
3. Tính thực tế của sản phẩm đã thiết kế
Mạch có thể sử dụng để đo nhiệt độ trong khoảng từ +0°C đến +99°C.
Mạch nhỏ gọn, dễ sử dụng cho tất cả mọi người và đáp ứng nhanh với nhiệt độ môi trường.
Mạch hiển thị LED 7 đoạn nên dễ dàng theo dõi nhiệt độ dù thiếu ánh sáng.
Mạch cơ động vì có thể dùng được nhiều loại nguồn: pin, sạc điện thoại…nên dễ dàng mang theo và sử dụng.
4. Hướng cải tiến, phát triển
Vì yêu cầu đề bài chỉ là đo nhiệt độ nên với dải nhiệt độ từ +0°C đến +99°C thì hoàn toàn có thể đo được nhiệt độ môi trường, nhưng IC LM35 có dải đo nhiệt độ lớn từ -55°C đến +150°C nên có thể lập trình để hiển thị được nhiệt độ đo được nằm trong dải này.
5. Tài liệu tham khảo
Giáo trình “ Lập trình bằng hợp ngữ” của Ngô Duyên Tập,NXB KHKT
NHẬN XÉT CỦA GIÁO VIÊN
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Đà Nẵng, ngày … tháng … năm 2012
Chữ ký của giáo viên
PHỤ LỤC
CODE chương trình:
Chương trình chính:
#include
#include
/////////////////////----------------------------------////////////////////////////////////////
sbit xuat=P3^0;
sbit start=P3^1;
sbit ngat=P3^2;
sbit led=p2^4;
///////////////////////////----------------------------////////////////////////////////////////
//khai bao bien//
unsigned char nhiet_do,gia_tri_adc;
///////////////////////////----------------------------//////////////////////////////////////////
//========================ham delay==============================
void delay_us(unsigned char us)
{
while (us--){};
}
///////////////////////////////=========================================//////////////////////////////////////
void main(void)
{
while(1)
{ start=0;//xung cao xuong thap_canh xuong(de bat dau chuyen doi)
start=1;//khoi tao gia tri ban dau
delay_us(1);
while(ngat){hien_thi_led();}; //neu ngat chuyen tu cao xuong thap
xuat=0; //thi cho phep xuat 8 bit
delay_us(5);
gia_tri_adc=P1;
xuat=1;
nhiet_do=gia_tri_adc*0.5;
hien_thi_led();
}
}
///////////////////////////////////////////////////////////////////////////////////////
Khối hiểm thị
sbit led_chuc=P2^0;
sbit led_dv=P2^1;
sbit led_do=P2^2;
sbit led_do_c=P2^3;
//////////////////////////////////////////////////////////
unsigned char nhiet_do;
unsigned char maled[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char led[3]={0x1c,0xc6};
////////////////delay ms/////////////////
void delay(unsigned short ms)
{
unsigned short i;
unsigned char j;
for(i=0;i<ms;i++)
for(j=0;j<150;j++){};
}
////////////////tat chong lem/////////////////////
void tat_chong_lem()
{
P0=0xff; led_chuc=led_dv=led_do=led_do_c=1;
}
/////////////////hien thi led//////////////////////
void hien_thi_led()
{
unsigned char i;
i=nhiet_do/10; P0=maled[i];
led_chuc=0; delay(7);tat_chong_lem();
i=nhiet_do%10; P0=maled[i];
led_dv=0; delay(7); tat_chong_lem();
//////////////////////////////////////////////
P0=led[0];
led_do=0; delay(7);tat_chong_lem();
P0=led[1];
led_do_c=0; delay(7);tat_chong_lem();
}
MỤC LỤC
Các file đính kèm theo tài liệu này:
- mach_do_nhiet_do_4328.doc