Professional Documents
Culture Documents
Hà Nội, 2022
Mục lục
Lời nói đầu............................................................................................................3
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG KHÓA SỐ ĐIỆN TỬ.................4
1.1 Sơ đồ khối và chức năng các khối...............................................................4
1.2 Nguyên lý hoạt động....................................................................................5
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT......................................................................6
2.1 Tổng quan về vi điều khiển 8051................................................................6
2.2 Tổng quan về LCD....................................................................................12
2.2.1 Cấu tạo.................................................................................................12
2.2.2 Chức năng các chân.............................................................................13
2.3 Tổng quan về bàn phím.............................................................................18
CHƯƠNG 3: THIẾT KẾ MẠCH VÀ THI CÔNG.............................................19
3.1 Lưu đồ thuật toán.......................................................................................19
3.2 Mạch mô phỏng.........................................................................................20
3.4 Mạch in......................................................................................................23
3.5 Mạch 3D....................................................................................................24
3.6 Code...........................................................................................................25
3.7 Kết luận......................................................................................................33
Lời nhận xét của thầy cô:....................................................................................34
Nhó m: 10 Page 2
Lời nói đầu
Ngành công nghệ kỹ thuật không ngừng phát triển, việc ứng dụng vi điều khiển
ngày càng được sử dụng rộng rãi trong lĩnh vực dân dụng và công nghiệp, các
thiết bị điện tử là một phần gắn với cuộc sống con người trong xã hội hiện đại,
hệ thống kiểm soát bảo vệ an ninh cũng trong xu thế đó, phần lớn hiện tại các
khóa sử dụng hiện nay chủ yếu là khóa cơ khí, nhưng trong công việc có bảo
mật , giám sát an ninh và giới hạn người vào, thì việc ứng dụng khóa điện tử vào
các cơ quan, nhà máy là một phương án có hiệu quả cao. Ở đây chúng em xin
giới thiệu về đề tài về khóa điện tử với một số yêu cầu cơ bản của một thiết bị
khóa thông dụng:
Trong báo cáo môn thiết kế mạch điện sử dụng máy tính này,chúng em chọn
đề tài: “Thiết bị khóa số điện tử”
Sau một thời gian học tập và rèn luyện, với sự chỉ bảo tận tình của cô giáo Lại
Hồng Nhung cùng sự trợ giúp của các anh chị khóa trên, các bạn trong lớp và
các tài liệu có liên quan, chúng em đã hoàn thành xong đề tài.
Báo cáo đã hoàn thành xong, nhưng không thể tránh nhiều thiếu sót mong quý
thầy cô giáo thông cảm và chỉ bảo thêm để đề tài có thể ứng dụng rộng rãi trong
thực tế. Em xin chân thành cảm ơn các thầy cô!
Nhó m: 10 Page 3
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG KHÓA SỐ
ĐIỆN TỬ
Hình 1: Sơ đồ khối
Bàn phím
Bàn phím gồm các nút. Mỗi nút là một bộ phận đóng mở bằng cơ khí. Các mã
của bàn phím tạo ra có thể được tạo ra trực tiếp hoặc bằng phép quét hàng và
quét cột.
Bàn phím gồm 16 phím được xắp xếp theo kiểu 4x4( với 4 cột và 4 dòng)
Thực hiện chức năng nhập các dữ liệu đưa đến vi điều khiển và bao gồm thao
tác nhập mật khẩu, thay đổi mật khẩu, mở cửa, khóa cửa
Ban đầu:
o LCD hiển thị nhập mật khẩu, người sử dụng nhập mã thông qua bàn
phím, nếu nhập đúng thì LCD hiển thị “ CHINH XAC, MO CUA SAU 5S”, nếu
nhập sai thì LCD hiển thị: “ NHAP SAI MAT KHAU, K MO DUOC CUA”.
Nhó m: 10 Page 5
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
- 4 kbyte ROM (được lập trình bởi nhà sản xuất chỉ có ở 8051)
Nhó m: 10 Page 6
Hình 3: Sơ đồ cấu tạo 89C51
Phần chính của vi điều khiển 8051 là bộ xử lí trung tâm (CPU: central
processing unit ) bao gồm :
- Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia
- Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời gian
và logic. EA\ RST\ PSEN\ ALE\ P0\ P1\ P2\ P3
Nhó m: 10 Page 7
- Bộ nhớ dữ liệu (RAM) tồn tại độc lập so với bộ nhớ chương trình. Họ vi điều
khiển 8051 có bộ nhớ dữ liệu tích hợp trên chip nhỏ nhất là 128byte và có thể
mở rộng với bộ nhớ dữ liệu ngoài lên tới 64 kByte.
Vi điều khiển 8051 có 32 trong 40 chân có chức năng như là các cổng I/O, trong
đoa 24 chân được sử dụng với hai mục đích. Nghĩa là ngoài chức năng cổng I/O,
mỗi chân có công dụng kép này có thể là một đường điều khiển của Bus địa chỉ
hay Bus dữ liệu hoặc là mỗi chân hoạt động một cách độc lập để giao tiếp với
các thiết đơn bit như là công tắc, LED, transistor…
❖ Port 0:
- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.
• Port xuất nhập dữ liệu (P0.0 - P0.7) −> không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) −> có sử dụng
bộ nhớ ngoài.
Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các
điện trở kéo lên bên ngoài.
- Ở chế độ mặc định (khi reset) thì các chân Port 0 (P0.0 - P0.7) được cấu hình
là port xuất dữ liệu. Muốn các chân Port 0 làm port nhập dữ liệu thì cần phải lập
Nhó m: 10 Page 8
trình lại, bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc
khi bắt đầu nhập dữ liệu từ port (vấn đề này được trình bày ở phần kế tiếp).
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò là ngõ vào của dữ
liệu (D0 – D7).
❖ Port 1: là một port I/O chuyên dụng trên các chân 1-8 của MC8051.
Chúng được sử dụng với một múc đích duy nhất là giao tiếp với các thiết bị
ngoài khi cần thiết.
❖ Port 2:
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
• Port xuất nhập dữ liệu (P2.0 – P2.7) −>không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte cao (A8 – A15) ,Có sử dụng bộ nhớ ngoài
- Ở chế độ mặc định (khi reset) thì các chân Port 2 (P2.0 – P2.7) được cấu
hình là port xuất dữ liệu. Muốn các chân Port 2 làm port nhập dữ liệu thì
cần phải lập trình lại, bằng cách ghi mức logic cao (mức 1) đến tất cả các
bit của port truớc khi bắt đầu nhập dữ liệu từ port (vấn đề này được trình
bày ở phần kế tiếp).
- Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vào của
địa chỉ byte cao (A8 – A11) và các tín hiệu điều khiển.
❖ Port 3:
- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
• Port xuất nhập dữ liệu (P3.0 – P3.7) −> không sử dụng bộ nhớ ngoài
hoặc các chức năng đặc biệt.Các chức năng đặc biệt của Port 3 được ghi
trong bảng sau:
Nhó m: 10 Page 9
P3.0 RXD Dữ liệu nhận cho Port nối tiếp
❖ Chân 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 sau chu kỳ của chu kỳ bộ
nhớ.Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và
có thể được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên 8051 là
12MHz thì ALE có tần số 2MHz. Chân này cũng được làm ngõ vào cho xung
lập trình cho EPROM trong 8051.
Nhó m: 10 Page 10
❖ Chân RST:
- RST (Reset): thiết lập lại, chân số 9.
- Chức năng:
● Là tín hiệu cho phép đặt lại trạng thái ban đầu chp hệ thống.
● Là tín hiệu nhập, tích cực mức cao. RST = 0 => 8051 hoạt động bình
thường. RST = 1 => 8051 được thiết lập lại trạng thái ban đầu.
- Chức năng:
● Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài,
cung cấp tín hiệu xung clock cho chip hoạt động.
● XTAL1 − ngõ vào mạch tạo xung clock trong chip.
● XTAL2 − ngõ ra mạch tạo xung clock trong chip.
LCD gồm 2 bề mặt dạng rãnh, giữa 2 bề mặt này là 1 lớp Thạch Anh lỏng
(Liquid Crystal).
Để có 1 điểm tối trên LCD: ánh sáng phát ra từ bên trong LCD sẽ đi qua bề mặt
rãnh thứ nhất (lớp lọc đơn cực), sau đó ánh sáng đi qua lớp Liquid Cristal (lớp
này được phân cực nên ánh sáng qua nó mà không bị xoắn), sau đó ánh sáng qua
bề mặt rãnh thứ 2 lớp phân cực thứ 2 (lớp lọc đơn cực), ánh sáng không ló ra
được khỏi lớp này (bị chặn lại hoàn toàn) ta thấy 1 điểm tối trên màn hình LCD.
Để có 1 điểm sáng trên LCD: quá trình đi tương tự nhưng khác ở chỗ ánh sáng
qua lớp Liquid Cristal không được phân cực nên ánh sáng bị xoắn 90 độ, nhờ
thế mà đi qua được bề mặt rãnh thứ 2 (lớp lọc đơn cực) .Ta thấy 1 điểm sáng
trên LCD.
Nhó m: 10 Page 12
2.2.2 Chức năng các chân
Chức năng
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này
với GND của mạch điều khiển
2 Vdd Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân
này với Vcc=5V của mạch điều khiển
3 Vee Chân này dùng để điều chỉnh độ tương phản của LCD
Nhó m: 10 Page 13
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên
bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung
cho phép của chân E.
Tám đường của bus dữ liệu dùng để trao đổi thông tin với
MPU. Có 2 chế độ sử dụng 8 đường bus này :
Chân VDD, VSS và VEE: Các chân VDD, VSS và VEE: Cấp dương
nguồn 5V và đất tương ứng thì VEE được dùng để điều khiển độ tương phản của
LCD.
Chân chọn thanh ghi RS (Register Select): Có hai thanh ghi trong LCD,
chân RS(Register Select) được dùng để chọn thanh ghi, như sau: Nếu RS = 0 thì
thanh ghi mà lệnh được chọn để cho phép người dùng gửi một lệnh chẳng hạn
như xoá màn hình, đưa con trỏ về đầu dòng v.v… Nếu RS = 1 thì thanh ghi dữ
liệu được chọn cho phép người dùng gửi dữ liệu cần hiển thị trên LCD.
Chân đọc/ ghi (R/W): Đầu vào đọc/ ghi cho phép người dùng ghi thông
tin lên LCD khi R/W = 0 hoặc đọc thông tin từ nó khi R/W = 1.
Chân cho phép E (Enable): Chân cho phép E được sử dụng bởi LCD để
chốt. dữ liệu của nó. Khi dữ liệu được cấp đến chân dữ liệu thì một xung mức
Nhó m: 10 Page 14
cao xuống thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân dữ
liêu. Xung này phải rộng tối thiểu là 450ns.
Chân D0 - D7: Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông tin lên
LCD hoặc đọc nội dung của các thanh ghi trong LCD. Để hiển thị các chữ cái và
các con số, chúng ta gửi các mã ASCII của các chữ cái từ A đến Z, a đến f và
các con số từ 0 - 9 đến các chân này khi bật RS = 1. Cũng có các mã lệnh mà có
thể được gửi đến LCD để xoá màn hình hoặc đưa con trỏ về đầu dòng hoặc nhấp
nháy con trỏ.
Chú ý:Chúng ta cũng sử dụng RS = 0 để kiểm tra bít cờ bận để xem LCD có sẵn
sàng nhân thông tin. Cờ bận là bít D7 và có thể được đọc khi R/W = 1 và RS = 0
như sau:
Nếu R/W = 1, RS = 0 khi D7 = 1 (cờ bận 1) thì LCD bận bởi các công việc bên
trong và sẽ không nhận bất kỳ thông tin mới nào. Khi D7 = 0 thì LCD sẵn sàng
nhận thông tin mới.
Lưu ý :Chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ dữ liệu nào lên LCD.
Nhó m: 10 Page 15
Bật tắt 0 0 0 0 0 0 1 D C B Bật tắt hiển thị, con 40us
hiển trỏ; bật tắt chế độ
thị nhấp nháy con trỏ
DDR
AM
Nhó m: 10 Page 16
DDR
AM
DDR
AM
Nhó m: 10 Page 17
C0 Ép con trỏ về đầu dòng thứ hai
Bàn phím là 1 ma trận phím. Một phím được nhấn và thả được xác định thông
qua hàng và cột trong ma trận phím.
Nhó m: 10 Page 18
CHƯƠNG 3: THIẾT KẾ MẠCH VÀ THI CÔNG
Nhó m: 10 Page 19
3.2 Mạch mô phỏng
h4 h3 h2 h1
U2
VCC
c4 c3 c2 c1 5.0V
U1
VDD 1 40
P1B0T2 VCC
2 39
5.0V P1B1T2EX P0B0AD0
VCC
GND
3 38
CV
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
P1B2 P0B1AD1
E
4 P1B3 P0B2AD2 37
5 P1B4 P0B3AD3 36 R1
C7 6 P1B5MOSI P0B4AD4 35
7 P1B6MISO P0B5AD5 34
R2 8 P1B7SCK P0B6AD6 33 3kΩ
9 RST P0B7AD7 32
10 P3B0RXD EAVPP 31
10µF 10µΩ 11 P3B1TXD ALEPROG 30
12 P3B2INT0 PSEN 29
13 P3B3INT1 P2B7A15 28
14 P3B4T0 P2B6A14 27
15 P3B5T1 P2B5A13 26
16 P3B6WR P2B4A12 25
C5 17 P3B7RD P2B3A11 24
18 23
19
XTAL2 P2B2A10
22 VCC
XTAL1 P2B1A9
20 21
GND P2B0A8 5.0V
1µF X1
C6 8051 R3
220Ω
1µF HC-49/U_15MHz LED1
led
c4 c3 c2 c1 K1
7 8 9 +
4 5 6 -
NUMERIC_KEYPAD_4X4
1 2 3 *
h4 h3 h2 h1 C 0 = /
Khối xử lý trung tâm với 8051 có nhiệm vụ là nhận biết tín hiệu thu được từ bàn
phím. Sau đó xử lý các tín hiệu đó và xuất ra các tín hiệu điều khiển thích hợp
để điều khiển hệ thống theo chương trình lập sẵn.
Nhó m: 10 Page 20
Địa chỉ chức năng kết nối của hệ thống xử lý trung tâm như sau:
P3.0- RS
P3.1-RW
P1.0- Hàng 1
P1.1- Hàng 2
P1.2- Hàng 3
P1.3- Hàng 4
P1.4- Cột 1
P1.5- Cột 2
P1.6- Cột 3
P1.7- Cột 4
Bộ dao động thạch anh có tác dụng tạo xung nhịp với tần số 12MHz cho VĐK
hoạt động. Hai đầu này được nối vào 2chân XTAL1 và XTAL2 của VĐK.
Bộ RESET có tác dụng đưa vi điều khiển về trạng thái ban đầu. Khi nút Reset
được ấn điện áp +5V từ nguồn được nối vào chân Reset của vi điều khiển được
chạy thẳng xuống đất lúc này điện áp tại chân vi điều khiển thay đổi đột ngột về
0, VĐK nhận biết được sự thay đổi này và khởi động lại trạng thái ban đầu cho
hệ thống.
Nhó m: 10 Page 21
LCD được sử dụng là 16x2 với 2 dòng và hiển thị 4x4
P3.0- RS
P3.1-RW
Bàn phím
c4 c3 c2 c1 K1
7 8 9 +
4 5 6 -
NUMERIC_KEYPAD_4X4
1 2 3 *
h4 h3 h2 h1 C 0 = /
Người dùng nhập mã thông qua bàn phím và bàn phím là thiết bị đầu vào được
kết nối với vi điều khiển, cung cấp tín hiệu cho bộ xử lý trung tâm, sau khi phân
tích tính hiệu và so sánh thì cho ra tín hiệu điều khiển tương ứng.
Bàn phím được dùng bằng phương pháp quét phím theo hàng và cột.
Hàng 1 7 8 9 +
Hàng 2 4 5 6 -
Hàng 3 1 2 3 *
Hàng 4 C 0 = /
Với :
Nhó m: 10 Page 22
P1.0- Hàng 1 P1.4- Cột 1
3.4 Mạch in
Nhó m: 10 Page 23
3.5 Mạch 3D
Mặt trước
Mặt sau
Nhó m: 10 Page 24
3.6 Code
#include <htc.h>
#include <string.h>
#define RS P30
#define E P31
#define lcd_data P2
#define bat 0
#define tat 1
void mocua();
void dongcua();
void mocua()
int sv;
Nhó m: 10 Page 25
for(sv=0;sv<50;sv++) //dong cua
led=1;
delay_ms(1);
led=0;
delay_ms(19);
void dongcua()
int sv;
led=1;
delay_ms(2);
led=0;
delay_ms(18);
/************************************/
unsigned char code ma_nut[16]={ //Khai bao mang ten nut nhan
'+','9','8','7',
'-','6','5','4',
'*','3','2','1',
Nhó m: 10 Page 26
'/','=','0','c'
};
return 0;
row0=row1=row2=row3=1;
if(r==0)row0=0;
else if(r==1)row1=0;
else if(r==2)row2=0;
else if(r==3)row3=0;
if(!col0)c=1;
else if(!col1)c=2;
else if(!col2)c=3;
else if(!col3)c=4;
return c;
unsigned char get_key(){ //Ham tra ve vi tri nut 1-16, =0 la khong nhan
Nhó m: 10 Page 27
unsigned char row,col;
if(check_but())
delay_ms(1);
if(check_but()){
for(row=0;row<4;row++){
while(t--);
for(i=0;i<t;i++)
for(j=0;j<125;j++);
void LCD_en(void){
Nhó m: 10 Page 28
E=1;
delay_us(3);
E=0;
delay_us(50);
RS=1;
lcd_data=data;
LCD_en();
RS=0;
lcd_data=cmd;
LCD_en();
while(str[i]!=0)
Nhó m: 10 Page 29
LCD_data(str[i]);
i++;
//ham xoa man hinh : lenh 0x01 , can 1.57ms de hoan thanh
void LCD_clear()
LCD_cmd(0x01);
delay_ms(2);
void LCD_init() {
// ham dua con tro to vi tri x , y, 0x80 dua toi hang thu 1,0xc0 dua toi hang thu
2 ..can it nhat 37us
if(!y)address=(0x80+x);//
else address=(0xc0+x); //
delay_us(1000);
LCD_cmd(address);
delay_us(50);
Nhó m: 10 Page 30
}
/******************Ctr chinh**************************/
void main(){
delay_ms(500);
delay_ms(500);
LCD_Gotoxy(0,1);
delay_ms(500);
while(1)
unsigned char x;
lamlai:
LCD_Gotoxy(0,1);
x=get_key();
pass[i]=ma_nut[x-1];
Nhó m: 10 Page 31
i=i++;
if(i>5)
i=0;
if(strcmp(matkhau,pass) == 0)
LCD_clear();
LCD_Gotoxy(0,0);
LCD_puts("CHINH XAC^^");
delay_ms(500);
LCD_Gotoxy(0,1);
delay_ms(5000);
LCD_clear();
goto lamlai;
else {
led = tat;
LCD_clear();
LCD_Gotoxy(0,0);
LCD_Gotoxy(0,1);
Nhó m: 10 Page 32
delay_ms(2000);
LCD_clear();
goto lamlai;}
}} }
Trong báo cáo này, chúng em đã sử dụng các tài liệu tham khảo:
“Họ Vi Điều Khiển 8051” của thầy Tống Văn On và Hoàng Đức
Hải
Nhó m: 10 Page 33
Lời nhận xét của thầy cô:
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
…………………………………………………
Nhó m: 10 Page 34