Tải bản đầy đủ (.doc) (28 trang)

Thiết kế hệ thống an ninh sử dụng mã số nhập từ bàn phím

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (324.59 KB, 28 trang )

LỜI NÓI ĐẦU
Ngày nay trên thế giới, 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ử chúng em chọn đề tài “ Thiết kế hệ thống an ninh sử dụng mã số nhập từ
bàn phím ” để 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
PHẦN1: GIỚI THIỆU CHỨC NĂNG HỆ THỐNG
Đây là một hệ thống đóng mở theo mã cho phép một số Ýt người có thể ra
vào theo mã của họ. Nó có thể được áp dụng làm cửa ra vào của các hệ thống cần
mang tính bảo mật, giới hạn số người ra vào: Cửa ra vào cơ quan, nhà máy, các
khu quan trọng
Trên cơ sở đó, hệ thống phải đảm bảo được hai yêu cầu cơ bản sau:
-Tính an toàn: do là cửa nên phải có chức năng bảo vệ.
-Tính bảo mật.
Do đó chúng em đã đưa ra yêu cầu một hệ thống có chức năng đóng mở
như sau:
1. Chứ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ã gồm có 6 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: ON, Change, Enter,
backspace(< ).
• Khi bắt đầu , người điều khiển chọn chức năng thực hiện:
+ Nếu chọn Open: sau đó sẽ nhập mã. Kết thúc nhập mã băng nót Enter.
-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)
-Nếu mã sai: không có hiện tượng gì cả. 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 Change: 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.
+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(< )
2. Phân tích hệ thống:
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ử dụng vào nội dung bên trong của khoá.
Với số lượng mã không lớn (cỡ 10 mã), mỗi mã dài sáu chữ số thì xác suất
tìm thấy mã đúng là: 10/1.000.000 = 0,0001%.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ệ thống có tính an toàn cao.
Mỗi người có một mã riêng. Nếu nghi ngờ lộ mã, người dùng có thể thay đổi
mã theo mong muốn. Nhờ đó mà khả năng bảo mật của hệ thống cũng tăng cao.
2.2. Phân tích hệ thống:
Do giới hạn của bài tập, chúng em chỉ tập trung vào thiêt kế phần mạch điện
tử để điều khiển hệ thống này.
Theo yêu cầu đưa ra, hệ thống gồm 3 khối cơ bản:

• Khối bàn phím: cần 14 nút gồm:
- Các nút số từ 0-9
- Các nút chức năng: Open, Change, <
- Sử dụng các phím bấm tự nhả để nhập vào.
• Khối mạch xử lí: Xử lí các hoạt động đã nêu ở yêu cầu hệ thống.
• Khối hiển thị: Giúp cho việc giao tiếp với người sử dụng trở nên dễ dàng
hơn người sử dụng biết mình đang thực hiện thao tác gì với cửa.

PHẦN 2: CÁC PHƯƠNG ÁN
Trên cơ sở các yêu cầu đã đặt ra và các phân tích sơ bộ, từng khối đều có các
phương án giải quyết nh sau:
1. Khối bàn phím:
Sử dụng bàn phím 4 4
• Số đầu ra từ bàn phím là 8 dây.
• Hình dáng đẹp, cân đối.
• Còn dư 3 nót để mở rộng chức năng trong tương lai.
Sơ đồ của bàn phím 4×4
2. Khối hiển thị:
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. Trên cơ
sở ta chọn 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.
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 đư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.
PHẦN 3: PHƯƠNG ÁN DÙNG VI ĐIỀU KHIỂN
1. Thiết kế phần cứng:
Định hướng thiết kế:
Thiết kế một hệ vi điều khiển bao gồm cả việc thiết kế tổ chức phần cứng và
viết phần mềm cho nền phần cứng mà ta thiết kế. Việc xem xét giữa tổ chức phần
cứng và chương trình phần mềm cho một thiết kế là một vấn đề cần phải cân nhắc.
Vì khi tổ chức phần cứng càng phức tạp, càng có nhiều chức năng hỗ trợ cho yêu
cầu thiết kế thì phần mềm càng được giảm bớt và dễ dàng thực hiện nhưng lại đẩy
cao giá thành chi phí cho phần cứng, cũng như chi phí bảo trì. Ngược lại với một
phần cứng tối thiểu lại yêu cầu một chương trình phần mềm phức tạp hơn, hoàn
thiện hơn; nhưng lại cho phép bảo trì hệ thống dễ dàng hơn cũng như việc phát
triển tính năng của hệ thống.
Từ yêu cầu và nhận định trên ta có những định hướng sơ bộ cho thiết kế nh
sau:
1.1. Chọn bé 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

