jhbvcxcvbn
Trang 1Phần B NỘI DUNG
Trang 2Chương 1: 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àotheo 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 mangtính bảo mật, giới hạn số người ra vào như: Cửa ra vào cơ quan, nhà máy, các khuquan 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: phải có chức năng bảo mật
-dễ sử dụng:có đầy đủ hướng dẫn để người dùng sử dụng
Do đó chúng em đã đưa ra yêu cầu một hệ thống có chức năng đóng mở nhưsau:
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êntiế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ụngnút Backspace()
1.2 Phân tích hệ thống :
Trang 3thố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
1.2.2 Phân tích hệ thống:
Do giới hạn của yêu cầu, 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 13 nút gồm:
- Các nút số từ 0-9
- Các nút chức năng: enter, set, <
- 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ơnngười sử dụng biết mình đang thực hiện thao tác gì với cửa
Trang 4- 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ầnmềm
Thứ hai là, vi điều khiển 8051 cùng với các họ vi điều khiển khác nóichung 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ácthiế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ôngsuấ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íchhợ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ệnhphong phú nên cho phép nhiều khả năng mềm dẻo trong vấn đề viếtchươ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 sinhviên mới làm quen với VĐK thì 8051 có nhiều tài liệu thamkhảo,đồng thời cũng sử dụng đơn giản nhất Mặt khác, qua việc khảosát thị trường linh kiện việc có được chip 8051 là dễ dàng nên mở rakhả 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,
Trang 5- Khối hiển thị dùng LCD 2x16 HD44780
- Khối mạch xử lí dùng vi điều khiển AT89C51
Chương 2 : CHI TIẾT TỪNG KHỐI
2.1 Khối vi xử lý:
Trang 62.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 4x4Ngoà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:
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
LED 1
LED 2
LED
Lớn
Trang 733pF
-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
-Port 3: giao tiếp 4 bit voi lcd
Chân P3.0 nối với D4 của lcd
Vcc XTAL.1 XTAL.2
PSEN ALE EA RST
Vss
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
17 16 15 14 13 12 11 10
RD WR T1 T0 INT1 INT0 TXD RXD
8051
2930319
20
Trang 8-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 viAT89C51
XTAL1, XTAL2 là bộ tạo tín hiệu giữ nhịp với tần số được xác địnhbởi bộ cộng hưởng thạch anh được lắp thêm vào, tần số này xác địnhtốc độ làm của bộ vi điều khiển Thông thường các lệnh được thựchiện bằng 1/12 tần số dao động của thạch anh
Chọn thạch anh11.0 MHz 2
-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ớichương trình bên trong hay 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)
Lập trình cho 8051 bằng assembly dịch ra file hex bằng topview simulator
Trang 9Col1 col2 col3 col4
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:
Enter :sau khi nhập mã nhấn enter để thực hiện
:xóa ký tự vừa nhậpSet:thay đổi password
Trang 10Ta giải mã bàn phím được tín hiệu có 8 bit
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á đượcvào lần lượt 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
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
Trang 112.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ốthơ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ủamá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ộttậ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ạiLCD 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 7 8 9 10 11 12 13 14 15 16
LED + -
Trang 124 RS
P3.5
H/L
H: chọn thanh ghi vào dữ liệu
L: chọn thanh ghi cho lênh điềukhiển
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
Đ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ìnhphả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 LCDnhậ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í contrỏ…) 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ànhì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àoLCD 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ựachọn (ở đây chương trình sử dụng bus dữ liệu 4-bít)
Trang 13Sơ 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 nibblecao 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ảilàm theo chuỗi các initialization đặc biệt là cho LCD điều khiển mà người dùng đã lựachọ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
Những cò bận sẽ chỉ có giá trị sau khi reset ở trên Thông thường chúng ta không
sử dụng cò bận trong 4-bit, chế độ như chúng ta phải viết mã đọc cho hai nibbles đếnLCD Thay vào đó, chúng ta chỉ cần đặt đô trễ thường là 300 đến 600uS Độ trễ này cóthể khác nhau tuỳ thuộc vào hình LCD mà bạn đang sử dụng, vì bạn có thể có một tần sốthạch anh khác nhau mà trên đó hình LCD điều khiển đang chạy Vì vậy, nó thực sự phụthuộc vào hình LCD mô-đun bạn đang sử dụng Vì vậy, nếu cảm thấy bất kỳ vấn đề chạycác hình LCD, chỉ cần cố gắng tăng cường sự chậm trễ Điều này thường là các côngtrình Đối với tôi về 400uS các công trình hoàn hảo
Trong là sơ đồ kết nối LCD trong 4-bit, chế độ, nơi mà chúng ta chỉ cần 6 pins vàomột giao diện LCD D4-D7 là các kết nối dữ liệu pins và enable và registor được lựachọn để kiểm soát hình LCD pins Chúng tôi không sử dụng pin Đọc / Ghi (RW) củaLCD, bởi vì chúng tôi chỉ được viết trên hình LCD, vì vậy chúng ta đã làm nó cứ vĩnhviễn Nếu muốn sử dụng nó sau đó bạn có thể kết nối nó vào điều khiển của bạn, nhưng
sẽ chỉ làm tăng số pin và không thực hiện bất kỳ sự khác biệt lớn RV1 được sử dụng để
Trang 14kiểm soát độ tương phản LCD Các dữ liệu không mong muốn LCD pins D0-D3 có nghĩa
là được kết nối với đất
Chúng ta sẽ xem xét các bước sau để gửi dữ liệu / lệnh để hình LCD khi làm việctrong chế độ 4bit 4.Như tôi đã giải thích trong chế độ 4-bit, dữ liệu được gửi nibble củanibble, đầu tiên chúng ta gửi nibble cao hơn và sau đó nibble thấp Điều này có nghĩa làtrong cả hai lệnh và chức năng gửi dữ liệu mà chúng tôi cần phải saperate 4-bit cao và 4-bit thấp
Phổ biến các bước sau:
1 Mask 4-bit thấp
2 Gửi tới port LCD
3 send tín hiệu enable
4 Mask 4-bit cao
5 Gửi tới port LCD
6 send tín hiệu enable
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 7 8 9 10 11 12 13 14 15 16
LED + -
LCD : DM 1602B
:
Trang 15Bit lock nối với p2.6 báo trạng thái cửa
Bit alarm nối với p2.7 báo động bằng đèn hoặc chuông
Trang 16Chương 3:LƯU ĐỒ VÀ GIẢI THUẬT
3.1 Các ký hiệu trong lưu đồ:
lcd_port equ P3 đặt tên port 3
en equ P3.7 chân enable của lcd
rs equ P3.5 chân reset của lcd
lock equ P2.6 bit quy định đóng hay mở cửa lock
lock=1 đóng cửa lock=0mở cửaalarm e qu p2.7 bit quy định báo động
LCD_CLR equ 01H ;mã lện xóa màn hình lcd
LCD_LN1 equ 80H ;mã lệnh chọn dòng 1 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ớ
key equ 0H ;bit kiểm tra có nhấn hay không
=1có =0khôngnewcode equ 1h ;bit kiểm tra có tạo pass mới chưa
=1có =0khôngkeyval 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 copyretries 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
keyport equ P0 ;chon port 1 lam keypad
Trang 17col3 qu P0.2 ; 3
3.2 Main
s d
s s
d d
Nap Sp=70 Retries=3
codenum =0Goi ctc get keypad Xóa key
Khoi tao LCD Setb lock =1
Set Alarm=0
Star t
Set Lock=1 retry=3
Status=true?
Trang 183.3 Chương trình con check code:
set ok=1Clear ok=0
R0 +1R1 +1Giam codenum1 -1
Codenum1=0
?Clear
Ctc check code
Trang 193.4 Chương trình con copy code:
s
d
Ctc copycode
Nap du lieu tu @r0 vao A
Trang 203.5 Chương trình con lấy phím sau khi dịch mã phím
Nap vao @r0 =0
Count=0
?? Nap @r0 =0 Nap status= TRUE Ctc set up
Get_input_2 Inc r0 Lcd ”*”
Trang 213.6 Chương trình con lấy mã phím từ bàn phím:
s
s s
s s
Nap keyval=7 Nap keyport=odfh
Nap keyval=11 Nap keyport=0efh
Trang 22d
s
s d
Codenum=count
?
R0=cofirmR1=upass
Ctc set_uppasss
Trang 233.8 Chương trình con dịch mã phím:
d s
s
d
s
d s
Trang 24Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
CỦA ĐỒ ÁN
Trên cơ sở lí thuyết đã học, chúng em đã thiết kế hệ thống khóa với độ tin cậy có thểchấp nhận được dựa vào chức năng quản lí chương trình bằng password trong máy tínhvới quy mô đơn giản hơn Để ứng dụng vào thực tế, hệ thống nàycòn cần được chỉnh sửa
để tăng tính ổn định và kết nối với bộ phận cơ khí đóng mở cửa
Hiện nay, những hệ thống kiểm soát ra vào theo mã đã sử dụng những hình thức quản
lí tiên tiến hơn như: thẻ từ, vân tay tuy nhiên chi phí còn rất cao Một hệ thống quản línhư chúng em tập thiết kế vẫn còn có những ứng dụng nhất định
HƯỚNG PHÁT TRIỂN:
Mạch còn có 1 số khuyết điểm như :
Khi reset lại thì pass đã lưu không còn nữa,sau khi reset phải cài lại password.khimất nguồn cung cấp thì mạch cũng bị reset.Do đó tính bảo mật không cao
Hướng giải quyết :sử dụng vi điều khiển AT89C2051 có sẵn 2kb eprom bên trong
Có thể dùng để lưu lại password của người sử dụng.tránh tình trạng mất pass khi mấtnguồn
Do chỉ báo động bằng tín hiệu đèn hoặc chuông nên khi người dùng ở cách xa nơibáo động thì không hay biết gì về việc có người dò pass hay không Vì vậy hướng pháttriển của đồ án là thông báo cho chủ nhân khi có người nhập pass sai 3 lần để kịp thời xử
lý hoặc thay đổi password.việc thông báo từ xa có thể sử dụng sóng radio hay thông báoqua điện thoại, có thể gởi tin nhắn chẳng hạn
Hệ thống khóa số sử dụng LCD với hướng dẫn bằng tiếng Việt không dấu,khôngthân thiện với người dùng lắm Ta có thể sử dụng CGRAM để vẽ các ký tự tiếng Việt códấu giúp người Việt dễ sử dụng hơn
Mặt khác với 10 chữ số từ 09 thì mức độ bảo mật chưa cao lắm Ta có thể sửdụng các ký tự latin để làm password để tăng tính bảo mật cho hệ thống
Do là thiết kế đầu tiên nên không thể tránh khỏi sai sót nhất định Chúng em xin chânthành cảm ơn sự giúp đỡ và hướng dẫn của các thầy giáo và các bạn trong thời gian vừaqua Mong rằng sẽ nhận được nhiều đóng góp ý kiến để bản thiết kế này và những bảnthiết kế sau ngày càng được hoàn thiện hơn
Trang 25Phần C PHỤ LỤC
Trang 26key equ 0H ;co nhan hay k nhan
ok equ 2H ;dung password =1
;
Trang 27org 0H
clr key ;xoa bit kiem tra phim nhan
setb lock
main:
cjne status,#TRUE,main ;enter
;chuong trinh cai dat pass ban dau
Trang 28mov dptr,#str_unlock_3 ;'press # key to'
Trang 29clr alarm ;bao dong
Trang 30swap ;lay nibble cao
Trang 31mov keyval,#1 ;cho key val=1
mov keyport,#7FH ;hang1 thap
acall read_col ;doc cot
jb key, done ;kiem tra co nhan
mov keyval,#4 ;hang 2
mov keyport,#0BFH ;hang 2 thap
acall read_col ;doc cot
jb key, done ;kt co nhan
read_col: ;doc cot
clr key ;xoa co nhan
jb col1, nextcol ;kt nut dau tien
jnb col1,$ ;dung thi cho den khi tha phm
setb key ;set co
Trang 32jb col3, nextcol2
jnb col3,$
inc keyval
inc keyval setb key
ret nextcol2:
jb col4, exit1
jnb col4,$
inc keyval
inc keyval inc keyval setb key
ret exit1:
clr key
ret
;**************************
;dich ma key
translate:
ret
jmp1:
ret
jmp2:
ret
jmp3:
ret
jmp4:
mov keyval, a
ret
;*************************
;chuyen ma key thanh phim chuc nang
get_input:
get_input_1: