Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
396,5 KB
Nội dung
MỤC LỤC I. Mở đầu…………………………………………………………………… 1. Giới thiệu chung về viđiều khiển…………………………………… 2. Phạmvivà Tính khả thi của project ……… II. Chi tiết các linh kiện trong mạch ……………………………………… 1. Khối tạo nguồn điện áp chuẩn 5v ( phục vụ cho mạch chính )……… 1.1 Biến áp 1A………………………………………………………………. 1.2 IC ổn áp LM137………………………………………………………… 2. Khối mạch chính…………………………………………………………… 2.1 Viđiềukhiển Pic16F877A……………………………………………… 2.2 Sensor cảm biến nhiệtđộ LM35………………………………………. 2.3 Led 7 thanh…………………………………………………………… III. Sơ đồ mạch hoàn chỉnh………………………………………………… 1. Sơ đồ mạch nguyên lý…………………………………………………… IV. Chương trình phần mềm nạp cho viđiều khiển………………… 1. Code chương trình nạp cho Pic16F877A………………………………… V. Kết luận……………………………………………………… I. Mở đầu 1. Giới thiệu chung về viđiềukhiển Ngày nay cùng với sự phát triển không ngừng của khoa học kĩ thuật đã đem đến cho cuộc sống của con người tiện nghi hơn đầy đủ hơn.Sức người được giải phóng, những công việc nặng nhọc trước kia đã dần được thay thế bởi máy móc. 1 Hòa vào dòng chảy đó sự bùng nổ về điện tử cùng các công nghệ về xử lý số đã đem lại cho con người những thành tuu to lớn, giúp con người có thể dễ dàng đạt được mục đích của mình trong mọithiết kế.Các quá trình tính toán phức tạp đòi hỏi tốn kém về thời gian, công sức và sự tỉ mỉ tưởng như khó có thể thực hiện lại được hóa dải một cách dễ dàng bằng các khối điều khiển. Không chỉ bó hẹp ứng dụng trong phạmvi công nghiệp, viđiềukhiển đã thực sự khẳng định được chỗ đứng vững chắc của mình trong mọi lĩnh vực, mọi công việc ,nó trở lên gần gữi với con người như là một thứ không thể thiếu được trong cuộc sống. Bạn có thể bắt gặp các ứng dụng của viđiềukhiển tại mọi nơi mọi lúc từ những chiếc đồng hồ đeo tay ,điện thoại ,đèn giao thông….đến các hệ thống phức tạp khác. Từ những kiến thức đã học, để hiểu hơn về viđiềukhiển cần phải có những kiến thức thực tế.Nhóm chúng em đã thống nhất chọn tìmhiểuvàthiếtkếsảnphẩm “Đo nhiệtđộmôi trường” dùngviđiềukhiển Pic16F877A. 2. Phạmvivà tính khả thi của project Như đã biết, Việt Nam là nước có khí hậu nhiệt đới,khí hậu nóng ẩm nên khâu bảo quản các sảnphẩm nông sản gặp rất nhiều khó khăn.Để nâng cao chất lượng sảnphẩm thì yếu tố ổn định nhiệtđộ phải đặt lên hàng đầu. Do kiến thức còn nhiều hạn chế và thời gian không cho phép nên không thể đi sâu vào lĩnh vực này nhóm chúng em chỉ xin làm về công đoạn đầu của quá trình ổn định nhiệtđộ là “đo nhiệtđộmôi trường” với dải nhiệtđộđo từ 0 0 C đến 100 0 C và hiển thị ra led 7 thanh. Về tính khả thi của project thì từ những kiến thức đã tiếp thu được ở trên lớp và những kiến thức tự tìmhiểu thì việc thiếtkế theo như phạmvi đã xác định là hoàn toàn thực hiện được. Một yếu tố nữa là linh kiện phục vụ cho project thì dễ dàng được tìm thấy với giá cả hợp lý đảm bảo cho project hoàn thành đúng như dự định ban đầu. II. Chi tiết các linh kiện trong mạch 1. Khối tạp nguồn điện áp chuẩn 5V Để mạch hoạt động chính xác và ổn định sự cần thiết phải cấp đúng các thông số điện áp và dòng như khuyến cáo của nhà sản xuất.Nhóm đã nghiên cứu thiếtkế ra mạch cấp nguồn 5V dòng ra là 0,85A với 2 linh kiện chính là Biến áp 1A và IC ổn áp LM317. 2 BR1 2W005G C1 1000u VI 3 VO 2 ADJ 1 U1 LM317L R1 470 RV1 0.21k +88.8 Volts TR2 TRAN-2P2S 1.1 Biến áp 1A Biến áp 1A được sử dụng trong project biến nguồn xoay chiều 220V thành các nguồn 12V, 9V,6v với dòng xoay chiều là 1A. 1.2 IC ổn áp LM317 IC ổn áp LM317 có chức năng là cung cấp điện áp ổn định 5V cho mạch ngoài. 3 2. Khối mạch chính Trong khối mạch chính ta sử dụng viđiềukhiểnPIC16F877A ,LM35 và led7 thanh.Ta sẽ xét cụ thể chức năng của từng linh kiện ngay sau đây : 2.1 ViđiềukhiểnPIC16F877A Đặc tính kĩ thuật của Pic16F877A - ViđiềukhiểnPIC16F877A là loại CPU có đặc tính cao được tích hợp trên công nghệ RISC. - Tập lệnh gồm có 35 lệnh ,mỗi lệnh là một từ đơn. - Tất cả các lệnh (ngoại trù các lệnh rẽ nhánh) được thực hiện trong 2 chu kì máy. - Tần số xung nhịp có thể đạt tới 20 MHz. - Bộ nhớ chương trình được tích hợp theo công nghệ Flash với dung lượng 8Kx14 từ (8192 lệnh ),368x8 byte bộ nhớ Ram,256x8 byte bộ nhớ EEPROM. - 14 nguồn ngắt (Bao gồm cả ngắt cứng và ngắt mềm). - Ngăn xếp phần cứng 8 mức. - Gồm 3 chế độ định địa chỉ : trực tiếp, gián tiếp và định địa chỉ tương đối. - Reset khi mở nguồn. - Gồm 3 bộ định thời (Time0, Time1, Time2). 4 Có thay thế LM317 bằng IC có chức năng tương đương như IC7805. Tuy nhiên điểm mạnh của LM317 là có thể điều chỉnh được điện áp đầu ra thông qua chân Adj. - Bộ định thời đáp ứng theo sự kiện của ngoại vi (Watchdog Timer). - Mã bảo vệ lập trình được. - Tiết kiệm năng lượng ở chế độ chờ (Sleep Mode). - Thay đổi nguồn xung nhịp. - Khả năng thiếtkế đây đủ. - Nguồn cung cấp từ 2V đến 5.5V. - Tích hợp mạch lập trình trong thông qua cổng nối tiếp (ICSP) và lập trình với nguồn đơn 5V. - Dòng điện ở mức cao ở các đường dữ liệu có thể đạt tới 25mA. - PIC16F877A gồm 3 bộ định thời/bộ đếm là time0,time1 và time2.trong đó Time0 và Time2 là Time 8 bit còn Time1 là Time16 bit.Tất cả các Timer đều có thể thực hiện như một bộ đếm (counter).Tất cả các Time đều có thể đặt trước tỉ lệ. - 2 bộ bắt giữ ngõ vào ,so sánh vàđiều chế độ rộng xung.Bắt giữ ngõ vào 16 bỉ với độ phân giải 12,5 ns,so sánh với 1 bit với độ phân giải 200ns, điều rộng xung với độ phân giải 10 bit. - 8 kênh ADC 10 bit. - Truyền nhận đa năng đồng bộ và bất đồng bộ với 9 bit địa chỉ. - giao tiếp dữ liệu song song 8 bit. Sơ đồ chân: Tổ chức bộ nhớ - các cổng vào ra và 1 số chân đặc biệt: PIC 16F877A có 3 khối bộ nhớ: bộ nhớ chương trình, bộ nhớ dữ liệu và bộ nhớ EEPROM. Bộ nhớ chương trình và bộ nhớ dữ liệu có đường bus riêng vì vậy có thể truy cập vào từng bộ nhớ một cách riêng rẽ. Bộ nhớ chương trình có 13 bit vì vậy không gian địa chỉ sẽ là 8k word x 8bit. Truy cập ngoài vùng không gian trên sẽ gây lỗi. 5 Bộ nhớ dữ liệu được chia thành 4 bank, trong các bank chứa thanh ghi thường và các thanh ghi chức năng đặc biệt. Bank được chọn phụ thuộc vào bit RP1 và RP0 (bit thứ 6 và bit thứ 5) của thanh ghi trạng thái status. Các thanh ghi chức năng đặc biệt được CPU và bộ ngoại vi sử dụng để điềukhiển các thiết bị. Các thanh ghi này hoạt động như một thanh RAM tĩnh. Thanh ghi trạng thái chứa trạng thái số học của ALU, trạng thái Reset và các bít chọn bank ở bộ nhớ dữ liệu. Các cổng vào ra của PIC: các Port A, B, C, D, E hoạt động bình thường như cổng vào ra hai chiều. - Port A: có 6 bit (tương ứng với 6 chân RA0÷RA5). Các chân của cổng A có tích hợp một số chức năng ngoại vi, nếu một thiết bị ngoại vi được enable thì cổng này sẽ không hoạt động như một cổng vào ra. Thanh ghi xác định chiều tương ứng của các chân port A là thanh ghi TrisA. Các bít ở thanh ghi TrisA bằng 1 sẽ xác định các chân ở port A là đầu vào và ngược lại sẽ là đầu ra. - Port B: rộng 8 bit( RB0÷RB7). Thanh ghi quy định chiều của port B là thanh ghi TrisB. Thiết lập các bit ở Tris B bằng 1 sẽ làm cho cổng B là cổng vào, ngược lại sẽ là cổng ra. - Port C: rộng 8 bit(RC0÷RC7). Thanh ghi quy định chiều của port C là TrisC. Các chân RC3, RC4 dùng để kết nối truyền nhận thông tin với các thiết bị ngoại vi. - Port D: rộng 8 bit(RD0÷RD7). Port D có thể được cấu hình như một cổng vi xử lý rộng 8 bit bằng cách thiết lập bit điềukhiển PSPSTATUS (TrisE.4). Ở chế độ này thì đầu vào là tín hiệu TTL. - Port E: rộng 3 bit (RE0÷RE2). Port E có thể là đầu vào khi bit PSPSTATUS (TrisE.4) được thiết lập. Từ hình vẽ ta thấy, pic 16F877A có 2 chân Vcc và 2 chân GND, để PIC có thể hoạt động được ta phải cung cấp nguồn cho tất cả các chân này. Ngoài cung cấp nguồn ta phải cấp nguồn xung dao động để cho viđiềukhiển hoạt động. Nguồn dao động được cấp qua chân 13 và 14 của PIC. 6 Mạch Reset cho viđiềukhiển là một công tắc để hở thông qua chân MCLR của viđiều khiển. Mạch sẽ thực hiện reset khi chân này từ mức logic 1 xuống mức logic 0. Khi công tắc hở thì chân này luôn mang mức logic 1 do luôn được nối với nguồn thông qua một điện trở hạn dòng R1, điện trở này có giá trị nhỏ hơn 40K để đảm bảo điện áp cung cấp cho viđiều khiển. 2.2 Cảm biến nhiệtđộ LM35 Để thu nhiệtđộ của môi trường, ta sử dụng các sensor nhiệt độ. Cụ thể sensor được dùng trong project là LM35. Đây là loại sensor rất dễ dàng sử dụngvà phổ biến trên thị trường ta sẽ xét các thông số của loại sensor này ngay sau đây : - LM35 là cảm biến được chế tạo từ những chất bán dẫn Nguyên lý của chúng là dựa trên mức độ phân cực của các lớp P-N tuyến tính với nhiệtđộmôitrường . - Để sensor hoạt động thì ta chỉ cần cấp một nguồn duy nhất trong dải từ 4 đến 20V.Để cho thuận tiện nhóm đã dùng nguồn 5V cấp cho viđiềukhiển làm nguồn đẻ nuôi IC LM35 hoạt động. - Dải nhiệtđộđo là từ -55 đến 150 0 C. - Nhiệtđộ tăng 1 0 C thì đầu ra của cảm biến tăng 10 mV. - Độ nhạy là 0,5 o C ở 25 o C. - Sai số đo là ¼ o C. II.3. LED 7 thanh x 4 LED 7 đoạn là một công cụ thông dụng được dùng để hiển thị các thông số dưới dạng các số từ 0 đến 9. Mặc dù công cụ LCD giúp ta thể hiện các thông số một cách linh động hơn 7 Cảm biến LM35 có 3 chân 1 chân cấp nguồn cho IC hoạt động.1 chân nối đất, 1 chân xuất tín hiệu analog.Theo khuyến cáo của nhà sản xuất thì nên mắc 1 điện trở 1K giữa chân output với đất. nhưng LED 7 đoạn vẫn được sử dụng nhiều trong công nghiệp do các ưu thế của nó như: ít chịu ảnh hưởng của nhiệt độ, dễ tạo sự chú ý và góc nhìn rộng. LED 7 đoạn bao gồm 7 đoạn LED được đánh dấu là các kí tự a, b, c, d, e, f, g và một dấu chấm thập phân kí hiệu là dp. Ta có thể xem LED 7 đoạn là một tổ hợp gồm 8 LED. 8 LED này có một đầu (Anode hoặc Cathode) được nối chung và được bố trí theo một qui tắc nhất định dùng để hiển thị các chữ số thập phân. Có hai loại LED 7 đoạn, đó là loại Anode chung (cực Anode của các LED được nối chung với nhau) và loại Cathode chung (cực Cathode của các LED được nối chung với nhau). Tùy theo từng loại LED mà ta có các phương pháp điềukhiển các LED trong tổ hợp đó sáng tắt một cách thích hợp. Đối với loại Anode chung, một LED sẽ được bật sáng nếu mức logic đưa vào chân điềukhiển đoạn LED đo la mức logic 0. Đối với loại Cathode chung, một LED sẽ được bật sáng nếu mức logic đưa vào chân điềukhiển đoạn LED đo là mức logic 1.HV III. Sơ đồ mạch hoàn chỉnh 1.1 Sơ đồ mạch nguyên lý 8 IV. Chương trình phần mềm nạp cho viđiềukhiển 1. Chương trình nạp cho viđiềukhiển 9 // dau tien cac cau doc tu ham voi main() sau do roi den vòng lap while truoc nhe. sau do cu lan luot theo do mà doc các ham khac #include <16f877A.h> #include <def_877a.h> #device *= 16 ADC = 10 #include <math.h> #FUSES NOWDT,HS, NOPROTECT,NOLVP, NOWRT #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) #use i2c(Master,Slow,sda=PIN_C4,scl=PIN_C3) #include "lcd.c" #include "ds1307.c" #bit SW=0x07.5 #bit SW1=0x07.6 #bit SW2=0x07.7 #define LED7 PORTB int8 Num_Char[10] = {0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }; float value; float x;//y; int8 chuc,dv; int16 adc; int16 i; int8 led = 0; byte mode; void read_time(); void tg(); void keyscan(); void ndo(); BYTE sec,min,hour,day,month,year,j; int get_bcd(BYTE data) // ham chuyen doi tu he hexa sang he 10, cai nay ko can phai timhieu ki { int nibh; int nibl; nibh=data/10; nibl=data-(nibh*10); return((nibh<<4)|nibl); } int rm_bcd(BYTE data) //ham chuyen doi tu he so 10 sang he hexa, cai này ko can phai timhieu ki dau 10 [...]... scan_led(value); */ V } Kết luận Như đã nêu ở trong mục ‘phạm vi của project ’ sảnphẩm của chúng em mới chỉ là công đo n đầu trong quá trình ổn định nhiệtđộ ,sản phẩm còn nhiều điều được như ý như : thuật toán còn dài,mạch chưa được gọn, mức độ nhạy với nhiệtđộ thay đổi đột ngột kém… Trong thời gian tới chúng em sẽ cố gắng thiết kế mạch hoạt động ổn định phát triển và mỏ rộng phạm vi ứng dụng của sảnphẩm để có... scan_led(float num) { int8 chuc; int8 dvi; num = Floor (num); chuc = num / 10; dvi = (int8)num % 10; // N?u giá tr? hàng ch?c c?a nhi?t ?? # 0oC thì Led1 sáng các Led khác t?t if(chuc != 0) { output_e(led+0x01); output_b(Num_Char[chuc]); delay_ms(1); clear_led(); delay_us(100); } // Led hàng ??n v? sáng các led khác t?t 11 output_e(led+0x02); output_b(Num_Char[dvi]); delay_ms(1); clear_led(); delay_us(100);... Led hàng ??n v? sáng các led khác t?t 11 output_e(led+0x02); output_b(Num_Char[dvi]); delay_ms(1); clear_led(); delay_us(100); } void main(){ lcd_init(); init_DS1307(); mode=0; // Thi?t l?p các c?ng vào ra và b? bi?n ??i ADC // Set_TRIS_D (0x00); // Set_TRIS_C (0x00); set_TRIS_B (0x00); set_TRIS_A (0x00); set_TRIS_E (0x00); setup_adc_ports(ALL_ANALOG); setup_adc(adc_clock_internal); set_adc_channel(0);... thay đổi đột ngột kém… Trong thời gian tới chúng em sẽ cố gắng thiết kế mạch hoạt động ổn định phát triển và mỏ rộng phạm vi ứng dụng của sảnphẩm để có thể hiển thị ngày giờ thực và có thể giao tiếp với mày tính giúp cho vi c thống kê theo dõi được dễ dàng Trong quá trình thực hiện nhóm đã gặp không ít khó khăn nhưng được sự hướng dẫn chỉ bảo tận tình của thầy.Chúng em xin cảm ơn thầy đồng thời rất... delay_us(10); write_DS1307(0x00,0x00); // L?y m?u nhi?t ?? l?n 1 x =read_adc(); value= (float)x * 0.48828125; i = 0; while(true){ ndo(); keyscan(); tg(); } } void read_time(){ // ham nay nhap du lieu tu DS1307 vào LCD day= rm_bcd(read_DS1307(4)); month= rm_bcd(read_DS1307(5)); year= rm_bcd(read_DS1307(6)); hour= rm_bcd(read_DS1307(2)); min= rm_bcd(read_DS1307(1)); sec= rm_bcd(read_DS1307(0)); } void tg(){ read_time();... //xuat hien nam printf(lcd_putc,"nam :%02d ",year); j=year; { up_time(); if(j>0x99)j=0x00; } { down_time(); if(j6)mode=0; } 14 void ndo(){// day la ham nhietdo int8 temp; set_adc_channel(0); delay_us(10); adc=read_adc(); chuc=(adc*0.48828125)/10; dv=(adc*0.48828125)-chuc*10; . thống nhất chọn tìm hiểu và thiết kế sản phẩm Đo nhiệt độ môi trường dùng vi điều khiển Pic16F877A. 2. Phạm vi và tính khả thi của project Như đã biết, Vi t Nam là nước có khí hậu nhiệt đới,khí. dụng vi điều khiển PIC16F877A ,LM35 và led7 thanh.Ta sẽ xét cụ thể chức năng của từng linh kiện ngay sau đây : 2.1 Vi điều khiển PIC16F877A Đặc tính kĩ thuật của Pic16F877A - Vi điều khiển PIC16F877A. không thể đi sâu vào lĩnh vực này nhóm chúng em chỉ xin làm về công đo n đầu của quá trình ổn định nhiệt độ là đo nhiệt độ môi trường với dải nhiệt độ đo từ 0 0 C đến 100 0 C và hiển thị ra