Chương I: 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 như: 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 đó em đã đưa ra yêu cầu một hệ thống có chức năng đóng mở như sau:
Trang 1TRƯỜNG ĐẠI HỌC HÀNG HẢI KHOA ĐIỆN - ĐIỆN TỬ TÀU BIỂN
BÀI TẬP LỚN MÔN : KĨ THUẬT VI XỬ LÝ
- Xây dựng lưu đồ thuật toán.
- Viết phần mềm điều khiển, thuyết minh cách thức hoạt động.
Giáo viên hướng dẫn :
Sinh viên: Lê Công Sơn Mã sinh viên : 39125
Lớp: ĐTĐ51- ĐH1-NO3
Hải Phòng , năm 2013
Đề cương sơ bộ
Trang 22 Vi điều khiển AT89C51
3 Chi tiết từng khối
* Mã nguồn
Kết luận
Trang 3Lời nói đầu
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ângcao đờ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ểnvớ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 đờisố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ôngViệ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 an ninh sử dụng mã số nhập dữ liệu từ bàn phím và hiển thị trên LCD„ để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 tuykhô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ínhhiện đại với CSDL,ngoài mật mã ra còn kiểm tra tần số giọng nói và camerakiể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ạnchế về thời gian tìm hiểu, kiến thức cũng như kinh nghiệm thực tế nên em khôngtránh khỏi nhiều thiếu sót Em rất mong nhận được những ý kiến đóng góp củathầy để đề tài của em được hoàn thiện hơn, với nhiều chức năng hơn
Hải Phòng ngày 15 tháng 4 năm 2013
Trang 4Chương I: 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ể ravà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ốngcần mang tí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 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ệ
• 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 haytắ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êntiếp chuông sẽ báo động (mô phỏng trên mạch bằng việc bật haytắ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
Trang 5- Nếu mã sai: không có hiện tượng gì cả Nếu nhập mã sai ba lầnliê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(←)
Trang 62 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ị dovậy nó hạn chế được tác động của người sử dung vào nội dung bên trong củakhoá
Với số lượng mã không lớn (cỡ 10 mã), mỗi mã dài sáu chữ số thì xácsuất tìm thấy mã đúng là: 10/1.000.000 = 0,0001% Thêm vào đó là khả năngbá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ăngcao
2.2 Phân tích hệ thống:
Do giới hạn của bài tập, 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 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
Trang 7Chương II: 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:
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 Số đầu dây ra từ bàn phím phải phù hợp với đầu vào của mạch xử lí.Đồng thời với càng ít dây thì khả năng ổn định của bàn phím càng tăng
Để thực hiện bàn phím 14 nút ta có thể có các phương án sau:
Trang 8Sơ đồ của bàn phím như sau:
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 có 2 phương án sau:
2.1 Phương án 1: Dùng LED 7 thanh:
- Ưu điểm: Đơn giản, rẻ
- Nhược điểm: Không chỉ dẫn cụ thể.Giới hạn kí tự hiển thị ra Nếu muốnhiển thị chỉ dẫn dài cần nhiều LED và đi kèm với nó là bộ giải mã Điều này làmcho hệ thống trở nên cồng kềnh, phức tạp.Việc lập trình quét hàng quét cột đểhiển thị phức tạp
Trang 9- 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
Trang 10Chương III: 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ứcphầ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ảicâ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ệnnhư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ềmphứ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ơncũ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:
• Thứ hai là, vi điều khiển 8051 cùng với các họ vi điều khiển khácnó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
Trang 11- 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 quantrọ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ậplệnh phong phú nên cho phép nhiều khả năng mềm dẻo trong vấn đề viết chươngtrì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ênmớ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
2.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 led
Trang 12Sơ đồ khối của hệ thống như sau:
2 Vi điều khiển AT89C51:
Khối vi xử lý AT89C51
CPU
Điều khiển ngắt
Nguồn ngắt trong.
8Kbytes ROM trong RAM trong256byte 2 bộ đế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
Trang 13Chức năng của từng khối:
• Khối xử lý trung tâm CPU:
Phần chính của bộ vi xử lý là khối xử lý trung tâm (CPU=CentralProcessing Unit ), khối này có chứa các thành phần chính :
- Thanh chứa ACC (ký hiệu là A)
- Thanh ghi chứa phụ (ký hiệu là B) thường được dùng cho phép nhân vàphép chia
- Khối logic số học (ALU=Arithmetic Logical Unit)
- Từ trạng thái chương trình (PSW= Program Status Word)
- Bốn băng thanh ghi (Blank)
- Con trỏ ngăn xếp (SP=Stack Point) cũng như con trỏ dữ liệu để định địachỉ cho bộ nhớ dữ liệu ở bên ngoài
Ngoài ra, khối xử lý trung tâm còn chứa:
- Thanh ghi đếm chương trình (PC= Progam Counter )
- 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 đượclắp thêm vào, linh kiện phụ trợ có thể là một khung dao động làm bằng tụ gốmhoặ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ếtlập chế độ làm việc thông qua hai thanh ghi IE (Interrupt Enable) và IP(Interrupt Priority)
Trang 14• 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 độ Bauddùng cho giao diện nối tiếp Trạng thái tràn bộ đếm có thể được kiểm tra trựctiế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ềukhiể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 độngcủ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àmviệ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àngDIL (Dual In Line) với tổng số là 40 chân ra, một số ít còn lại được đóng vỏ
Trang 15theo kiểu hình vuông PLCC (Plastic Leaded Chip Carrier) với 44 chân và loạinà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:
Trang 16Sơ đồ 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 raqua 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ôntí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:
Trang 173.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 LCDChân 3.4 nối với chân 6 E của LCDChân 3.5 nối với chân 4 RW của LCD
Trang 18Châ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 bộ dao động thạch anh,tụ 33p để tạo dao
động cho vi AT89C51
XTAL1, XTAL2 là bộ tạo tín hiệu giữ nhịp với tần số đượcxá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ôngthường các lệnh được thực hiện bằng 1/12 tần số dao độngcủ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 8051không có ROM trong thì chân này phải được nối với mát Loạithông thường có thể làm việc tuỳ theo cách lựa chọn giữa ROMtrong hay ROM ngoài, khi đang ở chế độ làm việc với bộ nhớ ROMtrong, 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ự linhhoạt tốt hơn nhiều so với LED, màn hình tinh thể lỏng LCD (Liquid CrystalDisplay) đượ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ànhcủ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ácmodule đ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
Trang 19Trong ứng dụng cụ thể này, do không yêu cầu hiển thị phức tạp nên emchọ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 LCDnà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 + -
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:
H: chọn thanh ghi vào dữ liệu
L: chọn thanh ghi cho lệnh đkhiển
Trang 2013 DB6 P1.6 H/L Bit dữ liệu 6
Đ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ợplê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ểncũ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 ) KhiRS=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ànhì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)