1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo đồ án thiết kế ii đề tài mạch đo nhiệt độ sử dụng cảm biến lm35

27 7 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Với tốc độ xung nhịp tới 16Mhz, bộ nhớ chương trình tối đa đến 256 kB, và rất nhiều chức năng ngoại vi tích hợp sẵn, vi điều khiển học AVR có thể đáp ứng tốt nhiều ứng dụng trong thực tế

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

BÁO CÁO

ĐỒ ÁN THIẾT KẾ IIĐề tài:

MẠCH ĐO NHIỆT ĐỘ SỬ DỤNG CẢM BIẾNLM35

Giảng viên hướng dẫn: Phan Văn PhươngSinh viên: Đào Duy Khiêm MSSV: 20172627

Hà Nội, 12-2020

Trang 2

MỤC LỤC

MỤC LỤC i

DANH SÁCH HÌNH ẢNH ii

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1

1.1 Tổng quan về Atmel AVR 1

1.1.1 Vi điều khiển Atmel AVR 1

1.1.2 Sơ đồ chân ATmega16A 3

1.1.3 Mô tả các chân của Atmega16A 3

1.1.4 Các module của ATmega16A 5

1.1.5 Ứng dụng 13

1.2 Kết luận 13

CHƯƠNG 2: THIẾT KẾ 14

2.1 Yêu cầu 14

2.2 Sơ đồ khối của mạch 14

2.3 Phân tích thiết kế từng khối 14

2.3.1 Khối cảm biến 14

2.3.2 Khối vi điều khiển 15

2.3.3 Khối hiển thị 16

2.3.5 Khối nguồn 18CHƯƠNG 3: Code a1 Chương trình chính a2 Thư viện “LCD_16x2_H.h” b3 Ảnh mạch thực tế dCHƯƠNG 4: Kết Luận f

i

Trang 3

DANH SÁCH HÌNH ẢNH

Hình 1.1 Sơ đồ khối của Atmega16A 2

Hình 1.2 Sơ đồ các chân của ATmega16A 3

Hình 1.3 Sơ đồ cấu trúc CPU của Atmega16A 6

Hình 1.4 Thanh ghi trạng thái SREG 6

Hình 1.5 Thanh ghi con trỏ ngăn xếp 7

Hình 1.6 Thanh ghi DDRA 8

Hình 1.7 Thanh ghi PORTA 9

Hình 1.8 Thanh ghi PINA 9

Hình 1.9 Bộ nhớ SRAM 10

Hình 1.10 Sơ đồ cấu trúc của bộ định thời 11

Hình 1.11 Sơ đồ khối bộ chuyển đổi A/D 12

Trang 4

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Tổng quan về Atmel AVR

1.1.1 Vi điều khiển Atmel AVR

1.1.1.1 Khái niệm