chung trong những năm gần đây được phát triển theo các hướng sau:
-Giảm nhỏ dòng tiêu thụ.
-Tăng tốc độ làm việc hay tần số xung nhịp của CPU.
-Giảm điện áp nguồn nuôi.
-Có thể mở rộng nhiều chức năng trên chip, mở rộng cho các
thiết kế lớn.
Những đặc điểm đó dẫn đến đạt được hai tính năng quan trọng là: giảm công
suất tiêu thụ và cho phép điều khiển thời gian thực nên về mặt ứng dụng nó rất
thích hợp với các thiết kế hướng điều khiển.
• Thứ ba là, vi điều khiển thuộc họ MCS-51 được hỗ trợ một tập lệnh
phong phú nên cho phép nhiều khả năng mềm dẻo trong vấn đề viết
chương trình phần mềm điều khiển.
• Cuối cùng là, các chip thuộc họ MCS-51 hiện được sử dụng phổ biến
và được coi là chuẩn công nghiệp cho các thiết kế khả dụng.Với sinh
viên mới làm quen với VĐK thì 8051 có nhiều tài liệu tham
khảo,đồng thời cũng sử dụng đơn giản nhất. Mặt khác, qua việc khảo
sát thị trường linh kiện việc có được chip 8051 là dễ dàng nên mở ra
khả năng thiết kế thực tế.
Vì những lý do trên mà việc lùa chọn vi điều khiển AT89C51 của hãng
Atmel, đây là vi điều khiển thuộc họ MCS-51.
Cấu hình hoạt động của chip AT89C51:
-ROM trong: Flash ROM - 4KBytes
-RAM trong: 128 bytes
1.2 Tổ chức ngoại vi:
- Chip: AT89C51
- Ghép nối màn hình LCD: 16x2
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 LCD
Sơ đồ khối của hệ thống như sau:
2. Vi iu khin AT89C51:
Chc nng ca tng khi :
Khi x lý trung tõm CPU:
Phn chớnh ca b vi x lý l khi x lý trung tõm (CPU=Central Processing
Unit ), khi ny cú cha cỏc thnh phn chớnh :
Thanh cha ACC (ký hiu l A).
Thanh ghi cha ph (ký hiu l B) thng c dựng cho phộp nhõn v
phộp chia.
Khi logic s hc (ALU=Arithmetic Logical Unit).
T trng thỏi chng trỡnh (PSW= Program Status Word).
Bn bng thanh ghi (Blank).
Con tr ngn xp (SP=Stack Point) cũng nh con tr d liu nh a ch
cho b nh d liu bờn ngoi.
Ngoi ra, khi x lý trung tõm cũn cha:
Thanh ghi m chng trỡnh (PC= Progam Counter ).
Hình 2.1: Cấu trúc của vi điều khiển 8051.
Bộ tạo dao
động

CPU
Điều khiển
ngắt
Nguồn
ngắt
trong.
8Kbytes
ROM trong
256byte

RAM
trong
2bộ đếm /
định thời
Khối
đ.khiển
quản lý
Bus.
Port
0
Port
1
Port
2
Port
3
Giao
diện nối
tiép.
XTAL 1.2
/PSEN/ALE
Cổng I/O
8 bit
Cổng I/O
Đchỉ cao
Dữ liệu 8
bit
Cổng I/O
Đchỉ thấp
Dữ liệu 8

