Trong cuộc sống hiện nay có rất nhiều yếu tố ảnh hưởng đến quá trình sản xuất và con người.Trong đó nhiệt độ cũng là yếu tố được đề cập tới rất nhiều, vì thế mạch đo nhiệt độ ra đời là sự tất yếu.Với sự phát triển của công nghệ hiện nay việc sản xuất mạch đo nhiệt độ đơn giản mà độ chính xác cao là điều khá đơn giản.Hiện nay trên thị trường có rất nhiều cảm biến đo nhiệt độ như DS18B20,LM35... Đa số các cảm biến hiện nay đều có độ chính xác tương đối cao. Trong đồ án này em sử dụng cảm biến LM35.Mạch cảm biến Nhiệt độ: gồm IC cảm biến nhiệt độ LM35, thay đổi theo nhiệt độ môi trường, ngõ ra của mạch dưới dạng điện áp, tầm thay đổi 10mV ͦ C. Dùng cảm biến LM 35 đo nhiệt độ từ ngoài môi trường,chân Vout của LM35 được kết nối với ngõ vào Analog của PIC16F877A ,sử dụng chức năng ADC của PIC để biến đổi tín hiệu tương tự (dạng điện áp) sang tín hiệu số. Tín hiếu số này được gửi lên LCD để hiển thị nhiệt độ.Nhiệt độ đo được chia làm 3 khoảng : khoảng nhiệt độ cao,nhiệt độ tiêu chuẩn và nhiệt độ thấp. Khi nhiệt độ ở khoảng nào thì sẽ có đèn LED của khoảng nhiệt đó sáng.
LỜI MỞ ĐẦU Với sự tiến bộ không ngừng của khoa học kỹ thuật, đặc biệt là ngành điện tử đã ứng dụng rất nhiều trong công nghiệp. Trong lĩnh vực điều khiển, từ khi công nghệ chế tạo loại vi mạch lập trình phát triển đã đem đến các kỹ thuật điều khiển hiện đại có nhiều ưu điểm so với việc sử dụng các mạch điều khiển được lắp ráp từ các linh kiện rời như kích thước mạch nhỏ, gọn, giá thành rẻ, độ làm việc tin cậy và công suất tiêu thụ thấp Ngày nay lĩnh vực điều khiển đã được ứng dụng rộng rãi trong các thiết bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hằng ngày của con người như máy giặt, đồng hồ điện tử, ti vi nhằm giúp cho đời sống ngày càng hiện đại và tiện lợi hơn. Đề tài ứng dụng vi điều khiển trong đời sống thực tế rất phong phú và đa dạng nhằm đáp ứng cho cuộc sống tiện nghi của con người.Với mục đích tìm hiểu và đáp ứng những yêu cầu trên em đã lựa chọn một đề tài có tính ứng dụng trong thực tế, nhưng không quá xa lạ đối với mọi người, “Mạch đo nhiệt độ” . Đề tài được chia làm 2 chương lớn: Chương 1: Cơ sở lý thuyết. Chương 2: Thực hiện đề tài. Em đã cố gắng vận dụng những kiến thức đã học ở trường cùng với sự tìm tòi học hỏi để có thể hoàn thành tốt đồ án này. Mặc dù em đã rất cố gắng để hoàn thiện đề tài này nhưng vẫn không tránh khỏi sai sót, kính mong các Thầy cô thông cảm. Em xin chân thành cảm ơn. GIỚI THIỆU ĐỀ TÀI Trong cuộc sống hiện nay có rất nhiều yếu tố ảnh hưởng đến quá trình sản xuất và con người.Trong đó nhiệt độ cũng là yếu tố được đề cập tới rất nhiều, vì thế mạch đo nhiệt độ ra đời là sự tất yếu.Với sự phát triển của công nghệ hiện nay việc sản xuất mạch đo nhiệt độ đơn giản mà độ chính xác cao là điều khá đơn giản. Hiện nay trên thị trường có rất nhiều cảm biến đo nhiệt độ như DS18B20, LM35 Đa số các cảm biến hiện nay đều có độ chính xác tương đối cao. Trong đồ án này em sử dụng cảm biến LM35. Mạch cảm biến Nhiệt độ: gồm IC cảm biến nhiệt độ LM35, thay đổi theo nhiệt độ môi trường, ngõ ra của mạch dưới dạng điện áp, tầm thay đổi 10mV/ ͦ C. Dùng cảm biến LM 35 đo nhiệt độ từ ngoài môi trường,chân Vout của LM35 được kết nối với ngõ vào Analog của PIC16F877A ,sử dụng chức năng ADC của PIC để biến đổi tín hiệu tương tự (dạng điện áp) sang tín hiệu số. Tín hiếu số này được gửi lên LCD để hiển thị nhiệt độ.Nhiệt độ đo được chia làm 3 khoảng : khoảng nhiệt độ cao,nhiệt độ tiêu chuẩn và nhiệt độ thấp.Khi nhiệt độ ở khoảng nào thì sẽ có đèn LED của khoảng nhiệt đó sáng. DANH MỤC CÁC TỪ VIẾT TẮT ADC Analog to Digital Converter C Capacitor CGROM Character Generator ROM DDRAM Display Data RAM DR Data Register E Enable I2C Inter –Intergrated Circuit -Bus ICSP In Circuit Serial Programming IR Instructor Register LCD Liquid Crystal Display LED Light Emitting Diode MSSP Master Synchronous Serial Port PIC Programable Intelligent Computer PSP Parallel Slave Port PSP Parallel Slave Port R Resistor R/W Read/Write RS Register select SPI Serial Peripheral Bus SSP Synchronous Serial Port USART Universal Asynchronous Receiver – Transmitter MỤC LỤC CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1 I.GIỚI THIỆU VỀ PIC16F877A 1 1.Giới Thiệu 1 2.Sơ Đồ Khối Vi Điều khiển Pic 16f877a 1 3.Các Chân Của PIC16F877A 2 3.1. Các Chân Nguồn 3 3.2.Chân RESET 3 3.3.Mạch Dao Động 3 4. CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A 3 4.1. PORT A 4 4.2 PORT B 5 4.3. PORT C 5 4.4 PORT D 6 4.5. PORT E 6 5.Chức Năng ADC Của PIC16F877A 7 II.Cảm Biến Nhiệt LM35 8 III.LCD TC1602A 10 1.Hình Dáng Và Kích Thước: 10 2.Chức Năng Của Các Chân 11 3.Sơ Đồ Khối Của HD44780 12 4.Thanh Ghi 13 5.Sử Dụng LCD TC1602A 15 IV.Họ IC 78xx và IC 7805 17 CHƯƠNG 2: THỰC HIỆN ĐỀ TÀI 18 I.Chuẩn Bị Dụng Cụ 18 II.Sơ Đồ Nguyên Lý Của Các Khối Trong Mạch 19 2.1.Khối Nguồn Ổn Áp 19 2.2.Khối Đầu Vào 19 2.3.Khối Vi Xử Lý và Khối LCD 16x2 20 III.Mạch Mô Phỏng Proteus 21 IV.Mạch in và mô phỏng 3D 21 PHỤ LỤC 24 Đồ Án 1 Trang 1 CHƯƠNG I: CƠ SỞ LÝ THUYẾT I.GIỚI THIỆU VỀ PIC16F877A 1.Giới Thiệu Đây là vi điều khiển họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14bit.Mỗi lệnh đều được thực thi trong 1 chu kì xung clock.Tốc độ hoạt động tối đa cho phép là 20MHz với một chu kì lệnh là 200ns.bộ nhớ chuong trình 8Kx14 bit,bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte.Số PORT I/O là 5 với 33 pin I/O. Hình 1.1 hình dạng PIC 16f877a Các đặc tính ngoại vi gồm các khối chức năng sau: Timer0:bộ đếm 8bit với bộ chia tần số 8bit. Timer1: bộ đếm 16bit với bộ chia tần số,có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep. Timer2: bộ đếm 8bit với bộ chia tần số,bộ postcaler. Hai bộ Capture/so sánh/điều chế độ rông xung. Các chuẩn giao tiếp nối tiếp SSP, SPI và I2C. Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ. Cổng giao tiếp song song PSP với các chân điều khiển RD,WR,CS ở bên ngoài. Các đặc tính Analog: Có 8 kênh chuyển đổi ADC 10 bit. Hai bộ so sánh. Một vài đặc tính khác của vi điều khiển như: Bộ nhớ flash có khả năng ghi xóa được 100.000 lần. Bộ nhớ EEPROM có khả năng ghi xóa được 1000.000 lần. Khả năng tự nạp chương trình với sự điều khiển của phần mềm. Nạp được chương trình ngay trên mạch điện ICSP thông qua 2 chân. Chế độ Sleep. Có thể hoạt động với nhiều oscillator khác nhau. 2.Sơ Đồ Khối Vi Điều khiển Pic 16f877a Đồ Án 1 Trang 2 Hình 1.2 Sơ đồ khối vi điều khiển pic 16f877a 3.Các Chân Của PIC16F877A Hình 1.3 Thứ tự các chân PIC16f877a Đồ Án 1 Trang 3 3.1.Các Chân Nguồn Các chân nguồn của vdk được kí hiệu: chân cấp nguồn là VDD,chân nối mass là Vss. Trong hình vẽ ta có thể thấy các chân cấp nguồn như sau: Chân 11,32 là chân cấp nguồn VDD (+5V). Chân 12,31 là chân nối đât Vss (0V). 3.2.Chân RESET Trên hình ta thấy chân số 1 (MCLR/Vpp) chính là chân reset của PIC,chân này có chức năng khởi đọng lại PIC khi chân này tích cực.Có một điểm khác biệt với họ 8051là chân reset của pic 16f877a tích cực ở mức thấp. Hình 1.4 nối chân reset 3.3.Mạch Dao Động Trên hình 2 chân 13 (OSC1) và chân 14(OSC2) là 2 chân dao động.Tốc độ dao động được xác định thông qua tần số dao động của bộ dao động. Cần phải cung cấp xung hoạt động cho vi điều khiển. PIC16F877A và các vi điều khiển nói chung, cho phép nhiều cách cung cấp xung hoạt động khác nhau. Ở đây sẽ dùng thạch anh làm nguồn xung, và công việc của ta là gắn thạch anh vào hai chân 13 và 14 của vi điều khiển. Tuy nhiên , các xung dao động do thạch anh tạo ra cũng không thực sự ổn định một cách tuyệt đối, và cách khắc phục là gắn thêm các tụ lọc vào thạch anh. Hình 1.5 nối bộ dao động của PIC 4. CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A -Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài. Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách bố trí và chức năng của vi điều khiển. -Vi điều khiển ngoài những chức năng xuất nhập thông thường,một số chân I/O còn có thêm chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi đối với thế giới bên ngoài. -Vi điều khiển PIC16F877a có 5 cổng I/O bao gồm : PORTA, PORTB, PORTC, PORTD và PORTE. Đồ Án 1 Trang 4 -Hướng truyền nhận được thiết lập bằng cách đưa giá trị thích hợp vào thanh ghi TRISx. -Thanh ghi TRISx có chức năng định hướng các PORT tương ứng.(VD: TRISA định hướng cho PORTA). +Cho chân nào của PORT là chân nhập thì ta set chân đó =1. +Cho chân nào của PORT là chân xuất thì ta clear chân đó về 0. -Ngoài ra có thể thao tác trực tiếp trên thanh ghi,có thể làm cho tất cả các chân của PORT tương ứng đều ở mức xuất hoặc nhập. VD: TrissB = 0x00; //chọn toàn bộ PORTB là cổng xuất TrissB = 0xFF; //chọn toàn bộ PORTB là cổng nhập - PORT của vi điều khiển PIC16F877A cho phép truyền nhận dữ liệu theo hai hướng, có nghĩa là được phép đọc và xuất dữ liệu ra port điều khiển. -Thanh ghi PORTx có chức năng qui định trạng thái logic của PORT tương ứng. - Dữ liệu nhập vào hay xuất ra PORT sẽ được chứa trong thanh ghi của PORT đó. -Ví dụ, giả sử như tất cả các chân của PORTB đều là chân xuất dữ liệu, khi đó muốn đưa tất cả các chân của PORTB lên mức logic 1, ta chỉ việc đưa vào thanh ghi PORTB giá trị ‘11111111’. Nếu tất cả các chân trong PORTB đều là chân nhập dữ liệu, muốn biết được trạng thái mức logic của từng chân ta chỉ việc đọc giá trị của thanh ghi PORTB. 4.1. PORT A -PORT A (RPA) bao gồm 6 I/O pin.Các chân này là chân 2 chiều (Bidirectional pin). Chức năng I/O này được điều khiển bởi thanh ghi TRISA ( địa chỉ 85h). PORT A còn là ngõ ra của bộ ADC,bộ so sánh,ngõ vào ANALOG,ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP. Hình 1.6 bảng chức năng của PORT A Đồ Án 1 Trang 5 4.2 PORT B -PORT B (RPB) gồm 8 I/O pin. Thanh ghi điều khiển xuất nhập tương ứng là TRISB -PORT B còn được sử dụng trong quá trình nạp quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau. PORT B còn liên quan đến ngắt ngoại vi và bộ Timer0. PORT B còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương trình. Hình 1.7 bảng chức năng của PORTB 4.3. PORT C -PORT C (RPC) gồm 8 I/O pin. Thanh ghi điều khiển xuất nhập tương ứng là TRISC. -PORT C chứa các chân chắc năng của : *Bộ so sánh. *Bộ Timer1. *Bộ PWM . Hình 1.8 bảng chức năng của PORT C Đồ Án 1 Trang 6 *Chuẩn giao tiếp nối tiếp 12C, SPI, SSP, USART. 4.4 PORT D -PORT D (RPD) gồm 8 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng là TRISD. -PORT D là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel slave Port). Hình 1.9 bảng chức năng của PORT D 4.5. PORT E -PORT E (RPE) gồm 3 I/O pin. Các chân này có ngõ vào analog. Thanh ghi điều khiển xuất nhập tương ứng là TRISE -PORT E còn là các chân điều khiển của chuẩn giao tiếp. Hình 1.10 bảng chức năng của PORTE [...]... chất bán dẫn bị ảnh hưởng bởi nhiệt độ Nhiệt độ môi trường sẽ tác động trực tiếp lên các chất bán dẫn cấu tạo nên, làm thay đổi mức độ phân cực của cảm biến Nhiệt độ môi trường và mức độ phân cực của chất bán dẫn là tuyến tính Nhiệt độ tăng them 1oC thì cảm biến tăng thêm 10mV, điện áp này được phân áp từ một điện áp chuẩn có trong mạch Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của LM35... đến 30V + Độ phân giải điện áp đầu ra là 10mV/oC + Độ chính xác cao ở 25 C là 0.5 C + Trở kháng đầu ra thấp 0.1 cho 1mA tải +Suy hao dòng điện ít hơn 60-μA +Thích hợp với các mạch ứng dụng từ xa -Dải nhiệt độ đo được của LM35 là từ -55 C - 150 C với các mức điện áp ra khác nhau Xét một số mức điện áp sau : +Nhiệt độ -55 C điện áp đầu ra -550mV +Nhiệt độ 25 C điện áp đầu ra 250mV + Nhiệt độ 150 C điện... LM35 để ta đo các giải nhiệt độ phù hợp Mô phỏng bằng Proteus: +Nhiệt độ là 27C, điện áp xuất ra là V=0.27176 chứng tỏ sự tăng 10mV /C là khá chính xác Hình 1.14 mô phỏng độ chính xác của LM35 Trang 9 Đồ Án 1 III .LCD TC1602A 1.Hình Dáng Và Kích Thước: Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên hình 1 là hai loại LCD thôngdụng Hình 1.15 Hình dáng của hai loại LCD thông dụng... D6 D6 // D7 D7 // LCD pins D0-D3 are not used and PIC D3 is not used Các hàm thông dụng lcd_ init() : là hàm phải có để báo rằng sẽ sử dụng LCD lcd_putc( char c) : hàm để xuất ký tự ra LCD lcd_gotoxy( BYTE x, BYTE y) : hàm cho phép con trỏ nhảy tới vị trí (x,y) trên LCD Mô phỏng ví dụ dùng LCD bằng Proteus: Code : #define #include "16F877A.h" #device *=16 adc=10 //#device PIC16F877A *=16 #use... thiết kế mạch ta nối chân này với VCC=5V của mạch điều khiển Vee : Chân này dùng để điều chỉnh độ tương phản của LCD RS : Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để 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... nối với thanh ghi dữ liệu DR bên trong LCD 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 E : Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E + Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên... bit “01100010” thì trên LCD tại ô thứ 2 từ trái sang (dòng trên) sẽ hiển thị kí tự “b” Hình 1.18 Bảng mã kí tự (ROM code A00) Trang 14 Đồ Án 1 5.Sử Dụng LCD TC1602A Đây là LCD 2 hàng, mỗi hàng 16 ký tự Để sử dụng LCD , ta hãy đọc file LCD. C” trong thư viện Driver của CCS Ở đó CCS hướng dẫn cách ta đi dây cho các chân của LCD, đồng thời CCS viết sẵn cho ta các hàm thao tác cho LCD: Cách nối dây: // As... sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết Các chân này được đánh số thứ tự và đặt tên như hình 2 : Hình 1.16 sô thứ tự các chân của LCD Trang 10 Đồ Án 1 2.Chức Năng Của Các Chân VSS : Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển VDD : Chân cấp nguồn cho LCD, khi thiết kế mạch ta... NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #include void main () { lcd_ init(); lcd_ putc("Do an ky thuat"); Trang 15 Đồ Án 1 Kết quả: Hình 1.19 Mô phỏng hiển thị ký tự ra LCD Trang 16 Đồ Án 1 IV.Họ IC 78xx và IC 7805 Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử dụng IC ổn áp thường được người thiết kế sử dụng vì mạch điện khá đơn giản Các loại ổn áp thường được sử dụng... khiển LCD, người ta phải ra lệnh thông qua tám đường bus DB0-DB7.Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng.Người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR.Nghĩa là,khi ta nạp vào thanh ghi IR 1 chuỗi 8 bit,Chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó VD : Lệnh hiển thị màn hình” có địa chỉ lệnh là 00001100 (DB7…DB0) Lệnh hiển thị . người.Trong đó nhiệt độ cũng là yếu tố được đề cập tới rất nhiều, vì thế mạch đo nhiệt độ ra đời là sự tất yếu.Với sự phát triển của công nghệ hiện nay việc sản xuất mạch đo nhiệt độ đơn giản mà độ chính. cảm biến Nhiệt độ: gồm IC cảm biến nhiệt độ LM35, thay đổi theo nhiệt độ môi trường, ngõ ra của mạch dưới dạng điện áp, tầm thay đổi 10mV/ ͦ C. Dùng cảm biến LM 35 đo nhiệt độ từ ngoài môi. Analog của PIC16F877A ,sử dụng chức năng ADC của PIC để biến đổi tín hiệu tương tự (dạng điện áp) sang tín hiệu số. Tín hiếu số này được gửi lên LCD để hiển thị nhiệt độ .Nhiệt độ đo được chia