Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
2,1 MB
Nội dung
LUẬN VĂN TỐT NGHIỆP CHƢƠNG : TỔNG QUAN 1.1 Giới thiệu tổng quát : Ngày nhu cầu phát triển đất nước , để trở thành nước cơng nghiêp hố đại hố (CNH_HĐH) địi hỏi người phải biết học hỏi vận dụng cách sáng tạo trình độ khoa học kỹ thuật tiên tiến Nhằm đưa hiểu biết áp dụng cách khoa học vào đời sống Trong ngành Tự Động Điều Khiển nói tiên phong cơng lên CNH_HĐH Có nhiều sở khoa học chứng minh ngày hầu hết thiết bị máy móc cơng nghiệp áp dụng thành công kỹ thuật tiên tiến , số nhà máy trang bị tất dây truyền sản xuất tự động kết đem lại vơ to lớn Nó tiết kiệm phần lớn sức lao động , thời gian sản phẩm làm có độ xác cao Trong luận văn xin đề cập đến ví dụ nhỏ thiết bị điều khiển tự động Máy Đo Diện Tích Bề Mặt Phẳng Đây thiết bị điều khiển vi xử lý (PIC18F4431) 1.2 Diễn giải đề tài : Từ thực tế sống công nghiệp người, họ muốn máy móc đảm nhiệm hồn thành tốt cơng việc,có thể xác định vị trí chiều dài cách xác.Bộ mã hóa vòng quay(encoder) phận cần thiết dây chuyền cơng nghiệp Có nhiều phương pháp để lập trình điều khiển cho encoder vi điều khiển dùng 8051,PIC,AVR PLC.với PIC 18F4431 thường dùng để điều khiển động có nhiều ứng dụng khác điều khiển SVTH : NGUYỄN VĂN THUẬN 12 LUẬN VĂN TỐT NGHIỆP 1.3 Sơ đồ khối hệ thống : Ý nghĩa, nhiệm vụ khối : − NGUỒN 12V : cấp nguồn cho ENCODER hoạt động − NGUỒN 5V : cấp nguồn cho VI ĐIỀU KHIỂN − ENCODER : hoạt động phát tín hiệu xung đưa VI ĐIỀU KHIỂN qua khối DRIVE − Khối DRIVE : chuyển đổi tín hiệu từ ENCODER VI ĐIỀU KHỂN − VI ĐIỀU KHIỂN : nhận tín hiệu từ ENCODER,xử lý tín hiệu,truyền tín hiệu xừ lý lên máy tính − MÁY TÍNH : nhận tín hiệu truyền từ VI ĐIỀU KHIỂN xuất hình SVTH : NGUYỄN VĂN THUẬN 13 LUẬN VĂN TỐT NGHIỆP CHƢƠNG : CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu pic 18f4431 : PIC chữ viết tắt "Programmable Intelligent Computer" (Máy tính khả trình thơng minh) với nhớ chương trình từ 512 Word đến 32K Word Sơ đồ khối PIC 18F4431 SVTH : NGUYỄN VĂN THUẬN 14 LUẬN VĂN TỐT NGHIỆP PIC 18F4431 có 40 chân gồm ports I/O Trong có số chân đa cơng dụng, mội chân hoạt động đường xuất nhập I/O chân chức đặc biệt dùng để giao tiếp với thiết bị ngoại vi Sơ đồ chân PIC 18F4431 2.1.1 Tính : 2.1.1.1 Modun điều khiển PWM 14 bit : kênh ngõ bù Hổ trợ thao tác cạnh mức Ngõ vào bảo vệ lỗi phần cứng Cập nhận đồng thời chu kỳ nhiệm vụ chu kỳ Linh hoạt với ngõ kích khởi kiện SVTH : NGUYỄN VĂN THUẬN 15 LUẬN VĂN TỐT NGHIỆP 2.1.1.2 Modun motion feedback : Ba kênh chốt/bắt giữ ngõ vào riêng biệt Chế độ vận hành linh hoạt cho ứng dụng đo chu kỳ độ rộng xung Modun giao diện cảm biến Hall Tính kích khởi kiện đến modun khác Giao diện Quadrature encoder Hai ngõ vào phase ngõ vào index từ encoder Cho phép theo dõi mức cao/thấp, trạng thái chiều thay đổi hướng ngắt Phép đo vận tốc 2.1.1.3 Bộ chuyển đổi ADC 10 bit 200ksps, tốc độ cao : kênh ngõ vào Lấy mẫu đồng thời kênh ngõ vào Lấy mẫu 1,2 kênh Khả chuyển đổi tự động word FIFO cho phép lựa chọn tần số ngắt Sự lựa chọn kích khởi từ bên ngồi Thời gian nhận lập trình 2.1.1.4 Cấu trúc dao động linh hoạt : kiểu dao động tinh thể đến 40Mhz modun xung clock đến 40Mhz Khối dao động nội + Cho phép người sử dụng lựa chọn tần số từ 31Khz đến 8Mhz + OSCTUNE bù trôi tần số Nguồn dao động phụ sử dụng cho timer tần số 31Khz Dò tự phục hồi xung clock + Tắt nguồn thiết bị xung clock bị lỗi SVTH : NGUYỄN VĂN THUẬN 16 LUẬN VĂN TỐT NGHIỆP Chế độ quản lý nguồn +Run: CPU on, ngoại vi on +Idle: CPU off, ngoại vi on +Sleep: CPU off, ngoại vi off +Bộ dao động hai tốc độ khởi động 2.1.1.5 Những điểm mạnh ngoại vi : Dòng ngõ cao 25mA Ba ngõ vào ngắt Hai modun bắt giữ, so sánh, điều biến độ rộng xung + Chế độ capture 16 bit, độ phân giải tối đa 6.25 ns + Chế độ compare 16 bit, độ phân giải tối đa 100 ns + Ngõ PWM, PWM độ phân giải từ đến 10 bit Bổ sung modun USART + Hỗ trợ RS_485, RS_232 LIN 1.2 +Tự động thức dậy bit start + Chế độ dò tự động RS_232 hoạt động dùng xung clock nội Các tính đặc biệt vi điều khiển Tăng cường nhớ chương trình Flash với 100.000 chu kỳ đọc ghi Bộ nhớ liệu EEPROM với 1.000.000 chu kỳ đọc ghi Bộ nhớ Flash liệu EEPROM trì 100 năm Tự lập trình với phần mềm điều khiển Chế độ ngắt mức ưu tiên Mở rộng timer Watchdog: chu kỳ lập trình từ 41ms đến 131s Lập trình sử dụng nguồn đơn mạch SVTH : NGUYỄN VĂN THUẬN 17 LUẬN VĂN TỐT NGHIỆP 2.1.2 Cấu hình dao động : 2.1.2.1 Các loại dao động : PIC 18F4431 hoạt động 10 chế độ dao động khác Người sử dụng lập trình cấu hình bit F0SC3:F0SC0 ghi cấu hình 1H để lựa chọn 10 chế độ LX Dao động tinh thể nguồn thấp XT Tinh thể/bộ cộng hưởng HS Tinh thể/bộ cộng hưởng tốc độ cao HSPLL Tinh thể/bộ cộng hưởng tốc độ cao với cho phep PLL RC Dao động tụ điện/điện trở bên với Fosc/4 ngõ chân RA6 RCIO Dao động tụ điện/điện trở bên với I/O chân RA6 INTIO1 Bộ dao động nội với Fosc/4 ngõ chân RA6 I/O chân RA7 INTIO2 Bộ dao động nội với Fosc/4 ngõ chân RA6 RA7 EC Xung clock bên với ngõ Fosc/4 ECIO Xung clock bên với I/O RA6 2.1.2.2 Bộ dao động tinh thể/cộng hƣởng gốm : Trong chế độ dao động XT,LP,HS HSPLL tinh thể cộng hưởng gốm kết nối vào chân OSC1 OSC2 để thiết lập dao động Cấu hình XT,LP,HS HSPLL SVTH : NGUYỄN VĂN THUẬN 18 LUẬN VĂN TỐT NGHIỆP Gía trị tụ điện cho cộng hưởng gốm Giá trị tụ điện cho dao động tinh thể 2.1.2.3 Khối dao động nội : PIC 18F4431 có sẳn khối dao động nội, tạo hai tín hiệu clock khác sử dụng nguồn xung clock hệ thống Khối cho phép loại bỏ dao động bên chân OSC1 và/hoặc OSC2 Ngõ (INTOSC) nguồn xung clock 8MHz sử dụng trực tiếp để cung cấp cho xung clock hệ thống Nếu sử dụng chia cung cấp dãy tần số từ 125KHz đến 4MHz để lựa chọn Ngõ INTOSC cho phép tần số xung clock hệ thống từ 125KHz đến 8MHz lựa chọn Ngồi cịn có nguồn dao động nội RC (INTRC) cung cấp tần số 31KHz Dao động INTRC cho phép việc lựa chọn khối dao động nội nguồn xung clock hệ thống theo sau cho phép: a Power_up timer b Fail_safe Clock Monitor c Watchdog Timer d Two_speed Start_up SVTH : NGUYỄN VĂN THUẬN 19 LUẬN VĂN TỐT NGHIỆP Các nguồn dao động PIC 18F4431 2.1.3 I/O ports : PIC 18F4431 có 40 chân gồm ports I/O Trong có số chân đa cơng dụng, mội chân hoạt động đường xuất nhập I/O chân chức đặc biệt dùng để giao tiếp với thiết bị ngoại vi Mỗi port có ghi điều khiển − TRIS register (thanh ghi hướng liệu) − PORT register (đọc mức logictrên chân thiết bị) − LAT register (chốt liệu) 2.1.3.1 PORTA, TRISA ghi LATA : Port A gồm chân từ RA0-RA7, việc ghi giá trị vào ghi TRISA quy định chân Port A Input hay Output Nếu Output, input Việc đọc ghi Port A đọc trạng thái chân PortA Việc ghi giá trị vào ghi PortA thay đổi trạng thái chân PortA SVTH : NGUYỄN VĂN THUẬN 20 LUẬN VĂN TỐT NGHIỆP Cấu trúc tổng quát port I/O Tính chân portA SVTH : NGUYỄN VĂN THUẬN 21 LUẬN VĂN TỐT NGHIỆP 3.5.4 Mạch giao tiếp máy tính : 4.7u TX 11 10 C1+ C1C2+ C2- C4 4.7u P1 VCC C3 R1IN R2IN T1IN T2IN C1+ C1C2+ C2V+ V- J2 R1OUT R2OUT T1OUT T2OUT 12 RX 14 RXPC RX TX C1+ C2+ C6 4.7u C5 4.7u GND TXPC 13 15 TXPC RXPC U5 16 5V CON2 C7 4.7u 5V J1 C1- C25V MAX232 com Hình 12 : Mạch giao tiếp máy tính SVTH : NGUYỄN VĂN THUẬN 72 LUẬN VĂN TỐT NGHIỆP 3.6 Lƣu đồ giải thuật 3.6.1 Giải thuật tính cạnh đầu tiên: BEGIN LED SÁNG LED TẮT C1=0 BUTTON BUTTON ĐỌC X2 X2=2 ĐỌC X1 S Đ TÍNH C1 SVTH : NGUYỄN VĂN THUẬN 73 LUẬN VĂN TỐT NGHIỆP 3.6.2 Giải thuật tính diện tích: BUTTON2 S=0 ĐỌC X2 X2=2 Y N ĐỌC X1 C1=C1+C2 TÍNH C2 TÍNH S1 C1=0 HIỂN THỊ MÁY TÍNH S=S+S1 X2=362 N Y LED SÁNG LED TẮT END SVTH : NGUYỄN VĂN THUẬN 74 LUẬN VĂN TỐT NGHIỆP Chú thich: X1 : xung encoder X2 : xung encoder C1 : cạnh a hình tam giác C2 : canh b hình tam giác Led 1:start Led 2:stop Giải thích lƣu đồ: Khi bắt đầu mở công tắc1 điện cấp cho encoder 1,ta kéo kim đo mép vật lúc xung encoder trả vi điều khiển cho biết vị trí encoder vitme.sau ta mở công tắc điện cấp vào encoder 2.sau ta bắt đầu quay encoder đồng thời giữ cho kim bám sát mép vật.khi quay thi vi điều khiển xử lý số xung trả encoder.khi encoder quay xung lấy số xung encoder đồng thời tính cạnh C1 Khi encoder quay tiếp xung tính cạnh C2,có cạnh C1 C2 tính diện tích xung encoder quay được.khi encoder quay vịng 362 xung tổng diện tích tính Encoder quay 362 xung tính diện tích thời điểm lấy cạnh xung.nên quay hết vòng 360 xung cộng thêm thời điểm ban đầu xung Xuất diện tích SVTH : NGUYỄN VĂN THUẬN 75 LUẬN VĂN TỐT NGHIỆP 3.7 Kết đạt đƣợc : o Hiểu nguyên tắc hoạt động encoder o Hiểu chế đếm xung encoder,đảo chiều thuận nghịch xác định vị trí o Hiểu pic 18f4431,ngắt xử lý ngắt o Thiết kế thi cơng mạch,phần cứng máy đo diện tích Ƣu điểm: o Đơn giản,dễ chế tạo,giá thành rẻ o Giao tiếp máy tính sở liệu thuận lợi để phát triển đề tài o Sai số phạm vi cho phép Nhƣợc điểm: o Đo tay đòi hỏi người thực hành phải đo xác o Cồng kềnh,khó di chuyển o Sai số lớn,chấp nhận sai số phần cứng Hƣớng phát triển đề tài: o Có thể phát triển thành máy đo diện tích đa o Dùng xử lý ảnh để đo diện tích SVTH : NGUYỄN VĂN THUẬN 76 LUẬN VĂN TỐT NGHIỆP DANH MỤC CÁC TÀI LIỆU THAM KHẢO Ngôn ngữ lập trình C Tác giả : ThS Tiêu Kim Cương Vi điều khiển với lập trình C Tác giả : Ngô Diên Tập ; nxb : khoa học kỹ thuật Giáo trình VB.net (enternet) Lập trinh ccs cho pic Kỹ thuật – công nghệ Các diễn đàn điện tử: www.picvietnam.com www.dientuvietnam.net http://tailieu.vn http://tailieuvietnam.net Và số diễn đàn khác SVTH : NGUYỄN VĂN THUẬN 77 LUẬN VĂN TỐT NGHIỆP Phụ lục : Lập trình CCS : #include #include #include #include #include #FUSES hs,NOPROTECT,nowdt,NOBROWNOUT,NOLVP,nodebug,noput #use delay(clock=20000000) #use fast_io(e) #use fast_io(c) #use fast_io(d) #use fast_io(a) #use fast_io(a) #define rs re0 #define Rw re1 #define en Re2 #use rs232(baud=9600,parity=n,xmit=pin_C6,rcv=pin_C7) int8 tram1,chuc1,dv1,ngan1,chucngan1,tramngan1; int16 temp1,f1,i,xung1=0; int8 tram,chuc,dv,ngan,chucngan; int8 tram2,chuc2,dv2; int16 temp2,f2; int16 temp,f,xung=0; int16 array[250], bien1=0,bien2=0,x,j=0,y=10,a=0,b=0; int r=0; float tong=0,sole=0; void lenh_dk() { output_low(PIN_e0); output_low(PIN_e1); output_high(PIN_e2); SVTH : NGUYỄN VĂN THUẬN 78 LUẬN VĂN TỐT NGHIỆP output_low(PIN_e2); delay_us(50); } void hienthi() { output_high(PIN_e0); output_low(PIN_e1); output_high(PIN_e2); output_low(PIN_e2); delay_us(50); } void nhap() { f=bien1; delay_us(10); temp=f; dv=(temp%10)|0x30; temp=f/10; chuc=(temp%10)|0x30; temp=f/100; tram=(temp%10)|0x30; temp=f/1000; ngan=(temp%10)|0x30; temp=f/10000; chucngan=(temp%10)|0x30; temp=f/100000; } void nhap1() { f1=bien2; delay_us(10); temp1=f1; dv1=(temp1%10)|0x30; temp1=f1/10; chuc1=(temp1%10)|0x30; temp1=f1/100; tram1=(temp1%10)|0x30; SVTH : NGUYỄN VĂN THUẬN 79 LUẬN VĂN TỐT NGHIỆP temp1=f1/1000; ngan1=(temp1%10)|0x30; temp1=f1/10000; chucngan1=(temp1%10)|0x30; temp1=f1/100000; tramngan1=(temp1%10)|0x30; temp1=f1/1000000; } void nhap2() { f2=xung; delay_us(10); temp2=f2; dv2=(temp2%10)|0x30; temp2=f2/10; chuc2=(temp2%10)|0x30; temp2=f2/100; tram2=(temp2%10)|0x30; temp2=f2/1000; } void tinhtong() { tong =0; for(r=0;r