Tải bản đầy đủ (.docx) (42 trang)

KHÓA số điện tử DÙNG PIC (có code và layout)

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 (1.09 MB, 42 trang )

ĐỒ ÁN 2

KHÓA SỐ ĐIỆN TỬ DÙNG PIC

1


MỤC LỤC

DANH MỤC CÁC HÌNH VẼ

2


DANH MỤC CÁC BẢNG BIỂU

3


DANH MỤC CÁC TỪ VIẾT TẮT
PIC

Programmable Intelligent Computer

SFG

Special Funtion Register

GPR

General Purpose Register



4


ĐỒ ÁN 2
Trang 5/45

CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI
1.1 Đặt vấn đề:
 Với nền dân trí thấp như hiện nay khiến cho xã hội khó có thể phân biệt thật giả
trắng đen, và con người càng khó phân biệt tốt xấu. Để tránh tình trạng những
người lười biếng lao động mà đi trộm cắp thì các loại khoá được ra đời.
 Các loại khoá mà con người sử dụng chìa khoá để mở là Khoá Cơ Khí. Khoá cơ
là loại khoá có thanh kim loại ở giữa để ngăn cản hành vi mở cửa, rương mà
không được cho phép, và người chủ dùng chìa để mở. Tuy nhiên khoá này có
nhiều hạn chế như dễ bị bẻ khoá, phá khoá. Vì vậy, cùng với sự phát triển của
nền KH-KT, khóa số điện tử ra đời và bắt đầu thay thế khóa cơ khí. Không dễ
dàng bị phá bởi các lực vật lý, không phải mang nhiều chìa khóa và tránh việc
thất lạc chìa khóa. Thay đổi theo ý người sử dụng và không ngừng thay đổi tiến
bộ để tránh kẻ gian có kiến thức về công nghệ cao.

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 6/45

Hình 1-1: Khoá hiện đại của hãng samsung

1.2 Chức năng của hệ thống:

-

Đặt mật khẩu 5 đến 10 ký tự và có thể thay đổi mật khẩu tuỳ ý.
Hiển thị lên màn hình LCD khi nhập và thay đổi mật khẩu.
Có cảnh báo khi mở khoá, hoặc khi nhập sai mật khẩu quá 3 lần.

CHƯƠNG 2. TÌM HIỂU LINH KIỆN

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 7/45

2.1 Khối nguồn

Hình 2-1: Sơ đồ nguồn trong mô phỏng

Khối nguồn lấy nguồn AC-220V từ điện lưới, dùng biến áp hạ áp xuống 9V-AC, khi
qua chỉnh lưu được DC-12V, dùng IC 7805 ổ áp cung cấp mức điện áp cho toàn mạch
là +5V.
Biến áp: Biến đổi điện áp AC 220v thành điện áp AC 12v
Cầu chỉnh lưu: Chỉnh lưu điện áp AC thành điện áp DC
Mạch lọc: Sau khi chỉnh lưu ta thu được điện áp DC không phẳng, nếu không có tụ
lọc thì điện áp này chưa thể dùng được vào các mạch điện tử , do đó trong các mạch
nguồn, ta phải lắp thêm các tụ lọc vào bộ chỉnh lưu.

KHÓA SỐ ĐIỆN TỬ



ĐỒ ÁN 2
Trang 8/45

2.2 Khối vi điều khiển

Hình 2-2: Khối vi điều khiển dưới dạng mô phỏng

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 9/45

2.2.1

Giới thiệu về PIC16F877A

PIC16F887A là một loại linh kiện hoạt động dựa theo các dòng code mà người dùng
viết, code được đưa vào file có đuôi .hex. Code được nạp vào PIC16F887A bằng mạch
nạp code. Linh kiện này có các chân được nối với màn hình LCD, động cơ, phím số
giúp các khối này kết hợp với nhau tạo thành một mạch hoàn chỉnh. Là 1 phần vô
cùng quan trọng trong mạch.
2.2.2
-

