Tải bản đầy đủ (.docx) (22 trang)

Đồ án vi điều khiển điều khiển,đo tốc độ hiển thị LCD

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (769.03 KB, 22 trang )

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN TỬ
--------------

Đồ án môn học : Vi điều khiển
Đề tài
: Điều khiển và đo tốc
độ động cơ, hiển thị LCD.

Giáo viên hướng dẫn

: Th.s Vũ Thị Thu Hương

Nhóm sinh viên thực hiện: Mai Văn Công
Cao Thị Thơm
Lớp: CNKT Điện Tử 2Khóa 4

Hà Nội 09-2012

1


Nhận xét của giảng viên hướng dẫn
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………


………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………

2



Lời nói đầu
Ngày nay, nhu cầu học tập và nghiên cứu các ứng dụng công nghệ Vi
điều khiển ngày càng tăng trưởng mạnh mẽ. Các công trình nghiên cứu và
ứng dụng công nghệ này đều rất phong phú, đa dạng. Vi điều khiển đang dần
dần thay thế con người trong các ứng dụng trong thực tiễn, và một số ứng
dụng thực tiễn của Vi điều khiển như: Điều khiển tốc độ động cơ, thiết kế
bảng led điện tử, đếm sản phẩm, đo và khống chế nhiệt độ…
Với ưu điểm là điều khiển tốc độ động cơ dễ dàng, độ ổn định tốc độ cao
nên động cơ một chiều đã được sử dụng khá phổ biến như: truyền động cho
một số máy như máy nghiền ,máy nâng vận chuyển, điều khiển băng tải, điều
khiển các robot…
Để điều khiển tốc độ của động cơ một chiều thì có rất nhiều phương
pháp, trong đồ án của mình chúng em xin trình bày điều khiển động cơ dùng
họ vi điều khiển 8051 bằng phương pháp đếm xung (dùng động cơ có sử dụng
encoder). Trong đồ án của mình chúng em sử dụng IC 89C52 để lập trình điều
khiển động cơ một chiều DC nhỏ hơn 24V, sử dụng IC L298N để tăng công
suất.
Tuy chúng em đã có nhiều cố gắng song bản báo cáo Điều khiển và đo
tốc độ động cơ, hiển thị LCD của chúng em không tránh được những khiếm
khuyết, thiếu sót. Kính mong các thầy cô giáo thông cảm và có ý kiến đóng
góp giúp chúng em rút kinh nghiệmvà để bài báo cáo hoàn thiện hơn.
Cuối cùng, chúng em xin gửi lời cảm ơn chân thành đến cô Vũ Thị Thu
Hương đã trực tiếp giảng dạy và hướng dẫn chúng em hoàn thành bài đồ án
này.

Hà Nội – 2011
Nhóm SV thực hiện


3


Mục lục

Danh mục hình vẽ

4


PHẦN 1. CỞ SỞ LÝ THUYẾT
SƠ LƯỢC VỀ 8051
Họ vi đ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.
1.

Sơ đồ chân và chức năng của họ 8051

Hình : Sơ đồ chân và chức năng của họ 8051

1.1. Port 0 ( P0.0- P0.7)
Port 0 gồm 8 chân, ngoài các chức năng xuất nhập, Port 0 còn là bus đa
hợp dữ liệu và địa chỉ(AD0-AD7)

5


Hình : Sơ đồ chân Port 0

1.2. Port 1 ( P1.0- P1.7)

Port 1 có chức năng xuất nhập theo bit và byte. Ngoài ra, ba chân P1.5,
P1.6, P1.7 được dùng để nạp ROM theo chuẩn ISP, hai chân P1.0 và P1.1
được dùng cho bộ Timer 2.

Hình : Sơ đồ chân Port 1

1.3. Port 2 (P2.0-P2.7)
Là một port có công dụng kép, là đường xuất nhập hoặc là byte cao của
bus địa chỉ đối với các thiết bị đồng bộ nhớ mở rộng.

Hình : Sơ đồ chân Port 2

6


1.4. Port 3 (P3.0- P3.7)
Mỗi chân trên Port 3 ngoai chớc năng xuất nhập còn có chớc năng riêng,
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
P3.4
T0
Ngõ vào của Timer/counter 0
P3.5
T1
Ngõ vào của Timer/ counter 1
P3.6
/WR
Xung ghi bộ nhớ dữ liệu ngoài
P3.7
/RD
Xung đọc bộ nhớ dữ liệu ngoài.

