thiết kế đồng hồ số hiển thị bằng 8 led 7 đoạn - Pdf 13

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ế đồng hồ số hiển thị bằng 8 Led 7 đoạn
Sinh viên thực hiên: Đinh Thị Ngần
Đoàn Trọng Linh
Vũ Thị Thu Giáo viên hớng dẫn: Nguyễn Anh Dũng

File ớnh kốm 001.rar
Hà nội -11/2009
1
Trng HCN H Ni Khoa in t

Mục lục
Chơng I: Giới thiệu chung về bộ vi điều khiển
I.Giới thiệu chung về bộ vi điều khiển.
II.Khảo sát bộ vi điều khiển 8051(89s52).
A. Kiến trúc phần cứng của 8051.
B. Sơ đồ,chức năng các chân của vi điều khiển.
1.Chân nguồn.
2.Chân điều khiển.
a.Nhóm vào điều khiển.
b.Nhóm ra điều khiển.

chỳng em rt mong c s gúp ý quý bỏu ca thy cụ v cỏc bn ti cú th
hon thin hơn.

Chỳng em xin chõn thnh cm n!
Sinh viên thực hiện: Đinh Thị Ngần
Đoàn Trọng Linh
Vũ Thị Thu
3
Trng HCN H Ni Khoa in t

Chơng I
Giới thiệu chung về bộ vi điều khiển
I.Giới thiệu chung về bộ vi điều khiển:
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

Đơn vị xử lý trung tâm nhận trực tiếp xung từ bộ dao động, ngoài ra còn có khả năng đa
một tín hiệu giữ nhịp từ bên ngoài.
Chơng trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên trong. Các
nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn của bộ đếm định thời hoặc cũng có
thể là giao diện nối tiếp.
ba bộ định thời 16 Bit hoạt động nh một bộ đếm.
Các cổng(Port 0, Port 1 Port 2 Port 3). Sử dụng vào mục đích điều khiển.
ở cổng 3 có thêm các đờng dẫn điều khiển dùng để trao đổi với bộ nhớ ở bên ngoài, hoặc để
đầu nối giao diện nối tiếp, cũng nh các đờng ngắt dẫn ở bên ngoài.
Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm việc độc lập
với nhau. Tốc độ truyền qua cổng nối tiếp có thể đặt trong vảy rộng và đợc ấn định bằng
một bộ định thời.
Trong vi điều khiển 8051 có hai thành phần quan trọng khác đó là bộ nhớ và các thanh ghi:
Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lu trữ dữ liệu và mã lệnh
6
Trng HCN H Ni Khoa in t

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.Sơ đồ chân, chức năng các chân của họ vi điều khiển 8051(89s52)
Hỡnh 2.S chõn AT89S52
1.Chân nguồn.
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ớimasst(GND) qua chân 20.
2.Chân điều khiển.
a.Nhóm vào diều khiển.
-Xtal1(chân18),Xtal2(chân19):nối tinh thể thạch anh cho phát xung nhịp chu
trình.
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

-WR hay P3.6(chân số 16):đa tín hiệu ghi dữ liệu vào bộ nhớ ngoài.
- RD hay P3.7(chân số 17):đa tín hiệu đọc dữ liệu vào nhóm tín hiệu địa chỉ,dữ liệu.
-Cổng vào,ra địa chỉ/dữ liệu P0 hay P0.0-P0.7:(chân39-32):dùng trao đổi thông tin về
dữ liệu D0-D7 hoặc đa ra các địa chỉ thấp (A0-A7) theo chế độ dồn kênh(kết hợp với
tín hiệu chốt dịa chỉ ALE).
-Cổng vào ra địa chỉ/dữ liệu P2 hay P2.0-P2.7(chân21-28) dùng trao đổi thông tin
song song về dữ liệu(D0-D7)hoặc đua ra địa chỉ cao(A8-A15).
-Cổng vào ra dữ liệu P1 hay P1.0-P1.7(chân1-8)dùng trao đổi thông tin song song dữ
liệu(D0-D7).
-Cổng vào ra P3 hay(P3.0-P3.7)/:chân 10-17:
P3.0(chân10):đa vào tín hiệu nhận tin nối tiếp RXD.
P3.1(chân11):đua ra tín hiệu truyền tin nối tiếp TXD
/INTO hay P3.2(chân12) tín hiệu vào gây ngăt 0 của vi điều khiển.
/INT1 hay P3.3(chân13) tín hiệu vào gây ngắt 1 của vi điều khiển.
T0 hay P3.4(chân14) tịn hiệu vào đếm cho timer 0/counter 0 cho vi điều khiển
8051/8052.
T1 hay P3.5(chân15) tín hiệu vào đếm cho timer1
WR hay P3.6 (chân16) đa tín hiệu ghi vào bộ nhớ ngoài.
RD hay P3.7(chân17) đua tín hiệu đọc vào bộ nhớ ngoài.
-T2 hayP1.0(chân1) tín hiệu vào đếm cho timer 2/counter2.
8
Trường ĐHCN Hà Nội Khoa điện tử