bit
Cổng I/O
Các chức năng
đắc biệt
Dữ liệu 8 bit
Nguồn ngắt Đếm sự kiện.
Bộ giải mã lệnh
Bộ điều khiển thời gian và logic.
Sau khi được Reset, CPU bắt đầu làm việc tại địa chỉ 0000h, là địa chỉ đầu
được ghi trong thanh ghi chứa chương trình (PC) và sau đó, thanh ghi này sẽ tăng
lên 1 đơn vị và chỉ đến các lệnh tiếp theo của chương trình.
• Bộ tạo dao động:
Khối xử lý trung tâm nhận trực tiếp xung nhịp từ bộ tạo dao động được lắp
thêm vào, linh kiện phụ trợ có thể là một khung dao động làm bằng tụ gốm hoặc
thạch anh. Ngoài ra, còn có thể đưa một tín hiệu giữ nhịp từ bên ngoài vào.
• Khối điều khiển ngắt:
Chương trình đang chạy có thể cho dừng lại nhờ một khối logic 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 bộ đếm/bộ định
thời hay có thể là giao diện nối tiếp. Tất cả các ngắt đều có thể được thiết lập chế
độ làm việc thông qua hai thanh ghi IE (Interrupt Enable) và IP (Interrupt Priority).
• Khối điều khiển và quản lý Bus :
Các khối trong vi điều khiển liên lạc với nhau thông qua hệ thống Bus nội
bộ được điều khiển bởi khối điều khiển quản lý Bus.
• Các bộ đếm/định thời:
Vi điều khiển 8051 có chứa hai bộ đếm tiến 16 bit có thể hoạt động nh là bộ
định thời hay bộ đếm sự kiện bên ngoài hoặc nh bé phát tốc độ Baud dùng cho giao
diện nối tiếp. Trạng thái tràn bộ đếm có thể được kiểm tra trực tiếp hoặc được xoá
đi bằng một ngắt.
• Các cổng vào/ra:
Vi điều khiển 8051 có bốn cổng vào/ra (P0 … P3), mỗi cổng chứa 8 bit, độc

lập với nhau. Các cổng này có thể được sử dông cho những mục đích điều khiển
rất đa dạng. Ngoài chức năng chung, một số cổng còn đảm nhận thêm mét số chức
năng đặc biệt khác.
• Giao diện nối tiếp:
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. Bằng cách đấu nối các bộ đệm thích hợp, ta có thể hình
thành một cổng nối tiếp RS-232 đơn giản. Tốc độ truyền qua cổng nối tiếp có thể
đặt được trong một vùng rộng phụ thuộc vào một bé định thời và tần số dao động
riêng của thạch anh.
• Bộ nhớ chương trình:
Bộ nhớ chương trình thường là bộ nhớ ROM (Read Only Memory), bộ nhớ
chương trình được sử dụng để cất giữ chương trình điều khiển hoạt động của vi
điều khiển.
• Bộ nhớ số liệu :
Bộ nhớ số liệu thường là bộ nhớ RAM (Ramdom Acces Memory), bộ nhớ số
liệu dùng để cất giữ các thông tin tạm thời trong quá trình vi điều khiển làm việc.
• Sự sắp xếp chân ra của vi điều khiển 8051 :
Phần lớn các bộ vi điều khiển 8051 được đóng vào vỏ theo kiểu hai hàng
DIL (Dual In Line) với tổng số là 40 chân ra, một số Ýt còn lại được đóng vỏ theo
kiểu hình vuông PLCC (Plastic Leaded Chip Carrier) với 44 chân và loại này
thường được dùng cho những hệ thống cần thiết phải tiết kiệm diện tích.
Trong chương trình ta sử dụng loại 89C51 kiểu 2 hàng với 40 chân ra.
3. Chi tiết từng khối:
3.1 Khối phím số:
Hệ thống sử dụng bàn phím 4x4 có giao diện nh sau:

Các phím của bàn phím.
Trong đó:
Phím 0-9 dùng để nhập mã
Các phím chọn chức năng: open(phím ON),đổi password(phím

change),xóa ký tự vừa nhập(< ).

