Báo cáo đồ án vđk dùng pic 16F877A hiển thị nhiệt độ lên LCD

23 1.9K 11
Báo cáo đồ án vđk dùng pic 16F877A hiển thị nhiệt độ lên LCD

Đ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

1 Phụ Lục LỜI MỞ ĐẦU Ngày nay, với ứng dụng khoa học kỹ thuật tiên tiến, giới ngày thay đổi, văn minh đại Sự phát triển kỹ thuật điện tử tạo hàng loạt thiết bị với đặc điểm bật xác cao, tốc độ nhanh, gọn nhẹ yếu tố cần thiết góp phần cho hoạt động người đạt hiệu cao Các điều khiển sử dụng vi điều khiển đơn giản để vận hành sử dụng lại điều phức tạp Các vi điều khiển theo thời gian với phát triển công nghệ bán dẫn tiến triển nhanh, từ vi điều khiển bit đơn giản đến vi điều khiển 32 bit, sau 64 bit Điện tử trở thành ngành khoa học đa nhiệm vụ Điện tử đáp ứng đòi hỏi không ngừng từ lĩnh vực công – nông – lâm – ngư nghiệp nhu cầu cần thiết hoạt động đời sống ngày Một ứng dụng thiết thực ứng dụng nhiệt kế điện tử Với môn học Vi điều khiển này, em định nhận làm đồ án thiết kế mạch đo nhiệt độ dùng IC LM35 Đồ án chia làm chương lớn: Chương 1: Cơ sở lý thuyết Chương 2: Vẽ mô chạy mô proteus Chương : Viết code nạp code chạy mạch thực Trong suốt thời gian thực đề tài, chúng em gặp số vướng mắc lý thuyết khó khăn việc làm sản phẩm Tuy nhiên, em nhận giải đáp hướng dẫn kịp thời thầy Đào Hiếu, góp ý kiến bạn sinh viên lớp Em xin chân thành cảm ơn mong muốn nhận nhiều giúp đỡ, bảo thầy bạn đồ án sau Chương Cơ sở lý thuyết 1.1 Giới thiệu chung mạch Ngày việc sử dụng thiết bị điện tử phục vụ đời sống hàng ngày phổ biến Trong ta kể đến thiết bị cảm ứng hiển thị thông số môi trường phục vụ nhiều mục đích khác nhằm tạo tiện lợi sinh hoạt hàng ngày Bắt nguồn từ mục đích đó, em thiết kế mạch cảm ứng nhiệt độ hiển thị LCD sử dụng vi điều khiển PIC 16F877A linh kiện cảm ứng nhiệt độ LM35 Nhiệt độ thông số phổ biến quan tâm thực tế nói riêng kĩ thuật nói chung, việc cảm ứng nhiệt độ hiển thị hữu ích không khó thực Nhóm em chọn linh kiện không phức tạp khó sử dụng PIC 16F877A, hình LCD 16x2 , cảm biến nhiệt LM35 có khả cảm biến tốt dễ tìm mua Để bắt đầu vào làm mạch này, chúng em trải qua trình tra cứu sách vở, tài liệu thư viện, trang web, cho nhóm em cách nhìn tổng quan mạch nhóm cần tìm hiểu nắm cho mạch Từ em rút khái niệm cần nắm để thực hiên mạch là: - Chức ADC PIC ứng dụng mạch Cách sử dụng LCD, giao tiếp PIC LCD Cách sử dụng cảm biến Tới đủ công cụ để làm mạch thực tế (Viết code, proteus, vẽ layout, test mạch thử.) Làm mạch thực tế 1.2 Linh kiện sử dụng mạch -PIC 16F877A -Màn hình LCD 16X2 -Cảm biến nhiệt LM35 -Thạch anh -Bộ nguồn 9V - ổn áp 7805 -Tụ, điện trở, biến trở, nút bấm.,led,… 1.3 Các khối , công dụng chức của khối 1.3.1 Pic16F877A Có thể nói, vi điều khiển phổ biến Việt Nam, ứng dụng nhiều Hiện có họ vi điều khiển tiếng Ätmel, Intel, hang Motorola, hãng Microchip (PIC) Nhóm em chọn PIC cho việc làm quen với vi điều khiển PIC họ vi điều khiển mạnh, giàu tài nguyên phần cứng, hỗ trợ nhiều tài liệu từ hãng sản xuất, có nhiều tập lệnh để lập trình Hiện nay, PIC hỗ trợ rộng rãi từ cộng đồng dễ dàng tự học PIC thông qua trang web www.diendandientu.com,www.picvietnam.com, Cụ thể nhóm em chọn PIC 16FS77Ä hãng Microchip Đây dòng PIC phổ biến, giá thành rẻ, có đầy đủ tính PIC, đơn giản cho người bắt đầu học, có nhiều tài liệu để tham khảo học tập Pic tích hợp nhiều thiết bị ngoại vi nên dẫn đến thiết kế mạch đơn giản a) Cấu trúc tổng quát PIC 16F877A - 40 pins gồm tổng cộng port (Port Ä có pins , port B, C, D có S pins, port E có pins) - 8Kb Flash ROM - 36S bytes RÄM - 256 bytes EFPROM - Timer gồm: Timer0 Timer2 Sbit Timer1 16bit - Capture/Compare/PWM - biến đổi analog sang digital (ÄDC) - so sánh tương tự - định thời giám sát - cổng song song bit với tín hiệu điều khiển - cổng nối tiếp - 15 nguồn ngắt Ưu điểm PIC tập lệnh gọn, dễ nhớ (35 lệnh) lập trình tiết kiệm nhớ, tốc độ xử lý nhanh (cho phép chu kỳ máy lên tới 5Mhz) Bộ nhớ đủ cho hầu hết ứng dụng thông thường Sơ đồ chân pic16f877a hình vẽ Á sơ b) Ứng dụng vào mạch cảm biến nhiệt độ: - - Đối với mạch nhóm thực hiện, PIC 16F877A chủ yếu khai thác tính ADC, timer bit, timer 16 bit Vì tính ưu việt khác PIC 16F877A nhóm em xin phép không đề cập ADC (Analog to Digital Converter) dùng để biến đổi tín hiệu điện áp Analog vào chân PIC, biến đổi qua giá trị số (Digital) cách so sánh với điện áp tham chiếu (Reference Voltage) Điện áp tham chiếu điện áp VDD (điện áp nguồn) điện áp tham chiếu đưa vào chân khác PIC 16F877A có 10 bit chuyển đổi A/D => Giúp chuyển đổi.(dẫn đến kết nối dây trở nên đỡ phức tạp) - Sử dụng Timer: +Timer0: bit định thời, đếm với hệ số tỉ lệ trước +Timer1: bit định thời, đếm với hệ số tỉ lệ trước, có khả tăng chế độ Sleep qua xung đồng hồ cung cấp bên +Timer2: bit định thời, đếm với bit hệ số tỉ lệ trước, hệ số 1.3.2 LCD Thiết bị hiển thị LCD sử dụng nhiều ứng dụng vi điều khiển LCD có nhiều ưu điểm so với dạng hiển thị khác Nó có khả hiển thị kí tự đa dạng, trực quan (chữ, số kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn tài nguyên hệ thống giá thành rẻ Trong mạch nhóm em sử dụng LCD 16X2, loại LCD sử dụng phổ biến công nghiệp đời sống Cấu trúc sơ lược LCD16x2: LCD linh kiện hiển thị sử dụng phổ biến mạch vi điều khiển, khả hiển thị đa dạng Trên hình LCD, thông tin hiển thị hai dòng, dòng 16 kí tự Sau tên chân cộng dụng chúng loại LCD Bộ nhớ LCD gồm nhớ: DDRAM, CGRAM, CGROM Trong chức nhớ sau: - *DDRAM: Được sử dụng để lưu trữ kí tự cần hiển thị, kích thước nhớ cho phép lưu trữ 80 kí tự -Cách hoạt động: + Thiết lập cấu hình để tăng địa cách tự động (như cho dịch kí tự) Các kí tự gửi qua đường D0 đến D7 hiển thị từ trái sang phải + Nếu số kí tự dòng lớn 16, tất kí tự nhớ lại có 16 kí tự nhìn thấy hình Để nhìn thấy kí tự lại phải dùng lệnh dịch *CGROM: Chứa đồ, địa kí tự thể hình định sẵn *CGRAM: Cho phép tạo hiển thị kí hiệu, kí tự sẵn CGROM Giao tiếp PIC LCD: Khối hình hiển thị LCD kết nối với vi điều khiển - Trong mạch, vi điều khiển giao tiếp với LCD theo chế độ bits - Sử dụng chân D4, D5, D6, D7 LCD truyền liệu Dữ liệu truyền tới LCD theo quy ước bit cao truyền trước, bit thấp truyền sau Kết nối LCD vi điều khiển sau: LCD Vi điêu khiên D7 RB7 D6 RB6 D5 RB5 D4 RB4 E RB1 RS RB0 Sơ đồ mạch thể hình Điện ngõ vào đưa vào chân AN0 dạng tương tự, LCD nới với port B vi điều khiển ngõ giao tiếp dây mặc định Một biến trở nối vào LCD nhằm điều chỉnh độ phân giải Các hàm thông dụng: lcd_init() : hàm phải có để báo sử dụng LCD lcd_putc(char c) : hàm để xuất ký tự LCD lcd_gotoxy( BYTE x, BYTE y) : hàm cho phép trỏ nhảy tới vị trí (x,y) 1.3.3 LM35 + Chân : Chân nguồn đầu vào Vcc + Chân : Chân đầu Vout + Chân : Chân nối GND Cảm biến LM35 cảm biến nhiệt mạch tích hợp xác cao mà điện áp đầu tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius Chúng không yêu cầu cân chỉnh vốn chúng cân chỉnh Đặc điểm cảm biến LM35: + Điện áp đầu vào từ 4V đến 30V + Độ phân giải điện áp đầu 10mV/ độ C + Độ xác cao 25 độ C 0.5 độ C + Trở kháng đầu thấp 0.1 cho 1mA tải Dải nhiệt độ đo LM35 từ -55 độ C - 150 độ C với mức điện áp khác Xét số mức điện áp sau : - Nhiệt độ -55 độ C điện áp đầu -550mV 1.3.4 Khối nguồn Gồm : -7805 -tụ hóa 100uF 10uF -led đỏ -trở 220 Ôm Tác dụng nguồn lọc điều chỉnh điện áp chuẩn cung cấp cho pic lcd khối reset hoạt động 10 1.3.5 Khối reset Gồm : -Nút bấm -Trở 10k Công dụng khởi động lại chương trình cho pic 11 1.3.6 Khối nạp khối dao động Gồm: -Thạch anh 20Mhz -Tụ gốm 22pF Tác dụng lọc chống nhiễu cho pic Khối dao động 12 Khối nạp code cho pic 1.4 Nguyên lý hoạt động mạch Khối nguồn cấp điện áp chuẩn 5V cho LM35 LCD PIC Reset hoạt động Cảm biến Lm35 đo nhiệt độ môi trường sau gửi liệu tới pic16F877A thông qua đường truyền ( chân Lm35 tới chân RA0 pic 16F877A) Pic xử lý liệu hiển thị nhiệt độ lên LCD thông qua code nạp 13 Chương Vẽ mạch mô proteus ,chạy mô 2.1 Mô proteus 14 2.2 Mạch in 15 Chương Viết code nạp code chạy mạch thực 3.1: Lưu đồ thuật toán Code Lưu đồ thuật toán Bắt đầu Hiện kí tự : “SV:N.T.SON Lop:TDHAK58” Xóa hình LCD Kết thúc Nhiet la: Nhận dc giá trị ADC dieap = 5000.0f/1024*gtriAdc nhietdo = dienap/10 Đọc giá trị ADC Kết Thúc 16 Code: sbit LCD_RS at RB0_bit; sbit LCD_EN at RB1_bit; sbit LCD_D7 at RB7_bit; sbit LCD_D6 at RB6_bit; sbit LCD_D5 at RB5_bit; sbit LCD_D4 at RB4_bit; sbit LCD_RS_Direction at TRISB0_bit; sbit LCD_EN_Direction at TRISB1_bit; sbit LCD_D7_Direction at TRISB7_bit; sbit LCD_D6_Direction at TRISB6_bit; sbit LCD_D5_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB4_bit; void main() { unsigned int giatriAdc; unsigned int dienap ; unsigned char Nhietdo; char A[4]; LCD_Init(); Lcd_Cmd(_LCD_CURSOR_OFF); Lcd_out(1,1,"SV:N.T.SON" ); Lcd_out(2,1,"Lop:TDHAK58"); Delay_ms(3000); Lcd_Cmd(_LCD_CLEAR); while(1) { 17 giatriAdc = ADC_Read(0); dienap= 5000.0f/1023*giatriAdc; Nhietdo = dienap / 10; ByteToStr(Nhietdo,A); Delay_ms(1000); Lcd_out(1,4,"Do an VDK"); Lcd_out(2,1,"Nhiet la: "); Lcd_out(2,13,A); Delay_ms(1000); } } 18 3.2 Mạch thực 19 20 Tài liệu tham khảo • http: //www.picvietnam.com 21 • http: //www.diendandientu.com • http: //www.dientuvietnam.net • http://en.wikipedia.com 22 23 [...]... -Nút bấm -Trở 10k Công dụng khởi động lại chương trình cho pic 11 1.3.6 Khối nạp và khối dao động Gồm: -Thạch anh 20Mhz -Tụ gốm 22pF Tác dụng lọc chống nhiễu cho pic Khối dao động 12 Khối nạp code cho pic 1.4 Nguyên lý hoạt động của mạch Khối nguồn sẽ cấp điện áp chuẩn 5V cho LM35 LCD PIC và Reset hoạt động Cảm biến Lm35 đo nhiệt độ môi trường sau đó gửi dữ liệu tới pic1 6F877A thông qua 1 đường truyền... của Lm35 tới chân 2 RA0 của pic 16F877A) Pic sẽ xử lý dữ liệu và hiển thị nhiệt độ lên LCD thông qua code mình đã nạp 13 Chương 2 Vẽ mạch mô phỏng trên proteus ,chạy mô phỏng 2.1 Mô phỏng trên proteus 14 2.2 Mạch in 15 Chương 3 Viết code và nạp code chạy mạch thực 3.1: Lưu đồ thuật toán và Code Lưu đồ thuật toán Bắt đầu Hiện kí tự : “SV:N.T.SON Lop:TDHAK58” Xóa màn hình LCD Kết thúc Nhiet do la: Nhận... Đọc giá trị ADC Kết Thúc 16 Code: sbit LCD_ RS at RB0_bit; sbit LCD_ EN at RB1_bit; sbit LCD_ D7 at RB7_bit; sbit LCD_ D6 at RB6_bit; sbit LCD_ D5 at RB5_bit; sbit LCD_ D4 at RB4_bit; sbit LCD_ RS_Direction at TRISB0_bit; sbit LCD_ EN_Direction at TRISB1_bit; sbit LCD_ D7_Direction at TRISB7_bit; sbit LCD_ D6_Direction at TRISB6_bit; sbit LCD_ D5_Direction at TRISB5_bit; sbit LCD_ D4_Direction at TRISB4_bit; void... dienap ; unsigned char Nhietdo; char A[4]; LCD_ Init(); Lcd_ Cmd( _LCD_ CURSOR_OFF); Lcd_ out(1,1,"SV:N.T.SON" ); Lcd_ out(2,1,"Lop:TDHAK58"); Delay_ms(3000); Lcd_ Cmd( _LCD_ CLEAR); while(1) { 17 giatriAdc = ADC_Read(0); dienap= 5000.0f/1023*giatriAdc; Nhietdo = dienap / 10; ByteToStr(Nhietdo,A); Delay_ms(1000); Lcd_ out(1,4,"Do an VDK"); Lcd_ out(2,1,"Nhiet do la: "); Lcd_ out(2,13,A); Delay_ms(1000); } } 18 3.2... dienap / 10; ByteToStr(Nhietdo,A); Delay_ms(1000); Lcd_ out(1,4,"Do an VDK"); Lcd_ out(2,1,"Nhiet do la: "); Lcd_ out(2,13,A); Delay_ms(1000); } } 18 3.2 Mạch thực 19 20 Tài liệu tham khảo • http: //www.picvietnam.com 21 • http: //www.diendandientu.com • http: //www.dientuvietnam.net • http://en.wikipedia.com 22 23

Ngày đăng: 06/09/2016, 15:49

Mục lục

  • Chương 2: Vẽ mô phỏng và chạy mô phỏng trên proteus

  • Chương 3 : Viết code và nạp code chạy mạch thực

  • Chương 1 Cơ sở lý thuyết

    • 1.1 Giới thiệu chung về mạch

    • 1.2 Linh kiện sử dụng trong mạch

    • 1.3.2 LCD

      • Cấu trúc sơ lược LCD16x2:

      • Giao tiếp giữa PIC và LCD:

      • Đặc điểm chính của cảm biến LM35: + Điện áp đầu vào từ 4V đến 30V + Độ phân giải điện áp đầu ra là 10mV/ độ C + Độ chính xác cao ở 25 độ C là 0.5 độ C + Trở kháng đầu ra thấp 0.1  cho 1mA tải 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

      • 1.3.6 Khối nạp và khối dao động

      • 1.4 Nguyên lý hoạt động của mạch

      • Chương 2 Vẽ mạch mô phỏng trên proteus ,chạy mô phỏng

        • 2.1 Mô phỏng trên proteus

        • Chương 3 Viết code và nạp code chạy mạch thực

          • 3.1: Lưu đồ thuật toán và Code

          • Tài liệu tham khảo

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

Tài liệu liên quan