-T2EX(ch©n2) tÝn hiÖu vµo g©y ng¾t 2 cña vi ®iÒu khiÓn.
-Cæng vµo/ra P3 cßn dïng ®Ó trao ®æi th«ng tin vÒ d÷ liÖu D7-D0
Díi ®©y lµ cÊu tróc cña c¸c ch©n trªn port0,port1vµ port3,port2
H×nh 3. CÊu tróc cña c¸c ch©n trªn port 0(P0.0-P0.7)
H×nh 4. CÊu tróc cña c¸c ch©n trªn port 1 vµ port 3(P1.0-P1.7vµ P3.0-P3.7)
9
Trng HCN H Ni Khoa in t

.Đếm sự kiện
.Tạo tốc độ BAUD cho Port nối tiếp trong 8051
a) Thanh ghi chế độ(TMOD)
Thanh ghi TMOD chứa 2 nhóm 4bit dùng để đặt chế dộ làm việc cho timer0 và timer1.
b) Thanh ghi điều khiển timer (TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer 0 và timer 1.
Bit Ký hiệu địa chỉ Mô tả
TCON.7 TF1 8FH Cở báo tràn TIMER 1. Đợc đặt bởi phần cứng, khi
tràn đợc xóa bằng phần mềm, hay phần cững khi bộ
xử lý chỉ đến chơng trình phục vụ ngắt
TCON.6 TR1 8EH Bit điều khiển timer 1 chạy, đặt và xóa bằng phần
mềm.
11
Trng HCN H Ni Khoa in t

TCON.5 TF0 8DH Cờ báo tràn Timer 0, tơng tự nh Timer 1.
TCON.4 TR0 8CH Bit điều khiển chạy cho Timer 0. đặt xóa bằng phần
mềm.
TCON.3 IE1 8BH Cờ báo ngắt 1 bên ngoài.
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
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 .

TF1).
13
TFx
TLx THx
(5 bit) (8 bit)
Trng HCN H Ni Khoa in t

6. Hoạt động port nối tiếp.
Bit ký hiệu địa chỉ Mô tả
SCON.7 SM0 9FH
SCON.6 SM1 9EH
SCON.5 SM2 9DH
SCON.4 REN 9CH
SCON.3 TB8 9BH
SCON.2 RB8 9AH
SCON.1 TI 99H
SCON.0 RI 98H
-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
14
Trng HCN H Ni Khoa in t


không đợc cấp nguồn. Tuy nhiên do đặc tính lu ảnh trên võng mạc của mắt
ngời mà ta nhìn thấy tất cả các led đang hoạt động.
Ngoài các linh kiện trên, ta còn dùng tới 4 nút nhấn,nguồn pin dự phòng, các
điện trở, các transistor .
Sử dụng tran thuận NPN(A1015) để kích mở cho tran vì có đặc tính hút dòng
( cấp nguồn gián tiếp qua tran)
2tụ và thạch anh12M để tạo xung.
16
Trường ĐHCN Hà Nội Khoa điện tử

