HIỆN THỊ THỜI GIAN THỰC và đo NHIỆT độ dùng PIC16F ( có code và mạch in )

43 1.1K 9
HIỆN THỊ THỜI GIAN THỰC và đo NHIỆT độ dùng PIC16F ( có code và mạch in )

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

có sơ đồ nguyên lý, sơ đồ khối và lưu đồ giải thuật, mạch in và code đầy đủ cho HIỂN THỊ THỜI GIAN THỰC và đo NHIỆT độ dùng PIC16F...............................................................................................................................................................

Báo cáo đồ án DANH MỤC CÁC BẢNG Bảng 1.1 Chức chân .20 Bảng 1.2 Chức chân RS RW theo mục đích sử dụng 22 Page Báo cáo đồ án DANH MUC CÁC TỪ VIẾT TẮT Chữ viết tắt/ ký hiệu Cụm từ đầy dủ RTC Real Time Clock IC Integrated Circuit RAM Random Access Memory ROM Read-only Memory PSEN Program Store Enable ALE Address Latch Enable EA Extenal Access XTAL Crystal LCD Liquid Crystal Dislay I2C Inter-Integrated Circuit SCL Serial Clock Line SDA Serial Data Line Page Báo cáo đồ án DANH MỤC HÌNH ẢNH Mục Lục Danh Mục bảng Danh Mục từ viết tắt Danh Mục hình vẻ .3 Lời cảm ơn .6 Lời mở đầu .7 Chương GIỚI THIỆU CÁC LIỆN KIỆN ĐIỆN TỬ SỬ DỤNG TRONG MẠCH .8 1.1 Giới thiệu PIC 16f877a: .8 1.1.1 Các đặc tính ngoại vi 1.1.2 Sơ lược vi điều khiển PIC 16F877A 10 1.1.2.1 Dao Động 10 1.1.2.2 MCLR 11 1.1.2.3 Bộ nhớ chương trình 12 1.1.3 Khái quát chức Port vi điều khiển PIC 16F877A .13 1.1.3.1 Port A ghi TRIS A 14 1.1.3.2 PORT B ghi TRISB 15 1.1.3.3 Port C ghi TRISC 16 1.1.3.4 Port D ghi TRISD 16 1.1.4 Module ADC .17 1.2 MÀN HÌNH LCD 16x2 17 1.2.1 Cấu Tạo hình dáng 18 1.2.2 Sơ đồ Chân 18 1.2.3 Sơ đồ khối HD44780 21 1.3 CHÍP ĐỊNH THỜI IC DS1307 .23 1.3.1 Giới thiệu IC DS1307 23 1.3.2 Sơ đồ chân 24 1.4 Sensor nhiệt LM35 25 1.4.1 Hình dạng 25 1.4.2 Sơ đồ chân 25 1.4.3 Đặc tính 26 Chương 2.SƠ ĐỒ KHỐI NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH 27 Page Báo cáo đồ án 2.1 Sơ đồ khối 27 2.2 Sơ đồ nguyên lý .28 2.3 Phân tích khối mạch thiết kế 29 2.3.1 Khối vi xử lý hiển thị .29 2.3.2 Khối liệu 29 2.3.3 Khối nguồn 30 Chương KẾT QUẢ MÔ PHỎNG THỰC TẾ 31 3.1 kết mô 31 3.2 kết thực tế 32 Chương 4.KẾT LUẬN 33 4.1 Ưu Điểm nhược điểm 33 4.2 Ứng Dụng 33 Tài Liệu tham khảo 34 Phụ Lục 35 Page Báo cáo đồ án LỜI CẢM ƠN Lời chúng em xin chân thành cảm ơn đến quý Thầy, trường Đại Học Tôn Đức Thắng, người trực tiếp giảng dạy, truyền đạt kiến thức bổ ích cho em, tảng để em hoàn thành đồ án Tiếp đến em xin cảm ơn Thầy TS.Nguyễn Hữu Khánh Nhân tận tình, quan tâm , giúp đỡ em tháng qua, giải đáp thắc mắc trình em thực đề tài “ Lịch Vạn Niên ” Nhờ đó, chúng em hoàn thành báo cáo đồ án Trong trình thực làm báo cáo, chưa kinh nghiệm , dựa vào lý thuyết học nên báo cáo chắn không tránh khỏi sai sót Kính mong nhận góp ý, nhận xét từ phía quý Thầy, để kiến thức em ngày hoàn thiện rút kinh nghiệm bổ ích áp dụng vào thực tiễn cách hiệu tương lai Sau em xin kính chúc quý Thầy, vui vẻ, hạnh phúc, dồi sức khỏe thành công công việc Em xin chân thành cảm ơn TPHCM, ngày 04 tháng 04 năm 2016 Page Báo cáo đồ án LỜI MỞ ĐẦU Kinh tế ngày quốc tế hóa, xã hội ngày phát triển Để đáp ứng nhu cầu thiết sống hội nhập tiến độ phát triển giới, hỏi ngành khoa học kỹ thuật ngày phải nâng cao phát triển chất lượng khả ứng dụng rộng rãi Trong ngành công nghệ kỹ thuật điện tử đóng vai trò quang trọng sinh hoạt sản xuất giới Là sinh viên ngồi ghế nhà trường, em trau dồi kiến thức chuyên môn ngành học Tuy học thực hành nhiều lớp phần nhỏ bé so với kiến thức thực tế ngày sau trường chúng em gặp phải Vì thế, em muốn vận dụng nhũng kiến thức học vào thực tiễn học hỏi thiếu Trong năm học tập, thực nghiên cứu đồ án vừa qua, giúp đỡ thầy giáo môn, em học hỏi nhiều điều thực tế, tìm hiểu nhung vấn đề, tài liệu liên quan giúp ích cho việc hoàn thành báo cáo đồ án Vì sau cân nhắc góp ý thầy em chọn đề tài “Lịch Vạn Niên” Vì lần viết báo cáo đồ án nên nhiều thiếu sót, mong thầy thông cảm Em xin chân thành cảm ơn! Page Báo cáo đồ án CHƯƠNG 1:GIỚI THIỆU VỀ CÁC LINH KIỆN ĐIỆN TỬ SỬ DỤNG TRONG MẠCH 1.1 Giới thiệu PIC 16f877a: PIC 16F877A dòng PIC phổ biến (đủ mạnh tính năng, 40  chân, nhớ đủ cho hầu hết ứng dụng thông thường) Cấu trúc tổng quát PIC16F877A sau:  K Flash ROM  368 Bytes RAM  256 Bytes EEPROM  ports (A, B, C, D, E) vào với tín hiệu điều khiển độc lập  định thời bits (Timer Timer 2) Một định thời 16 bits (Timer 1) hoạt động chế độ tiết  kiệm lượng (SLEEP MODE) với nguồn xung Clock  bô CCP( Capture / Compare/ PWM)  biến đổi AD 10 bits, ngõ vào  so sánh tương tự (Compartor)  định thời giám sát (WatchDog Timer)  Một cổng song song bits với tín hiệu điều khiển  Một cổng nối tiếp  15 nguồn ngắt  chế độ tiết kiệm lượng  Nạp chương trình cổng nối tiếp ICSP(In-Circuit Serial Programming)  Được chế tạo công nghệ CMOS  35 tập lệnh độ dài 14 bits Tần số hoạt động tối đa 20MHz Page Báo cáo đồ án 1.1.1 Các đặc tính ngoại vi bao gồm :  Timer0: đếm bit với chia tần số bit  Timer1: đếm 16 bit với chia tần số, thực chức đếm dựa vào xung clock ngoại vi vi điều khiển hoạt động chế độ sleep  Timer2: đếm bit với chia tần số, postcaler  Hai Capture/so sánh/điều chế độ rộng xung  Chuẩn giao tiếp nối tiếp USART với bit địa  CS bên  Các đặc tính Analog:  kênh chuyển đổi ADC 10 bit  Hai so sánh  Bộ nhớ flash với khả ghi xóa 100.000 lần  Cổng nhớ EEPROM với khả ghi xóa 1.000.000 lần  Dữ liệu nhớ EEPROM lưu trữ 40 năm  Khả tự nạp chương trình với điều khiển phần mềm Nạp chương trình mạch điện ICSP (In Circuit Serial Programming) thông qua chân Watchdog Timer với dao động   Chức bảo mật mã chương trình  Chế độ Sleep thể hoạt động với nhiều dạng Oscillator khác Page Báo cáo đồ án 1.1.2 Sơ lược vi điều khiển PIC 16F877A: Sơ đồ chân : Hình 1.1 Sơ đồ khối PIC 16F877A 1.1.2.1 Dao động: PIC16F877A hoạt động bốn chế độ dao động khác nhau: • LP low-power crystal • XT crystal/resonatpor Page Báo cáo đồ án • HS high-speed crystal/resonatpor Hình 1.2 Các chế độ hoạt động Trong chế độ LP, XT HS sử dụng thạch anh dao động nối vào chân OSC1 OSC2 để tạo dao động Chu kỳ máy: 1.1.2.2 MCLR : PIC16F877A lọc nhiễu phần MCLR Bộ lọc nhiễu phát bỏ qua tín hiệu nhiễu.Ngõ vào MCLR chân PIC16F877A.Khi đưa chân xuống thấp ghi bên VĐK tải giá trị thích hợp để khởi động lại hệ thống (Lưu ý: Reset WDT không làm chân MCLR xuống mức thấp) Page 10 Báo cáo đồ án R1 U3 2 X2 VBAT X2 R111 R222 330 10k 330 X1 SDA SCL DS1307 P3.5 P3.4 BAT1 32.768KHZ PIN 3V U1 1 SOUT VCC DQ GND 27.0 DS18B20 DQ KHOI DINH THOI 1307 KHOI DO NHIET DO Hình 2.4 Khối liệu 2.3.3 Khối Nguồn: Mạch lấy nguồn xoay chiều 12VAC từ biến áp , qua diode cầu chỉnh lưu 2A để nắn dòng xoay chiều thành dòng chiều sau ổn áp nhờ IC 7805 tạo nguồn 5VDC Diode 1N4007 tác dụng chống dòng ngược tắt nguồn, dòng từ tụ không xả qua chân số IC7805 mà qua diode, dòng ngược IC không bị hỏng Hình 2.5 Khối nguồn Page 29 Báo cáo đồ án CHƯƠNG 3: KẾT QUẢ MÔ PHỎNG THỰC TẾ 3.1 KẾT QUẢ MÔ PHỎNG Hình 3.1: Kết mô Page 30 Báo cáo đồ án 3.2.KẾT QUẢ THỰC TẾ: Như kết mạch mô proteus, mạch thực tế khả cập nhật giời gian thực cách xác, nhờ IC DS1307 xử lý PIC 16F877A Ngoài LCD cho ta biết nhiệt độ phòng nhờ vào cảm biến nhiệt LM35 Hình 3.2: Kết thực tế Page 31 Báo cáo đồ án CHƯƠNG 4: KẾT LUẬN 4.1 ƯU ĐIỂM NHƯỢC ĐIỂM • Ưu điểm: + Dựa vào kiến thức đã học + Tham khảo tài liệu, sách vở, anh chị khoá trước + Sự giúp đỡ tận tình giáo viên hướng dẫn + Mạch đồng hồ phù hợp với thực tế • Nhược điểm: + Vẫn nhiều kiến thức không biết, không hiểu biết PIC 16F877A + Khó khăn việc vẽ mạch nguyên lý, mạch in + Trong trình vẽ mạch nguyên lí mạch bị lỗi “nguồn” + Khi làm mạch thực tế : lỗi hàn bị dính chân linh kiện, lắp linh kiện nhầm chân, + Khó khăn viết code cho mạch 4.2 ỨNG DỤNG Trong phát triển mạnh mẽ công nghệ điện tử ngày ứng dụng điện tử vào đời sống phục vụ cho giải trí ngày trọng Em đến đề tài mong muốn đam mê em, Page 32 Báo cáo đồ án muốn tạo sản phẩm mạch điện ứng dụng thực tế Do kiến thức hạn hẹp đề tài em nhìều thiếu sót TÀI LIỆU THAM KHẢO Nguồn tài liệu trực tuyến : www.picvietnam.com www.microchip.com http://www.thuvientailieu.vn http://vi.wikipedia.org www.phuclanshop.com … Page 33 Báo cáo đồ án PHỤ LỤC Code Chương Trình: #include #include #device *=16 adc=10 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) #use i2c(master,fast,sda = pin_c4,scl = pin_c3) #include #define ACK // file giao tiep LCD #define NO_ACK #define k1 RB0//khai bao nut nhan set thoi gian #define k2 RB2 #define k3 RB1 int8 low,high,c_g,dv_g,c_p,dv_p,c_h,dv_h,thu,c_d,dv_d,c_t,dv_t,c_n,dv_n; //const unsigned char so[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char RTC_ARR[7]; // Buffer for second,minute, ,year Page 34 Báo cáo đồ án int32 read,temp; int32 temp1,temp2,temp3; void convert_bcd_lcd(int8 g,int8 p, int8 h, int8 th, int8 d, int8 t, int8 n); void convert_so_lcd(int8 x); void ReadRTC(unsigned char * buff);//chuong trinh doc du lieu tu 1307 void WriteRTC(unsigned char * buff);//chuong trinh viet du lieu tu 1307 void chinh_gio(); // void hienthi()//chuong trinh hien thi thoi gian { LCD_putcmd(0x80);//hang thu cua lcd LCD_putchar(c_h + 0x30); LCD_putchar(dv_h + 0x30);printf(LCD_putchar,":"); LCD_putchar(c_p + 0x30); LCD_putchar(dv_p + 0x30);printf(LCD_putchar,":"); LCD_putchar(c_g + 0x30); LCD_putchar(dv_g + 0x30); printf(LCD_putchar," T: "); LCD_putchar(temp1 + 0x30); LCD_putchar(temp2 + 0x30); printf(LCD_putchar,"C "); LCD_putcmd(0xC0); printf(LCD_putchar,"DATE: ");//hang thu cua lcd LCD_putchar(c_d + 0x30); LCD_putchar(dv_d + 0x30);printf(LCD_putchar,"/"); LCD_putchar(c_t + 0x30); LCD_putchar(dv_t + 0x30);printf(LCD_putchar,"/20"); LCD_putchar(c_n + 0x30); LCD_putchar(dv_n + 0x30);printf(LCD_putchar," "); Page 35 Báo cáo đồ án } void hienthi1(int m)//chuong trinh hien thi thoi gian cai dat { LCD_putcmd(0x80); //hang thu cua lcd if(m==1) {LCD_putchar(63); LCD_putchar(63);} else {LCD_putchar(c_h + 0x30); LCD_putchar(dv_h + 0x30);} printf(LCD_putchar,":"); if(m==2) {LCD_putchar(63); LCD_putchar(63);} else {LCD_putchar(c_p + 0x30); LCD_putchar(dv_p + 0x30);} printf(LCD_putchar,":"); if(m==3) {LCD_putchar(63); LCD_putchar(63);} else {LCD_putchar(c_g + 0x30); LCD_putchar(dv_g + 0x30);} LCD_putcmd(0xC0); printf(LCD_putchar,"DATE: ");//hang thu cua lcd if(m==4) {LCD_putchar(63); LCD_putchar(63);} else {LCD_putchar(c_d + 0x30); LCD_putchar(dv_d + 0x30);} printf(LCD_putchar,"/"); if(m==5) {LCD_putchar(63); LCD_putchar(63);} else {LCD_putchar(c_t + 0x30); LCD_putchar(dv_t + 0x30);} printf(LCD_putchar,"/20"); if(m==6) {LCD_putchar(63); LCD_putchar(63);} else {LCD_putchar(c_n + 0x30); LCD_putchar(dv_n + 0x30);} printf(LCD_putchar," "); } //============================ void main()//chuong trinh chinh { int i=200; lcd_init();//khoi tao lcd //========================================= Page 36 Báo cáo đồ án // Khoi tao che cho bo ADC setup_adc_ports(sAN0);//chon kenh ngo vao cho lm35 setup_adc(ADC_CLOCK_INTERNAL); delay_us(10); c_g=0,dv_g=1,c_p=2,dv_p=3,c_h=4,dv_h=5,thu=6,c_d=7,dv_d=8,c_t=9,dv_t=0,c _n=1,dv_n=2; LCD_putcmd(0x80); printf(LCD_putchar,"DONG HO SO "); LCD_putcmd(0xC0); printf(LCD_putchar,"DO NHIET DO LM35"); delay_ms(1500); //======================================= while(true)//doc cap nhat nhiet tu bo adc va hien thi dong ho { ReadRTC(&RTC_ARR[0]); convert_bcd_lcd(RTC_ARR[0],RTC_ARR[1],RTC_ARR[2],RTC_ARR[3],RTC_ ARR[4],RTC_ARR[5],RTC_ARR[6]); if(i>50){ i = 0; read=read_adc(); temp = (int)read*500/102,3; temp1 = (temp / 100); temp3 = temp % 100; temp2 = (temp3 / 10); if((temp1*10+temp2)>4; //chia lay phan du, so hang don vi dv_g=g&15; //tach hang tram va hang chuc c_p=(p%240)>>4; //chia lay phan du, so hang don vi dv_p=p&15; //tach hang tram va hang chuc c_h=(h&240)>>4; //chia lay phan du, so hang don vi dv_h=h&15; //tach hang tram va hang chuc thu = th; c_d=(d&240)>>4; //chia lay phan du, so hang don vi dv_d=d&15; //tach hang tram va hang chuc c_t=(t%240)>>4; //chia lay phan du, so hang don vi dv_t=t&15; //tach hang tram va hang chuc c_n=(n&240)>>4; //chia lay phan du, so hang don vi dv_n=n&15; //tach hang tram va hang chuc } Page 38 Báo cáo đồ án void convert_so_lcd(int8 x) { low=x%10; //chia lay phan du, so hang don vi high=x/10; //tach hang tram va hang chuc low = low + 0x30; high = high + 0x30; } void chinh_gio() { int mode=1,i=0,t; ReadRTC(&RTC_ARR[0]); convert_bcd_lcd(RTC_ARR[0],RTC_ARR[1],RTC_ARR[2],RTC_ARR[3],RTC_ ARR[4],RTC_ARR[5],RTC_ARR[6]); while(TRUE) { if(i20) i = 0; if(k2==0) { while(k2==0) {} switch(mode) { Page 39 Báo cáo đồ án case 1: { t = c_h*10+dv_h; if(t0) t ; else t = 99; c_n = t/10; dv_n = t%10; break;} } } if(k1==0) { while(k1==0){} mode++; if(mode>6) break;} //if(k4==0) { while(k4==0){} break;} Page 41 Báo cáo đồ án } // Read RTC // void ReadRTC(unsigned char * buff) { i2c_Start(); i2c_Write(0xD0); i2c_Write(0x00); i2c_Start(); i2c_Write(0xD1); *(buff+0)=i2c_Read(ACK); // Second *(buff+1)=i2c_Read(ACK); // Minute *(buff+2)=i2c_Read(ACK); // hour *(buff+3)=i2c_Read(ACK); // Day *(buff+4)=i2c_Read(ACK); // date *(buff+5)=i2c_Read(ACK); // month *(buff+6)=i2c_Read(NO_ACK); // year i2c_Stop(); } // Write RTC // void WriteRTC(unsigned char *buff) Page 42 Báo cáo đồ án { i2c_Start(); i2c_Write(0xD0); i2c_Write(0x00); i2c_Write(*(buff+0)); i2c_Write(*(buff+1)); i2c_Write(*(buff+2)); i2c_Write(*(buff+3)); i2c_Write(*(buff+4)); i2c_Write(*(buff+5)); i2c_Write(*(buff+6)); i2c_Stop(); } 3.69% Page 43 ... đối - Đọc nhiệt độ bách phân (oC) - Điện áp ngõ tuyến tính với 10mV/oC, Vo = 0.01 x t oC (V) - Độ xác cao, tính cảm biến nhiệt độ nhạy, nhiệt độ 25 oC có sai số không 1% - Phạm vi đo : -55oC... đồng hồ thời gian thực (RTC : Real-time clock), khái niệm thời gian thực dùng với ý nghĩa thời gian tuyệt đối mà người sử - dụng, tình giây, phút, DS1307 sản phẩm Dallas Semiconductor (một công... bits (Timer 1) hoạt động chế độ tiết  kiệm lượng (SLEEP MODE) với nguồn xung Clock  bô CCP( Capture / Compare/ PWM)  biến đổi AD 10 bits, ngõ vào  so sánh tương tự (Compartor)  định thời