Sơ đồ nguyên lý của bàn phím theo hình vẽ sau:
Nguyên lý hoạt động bàn phím:
Khi một phím được nhấn sẽ làm thông 2 transistor và cho đầu ra của phím
đó từ +5V về 0V tức là từ mức lôgic 1 về mức lôgic 0. Sau đó ta đưa tín hiệu ra
qua hệ thống cổng NAND xử lí xung từ bàn phím vào P3.10.
Ta giải mã bàn phím được tín hiệu có 8 bít khi nhấn bàn phím ta lấy luôn tín
hiệu này đưa vào Port2 của VĐK.Trong vi điều khiển ta lập trình nạp mã số dạng 8
bit như bàn phím mã hoá được vào lần lượt sáu thanh ghi trong ROM. Ta đem so
sánh mã bàn phím nhấn với mã được nạp. Để mở rộng ta có thể giải 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.
Bảng mã hóa trạng thái bàn phím
.Phím Trạng thái khi Ên phím
ON 0 1 1 1 0 1 1 1
7 0 1 1 1 1 0 1 1
8 0 1 1 1 1 1 0 1
9 0 1 1 1 1 1 1 0
Change 1 0 1 1 0 1 1 1
4 1 0 1 1 1 0 1 1
5 1 0 1 1 1 1 0 1
6 1 0 1 1 1 1 1 0
1 1 1 0 1 1 0 1 1
2 1 1 0 1 1 1 0 1
3 1 1 0 1 1 1 1 0
0 1 1 1 0 1 0 1 1
< 1 1 1 0 1 1 1 0
3.2 Khối xử lý trung tâm:
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.
Chức năng của các chân của VĐK trung tâm:
-Vcc: Chân cung cấp nguồn.
-GND: Chân nối đất.
-Port1:dùng làm bus dữ liệu 8 bit tới 8 chân dữ liệu của LCD.
-Port 2:dùng để nhận dữ liệu đầu vào của mã bàn phím.
-Port 3:
Chân 3.6 nối với chân 4 RS của LCD
Chân 3.4 nối với chân 6 E của LCD
Chân 3.5 nối với chân 4 RW của LCD
Chân 3.5 nối với khối tạo tiếng bíp khi có một phím đựơc nhấn
-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 mạch dao động thạch anh để tạo dao động cho vi
AT89C51.
XTAL1, XTAL2 là tạo tín hiệu giữ nhịp với tần số được xác định bởi
bộ cộng hưởng thạch anh được lắp thêm vào, tần số này xác định tốc
độ làm của bộ vi điều khiển. Thông thường các lệnh được thực hiện
bằng 1/12 tần sè dao động của thạch anh.
-Chân sè 20: Vss nối đất
-Chân sè 31: EA Đóng vai trò quyết định xem vi điều khiển làm việc với
chương trình bên trong hay bên ngoài. Với loại 8051 không có ROM trong
thì chân này phải được nối với mát. Loại thông thường có thể làm việc tuỳ
theo cách lùa chọn giữa ROM trong hay ROM ngoài, khi đang ở chế độ làm
việc với bộ nhớ ROM trong, loại có chứa bộ nhớ ROM có thể truy nhập tự
động lên bộ nhớ chương trình bên ngoài.
Trong mạch ta nối lên nguồn vì không sử dụng ROM bên ngoài
-Chân sè 40: Vdd nguồn dương( +5V).

3.3 Khối hiển thị LCD:
Với các ưu điểm như: tiêu thụ dòng thấp, hiển thị được hình ảnh/ký tự linh
hoạt tốt hơn nhiều so với LED ,màn hình tinh thể lỏng LCD (Liquid Crystal
Display) được sử dụng trong hầu hết các thiết bị điều khiển trong công nghiệp để
hiển thị trạng thái của máy móc. Ngày nay với công nghệ phát triển giá thành của
LCD cũng giảm nhiều.
Do có rất nhiều chủng loại khác nhau, nên LCD được sử dụng rất rộng rãi.
Tất cả các LCD đều được sản xuất theo các chuẩn chung, tích hợp luôn các module
điều khiển (cho LCD) nên việc sử dụng nó không mấy phức tạp. Bộ điều khiển
LCD cung cấp một tập lệnh dùng để diều khiển LCD.
Trong ứng dụng cụ thể này, do không yêu cầu hiển thị phức tạp nên em chọn
loại LCD kiểu ký tự, với 16 ký tự, 2 hàng (16characters x 2lines). LCD sử dụng
ma trận chữ 5x8 (font 5x8), module điều khiển là HD44780. Tên của LCD này là
DM1602B.
CHARACTER TYPE LCD MODULE
OD-DM 1602B 16charsX2lines
V
ss
V
dd
V
o
RS RW E
D
0
D
1
D
2
D