1.5. Chân /PSEN ( Program store Enable)
/PSEN là chân điều khiển đọc chương trình ở bộ nhớ ngoài, nó được nối
với chân /OE để cho phép đọc các byte mã lệnh trên ROM ngoài . /PSEN sẽ ở
mức thấp trong thời gian đọc mã lệnh . Mã lệnh được đọc từ bộ nhớ ngoài qua
bus dữ liệu (Port 0) thanh ghi lệnh để được giải mã. Khi thực hiện chương
trình trong ROM nội thì /PSEN ở mức cao.

1.6. Chân ALE (Address Latch Enable)
ALE là tín hiệu điều chỉnh chốt địa chỉ có tần số bằng 1/6 tần số dao
động của vi điều khiển. Tín hiệu ALE được dùng để cho phép vi mạch chốt
bên ngoài như 74373, 74573 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa
chỉ / dữ liệu (Port 0).

1.7. Chân /EA (External Access)

Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay
ngoài vi điều khiển. Nếu EA ở mức cao (nối với vcc), thì vi điều khiển thi
hành chương trình trong ROM nội . Nếu /EA ở mức thấp (nối với GND), thì
vi điều khiển thi hành chương trình từ bộ nhớ ngoài .

1.8. RST (Reset), VCC, GND
Ngõ vào RST trên chân 9 là ngõ Reset của 8051. Khi tín hiệu này được
đưa lên mức cao, các thanh ghi trong bộ vi điều khiển được tải những giá trị
thích hợp để khởi động hệ thống .
8051 dùng nguồn điện áp một chiều có dải điện áp từ 4V đến 5,5V được
cấp qua chân 20 và 40.

7


1.9. XTAL1, XTAL2
8051 có một bộ dao động trên chíp, nó thường được nối với với bộ dao
động bằng thạch anh có tần số lớn nhất là 33MHZ, thông thường là 12MHZ.

Hình 1. :

2.
2.1.

Lựa chọn linh kiện
LCD

Hình : Màn hình LCD
LCD được nói trong mục này có 16 chân, chức năng của các chân được
cho trong bảng 3.

Chân
1
2
3

Ký hiệu
Vss
Vcc
Vee

I/O
-

4

RS

I

5

R/W

I

6

E
DB0, 1, 2, 3, 4, 5, 6,
7, 8


I/O

Mô tả
Đất
Dương nguồn 5 V
Cấp nguồn cho điều khiển
RS= 0 chọn thanh ghi lệnh.
RS= 1 chọn thanh ghi dữ liệu
R/W= 1 đọc dữ liệu.
R/W = 0 ghi dữ liệu
Cho phép

I/O

Các bit dữ liệu

7

8


Chân RS được dùng để chọn các thanh ghi này như sau: Nếu RS = 0 thì
thanh ghi mã lệnh được chọn để cho phép người dùng gửi đến một lệnh như
xóa màn hình, con trỏ về đầu dòng… Nếu RS = 1 thì thanh ghi dữ liệu được
chọn cho phép người dùng gửi dữ liệu cần hiển thị trên LCD.
Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiện hữu trên
chân dữ liệu của nó, khi dữ liệu được cấp đến chân đữ liệu thì một mức xung
từ cao xuống thấp phải được áp đến chân này để LCD chốt dữ liệu trên các
chân chốt dữ liệu. Xung này phải rộng tối thiểu 450ns.


2.2.

Led và Button
LED (viết tắt của : Light Emitting Diode) được cấu tạo từ một khối bán
dẫn loại p ghép với một khối bán dẫn loại n, đèn LED tạo ra nhiều ánh sáng
hơn, tỏa nhiệt ít hơn so với các thiết bị chiếu sáng khác vì vậy cũng tiêu thụ ít
điện năng hơn.

Hình : led

2.3.

Hình : Buttom

L298N
L298N là một drive chip tích hợp sẵn
hai mạch cầu H bên trong với chuẩn điều khiển
TTL, không có diode nội bảo vệ Mosfet. Chịu tải
tối đa trên mỗi cầu là 2A, điện áp 40VDC. Logic
‘0’ ở ngõ vào lên tới 1.5V (khả năng khử nhiễu
cao).

Hình : L298N

9


Hình : Sơ đồ chân của L298N


2.4.

Encoder, Trở băng

10


Encoder mục đích dùng để quản lý vị
trí góc của một đĩa quay, đĩa quay có thể là
bánh xe, trục động cơ, hoặc bất kỳ thiết bị
quay nào cần xác định vị trí góc.

Hình : Encoder

Encoder được chia làm 2 loại, absolute encoder (encoder tuyệt đối ) và
incremental encoder (encoder tương đối)
Trong mạch người ta
dùng các điện trở thanh để treo áp.