Vi điều khiển AVR do hãng Atmel sản xuất được giới thiệu lần đầu năm 1996 AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR (như AT tiny 13, AT tiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng AVR (chẳn hạn AT90S8535, AT90S8515,…) có kích thước bộ nhớ vào loại trung bình và mạnh hơn làdòng Mega (như ATmega32, ATmega128,…) với bộ nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với các bộ ngoại vi đa dạng được tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip (dòng LCD AVR) Tốc độ của dòng Mega cũng cao hơn so với các dòng khác Sự khác nhau cơ bản giữa các dòng chính là cấu trúc ngoại vi, còn nhân thì vẫn như nhau.

Năm 2008, Atmel lại tiếp tục cho ra đời dòng AVR mới là megaAVR, với những tính năng mạnh mẽ chưa từng có ở các dòng AVR trước đó Có thể nói XXmegaAVR là dòng MCU 8 bit mạnh mẽ nhất hiện nay.

AVR là một dòng vi điều khiển 8 bit khá mạnh và thông dụng tại thị trường Việt Nam Với tốc độ xung nhịp tới 16Mhz, bộ nhớ chương trình tối đa đến 256 kB, và rất nhiều chức năng ngoại vi tích hợp sẵn, vi điều khiển học AVR có thể đáp ứng tốt nhiều ứng dụng trong thực tế, từ đơn giản đến phức tạp.

1.1.1.2 Sơ đồ khối của vi điều khiển AVR Atmega16A

Vi điều khiển AVT Atmega16A gồm 6 phần chính:CPU của AVR

Các cổng/vào raBộ nhớBộ định thờiMạch tạo dao độngBộ chuyển đổi ADC

1

Trang 5

Hình 1.1 Sơ đồ khối của Atmega16A

2

Trang 6

1.1.2 Sơ đồ chân ATmega16A

Hình 1.2 Sơ đồ các chân của ATmega16A

1.1.3 Mô tả các chân của Atmega16A

Chân VCC: là chân cấp nguồn cho VĐK, nguồn cấp khoảng 5V.Chân GND: là chân nối đất.

PortA (từ chân PA7(33) → PA0(40)): Cổng A đóng vai trò đầu vào tương tự cho bộ chuyển đổi A/D, nó cũng có thể là cổng I/O 8 bit nếu không dùng đến bộ chuyển đổi A/D

PortB (từ chân PB7(8) → PB0(1)): là cổng I/O 8 bit với các các tính năng đặc biệt như sau:

Chân Chức năng đặc biệt PB7 SCK (SPI Bus Serial Clock)

PB6 MISO (SPI Bus Master Input/Slave Output)PB5 MOSI (SPI Bus Master Output/Slave Input)PB4 (SPI Slave Select Input)

3

Trang 7

PB3 AIN1 (Analog Comparator Negative Input)

OC0 (Timer/Counter0 Output Compare Match Output)PB2 AIN0 (Analog Comparator Positive Input)

INT2 (External Interrupt 2 Input)

PB1 T1 (Timer/Counter1 External Counter Input)PB0 T0 (Timer/Counter0 External Counter Input)

XCK (USART External Clock Input/Output)

PortC (từ chân PC7(29) → PC0(22)): là cổng I/O 8 bit với các các tính năng đặc biệt như sau:

Chân Chức năng đặc biệt

PC7 TOSC2 (Timer Oscillator Pin 2)PC6 TOSC1 (Timer Oscillator Pin 1)PC5 TDI (JTAG Test Data In)PC4 TDO (JTAG Test Data Out)PC3 TMS (JTAG Test Mode Select)

PC1 SDA (Two-wire Serial Bus Data Input/Output Line)PC0 SCL (Two-wire Serial Bus Clock Line)

PortD (từ chân PD7(21) → PD0(14)): là cổng I/O 8 bit với các các tính năng đặc biệt như sau:

Chân Chức năng đặc biệt

PD7 OC2 (Timer/Counter2 Output Compare Match Output)PD6 ICP (Timer/Counter1 Input Capture Pin)

PD5 OC1A (Timer/Counter1 Output Compare A Match Output)PD4 OC1B (Timer/Counter1 Output Compare B Match Output)PD3 INT1 (External Interrupt 1 Input)

PD2 INT0 (External Interrupt 0 Input)

Chân : là chân dùng để thiết lập trạng thái ban đầu cho vi đầu khiển.

4

Trang 8

Chân XTAL1 và XTAL2: được sử dụng để nhận nguồn xung clock bên ngoài để hoạt động, thường được nối với thạch anh và các tụ để tạo nguồnxung clock ổn định.

Chân AVCC: là chân điện áp cung cấp nguồn cho Port A và bộ chuyển đổiA/D.

Chân AREF: là chân tham chiếu tương tự cho bộ chuyển đổi A/D.

1.1.4 Các module của ATmega16A

1.1.4.1 Cấu trúc CPU của ATmega16A

CPU có chức năng đảm bảo sự hoạt động chính xác của các chương trình Do đó nó phải có khả năng truy cập bộ nhớ, thực hiện các quá trình tính toán, điều khiển các thiết bị ngoại vi và quản lý ngắt.

ALU làm việc trực tiếp với các thanh ghi chức năng chung Các phép toán được thực hiện trong 1 chu kì xung clk Hoạt động của ALU chia làm 3 loại là đại số, logic, bit.

Cấu trúc của CPU ATmega16A:

5

Trang 9

Hình 1.3 Sơ đồ cấu trúc CPU của Atmega16A

Thanh ghi trạng thái:

Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số học và logic

Hình 1.4 Thanh ghi trạng thái SREG

o C (Carry Flag): Cờ nhớ o Z (Zero Flag): Cờ zeroo N (Negative Flag): Cờ âm

6

Trang 10

o V: Cờ này được set khi tràn số bù 2

o H (Half Carry Flag): được sử dụng ở một số toán hạng

o T (Transfer bit used by BLD and BST instruction): được sử dụng là nơi trung gian giữa BLD và BST.

o I (Global Interrupt Enable/Disable Flag): đây là bit cho phép toàn cục ngắt Nếu bit này ở trạng thái logic 0 thì không có một ngắt nào được phục vụCon trỏ ngăn xếp:

Là một thanh ghi 16 bit nhưng có thể xem như là 2 thanh ghi 8 bit với chức năng đặc biệt Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (trong bộ nhớ RAMlà $5E) Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp.

Hình 1.5 Thanh ghi con trỏ ngăn xếp

Khi chương trình phục vụ ngắt hoặc chương trình con thì con trỏ PC được lưu vàongăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí, con trỏ ngăn xếp giảm 1 sau khi thực hiện lệnh PUSH Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng lên 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ sẽ tăng lên 2 Như vậy con trỏ ngăn xếp cần được đặt trước chương trình giá trị khởi tạo ngăn xếp trước khi mội chương trình con được gọi hoặc các ngắt cho phép phục vụ và các giá trị ngăn xếp cũng phải lớn hơn hoặc bằng 60H (0x60) vì 5FH trỏ lại các vùng thanh ghi.

1.1.4.2 Cổng vào ra I/O

Vi điều khiển ATmega16A có 32 đường vào ra chia làm bốn nhóm 8 bit một Các cổng vào ra của AVR là cổng vào ra 2 chiều có thể định hướng, tức có thể chọn hướng

7

Trang 11

của cổng là hướng vào (input) hay hướng ra (output) Tất cả các cổng vào ra của AVR đều có tính năng đọc-chỉnh sửa-ghi (Read-Modify-Write) khi sử dụng chúng như là các cổng vào, ra số thông thường Điều này có nghĩa là khi tắt hay đổi hướng của 1 chân nào đó nó không ảnh hưởng tới hướng của các chân khác Tất cả các chân của các các cổng (Portx) đều có điện trở kéo lên (pull-up) riêng, ta có thể cho phép hay không cho phép điện trở léo lên này hoat động.

Điện trở kéo lên (pull-up): là 1 điện trở được dùng khi thiết kế các mạch điện tử logic Nó có 1 đầu được nói với nguồn điện áp dương ( thường là Vcc hoặc Vdd) và đầu còn lại được nối với tín hiệu lối vào/ra của 1 mạch logic chức năng Điện trở kéo lên có thể được lắp đặt tại các lối vào ra của các khối mạch logic để thiết lập mức logic của khối mạch khi không có thiết bị ngoài nối với lối vào Điện trở kéo lên cũng có thể lắp đặt tại các giao diện giữa 2 khối mạch logic không cùng loại logic, đặc biệt là khi 2 khối mạch này được cấp nguồn khác nhau.

Khi khảo sát các cổng như là các cổng vào ra số thông thường thì tính chất của các cổng (Port A, PortB, PortC, PortD) là tương tự nhau, nên ta chỉ cần khảo sát 1 cổng nào đó trong 4 cổng của vi điều khiển là đủ Mỗi 1 cổng vào ra của vi điều khiển được liên kết với 3 thanh ghi: PORTx, DDRx, PINx (ở đây x là thay thế cho A, B, C, D) Ba thanh ghi này sẽ được phối hợp với nhau để điều khiển hoạt động của cổng sau đây là vai trò của 3 thanh ghi trên:

Thanh ghi DDRx

Đây là thanh ghi 8 bit (ta có đọc và ghi ở đây) có tác dụng điều khiển hướng cổng PORTx (làm việc ở chế độ vào hay ra) Nếu như một bit trong thanh ghi này được thiết lập thì bit tương ứng đó trên PORTx được định nghĩa như một cổng ra, còn nếu như bit đó không được thiết lập thì sẽ được hiểu là cổng vào.

Hình 1.6 Thanh ghi DDRA

Thanh ghi PORTx

Đây cũng là thanh ghi 8 bit (các bit có thể đọc và ghi) Nó là thanh ghi dữ liệu củacổng PORTx và trong trường hợp nếu cổng được định nghĩa là cổng ra thì khi ta ghi một bit lên thanh ghi này thì chân tương ứng trên port đó cùng có mức logic Trong trường hợp đó mà cổng được định nghĩa là cổng vào thì thanh ghi này mang dữ liệu điều khiển cổng Cụ thể là nếu bit nào đó của thanh ghi này được thiết lập (đưa lên mức 1) thì điện trở kéo lên pull up của chân tương ứng của port đó sẽ được kích hoạt Thanh ghi này sau khi khởi động vi điều khiển sẽ có giá trị là 0x00

8

Trang 12

Hình 1.7 Thanh ghi PORTA

Thanh ghi PINx:

Đây là thanh ghi 8 bit chứa dữ liệu vào của PORTx (trong trường hợp PORTx được thiết lập là cổng vào) và nó chỉ có thể đọc mà không ghi vào được

Hình 1.8 Thanh ghi PINA

Bộ nhớ SRAM:

Bộ nhớ SRAM có 1120 ô nhớ dữ liệu đánh địa chỉ cho file thanh ghi, bộ nhớ I/O và bộ nhớ dữ liệu trong SRAM Trong đó có 96 ô nhớ đầu tiên đánh địa chỉ cho file thanh ghi và bộ nhớ I/O và 1024 ô nhớ tiếp theo đánh địa chỉ cho bộ nhớ trong SRAM.

9

Trang 13

Hình 1.9 Bộ nhớ SRAM

Bộ nhớ dữ liệu EEPROM:

Đây là bộ nhớ dữ liệu có thể ghi xoá ngay trong lúc vi điều khiẻn hoạt động và không bị mất dữ liệu khi nguồn điện cung cấp bị mất Có thể ví bộ nhớ dữ liệu EEPROM giống như ổ cứng của máy tính Với vi điều khiển ATmega16 chứa bộ nhớdữ liệu EEPROM dung lượng 512byte, và được sắp xếp theo từng byte, cho phép các thao tác đọc/ghi từng byte một EEPROM được xem như là 1 bộ nhớ vào ra được đánh địa chỉ độc lập với SRAM, điều này có nghĩa ta cần sử dụng cá lệnh in, out… khi muốn truy xuất tới EEPROM Để điều khiển vào ra dữ liệu với EEPROM ta sử dụng 3 thanh ghi: Thanh ghi địa chỉ (EEARH và EEARL), thanh ghi dữ liệu (EEDR) và thanh ghi điều khiển (EECR).

Trang 14

Bộ chia tần 10 bit

Ngắt nguồn tràn bộ đếm và so sánh

Bộ định thời có thể sử dụng xung clk thông qua bộ chia hoặc xung clk trên chân T0 Khối chọn xung clk điều khiển việc bộ định thời/đếm sẽ dùng nguồn xung nào để tăng giá trị của nó Ngõ ra của khối chọn xung clk được xem là clk của bộ định thời

Các thanh ghi TCNT0 và OCR0 là các thanh ghi 8 bit Các tín hiệu yêu cầu ngắt đều nằm trong các thanh ghi TIFR Các ngắt có thể che bởi thanh ghi TIMSK Thanh ghi OCR0 luôn được so sánh với giá trị của bộ định thời/bộ đếm Kết quả so sánh có thể sử dụng để tạo ra PWM hoặc biến đổi tần số ngõ ra tại chân OC0.

Hình 1.10 Sơ đồ cấu trúc của bộ định thời

11

Trang 15

1.1.4.5 Bộ chuyển đổi A/D

Hình 1.11 Sơ đồ khối bộ chuyển đổi A/D

Vi điều khiển ATmega16 có một bộ biến đổi ADC được tích hợp trong chip với các đặc điểm:

Độ phân giải 10bitSai số tuyến tính 0.5LSBĐộ chính xác 2LSB

12

Trang 16

Thời gian chuyển đổi: 65-260Có thể lựa chọn 8 kênh đầu vào

Có 2 chế độ chuyển đổi là free running và single conversionCó nguồn báo ngắt khi hoàn thành việc chuyển đổiLoại bỏ nhiễu trong chế độ ngủ

Các đầu vào của ADC là 8 chân của PORT A và chúng được thông qua bởi 1 bộ MUX

Để điều khiển vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh ghi: ADMUX là thanh ghi điều khiển lựa chọn kênh đầu vào cho ADC, ADCSRA là thanh ghi điều khiển và thanh ghi trạng thái của ADC, ADCH và ADCL là thanh ghi dữ liệu.

1.1.5 Ứng dụng

Điều khiển cổng ra số

Đọc logic trạng thái đầu vào số, từ bàn phím và jack cắm mở rộng Đo điện áp tương tự với biến trở vi chỉnh và bộ ADC 10 bit.Điều khiển màn hình tinh thể lỏng với màn hình LCD dạng text.Giao tiếp với máy tính qua chuẩn UART ↔ USB.

Thử nghiệm ngắt ngoài, thử khả năng điều chế độ rộng xung

Nhiều ứng dụng điều khiển các chức năng tích hợp sẵn trong vi điều khiển như:vận hành các bộ định thời (Timer) và bộ đếm (Counter), đọc ghi EEPROM, lập trình các ngắt chương trình

13

Trang 17

CHƯƠNG 2: THIẾT KẾ

2.1 Yêu cầu

Chế tạo một mạch điện có khả năng đo nhiệt độ trong dải 0 - 100 sử dụng cảm℃biến LM35 Kết quả đo được hiển thị bằng màn hình LCD.

2.2 Sơ đồ khối của mạch

Mạch hoàn chỉnh sẽ chia thành 4 khối chính đó là khối nguồn, khối cảm biến, vi điều khiển và LCD Các khối này thực hiện các chức năng khác nhau:

Khối nguồn: cung cấp nguồn đầu vào cho mạch.

Khối cảm biến: lấy thông số nghiệt độ đo đầu vào từ bên ngoài.Khối khuếch đại: khuếch đại tín hiệu từ khối cảm biến để đưa sang khối vi điều khiển:

Khối vi điều khiển: xử lý các thông số đo.Khối hiển thị: hiển thị kết quả ra màn hình.

Trang 18

- Nếu đo nhiệt độ âm ta phải cấp nguồn âm –Vs cho LM35 vào chân Vout- Độ chính xác: 1/4 ở nhiệt độ phòng và 3/4 ở nhiệt độ ngoài trời.

2.3.2 Khối vi điều khiển

Khối vi điều khiển sử dụng Atmega16A vì đã có sẵn Kit đáp ứng gần đủ chức năng của mạch Hướng đi khác là tự thiết kế mạch riêng và sử dụng VĐK 89S52 vì giá thành rẻ hơn (khoảng 20.000 VNĐ) và vẫn đáp ứng đủ cho việc điều khiển mạch.

- Điện áp hoạt động: 4,5V – 5V- Tần số thạch anh: 8MHz- Bộ nhớ Flash: 16K Byte - 1 KB SRAM, 512B EEPROM- Số cổng I/O: 32

- 10 bit A/D chuyển đổi 8 kênh.

- Chân XTAL1 và XTAL2 được mắc với bộ tạo dao động để ổn địnhxung clock.

- Port C và Port D được sử dụng để gửi bit ra LCD 1602

15

Trang 19

- IC ATmega có nhiệm vụ chuyển tín hiệu từ LM35 phản hồi cho vi điều khiển dưới dạng điện áp Qua bộ ADC chuyển tín hiệu tương tự thành số rồi tính toán nhiệt độ gửi cho LCD theo dạng 4 bit

Hình 2.14 Atmega16A

2.3.3 Khối hiển thị

Thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng khá nhiều trong các ứng dụng của VĐK LCD có rất nhiều ưu điểm so với các dạng hiển thị khác Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn ít tài nguyên mà giá thành lại rẻ.

Có rất nhiều loại LCD có hình dáng và kích thước khác nhau, một trong số các loại LCD thông dụng là LCD1602A (16x2) có khả năng hiển thị 2 dòng, mỗi dòng16 ký tự.

Các thông số kỹ thuật của LCD: - Điện áp MAX: 7V

- Điện áp MIN: 2.3V

- Hoạt động ổn định: 2.7 – 5.5V- Điện áp ra mức cao: > 2.4V- Điện áp ra mức thấp: < 0.4V- Dòng điện cấp nguồn: 350uA – 600uA- Nhiệt độ hoạt động tốt: -30°C - 75°C

16

Trang 20

Chân số 3 - VEE: Điều chỉnh độ tương phản của LCD.

Chân số 4 - RS: Chân chọn thanh ghi Nối chân RS với logic "0" hoặc logic "1" để chọn thanh ghi

• Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)

• Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.Chân sô 5 - R/W: 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.

17

Ngày đăng: 29/05/2024, 18:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w