Đồ án - Lập Trình PIC16F877A điều Khiển Tốc độ động Cơ DC

logo xemtailieu Xemtailieu Tải về Đồ án - Lập trình PIC16F877A điều khiển tốc độ động cơ DC
  • doc
  • 64 trang
LUẬN VĂN TỐT NGHIỆP ĐỀ TÀI Lập trình PIC16F877A điều khiển tốc độ động cơ DC GVHD: Nguyễn Thanh Thảo Đồ án 2 MỤC LỤC Chương I: KHÁI QUÁT ĐỀ TÀI............................................................................................3 I/ Tóm tắt đề tài:.......................................................................................................................3 Nếu là chế độ 2 thì ta phải nhập them thời gian, sau đó nhấn phím ENTER.............................5 CHƯƠNG II:..............................................................................................................................6 GIỚI THIỆU VỀ CÁC LINH KIỆN PHẦN TỬ SỬ DỤNG TRONG MẠCH...................6 I.Vi điều khiển PIC16F877A....................................................................................................6 1. Khái quát về vi điều khiển PIC16F877A............................................................................6 Sơ đồ chân.................................................................................................................................9 Sơ đồ nguyên lý...........................................................................................................................9 2. Tổ chức bộ nhớ:...................................................................................................................10 2.1. Bộ nhớ chương trình:......................................................................................................11 2.2. Bộ nhớ dữ liệu:.................................................................................................................11 2.3. Stack..................................................................................................................................14 3. Khái quát về chức năng của các port trong vi điều khiển PIC16F877A.......................14 4. Các vấn đề về Timer...........................................................................................................16 4.1. Timer0...............................................................................................................................16 4.2.TIMER1.............................................................................................................................20 5. NGẮT (INTERRUPT):......................................................................................................23 6. Phương pháp điều chế xung PWM:..................................................................................28 6.2. Nguyên lí của PWM:........................................................................................................29 Ud = Umax . (t0/T) hay Ud = Umax.D...........................................................................................30 6.3. Cách thiết lập chế độ PWM cho PIC16F877A..............................................................30 II. Mạch cầu H ( H-Bridge Circuit )......................................................................................32 Hình 18: Mạch cầu H...............................................................................................................32 Khảo sát hoạt động của mạch cầu H.........................................................................................32 Hình19: Nguyên lý hoạt động của mạch cầu H........................................................................33 III/LCD....................................................................................................................................34 VD: Kiểu hiển thị (1 hàng / 2 hàng), chiều dài dữ liệu (8 bit / 4 bit), …..................................36 IV. Đối tượng điều khiển: Động cơ DC.................................................................................41 Mô hình thứ 1............................................................................................................................42 Mô hình thứ 2............................................................................................................................43 CHƯƠNG 3:.............................................................................................................................45 I/ THIẾT KẾ MẠCH PHẦN CỨNG:...................................................................................45 II/ Giới thiệu về chương trình viết code và biên dịch:.........................................................49 Return(biến);}...........................................................................................................................50 III/ Lưu đồ giải thuật:.............................................................................................................51 CODE CHƯƠNG TRÌNH......................................................................................................55 SVTH: Trần Tường Băng Võ Văn Chính 2 GVHD: Nguyễn Thanh Thảo Đồ án 2 Chương I: KHÁI QUÁT ĐỀ TÀI I/ Tóm tắt đề tài: 1/ Giới thiệu sơ lược các modul của mạch: -Tên đề tài đồ án 2:“Lập trình PIC16F877A điều khiển tốc độ động cơ DC” -Yêu cầu đặt ra: Lập trình C cho Pic 16F877A điều khiển tốc độ cho động cơ DC có gắn encoder hồi tiếp tốc độ.Tốc độ được cài đặt từ bàn phím và tốc độ tức thời hồi tiếp từ encoder được hiển thị trên màn hình LCD 16x2. -Tóm tắt hướng thực hiện đề tài:  Sử dụng Pic 16F877A là vi điều khiển trung tâm. Dùng chương trình CCS lập trình C và biên dịch chương trình.  Xây dựng khối bàn phím gồm 16 phím để nhập tốc độ và điều khiển động cơ DC:  10 phím từ 0 đến 9 để cài đặt tốc độ (vòng /phúc).  1 phím SET (hay ENTER) để lưu tốc độ cài đặt.  1 phím CLEAR để xóa tốc độ cài đặt.  1 phím SAVE để lưu tốc độ vào epprom.  3 phím điều điều khiển: quay thuận (FORWARD), quay nghich (REVERSE), dừng (STOP).  Hiền thị tốc độ dùng màn hình LCD 16x2, lập trình ở chế độ 4 bit (sử dụng 4 chân để nhận dữ liệu từ Pic).  Sử dụng mạch cầu H là IC L298N để đảo chiều động cơ.  Sử dụng 2 kênh PWM của vi điều khiển Pic thay đổi giá trị áp trung bình đặt vào động cơ để điều khiển tốc độ.  Đối tượng điểu khiển là động cơ DC 12V có gắn Encoder.  Ngoài ra trên mạch còn có 1 phím nguồn (POWER) cấp điện từ adapter cho mạch và 1 phím RESET cho pic 16F877A. SVTH: Trần Tường Băng Võ Văn Chính 3 GVHD: Nguyễn Thanh Thảo Đồ án 2  Để cấp nguồn cho mạch ta dùng adapter AC/DC (220V/12V) và khối nguồn sử dụng IC 7805 để ổn áp điện áp 5V cung cấp cho Pic. 2/ Sơ đồ nguyên lí mạch: VCC LCD1 16_X_2_LCD 1 5k 6 8 9 RV(15) STOP (14) 5k CLEAR (11) D0 D1 D2 D3 D4 D5 D6 D7 RS RW E VSS VDD VEE 5k 7 8 9 10 a4 11 a5 12 a6 13 a7 14 b0 4 b1 5 b2 6 RV1 1 2 3 0 (10) R4 5k 5 FW(16) R3 3 7 R2 2 4 R1 13 p0 p1 p2 p3 1K set (12) C1 +12V +12V 30pF VCC 2 3 4 5 6 7 8 9 10 R5 R9 10k RESET 1 2k2 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 C3 10uF 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 CLK 9 J3 CCP1 CCP2 5 7 10 12 6 11 CCP2 CCP1 5 4 3 2 1 CLK SIL-100-05 1 15 VS OUT1 OUT2 OUT3 SENSA SENSB GND R1 R2 0.5 19 b2 20 b0 21 b1 22 27 a4 28 a5 29 a6 30 a7 U1 4 IN1 VCC IN2 IN3 IN4 ENA ENB OUT4 2 M1 3 CLK M1 13 M2 M2 14 +88.8 0.5 8 L298 U2 +12V D21N4007 p0 p1 p2 p3 D31N4007 13 14 CRYSTAL D11N4007 X1 D41N4007 C2 U1 +5V 7805 PIC16F877A J1 3 2 1 1 VI VO R26 3 1k GND C4 C5 100uF JACK 100nF 2 30pF C6 C7 100uF 100nF D8 LED J2 2 1 TERMINAL2 Hình 1: Sơ đồ nguyên lí mạch 3/Cách vận hành mạch:  Bước 1: Bật nguồn (nhấn nút POWER), chờ cho Pic và màn hình LCD khởi động, màn hình hiển thị: “CHỌN CHẾ ĐỘ:” Chương trính có 2 chế độ làm việc: chế độ1 là bám tốc độ đặt, có lưu tốc độ vào epprom; chế độ 2 là bám tốc độ có định thời gian để thay đổi chiều quay.  Bước 2: SVTH: Trần Tường Băng Võ Văn Chính 4 GVHD: Nguyễn Thanh Thảo Đồ án 2 Nhập tốc độ từ bàn phím các phím từ 0 đến 9.Nếu nhập sai ta nhấn phím CLEAR con trỏ trên LCD sẽ xóa hết các số đã nhập, ta phải nhập lại từ đầu.Sau khi nhập xong, nhấn phím ENTER để lưu tốc độ đặt, tốc độ đặt được tính theo đơn vị vòng/phút. Nếu là chế độ 2 thì ta phải nhập them thời gian, sau đó nhấn phím ENTER  Bước 3: Để điều khiển động cơ ta nhấn phím: quay thuận (FORWARD), quay nghịch (REVERSE), dừng (STOP).  Bước 4: Để nhập lại tốc độ ta nhấn phím CLEAR rồi tiến hành đăt tốc độ như bước 2. -Tốc độ tức thời của động cơ sẽ đươc cập nhật mỗi 0,5s và sẽ được so sánh với tốc độ đặt để đưa ra tính hiệu điều khiển, đồng thời cứ mỗi 0,5s tốc độ sẽ hiển thị trên màn hình LCD. 4/ Khuyết điểm của mạch: -Do không áp dụng các phương pháp điều khiển (ví dụ như: PID, điều khiển mờ,…) nên tốc độ động cơ chưa được ổn định. -Mạch cầu H sử dụng IC L298 chỉ điều khiển được động cơ DC có công suất nhỏ. -Đối với khối hiển thị, do tính chất của màn hình LCD nên bị hạn chế quan sát giá trị hiển thị ở khoảng cách xa. 5/ Hướng phát triển đề tài: - Cải thiện ổn định tốc độ động cơ bằng phương pháp PID hay điều khiển mờ. - Tính toán thiết kế mạch công suất để có thể điều khiển được động cơ có công suất lớn hơn. - Sử dụng led 7 đoạn để tăng khả năng quan sát của khối hiển thị. - Kết nối với máy tính, sử dung visual basic lập trình để điều khiển tốc độ động cơ DC. SVTH: Trần Tường Băng Võ Văn Chính 5 GVHD: Nguyễn Thanh Thảo Đồ án 2 CHƯƠNG II: GIỚI THIỆU VỀ CÁC LINH KIỆN PHẦN TỬ SỬ DỤNG TRONG MẠCH I.Vi điều khiển PIC16F877A 1. Khái quát về vi điều khiển PIC16F877A a/ Khái quát: - PIC là tên viết tắt của “Programmable Intelligent computer” do hãng General Instrument đặt tên cho con vi điều khiển đầu tiên của họ.Hãng Micrchip tiếp tục phát triển sản phầm này và cho đến hàng đã tạo ra gần 100 loại sản phẩm khác nhau. - PIC16F887A là dòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứng dụng thực tế. Đây là dòng PIC khá dễ cho người mới làm quen với PIC có thể học tập và tạo nền tản về họ vi điều khiển PIC của mình. - PIC 16F877A thuộc họ vi điều khiển 16Fxxx có các đặt tính sau:  Ngôn ngữ lập trình đơn giản với 35 lệnh có độ dài 14 bit.  Tất cả các câu lệnh thực hiện trong 1 chu kì lệnh ngoại trừ 1 số câu lệnh rẽ nhánh thực hiện trong 2 chu kì lệnh. Chu kì lệnh bằng 4 lần chu kì dao động của thạch anh.  Bộ nhớ chương trình Flash 8Kx14 words, với khả năng ghi xoá khoảng 100 ngàn lần.  Bộ nhớ Ram 368x8bytes.  Bộ nhớ EFPROM 256x8 bytes.  Khả năng ngắt (lên tới 14 nguồn cả ngắt trong và ngắt ngoài). SVTH: Trần Tường Băng Võ Văn Chính 6 GVHD: Nguyễn Thanh Thảo Đồ án 2  Ngăn nhớ Stack được chia làm 8 mức.  Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp.  Dải điện thế hoạt động rộng: 2.0V đến 5.5V.  Nguồn sử dụng 25mA.  Công suất tiêu thụ thấp:

Từ khóa » đồ An Vi điều Khiển Pic 16f877a