Hình : Trở băng

PHẦN 2: NỘI DUNG
1.

Mạch nguyên lý

11


Hình : Mạch nguyên lý

2.
2.1.

Các khối chính
Khối nguồn

Hình : Khối nguồn
Mạch này sử dụng:
- Nguồn điện áp một chiều đầu vào bộ ổn áp IC7805 có nhiệm vụ ổn
định điện áp ra cố định +5V.
- Một led đơn : báo trạng thái có nguồn.
- Tụ C1 và C2: nhiệm vụ lọc nguồn, chống nhiễu và san phẳng điện áp
2.2.

Khối LCD

12


-

Hình : Khối LCD
Khối LCD có nhiệm vụ hiển thị tốc độ động cơ.
Trong mạch Port0 sẽ truyền trực tiếp dữ liệu cho LCD.
Các chân điều khiển RS, RE, EN được ghép nối với 3 chân P2.5, P2.6, P2.7
của vi điều khiển.
Các chân số 2, 1 cung cấp nguồn hoạt động cho LCD, chân số 3 là chân điều
chỉnh độ tương phản được nối thẳng xuống mát.
Chân 15, 16 có nhiệm vụ cung cấp điện áp cho đèn led trong LCD và được
hạn dòng bằng 1 điện trở 1K.


Khối led báo và reset

2.3.

Hình : Khối led báo và reset
-

-

2.4.

Trong khối Reset chúng ta sử dụng điện trở 1K giúp treo áp cho chân reset
của vi điều khiển luôn ở mức 0V. Tụ điện C7 là 1 tụ gốm 104 có tác dụng
giảm nhiễu cho nút bấm.
Các led D2, D3, D4, D5 được dùng để báo cho người sử dụng biết trạng thái
hiện tại của động cơ.

Khối điều khiển động cơ
13


Hình : Khối điều khiển động cơ
-

-

Để khối điều khiển tốc độ động cơ hoạt động ổn định và đạt hiệu suất cao
nhất thì trong mạch IC L298 được ghép nối với các linh kiện như sau:
+ 4 diode và tụ C6 được ghép nối với chân đầu ra điều khiển động cơ có

tác dụng ngăn dòng ngược giảm xung nhiễu gây cháy chip vi điều khiển.
+ Tụ C141 có trị số là 1000uF/16V được thiết kế rất gần chân số 4 của
L298 nhằm ổn định nguồn cho động cơ.
Để cho phép động cơ hoạt động chúng ta cần sử dụng chân EN như trong
hình vẽ. Với mức 1 là cho phép và mức 0 là ngừng hoạt động. Để điều khiển
động cơ theo chiều thuận nghịch và tăng giảm tốc độ động cơ ta sử dụng 1
cách linh hoạt 2 chân IN1 và IN2 giống như trong hình vẽ. 1 chân sẽ cấp xung
PWM và chân còn lại điều khiển chiều thuận nghịch của động cơ.

14


Khối vi xử lý và khối điều khiển

2.5.

Hình : Khối vi xử lý và khối điều khiển
-

Trong khối điều khiển sử dụng 6 nút bấm để điều khiển động cơ. Các nút bấm
này được treo áp bởi điện trở băng RN2 có trị số 10K.
Trong khối dao động chúng ta sử dụng 2 tụ C2, C3 cùng thạch anh 12Mhz.

15


3.

Mạch in


Hình : Lớp bottom

16


Hình : Lớp Top
4.

Viết chương trình điều khiển cho mạch
#include<regx52.h>
#include<stdio.h>
#include<LCD.h>
sbit PWM
= P3^7;
sbit chieu
= P3^6;
sbit E
= P3^5;
sbit ledon
= P3^1;
sbit ledoff
= P3^0;
sbit ledthuan = P3^2;
sbit lednghich = P3^4;
#define
#define
#define
#define
#define
#define


//Khai báo thu vien LCD

phim_on
P1_0
phim_off P1_1
phim_tang P1_2
phim_giam P1_3
phim_thuan P1_4
phim_nghich P1_5

