Đề tài 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

LỜ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ời cả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ật TP.HCM, đã tận tình chỉ dẫn, truyền đạt kiến thức cũng như tạo điều kiện thuậ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ận tình hướng dẫn, quan tâm theo dõi và động viên nhóm thực hiện để hoàn thà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

 

doc41 trang | Chia sẻ: lethao | Lượt xem: 4134 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ñieàu khieån cho caû 2 khaû naêng, sink doøng vaø source doøng. Khi Port C söû duïng nhö ngoõ vaøo, chuùng seõ source doøng neáu ñieän trôû keùo leân beân trong tích cöïc. Neáu söû duïng giao tieáp JTAG, ñieän trôû keùo leân ôû chaân PC5(TDI), PC3(TMS) vaø PC2(TCK) seõ tích cöïc thaäm chí coù Reset xaûy ra. Port C söû duïng cho giao tieáp JTAG vaø caùc tính naêng ñaëc bieät cuûa AVR ñöôïc lieät keâ ra sau ñaây: Port D (PD7..PD0) Port D ñöôïc duøng nhö 1 Port vaøo ra 2 höôùng vôùi ñieän trôû keùo leân beân trong. Moãi chaân cuûa Port B ñöôïc cung caáp ñieän trôû keùo leân beân trong. Boä ñeäm ngoõ ra cuûa Port D ñöôïc ñieàu khieån cho caû 2 khaû naêng, sink doøng vaø source doøng. Khi Port D söû duïng nhö ngoõ vaøo, chuùng seõ source doøng neáu ñieän trôû keùo leân beân trong tích cöïc. Ngoaøi ra, Port D coøn ñöôïc söû duïng nhöõng chöùc naêng khaùc, ñöôïc trình baøy nhö sau: RESET Ngoõ vaøo Reset. Neáu möùc Low ñaët vaøo chaân naøy daøi hôn ñoä roäng xung toái thieåu seõ reset AVR. Cho duø khoâng coù xung clock XTAL1 & XTAL2 Ngoõ vaøo ra cuûa boä dao ñoäng thaïch anh. AVCC Chaân nguoàn cung caáp cho Port A vaø boä chuyeån ñoåi ADC. Thöôøng ñöôïc keát noái vôùi Vcc, thaäm chí neáu ADC khoâng ñöôïc söû duïng. Coøn neáu ADC ñöôïc söû duïng, neân keát noái vôùi Vcc thoâng qua 1 maïch loïc thoâng thaáp. AREF Chaân ñieän aùp tham chieáu cho boä chuyeån ñoåi ADC. ADC (Analog to Digital Converter) Tính năng: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Caùc thanh ghi trong ADC ADC Multiplexer Selection Register – ADMUX Bit 7:6 – REFS1:0: Reference Selection Bits. Hai bit naøy löïa choïn ñieän aùp tham chieáu cho ADC. Neáu nhöõng bit naøy ñöôïc thay ñoåi trong quaù trình chuyeån ñoåi thì söï thay ñoåi naøy seõ khoâng ñöôïc taùc ñoäng cho tôùi khi quaù trình chuyeån ñoåi hoaøn taát. Ñieän aùp tham chieáu beân trong coù theå khoâng ñöôïc söû duïng neáu ñieän aùp tham chieáu beân ngoaøi ñöôïc thieát laäp baèng caùch thieát laäp nguoàn VCC taïi chaân AREF. Bit 5 – ADLAR: ADC Left Adjust Result. Bit ADLAR taùc ñoäng ñeán caùch bieåu dieãn keát quaû cuûa quaù trình chuyeån ñoåi ADC trong thanh ghi Data Register. ADLAR=1: keát quaû ñöôïc canh theo leà traùi. ADLAR=0: keát quaû ñöôïc canh theo leà phaûi. ieäc thay ñoåi bit ADLAR aûnh höôûng ngay laäp töùc ñeán keát quaû ôû Data Register, baát chaáp quaù trình chuyeån ñoåi ñang xaûy ra hay khoâng. Bits 4:0 – MUX4:0 : Analog Channel and Gain Selection Bits. Caùc bit naøy ñöôïc duøng ñeå löïa choïn caùc ngoõ vaøo analog cho ADC. Ngoaøi ra coøn ñöôïc duøng ñeå löïa choïn ñoä lôïi cho caùc keânh vi sai. Söï thay ñoåi nhöõng bit naøy chæ ñöôïc taùc ñoäng khi quaù trình chuyeån ñoåi hoaøn taát. ADC Control and Status Register A – ADCSRA Bit 7 –ADEN: ADC Enable. ADEN=1: Cho pheùp ADC hoaït ñoäng. ADEN=0: Taét ADC. Bit 6 –ADSC: ADC Start Conversion. Trong cheá ñoä Single Conversion, ADSC=1 seõ baét ñaàu quaù trình chuyeån ñoåi. Trong cheá ñoä Free Running, ADSC=1 seõ baét ñaàu söï chuyeån ñoåi laàn ñaàu tieân. Söï chuyeån ñoåi ñaàu tieân xaûy ra sau khi ADCS ñöôïc ghi leân 1 vaø sau ADC ñöôïc cho pheùp. ADCS=1 khi quaù trình chuyeån ñoåi xaûy ra vaø trôû veà 0 khi keát thuùc quaù trình chuyeån ñoåi. Bit 4 – ADIF: ADC Interrupt Flag. ADIF=1 khi quaù trình chuyeån ñoåi hoaøn taát vaø Data Register ñöôïc caäp nhaät. Quaù trình ngaét ADC seõ ñöôïc thöïc hieän neáu bit ADIE vaø I-bit trong thanh ghi SREG ñöôïc thieát laäp. Bit 3 – ADIE: ADC Interrupt Enable. Khi bit naøy set leân 1 vaø I-bit trong SREG ñöôïc set. Ngaét ADC seõ ñöôïc thieát laäp. Bits 2:0 – ADPS2:0: ADC Prescaler Select Bits. Nhöõng bit naøy quyeát ñònh heä soá chia giöõa taàn soá XTAL vaø xung clock ngoõ vaøo ADC. The ADC Data Register – ADCL and ADCH: ADLAR = 0 ADLAR = 1 Khi quaù trình chuyeån ñoåi hoaøn taát, keát quaû seõ ñöôïc tìm thaáy ôû 2 thanh ghi naøy. Neáu keânh vi sai ñöôïc söû duïng, keát quaû seõ ñöôïc trình theo kieåu buø cuûa 2 daïng treân. Khi ADCL ñöôïc ñoïc, ADC Data Register seõ khoâng ñöôïc update cho ñeán khi ADCH ñöôïc ñoïc. Noùi caùch khaùc, ADCL phaûi ñöôïc ñoïc tröôùc ADCH. Special Function IO Register – SFIOR Bit 7:5 – ADTS2:0: ADC Auto Trigger Source. Neáu bit ADATE trong thanh ghi ADCSRA ghi leân 1, giaù trò cuûa nhöõng bit naøy seõ löïa choïn nguoàn kích cho quaù trình chuyeån ñoåi ADC. Neáu ADATE bò xoùa thì caùc thieát laäp cuûa ADTS2:0 seõ khoâng coù taùc duïng. Caùch tính keát quaû cuûa quaù trình chuyeån ñoåi ADC Sau khi quaù trình chuyeån ñoåi hoaøn taát (ADIF=1), keát quaû seõ ñöôïc tìm thaáy ôû 2 thanh ghi ADCL vaø ADCH. Vôùi quaù trình chuyeån ñoåi ñôn: Vin : ñieän aùp taïi chaân ngoõ vaøo ñöôïc choïn. Vref : ñieän aùp tham chieáu Neáu söû duïng keânh vi sai: VPOS : ñieän aùp taïi chaân ngoõ vaøo döông. VNEG : ñieän aùp taïi chaân ngoõ vaøo aâm. GAIN : heä soá khueách ñaïi ñöôïc choïn VREF : ñieän aùp tham chieáu. USART Boä USART cuûa vi ñieàu khieån ATMEGA32 coù theå hoïat ñoäng nhö moät boä truyeàn nhaän song coâng, coù nghóa laø hoaït ñoäng truyeàn vaø nhaän coù theå tieán haønh ñoàng thôøiø( noù chöùa caùc thanh ghi truyeàn, nhaän rieâng leû). Boä phaùt toác ñoä baud coù theå taïo ra moät soá lôùn toác ñoä baud. Boä naâng cao toác ñoä baud taïi taàn soá thaïch anh thaáp. Moãi khung döõ lieäu coù theå coù 5,6,7, 8 hoaëc 9 bit döõ lieäu vaø 1 hoaëc 2 bit stop. Hoã trôï boä kieåm tra bit chaên leû parity baèêng phaàn cöùng. Phaùt hieän traïng thaùi Overrun. Phaùt hieän khung truyeàn bò loãi. Loïc nhieãu, phaùt hieän loãi bit start. Cho pheùp ba ngaùêt rieâng bieät laø TX Complete, TX Data Register Empty, RX Complete. Trong truyeàn nhaän baát ñoàâng boä hoã trôï chöùc naêng nhaân ñoâi toác ñoä. Truyeàn döõ lieäu (5 ñeán 8 bit) Vieäc thieát laäp cheá ñoä truyeàn noái thoâng qua vieäc thieát laäp bit TXEN (Transmit Enable) beân trong thanh chi UCSRB. Toác ñoä baud, cheá ñoä hoaït ñoäng vaø ñònh daïng khung döõ lieäu phaûi ñöôïc thieát laäp tröôùc khi thöïc hieän truyeàn döõ lieäu. Neáu hoaït doïâng ôû cheá ñoä ñoàng boä thì xung treân chaân XCK ñöôïc söû duïng nhö laø xung trong truyeàn döõ lieäu. Döõ lieäu caàn truyeàn ñöa vaøo trong boä ñeäm truyeàn baèng caùch ghi vaøo thanh ghi xuaát nhaäp UDR . Döõ lieäâu trong boä ñeäm ñöôïc ñöa vaøo thanh ghi dòch khi thanh ghi dòch ñaõ saün saøng ñeå truyeàn moät khung döõ lieäu môùi. Thanh ghi dich nhaän moät khung döõ lieäu môùi neáu noù ôû trong tình traïng nhaøn roãi hoaëc ngay sau khi bit stop cuûa khung döõ lieäu tröôùc ñoù ñöôïc truyeàn ñi. Khi döõ lieäu saün saøng trong thanh ghi dòch thì noù tieán haønh truyeàn ñi vôùi toác ñoä ñöôïc thieát laäp thoâng qua thanh ghi Baud Register, bit UX2 hoaëc XCK tuøy thuoäc vaøo cheá ñoä hoaït ñoäng. Côø vaø ngaét trong truyeàn noái tieáp Truyeàn USART coù hai côø laø USART Data Register Empty (UDRE) vaø Transmit Complete (TXC), caû côø naøy coù theå ñöôïc duøng trong ngaét. Côø UDRE baùo cho bieát boä ñeäm ñaõ saèn saøng nhaän döõ lieäu môùi . Bít naøy leân möùc moät khi boä ñeäm truyeàn trong tình traïng troáng (nhaøn roãi) vaø bò xoùa veà khoâng khi boä ñeäm chöùa döõ lieäu. Khi ngaét UDRIE (Data Register empty Interrupt Enable) trong thanh ghi UCSRA leân möùc moät thì xaåy ra ngaét (vôùi ñieàu kieän ngaét toaøn cuïc cho pheùp) UDRE bi xoùa veà khoâng thoâng qua vieäc ghi leân thanh ghi UDR. Khi ngaét ñieàu khieån truyeàn döõ lieäu ñöôïc söû duïng, chöông trình phuïc vuï ngaét ñöôïc thöïc hieän ñeå ghi döõ lieäu môùi vaøo UDR. Coù theå khoâng duøng ngaét baèng caùch xoùa bit UDRE ñeå caám ngaét. Bit côø TXC (Transmit Complete) ñöôïc ñaët möùc moät khi toaøn boä khung döõ lieäu trong thanh ghi dòch ñaõ ñöôïc dòch ra ngoaøi vaø khoâng coù döõ lieäu môùi xuaát hieän trong boä ñeäm truyeàn. Bit côø TXC töï ñoäng bò xoùa khi chöông trình phuïc vuï ngaét ñöôïc thöïc thi. Bit côø TXC ñöôïc söû duïng trong giao tieáp truyeàn thoâng baùn song coâng (nhö chaån RS485). Khi ngaét Transmit Complete cho pheùp töùc laø bit TXCIE trong thanh ghi UCSRB ñöôïc ñaët leân möùc moät khi bit TXC ñaët leân möùc moät chöông trình phuïc vuï ngaêt ñöôïc thöïc thi vaø côø TXC töï ñoäng bò xoùa veà khoâng Nhaän döõ lieäu (5 ñeán 8 bit) Vieäc nhaän döõ lieäu ñöôïc cho pheùp khi bit RXEN (Receive Enable) trong thanh ghi UCSRB ñöôïc ñaët leân möùc moät. Toác ñoä baud, cheá ñoä hoaït ñoäng vaø ñònh daïng khung döõ lieäu phaûi ñöôïc thieát laäp tröôùc khi thöïc hieän nhaän döõ lieäu. Neáu hoaït ñoäng ôû cheá ñoä ñoàng boä thì xung treân chaân XCK ñöôïc söû duïng nhö laø xung trong nhaän döõ lieäu. Quaù trình nhaän döõ lieäu baét ñaàu khi boä nhaän phaùt hieän bit start moãi bit theo sau bit start ñöôïc laáy maãu ôû toác ñoä baud hoaëc xung XCK ñöôïc thieát laäp tröôùc ñoù, vaø döõ lieäu ñöôïc dòch vaøo thanh ghi dòch cho ñeán khi bit stop ñaàu tieân cuûa khung döõ lieäu ñöôïc nhaän. Moät bit stop thöù hai seõ ñöôïc boû qua. Khi bit stop thöù nhaát ñöôïc nhaän khung döõ lieäu ñöôïc ñaët trong thanh ghi dòch sau ño döõ lieâu ñöôïc di chuyeân vaøo boä ñeäm nhaän döõ lieâu trong boä ñeäm naøy ñöôïc ñoïc thoâng qua thanh ghi xuaát nhaäp UDR. Sô ñoà khoái USART Toác ñoä baud Tuøy vaøo cheá ñoä hoaït ñoäng maø toác ñoä baud coù theå ñöôïc xaùc ñònh nhö sau: BAUD: toác ñoä baud (bps). fosc : taàn soá thaïch anh (Hz). UBRR giaù trò cuûa caùc bit UBRR11:0 trong hai thanh ghi UBRRH vaø UBRRL . Caùc thanh ghi trong USART Thanh ghi UDR - UART I/O Data Register Thanh ghi UDR thöïc chaát laø hai thanh ghi rieâng leû veà maët vaät lyù nhöng cuøng chia seû ñòa chæ I/O gioáng nhau. Thanh ghi TXB (Transmit Data Buffer Register) ñöôïc söû duïng trong vieäc truyeàn döõ lieäu, trong nhaän döõ lieäu thì döõ lieäu ñöôïc ñoïc töø thanh ghi RXB (Receive Data Buffer Register). Thanh ghi UCSRA – USART Control and Status Register A Bit 7- RXC (USART Receive Complete) Bit côø naøy ñöôïc ñaët leân moät khi coù döõ lieäu chöa ñöôïc ñoïc trong thanh boä ñeäm nhaän vaø bò xoùa khi boä ñeäm nhaän troáng. Bit naøy coù theå ñöôïc söû duïng phaùt sinh ngaét Receive Complete interrupt Bit 6-TXD (USART Transmit Complete) Bit côø naøy ñöôïc ñaët leân möùc moät khi toaøn boä khung döõ lieäu trong boä ñeäm truyeàn ñöôïc dòch heát ra ngoaøi vaø chöa coù döõ lieäu môùi xuaát hieän trong boä ñeäm truyeàn. Bit nay töï ñoäng xoùa veà khoâng khi ngaét Transmit Complete ñöôïc thöïc thi. Bit 5- UDRE( USART Data Register Empty) Côø UDRE baùo neáu boä ñeäm (URD) saüng saøng nhaän döõ lieäu môùi. Neáu UDRE ôû möùc moät coù nghóa laø boä ñeäm truyeàn troáng saün saøng cho ghi döõ lieäu. Côø UDRE coù theå phaùt sinh ngaét Data Register empty Interrupt. Bit 4-FE (Frame Error) Bit naøy ñöôïc ñaët leân möùc moät neáu kyù töï keá tieáp trong boä ñeäm nhaän chöùa moät fame loãi trong khi nhaän döõ lieäu. Bit 3- DOR (Data OverRun) Bit côø naøy ñöôïc ñaët leân möùc moät neáu Data OverRun ñöôïc phaùt hieän. Moät Data OverRun hoaït kích hoaït khi boä ñeäm nhaän ñaày (hai kyù töï). Moät kyù töï ñang chöùa trong thanh ghi dòch vaø coù bit start ñöôïc phaùt hieän. Bit naøy khoâng coù giaù trò cho ñeán khi döõ lieäu trong boä ñeäm nhaän ñöôïc ñoïc. Luoân luoân xoùa bit naøy veà khoâng khi thieát laäp thanh ghi UCSRA. Bit 2- PE ( Parity Error) Bit côø naøy ñöôïc ñaët leân möùc moät neáu tieáp theo kyù töï trong boä ñeäm nhaän coù bít parity loãi. Luoân luoân xoùa bit naøy veà khoâng khi thieát laäp thanh ghi UCSRA. Bit 1-U2X (Double the USART Transmission Speed) Bit naøy chæ coù taùc duïng trong cheá ñoä truyeàn baát ñoàng boä. Bit naøy bò xoùa veà khoâng thì söû duïng cheá ñoä truyeàn ñoàng boä. Coøn noù ñöôïc ñaët leân moät thì boä chia toác ñoä baud giaûm xuoáng töø 16 coøn 8 laøm toác ñoä truyeàn taêng leâ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 ñaët leân moät cho pheùp ngaét, ngaét xaåy ra khi côø RXC ñaët leân moät. Ngaêt toaøn cuïc trong thanh ghi SREG ñöôïc ñaët leân moät vaø thì bit RXC trong thanh ghi UCSRA ñöôïc ñaët leân moät. Bit 6-TXCIE (TX Complete Interrupt Enable) Bit TXCIE ñöôïc ñaët leân moät cho pheùp ngaét, ngaét xaåy ra khi côø TXC ñaët leân moät. Ngaêt toaøn cuïc trong thanh ghi SREG ñöôïc ñaët leân moät vaø thì bit TXC trong thanh ghi UCSRA ñöôïc ñaët leân moät. Bit 5- UDRIE (USART Data Register Empty Interrupt Enable) Bit UDRIE ñöôïc ñaët leân moät cho pheùp ngaét, ngaét xaåy ra khi côø UDRE ñaët leân moät. Ngaêt toaøn cuïc trong thanh ghi SREG ñöôïc ñaët leân moät vaø thì bit UDRE trong thanh ghi UCSRA ñöôïc ñaët leân moät. Bit 4- RXEN ( Receiver Enable) Bit RXEN ñöôïc ñaët leân moät cho pheùp nhaän döõ lieäu. Döõ lieäu ñöôïc nhaän vaøo thoâng qua chaân RxD. Neáu boä nhaän döõ lieäu bò caám thì boä ñeäm nhaän vaø caùc côø PE, DOR khoâng coù taùc duïng. Bit 3-TXEN ( Transmitter Enable) Bit TXEN ñöôïc ñaët leân moät cho pheùp truyeàn döõ lieäu. Döõ lieäu ñöôïc truyeàn ñi thoâng qua chaân RxD. Neáu boä nhaän döõ lieäu bò caám thì boä ñeäm truyeàn khoâng coù taùc duïng. Bit 2- UCSZ2 (Character Size) Bit UCSZ2 keát hôïp vôùi caùc bít UCSZ1:0 trong thanh ghi UCSRC thieát laäp soá bít döõ lieäu trong moät khung trong quaù trình truyeàn nhaän. Bit 1- RXB8 (Receive Data Bit 8) RXB8 bít thöù chín cuûa khung döõ lieäu trong nhaän döõ lieäu khi hoaït ñoäng vôùi khung döõ lieäu chín bit. Phaûi ñöôïc ñoïc tröôùc khi ñoïc caùc bit thaáp töø UDR. Bit 0-TXB8 (Transmit Data Bit 8) TXB8 bít thöù chín cuûa khung döõ lieäu trong truyeàn döõ lieäu khi hoaït ñoäng vôùi khung döõ lieäu chín bit. Phaûi ñöôïc ghi tröôùc khi ghi caùc bit thaáp töø UDR. Thanh ghi UCSRC – USART Control and Status Register C Bit 7 - URSEL ( Register Select) Löïa choïn giöõa vieäc truy caäp thanh ghi UCSRC hoaëc thanh ghi UBRRH. Bit URSEL phaûi ñöôïc ñaët leân moät khi thieát laäp thanh ghi UCSRC. Bit 6 – UMSEL (USART Mode Select) Choïn cheá ñoä hoaït ñoäng ñoàng boä hoaëc baát ñoàng boä.Bit UMSEL ñaët möùc moät thì hoaït ñoäng ñoàng boä, ôû möùc khoâng thì hoaït ñoäng khoâng ñoàng boä. Bit 5:4 – UPM1:0 (Parity Mode) Thieát laäp caùc kieåu parity vaø kieåm tra. Bit 3 – USBS (Stop Bit Select) Löïa choïn soá löôïng bit stop ñöôïc cheøn vaøo trong khung döõ lieäu trong truyeàn döõ lieäu. Trong nhaän döõ lieäu noù ñöôïc boû qua. Bit USBS ñaët möùc moät cheøn hai bit stop, ôû möùc khoâng thì cheøn moät bit stop. Bit 2:1 – UCSZ1:0 (Character Size) Hai bit naøy keât hôïp vôùi bit UCSZ2 trong thanh ghi UCSRB thieát laäp soá bít trong moät khung döõ lieäu (Character Size). Bit 0 – UCPOL ( Clock Polarity) Bit naøy chæ söû duïng trong truyeàn nhaän ñoàng boä. Bit UCPOL ôû möùc khoâng khi hoaït ñoäng truyeàn nhaän khoâng ñoàng boä. Bit naøy thieát laäp moái quan heä thay ñoåi döõ lieâu ngoõ ra vaø döõ lieäu laáy maãu, vaø xung ñoàng boä (XCK). Thanh ghi UBRRL and UBRRH – USART Baud Rate Registers Bit 15 – URSEL (Register Select) Löïa choïn vieäc truy xuaát giöõa hai thanh ghi UBRRH vaø UCSRC. Bit URSEL ñöôïc ñaët ôû möùc khoâng khi thieát laäp thanh ghi UBRRH. Bit 14:12 – (Reserved Bits) Caùc bit naøy khoâng coù chöùc naêng trong ATMEGA16, vaø phaûi ñöôïc xoùa veà khoâng. Bit 11:0 – UBRR11:0 (USART Baud Rate Register) Bao goàm 12 bit, 4 bit cuûa thanh ghi UBRRH vaø 8 bit cuûa thanh ghi UBRRL. Caùc bit naøy thieát laäp toác ñoä baud cuûa USART. 2.Khoái caûm bieán nhieät ñoä: LM35 laø caûm bieán duøng ñeå ño nhieät ñoä tính theo oC. Coù 2 loaïi thöôøng gaëp: loaïi ñoùng goùi theo kieåu IC vaø kieåu plastis : Tính naêng cuûa LM35 Ñöôïc hieäu chænh tröïc tieáp thaønh oC. Heä soá chia tuyeán tính + 10.0 mV/ oC. Sai soá khoaûng 0.5 oC taïi 25 oC. Phaïm vi giôùi haïn nhieät ñoä töø −55 tôùi +150 oC. Phuø hôïp vôùi caùc öùng duïng ñieàu khieån töø xa. Giaù thaønh thaáp (15k). Hoaït ñoäng töø 4V ñeán 30V. Doøng qua khoaûng 60 µA. Khaû naêng töï taûn nhieät thaáp, khoaûng 0.08 oC trong ñieàu kieän khoâng khí laø tónh. Möùc ñoä phi tuyeán tieâu bieåu laø ±1⁄4 oC. Trôû khaùng ngoõ ra thaáp, 0.1 Ω vôùi taûi 1 mA. ÖÙng duïng tieâu bieåu LM35 ño nhieät ñoä ngoõ vaøo vaø xuaát tín hieäu ñieän aùp ngoõ ra tæ leä tuyeán tính vôùi nhieät ñoä ngoõ vaøo laø oC. Vì vaäy noù coù lôïi theá hôn caùc caûm bieán tuyeán tính hieäu chænh theo ñoä Kelvin oK. LM35 khoâng caàn thieát phaûi hieäu chænh hay tinh chænh beân ngoaøi vì noù ñöôïc cung caáp phaïm vi chính xaùc tieâu bieåu laø ±1⁄4 oC taïi nhieät ñoä phoøng vaø ±3⁄4 oC ôû nhieät ñoä töø −55 tôùi +150 oC. Trôû khaùng ngoõ ra thaáp, tuyeán tính vaø hieäu chænh chính xaùc laøm cho vieäc ñoïc ngoõ ra vaø kieåm soaùt maïch ñieän trôû neân deã daøng. LM35 coù theå söû duïng nguoàn ñôn hoaëc nguoàn ñoâi vaø ruùt doøng khoaûng 60 µA. Nguoàn ñôn duøng ñeå ño trong phaïm vi töø +2 oC tôùi +150 oC Nguoàn ñoâi duøng ñeå ño phaïm vi töø−55 tôùi +150 oC. Bảng A.3: Thông số kỹ thuật 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 LM35A -550C đến +1500C +1.00C 10mV/0C LM35 -550C đến +1500C +1.50C 10mV/0C LM35CA -400C đến +1100C +1.00C 10mV/0C LM35C -400C đến +1100C +1.50C 10mV/0C LM35D 00C đến +1000C +20C 10mV/0C LM35 là 1 IC cảm biến nhiệt, mạch tích hợp chính xác cao có điện áp đầu ra tỷ lệ tuyến tính với nhiệt độ theo thang độ Celcius. Họ cảm biến này cũng không yêu cầu cân chỉnh bên ngoài vì bản thân nó đã được cân chỉnh. Họ này cho ra điện áp 10mV ứng với thay đổi nhiệt độ là 10C.Bảng giới thiệu một số thông số kỹ thuật chính của họ LM35. Hình A.3: Sơ đồ chân của cảm biến nhiệt LM35. Vì IC cảm biến nhiệt cho ra tương ứng là +10mV/10C mà ADC có độ phân giải là 8 bit tương ứng 256 bước vì vậy ta sẽ chọn VREF cho ADC tương ứng là 2,56 V. 3.Khoái giao tieáp maùy tính Chuaån giao tieáp RS232 Chuaån RS232 söû duïng phöông thöùc truyeàn khoâng ñoái xöùng, söû duïng tín hieäu ñieän aùp cheânh leänh giöõa moät daây tín hieäu vaø ñaát. Möùc ñieän aùp ñöôïc söû duïng giao ñoäng -15V ñeán +15V . Möùc logic 1 töông ñöông vôùi ñieän aùp töø -3V ñeán -15V, möùc logic 0 töông ñöông vôùi ñieän aùp töø 3V ñeán 15V. Toác ñoä laøm truyeàn nhaän khoaûng 20kps vaø phuï thuoäc vaøo khoaûng caùch. Coâng suaát phaùt töông ñoái thaáp nhôø trôû khaùng ñaàu vaøo haïn cheá. Chuaån RS232 loaïi 9 chaân: Giao dieän chuaån RS232 loaïi 9 chaân ( coång COM) DCD : Phaùt hieän soùng mang. DSR : saün saøng laøm vieäc. RXD :ñoïc döõ lieäu RTS : yeâu caàu truyeàn döõ lieäu. TXD : Truyeàn döõ lieäu. CTS : saün saøng nhaän döõ lieäu. DTR : saün saøng laøm vieäc. RI : Baùo chuoâng. GND : 0V Chương 4 : THIẾT KẾ PHẦN CỨNG HỆ THỐNG 1.Chuẩn RS232 Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232, được gọi là cổng Com. Chúng được dùng ghép nối cho chuột, modem, thiết bị đo lường…Khi cần dùng nhiều cổng hơn ta có thể lắp đặt các card mở rộng trên đó có thêm một đến hai cổng Com. Có hai dạng cổng Com: cổng Com 25 chân và cổng Com 9 chân. Ưu điểm giao diện nối tiếp RS232: Khả năng chống nhiễu của các cổng nối tiếp cao. Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện. Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua cổng nối tiếp. Hình 4.1: Chân ra cổng Com DB9. Bảng 4.1: Các Chân và chức năng của cổng Com DB9. DB-9 Tên Ký hiệu Chức năng 1 Data Carrier Detect DCD Phát hiện tín hiệu mang dữ liệu 2 Receive Data RxD Nhận dữ liệu 3 Transmit Data TxD Truyền dữ liệu 4 Data Terminal Ready DTR Đầu cuối dữ liệu sẵn sàng, được kích hoạt bởi bộ nhận khi muốn truyền dữ liệu 5 Singal Ground SG Mass của tín hiệu 6 Data Set Ready DSR Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu 7 Request to Send RTS Yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu 8 Clear To Send CTS Xóa để gửi, bộ nhận đặt đường này lên mức hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận dữ liệu. 9 Ring Indicate RI Báo chuông, cho biết là bộ nhận đang nhận tín hiệu rung chuông. Những đặc điểm cần lưu ý trong chuẩn RS232: Trong chuẩn RS232, các giới hạn trên đối với mức logic 0 và logic 1 là ±12V. Chuẩn RS232 ngày nay đang được áp dụng còn cố định trở kháng tải trong phạm vi từ 3000W đến 7000W. Mức logic 1 có điện áp nằm trong khoảng –3V đến –12V, mức logic 0 từ +3V đến +12V. Trở kháng tải phải lớn hơn 3000W nhưng phải nhỏ hơn 7000W. Tốc độ truyền/nhận dữ liệu cực đại là 100kbps (ngày nay có thể đạt được 200 kbps). Các lối vào phải có điện dung nhỏ hơn 2500pF Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232 không thể vượt quá 15 m nếu không sử dụng Modem. Các giá trị tốc độ truyền dữ liệu chuẩn là : 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800 …… 56600, 115200bps. Vi maïch MAX232 -Vi maïch MAX 232 cuûa haõng MAXIM laø moät vi maïch chuyeân duøng trong giao dieän noái tieáp vôùi maùy tính. Chuùng coù nhieäm vuï chuyeån ñoåi möùc TTL ôû loái vaøo thaønh möùc +3…+15V hoaëc -3…-15V thaønh möùc TTL ôû phía nhaän hay möùc +10V hoaëc –10V ôû phía truyeàn. -Vi maïch MAX 232 coù hai boä ñeäm vaø hai boä nhaän. Ñöôøng daãn ñieàu khieån loái vaøo CTS, ñieàu khieån vieäc xuaát ra döõ lieäu ôû coång noái tieáp khi caàn thieát, ñöôïc noái vôùi chaân 9 cuûa vi maïch MAX 232. Coøn chaân RST (chaân 10 cuûa vi maïch MAX ) noái vôùi ñöôøng daãn baét tay ñeå ñieàu khieån quaù trình nhaän. Thöôøng thì caùc ñöôøng daãn baét tay ñöôïc noái vôùi coång noái tieáp qua caùc caàu noái, ñeå khi khoâng duøng ñeán nöõa coù theå hôû maïch caùc caàu naøy. Caùch truyeàn döõ lieäu ñôn giaûn nhaát laø chæ duøng ba ñöôøng daãn TxD, RxD vaø GND (mass). SƠ ĐỒ MẠCH PHẦN CỨNG VI ĐIỀU KHIỂN ATEMEGA32: Chương 5 : THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN Đoạn codevision AVR: /***************************************************** This program was produced by the CodeWizardAVR V1.24.8d Professional Automatic Program Generator © Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l. Project : Version : Date : 6/24/2009 Author : F4CG Company : F4CG Comments: Chip type : ATmega32 Program type : Application Clock frequency : 16.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 512 *****************************************************/ #include #include #include #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC) // USART Transmitter buffer #define TX_BUFFER_SIZE 8 char tx_buffer[TX_BUFFER_SIZE]; #if TX_BUFFER_SIZE<256 unsigned char tx_wr_index,tx_rd_index,tx_counter; #else unsigned int tx_wr_index,tx_rd_index,tx_counter; #endif // USART Transmitter interrupt service routine interrupt [USART_TXC] void usart_tx_isr(void) { if (tx_counter) { --tx_counter; UDR=tx_buffer[tx_rd_index]; if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0; }; } #ifndef _DEBUG_TERMINAL_IO_ // Write a character to the USART Transmitter buffer #define _ALTERNATE_PUTCHAR_ #pragma used+ void putchar(char c) { while (tx_counter == TX_BUFFER_SIZE); #asm("cli") if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0)) { tx_buffer[tx_wr_index]=c; if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0; ++tx_counter; } else UDR=c; #asm("sei") } #pragma used- #endif // Standard Input/Output functions #include unsigned char adc_data; #define ADC_VREF_TYPE 0x60 // ADC interrupt service routine interrupt [ADC_INT] void adc_isr(void) { // Read the 8 most significant bits // of the AD conversion result adc_data=ADCH; } // Read the 8 most significant bits // of the AD conversion result // with noise canceling unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input|ADC_VREF_TYPE; #asm in r30,mcucr cbr r30,__sm_mask sbr r30,__se_bit | __sm_adc_noise_red out mcucr,r30 sleep cbr r30,__se_bit out mcucr,r30 #endasm return adc_data; } // Declare your global variables here unsigned char n,i; float vin,t,tb; char str[11]; void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // T

Các file đính kèm theo tài liệu này:

  • docHiể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.doc