TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
Tiểu luận
Thiết kế mô hình Khóa điện tử
hiển thị 6 led 7 đoạn
GVHD: Vũ Thị Thu Hương 1 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
Lời nói đầu
Ngày nay khoa học công nghệ ngày càng phát triển. Cùng với sự phát
triển đó công nghệ tự động hóa ngày càng được ưu tiên đầu tư nghiên cứu
phát triển. Đại đa số các lĩnh vực sản xuất, điều khiển, giám sát, đo lường,…
đều được trang bị hệ thống điều khiển hệ thống tự động hóa. Một trong số vi
mạch được sử dụng đó là Kĩ thuật vi điều khiển. Nhờ this năng ưu việt của bộ
vi điều khiển như: khả năng lập trình phù hợp với thiết kế nhỏ và lớn cũng
như giao tiếp với các thiết bị ngoại vi và máy tính sẽ đem lại sự hoàn hảo, độ
chính xác và tính mềm dẻo cao.
Vi điều khiển quản lý và điều khiển hoạt động của hệ thống thông qua
phần mềm, nhờ vậy ta có thể thay đổi và mở rộng hoạt động một cách dễ
dàng. Vi điều khiển hoạt động theo chương trình đã nạp sẵn, đọc các tín hệu
từ bên ngoài đưa vào sau lưu trữ và xử lí, trên cơ sở đó đưa ra các thông báo,
tín hiệu điều khiển các thiết bị bên ngoài hoạt đông theo đúng thong số và
yêu cầu của hệ thống. Ngoài ra vi điều khiển cũng có mặt nhiều trong các sản
phẩm công nghiệp và tiêu dùng.
Để hiểu được phần nào về chức năng và ứng dụng của vi điều khiển
nhóm em chọn đề tài Thiết kế mô hình Khóa điện tử hiển thị 6 led 7 đoạn
để nghiên cứu và thực hiện.
Nội dung báo cáo gồm 3 phần:
I – Cơ sở lý thuyết
II – Nội dung thiết kế
III – Kết luận
GVHD: Vũ Thị Thu Hương 2 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
Trong quá trình thực hiện đề tài, tuy đã rất cố gắng song do những hạn
chế về thời gian, kiến thức cũng như kinh ngiệm thực tế nên chúng em không
tránh khỏi nhiều thiếu sót. Chúng em rất mong nhận được những ý kiến đóng
góp của thầy cô và các bạn để đề tài của chúng em được hoàn thiện hơn.
Cuối cùng chúng em xin chân thành cảm ơn cô Vũ Thị Thu Hương
cùng các thầy cô giáo bộ môn đã hươngs dẫn tận tình, giúp đỡ chúng em hoàn
thiện đề tài này.
GVHD: Vũ Thị Thu Hương 3 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
Thiết kế mô hình khóa điện tử hiển thị 6 led 7
đoạn.
I – Cơ sở lý thuyết
1 – Giới thiệu tổng quan về họ Vi điều khiển 8051
AT89S52 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS
chất lượng cao, công suất thấp với 4 KB PEROM (Flash Programeable and
erasable read only memory).
Các đặc điểm của 89S52 được tóm tắt như sau:
- 4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghi xóa tới
1000 chu kỳ
- Tần số hoat động từ 0 Hz đến 24 MHz
- 3 mức khóa bộ nhớ lập trình
- 2 bộ Timer/Counter 16 bit
- 128 Byte RAM nội
- 4 Port xuất/nhập (I/O) 8 bit
- Giao tiếp nối tiếp
- 64 KB vùng nhớ mã ngoài
- 64 KB vùng nhớ dữ liệu ngoài
- Xử lý Boolean (hoạt động trên bit đơn)
- 210 vị trí nhớ có thể định vị bit
- 4μs cho hoạt động nhân hoặc chia
a – Sơ đồ khối và sơ đồ chân của AT89S52
GVHD: Vũ Thị Thu Hương 4 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
Hình 1 – Sơ đồ khối của AT89S52
Hình 2 – Sơ đồ chân của AT89S52
GVHD: Vũ Thị Thu Hương 5 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
OTHER
REGISTER
128 byte
RAM
128 byte
RAM
8032\8052
ROM
0K:
8031\8032
4K:8951
8K:8052
INTERRUPT
CONTROL
INT1\
INT0\
SERIAL PORT
TEMER0
TEMER1
TEMER2
8032\8052
CPU
OSCILATOR
BUS CONTROL
I/O PORT
SERIAL
PORT
EA\
RST
ALE\
PSEN\
P
0
P
1
P
2
P
3
Address\Data
TXD RXD
TEMER2
8032\8052
TEMER1
TEMER1
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
b – Chức năng các chân của AT89S52
+ Port 0 (P0.0 – P0.7 hay chân 32 – 39): 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 AT89S52 giao tiếp với thiết bị ngoài có kiến trúc bus.
Hình 3 – Port 0
+ Port 1 (P1.0 – P1.7 hay chân 1 – 8): có chức năng xuất nhập theo bit
và byte. Ngoài ra, 3 chân 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.
Hình 4 – Port 1
GVHD: Vũ Thị Thu Hương 6 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
+ Port 2 (P2.0 – P2.7 hay chân 21 – 28): 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 kế
dùng bộ nhớ mở rộng.
Hình 5 – Port 2
+ Port 3 (P3.0 – P3.7 hay chân 10 – 17): mỗi chân trên port 3 ngoài
chức năng xuất nhập ra còn có một số chức năng đặc biệt sau:
Bit Tên Chức năng chuyển đổi
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
GVHD: Vũ Thị Thu Hương 7 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
Hình 6 – Port 3
+ RST (Reset – chân 9): mức tích cực của chân này là mức 1, để reset
ta phải đưa mức 1 (5V) đến chân này với thời gian tối thiểu 2 chu kỳ máy
(tương đương 2µs đối với thạch anh 12MHz.
+ XTAL 1, XTAL 2: AT89S52 có một bộ dao động trên chip, nó
thường được nối với một bộ dao động thạch anh có tần số lớn nhất là 33MHz,
thôn thường là 12MHz.
+ EA (External Access): EA thường được mắc lên mức cao (+5V)
hoặc mức thấp (GND). Nếu ở mức cao, bộ vi điều khiển thi hành chương
trình từ ROM nội. Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ
mở rộng.
+ ALE (Address Latch Enable): ALE là tín hiệu để chốt địa chỉ vào
một thanh ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ. Sau đó các đường
port 0 dùng để xuất hoặc nhập dữ liệu trong nửa chu kỳ sau của bộ nhớ.
+ PSEN (Program Store Enable): PSEN là điều khiển để cho phép bộ
nhớ chương trình mở rộng và thường được nối với đến chân /OE (Output
Enable) của một EPROM để cho phép đọc các bytes mã lệnh. PSEN sẽ ở mức
thấp trong thời gian đọc lệnh. Các mã nhị phân của chương trình được đọc từ
EPROM qua Bus và được chốt vào thanh ghi lệnh của bộ vi điều khiển để giải
GVHD: Vũ Thị Thu Hương 8 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
mã lệnh. Khi thi hành chương trình trong ROM nội, PSEN sẽ ở mức thụ động
(mức cao).
+ Vcc, GND: AT89S52 dùng nguồn một chiều có dải điện áp từ 4V –
5.5V được cấp qua chân 40 (Vcc) và chân 20 (GND).
II Nội Dung
1 – Phần lập trình và mô phỏng
a – Phần lập trình
# include "regx51.h"
#define C1 P1_0
#define C2 P1_1
#define C3 P1_2
#define C4 P1_3
#define H1 P1_4
#define H2 P1_5
#define H3 P1_6
#define H4 P1_7
#define led6 P2_2
#define led5 P2_3
#define led4 P2_4
#define led3 P2_5
#define led2 P2_6
#define led1 P2_7
#define dung P3_6
#define sai P3_7
char key;
long int number_key,key_true;
unsigned char led_code[10]={0x81,0xb7,0xc2,0x92,0xb4,0x98,0x88,0xb3,0x80,0x90};
unsigned char h[6]={0,0,0,0,0,0};
char index =0,set=0,enter =0,clear =0;
void delay();
void ghep_so();
void scan_key();
void ht1(long int number);
GVHD: Vũ Thị Thu Hương 9 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
void scan_key()
{
C1 = 0; C2= 1; C3= 1; C4= 1;
delay();
if( H1 ==0)
{
while( H1 ==0){};
key =1;
h[index] = key;
index = index +1;
}
else if( H2 ==0) {while( H2 ==0){}; key =5; h[index] = key;index = index +1; }
else if( H3 ==0) {while( H3 ==0){}; key =9;h[index] = key;index = index +1; }
else if( H4 ==0) {while( H4 ==0){}; set=1; } //key =13;
C1 = 1; C2 = 0; C3= 1; C4= 1;
delay();
if( H1 ==0) {while( H1 ==0){};key =2; h[index] = key;index = index +1; }
else if( H2 ==0) {while( H2 ==0){};key =6; h[index] = key;index = index +1;}
else if( H3 ==0) {while( H3 ==0){};key =10; h[index] = key;index = index +1;}
else if( H4 ==0) {while( H4 ==0){};key =0; h[index] = key;index = index +1;}
//key =14;
C1 = 1; C2 = 1; C3= 0; C4= 1;
delay();
if( H1 ==0) {while( H1 ==0){};key =3; h[index] = key;index = index +1;}
else if( H2 ==0){while( H2 ==0){}; key =7; h[index] = key;index = index +1;}
else if( H3 ==0) {while( H3 ==0){}; key =11; h[index] = key;index = index +1;}
else if( H4 ==0) {while( H4 ==0){}; clear =1;} //key =15;
C1 = 1; C2 = 1; C3= 1; C4= 0;
delay();
if( H1 ==0) {while( H1 ==0){};key =4; h[index] = key;index = index +1; }
else if( H2 ==0){while( H2 ==0){}; key =8; h[index] = key;index = index +1;}
else if( H3 ==0) {while( H3 ==0){}; key =12; h[index] = key;index = index +1;}
else if( H4 ==0) {while( H4 ==0){}; enter =1; } //key =16;
//number_key = key;
//h[index] = key;
// index = index +1;
if( index > 5) index =0;
}
void ghep_so()
{
number_key = h[0]*100000 + h[1]*10000+ h[2]*1000 +h[3]*100 + h[4]*10 +h[5] ;
}
void ht1(long int number)
GVHD: Vũ Thị Thu Hương 10 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
{
char tramnghin, chucnghin, nghin, tram, chuc, donvi;
tramnghin = number/100000;
chucnghin = (number%100000)/10000;
nghin = (((number%100000)%10000))/1000;
tram = ((((number%100000)%10000))%1000)/100;
chuc = (((((number%100000)%10000))%1000)%100)/10;
donvi = (((((number%100000)%10000))%1000)%100)%10;
P0 = led_code[tramnghin];
led6 =0;
delay();
led6 =1;
P0 = led_code[chucnghin];
led5 =0;
delay();
led5 =1;
P0 = led_code[nghin];
led4 =0;
delay();
led4 =1;
P0 = led_code[tram];
led3 =0;
delay();
led3 =1;
P0 = led_code[chuc];
led2 =0;
delay();
led2 =1;
P0 = led_code[donvi];
led1 =0;
delay();
led1 =1;
}
void main()
{
P1 = 0xFF;
P0 = 0xff;
P2 = 0xff;
P3 = 0x00;
GVHD: Vũ Thị Thu Hương 11 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
number_key =0; key_true = 123456;
dung =0; sai =1;
while(1)
{
scan_key();
ghep_so();
ht1(number_key);
if (set ==1)
{
ghep_so();
key_true = number_key;
set =0;
}
if (enter ==1)
{
if(number_key == key_true)
{
dung =1; sai =0;
}
else
{
dung =0; sai =1;
}
enter =0;
}
if(clear ==1)
{
h[0] =0; h[1] =0;h[2] =0;h[3] =0;h[4] =0; h[5] =0;
number_key=0;
clear=0;
index=0;
}
}
}
void delay()
{
unsigned int i;
for( i=0; i< 500; i++);
}
b – Phần mô phỏng
GVHD: Vũ Thị Thu Hương 12 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
3
– Mạch nguyên lý và mạch in
GVHD: Vũ Thị Thu Hương 13 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
Hình 9 – Sơ đồ mạch nguyên lý
GVHD: Vũ Thị Thu Hương 14 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
Hình 10 – Sơ đồ mạch in
III – Kết luận
1 – Ưu điểm
- Hiển thị đầy đủ rõ nét các kí tự yêu cầu
- Bàn phím linh hoạt
- Có thể thay đổi được mật khẩu
- Mạch có tín hiệu chuông khi đóng mở khóa
- Mạch hiển thị LED 7 đoạn nên dễ dàng cho người sử dụng theo dõi các kí tự
hiển thị dù trong điều kiện thiếu ánh sáng.
- Mạch được thiết kế nhỏ gọn, dễ sử dụng, tiện lợi và có thể dùng nhiều loại
nguồn: pin, acquy, nguồn điện xoay chiều,… nên rất cơ động.
2 – Nhược điểm
- Mật khẩu bị giới hạn ở 6 kí tự
GVHD: Vũ Thị Thu Hương 15 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
- Các kí tự hiển thị chưa được linh hoạt như trên màn hình LCD
3 – Hướng cải tiến, phát triển
- Nghiên cứu, ứng dụng trên các họ vi điều khiển khác
- Tích hợp thêm nhiều tính năng khác như: báo cháy, báo rò khí gas, tiết kiệm
điện năng…
GVHD: Vũ Thị Thu Hương 16 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái
TRƯỜNG ĐHCN HÀ NỘI ĐỒ ÁN MÔN VĐK
KHOA CƠ KHÍ LỚP CĐT2-K5
Mục lục
Trang
I – Cơ sở lý thuyết 3
1 – Giới thiệu tổng quan về họ Vi điều khiển 8051 3
a – Sơ đồ khối và sơ đồ chân của AT89S52 3
b – Chức năng các chân của AT89S52 5
II – Nội dung 11
1– Phần lập trình và mô phỏng 13
a – Phần lập trình 13
b – Phần mô phỏng 16
2
– Mạch nguyên lý và mạch in 17
III – Kết luận 19
1 – Ưu điểm 19
2 – Nhược điểm 19
4 – Hướng cải tiến, phát triển 20
GVHD: Vũ Thị Thu Hương 17 SVTH: Nguyễn Văn Quảng
Lê Duy Tú
Nguyễn Văn Thái