Với việc áp dụng khoa học tiên tiến ta có thể phát minh và chế tạo ra rất nhiều sản phẩm có khả năng xác định chính xác tốc độ chuyển động của một chuyển động nào đó.. Các bộ ứng dụng nà
Trang 1Trường đại học công nghiệp hà nội
Khoa cơ khí
Đồ án môn học vi điều khiển
Đề tài : Thiết kế mô hình đo vận tốc trung bình của một chuyển động tịnh tiến
GVHD :Nguyễn Anh Dũng
Sinh viên thực hiện : Nguyễn Xuân Đoàn
Nguyễn Mạnh Tuấn
Vũ Hồng Sơn
Trang 2LỜI NÓI ĐẦU
Ngày nay khi nhu cầu về chuyển động đuợc quan tâm thì viêc đo vận tốc của một vật là rất cần thiết vì nó liên quan trực tiếp tới việc phát triển của xã hội.Vì vậy viêc nghiên cứu và chế tạo ra những sản phẩm có chức năng đo vận tốc
la rất cần thiết
Với việc áp dụng khoa học tiên tiến ta có thể phát minh
và chế tạo ra rất nhiều sản phẩm có khả năng xác định
chính xác tốc độ chuyển động của một chuyển động nào đó
Các bộ ứng dụng này có thể xác định được tốc độ của một vât chuyển động từ rất xa.Ví dụ như việc nó có thể xác định được vận tốc của một phương tiện đang tham ra giao thông…
Tư việc nhận ra nhu cầu cần thiết này nên nhóm chúng
em quyết định chọn đề tài cho nhóm mình là:
Thiết kế mô hình đo vận tốc trung bình của một vật
chuyển động tịnh tiến
Đây la một đề tài khá hay và có tính ứng dụng cao.khi
đề tài được mở rộng nó sẽ có rất nhiều ứng dụng cần thiết trong sản xuất công nghiệp , giao thông ,quôc phòng mà nước ta còn chưa được phát triển
Chúng em xin chân thành cảm ơn thầy giáo Nguyễn Anh Dũng đã tận tình hướng dẫn trong quá trình thực hiện đề tài.Chúng em mong được sự góp ý thêm để đề tài được hoàn thiện hơn
Trang 3PHẦN I : CƠ SỞ LÝ THUYẾT
Dựa trên nguyên tắc xác định vân tốc của một chuyển
động.ta có thể thực hiện việc xác định vận tốc bằng một
mô hình co xư dụng các led thu và phát hồng ngoại đưa tín hiệu vào môt bộ vi điều khiển 89s52 xử lý và đưa kết quả
ra bộ hiển thị LCD
Để đo vận tốc của một vật chuyển động tịnh tiến ta thưc hiên theo thiết kế sau:
Dùng hai led thu hồng ngoại và hai led phát hồng
ngoại Khi led thu nhận đươc tia hồng ngoại của led phát thì điện trở giữa hai cực của led rất nhỏ Điện áp đặt vào chân IT0 rất nhỏ ~o tức điện áp ở mưc thấp
Khi có vật chạy qua giữa led thu và led phát hồng ngoại
sẽ cản trở tia hồng ngoại đến led thu ,điện trở hai cực của led thu sẽ tăng lên rất lớn khi đó điện áp tại chân IT0 (IT1) rất lớn ~ Vcc tức điện áp ở chân này rất cao ,xuất hiện sự thay đổi điện áp sườn.Lúc đó sẽ có tín hiệu vào IC Chương trình đã được nap sẵn trong IC sẽ thực hiện tính toán và đưa ra kết quả hiển thị trên LCD
Trang 4Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau:
-CPU bao gồm: + thanh ghi tích luỹ A
+thanh ghi tích luỹ phụ B, dung cho phép nhân và ghép chia
+đơn vị logic học
+thanh ghi từ trạng thái chương trình
+ bốn băng thanh ghi
+con chr ngăn xếp
-Bộ nhớ chương trình gồm 8kbyte flahs
-Bộ nhớ dữ liệu gồm 256 byte
-Bộ UART có chức năng truyền nhận nối tiếp
Trang 5-3 bộ Timer/Counter 16 byte thực hiện các chức năng định thời và đếm sự kiện
-WDM được dùng để phục hồi lại hoạt đọng của CPU khi
nó bị treo bởi nguyên nhân nào đó
-Khối điều khiển ngắt với 2 nguồn ngắt ngoài va 4 nguồn ngắt trong
-Bộ lập trình cho phép người sử dụng có thể nạp các
chương trình cho chip mà không cần các bộ nạp chuyên dụng
-Bộ chia tần số với hệ số chia la 12
-4 cổng xuất nhập với 32 chân
Ngắt ngoài của IC 89S52 dung cho mach trên la:
Các ngắt ngoài xảy ra khi có một múc thấp hoặc cạnh
xuống trên chân /INT0 hoặc INT1 của bộ vi điều khiển
Các cờ tạo ngắt này là các bit IEO và IE1 trong TCON khi quyền điều khiển đã chuyển đến Ỉ, cờ tạo ra ngắt chỉ được xoá nếu ngắt được tích cực bằng cạnh xuống, nếu ngắt được tích cực theo mức,thì nguồn yêu cầu ngắt bên ngoái sẽ điều khiẻn mức của cờ thay cho phần cứng
Cách thức tích cực ngắt được đặt bởi các bit ITx trong thanh ghi SCON, nếu Itx=0 ngắt được tích cực bằng mức thấp , nếu Itx=1 ngắt được tích cực bằng cạnh xuống nếu ngắt ngoài được tác động bằng cạnh xuống thì nguồn bên ngoái phải giữ chân /INTx ở mức cao tối thiểu trong một chu ky máy và giữ nó ở mức thấp trong một chu ky máy để đảm bảo cho CPU phát hiện được cạnh xuống nếu ngắt ngoài được tác động theo mức thì nguồn bên ngoài phải giữ tin hiệu yêu cầu tác động trên chân/ /INTx cho đến khi ngắt
Trang 6được đáp ứng và không tác động nữa khi ISR đã được hoàn tất , nều không một ngắt khác sẽ được thực hiện lăp lại
LCD được sử dụng để hiển thị kết quả là LCD 2 dòng ,kích thước 5x7 điểm ảnh.Đầu tiên IC sẽ đưa tín hiệu để hiển thị dòng chữ “DO AN MON VDK” và “DO TOC DO CUA VAT”.Sau đó IC sẽ chờ tín hiệu ở hai chân ngắt
ngoài IT0 và IT1 ,khi vật chạy qua khoảng giữa hai led phát và led thu hồng ngoại thi sẽ có sự thay đổi sườn ở chân ngắt ngoài IT0 hoặc IT1 Khi đó IC sẽ nhận sự thay đổi và chạy chương trình bên trong sau đó kết quả tính toán
sẽ được đưa ra màn hình LCD
PHẦN II : NỘI DUNG
I :Khối điều khiển trung tâm sử dụng vi điều khiển
89s52:
- 89S52 là IC vi điều khiển (Microcontroller) do hãng Atmel sản xuất IC này có đặc điểm như sau:
* CPU ( Centralprocessing unit) bao gồm:
- Thanh ghi tích luỹ A
- Thanh ghi tích lũy B, dung cho phép nhân và phép chia
- Đơn vị logic học
- Thanh ghi từ trạng thái chương trình
Trang 7- Bốn băng thanh ghi
- Con trỏ ngăn xếp
* Bộ nhớ chương trình (bộ nhớ ROM) gồm 8kbyte Flash
* Bộ nhớ dữ liệu (bộ nhớ Ram ) gồm 256 byte
* Bộ UART có chức năng truyền nhận nối tiếp ,có thể giao tiếp với công nối tiếp của máy tính thông qua bọ UART
* 3 bộ Timer/Counter 16 bit thực hiện các chức năng định thời và đếm sự kiện
* WDM dùng để phục hồi lại hoạt động của CPU khi nó
bị treo bởi 1 nguyên nhân nào đó
* Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong
* Bộ lập trình cho phép người sử dụng có thể nạp các chương trình cho chip mà không cần các bộ nạp chuyên dụng
* Bộ chia tần với hệ số chia tần là 12
4 cổng xuất nhập với 32 chân
Trang 8II : Sơ đồ nguyên lý
Trang 9III : Sơ đồ mạch in
Trang 10III : Linh kiện sử dụng trong mạch
- 1 IC 89s52 là khối điều khiển trung tâm nhận tín hiệu
từ led thu hồng ngoại , sử lý sau đó đưa tín hiệu ra LCD
- 1 LCD hiển thị thông tin từ IC
- 2 led phát hồng ngoại phát tia hồng ngoại đến led thu
- 2 led nhận hồng hồng ngoại nhận tia hồng ngoại từ led phát
- 1 thạch anh 12Mhz tao xung dao động cho IC
- Trở
- Nút reset
IV : Chương trình
// Khai bao thu vien
#include <REGX51.H>
#include<stdio.h>
// Khai bao bien an
sbit rs=P2^5;
sbit rw=P2^6;
sbit e=P2^7;
unsigned int count,dem,vtoc;
Trang 11// CAc chuong trinh con
void tre(unsigned long int t) // Chuong trinh tao tre
{
unsigned long int i;
for (i=0;i<=t;i++);
}
void lcd_lenh(unsigned char a) // chuong trinh dua lenh ra LCD
{
rs=0; // cho phep ghi lenh
rw=0; // cho phep ghi vao LCD
P0=a;
e=1;
tre(3);
e=0;
}
void lcd_kitu(char a) // Chuong trinh dua ky tu ra man hinh {
rs=1; // cho phep ghi du lieu
rw=0; // cho phep ghi vao LCD
P0=a;
e=1;
tre(5);
e=0;
}
void lcd_chuoi(unsigned char *b) // chuong trinh dua chuoi
ky tu ra man hinh
{
while(*b)
Trang 12{
lcd_kitu(*b);
tre(1);
b++;
}
}
void lcd_khoitao() // cac lenh khoi tao cho lcd
{
tre(5);
lcd_lenh(0x03); // dua hien thi va con tro ve dau dong tre(5);
lcd_lenh(0x3c); // che do lam viec 8 bit, 2 dong , co chu 5x7
tre(5);
lcd_lenh(0x06); // tat dich chuyen hien thi, hien thi tang dan
tre(5);
lcd_lenh(0x0c); // bat hien thi , tat co tro gach chan, tat con tro khoi
}
/// Cac chuong trinh ngat
void ngat0() interrupt 0 //ngat ngoai 0
{
count=count+1;
if(count==3)
count=1;
}
Trang 13void ngat1() interrupt 2 // ngat ngoai 1
{
count=count+1;
if(count==3)
count=1;
}
// Chuong trimh chinh
void main()
{ int e,f,g,h,k;
EA=1; // cho phep ngat
EX0=EX1=1; // cho phep ngat ngoai 0 va 1
IT0=IT1=1; // cho phep ngat do suon
TMOD=0x01; // lua chon timer 0 mode1
lcd_khoitao(); // goi chuong trinh khoi tao ra lcd_chuoi(" DO AN MON VDK"); // ghi chu DO
AN MON VDV ra
tre(30000); // Cho cho chu nay dung yen de nhin lcd_lenh(0x01); // lenh xoa man hinh
lcd_lenh(0x80); // lenh dua hien thi ve dau dong thu 1
lcd_chuoi(" DO VAN TOC VAT");
tre(30000); // Cho cho chu nay dung yen de nhin lcd_lenh(0x01); // lenh xoa man hinh
lcd_lenh(0x80); // lenh dua hien thi ve dau dong thu 1
lcd_chuoi(" cho vat qua");
count=dem=0;
while(1)
{
Trang 14while(count<1) // trong khi bien count nho hon 1 thi hien dong cu “cho vat qua”
{ lcd_lenh(0x01);
lcd_lenh(0x80);
lcd_chuoi(" cho vat qua");
tre(10000);
lcd_lenh(0x01);
tre(10000);
}
while(count==1) /*trong khi bien count=1 ( vat chay qua lan 1) thi thoi gian chay dua vao bien “dem”*/
{
TH0=TL0=-1000;
TR0=1;
while(!TF0);
TR0=0;
TF0=0;
dem=dem+1;
}
while(count>1) /*neu bien count>1 (vat da chay wa lan 2) thi tinh toan => van toc, v=s/t */
{
lcd_lenh(0x01); // xoa man hinh sau moi lan cay de sach man hinh
vtoc=4500/dem;
// khoang cach giua 2 diem la 4.5 cm.kq tinh dc =
(vantocthuc)*1000
e=vtoc/10000;
f=(vtoc%10000)/1000;
g=((vtoc%10000)%1000)/100;
Trang 15h=(((vtoc%10000)%1000)%100)/10; k=(((vtoc
%10000)%1000)%100)%10
lcd_lenh(0xc0);tre(50);
lcd_chuoi( " v/toc="); // in chu " v/toc="
lcd_kitu('0'+e); // in hang truc cua gia tri van toc
lcd_kitu('0'+f); // in hang dvi cua van toc
lcd_kitu(',');
lcd_kitu('0'+g); // in hang tap phan
lcd_kitu('0'+h); // in hang tap phan
lcd_kitu('0'+k); ; // in hang tap phan
lcd_chuoi("m/s");
tre(10000);
lcd_lenh(0x01);
}
}
}
PHẦN III : KẾT LUẬN
- Ưu điểm : Với mô hình này có thể đo đươc vận tốc của một vật chuyển động chính xác và đưa ra kết quả rất nhanh chóng ma không cần qua tính toán gì khác
- Nhược điểm : mô hình trên chỉ có thể đo được vận tôc chuyển động của một vật có kich thước nhỏ và chuyển động không quá nhanh.Chưa có tính ứng dụng cao vào thực tế
- Hướng phát triển của đề tài :
Trang 16Với đề tài này có thể phát triển thành nhiều ứng dụng trong thực tế hiện nay Với việc xác định vận tốc
chuyển động thông qua một hệ thống tự đông là rất cần thiết.Mô hình này nếu được phát triển sẽ đươc áp dụng rất nhiều trong thưc tế ta có thể xác định được một cách chính xác tốc độ của môt chuyên đông nào
đó ma chẳng hạn ta không thể đến gần nó…và nó
cũng có thể được ứng dụng trong giao thông để xác định vận tốc của một phương tiên khi tham gia giao thông…
Chúng em xin chân thành cảm ơn thầy giáo Nguyễn Anh Dũng đã trực tiếp hướng dẫn chúng em trong quá trình thực hiện đề tài nay