3
D
4
D
5
D
6
D
7
1 2 3 4 5 6
10 11987 12 13 14
15
16
LED
+
-
LCD : DM 1602B
Bảng : Chức năng của từng chân và ghép nối chi tiết LCD- 89C51 :
STT

hiệu
Nối với
vi xử lý
Mức logic Chức năng
1 Vss 0 V (Ground)
2 Vcc 5 V (Supply)
3 Vee điều khiển độ sáng tối cho LCD
4 RS
P3.7
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
P3.6
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.5
xung L-H-L
t ín hiệu cho phép LCD hoạt
động.
7 DB0 P1.0 H/L Bit dữ liệu 0
8 DB1 P1.1 H/L Bit dữ liệu 1
9 DB2 P1.2 H/L Bit dữ liệu 2
10 DB3 P1.3 H/L Bit dữ liệu 3
11 DB4
P1.4
H/L Bit dữ liệu 4
12 DB5 P1.5 H/L Bit dữ liệu 5
13 DB6 P1.6 H/L Bit dữ liệu 6
14 DB7 P1.7 H/L Bit dữ liệu 7
15 0 V (Ground)
16
5 V nguồn cấp cho đèn
backline.

Đ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 8-bít).
Mã lệnh điều khiển của LCD:
Command Binary
D7 D6 D5 D4 D3 D2 D1
D0
Hex
Clear Display 0 0 0 0 0 0 0 1 01
Display & Cursor
Home
0 0 0 0 0 0 1 X 02 or 03
Chacractor Entry
Mode
0 0 0 0 0 1 I/D S 04 to 07
Display On/Off &
Cursor
0 0 0 0 1 D U B 08 to 0F

Display/Cursor Shift 0 0 0 1 D/
C
R/L X X 10 to1F
Funtion Set 0 0 1 8/4 2/1 10/7X X 20 to 3F
Set Ggram Address 0 1 A A A A A A 40 to 7F
Set Display Address 1 A A A A A A A 80 to FF
I/D:1= Increment*, 0=Decrement R/L: 1 = Right Shift, 0 =
Left Shift S : 1= Display Shift on, 0= Display Shift off*
8/4: 1 = 8 bit interface*, 0 = 4 bit interface
D: 1= Display On, 0= Display Off* 2/1: 1 = 2 line mode, 0= 1
line mode D/C :1=Display Shift, 0=Cursor move 10/7 :
1= 5x10 dot format, 0= 5x7 dot format
x = Don’t care * = initialisation settings.
3.4. Khối báo động:
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. Để
đơn giản, tín hiệu báo động đượ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 ta sẽ mắc rơle điều khiển động cơ
3.5. Sơ đồ khối toàn mạch:
4. Mã nguồn:được viết và dịch sang hex bằng phần mền READS51
4.1 Lưu đồ thuật toán
4.2 Viết chương trình
#include <sfr51.inc>
;Cong P1 duoc ket noi voi LCD.
;Cong P2 dung de nhan du lieu gui tu ban phim.
;Chan P3.6 noi voi chan 6 ENcua LCD.
;Chan P3.4 noi voi chan 4 RS cua LCD.
;Chan P3.5 noi voi chan 5 RW cua LCD.
;Chan P3.7 noi voi khoi tao tin hieu nhay den khi LED khi nhan phim
ORG 0000H
;| |

;Chuong trinh phuc vu ngat cho ban phim
MAIN:
MOV 50,#4H
CLR P3.7
MAIN_ENABLE_LOOP:
LCALL INIT_LCD
;Khoi tao trang thai ban dau cho LCD
LCALL CLEAR_LCD
LCALL DELAY1S
;Viet "Password: "
MOV A,#'P'
LCALL TEXT_LCD
MOV A,#'a'
LCALL TEXT_LCD
MOV A,#'s'
LCALL TEXT_LCD
MOV A,#'s'
LCALL TEXT_LCD
MOV A,#'w'
LCALL TEXT_LCD
MOV A,#'o'
LCALL TEXT_LCD
MOV A,#'r'
LCALL TEXT_LCD
MOV A,#'d'
LCALL TEXT_LCD
MOV A,#':'
LCALL TEXT_LCD
MOV A,#'-'
LCALL TEXT_LCD