unsigned int dem,t=0,t1=0,u,dem1=0,tocdo=0,tg=0;
void ngat() interrupt 2
{

//Hàm ngắt ngoài để đếm số xung
17


dem1++;

//Khi có 1 sườn sung tác động vào chân
INT1 thì biến tăng lên 1 đơn vị

}
void timer0() interrupt 1
{
TR0=0;
TH0=-1000/256;


//Dừng timer 0
//Khoi tao cho bo dem timer 1voi he so
chia là 2000

TL0=-1000%256;
t++;
if(t==500) {
t=0;
t1=dem1;
dem1=0;
}
TR0=1;
//Chạy timer 0
}
//PWM-----------------------------------------void timer2(void) interrupt 5{ //Ngắt timer 2
TR2=0;
TF2=0;
// Dừng chạy timer 2
dem++;
//Tăng biến đếm
if(dem > 10)
dem = 0;
if(demPWM = 1;
//Tạo xung PWM
else
PWM = 0;
TR2 = 1;
}
void dieu_khien()

{
if (phim_on==0)
{
while(phim_on==0);
ledon=0;
ledoff=1;
tocdo=5;
E=1;
chieu=0;
}

//Hàm điều khiển động cơ

//Khi nhấn vào phím on
//Led báo động cơ hoạt động sáng lên
//Led báo động cơ ngừng hoạt động tắt
//Khởi động động cơ với tốc độ chạy 50%
//Cho phép động cơ hoạt động
//Chiều động cơ là chiều thuận
18


if (phim_tang==0)
{
while (phim_tang==0);
E=1;
if(tg<10)
{
tg++;
}

if (chieu==0)tocdo=tg;
if (chieu==1)tocdo=10-tg;
}
if (phim_giam==0)
{
while(phim_giam==0);
E=1;
if(tg>1)
{
tg--;
}
if (chieu==0)tocdo=10-tg;
if (chieu==1)tocdo=tg;
}
if (phim_off==0)
{
while(phim_off==0);
E=0;
ledoff=0;
ledon=1;
}
if (phim_thuan==0)
{
while(phim_thuan==0);
chieu=0;
E=1;
tocdo=5;
ledthuan=0;
lednghich=1;
}


//Nhấn vào phím tăng

//Tăng tốc

//Nhấn vào phím giảm

//Giảm tốc

//Nhấn vào phím tắt
//Động cơ ngừng hoạt động

//Nhấn vào phím thuận

19


if(phim_nghich==0)
{
while (phim_nghich==0);
chieu=1;
E=1;
tocdo=5;
ledthuan=1;
lednghich=0;
}
}
void main()
{
khoi_tao();

TMOD=0xd1;
IE=0xFF;
IP=0x04;
TR1=1;TR0=1;
IT1=1;TF0=1;
T2CON=0x04;
RCAP2H=0xFF;
RCAP2L=0x9C;
PWM=0;
EA=1;
TR2=1;
E=0;

//Nhấn vào phím nghịch
//Đổi chiều động cơ

//Gọi hàm khởi tạo LCD
//Timer 0 chế độ 1, timer 2 chế độ 1

//Khởi tạo Timer 2
//Khởi tạo giá trị cho timer 2

//Chạy timer 2
//Động cơ ngừng hoạt động

ghi_lenh1(0x01);
//Xóa màn hình
ghi_lenh1(0x80);
//Về đầu dòng thứ nhất
ghi_chuoi1("MOIBANDKDONGCO");

while(1)
{
dieu_khien();
//Gọi hàm điều khiển động cơ
u=t1*60/32;
//Chia lấy tốc độ động cơ
ghi_lenh(0xc0);
//Về đầu dòng thứ 2
sprintf(&mang[0],"TocdoDC=%4d V/P",u);//Ghi tốc độ động cơ lên
dòng thứ 2
ghi_chuoi(&mang[0]);
//Gọi hàm ghi chuỗi
u=0;
//Xóa tốc độ
}
}
20


PHẦN 3: KẾT LUẬN
1. Ưu điểm

Tổn hao trên phần công suất nhỏ.
Đây là phương pháp đơn giản và thực tế.
Do điện áp tác động vào cuộn dây của động cơ là liên tục nên tuổi thọ
của động cơ kéo lâu hơn so với phương pháp khác .
2. Nhược điểm

Dải điều khiển hẹp.
Phương pháp này không được sử dụng khi yêu cầu độ chính xác cao về

tốc độ.
3.

Tính thực tế của sản phẩm đã thiết kế và hướng cải tiến, phát triển
Tính thực tế của sản phẩm: đo tốc độ động cơ được sử dụng rất rộng rãi
trong rất nhiều các thiết bị điện tử: đầu đĩa, máy móc và các thiết bị công
nghiệp cần đến độ chính xác cao.
Hướng cải tiến, phát triển: sản phẩm có thể được cải tiến và được tích
hợp trong các máy công nghiệp.

Tài Liệu Tham Khảo
21


1.
2.
3.
4.




Giáo trình vi điều khiển

22



×