17
Kiểm tra
phím MODE
có bấm
không
Chế độ hiển thị
ngày tháng năm
Chế độ hiển thị
giờ phút giây
đếm giây = số
lần tràn timer1
Kiểm tra
phím menu
Bấm?
Trng HCN H Ni Khoa in t

II- LƯU Đồ THUậT TOáN:
unsigned char date_mon (unsigned char month, unsigned char year );
void delay_ms (unsigned int time);
void clear (void);
void quet_gio (void);
void quet_phut (void);
void quet_giay (void);
void gio_phut_giay (void);
void quet_ngay (void);
void quet_thang (void);
void quet_nam (void);
void ngay_thang_nam (void);
void scan_mode (void);
void dat_gio (void);
void dat_phut (void);
void dat_giay(void);
void dat_ngay (void);
void dat_thang (void);
void dat_nam (void);
19
Trường ĐHCN Hà Nội Khoa điện tử

void scan_vitri (void);
void up_date (void);
void up_time (void);
//===========================================
=======
void main (void)
{
set_reg();
while (1)

20
Trường ĐHCN Hà Nội Khoa điện tử

TR1 = 1 ;
TF1 = 1 ;
}
unsigned char date_mon (unsigned char month, unsigned char year )
{
unsigned char date_m; //ham tinh toan cho nam nhuan
switch (month)
{
case 1: date_m = 31 ; break;
case 2: if ((year %4)==0)
date_m = 28;
else
date_m = 29 ; break;
case 3: date_m = 31 ; break;
case 5: date_m = 31 ; break;
case 7: date_m = 31 ; break;
case 8: date_m = 31 ; break;
case 10: date_m = 31 ; break;
case 12: date_m = 31 ; break;
case 4: date_m = 30 ; break;
case 6: date_m = 30 ; break;
case 9: date_m = 30 ; break;
case 11: date_m = 30 ; break;
}
return (date_m);
}
///////////////////////////////

{
clear();P2=0XEF; //4
P0=so[phut/10];delay_ms(2);
clear();P2=0XF7; //5
P0=so[phut%10];delay_ms(2);
}
void quet_giay (void)
{
clear();P2=0XFD; //7
P0=so[giay/10];delay_ms(2);
clear();P2=0XFE; //8
P0=so[giay%10];delay_ms(2);
}
void gio_phut_giay (void)
{
quet_gio();
clear(); P2=0XDF; //3
P0=0XBF; delay_ms(2);
quet_phut();
clear();P2=0XFB; //6
P0=0XBF; delay_ms(2);
quet_giay();
}
22
Trường ĐHCN Hà Nội Khoa điện tử

void quet_ngay (void)
{
clear();P2=0X7F; //1
P0=so[ngay/10];delay_ms(2);

{
if ((logic_mode==1) && (mode==0))
{
while (mode==0);
logic_mode=0;
23
Trường ĐHCN Hà Nội Khoa điện tử

}
if ((logic_mode==0) && (mode==0))
{
while (mode==0);
logic_mode=1;
}
}
//===========================================
=======
void dat_gio (void)
{if (up_ ==0)
{while (up_ ==0);
gio = gio+1;
if (gio>=24) gio = 0;
}
if (down_ ==0)
{while (down_ ==0);
gio = gio -1;
if (gio==0) gio=24 ;
}
}
void dat_phut (void)

if (ngay >(date_mon (thang, nam)))ngay = 1;
}
if (down_ ==0)
{while (down_ ==0);
ngay = ngay -1;
if (ngay==0) ngay = date_mon (thang,nam);
}
}
void dat_thang (void)
{if (up_ ==0)
{while (up_ ==0);
thang = thang +1;
if (thang >12) thang =1;
}
if (down_ ==0)
{while (down_ ==0);
thang = thang -1;
if (thang == 0) thang=12;
}
}
void dat_nam (void)
{if (up_ ==0)
{while (up_ ==0);
nam = nam +1;
if (nam>99) nam=0;
}
if (down_ ==0)
{while (down_ ==0);
25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status