Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Lập trình PIC16F877A điều khiển tốc độ động cơ DC
Nội dung xem thử
Mô tả chi tiết
LUẬN VĂN TỐT NGHIỆP
ĐỀ TÀI
Lập trình PIC16F877A
điều khiển tốc độ
động cơ DC
Đồ án 2 GVHD: Nguyễn Thanh Thảo
MỤC LỤC
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).
SVTH: Trần Tường Băng
Võ Văn Chính
2
Đồ án 2 GVHD: Nguyễn Thanh Thảo
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.
Để 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:
SVTH: Trần Tường Băng
Võ Văn Chính
3
b2
a7
b0
b1
a4
a5
a6
p0
p1
p2
p3
p0
p3
p1
p2
a7
a4
a5
a6
b0
b2
b1
CCP2
CCP1
RA0/AN0 2
RA1/AN1 3
RA2/AN2/VREF-/CVREF 4
RA4/T0CKI/C1OUT 6
RA5/AN4/SS/C2OUT 7
RE0/AN5/RD 8
RE1/AN6/WR 9
RE2/AN7/CS 10
OSC1/CLKIN 13
OSC2/CLKOUT 14
RC1/T1OSI/CCP2 16
RC2/CCP1 17
RC3/SCK/SCL 18
RD0/PSP0 19
RD1/PSP1 20
RB7/PGD 40 RB6/PGC 39 RB5 38 RB4 37 RB3/PGM 36 RB2 35 RB1 34 RB0/INT 33
RD7/PSP7 30 RD6/PSP6 29 RD5/PSP5 28 RD4/PSP4 27 RD3/PSP3 22 RD2/PSP2 21
RC7/RX/DT 26 RC6/TX/CK 25 RC5/SDO 24 RC4/SDI/SDA 23
RA3/AN3/VREF+ 5
RC0/T1OSO/T1CKI 15
MCLR/Vpp/THV 1
U1
PIC16F877A
C1
30pF
C2
30pF
X1
CRYSTAL
R9
10k
R1
5k
R2
5k
R3
5k
R4
5k
VCC
VCC
C3
10uF
R5
2k2
CCP1
CCP2
CLK
1 2 3
4 5 6
7 8 9
0 (10)
FW(16) RV(15) STOP (14)
CLEAR (11)
set (12)
13
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E
6
RW
5
RS
4
VSS
1
VDD
2
VEE
3
LCD1
16_X_2_LCD
RV1
1K
VI 1
VO 3
GND
2
U2
7805
3
2
1
J1
JACK C4
100uF
C5
100nF
C6
100uF
C7
100nF
D8
LED
R26
1k
+12V +5V
1
2
J2
TERMINAL2
IN1 5
IN2 7
ENA 6
OUT1 2
OUT2 3
ENB 11 OUT3 13
OUT4 14
IN3 10
IN4 12
SENSA 1
SENSB 15 GND
8
VS
4
VCC
9 U1
L298
+12V
R1
0.5
R2
0.5
M1
M2
CLK 1
2
3
4
5
J3
SIL-100-05
+88.8
D1
1N4007
D2
1N4007 D3
1N4007
D4
1N4007
+12V
M1 M2
CLK
RESET
Hình 1: Sơ đồ nguyên lí mạch
Đồ án 2 GVHD: Nguyễn Thanh Thảo
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:
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ị.
SVTH: Trần Tường Băng
Võ Văn Chính
4
Đồ án 2 GVHD: Nguyễn Thanh Thảo
- 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.
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.
SVTH: Trần Tường Băng
Võ Văn Chính
5
Đồ án 2 GVHD: Nguyễn Thanh Thảo
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).
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:
<0.6mA với 5V, 4MHz
20uA với nguồn 3V, 32 kHz.
Có 3 timer: timer0, 8 bit chức năng định thời và bộ đếm với hệ số tỷ lệ
trước.Timer1, 16 bit chức năng bộ định thời, bộ đếm với hệ số tỷ lệ trước, kích
hoạt chế độ Sleep.Timer2, 8 bit chức năng định thời và bộ đếm với hệ số tỷ lệ
trước và sau.
Có 2 kênh Capture/ so sánh điện áp (Compare)/điều chế độ rộng xung PWM 10
bit / (CCP).
Có 8 kênh chuyển đổi ADC 10 bit.
Cổng truyền thong nối tiếp SSP với SPI phương thức chủ và I2C (chủ/phụ).Bộ
truyền nhận thông tin đồng bộ, dị bộ (USART/SCL) có khả năng phát hiện 9 bit
địa chỉ.
Cổng phụ song song (PSP) với 8 bít mở rộng, với RD, WR và CS điều khiển.
Do thời gian làm đồ án có hạn nên chúng em chỉ tập trung tìm hiểu các tính
năng của PIC 16F877A có liên quan đến đề tài, dưới đây là 1 vài tính năng của
PIC 16F877A được ứng dụng trong đồ án như:
- Tổ chức bộ nhớ của PIC 16F877A.
- Chức năng của các Port I/O.
SVTH: Trần Tường Băng
Võ Văn Chính
6