Hiển thị nhiệt độ cảm biến nhiệt LM35 trên matlab thông qua cổng RS232 giao tiếp với máy tính
Trang 1LỜI CẢM ƠN
Để hoàn thành được đồ án này, đầu tiên nhóm thực hiện xin được gởi lờicảm ơn đến Ban Giám Hiệu, quý Thầy Cô trong trường và đặc biệt là quýThầy Cô trong khoa Cơ Điện Tử Trường Đại Học Sư Phạm Kỹ ThuậtTP.HCM, đã tận tình chỉ dẫn, truyền đạt kiến thức cũng như tạo điều kiệnthuận lợi cho nhóm thực hiện trong suốt quá trình học tập vừa qua
Đặt biệt nhóm thực hiện xin chân thành cảm ơn Thầy Lê Tấn Cường đã tậntình hướng dẫn, quan tâm theo dõi và động viên nhóm thực hiện để hoànthành tốt đồ án tốt nghiệp này
Ngoài ra, nhóm thực hiện đề tài cũng xin gửi lời cảm ơn đến tất cả các bạn
bè cùng khóa và người thân chung quanh đã giúp đỡ về vật chất và tinh thần
để nhóm thực hiện đạt được thành tích như ngày hôm nay
NHÓM THỰC HIỆN ĐỀ TÀI
Trang 2Chương 1 : DẪN NHẬP
1.Nội dung đề tài:
Hiển thị nhiệt độ cảm biến nhiệt LM35 trên matlab thong qua cổng RS232 giao tiếp với máy tính
2.Mục đích đề tài:
Sử dụng cảm biến nhiệt độ theo dõi sự thay đổi nhiệt độ
Kết hợp với máy tính ghi nhận sự thay đổi nhiệt độ nhằm phân tích đánhgiá sự biến đổi nhiệt độ
Thơng qua chương trình vi điều khiển nhằm đáp ứng sự thay đổi nhiệt độtùy theo mục đích sử dụng mà tác động tăng hay giảm nhiệt độ
Mở rộng kiến thức về các loại vi điều khiểân mới và ứng dụng vào trongthực tế
Sử dụng phần mềm matlab nhằm hiển thị giá trị nhiệt độ
Trang 3Chương 2 : PHƯƠNG THỨC THỰC HIỆN
Phương án th ực hiện
Hiển thị giá trị nhiệt độ trên Matlab
Cảm biến nhiệt độ
Cảm biến nhiệt độ LM35 với độ nhạy 10mV/oC dòng điện tiêu thụ60µA, phạm vi sử dụng từ -55 oC đến 150 oC
Giao tiếp máy tính
Giao tiếp với máy tính qua cổng COM
Trang 4Chương 3 : CƠ SỞ LÝ LUẬN
Sử dụng AVR vi điều khiển với khả năng lập trình và tích hợp bộ chuyênđổi ADC thuận tiện trong việc thi công và thiết kế, đơn giản hóa phầncứng
Sử dụng cảm biến nhiệt độ LM35 với phạm vi sử dụng rộng, dòng điệntiêu thụ thấp
Giao tiếp máy tính qua cổng nối tiếp thiết bị phần cứng đơn giản, khoảngcách xa 30m đến 50m
Khối xử lý trung tâm
Khối nguồn
Khối hiển thị
Khối giao tiếp máy tính
Khối điều khiển công suất
Cảm biến nhiệt độ
o
t
A Giới thiệu các khối
1.Khối trung tâm
Khối này sử dụng vi điều khiển ATMEGA32 của hãng Atmel với cáctính năng:
-Vi điều khiển 8 bit, có tính năng sử dụng cao, công suất thấp.-Có 131 tập lệnh theo kiến trúc RISC, chủ yếu thực hiện trong 1 chu kì máy
-32x8 thanh ghi đa dụng
-16KB bộ nhớ flash có khả năng lập trình được
-512 Bytes EEPROM
-1K Byte Internal SRAM
-Nhiều ngõ vào ra (I/O Port) 2 hướng (bi-directional)
-2 bộ Timer/Counters 8-bit với Separate Prescalers và Compare Modes
Trang 5-1 Timer/Counter 16-bit với Separate Prescaler, Compare Mode và -Capture Mode.
-4 kênh PWM
-8 kênh chuyển đổi ADC 10-bit
-8 kênh chuyển đổi đơn
-7 kênh chuyển đổi vi sai chỉ được đóng gói trong TQFP
-2 kênh chuyển đổi vi sai có khả năng lập trình, lựa chọn độ lợi 1x, 10x, or 200x
-Giao diện nối tiếp USART( tương thích chuẩn nối tiếp RS-232)-Giao diện nối tiếp Two-wire Serial( tương thích chuẩn I2C )
-Giao diện nối tiếp SPI Master và Slave
-Bộ Watchdog Timer có khả năng lập trình được với bộ dao động trên chip
-Bộ so sánh Analog trên chip
……
Sơ đồ chân của ATMEGA32
Trang 6Sơ đồ khối của ATMEGA32
Lõi AVR kết hợp những tập lệnh với 32 thanh ghi làm việc với mụcđích chung Cả 32 thanh ghi đều được kết nối trực tiếp đến ALU Cho phép truy xuất 2 thanh ghi làm việc độc lập với 1 chu kì máy Với kiến trúc RISC này cho phép CPU làm việc nhanh gấp mười lần kiến trúc CISC
Trang 8Mô tả chân linh kiện:
VCC & GND Chân cấp nguồn cho vi điều khiển.
Port A (PA7 PA0)
Được dành riêng cho ngõ vào analog của bộ chuyển đổi ADC Ngoài ra Port A còn được dùng như 1 Port vào ra 2 hướng nếu bộ chuyển đổi ADC không sử dụng Mỗi chân của Port A được cung cấp điện trở kéolên bên trong Bộ đệm ngõ ra của Port A được điều khiển cho cả 2 khả năng, sink dòng và source dòng Khi Port A sử dụng như ngõ vào, chúng sẽ source dòng nếu điện trở kéo lên bên trong tích cực
Port B (PB7 PB0)
Port B được dùng như 1 Port vào ra 2 hướng với điện trở kéo lên bên trong Mỗi chân của Port B được cung cấp điện trở kéo lên bên trong.Bộ đệm ngõ ra của Port B được điều khiển cho cả 2 khả năng, sink dòng và source dòng Khi Port B sử dụng như ngõ vào, chúng sẽ source dòng nếu điện trở kéo lên bên trong tích cực Ngoài ra, Port B còn được sử dụng những chức năng khác, được trình bày như sau:
Port C (PC7 PC0)
Port C được dùng như 1 Port vào ra 2 hướng với điện trở kéo lên bên trong Mỗi chân của Port B được cung cấp điện trở kéo lên bên trong.Bộ đệm ngõ ra của Port C được điều khiển cho cả 2 khả năng, sink dòng và source dòng Khi Port C sử dụng như ngõ vào, chúng sẽ source dòng
Trang 9nếu điện trở kéo lên bên trong tích cực Nếu sử dụng giao tiếp JTAG, điện trở kéo lên ở chân PC5(TDI), PC3(TMS) và PC2(TCK) sẽ tích cực thậm chí có Reset xảy ra Port C sử dụng cho giao tiếp JTAG và các tính năng đặc biệt của AVR được liệt kê ra sau đây:
Port D (PD7 PD0)
Port D được dùng như 1 Port vào ra 2 hướng với điện trở kéo lên bên trong Mỗi chân của Port B được cung cấp điện trở kéo lên bên trong.Bộ đệm ngõ ra của Port D được điều khiển cho cả 2 khả năng, sink dòng và source dòng Khi Port D sử dụng như ngõ vào, chúng sẽ source dòng nếu điện trở kéo lên bên trong tích cực Ngoài ra, Port D còn được sử dụng những chức năng khác, được trình bày như sau:
AREF Chân điện áp tham chiếu cho bộ chuyển đổi ADC.
ADC (Analog to Digital Converter)
Tính năng:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Các thanh ghi trong ADC
ADC Multiplexer Selection Register – ADMUX
Trang 10Bit 7:6 – REFS1:0: Reference Selection Bits.
Hai bit này lựa chọn điện áp tham chiếu cho ADC Nếu những bit
này được thay đổi trong quá trình chuyển đổi thì sự thay đổi này sẽ khôngđược tác động cho tới khi quá trình chuyển đổi hoàn tất Điện áp tham chiếu bên trong có thể không được sử dụng nếu điện áp tham chiếu bên ngoài được thiết lập bằng cách thiết lập nguồn VCC tại chân AREF
Bit 5 – ADLAR: ADC Left Adjust Result
Bit ADLAR tác động đến cách biểu diễn kết quả của quá trình
chuyển đổi ADC trong thanh ghi Data Register
ADLAR=1: kết quả được canh theo lề trái
ADLAR=0: kết quả được canh theo lề phải
iệc thay đổi bit ADLAR ảnh hưởng ngay lập tức đến kết quả ở Data Register, bất chấp quá trình chuyển đổi đang xảy ra hay không
Bits 4:0 – MUX4:0 : Analog Channel and Gain Selection Bits
Các bit này được dùng để lựa chọn các ngõ vào analog cho ADC Ngoài ra còn được dùng để lựa chọn độ lợi cho các kênh vi sai Sự thay đổi những bit này chỉ được tác động khi quá trình chuyển đổi hoàn tất
Trang 11ADC Control and Status Register A – ADCSRA
Trang 12Bit 7 –ADEN: ADC Enable.
ADEN=1: Cho phép ADC hoạt động
ADEN=0: Tắt ADC
Bit 6 –ADSC: ADC Start Conversion
Trong chế độ Single Conversion, ADSC=1 sẽ bắt đầu quá trình chuyển đổi
Trong chế độ Free Running, ADSC=1 sẽ bắt đầu sự chuyển đổi lần đầu tiên Sự chuyển đổi đầu tiên xảy ra sau khi ADCS được ghi lên
1 và sau ADC được cho phép
ADCS=1 khi quá trình chuyển đổi xảy ra và trở về 0 khi kết thúc quá trình chuyển đổi
Bit 4 – ADIF: ADC Interrupt Flag
ADIF=1 khi quá trình chuyển đổi hoàn tất và Data Register được cập nhật Quá trình ngắt ADC sẽ được thực hiện nếu bit ADIE và I-bit trong thanh ghi SREG được thiết lập
Bit 3 – ADIE: ADC Interrupt Enable
Khi bit này set lên 1 và I-bit trong SREG được set Ngắt ADC sẽ được thiết lập
Bits 2:0 – ADPS2:0: ADC Prescaler Select Bits
Những bit này quyết định hệ số chia giữa tần số XTAL và xung clock ngõ vào ADC
The ADC Data Register – ADCL and ADCH:
ADLAR = 0
Trang 13ADLAR = 1
Khi quá trình chuyển đổi hoàn tất, kết quả sẽ được tìm thấy ở 2 thanh ghi này Nếu kênh vi sai được sử dụng, kết quả sẽ được trình theo kiểu bù của 2 dạng trên
Khi ADCL được đọc, ADC Data Register sẽ không được update chođến khi ADCH được đọc Nói cách khác, ADCL phải được đọc trước ADCH
Special Function IO Register – SFIOR
Bit 7:5 – ADTS2:0: ADC Auto Trigger Source
Nếu bit ADATE trong thanh ghi ADCSRA ghi lên 1, giá trị của những bit này sẽ lựa chọn nguồn kích cho quá trình chuyển đổi ADC Nếu ADATE bị xóa thì các thiết lập của ADTS2:0 sẽ không có tác dụng.
Cách tính kết quả của quá trình chuyển đổi ADC
Sau khi quá trình chuyển đổi hoàn tất (ADIF=1), kết quả sẽ được tìm thấy ở 2 thanh ghi ADCL và ADCH
Với quá trình chuyển đổi đơn:
Vin : điện áp tại chân ngõ vào được chọn
Vref : điện áp tham chiếu
Nếu sử dụng kênh vi sai:
Trang 14VPOS : điện áp tại chân ngõ vào dương
VNEG : điện áp tại chân ngõ vào âm
GAIN : hệ số khuếch đại được chọn
VREF : điện áp tham chiếu
USART
Bộ USART của vi điều khiển ATMEGA32 có thể họat động nhưmột bộ truyền nhận song công, có nghĩa là hoạt động truyền và nhận cóthể tiến hành đồng thờiø( nó chứa các thanh ghi truyền, nhận riêng lẻ) Bộ phát tốc độ baud có thể tạo ra một số lớn tốc độ baud
Bộ nâng cao tốc độ baud tại tần số thạch anh thấp
Mỗi khung dữ liệu có thể có 5,6,7, 8 hoặc 9 bit dữ liệu và 1 hoặc 2bit stop
Hỗ trợ bộ kiểm tra bit chăn lẻ parity bằêng phần cứng
Phát hiện trạng thái Overrun
Phát hiện khung truyền bị lỗi
Lọc nhiễu, phát hiện lỗi bit start
Cho phép ba ngáêt riêng biệt là TX Complete, TX Data RegisterEmpty, RX Complete
Trong truyền nhận bất đồâng bộ hỗ trợ chức năng nhân đôi tốc độ
Truyền dữ liệu (5 đến 8 bit)
Việc thiết lập chế độ truyền nối thông qua việc thiết lập bit TXEN
(Transmit Enable) bên trong thanh chi UCSRB Tốc độ baud, chế độ hoạt
động và định dạng khung dữ liệu phải được thiết lập trước khi thực hiệntruyền dữ liệu Nếu hoạt dọâng ở chế độ đồng bộ thì xung trên chân XCKđược sử dụng như là xung trong truyền dữ liệu
Dữ liệu cần truyền đưa vào trong bộ đệm truyền bằng cách ghi vàothanh ghi xuất nhập UDR Dữ liệâu trong bộ đệm được đưa vào thanh ghidịch khi thanh ghi dịch đã sẵn sàng để truyền một khung dữ liệu mới.Thanh ghi dich nhận một khung dữ liệu mới nếu nó ở trong tình trạngnhàn rỗi hoặc ngay sau khi bit stop của khung dữ liệu trước đó đượctruyền đi Khi dữ liệu sẵn sàng trong thanh ghi dịch thì nó tiến hànhtruyền đi với tốc độ được thiết lập thông qua thanh ghi Baud Register, bitUX2 hoặc XCK tùy thuộc vào chế độ hoạt động
Trang 15Cờ và ngắt trong truyền nối tiếp
Truyền USART có hai cờ là USART Data Register Empty (UDRE)và Transmit Complete (TXC), cả cờ này có thể được dùng trong ngắt CờUDRE báo cho biết bộ đệm đã sằn sàng nhận dữ liệu mới Bít này lênmức một khi bộ đệm truyền trong tình trạng trống (nhàn rỗi) và bị xóa vềkhông khi bộ đệm chứa dữ liệu Khi ngắt UDRIE (Data Register emptyInterrupt Enable) trong thanh ghi UCSRA lên mức một thì xẩy ra ngắt(với điều kiện ngắt toàn cục cho phép) UDRE bi xóa về không thông quaviệc ghi lên thanh ghi UDR Khi ngắt điều khiển truyền dữ liệu được sửdụng, chương trình phục vụ ngắt được thực hiện để ghi dữ liệu mới vàoUDR Có thể không dùng ngắt bằng cách xóa bit UDRE để cấm ngắt
Bit cờ TXC (Transmit Complete) được đặt mức một khi toàn bộkhung dữ liệu trong thanh ghi dịch đã được dịch ra ngoài và không có dữliệu mới xuất hiện trong bộ đệm truyền Bit cờ TXC tự động bị xóa khichương trình phục vụ ngắt được thực thi Bit cờ TXC được sử dụng tronggiao tiếp truyền thông bán song công (như chẩn RS485) Khi ngắtTransmit Complete cho phép tức là bit TXCIE trong thanh ghi UCSRBđược đặt lên mức một khi bit TXC đặt lên mức một chương trình phục vụngăt được thực thi và cờ TXC tự động bị xóa về không
Nhận dữ liệu (5 đến 8 bit)
Việc nhận dữ liệu được cho phép khi bit RXEN (Receive Enable)trong thanh ghi UCSRB được đặt lên mức một Tốc độ baud, chế độ hoạtđộng và định dạng khung dữ liệu phải được thiết lập trước khi thực hiệnnhận dữ liệu Nếu hoạt động ở chế độ đồng bộ thì xung trên chân XCKđược sử dụng như là xung trong nhận dữ liệu
Quá trình nhận dữ liệu bắt đầu khi bộ nhận phát hiện bit start mỗibit theo sau bit start được lấy mẫu ở tốc độ baud hoặc xung XCK đượcthiết lập trước đó, và dữ liệu được dịch vào thanh ghi dịch cho đến khi bitstop đầu tiên của khung dữ liệu được nhận Một bit stop thứ hai sẽ đượcbỏ qua Khi bit stop thứ nhất được nhận khung dữ liệu được đặt trongthanh ghi dịch sau đo dữ liêu được di chuyên vào bộ đệm nhận dữ liêutrong bộ đệm này được đọc thông qua thanh ghi xuất nhập UDR
Sơ đồ khối USART
Trang 16Tốc độ baud
Tùy vào chế độ hoạt động mà tốc độ baud có thể được xác định như sau:
BAUD: tốc độ baud (bps)
Trang 17fosc : tần số thạch anh (Hz).
UBRR giá trị của các bit UBRR11:0 trong hai thanh ghi UBRRH và
UBRRL
Các thanh ghi trong USART
Thanh ghi UDR - UART I/O Data Register
Thanh ghi UDR thực chất là hai thanh ghi riêng lẻ về mặt vật lýnhưng cùng chia sẻ địa chỉ I/O giống nhau Thanh ghi TXB (TransmitData Buffer Register) được sử dụng trong việc truyền dữ liệu, trong nhậndữ liệu thì dữ liệu được đọc từ thanh ghi RXB (Receive Data BufferRegister)
Thanh ghi UCSRA – USART Control and Status Register A
Bit 7- RXC (USART Receive Complete)
Bit cờ này được đặt lên một khi có dữ liệu chưa được đọc trongthanh bộ đệm nhận và bị xóa khi bộ đệm nhận trống Bit này có thểđược sử dụng phát sinh ngắt Receive Complete interrupt
Bit 6-TXD (USART Transmit Complete)
Bit cờ này được đặt lên mức một khi toàn bộ khung dữ liệutrong bộ đệm truyền được dịch hết ra ngoài và chưa có dữ liệu mớixuất hiện trong bộ đệm truyền Bit nay tự động xóa về không khingắt Transmit Complete được thực thi
Bit 5- UDRE( USART Data Register Empty)
Cờ UDRE báo nếu bộ đệm (URD) sẵng sàng nhận dữ liệumới Nếu UDRE ở mức một có nghĩa là bộ đệm truyền trống sẵnsàng cho ghi dữ liệu Cờ UDRE có thể phát sinh ngắt Data Registerempty Interrupt
Bit 4-FE (Frame Error)
Bit này được đặt lên mức một nếu ký tự kế tiếp trong bộ đệmnhận chứa một fame lỗi trong khi nhận dữ liệu
Trang 18Bit 3- DOR (Data OverRun)
Bit cờ này được đặt lên mức một nếu Data OverRun được pháthiện Một Data OverRun hoạt kích hoạt khi bộ đệm nhận đầy (hai kýtự) Một ký tự đang chứa trong thanh ghi dịch và có bit start đượcphát hiện Bit này không có giá trị cho đến khi dữ liệu trong bộ đệmnhận được đọc Luôn luôn xóa bit này về không khi thiết lập thanhghi UCSRA
Bit 2- PE ( Parity Error)
Bit cờ này được đặt lên mức một nếu tiếp theo ký tự trong bộđệm nhận có bít parity lỗi Luôn luôn xóa bit này về không khi thiếtlập thanh ghi UCSRA
Bit 1-U2X (Double the USART Transmission Speed)
Bit này chỉ có tác dụng trong chế độ truyền bất đồng bộ Bitnày bị xóa về không thì sử dụng chế độ truyền đồng bộ Còn nóđược đặt lên một thì bộ chia tốc độ baud giảm xuống từ 16 còn 8 làmtốc độ truyền tăng lên
Bit 0-MPCM (Multi-processor Communication Mode)
Thanh ghi UCSRB – USART Control and Status Register B
Bit 7-RXCIE (RX Complete Interrupt Enable)
Bit RXCIE được đặt lên một cho phép ngắt, ngắt xẩy ra khi cờRXC đặt lên một Ngăt toàn cục trong thanh ghi SREG được đặt lênmột và thì bit RXC trong thanh ghi UCSRA được đặt lên một
Bit 6-TXCIE (TX Complete Interrupt Enable)
Bit TXCIE được đặt lên một cho phép ngắt, ngắt xẩy ra khi cờ
TXC đặt lên một Ngăt toàn cục trong thanh ghi SREG được đặt lênmột và thì bit TXC trong thanh ghi UCSRA được đặt lên một
Bit 5- UDRIE (USART Data Register Empty Interrupt Enable)
Bit UDRIE được đặt lên một cho phép ngắt, ngắt xẩy ra khi cờ
UDRE đặt lên một Ngăt toàn cục trong thanh ghi SREG được đặtlên một và thì bit UDRE trong thanh ghi UCSRA được đặt lên một
Trang 19Bit 4- RXEN ( Receiver Enable)
Bit RXEN được đặt lên một cho phép nhận dữ liệu Dữ liệu
được nhận vào thông qua chân RxD Nếu bộ nhận dữ liệu bị cấm thìbộ đệm nhận và các cờ PE, DOR không có tác dụng
Bit 3-TXEN ( Transmitter Enable)
Bit TXEN được đặt lên một cho phép truyền dữ liệu Dữ liệu
được truyền đi thông qua chân RxD Nếu bộ nhận dữ liệu bị cấm thìbộ đệm truyền không có tác dụng
Bit 2- UCSZ2 (Character Size)
Bit UCSZ2 kết hợp với các bít UCSZ1:0 trong thanh ghiUCSRC thiết lập số bít dữ liệu trong một khung trong quá trìnhtruyền nhận
Bit 1- RXB8 (Receive Data Bit 8)
RXB8 bít thứ chín của khung dữ liệu trong nhận dữ liệu khi hoạtđộng với khung dữ liệu chín bit Phải được đọc trước khi đọc các bitthấp từ UDR
Bit 0-TXB8 (Transmit Data Bit 8)
TXB8 bít thứ chín của khung dữ liệu trong truyền dữ liệu khihoạt động với khung dữ liệu chín bit Phải được ghi trước khi ghi cácbit thấp từ UDR
Thanh ghi UCSRC – USART Control and Status Register C
Bit 7 - URSEL ( Register Select)
Lựa chọn giữa việc truy cập thanh ghi UCSRC hoặc thanh ghi UBRRH Bit URSEL phải được đặt lên một khi thiết lập thanh ghi UCSRC
Bit 6 – UMSEL (USART Mode Select)
Chọn chế độ hoạt động đồng bộ hoặc bất đồng bộ.Bit UMSEL đặt mức một thì hoạt động đồng bộ, ở mức không thì hoạt động không đồng bộ
Bit 5:4 – UPM1:0 (Parity Mode)
Thiết lập các kiểu parity và kiểm tra
Trang 20Bit 3 – USBS (Stop Bit Select)
Lựa chọn số lượng bit stop được chèn vào trong khung dữ liệu trong truyền dữ liệu Trong nhận dữ liệu nó được bỏ qua Bit USBS đặt mức một chèn hai bit stop, ở mức không thì chèn một bit stop
Bit 2:1 – UCSZ1:0 (Character Size)
Hai bit này kêt hợp với bit UCSZ2 trong thanh ghi UCSRB thiết lập số bít trong một khung dữ liệu (Character Size)
Bit 0 – UCPOL ( Clock Polarity)
Bit này chỉ sử dụng trong truyền nhận đồng bộ Bit UCPOL ở mức không khi hoạt động truyền nhận không đồng bộ Bit này thiết lập mối quan hệ thay đổi dữ liêu ngõ ra và dữ liệu lấy mẫu, và xung đồng bộ (XCK)