Ngày đăng: 11/03/2017, 21:17

Từ khóa liên quan

Mục lục

  • DANH MỤC CÁC BẢNG

  • DANH MUC CÁC TỪ VIẾT TẮT

    • Random Access Memory

    • DANH MỤC HÌNH ẢNH

    • LỜI MỞ ĐẦU

    • CHƯƠNG 1:GIỚI THIỆU VỀ CÁC LINH KIỆN ĐIỆN TỬ SỬ DỤNG TRONG MẠCH

      • 1.2 MÀN HÌNH LCD 16x2.

        • 1.2.1 Cấu tạo và hình dáng.

        • 1.2.2 Sơ đồ chân.

        • 1.2.3 Sơ đồ khối của HD44780.

        • 1.3 CHÍP ĐỊNH THỜI IC DS1307.

          • 1.3.1 Giới thiệu về IC DS1307.

          • 1.3.2 Sơ đồ chân.

          • CHƯƠNG 2: SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH

            • 2.1 SƠ ĐỒ KHỐI.

            • 2.1 SƠ ĐỒ NGUYÊN LÝ.

            • CHƯƠNG 3: KẾT QUẢ MÔ PHỎNG VÀ THỰC TẾ

            • 3.1 KẾT QUẢ MÔ PHỎNG.

            • 3.2.KẾT QUẢ THỰC TẾ:

            • CHƯƠNG 4: KẾT LUẬN

              • 4.1 ƯU ĐIỂM VÀ NHƯỢC ĐIỂM.

              • 4.2 ỨNG DỤNG.

              • PHỤ LỤC

Tài liệu cùng người dùng

Tài liệu liên quan