Các đặc điểm của PIC16F877A

PIC16F877A là vi điều khiển thuộc họ PIC16Fxxx gồm 35 lệnh có đồ dài 14 bit.
Mỗi câu lệnh được hoạt động trong 1 chu kì xung clock (trừ một số trường hợp
như lệnh nhảy, lệnh gọi chương trình con... thì cần 2 chu kì). Với 1 chu kì lệnh


-

là 200ns.
Điện áp hoạt động là: 2V tới 5,5V.
Tốc độ tối đa: 20MHz
Bộ nhớ chương trình là 8Kx14 bit
Bộ nhớ dữ liệu 368x8 byte RAM
Bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte.
Số PORT I/O là 5 với 33 pin I/O.
Hai bộ định thời 8 bit Timer 0 và Timer 2.
Một bộ định thời 16 bit Timer 1.
Khả năng đọc viết được 100.000 lần trên bộ nhớ flash, 1.000.000 lần với bộ nhớ

-

EEPROM.
Dữ liệu có thể lưu trữ trên 40 năm.
Bảo mật mã chương trình.

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 10/45

Hình 2-3: Sơ đồ khối PIC16F877A

KHÓA SỐ ĐIỆN TỬ



ĐỒ ÁN 2
Trang 11/45

Hình 2-4: Sơ đồ chân PIC16F877A

PIC16F877A có 40 chân. Trong đó có một số chân đa dụng. 5 cổng RA, RB,
RC, RD, RE. Sau đây là đặc điểm của các chân RB, RC, RD. Vì RA, RE không
dùng nên không đề cập.
PORTB:
PORTB (RPB) gồm 8 pin I/O. TRISB là thanh ghi đảm nhận đọc viết. Một số
chân của PORTB cũng được dùng trong lúc nạp chương trình vi điều khiển với
các chế độ nạp khác nhau.
PORTB ( 06H, 106H)
: chứa giá trị các pin trong PORTB.
TRISB (86H, 186H)
: điều khiển xuất nhập.
OPTION_REG (81H, 181H) : điều khiển ngắt ngoại vi và bộ
Timer0
PORTC:
PORTC (RPC) gồm 8 pin I/O. TRISC là thanh ghi đảm nhận đọc viết. PORTC
cũng có các chức năng của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao
tiếp nối tiếp SSP, SPI, USART, I2C.

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 12/45


PORTC (07H) : chứa giá trị các pin trong PORTC
TRISC ( 87H) : điều khiển đọc viết
2.2.3

Tổ chức bộ nhớ:

Có hai bộ nhớ trong cấu trúc của PIC16F877A
Bộ nhớ chương trình (Program Memory) :
- Bộ nhớ chương trình của vi điều khiển PIC16F887A là bộ nhớ flash, có
dung lượng 8K word (1word = 14bit). Do đó bộ nhớ có thể chứa được
-

8*1024 = 8192 lệnh.
Khi vi điều khiển được reset, bộ đếm sẽ chỉ đến địa chỉ 000H (Reset

-

vector).
Khi có ngắt xảy ra, bộ đếm sẽ chỉ đến địa chỉ 0004H (Interrupt vector).

Hình 2-5: Sơ đồ khối bộ nhớ chương trình

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 13/45

Bộ nhớ dữ liệu (Data Memory) :
-


Bộ nhớ dữ liệu là bộ nhớ EEPROM được chia thành nhiều bank. Đối với
PIC16F877A bộ nhớ dữ liệu chia thành 4 bank, mỗi bank có dung lượng 128

-

byte. Bao gồm:
Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như sau:

Hình 2-6: Sơ đồ khối bộ nhớ dữ liệu của PIC16F877A

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 14/45

Hình 2-7: Hình ảnh mô phỏng PIC16F887A trên protues v7.1

Hình 2-8: Hình ảnh thực tế của PIC16F877A

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 15/45

2.3 Khối hiển thị

Hình 2-9: Khối hiển thị trên mạch mô phỏng


2.3.1

