Tài liệu Đề 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: LỜI CẢM ƠN
Để hồ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 để hồn thành tốt đồ án tốt nghiệp này.
Ngồ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
Chươ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ớ...
41 trang |
Chia sẻ: hunglv | Lượt xem: 1219 | Lượt tải: 3
Bạn đang xem trước 20 trang mẫu tài liệu Đề 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, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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
Chươ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öû duïng caûm bieán nhieät ñoä theo doõi söï thay ñoåi nhieät ñoä.
Keát hôïp vôùi maùy tính ghi nhaän söï thay ñoåi nhieät ñoä nhaèm phaân tích ñaùnh giaù söï bieán ñoåi nhieät ñoä.
Thông qua chương trình vi điều khiển nhaèm ñaùp öùng söï thay ñoåi nhieät ñoä tuøy theo muïc ñích söû duïng maø taùc ñoäng taêng hay giaûm nhieät ñoä.
Môû roäng kieán thöùc veà caùc loaïi vi ñieàu khieåân môùi vaø öùng duïng vaøo trong thöïc teá.
Sử dụng phần mềm matlab nhằm hiển thị giá trị nhiệt độ.
Chương 2 : PHƯƠNG THỨC THỰC HIỆN
Phöông aùn thực hiện
Maïch tích hôïp.
Vi ñieàu khieån AVR coù tích hôïp boä chuyeån ñoåi ADC coù khaû naêng laäp trình.
Maïch toå hôïp tích hôïp giao tiếp với máy tính thông qua cổng RS232.
Hieån thò
Hieån thò giaù trò nhieät ñoä treân Matlab
Caûm bieán nhieät ñoä
Caûm bieán nhieät ñoä LM35 vôùi ñoä nhaïy 10mV/oC doøng ñieän tieâu thuï 60µA, phaïm vi söû duïng töø -55 oC ñeán 150 oC.
Giao tieáp maùy tính
Giao tieáp vôùi maùy tính qua coång COM
Chương 3 : CƠ SỞ LÝ LUẬN
Söû duïng AVR vi ñieàu khieån vôùi khaû naêng laäp trình vaø tích hôïp boä chuyeân ñoåi ADC thuaän tieän trong vieäc thi coâng vaø thieát keá, ñôn giaûn hoùa phaàn cöùng.
Söû duïng caûm bieán nhieät ñoä LM35 vôùi phaïm vi söû duïng roäng, doøng ñieän tieâu thuï thaáp.
Giao tieáp maùy tính qua coång noái tieáp thieát bò phaàn cöùng ñôn giaûn, khoaûng caùch xa 30m ñeán 50m.
Giôùi thieäu caùc khoái
1.Khoái trung taâm
Khoái naøy söû duïng vi ñieàu khieån ATMEGA32 cuûa haõng Atmel vôùi caùc tính naêng:
-Vi ñieàu khieån 8 bit, coù tính naêng söû duïng cao, coâng suaát thaáp.
-Coù 131 taäp leänh theo kieán truùc RISC, chuû yeáu thöïc hieän trong 1 chu kì maùy.
-32x8 thanh ghi ña duïng.
-16KB boä nhôù flash coù khaû naêng laäp trình ñöôïc.
-512 Bytes EEPROM
-1K Byte Internal SRAM.
-Nhieàu ngoõ vaøo ra (I/O Port) 2 höôùng (bi-directional).
-2 boä Timer/Counters 8-bit vôùi Separate Prescalers vaø Compare Modes.
-1 Timer/Counter 16-bit vôùi Separate Prescaler, Compare Mode vaø -Capture Mode.
-4 keânh PWM.
-8 keânh chuyeån ñoåi ADC 10-bit
-8 keânh chuyeån ñoåi ñôn.
-7 keânh chuyeån ñoåi vi sai chæ ñöôïc ñoùng goùi trong TQFP .
-2 keânh chuyeån ñoåi vi sai coù khaû naêng laäp trình, löïa choïn ñoä lôïi 1x, 10x, or 200x.
-Giao dieän noái tieáp USART( töông thích chuaån noái tieáp RS-232)
-Giao dieän noái tieáp Two-wire Serial( töông thích chuaån I2C )
-Giao dieän noái tieáp SPI Master vaø Slave.
-Boä Watchdog Timer coù khaû naêng laäp trình ñöôïc vôùi boä dao ñoäng treân chip.
-Boä so saùnh Analog treân chip.
……
Sô ñoà chaân cuûa ATMEGA32
Sô ñoà khoái cuûa ATMEGA32
Loõi AVR keát hôïp nhöõng taäp leänh vôùi 32 thanh ghi laøm vieäc vôùi muïc ñích chung. Caû 32 thanh ghi ñeàu ñöôïc keát noái tröïc tieáp ñeán ALU. Cho pheùp truy xuaát 2 thanh ghi laøm vieäc ñoäc laäp vôùi 1 chu kì maùy. Vôùi kieán truùc RISC naøy cho pheùp CPU laøm vieäc nhanh gaáp möôøi laàn kieán truùc CISC.
Moâ taû chaân linh kieän:
VCC & GND Chaân caáp nguoàn cho vi ñieàu khieån.
Port A (PA7..PA0)
Ñöôïc daønh rieâng cho ngoõ vaøo analog cuûa boä chuyeån ñoåi ADC. Ngoaøi ra Port A coøn ñöôïc duøng nhö 1 Port vaøo ra 2 höôùng neáu boä chuyeån ñoåi ADC khoâng söû duïng. Moãi chaân cuûa Port A ñöôïc cung caáp ñieän trôû keùo leân beân trong. Boä ñeäm ngoõ ra cuûa Port A ñöôïc ñieàu khieån cho caû 2 khaû naêng, sink doøng vaø source doøng. Khi Port A 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.
Port B (PB7..PB0)
Port B ñöôï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 B ñöôïc ñieàu khieån cho caû 2 khaû naêng, sink doøng vaø source doøng. Khi Port B 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 B coøn ñöôïc söû duïng nhöõng chöùc naêng khaùc, ñöôïc trình baøy nhö sau:
Port C (PC7..PC0)
Port C ñöôï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 C ñöôïc ñ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;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x48;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 1000.000 kHz
// ADC Voltage Reference: AVCC pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x8C;
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
tb=0;
for(i=0;i<100;i++) //vong lap chong nhieu
{
n=read_adc(1); //doc ngo vao ADC
vin=(float)n*5/256; //doc dien ap ngo vao
t=vin*100; //tinh nhiet do
tb+=t;
}
t=tb/100;
ftoa(t,0,str); //chuyen nhiet do kieu float sang kieu chuoi
printf("%s",str); //truyen nhiet do len may tinh kieu chuoi
delay_ms(1000);
};
}
Đoạn chương trình tạo form Visual Basic 6.0:
Đoạn chương trình hiển thị nhiệt độ:
Private Sub cmb3_Click()
End
End Sub
Private Sub com_OnComm()
If com.CommEvent = comEvReceive Then
txt.Text = com.Input
End If
End Sub
Private Sub Form_Load()
With com
.CommPort = 1 'chose COM1
.Settings = "9600,N,8,1" 'baud 9600bps, none parity, 8 bit data, 1 bit stop
.InBufferSize = 1024
.InputLen = 0
.RThreshold = 1
.SThreshold = 1
.OutBufferSize = 512
.InputMode = comInputModeText
.PortOpen = True
End With
t1.Interval = 1000
End Sub
Private Sub lab2_Click()
End Sub
Private Sub t1_Timer()
Dim h, m, s As Byte
txt1.Text = Format(Now(), "hh:nn:ss") & " Ngay " & Format(Now(), "dd-mmm-yyyy")
End Sub
Private Sub txt_Change()
End Sub
Private Sub txt1_Change()
End Sub
Đoạn chương trình cho cổng COM:
Private Sub cmb3_Click()
End
End Sub
Private Sub com_OnComm()
If com.CommEvent = comEvReceive Then
txt.Text = com.Input
End If
End Sub
Private Sub Form_Load()
With com
.CommPort = 1 'chose COM1
.Settings = "9600,N,8,1" 'baud 9600bps, none parity, 8 bit data, 1 bit stop
.InBufferSize = 1024
.InputLen = 0
.RThreshold = 1
.SThreshold = 1
.OutBufferSize = 512
.InputMode = comInputModeText
.PortOpen = True
End With
t1.Interval = 1000
End Sub
Private Sub lab2_Click()
End Sub
Private Sub t1_Timer()
Dim h, m, s As Byte
txt1.Text = Format(Now(), "hh:nn:ss") & " Ngay " & Format(Now(), "dd-mmm-yyyy")
End Sub
Private Sub txt_Change()
End Sub
Private Sub txt1_Change()
End Sub
Chương 6: KẾT LUẬN VÀ KIẾN NGHỊ
Khuyến nghị
Một hệ thống muốn hoàn thiện và có thể ứng dụng vào thực tế thì đòi hỏi phải trải qua một thời gian thử nghiệm cả phần cứng và phần mềm. Tuy nhiên, điều kiện thời gian quá ngắn cộng với trình độ của nhóm thực hiện còn hạn chế, các kiến thức học trong nhà trường chưa có nhiều ứng dụng vào thực tế nên hệ thống chỉ giài quyết được một số vấn đề và không tránh khỏi thiếu sót. Mong rằng cuốn đồ án này là tài liệu tham khảo cho các bạn sinh viên khóa sau và những ai quan tâm để hoàn thiện cho hệ thống trên từng bước đưa vào ứng dụng trong thực tế.
Hướng phát triển của đề tài
Vẽ biểu đồ hiển thị trên máy tính bằng phần mềm Teechart
Lưu nhiệt độ tại 1 thời điểm bất kì nào đó để xử lý
Điều khiển tốc độ động cơ quạt cho phù hợp với nhiệt độ thu được(có thể ứng dụng trong quạt cpu)
TÀI LIỆU THAM KHẢO
NGÔ DIÊN TẬP – ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNH – NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT
NGÔ DIÊN TẬP – LẬP TRÌNH VÀ GHÉP NỐI MÁY TÍNH TRONG WINDOWS – NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT
NGUYỄN HỮU PHƯƠNG – MẠCH SỐ – NHÀ XUẤT BẢN THỐNG KÊ
NGUYỄN ĐÌNH PHÚ – TÀI LIỆU THỰC HÀNH VI ĐIỀU KHIỂN – TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
NGUYỄN HỒNG SƠN – KỸ THUẬT TRUYỀN SỐ LIỆU – NHÀ XUẤT BẢN LAO ĐỘNG – XÃ HỘI
INTERNET:
+ WWW.USTR.NET
+ WWW.USTR.NET/ INFARED/INFARED.COM
+ WWW.USTR.NET/ INFARED/INFARED.HTML
+ WWW. IGUANALABS.COM/MBKIT.HTML
+ WWW.WEBELECTRONICMAGAZINE.COM
Các file đính kèm theo tài liệu này:
- 272o nhi7879t 2737897 LM35 b7857ng vi 273i7873u khi7875n hi7875n thamp.doc