Khóa số hiển thị LCD
Phần A
M Đ UỞ Ầ
LỜI NÓI ĐẦU
1
Khóa số hiển thị LCD
Trong một xã hội hiện đại, sự phát triển của ngành điện tử viễn thông là
một yêu cầu không thể thiếu để thúc đẩy nền kinh tế phát triển và góp phần
nâng cao đời sống xã hội.
Ngày nay, trên thế giới, điện tử viễn thông vẫn không ngừng phát triển
với tốc độ rất cao và thâm nhập ngày càng sâu vào tất cả các lĩnh vực của đời
sống xã hội. Cùng với sự phát triển như vũ bão đó, ngành điện tử viễn thông
Việt Nam cũng đang nỗ lực hết sức trên con đường tìm chỗ đứng cho
mình.Trong đó, lĩnh vực bảo mật là một mảng lớn mà chúng ta cần quan
tâm.Chính vì thế, với mục đích làm quen bước đầu với việc thiết kế mạch điện
tử nói chung và với hệ thống an toàn, bảo mật nói riêng, chúng em chọn đề tài
“ Thiết kế hệ thống khóa mã điện tử ” để nghiên cứu và thực hiện. Hệ thống
này cho phép ta quản lý và hạn chế được số người ra vào theo mã số trong
khu vực cần bảo mật với độ an toàn cao.
Đề tài tuy không lớn song về mặt nguyên lý thì có thể phát triển thành
các ứng dụng quản lý theo thẻ từ, mã vạch,mã hoá trong các khu vực đặc biệt
cần phải có may tính hiện đại với CSDL,ngoài mật mã ra còn kiểm tra tần số
giọng nói và camera kiểm tra hình ảnh… mà hiện nay đang rất cần thiết. Vì
thế, đối với chúng em đây là bước cơ sở để nghiên cứu những ứng dụng lớn
hơn sau này.
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 tìm hiểu, kiến thức cũng như kinh nghiệ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, với nhiều chức năng hơn.
Hcm 20/5/2009
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
4
Khóa số hiển thị LCD
………………………………………………………………………………………
………………………
NHẬN XÉT
(Của giảng viên phản biện)
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………
5
Khóa số hiển thị LCD
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………
MỤC LỤC
PHẦN A MỞ ĐẦU
PHẦN B NỘI DUNG
CHƯƠNG 1: GIỚI THIỆU CHỨC NĂNG HỆ THỐNG 2
1.1. Chức năng hệ thống 2
1.2. Phân tích hệ thống 2
1.3. Lựa chọn phần cứng 3
CHƯƠNG 2: CHI TIẾT TỪNG KHỐI 6
2.1.Khối vi xử lý 6
2.1.1. Tổ chức ngoại vi 6
2.1.2. chức năng chân và kết nối 7
2.2 Khối phím số 9
2.3 Khối hiển thị LCD 11
2.4 Khối báo động 15
CHƯƠNG 3:LƯU ĐỒ VÀ GIẢI THUẬT 16
1.1Chức năng hệ thống:
• Hệ thống quản lí một số mã ứng với một số người được cho phép ra vào ở
của này và hoạt động trên cơ sở các mã này.
• Mã sử dụng các chữ số từ 0->9
• Độ dài của mã từ 1->10 chữ số
• Hệ thống giao tiếp với người sử dụng thông qua một bàn phím điều khiển và
hiển thị trên màn hình .
• Bàn phím gồm các phím số 0-9 và các phím chức năng: Set, Enter,
backspace().
• Khi bắt đầu , người sử dụng được yêu cầu nhập mã:
• Nếu chọn enter:
o Hệ thống so sánh mã vừa nhập với code .
o Nếu mã đúng: cửa sẽ mở(mô phỏng trên mạch bằng việc bật hay tắt
đèn LED xanh)
o Nếu mã sai: yêu cầu nhập lại. Nếu nhập mã sai 3 lần liên tiếp chuông
sẽ báo động. (mô phỏng trên mạch bằng việc bật hay tắt đèn LED đỏ)
• Nếu chọn set: Kiểm tra xem mã cũ có đúng hay không.
-Nếu mã đúng: cho phép thay đổi mã bằng cách nhập vào mã mới và
xác nhận đúng mã này một lần nữa.
-Nếu mã sai: không có hiện tượng gì cả. Nếu nhập mã sai ba lần liên
tiếp chuông sẽ báo động.
9
Khóa số hiển thị LCD
• Trong quá trình nhập mã, nếu có nhầm lẫn có thể nhập lại bằng cách sử dụng
nút Backspace()
1.2. Phân tích hệ thống :
1.2.1.Khả năng đáp ứng yêu cầu của hệ thống:
Hệ thống giao tiếp với người sử dụng chỉ bằng bàn phím và hiển thị do vậy
nó hạn chế được tác động của người sử dung vào nội dung bên trong của khoá.
Thêm vào đó là khả năng báo động khi nhập ba mã sai liên tiếp làm cho hệ
Khóa số hiển thị LCD
Yêu cầu đặt ra đối với khối hiển thị là thân thiện với người sử dụng.
Dùng LCD.
• Ưu điểm:
Hiển thị rõ ràng có kèm theo chỉ dẫn.
Thay đổi nội dung linh hoạt.Xử lý lập trình đơn giản hơn LED7 thanh
và ma trận điểm.
• Nhược điểm: Giá thành đắt.
1.3.3 Mạch xử lí:
Dùng vi điều khiển:
• Ưu điểm:
- Vi điều khiển có khả năng điều khiển linh hoạt theo mong
muốn của người sử dụng dựa vào phần mềm được viết.
- Khả năng thay đổi mã có thể thực hiện được.
- Hệ thống đơn giản hơn nhiều, kích thức nhỏ. Hơn nữa sẽ giảm
được độ kém ổn định do nhiều linh kiện gây ra.
- Có thể thay đổi, thêm chức năng bằng cách thay đổi phần
mềm.
• Nhược điểm:
- Chất lượng của hệ thống phụ thuộc vào chất lượng chương trình
được nạp cho vi điều khiển.
Từ yêu cầu của đề bài ta dự kiến dùng các chip vi điều khiển thuộc họ MCS-51
của Intel, mà cụ thể ở đây là dùng chip 8051 vì những lý do sau:
• Thứ nhất 8051 thuộc họ MCS-51, là chip vi điều khiển. Đặc điểm của
các chip vi điều khiển nói chung là nó được tích hợp với đầy đủ chức
năng của một hệ VXL nhỏ, rất thích hợp với những thiết kế hướng
điều khiển. Tức là trong nó bao gồm: mạch VXL, bộ nhớ chương
trình và dữ liệu, bộ đếm, bộ tạo xung, các cổng vào/ra nối tiếp và song
song, mạch điều khiển ngắt…
• Thứ hai là, vi điều khiển 8051 cùng với các họ vi điều khiển khác nói
BÀN PHÍM
4 X 4
KHOI HIEN THI
LCD 16 X 2
BÁO ĐỘNG
ĐIỀU KHIỂN CỬA
LED 1
LED 2
LED Lớn
Khóa số hiển thị LCD
Chương 2: CHI TIẾT TỪNG KHỐI
2.1 Khối vi xử lý:
2.1.1 Tổ chức ngoại vi:
- Chip: AT89C51
- Ghép nối màn hình LCD: 16x2
- Bàn phím ma trận 4x4
Ngoài ra còn:
- LED báo hiệu chương trình đang chạy
- Tín hiệu cho phép chạy được xử lý bằng cách dùng một nút ấn Reset hệ
thống.
- Tín hiệu báo động, mở cửa, đóng cửa được đưa ra led
Sơ đồ khối của hệ thống như sau:
13
Khóa số hiển thị LCD
Nhiệm vụ của khối xử lý trung tâm:
• Đọc mã phím từ bàn phím để kiểm tra xem phím nào đã được ấn và
thực hiện chức năng của phím đó.
• Lưu giá trị của các mã để mở khóa.
• Lưu các chương trình xử lý phím ấn: mở khóa, đổi mã, báo động…
• Lưu chương trình điều khiển LCD.
P1.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
32 AD7
33 AD6
34 AD5
35 AD4
36 AD3
37 AD2
38 AD1
39 AD0
8
7
6
5
4
3
2
1
28 A15
27 A14
26 A13
25 A12
24 A11
P3.3
P3.2
P3.1
P3.0
20
Khóa số hiển thị LCD
-Port 0:dùng để nhận dữ liệu đầu vào của mã bàn phím.
P0 nối với điện trở kéo lên làm port nhận dữ liệu
P0.0 cột 1
P0.1 2
P0.2 3
P0.3 4
P0.4 hàng 1
P0.5 2
P0.6 3
P0.7 4
-Port 3: giao tiếp 4 bit voi lcd
Chân P3.0 nối với D4 của lcd
P3.1 D5
P3.2 D6
P3.3 D7
P3.4
P3.5 reset
P3.6
P3.7 enable
-Port 2:
P2.6 bit lock
P2.7 bit alarm
-Chân số 9 nối với mạch reset, hoạt động ở mức High(1).
-Chân số 18,19:nối với bộ dao động thạch anh,tụ 33p để tạo dao động cho vi
mã bàn phím về dạng phức tạp hơn để tính bảo mật được tốt hơn
Keypad được nối với port 0 sử dụng điện trở kéo lên
P0 nối với điện trở kéo lên làm port nhận dữ liệu
P0.0 cột 1
P0.1 2
P0.2 3
P0.3 4
16
1 2 3
4 5 6
7 8 9
enter 0 set
Khóa số hiển thị LCD
P0.4 hàng 1
P0.5 2
P0.6 3
P0.7 4
Bảng mã hóa trạng thái bàn phím
.Phím Trạng thái khi ấn phím
1 1 0 0 0 0 0 0 1
2 1 0 0 0 0 0 1 0
3 1 0 0 0 0 1 0 0
4 0 1 0 0 0 0 0 1
5 0 1 0 0 0 0 1 0
6 0 1 0 0 0 1 0 0
7 0 0 1 0 0 0 0 1
8 0 0 1 0 0 0 1 0
9 0 0 1 0 0 1 0 0
0 0 0 0 1 0 0 1 0
P3.5
H/L
H: chọn thanh ghi vào dữ liệu.
L: chọn thanh ghi cho lênh điều
khiển.
5 R/W H/L
chọn chế độ đọc viết:
H: cho biết đọc từ LCD vào VXL.
L: cho biết đọc từ VXL vào LCD.
6 E
P3.7
xung L-H-L
tín hiệu cho phép LCD hoạt
động.4bit
7 DB0 H/L
8 DB1 H/L
9 DB2 H/L
10 DB3 H/L
18
CHARACTER TYPE LCD MODULE
OD-DM 1602B 16charsX2lines
V
ss
V
dd
V
o
RS RW E
D
0
Điều khiển hoạt động của LCD:
Hoạt động của LCD được điều khiển thông qua 3 tín hiệu E, RS, RW.
-Tín hiệu E là tín hiệu cho phép gửi dữ liệu. Để gửi dữ liệu đến LCD, chương trình
phải thiết lập E=1, sau đó đặt các trạng thái điều khiển thích hợp lên RS, RW và bus dữ
liệu, cuối cùng là đưa E về 0. Hoạt động chuyển đổi từ cao-xuống-thấp cho phép LCD
nhận dữ liệu hiện thời trên các đường điều khiển cũng như trên bus dữ liệu và xem đó
như là một lệnh.
-Tín hiệu RS là tín hiệu cho phép chọn thanh ghi (Register Select ). Khi RS=0, dữ liệu
được coi như là một lệnh hay một chỉ thị đặc biệt (như là xóa màn hình, đặt vị trí con
trỏ…). Khi RS=1, dữ liệu được coi là dữ liệu dạng văn bản và sẽ được hiển thị trên màn
hình.
-Tín hiệu RW là tín hiệu “Đọc/Ghi”. Khi RW=1, thông tin trên bus dữ liệu được ghi vào
LCD. Khi RW=0, chương trình sẽ đọc LCD.
-Bus dữ liệu gồm 4 hoặc 8 đường tùy thuộc vào chế độ hoạt động mà người sử dụng lựa
chọn (ở đây chương trình sử dụng bus dữ liệu 4-bít).
Sơ lược phương pháp lập trinh LCD 4bit:
Trong chế độ 4-bit, dữ liệu được gửi trong nibbles, đầu tiên chúng ta gửi nibble
cao hơn và sau đó thấp hơn nibble. Để kích hoạt các chế độ 4-bit, LCD, chúng ta cần phải
làm theo chuỗi các initialization đặc biệt là cho LCD điều khiển mà người dùng đã lựa
chọn 4-bit, các chế độ hoạt động. Chúng ta gọi đây là chuỗi đặc biệt như là reset lại LCD.
Dưới đây là reset LCD.
1. Chờ khoảng 20mS
19
Khóa số hiển thị LCD
2. Gửi có giá trị init đầu tiên (0x30)
3. Chờ khoảng 10mS
4. Gửi giá trị init thứ hai (0x30)
5. Chờ khoảng 1mS
6. Gửi giá trị init thứ ba (0x30)
7. Chờ đợi các 1mS
5. Gửi tới port LCD
6. send tín hiệu enable
LCD : DM 1602B
:
2.4 Khối báo động:
Để đơn giản, tín hiệu điều khiển được đưa ra đèn led để chúng ta quan sát. Mở
rộng thiết kế khi thời gian nhiều hơn chúng em sẽ mắc rơle điều khiển động cơ
• Khi nhập đúng password thì vi điều khiển cho tín hiệu ra led xanh để mô
phỏng cửa mở
• Khi người sử dụng nhập mã sai 3 lần thì sẽ kích cho tín hiệu báo động mô
phỏng bằng led đỏ
Bit lock nối với p2.6 báo trạng thái cửa
21
CHARACTER TYPE LCD MODULE
OD-DM 1602B 16charsX2lines
V
ss
V
dd
V
o
RS RW E
D
0
D
1
D
2
22
Khóa số hiển thị LCD
LCD_LN2 equ 0C0H ;mã lệnh chọn dòng 2 lcd
var1 equ r2 ;biến var thay đổi delay
temp equ r3 ;lưu tạm thời dữ liệu cần nhớ
delay equ r4 ;delay
scan equ r5 ;
key equ 0H ;bit kiểm tra có nhấn hay không
=1có =0không
newcode equ 1h ;bit kiểm tra có tạo pass mới chưa
=1có =0không
keyval equ r6 ;ô lưu mã phím khi nhập từ bàn phím
status equ r7 ;=true hoặc retry
codenum equ 30h ; lưu độ dài của pass
count equ 31h ; đếm số ký tự được nhập
codenum_1 equ 32h ; dung nhảy giảm đếm ký tự số
pass đển so sánh copy
retries equ 33H ;lưu số lần nhập sai mã
input equ 40H ;lưu dữ liệu phím nhấn sau khi mã hóa
upass equ 50H ;lưu pass
confirm equ 60h ;lưu pass kiểm tra chính xác
ok equ 2H ;đúng pass=1 sai=0 ;
TRUE equ 1 ;true
RETRY equ 2 ;retry
keyport equ P0 ;chon port 1 lam keypad
col1 equ P0.0 ;cột 1
col2 equ P0.1 ; 2
col3 qu P0.2 ; 3
col4 equ p0.3 ; 4
3.2 Main
3.3 Chương trình con check code:
24
LCD: “dung ma ,mo khoa”
Lock=0 (cua mo)
LCD ”lan thu nua”
Main
Retry=0?
Ctc Tự đóng cửa
Ctc Get_Input
Gọi Ctc getkey
Key=enter?
LCD “vo hieu hoa”
Status=true?
Newcode=1??
Set Alarm=0
Goi Ctc: checkcode
Delay1minute
ok=1? Set Alarm=1
LCD “cua da dong”
Set Lock=1 retry=3
Goi Ctc setupass
Setb newcode=1
Ctc check code
Nap codenum1 =codenum
R0=input
R1=upass
Khóa số hiển thị LCD
s
d
s