Giới thiệu về màn hình LCD 16x2

LCD (Liquid Crytal Display) là thiết bị hiển thị kí tự. Với nhiều cách giao tiếp
khác nhau, ta dễ dàng đưa vào mạch ứng dụng , giá thành rẻ và ít tiêu hao nên thiết bị
này được sử dụng rộng rãi trong rất nhiều các ứng dụng của vi điều khiển hiện nay.

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 16/45

2.3.2

Chức năng các chân:

Hình 2-10: Sơ đồ chân của LCD 16x2

Chân 1 (VSS): là chân GND.
Chân 2 (VDD): chân nguồn 5V.
Chân 3 (VEE): điều khiển độ tương phản của màn hình LCD ( được gắn vào chân 2
biến trở).
Chân 4 (RS): Nếu RS ở mức thấp thì thanh ghi mà lệnh được chọn để cho phép người
dùng gửi một lệnh....Nếu RS ở mức điện áp cao thì thanh ghi dữ liệu cho phép người
dùng gửi dữ liệu cần hiển thị .
Chân 5 (RW): Khi ở mức 0, cho phép người dùng ghi thông tin lên LCD hay đọc
thông tin khi mức 1.

Chân 6 (E): Chân cho phép sử dụng LCD.
Chân 7 đến 14 (tương ứng D0 đến D7): Đây là 8 chân dữ liệu 8 bit, được dùng để gửi
thông tin lên hoặc đọc nội dung của các thanh ghi.
Bảng 2-1:

KHÓA SỐ ĐIỆN TỬ

Chức năng của chân RS và RW theo nhu cầu


ĐỒ ÁN 2
Trang 17/45

RS
0
0
1
1

RW
0
1
0
1

2.3.3

Chức năng
Ghi vào thanh ghi RS để ra lệnh cho thanh ghi
Đọc cờ bận ở DB7 và gái trị của bộ đếm địa chỉ ở DB0-DB6

Ghi vào thanh ghi DR
Đọc dữ liệu từ DR

Các lệnh điều khiển LCD 16x2

Một số lệnh tiêu biểu được sử dụng trong đồ án này:
LCD_PutCmd(line_a): In kí tự ra dòng a (a là 1 hoặc 2).
Printf(LCD_PutChar,"abcd"): In kí tự abcd ra màn hình. Tối đa 16 kí tự.
LCD_PutCmd(Clear_Scr): Xóa màn hình. Dùng trước khi thay đổi các kí tự trên màn
hình. Để không lỗi có chồng kí tự hoặc hiển thị sai.

2.4 Khối bàn phím

Hình 2-11: Khối bàn phím 4x4 trên mô phỏng

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 18/45

-

Là kết nối giữa người dùng với hệ thống. Dựa vào bàn phím, ta có thể nhập mật
khẩu, sửa đổi, mở khoá, đóng khoá. Khối này gồm 12 phím hiển thị "0-9, * , #"
và 4 phím mở, đóng, đổi mật khẩu, xác nhận.

Hình 2-12: Ma trận phím 4x4 trong thực tế

KHÓA SỐ ĐIỆN TỬ



ĐỒ ÁN 2
Trang 19/45

2.5 Khối báo động

Hình 2-13: Khối báo động trên mô phỏng

Nếu kẻ gian nhập mật khẩu sai quá 3 lần, thì còi báo của hệ thống sẽ báo động bằng
còi điện áp 5V.

Hình 2-14: Còi beep trong thực tế

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 20/45

2.6 Khối điều khiển động cơ đóng mở cửa

Hình 2-15: Khối điều khiển động cơ trên mô phỏng

Dùng cầu H để điều khiển đóng mở khoá. Sử dụng thêm 4 transistor 2N1711 để điều
khiển dòng điện.

CHƯƠNG 3. THIẾT KẾ MẠCH

KHÓA SỐ ĐIỆN TỬ



ĐỒ ÁN 2
Trang 21/45

3.1 Sơ đồ khối
KHỐI NGUỒN
DC

