Bộ Công Thương
Trường Đại Học Công Nghiệp Hà Nội
*********
Bản báo cáo
Đồ án môn học vi điều khiển
Chủ đề 17:thiết kế một bộ điều khiển motor DC. Hệ thống có thể
điều khiển được motor có công suất P <=60W và điện áp U <=
12VDC.
Thao tác điều khiển gồm có:tăng, giảm, đảo chiều bằng phương
pháp điều khiển độ rộng xung.Hệ thống có các phím điều khiển đảo
chiều,tăng,giảm tốc độ.
File đính kèm 009.rar
Thầy giáo hướng dẫn : Nguyễn Anh Dũng
Sinh viên thực hiện: Nguyễn Xuân Lộc
Nguyễn Thành Chung
Trần Văn Tùng 1
Mục Lục
Trang
Lời nói đầu …………………………………………………………3
Sơ lược họ 8051.
I. Sơ lược 8051…………………………………………… 4
II. Sơ lược 89S52……………………………………………7
Động cơ một chiều.
I. Cấu tạo máy điện một chiều………………………………….11
II. Nguyên lý hoạt động động cơ một chiều…………………… 13
IC L298.
Tổng quan về L298……………………………………………14
bổ sung thêm.
Chúng em xin chân thành cảm ơn.
3
_________ SƠ LƯỢC 8051_______
I. Sơ lược 8051
8051 ra đời năm 1981 do hãng Intel sản xuất.
Họ điều khiển này có 128 byte RAM,4kbyte ROM,hai bộ đnh thời
,một cổng nối tiếp và 4 cổng ra\vào song song và là 1 bộ vi xử lý 8
bit.
Sau khi Intel cho các nhà sản xuất khác sản xuất và bán các dạng
biến thể của 8051 thì họ 8051càng ngày càng phổ biến và ngày càng
có nhiều phiên bản khác nhau của 8051 nhưng tất cả đều tương thích
với 8051 ban đầu.
Sau đây là bảng so sánh các họ khác nhau:Số hiệu
sản xuất
Bộ nhớ
chương
trình
Bộ nhớ dữ
liệu
Số bộ
định thời
(bộ đếm)
8031
8051
8571
8951
4
1. Port 0 (P0.0 _ P0.7)
Port 0 gồm 8 chân .
Với chức năng xuất nhập dữ liệu ,ngoài ra Port 0 còn là bus đa hợp dữ
liện và địa chỉ(AD0_AD7).Port 0 cũng nhận các byte mã khi lập trình
Flas và xuất các byte mã khi kiểm tra chương trình .Chú y trong
trường hợp này cần có thêm điện trở trước khi nối vào chân Port 0.
2. Port 1 (P1.0_P1.7)
Cũng như Port 0 ,Port 1 cũng có 8 chân. Chức năng của Port 1 chỉ là
xuất nhập dữ liệu .Port 1 cũng có thể xuất nhập theo bit và theo byte.
3. Port 2
Port 2 là port 8 bit ,cũng có chức năng xuất nhập dữ liệu như 2 port
trên.Khi làm nhiệm vụ là port nhập, các chân của port 2 đang được
kéo xuống mức thấp do tác động của bên ngoài sẽ cấp dòng do các
điện trở kéo lên từ bên trong .Port 2 tạo ra byte cao của bus điạ chỉ
trong thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài và trong
thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 16 bit.
Port 2 cũng nhận các bit địa chỉ cao và tín hiệu điều khiển trông thời
gian lập trình Flash và kiểm tra chương trình.
4. Port 3
Cũng là port xuất nhập dữ liệu 8 bit ,ngoài ra port 3 còn có các chức
năng khác cụ thể như sau:
Bit Tên Chức năng
P3.0 RXD Dữ liệu nhận cho Port nối tiếp
P3.1 TXD Dữ liệu truyền cho Port nối tiếp
P3.2 INT0 Ngắt bên ngoài 0
P3.3 INT1 Ngắt bên ngoài 1
cấu hình để dùng như một bộ dao động trên chip.Nó thường được nối
với bộ dao đông thạch anh có dải tần thường là 12MHz-33MHz.
10. Vcc và GND
Đây là 2 chân dùng để cấp nguồn cho IC, dải điện áp thích hợp là 4-
5V.Với Vcc nối với dương nguồn ,GND nối với âm nguồn.
III. SƠ LƯỢC 89S52
89S52 là một dòng trong họ 8051 ,nó có đầy đủ tính chất cũng như
tính năng của họ 8051 .Sau đây là sơ đồ chân của 89S52:
89S52 có tất cả là 40 chân, trong đó chân 20 và 40 là 2 chân nối nguồn
với điện áp cho phép nằm vào khoảng 3-5,5V.
Từ chân 1 đến chân 8 là chân port 1,từ chân 10 đến chân 17 là chân
của port 3 ,từ chân 32 đến chân 39 là chân của port 0,từ chân 22 đến
chân 28 là các chân của port 2,các chân còn lại là :chân 9 là chân
RST ,chân 18 và chân 19 lần lượt là chân XTAL1 và XTAL2 ,từ chân
29 đến chân 31 lần lượt là các chân PSEN,ALE,EA.
Chức năng của các chân này thì đã trình bày trên phần sơ lược 8051 ở
trên.
6
Hình 1. Sơ đồ chân của 89S52
7
Hình 2. Sơ đồ khối của bộ vi điều khiển AT89S52
AT 89S52 có 8byte Flash ROM trên chip,khi chân /EA (chân 31) được
đặt ở mức logic cao thì bộ vi điều khiển sẽ thực hiện chương trình
trong bộ nhớ này,tuổi thọ cho bộ nhớ này vào khoảng 1000 lần lập
trình,khi chân EA ở mức thấp thì bộ vi điều khiển sẽ thực hiện chương
trình ở bộ nhớ ngoài(EPROM ngoài). Để thực hiện được điều này thì
89S52 cần cần có một mạch phối ghép AT89S52 với Flash/EPROM
AT89S52 có 256 byte RAM nội, trong đó có 32 byte của bộ nhớ dành
Các cuộn dây kích từ nối tiếp với nhau.
Dòng điện cung cấp cho cuộn kích từ nhằm tạo ra từ thông trong đông
cơ.
Mạch kích từ không phải là mạch tiêu thụ công suất nguồn chính trong
động cơ.
Mạch phần ứng là mạch tiêu thụ công suất chính trong động cơ và nó
nằm trên phần roto.Các cuộn của dây của phần ứng đặt trong đặt trong
các rảnh phân bố trên bề mặt của roto, độ rộng của một cuộn dây gọi
là bước cuộn .Các cuộn dây trên phần mạch ứng nối với nhau thành
một mạch kín ,kết thúc của cuộn này sẽ là bắt đầu của cuộn tiếp theo
và kết thúc của cuộn cuối cùng sẽ là bắt đầu của cuộn đầu tiên,dòng
một chiều đưa vào hay lấy ra từ dây cuốn phần ứng thông qua các
chổi than tỳ lên cổ góp .Cổ góp là một kết cấu hình trụ trên bề mặt có
nhiều phiến góp ,số phiến góp bằng số cuộn dây và chúng được cách
điện với nhau bằng mica.
II. Nguyên lý hoạt động của động cơ môt chiều
Khi đặt vào trong từ trường một giây dẫn và cho dòng điện chạy qua
dây dẫn thì từ trường sẽ tác dụng một lựcvào dòng điện và làm dây
dẫn chuyển động .Chiều của lực được xác định bằng quy tắc bàn tay
trái. Đây chính là nguyên lý làm việc của động cơ nói chung
Về động cơ một chiều :
Từ trường trong động cơ tạo ra từ các cuộn dây gọi là cuộn cảm hay
cuộn kích từ .Do stator của động cơ có đặt các cuộn cảm nên thường
gọi là phần cảm .Từ trường do cuộn cảm tạo ra sẽ tác dụng một lực
vào các dây dẫn rotor đặt trong các rảnh của rotor khi có dòng điện
chạy qua. Cuộn dây này gọi là cuộn ứng .Dòng điện đưa vào cuộn ứng
qua các chổi than và cổ góp.Phần rotor mang phần ứng nên gọi là phần
ứng
12
Giả sử các dây dẫn cuộn ứng nữa trên của rotorcos dòng điện hướng
Mutilwalt và l loại bộ nguồn SO20. Đây là một mach điều khiển cầu
đầy đủ với áp cao và dòng cao được thiết kế theo tiêu chuẩn mạch
logic TTL và được sử dụng để chạy các phụ kiện cảm ứng như
Rơle,cuộn dây Sơlenôit, động cơ một chiều , động cơ bước.
Sơ đồ khối của LM298
Hai đầu vào cho phép được cung cấp để cho phép hoặc không cho
phép các thiết bị độc lập của tín hiệu đầu vào.Cực E của transistor
dưới của mỗi cầu được lien kết với nhau và đầu ra ngoài tương ứng
14
cũng có thể được sử dụng cho sự ghép nối của điện trở cảm biến
ngoài.Một nguồn vào bổ sung được cung cấp làm cho mức logic làm
việc ở điện áp thấp.
Bảng chân lý của LM298
15
_______________THIẾT KẾ___________
I. Mạch mô phỏng .
thuan
nghich
THUAN
NGHICH
PWM
PWM
XTAL2
18
XTAL1
19
ALE
30
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR
16
P3.5/T1
15
P2.7/A15
28
P2.0/A8
21
P2.1/A9
22
IN4
12
SENSA
1
SENSB
15
GND
8
VS
4
VCC
9
U2
L298
R1
10k
R2
10k
R3
10k
R4
10k
R5
10k
+5V
+24+5V
+ 8 8 .8
D1
DIODE
D2
10
ENB
11
IN4
12
OUT3
13
OUT4
14
SEN B
15
L298N
L298N
U2
+12V
VCC
RC0
RC1
PWM
+12V
1
1
2
2
j2
CON2
GND
GND
Diode xung
D4
Điều khiển tốc độ động cơ là một kĩ thuật hết sức quan trọng trong các
ứng dụng của động cơ .Kĩ thuật này giúp bạn có thể điều khiển động
cơ của mình chạy nhanh chậm tuỳ ý.
a) có hai cách tạo xung có độ rộng thay đổi bằng VĐK.
Cách 1: Như các bạn điều khiển nhấp nháy 1 con led, đó là tạo ra 1
xung trên 1 chân của vi điều khiển, những xung đó có độ rộng cố định,
tần số lớn, cách bạn có thể điều chỉnh lại hàm delay để tần số của nó
đúng 1 Khz. Tuy nhiên vì là dùng hàm delay nên trong thời gian có
xung lên 1(5V) và thời gian không có xung(0V) vi điều khiển không
18
làm gì cả, hơn nữa tạo xung bằng việc delay mà các bạn có nhu cầu cần
2 bộ phát xung của 2 kênh, có cùng tần số mà khác độ rộng xung thì
trở nên rất khó khăn. Cho nên chúng ta dùng bộ định thời Timer của vi
điều khiển trong trong hợp này rất tiện.
+ Cách 2: Dùng ngắt Timer của bộ vi điều khiển
Khi bắt đầu cho timer 1 chạy thì bộ đếm của timer sẽ đếm dao động
của thạch anh, cứ 12 dao động của thạch anh(1 chu kì máy), bộ đếm của
timer 1
TL1(Timer Low1) sẽ tăng 1,có thển nói timer 1 đếm số chu kì máy. Đối
với chế độ 8 bít.
TL1 là 1 thanh ghi 8 bít, là bộ đếm của bộ định thời rõ rồi. Nó đếm
được từ 0, đến 255. Nếu nó đếm đến 256 thì bộ đếm tràn, TL1 quay
vòng lại bằng 0, và cờ ngắt TF1(Timer Flag 1) tự động được gán lên
1(bằng phần cứng của vi điều khiển) như 1 công tắc tự động bật, và ngắt
xảy ra.
Còn với chế độ 16 bít, bộ đếm của bộ định thời còn 1 thanh ghi 8
bít nữa là TH1(Timer high 1), nếu cấu hình cho timer 1 hoạt động ӣ chế
độ 16 bit thì khi TL1 tràn nó sẽ đếm sang TH1(TH1 sẽ tăng 1). Như vậy
ta có thể đếm: 2
16
Để có thể thay đổi 10 cấp tốc độ với chu kì 1000uS, ta
khởi tạo cho ngắt
timer: 100 uS ngắt 1 lần.
trong đồ án của mình chúng em đã sử dụng timer để thay
đổi độ rông xung PWM.
II. Lập trình.
#include <REGX52.H>
#include<stdio.h>
#include<math.h>
sbit pwm=P2^0;
sbit thuan=P2^1;
sbit nghich=P2^2;
sbit stop=P1^0;
sbit daochieu=P1^1;
sbit giam =P1^2;
sbit tang =P1^3;
sbit start=P1^4;
float tyso;
int dem=0,dem1=0;
void delay(long int time)
{
long int i;
for(i=0;i<time;i++);
}
void taoxung()
{
TR0=0;
pwm=1;
TH0=-(unsigned int)(tyso*1000)/256;
TL0=-(unsigned int)(tyso*1000)%256;
delay(1000);
thuan=1;
nghich=1;
tyso=1;
}
}
void thuan_nghich()
{
if(daochieu==0)
{
delay(1000);
while(daochieu==0);
delay(1000);
if(dem==0)
thuan=1;
nghich=0;
dem++;
}
if(dem==2)
{
dem=0;
thuan=0;
nghich=1;
}
21
}
void tangtoc()
{
if(tang==0)
{
while(1)
{
taoxung();
khoidong();
thuan_nghich();
dung();
tangtoc();
22
giamtoc();
}
}
23