MOV A,#'-'
LCALL TEXT_LCD
MOV A,#'-'
LCALL TEXT_LCD
MOV A,#'-'
LCALL TEXT_LCD
MOV A,#'-'
LCALL TEXT_LCD
MOV A,#'-'
LCALL TEXT_LCD
MOV A,R7
MOV R7,#06H ;Dich chuyen vi tri con tro doi ve vi tri dau
SHIFT_L6:
LCALL SHIFT_LEFT
LCALL DELAY
DJNZ R7,SHIFT_L6
MOV R7,A
LCALL Setpassword
;| |
;Doan chuong trinh thuc hien viec nhap vao 6 ki tu ma
;Ghi du lieu nhan duoc vao cac thanh ghi tu R1 den R6 cua bang thanh ghi thu hai.
;Viet ra ki tu * moi khi du lieu tren cac dau vao P2 duoc ghi
;hoan chinh vao trong cac thanh ghi tuong ung;
;Lap lai qua trinh 6 lan, neu co xoa, an phim CLEAR, thi
;phai co xu li
;Moi khi mot phim duoc nhan thi chuong trinh se dung lai
;trong mot khoang thoi gian nhat dinh, de tranh tinh trang
;co nhung dot bien xung khong theo y muonxay ra trong mach
;Sau do no se nhan du lieu tu cong P2 dua vao thanh ghi tuong ung
;Ma thu nhat ghi vao thanh ghi R1;

;Ma thu hai ghi vao thanh ghi R2;
;
;Ma thu 6 ghi vao thanh ghi R6;
;Tat ca deu la thanh ghi bang 2
;Sau khi ghi xong thi se lien tuc kiem tra xem bit P3.0 da ve muc 1chua, neu van
dang con nhan phim, tuc la van dang muc 0 thi doi,
;cho den khi bit P3.0 tro ve muc cao, khi do phat tin hieu len
;bit P3.7 de nguoi su dung biet la minh vua tha phim xong,
;va co the thuc hien viec nhap ma tiep theo
;Vi vay trong qua trinh su dung nguoi dung phai giu phim nhan
;trong mot thoi gian nhat dinh sau khi nha phim co tin hieu bao
;thi moi tien hanh nhap mot ma moi duoc, khong the nhap phim qua
;nhanh, dieu nay se khong dung nhu mong muon cua nguoi dung

;CTC thiet lap password
Setpassword:
MOV R4,#6H
MOV R0,#35H
HERE:
LCALL DELAY1S ;Doi mot luc de tranh xung bat thuong, ngoai mong muon
;Dung bit P3.0 de kiem tra co phim nhan khong
SETB P3.0
JB P3.0,HERE ;Doi cho den luc nao phim duoc nhan, chan P3.0
;ve muc 0
MOV A,#FFH
MOV P2,A ;Dat cong P2 lam cong vao
MOV A,P2
;Kiem tra xem do co phai la phim Clear khong
;Neu phai thi xoa lui lai mot ki tu, va giam gia tri R0 xuong 1
CJNE A,#E7H,LABEL_CONTINUOUS

LCALL CLEAR_SHIFT_L
SJMP CONTINUOUS
LABEL_CONTINUOUS:
MOV @R0,A ;Tang dia chi cua thanh ghi len tuong ung voi thanh ghi R1
bang 1
WAIT_HERE:JNB P3.0,WAIT_HERE;Doi neu nhu chua nha phim ra
MOV A,#'*'
LCALL TEXT_LCD;Viet len LCD ki tu '*'
LCALL DELAY1S
INC R0
CONTINUOUS:DJNZ R4, HERE
LCALL DELAY1S
;So sanh mat khau nhap voi mat khau truoc
LCALL COMP_PASSWORD
RET
;Chuong trinh xoa mot ki tu va giam R0 xuong 1
CLEAR_SHIFT_L:
CJNE R4,#6,CLEAR_CONTINUOUS
SJMP CONSTANT
CLEAR_CONTINUOUS:
LCALL SHIFT_LEFT
LCALL DELAY1S
MOV A,#'-'
LCALL TEXT_LCD
LCALL SHIFT_LEFT
DEC R0
INC R4
CONSTANT:
INC R4
RET