LCD

KHỐI ĐIỀU
KHIỂN ĐỘNG
CƠ ĐÓNG VÀ
MỞ CỬA

KHỐI HIỂN THỊ

KHỐI VI ĐIỀU
KHIỂN PIC
16F877A
KHỐI BÀN
KHỐI BÁO
ĐỘNG
Hình 3-1: Sơ đồ khối

KHÓA SỐ ĐIỆN TỬ

PHÍM



ĐỒ ÁN 2
Trang 22/45

3.2 Sơ đồ mạch

Hình 3-2: Sơ đồ mạch

3.3 Nguyên lý hoạt động của mạch:
Khối nguồn sẽ cấp điện 12V cho khối vi điều khiển làm khối này hoạt động đồng thời
làm khối LCD hoạt động theo. Người dùng sẽ nhập mật khẩu thông qua khối bàn phím.

KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 23/45

Nếu mật khẩu đúng, khối vi điều khiển sẽ cấp điện cho khối động cơ để đóng mở của.
Ngược lại, nếu mật khẩu sai 3 lần sẽ cấp điện cho khối báo động.

CHƯƠNG 4. THỰC THI PHẦN CỨNG
4.1

Lưu đồ mô tả thực thi
Bắt đầu

Khởi tạo biến, mảng,
KHÓA SỐ ĐIỆN TỬ


LCD


ĐỒ ÁN 2
Trang 24/45

Nhập mật

Đổi mật

i

khẩu

khẩu

<
4

So sánh mật

So sánh mật

khẩu
ĐÚ

khẩu
Sai

NG


Sai mật khẩu i

Sai

ĐÚ

lần

NG

i=
Mở cửa

4

Mật khẩu mới

Báo động

Kết thúc
Hình 4-1: Lưu đồ mô tả thực thi

4.2 Phần mềm điều khiển giao tiếp
CCS C Compiler 4.0:
Là phần mềm biên dịch ngôn ngữ C sang file abc.hex . Có 2 cách để viết code cho PIC
là ngôn ngữ C và Assembly. Tác giả chon ngôn ngữ C vì nó dễ học, không tốn nhiều
thời gian cho người mất căn bản, dễ chia sẻ và học hỏi thêm vì ngôn ngữ C được nhiều
người sử dụng.


KHÓA SỐ ĐIỆN TỬ


ĐỒ ÁN 2
Trang 25/45

4.3 Mô tả quá trình hoạt động của mạch
- Khi mạch mới khởi động, khối thạch anh sẽ cấp xung cho PIC 16F877A. Kết hợp với
nguồn DC bên ngoài sẵn sẽ làm PIC hoạt động quét các phím bấm liên tục. Các phím
bấm đang thiết lập ở mức 1, có người dùng nhấn vào sẽ trở về mức 0 và xác nhận phím
đó được bấm. Nếu người dùng bấm các phím bấm theo thứ tự đúng, chương trình bên
trong sẽ xử lý và mở cửa cho người dùng kèm một tiếng loa báo hiệu. Ngược lại, nếu
người dùng bấm sai 3 lần thì còi sẽ báo hiệu liên tục cho đến khí người ở bên trong nhà
tắt đi (cái này tùy ý người dùng mà viết code thích hợp).
- Khi mật khẩu đúng, tín hiệu MỞ = 1 và ĐÓNG = 0 thì transistor Q1 và Q4 mở,
transistor Q2, Q3 đóng. Khi đó dòng điện từ nguồn qua Q1 rồi qua động cơ qua Q4
xuống đất làm cho động cơ quay theo chiều thuận.
Khi tín hiệu MỞ = 0 và ĐÓNG = 1 thì transistor Q1, Q4 đóng, transistor Q2, Q3 mở.
Khi đó dòng điện từ nguồn qua Q3 qua động cơ rồi qua Q2 xuống GND làm cho động
cơ quay theo chiều nghịch.

KHÓA SỐ ĐIỆN TỬ


×