Trng HCN H Ni Khoa in t
Bộ CÔNG THƯƠNg
Trờng đại học công nghiệp hà nội
Khoa điện tử
đồ án môn:
Vi điều khiển
Đề tài: Thiết kế bộ hẹn giờ cho một thiết bị
Sinh viên thực hiên: Cao Xuân Đức
Trơng Quang Huy
Phạm Thị Lan Hơng Giáo viên hớng dẫn: Nguyễn Anh Dũng
File ớnh kốm mụ phng 003.rar
Hà nội -11/2009
Mục lục
Chơng i: Giới thiệu chung về bộ vi điều khiển3
I. Giới thiệu chung về bộ vi điều khiển.4
1
Trng HCN H Ni Khoa in t
II. Khảo sát bộ vi điều khiển 8051(89S52) 4
1. Kiến trúc phần cứng 5
2. Chức năng các chân 6
3. Các thanh ghi 9
4. Hoạt động của bộ định thời 10
5. Hoạt động của port nối tiếp 11
6. Hoạt động ngắt 12
Chơng ii: bộ hẹn giờ dùng 89s52
Bộ vi điều khiển viết tắt là Micro-contronller, là mạch tích hợp trên một chíp có thể lập
trình đợc, dùng để điều khiển hoạt động của hệ thống. Theo các tập lệnh của ngời lập trình,
bộ vi điều khiển tiến hành đọc, lu trữ thông tin, xử lý thông tin, đo lờng thời gian và tiến
hành đọc mở một cơ cấu nào đó.
Trong các thiết bị điện và điện tử dân dụng, thiết bị tự động hoá các bộ vi điều khiển,
điều khiển hoạt đọng của các thiết bị này Trong hệ thống sản xuất tự động, bộ vi điều
khiển đợc sử dụng trong điều khiển robot, dây chuyền tự động Các hệ thống càng thông
minh thì vai trò của vi điều khiển càng quan trọng
II. Khảo sát bộ vi điều khiển 8051(89S52)
Họ vi điều khiển 8051 (còn gọi là họ C51) là một trong những họ vi điều khiển thông dụng
nhất. Đây là các bộ vi điều khiển 8bits, có kiến trúc theo kiểusản xuất theo công nghệ
CMOS, Một số loại vi điều khiển thuộc họ 8051 thông dụng có thể kể ra : AT89C2051(20
chân), AT89C4051(20 chân), AT89C51(40 chân), AT89C52(40 chân), AT89S51(40 chân),
AT89S52(40 chân), AT89S53(40 chân)
Trong chơng trình môn học này chúng ta tập trung nghiên cứu về bộ vi điều khiển 89S52.
Đây là một bộ vi điều khiển thông dụng, giá rẻ có khá nhiều chức năng hay đặc
biệt là có tích hợp sẵn bộ nạp trên chip giúp sinh viên có thể dễ dàng tự thực hiện các bài thí
nghiệm với chi phí rất thấp.
Cũng trong chơng trình môn học này, ngôn ngữ đợc sử dụng để trình bày các ví dụ ứng
dụng sẽ là ngôn ngữ C.
3
Trng HCN H Ni Khoa in t
Cụ thể họ vi điều khiển 8051 có các đặc điểm sau :
-8 kbyte ROM (đợc lập trình bởi nhà sản xuất chỉ có ở 8051 )
-256 byte RAM
-4 port I/0 8 bit
-3 bộ định thời 16 bit
-Giao tiếp nối tiếp
-64 KB khônh gian bộ nhớ dũ liệu mở rộng
Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lu trữ dữ liệu và mã lệnh
Các thanh ghi sử dụng để lu trữ thông tin trong quá trình xử lý. Khi CPU làm việc nó thay
đổi nội dung các thanh ghi.
b). Chức năng các chân của vi điều khiển 8051
1. Port 0.
5
Trng HCN H Ni Khoa in t
Port 0 gồm 8 chân, ngoài chức năng xuất nhập ra, 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 89S52 giao tiếp với các thiết bị
ngoài có kiến trúc Bus.
Hình 2.4. Cấu trúc của các chân trên port 0
2. Port 1.
Đối với 8051, chức năng duy nhất của Port 1 là chức năng xuất nhập, cũng nh các Port
khác, Port 1 có thể xuất nhập theo bit và theo byte.
Hình 2.5. Cấu trúc của các chân trên port 1 và port 3.
Riêng dòng 89Sxx, 4 chân P1.4, P1.5, P1.6, P1.7 đợc dùng để nạp ROM theo chuẩn
ISP, 2 chân P1.0 và P1.1 đợc dùng cho bộ Timer 2. Trên hình 2.3 là một sơ đồ kết nối 89S52
với cổng song song để nạp chơng trình (file mã - *.hex) từ máy tính.
Trên sơ đồ này các đờng dẫn DO, DI, SCK, RTS lần lợt là các đờng dẫn dữ liệu lên
máy tính, xuống nối tiếp từ máy tính, đờng dẫn xung Clock và đờng dẫn xung Reset từ máy
tính xuống sau khi nạp xong chơng trình.
3. Port 2.
Port 2 có hai tác dụng, hoặc làm nhiệm vụ là cổng xuất nhập, hoặc là phần byte
cao của bus địa chỉ 16-bit cho các thiết kế hệ thống cần nhiều hơn 256 byte bộ nhớ ngoài.
6
Trng HCN H Ni Khoa in t
Hình 2.7. Cấu trúc của các chân trên port 2
4. Port 3
7
Trng HCN H Ni Khoa in t
/EA phải đợc nối đất. Các chip họ 8051 có EPROM còn nhận chân /ALE làm chân
nhận điện áp cấp điện 12V cho việc lập trình (nạp) cho EPROM nội.
8. RST (Reset).
Dùng để thiết lập lại trạng thái ban đầu của hệ thống hay gọi tắt là reset hệ thống
khi đợc treo ở mức logic là ít nhất 2 chu kỳ máy. Các thanh ghi bên trong của 8051
đợc nạp các giá trị thích hợp cho việc khởi động lại hệ thống.
9. XTAL1, XTAL2.
Mạch dao động bên trong chip 8051 đợc ghép với thạch anh bên ngoài ở 2 chân
XTAL1 v XTAL2. Thờng tần số l 12MHz v các tụ ổn định có giá trị trong khoảng
30pF 33 pF.
10 Vcc,GND:
89S52 nối với dơng nguồn một chiều điện áp đầu vào 4V đến 5.5V qua chân 40 còn âm
nguồn nối với mát(GND) qua chân 20.
c). Các thanh ghi:
1. Các thanh ghi Port xuất nhập:
Các Port cua 8051 bao gồm port 0 ỏ địa chỉ 80H.port1 ỏ dịa chỉ 90H,port2 ỏ địa chỉ
A0H và port 3 ỏ địa chỉ B0H.Tất cả các port dều đợc địa chỉ hoá tùng bit .Điều đó cung cấp
một khả năng giao tiếp thuận lợi.
2.Các thanh ghi TIMER:
8051 chứa 2 bộ định thời đếm 16bit đợc dùng trong việc định thời hoạc đém sự
kiện.Timer0 ở địa chỉ 8AH(TLO:byte thấp) và 8CH (THO:byte cao)Timer1 ở địa chỉ 8BH
(TL1 byte thấp)và 8DH(TH1:byte cao).Việc vận hành của Timer đợc set bởi thanh ghi
Timer MODE(TMOD)ở địa chỉ 89H cà thanh ghi điều khiển timer(TCON)ở địa chỉ
88H.Chỉ có TCON đợc địa chỉ hoá từng bit.
3.Các thanh ghi Port nối tiếp:
8051 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với các thiết bị nối
tiếp nh máy tính, Modern hoặc cho việc giao tiếp với các IC khác có giao tiếp nối tiếp (có
TCON.2 IT1 8AH Cờ ngắt do Timer 1
TCON.1 IE0 89H Cờ báo ngắt do Timer 0
TCON.0 IT0 88h Cờ ngắt do Timer 0
9
Trng HCN H Ni Khoa in t
C. Các chế độ timer.
.Chế độ 0,chế độ timer 13bit
Để tơng thích với 8048(có trớc 8051), ba bit cao của TLX(TL0 /hoặc TL1) không dùng
Xung nhịp timer
Cờ báo tràn
chế độ 1-chế độ timer 16bit.
Hoạt động nh timer 16 bit đầy đủ.Cờ báo tràn la bit TFx trong TCON có thế đọc hoạc ghi
bằng phần mềm .
MSB của giá trị trong các thanh ghi timer là bit7 của THx và LBS là bit 0 của TLx .Các
thanh ghi timer (TLx/THx)có thể đọc hoặc ghi bắt cứ lúc nào bằng phần mềm.
Xung nhịp
timer
Cờ báo tràn
.Chế độ 2 chế độ 8 bit tự nạp lại
TLx hoạt động nh một timer 8 bit,trong khi đó THx vẫn giữ nguyên giá trị đợc nạp .Khi số
đếm tràn từ ffH đến 00H,không những cờ timer đợc set mà giá trị trong THx động thời đợc
nạp vào TLx .Việc đếm tiếp tục từ giá trị naỳ đến ffH xuống 00Hvà nạp lại CHế độ này rất
thông dụng vì sự tràn timer sảy ra trong khoảng thời gian nhất định và tuần hoàn khi đã
khởi động TMOD và THx.
-Bit 0 của chế độ port nối tiếp
-Bit 1 của chế độ port nối tiếp
-Bit 2 của chế độ 2 nối tiếp
Cho phép truyền thông đa xử lý trong các chế
độ 2 và 3 ,RI sẽ không bị tác động
Nếu bit thứ 9 thu đợc bằng 0
-cho phép thu (đặt bằng 1)
-bit 8 phát bit thứ 9 đợc phát các chế độ 2 và 3
-bit 8 thu bit thứ 9
-cờ ngắt phát ,đặt lên 1 khi kết thúc phát
-cờ ngắt thu ,đặt lên 1 khi kết thúc nhận
Bảng 2.7:Tóm tắt thanh ghi chế độ port nối tiếp SCON.
Các chế độ hoạt động của PORT nối tiếp
Port nối tiếp có 4 chế độ hoạt động :
1) Chế độ 0 :
2) Chế độ 1 : -
3) Chế độ 2 :
4) Chế độ 3 :
7. Các ngắt của 8051:
Các ngắt Timer.
Các ngắt cổng nối tiếp.
Các ngắt ngoài.
Chơng II
Bộ hen giờ cho rơle hiển thị bằng led 7 đoạn
I. Các thiết bị sử dụng trong mạch:
Rơle: sử dụng rơle 12 vôn DC. để kích mở cho rơle này, cần một transistor mở
cho rơle này, sử dụng C828 để kích mở Role này.
Led 7 thanh: dùng để hiển thị thời gian còn lại của thời gian còn lại. Chúng ta sử
dụng led 7 thanh kép gồm 4 led đơn gắn trên cùng một con led . gọi là MPX4-CA
12
giây=0?
sai
Cấp nguồn cho cuộn hút
Rơle, đồng thời bật đèn báo
đã hết giờ.
đún
g
Trng HCN H Ni Khoa in t
Nguyên lý hoạt động: dựa vào một trong ba nội dung cơ bản của Vi điều khiển là
Timer-bộ định thời. Dựa vào tần số xung nhịp của thạch anh là 12Mhz, qua các bộ
chia tần chúng ta có tần số xung nhịp của một chu kỳ máy là 1/1000ms.
Nạp hệ số chia của timer 1 là -1000, chúng ta có hàm trễ 1ms. để làm hàm hiển thị
cho 8 led 7 đoạn.
Cộng với tốc độ tràn của timer 0 ta có bộ đếm lùi thời gian với chu kỳ là 1/10s.
Trên hệ thống có nút chỉnh thời gian tăng hoặc giảm giờ, phút, giây. Kết thúc việc
chỉnh thời gian là bắt đầu đếm lùi thời gian cho tới khi về 0. Khi đó, Rơle sẽ đợc bật
và ta sử dụng các tiếp điểm NC và NO của rơle để điều khiển thiết bị điện.
Đồng hồ chạy liên tục cho tới khi phím MENU có sự thay đổi trạng thái, tức là có sự
tác động.
Chơng trình điều khiển của mạch viết bằng phần mềm Kiel C.
II- LƯU Đồ THUậT TOáN:
15
Khởi tạo timer 1 cho hàm đếm số lần tràn, phục vụ hàm trừ thời gian.
Timer 0 cho hàm trễ.
VT=4-chỉnh 1/10
giây
Tăn
g
giả
{ role=0;
set_time();
while (1)
{
16
VT=3-chỉnh giây
VT=5: bắt đầu cho phép ngắt = timer 1. bắt đầu
( tiếp tục) đếm lùi thời gian
Trường ĐHCN Hà Nội Khoa điện tử
if (menu ==0)
{
while (menu ==0);
EA=0;TR1=0;
vi_tri =vi_tri+1;
if (vi_tri ==5)
{vi_tri=0;
IE=0X88;
EA=1;
TF1 =0;TR1=1;
}
}
scan_vitri();
}
}
void set_time (void) // dat gia tri ban dau cho cac led 7 thanh
{
gio = 1; giay1=5;
phut = 1;
giay = 10;
clear();
P2=0X7F; //1
P0=so[gio/10]; delay_ms(2);
clear();
P2=0XBF; //2
17
Trường ĐHCN Hà Nội Khoa điện tử
P0=so[gio%10]; delay_ms(2);
}
void quet_phut (void)
{
clear();
P2=0XDF; //3
P0=so[phut/10];delay_ms(2);
clear();
P2=0XEF; //4
P0=so[phut%10];delay_ms(2);
}
void quet_giay (void)
{
clear();
P2=0XF7; //5
P0=so[giay/10];delay_ms(2);
clear();
P2=0XFB; //6
P0=so[giay%10];delay_ms(2);
}
void quet_giay1(void)
{
phut = phut +1;
if (phut>=60) phut=0 ;
}
if (giam ==0)
18
Trường ĐHCN Hà Nội Khoa điện tử
{while (giam ==0 );
phut = phut-1;
if (phut==-1) phut=59 ;
}
}
void set_giay (void)
{if (tang==0)
{while (tang==0);
giay=giay+1;
if(giay>=60) giay=0 ;
}
if (giam==0)
{while (giam==0) ;
giay=giay-1 ;
if(giay==-1) giay=59 ;
}
}
void set_giay1 (void)
{ if(tang==0)
{while(tang==0);
giay1=giay1+1;
if (giay1==10) giay1=0;
}
{ phut=59;gio=gio-1;
if (gio==-1)
{gio=phut=giay=giay1=0;
19
Trường ĐHCN Hà Nội Khoa điện tử
role=1; // dong relay
}
}
}
}
}
//======================================================
void ngatT1 (void) interrupt 3 //ham ngat do timer 1
{
TR1=0; TF1=0;
k=k+2;
if(k>=3) // 1/10 S (chinh tan so tang giay1)
{
down_time();
k=0;
}
gio_phut_giay ();
TR1 =1;
}
20
Trng HCN H Ni Khoa in t
Chơng III
Kết luận