;Chuong trinh thuc hien viec so sanh ma nhap vao voi ma thuc
COMP_PASSWORD:
ORG 200H
MY_PASS_WORD: DB 7BH,7BH,7BH,7BH,7BH,7BH
MOV R1,#35H
MOV DPTR,#MY_PASS_WORD
MOV R6,#6
LOOP_COMP:
CLR A
MOVC A,@A+DPTR
XRL A,@R1
JNZ LABEL_ERROR
INC R1
INC DPTR
DJNZ R6, LOOP_COMP
LCALL WRITE_STRING_OPEN
SJMP CON
LABEL_ERROR:
LCALL WRITE_STRING_ERROR
CON:
RET
;Chuong trinh viet len mot thong
WRITE_STRING_OPEN:
LCALL CLEAR_LCD;Xoa man hinh truoc khi viet
LCALL DELAY1S
MOV A,#'Y'
LCALL TEXT_LCD
MOV A,#'O'
LCALL TEXT_LCD
MOV A,#'U'

LCALL TEXT_LCD
MOV A,#' '
LCALL TEXT_LCD
MOV A,#'A'
LCALL TEXT_LCD
MOV A,#'R'
LCALL TEXT_LCD
MOV A,#'E'
LCALL TEXT_LCD
MOV A,#' '
LCALL TEXT_LCD
MOV A,#'W'
LCALL TEXT_LCD
MOV A,#'E'
LCALL TEXT_LCD
MOV A,#'L'
LCALL TEXT_LCD
MOV A,#'C'
LCALL TEXT_LCD
MOV A,#'O'
LCALL TEXT_LCD
MOV A,#'M'
LCALL TEXT_LCD
MOV A,#'E'
LCALL TEXT_LCD
SETB P3.7
DUNG:SJMP DUNG
RET
;Chuong trinh viet len mot thong
WRITE_STRING_ERROR:

LCALL CLEAR_LCD
LCALL DELAY1S
MOV A,#'I'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'N'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'C'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'O'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'R'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'R'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'E'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'C'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'T'
LCALL TEXT_LCD
LCALL DELAY1S
LCALL DELAY1S

LCALL DELAY1S
LCALL CLEAR_LCD
LCALL DELAY1S
DEC 50
MOV A,50
CJNE A,#1,LOOP
SJMP CONTI;NEU QUA BA LAN THI VO HIEU HOA KHOA
LOOP:
LCALL CLEAR_LCD
LCALL DELAY1S
MOV A,#'T'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'R'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'Y'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#' '
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'A'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'G'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'A'
LCALL TEXT_LCD

LCALL DELAY1S
MOV A,#'I'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'N'
LCALL TEXT_LCD
LCALL DELAY1S
LCALL DELAY1S
LCALL CLEAR_LCD
LCALL DELAY1S
LJMP MAIN_ENABLE_LOOP;CHO PHEP NHAP TIEP
CONTI:
LCALL CLEAR_LCD
LCALL DELAY1S
MOV A,#'A'
LCALL TEXT_LCD
LCALL DELAY1S
CPL P3.7
MOV A,#'L'
LCALL TEXT_LCD
LCALL DELAY1S
CPL P3.7
MOV A,#'R'
LCALL TEXT_LCD
LCALL DELAY1S
CPL P3.7
MOV A,#'M'
LCALL TEXT_LCD
LCALL DELAY1S
MOV A,#'I'

CPL P3.7
LCALL TEXT_LCD
LCALL DELAY1S
CPL P3.7
MOV A,#'N'
LCALL TEXT_LCD
LCALL DELAY1S
CPL P3.7
MOV A,#'G'
LCALL TEXT_LCD
LCALL DELAY1S
CPL P3.7
MOV A,#'!'
LCALL TEXT_LCD
LCALL DELAY1S
CPL P3.7
MOV A,#'!'
LCALL TEXT_LCD
LCALL DELAY1S
CPL P3.7
SJMP CONTI ;VO HIEU HOA KHOA
RET
;Chuong trinh tao tre doi LCD thuc hien lenh
WAIT_LCD:
SETB P3.4
SETB P3.5;Dat chan RW len muc cao de chi day la lenh doc LCD
CLR P3.6 ;Dat chan RS muc thap 'day la mot command'
MOV P1,#FFH
CLR P3.4
MOV P1,A

JB ACC.7,WAIT_LCD
SETB P3.4
CLR P3.5

×