Trong thực tế các bộ Vi Điều Khiển được ứng dụng vào mọi lĩnh vực của đời sống từ các thiết bị nhỏ như điện thoại di động , máy nhắn tin, trò chơi điện tử , các thiết bị gia dụng như má
Trang 1Ngành kỹ thuật Điện tử hiện nay đang phát triển mạnh mẽ , kỹ thuật Vi Điều Khiển đã trở nên quen thuộc trong các nghành kỹ thuật và trong dân dụng Trong thực tế các bộ Vi Điều Khiển được ứng dụng vào mọi lĩnh vực của đời sống từ các thiết bị nhỏ như điện thoại di động , máy nhắn tin, trò chơi điện tử , các thiết bị gia dụng như ( máy giặt, điều hoà , tủ lạnh…) đến những thiết bị có quy mô lớn như các bộ điều khiển tự động trong các nhà máy , xi nghiệp, hệ thống thông tin liên lạc… Vi điều khiển đã góp phần đưa con người đến đỉnh cao của nhân loại
Qua quá trình học lý thuyết cũng như đi thực hành chúng em được sự chỉ bảo tận tình của các thầy cô trong Khoa Để nắm được kiến thức sâu hơn chúng em được các thầy giao cho làm đồ án môn học nhằm nghiên cứu và học hỏi nhiều hơn nữa
Dưới đây chúng em xin giới thiệu một ứng dụng nhỏ của Vi Điều Khiển 8051
( cụ thể là vi điều khiển AT89S52) mà các thầy đã giao cho với đề tài: “ THIẾT
KẾ BỘ HẸN GIỜ DÙNG CHO 1 THIẾT BI.” Đây là một ứng dụng nhỏ của
Vi Điều Khiển nhưng được sử dụng rất nhiều trong chuyên nghành Điện _ Điện tử
Đồ án đã hoàn thành, song cũng không thể tránh nổi những sai sót và thiếu sót Chúng em rất mong được sự đóng góp ý kiến quý báu của các thầy cô cùng các bạn để đề tài lần sau được hoàn chỉnh hơn nữa
Chúng em xin chân thành cám ơn!
Hà Nội ngày :07/2/2010
ĐỀ THI KẾT THÚC HỌC PHẦN
Đề Số :07
Môn Học: Vi Điều Khiển Hình Thức : Làm Bài Tập Lớn
Số Lượng Sinh Viên : 03
Trang 2STT Họ và Tên Sinh Viên Lớp / Khoa Ghi chú
1
ĐINH HUY BẮC CDT _K9
2
ĐÀO MINH KHA CDT _K9
3
MAI QUANG TIẾN CDT _K9
NỘI DUNG ĐỀ TÀI :THIẾT KẾ MẠCH HẸN GIỜ CHO MỘT THIẾT BỊ
A Cơ Sở Lý Thuyết
I Giới thiệu tổng quan về họ vi điều khiển 8051
Họ vi điều khiển 8051 là một trong những họ vi điều khiển thông dụng nhất Đây
là họ vi điều khiển được sản xuất theo công nghệ CMOS Có tốc độ cao và công suất thấp, bộ nhớ Flash có thể lập trình được
1 Sơ đồ khối của AT89S52
Trang 3
4 Kbyte bộ nhớ Flash có thể lập trình lặp vơi 1000 chu kỳ đọc xoá
Hoạt động tĩnh đầy đủ : Từ 0 HZ đến 24 MHZ
Khoá bộ nhớ chương trình ba cấp
128x8 bit RAM nội
32 đường xuất nhập lập trình được
Hai timer / counter khoong bit
Một port nối tiếp sang công có thể lập trình được
Mạch đồng hồ và bộ dao động trên chíp
3 Sơ đồ chân và chức năng của AT89S52
Như vậy theo sơ đồ trên AT89S52 có 40 chân mỗi chân có chức năng như các đường I/O (xuất nhập ) , trong đó 24 chân có công dụng kép,mỗi đường có thể hoạt động như một đường I/O hoặc như đường điều khiển hoặc như thành phần của bus điều khiển và bus dữ liệu
3.1 Port 0 ( P0.0- P0.7)
Trang 4Port 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), chức năng này sẽ được sử dụng khi 8051 giao tiếp với các thiết bị ngoài có kiến trúc bus như các vi mạch nhớ, mạch nhớ PIO…
3.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
Trang 53.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 dịa chỉ đối vớo các thiết bị đồng bộ nhớ mở rộng
3.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
3.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
Trang 63.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)
3.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
3.8 RST (Reset)
Ngõ vào RST trên chân 9 la f 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
3.9 XTAL1, XTAL2
AT89S52 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 trên là cách nối bộ dao động thạch anh
3.10 Vcc, GND
AT89s52 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
Trang 7IC 7805
Dung để biến đổi nguồn cấp vào nó là 12V thành 5V.Để cung cấp cho mạch
B Bản thiết kế đề tài mạch hẹn giờ dung cho một thiết bị
Khối khuếch đại-chuyển đổi
Khối
Motor 1 chiều
Trang 8Hình 1:sơ đồ nguyên lý khối nguồn
Dòng điện 12v vào chân (CON2) sau đó cho qua bộ ổn áp( IC 7805) được điện áp + 5v ổn định cấp cho : Vi điều khiển AT89s52,
Trong sơ đồ gồm có diot dung để ngăn dòng điện chạy ngược lại
C4,C5 dùng để lọc dòng điện soay chiều va cho ra dòng một chiều
Khi dòng qua LM 7805 ra được điên áp 5v và cấp nguồn cho vi điều khiển khi đo LED d4 sáng để nhận biết dòng điện
2 KHỐI ROLE
ROLE là thiết bị điện tự động mà tín hiệu ra thay đổi cấp khi tín hiệu đầu vào đạt những giá trị xác định
ROLE là thiết bị điện dung để đóng cắt mạch điện điều khiển bảo vệ và điều khiển sự làm việc của mach điện
Các bộ phận chính trong ROLE
Cơ cấu tiếp thu : có nhiệm vụ nhận những tín hiệu đầu vào và biến đổi nó thành đại lượng cần thiết cung cấp tín hiệu phù hơp cho khối trung gian
Cơ cấu trung gian : làm nhiềm vụ nhận nhưng tín hiệu đưa đến từ khối tiếp thu và biến đổi nó thành đại lương cần thiết
Cơ cấu chấp hành : làm nhiêm vụ phát tín hiệu cho mạch vi điều khi
Trang 9SƠ ĐỒ CHÂN LED
Ta sử dụng 2 con led 7seg dung để hiển thi
2 led này là led anot
2 led này thông qua 8 transitor để cấp nguồn cho led
Vì nguồn sử dụng trong vi điều khiển không đủ để cấp nguồn cho led
3.SƠ ĐỒ TOÀN MẠCH
Trang 10
Trong mạch gồm có 4 nút ấn điều khiển và một nút ấn reset lại toàn bộ
chương trình
4 nút ấn trong đó dung để điều khiển led đếm tiến hay đếm lùi
Trang 115 SƠ ĐỒ MẠCH MÔ PHỎNG
Trang 126 CHƯƠNG TRÌNH NẠP CHO VI ĐIỀU KHIỂN
#include <REGX52.H>
#include <RTX51TNY.H>
sbit OK=P3^0; //OK
sbit MODE=P3^1;//MODE
sbit UP=P3^2;//UP
sbit DOW=P3^3;//DOW
Trang 13sbit l5=P2^4;
sbit l4=P2^3;
sbit l3=P2^2;
sbit l2=P2^1;
sbit l1=P2^0;
sbit role=P3^7;
unsigned char so1,so2,so3,so4,so5,so6,so7,so8;
unsigned char font[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
// font led7 thanh
unsigned int a=0,sec=0,min=0,hour=0,b=0,c=0,d,i;
void time (void) _task_ 1 //chay thoi gian thuc
{
while(1)
{
os_wait(K_TMO,10,0);
a ;
if(a==-1)
{
sec ;
if(sec==-1)
{ min ;
if(min==-1)
{ hour ;
if(hour==0)hour=0;
min=59;
} sec=59;
} a=9;
}
}
}
void key (void)
{
if(OK==0) //chay chuong trinh
Trang 14b++;
if(b==2) b=0;
} if(MODE==0) //lua chon chinh
{ while(MODE==0){;}
c++;
if(c==4) c=0;
} }
void delay(void) //ham tre quet led 7
{
for(i=0;i<100;i++);
}
//set time
void set_time(void)
{
switch (c)
{
case 0://HOUR
{ key();
if(UP==0)
{
while(UP==0){;}
hour++;
if(hour==24) hour=0;
}
if(DOW==0)
{
while(DOW==0){;}
hour ;
if(hour==-1) hour=23;
}
so1=hour/10;
so2=hour%10;
for(d=0;d<10;d++)
{
Trang 15l2=0;
l1=l3=l4=l5=l6=l7=l8=1; P0=font[so2];
delay();
} break;
}
case 1: //MIN
{ key();
if(UP==0)
{
while(UP==0){;}
min++;
if(min==60) min=0;
}
if(DOW==0)
{
while(DOW==0){;}
min ;
if(min==-1) min=59;
}
so3=min/10;
so4=min%10;
for(d=0;d<10;d++) {
l3=0;
l2=l1=l4=l5=l6=l7=l8=1;
P0=font[so3];
delay();
l4=0;
l2=l3=l1=l5=l6=l7=l8=1;
P0=font[so4];
delay();
} break;
}
Trang 16{ key();
if(UP==0)
{
while(UP==0){;}
sec++;
if(sec==60) sec=0;
}
if(DOW==0)
{
while(DOW==0){;}
sec ;
if(sec==-1) sec=59;
}
so5=sec/10;
so6=sec%10;
for(d=0;d<10;d++) {
l5=0;
l2=l1=l4=l3=l6=l7=l8=1;
P0=font[so5];
delay();
l6=0;
l2=l3=l1=l5=l4=l7=l8=1;
P0=font[so6];
delay();
} break;
}
case 3: //a { key();
if(UP==0)
{
while(UP==0){;}
a++;
if(a==10) a=0;
}
if(DOW==0)
{
while(DOW==0){;}
Trang 17so7=a/10;
so8=a%10;
for(d=0;d<10;d++) {
l7=0;
l2=l1=l4=l5=l6=l3=l8=1;
P0=font[so7];
delay();
l8=0;
l2=l3=l1=l5=l6=l7=l4=1;
P0=font[so8];
delay();
} break;
} }
}
void hien_thi (void) _task_ 2 //hien thi led 7
{
while(1)
{
key();
while(b==0)//vao chuong trinh set
{ role=0;
os_delete_task (1);//xoa task 1
key();
set_time();
}
key();
while(b==1)//chay chuong trinh
{
key();
if((hour!=0)||(min!=0)||(sec!=0)||(a!=0)) {
os_create_task(1);//khoi tao task 1 role=1;
Trang 18if((hour==0)&&(min==0)&&(sec==0)&&(a==0))//dung chuong trinh khi chay het
{ os_delete_task (1);//xoa task 1 role=0;
} so1=hour/10;
so2=hour%10;
so3=min/10;
so4=min%10;
so5=sec/10;
so6=sec%10;
so7=a/10;
so8=a%10;
for(d=0;d<10;d++ ) {
l1=0;
l2=l3=l4=l5=l6=l7=l8=1;
P0=font[so1];
delay();
l2=0;
l1=l3=l4=l5=l6=l7=l8=1;
P0=font[so2];
delay();
l3=0;
l2=l1=l4=l5=l6=l7=l8=1;
P0=font[so3];
delay();
l4=0;
l2=l3=l1=l5=l6=l7=l8=1;
P0=font[so4];
delay();
l5=0;
l2=l3=l1=l4=l6=l7=l8=1;
Trang 19l2=l3=l1=l5=l4=l7=l8=1;
P0=font[so6];
delay();
l7=0;
l2=l3=l1=l5=l6=l4=l8=1;
P0=font[so7];
delay();
l8=0;
l2=l3=l1=l5=l6=l7=l4=1;
P0=font[so8];
delay();
} }
}
}
void start_up (void) _task_ 0
{
os_create_task(1);
os_create_task(2);
os_delete_task (0);
}
CHÚNG EM XIN KẾT THÚC CHƯƠNG TRÌNH TAI ĐÂY
CÓ GÌ THIẾU SÓT MONG ĐƯỢC THẦY CÔ VÀ BẠN BÈ GIÚP ĐỠ
Trang 20VI Tài liệu tham khảo
1.vi điều khiển NXB GIÁO DỤC
(cấu trúc -lập trình và ứng dụng)
2.vi điều khiển TỐNG VĂN ON